当前位置:   article > 正文

python数据分析:新闻文本聚类_新闻文本聚类的流程

新闻文本聚类的流程

文本聚类

文本聚类就是要在一堆文档中,找出哪些文档具有较高的相似性,然后可以针对这些相似性文档的聚合进行类别划分。文本聚类应用场景:提供大规模文档集进行类别划分并提取公共内容的概括和总览;找到潜在的各个文档间的相似度以进行相似度判别、类别修正,以减少浏览相似文档和信息的时间和精力。
通常,聚类分析(也包括其他算法)大多是针对数值型做计算的,K均值这类基于聚类的算法要求只有数值型变量才能得到距离相似度。对于文本聚类而言,由于不同文本集出现的全部都是文字内容,因此无法直接针对这些文本进行聚类。

使用TF-IDF方法做word to vector

word to vector(文本转向量或词语转向量)。先定义一批要去除的词语列表,定义列表时使用u来表示是unicode字符串;然后使用sklearn.feature_extraction.text的TfidfVectorizer方法创建词语转向量的对象,使用fit_transform方法将评论关键字列表转换为词向量空间模型。TfidfVectorizer方法参数如下:

  • stop_words:指定为自定义的去除词的列表,不指定默认会使用英文的停用词列表。
  • tokenizer:用来设置定义的分词器,这里是在上面自定义的结巴分词。默认的分词器对于英文下工作良好,但对于中文来讲效果不佳。
  • use_idf:设置为True指定TF-IDF方法做词频转向量。

实现

获取新浪财经首页当天新闻,做分词和词向量化,通过关键词进行kmeans聚类,对新闻进行分类:

# 导入库
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer  # 基于TF-IDF的词频转向量库
from sklearn.cluster import KMeans
import jieba.posseg as pseg
import newspaper
import requests  # 导入爬虫库
from bs4 import BeautifulSoup
import datetime as dt
today = dt.datetime.today().strftime("%Y-%m-%d")  # 过去今天时间

# 中文分词
def jieba_cut(comment):
    word_list = []  # 建立空列表用于存储分词结果
    seg_list = pseg.cut(comment)  # 精确模式分词[默认模式]
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/788717
推荐阅读
相关标签
  

闽ICP备14008679号