2017-07-24 26 views
0

我已生成使用gensim一个巨大的语料库word2vec模型矩阵,我需要使用k以群集词汇均值聚类用于我需要:获得距离矩阵,并设有从word2vec模型

  1. 余弦距离矩阵(到词,所以矩阵的大小的number_of_words X number_of_words)
  2. 设有矩阵(字特征,所以矩阵的大小是number_of_words X number_of_features(200))

为特征矩阵我试图给我们ex = model.wv,我得到的对象类型为gensim.models.keyedvectors.KeyedVectors,它比我期望的要小得多的特征矩阵将会是

有没有办法直接使用这个对象来生成k-意味着集群?

+0

您可以添加一些代码和预期/实际输出吗? – iehrlich

回答

1

在gensim的Word2Vec模型中,原始number_of-words x number_of_features单词向量的numpy数组在model.wv.syn0中。 (您可以使用model.wv.vocab字典学习字符串令牌到阵列的插槽分配,或model.wv.index2word列表学习阵列槽对词分配。)

的成对距离不预计算,所以你必须自己创建。而对于典型的词汇量来说,它可能不实用。 (例如,使用10万字词汇表,以最有效的方式存储所有成对距离将需要大约100,000^2 * 4 bytes/float/2 = 20GB的可寻址空间。