如何从gensim word2vec获取词汇量?

Mic*_*wen 8 gensim word2vec

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

use*_*629 25

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

vocab_obj = w2v.vocab["word"]
vocab_obj.count
Run Code Online (Sandbox Code Playgroud)

谷歌新闻w2v型号输出:2998437

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

for word, vocab_obj in w2v.vocab.items():
  #Do something with vocab_obj.count
Run Code Online (Sandbox Code Playgroud)

  • 截至[`gensim` 1.0.0](https://github.com/RaRe-Technologies/gensim/releases/tag/1.0.0),您需要执行`w2v.wv.vocab ["word"]. count`而不是`w2v.vocab ["word"] .count`. (10认同)
  • 澄清一下,字数≠词频。 (2认同)

Mak*_*kan 11

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

反而:

word2vec_model.wv.get_vecattr("my-word", "count")  # returns count of "my-word"
len(word2vec_model.wv)  # returns size of the vocabulary
Run Code Online (Sandbox Code Playgroud)

查看有关从 Gensim 3.x 迁移到 4的说明


Ahm*_*dov 5

当你想创建一个单词字典以便以后方便检索时,可以这样做:

w2c = dict()
for item in model.wv.vocab:
    w2c[item]=model.wv.vocab[item].count
Run Code Online (Sandbox Code Playgroud)

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

w2cSorted=dict(sorted(w2c.items(), key=lambda x: x[1],reverse=True))
Run Code Online (Sandbox Code Playgroud)