【问题标题】:How is Word2Vec min_count appliedWord2Vec min_count 如何应用
【发布时间】:2018-11-16 07:27:33
【问题描述】:

假设我正在训练 min_count=5 的 (Gensim) Word2Vec 模型。文档告诉我们 min_count 做了什么:

忽略总频率低于此的所有单词。

min_count 对上下文有什么影响?假设我有一个由常用词(min_count > 5)和不常用词(min_count

this (f) is (f) a (f) test (i) sentence (i) which (f) is (f) shows (i) here (i)

我只是编造了哪个词经常使用,哪个词不用于演示目的。

如果我删除所有不常用的单词,我们会得到一个完全不同的上下文,训练 word2vec 的上下文。在此示例中,您的句子将是“This is a which is”,这将是 Word2Vec 的训练句子。此外,如果您有很多不常用的单词,那么原本相距很远的单词现在会放在同一个上下文中。

这是对 Word2Vec 的正确解释吗?我们是否只是假设您的数据集中不应该有太多不常用的词(或设置较低的 min_count 阈值)?

【问题讨论】:

    标签: python word2vec gensim


    【解决方案1】:

    低于min_count 频率的词在训练开始前被丢弃。因此,相关上下文window 是幸存单词之间的单词距离。

    这种事实上的上下文缩减通常是一件好事:不常用的词没有足够多的例子来为自己获得好的向量。此外,虽然每个不常见的词单独是稀有的,但总体而言却有很多,所以这些注定要差的向量稀有词会干扰大多数其他词的训练,充当一种噪音,使这些词向量也更糟。

    (同样,当使用sample 参数对频繁词进行下采样时,频繁词会被随机删除——这也有助于从本质上“缩小”幸存词之间的距离,并且通常会提高整体向量质量。)

    【讨论】:

    • 我明白你的意思。但是鉴于问题中的示例,在某些情况下,如果句子中有很多不常用的单词(count
    • 也许这是出乎意料的,尽管它从简单的“丢弃不常用词”过程中顺理成章。 (没有额外的复杂情况,你“有时如果在一个小空间里有很多不常用的单词”。)但是,这是 word2vec 实现自第一个 Google word2vec.c 版本以来所做的事情,并且工作正常,所以一旦你熟悉了这个工具,它就不是真的“奇怪”了。
    • min_count 是针对单个文档还是整个语料库?
    • min_count 是关于整个语料库的。如果您有默认的min_count=5,并且一个单词在您的所有文档中仅出现 4 次或更少,它将被忽略。 (但是,如果它在单个文档中出现 5 次,它将继续存在。)
    • (而且,如果它在 5 个单独的文档中出现一次,它将继续存在。)
    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多