【问题标题】:How can I count word frequencies in Word2Vec's training model?如何计算 Word2Vec 训练模型中的词频?
【发布时间】:2019-09-03 12:57:04
【问题描述】:

我需要统计word2vec的训练模型中每个词出现的频率。我想要这样的输出:

term    count
apple   123004
country 4432180
runs    620102
...

有可能做到吗?我如何从 word2vec 中获取这些数据?

【问题讨论】:

  • 添加您目前尝试过的内容
  • 你试过 collections.Counter 吗?它需要一个可迭代对象并返回一个包含计数元素的字典

标签: python word2vec word-embedding word-frequency natural-language-processing


【解决方案1】:

您使用的是哪个 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))

简单的词向量集(例如通过gensimload_word2vec_format() 方法加载的那些)不会有准确的计数,但按照惯例,通常在内部从最频繁到最不频繁进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2017-11-25
    • 2019-01-16
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2018-02-04
    相关资源
    最近更新 更多