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