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