python数据分类聚类案例_Python数据分析小案例——红楼梦文本分析(三) KMeans聚类...

通过Python对红楼梦章节进行文本聚类分析,利用TF-IDF矩阵和KMeans算法,将章节按内容主题相似性分成三类。首先,使用CountVectorizer和TfidfTransformer计算TF-IDF值,然后应用KMeansClusterer进行聚类,最后展示分类的条形图,揭示各分类的章节数量。
摘要由CSDN通过智能技术生成

文本聚类分析:

使用红楼梦每章分词的结果对红楼梦的章节进行聚类分析,也就是将章节分成几类,内容主题相似的章节分成一类。

聚类分析使用的数据是文本的TF-IDF矩阵。

TF-IDF是词频逆文档频率,即如果某个词在一篇文章出现的频率高且在其他文章出现的很少,那么就认为这个词有很好的分类能力,适合用来分类。所以TF-IDF可以反映出某个词的重要性,其重要性会随着它在文件中出现的次数成正比,随他在词料库中出现的频率成反比。

主要用到CountVectorize()和TfidfTransformer()

CountVectorize()通过fit_transform()函数将文本中的词语转为词频矩阵。矩阵元素weight[i][j]表示j词在第i个文本下的词频,即各个词在每个文本出现的次数。通过get_feature_names()可以看到所有文本的关键字,通过toarray()可以看到词频矩阵的结果。

CountVectorize()可以将使用空格分开的词整理为词料库

TfidfTransformer()也有fit_transform()函数,作用是计算tf-idf值,就是计算每个词在每个文本出现的次数。

再说说kmeans聚类(分类)算法,这个算法的原理之前说过,就是对指定的样本A,根据样本间距离的大小将样本划分为K个簇(k个类别),某样本离哪个簇的簇中心最近,这个样本就属于这个簇(属于这个分类)。要分成几个簇由我们决定,而这几个簇怎样分则是算法内部的事,我们可以不管。该分类方法适用于不知道样本有几个分类的情况下使用。

在这里,我们的做法很简单,先根据每章的分词得到tf-idf矩阵(各个词在每回的所有分词中出现的频率,也就是各

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值