【问题标题】:the repetitions in Gensim Word2Vec training corpusGensim Word2Vec 训练语料库中的重复
【发布时间】:2021-10-22 14:43:06
【问题描述】:
我正在使用Gensim 训练Word2Vec 嵌入不同语料库,属于不同年份,以比较嵌入向量。
我的问题是:如果我将特定年份的文档重复两次,而另一年的文档只重复一次,那么生成的嵌入是否会给重复的文档更多的权重?
我的想法是制作一个语料库,对最近的文档赋予更大的权重,而对远古的文档赋予更少的权重。
我只是在我的 Line Sentence 语料库文件上训练模型。
Word2Vec(corpus_file=corpus, vector_size=100, window=5, min_count=5, workers=4)
【问题讨论】:
标签:
python
gensim
word2vec
word-embedding
corpus
【解决方案1】:
当然,重复一些文本(甚至比epochs 计数控制的重复次数更多)意味着它们将对最终模型产生更大的影响。
一般来说,重复相同的文本不如真正不同的相同单词的替代示例好。例如,如果您只有一个文本使用某个单词,重复 5 次可能会使该单词在min_count=5 截止值中幸存下来,但缺少许多微妙对比的外观意味着它的最终向量只会反映一个特殊的、重复的采用。人们通常寻求的那种良好的相对词向量位置需要在一个词的所有使用方式之间进行训练。
但是,在这种情况下,你应该还有很多例子,你只是对其中一些进行了过度训练。
请注意,确保重复在整个语料库中被打乱可能会更好一点,至少在训练开始之前一次,而不是全部聚集在一起。 (连续重复 10 次文本会过度训练这些单词/上下文 - 但不会像与所有其他不同加权训练交错一样平衡。)
而且,您可能不希望将重复 5 次的子集中所有 1 次出现的词自动在 min_count 剪切中幸存 - 因为它们仍然只有一个真正的弱上下文示例。因此,您可能想从未加权的语料库中学习词汇,然后在新语料库上进行人工重复训练(确保为您的 .train() 调用提供正确的新 total_examples 计数,以便它报告进度和调整正确的学习率)。