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']
我猜你的字符串列表是坏的。有一些“和”,不见了。代码的结果是什么?