从word2vec模型得到距离矩阵和特征矩阵

时间:2017-07-24 11:56:23

标签: python k-means gensim word2vec

我使用gensim为一个巨大的语料库生成了一个word2vec模型,我需要使用k表示聚类来为我需要的聚类:

  1. 余弦距离矩阵(单词到单词,所以矩阵的大小为number_of_words x number_of_words)
  2. 功能矩阵(单词到功能,因此矩阵的大小是number_of_words x number_of_features(200))
  3. 对于特征矩阵,我尝试使用x = model.wv,我得到的对象类型为gensim.models.keyedvectors.KeyedVectors,它比我预期的特征矩阵要小得多

    有没有办法直接使用这个对象来生成k-means聚类?

1 个答案:

答案 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的可寻址空间。