我需要计算word2vec
的训练模型中每个单词的出现频率。我想要的输出看起来像这样:
term count
apple 123004
country 4432180
runs 620102
...
有可能这样做吗?我如何从word2vec中获取这些数据?
答案 0 :(得分:0)
您正在使用哪个word2vec实现?
在流行的gensim
库中,建立Word2Vec
模型的词汇表后(通过进行全面培训或调用build_vocab()
之后),模型的{{1 }}属性包含一个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))
的{{1}}方法加载的单词向量)没有准确的计数,但是按照惯例,通常在内部按从高到低的顺序排列-频繁。