我需要计算word2vec
训练模型中每个单词的频率。我想要这样的输出:
term count
apple 123004
country 4432180
runs 620102
...
有可能这样做吗?我如何从 word2vec 中获取这些数据?
我需要计算word2vec
训练模型中每个单词的频率。我想要这样的输出:
term count
apple 123004
country 4432180
runs 620102
...
有可能这样做吗?我如何从 word2vec 中获取这些数据?
您使用的是哪个 word2vec 实现?
在流行的gensim
库中,在Word2Vec
模型建立了它的词汇表之后(通过进行完整的训练,或者在build_vocab()
被调用之后),模型的wv
属性包含一个KeyedVectors
-type 对象,它作为一个属性vocab
是Vocab
-type 对象的字典,它具有count
扫描语料库中单词频率的属性。
因此,您可以通过以下方式大致获得您所寻求的内容:
w2v_model = Word2Vec(your_corpus, ...)
for word in w2v_model.wv.vocab:
print((word, w2v_model.wv.vocab[word].count))
简单的词向量集(例如通过gensim
'sload_word2vec_format()
方法加载的词向量)不会有准确的计数,但按照惯例,通常在内部从最频繁到最不频繁进行排序。