如何从 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
上的注释
我在 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
上的注释