Python 使用Kmeans和TF-IDF获取单词簇

Python 使用Kmeans和TF-IDF获取单词簇,python,scikit-learn,k-means,tf-idf,Python,Scikit Learn,K Means,Tf Idf,我正在试着把文本单词分类。 假设我有一个文本列表 text=[“WhatsApp延长了‘混乱’的更新期限”, “印度开始世界上最大规模的新冠病毒疫苗接种活动”, “尼泊尔登山者通过K2冬季峰会创造历史”] 我在这个数据上实现了TF-IDF vec=TfidfVectorizer() 专长=向量拟合变换(文本) 之后,我应用了Kmeans kmeans=kmeans(n_clusters=num).fit(专长) 我感到困惑的是,我是如何得到诸如 cluster 0 WhatsApp,

我正在试着把文本单词分类。 假设我有一个文本列表

text=[“WhatsApp延长了‘混乱’的更新期限”,
“印度开始世界上最大规模的新冠病毒疫苗接种活动”,
“尼泊尔登山者通过K2冬季峰会创造历史”]
我在这个数据上实现了TF-IDF

vec=TfidfVectorizer()
专长=向量拟合变换(文本)
之后,我应用了Kmeans

kmeans=kmeans(n_clusters=num).fit(专长)
我感到困惑的是,我是如何得到诸如

cluster 0  
WhatsApp, update,biggest   
cluster 1  
history,biggest ,world's   
etc.

您可以使用带有预测的类中的
get\u feature\u names()
方法来检查每个簇中的单词

下面是一个包含两个集群和您提供的三句话的简单示例:

将numpy导入为np
从sklearn.cluster导入KMeans
从sklearn.feature\u extraction.text导入TfidfVectorizer
text=[“WhatsApp延长了‘混乱’的更新期限”,
“印度开始世界上最大规模的新冠病毒疫苗接种活动”,
“尼泊尔登山者通过K2冬季峰会创造历史”]
vec=TfidfVectorizer()
专长=向量拟合变换(文本)
kmeans=kmeans(2).fit(专长)
pred=kmeans.predict(专长)
对于范围(2)中的i:
打印(f“Cluster{i}:)
单词=[]
对于np.数组(文本)中的句子[pred==i]:
words+=[fn表示向量中的fn.get_feature_names(),如果fn在句子中]
印刷品(字)
结果:

Cluster #0:
['confusing', 'deadline', 'extends', 'update', 'begins', 'biggest', 'drive', 'vaccine', 'world']
Cluster #1:
['climbers', 'history', 'make', 'summit', 'winter', 'with']

我猜你的字符串列表是坏的。有一些“和”,不见了。代码的结果是什么?