如何从 gensim word2vec 获取词汇字数?

How to get vocabulary word count from gensim word2vec?

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

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

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

google 新闻 w2v 模型的输出:2998437

因此,为了获得每个单词的计数,您需要遍历词汇表中的所有单词和 vocab 对象。

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

当你想创建一个词库来统计以便以后检索时,你可以这样做:

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))

vocab 属性已从 Gensim 4.0.0 中的 KeyedVector 中删除。

改为:

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

上的注释