如何从gensim word2vec获取词汇量?

时间:2016-05-12 15:12:23

标签: gensim word2vec

我在python中使用gensim word2vec包。我知道如何从训练有素的模型中获取词汇。但是如何在词汇表中为每个单词计算单词?

3 个答案:

答案 0 :(得分:23)

词汇表中的每个单词都有一个关联的词汇表对象,其中包含索引和计数。

vocab_obj = w2v.vocab["word"]
vocab_obj.count

google news w2v型号的输出:2998437

因此,要获得每个单词的计数,您将迭代词汇表中的所有单词和词汇对象。

for word, vocab_obj in w2v.vocab.items():
  #Do something with vocab_obj.count

答案 1 :(得分:1)

当您要创建单词词典以方便以后检索时,可以按照以下步骤进行操作:

w2c = dict()
for item in model.wv.vocab:
    w2c[item]=model.wv.vocab[item].count

如果要对其进行排序以查看模型中最常用的单词,也可以这样做:

w2cSorted=dict(sorted(w2c.items(), key=lambda x: x[1],reverse=True))

答案 2 :(得分:0)

Gensim 4.0.0 中的 KeyedVector 中删除了 vocab 属性。

相反:

word2vec_model.wv.get_vecattr("my-word", "count")  # returns count of "my-word"
len(word2vec_model.wv)  # returns size of the vocabulary

查看 migrating from Gensim 3.x to 4 上的注释