k-means使用word2vec:查找最接近centroids的单词

时间:2016-10-27 16:12:18

标签: scikit-learn nlp k-means word2vec

我使用word2vec进行文本矢量化,然后使用k-means进行文本聚类,使用scikit-learn。聚类后​​,如何获得最接近每个聚类质心的前5或10个单词?我能够获得群集中的所有单词,但无法获得最近的单词。当我使用tf-idf矢量器时,直接向前,因为tf-idf中的每个特征都映射到一个单词,但是word2vec不是这种情况

以下是我如何将word2vec用于k-means

model = gensim.models.Word2Vec.load('w2v.mdel')
word_vectors =  vecTransform(input) #Convert input text to word vectors
km = KMeans(n_clusters=5)
idx = km.fit_predict(word_vectors)

1 个答案:

答案 0 :(得分:0)

实际上,重要的是vecTransform。如果对于给定的文本文档,您对其包含的单词的w2v表示求平均以获取文档表示,则您仍然处于与初始w2v向量相同维度的空间中。因此,给定k-means算法的质心(km.cluster_centers_,因为您似乎使用sklearn实现),您可以找到与这些质心最接近的单词。但是,我确信它们有多么有意义可以,特别是如果文档包含多个单词并且您使用所有的平均过程。