python - Word2Vec min_count 是如何应用的

标签 python word2vec gensim

假设我正在使用 min_count=5 训练一个 (Gensim) Word2Vec 模型。该文档向我们了解了 min_count 的作用:

Ignores all words with total frequency lower than this.

min_count 对上下文有什么影响?假设我有一个句子,其中包含频繁词 (min_count > 5) 和不常用词 (min_count < 5),并用 f 和 i 进行注释:

This (f) is (f) a (f) test (i) sentence (i) which (f) is (f) shown (i) here (i)

我只是编造了哪些词经常被使用,哪些词不是为了演示目的。

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

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

最佳答案

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

这种事实上的上下文收缩通常是一件好事:不常见的单词没有足够多的例子来为它们自己获得好的向量。此外,虽然每个不常见的单词单独出现时都是罕见的,但总的来说却有很多,所以这些注定要差的向量稀有词会干扰大多数其他单词的训练,作为一种噪音使这些词向量成为更糟。

(类似地,当使用 sample 参数对频繁词进行下采样时,频繁词会被随机丢弃——这也从本质上“缩小”了幸存词之间的距离,并且通常会提高整体矢量质量。)

关于python - Word2Vec min_count 是如何应用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50723303/

相关文章:

python - KeyError ("word ' %s' 不在词汇表中"% word)

apache-spark - 如何从pyspark word2vec模型中获取单词列表?

python - gensim LdaMallet 引发 CalledProcessError,但在命令行运行 mallet 时没有错误

gensim - 从gensim LDA模型中提取主题分布

Python/Gensim - syn0 和 syn0norm 的含义是什么?

python - 使用 MFA 以编程方式在 Azure 中进行身份验证

Python游戏;为什么我无法重新调用我的输入和 if/else 函数?

python - Gensim Doc2Vec 为模型生成大文件

python - 在 Pandas 中找到第一个非 NaN 值

python - 在Mac上加载模块-Python3