python - 如何计算 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()
方法加载的词向量)不会有准确的计数,但按照惯例,通常在内部从最频繁到最不频繁进行排序。
推荐阅读
- android - Android TextInputLayout和TextInputEditText光标颜色问题
- java - 如何在java中从main调用静态方法
- linux - 按 Enter 后,我的自定义提示没有更新?
- python - 如何在选定的时间后设置海龟的结束
- html - 悬停选择器不适用于这种情况?
- c++ - MAC OS 有类似 _wenviron 的东西吗?
- image - 使用 ar.js 增加对 nft 标记的识别容差?毛刺接受
- python - Django timezone.now() 给出错误的时间
- python-3.x - 如何重新排序字典中的键?
- flutter - 扑。创建列表
firestore 文档和集合