标签:text-mining python scipy cluster-analysis
我有一个文本语料库,每个文章包含1000个文章.我试图在python中使用Scipy使用层次结构聚类来生成相关文章的集群.
这是我用来进行聚类的代码
# Agglomerative Clustering
import matplotlib.pyplot as plt
import scipy.cluster.hierarchy as hac
tree = hac.linkage(X.toarray(), method="complete",metric="euclidean")
plt.clf()
hac.dendrogram(tree)
plt.show()
我得到了这个情节
然后我用fcluster()切断了第三层的树
from scipy.cluster.hierarchy import fcluster
clustering = fcluster(tree,3,'maxclust')
print(clustering)
我得到了这个输出:
[2 2 2 …,2 2 2]
我的问题是如何在每个群集中找到前10个常用词,以便为每个群集建议一个主题?
解决方法:
您可以执行以下操作:
>将结果(您的聚类变量)与您的输入(1000篇文章)对齐.
>使用pandas库,您可以使用groupby函数将集群#作为其键.
>每组(使用get_group函数),为每个填充一个整数的defaultdict
你遇到的一句话.
>您现在可以按降序对单词计数字典进行排序,并获得所需数量的最常用单词.
祝你好运,请接受我的答案,如果你正在寻找的话.
标签:text-mining,python,scipy,cluster-analysis 来源: https://codeday.me/bug/20191006/1858736.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。