我使用gensim为一个巨大的语料库生成了一个word2vec模型,我需要使用k表示聚类来为我需要的聚类:
对于特征矩阵,我尝试使用x = model.wv,我得到的对象类型为gensim.models.keyedvectors.KeyedVectors,它比我预期的特征矩阵要小得多
有没有办法直接使用这个对象来生成k-means聚类?
答案 0 :(得分:1)
在gensim的Word2Vec模型中,原始number_of-words x number_of_features
numpy单词向量数组位于model.wv.syn0
。 (您可以使用model.wv.vocab
dict来学习字符串令牌到数组插槽的分配,或使用model.wv.index2word
列表来学习数组插槽到字的分配。)
成对距离不是预先计算的,因此您必须自己创建。并且对于典型的词汇量,它可能是不切实际的大。 (例如,使用100,000字的词汇表,以最有效的方式存储所有成对距离将需要大约100,000^2 * 4 bytes/float / 2 = 20GB
的可寻址空间。