【问题标题】:Minimum number of words in the vocabulary for Word2Vec models?Word2Vec 模型的词汇表中的最小单词数?
【发布时间】:2021-02-18 20:39:04
【问题描述】:

我有一个短文本语料库(约 5000 个句子),它形成了约 2000 个单词的词汇。我使用 Gensim 构建了 Word2Vec 模型,但 most_similar 的输出看起来并不合理。这是因为我的词汇表中没有足够的单词吗?如果是这样,词汇量大小是否有任何经验法则?

【问题讨论】:

    标签: gensim word2vec


    【解决方案1】:

    通常 word2vec 需要大量数据,每个单词都有许多不同的示例,以获得良好的词向量。您有时可以通过以下方式从较小的数据集中提取一些有用性:

    • 更小的向量维数;和/或
    • 更多训练周期

    (虽然我没有对此进行正式测试,但我的直觉/经验法则是向量维数应该不超过唯一词计数的平方根。所以只有 2000 个唯一词,即使是50的维度正在推动它。)

    您可能很想使用低于默认值的min_count,这样那些只出现一两次的词就会训练向量。但是这些没有不同用法示例的向量本身就很差——被那些一两个不具有广泛代表性的上下文所支配。此外,总的来说,所有这些“噪音”词,穿插着确实有足够例子的词,往往会使其他词向量变得更糟。 (丢弃示例太少的单词通常改进幸存单词的向量。)

    如果可能,请从类似的使用领域获取更多训练数据,以与您主要感兴趣的数据混合。

    【讨论】:

      【解决方案2】:

      词汇量大小没有经验法则,但每个词都应该与其他词出现足够频繁,以便算法计算出有意义的嵌入(gensim 的 word2vec 中的默认 min_count5)。

      word2wec 中实际上有两种底层算法:skip-gram (sg=1) 和 CBOW (sg=0)。您可以同时尝试这两种方法,因为其中一种可能会产生比另一种更好的结果。您还可以对 window 参数尝试不同的值,这是一个句子中当前单词和预测单词之间的最大距离。

      最后,如果你有一个小的词汇/数据集,你应该使用一个小的向量维度(例如vector_size=50)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-25
        • 2016-06-06
        • 2019-07-07
        • 1970-01-01
        • 2020-02-28
        • 2018-09-04
        • 2023-01-27
        • 1970-01-01
        相关资源
        最近更新 更多