如何防止word2vec重叠?

时间:2017-07-17 22:50:11

标签: python nlp gensim word2vec

如您所知,skip-gram模型基于元素的长序列和每个元素的上下文来学习元素的向量表示。该模型通常通过连接巨大的文本集合而应用于自然语言。这些文档通常连接成一个非常长的文本行,不区分新文档的开始和结束时间。这最终在NLP中不是一个问题,因为涉及重叠文档的模型训练实例的百分比只占实例总数的一小部分。在教育数据中,由于较短的序列和较多的用户(以前的#34;文件"在NLP中),这种重叠可以更高。这也是其他行为数据集中的问题,而不仅仅是教育。在检查学习的向量并发现模型已经确定许多学生时,问题就出现了。第一次遇到的元素与学生非常相似。最后遇到的元素。这是"包装"的副产品。 gensim输入中的行数(跨越一个学生序列末尾的实例和另一个学生的序列的开头)。如何识别代码中发生重叠的位置,并禁止在gensim培训期间发生重叠。

1 个答案:

答案 0 :(得分:1)

在skip-gram中,单词仅用于预测可调整window参数中的其他单词。

此外,在语料库中提供的单个文本(句子)之间不执行“包装” - 单词仅包括在同一示例中的单词的窗口中。例如,给出以下两句话语料库......

['cats', 'chase', 'mice']
['bats', 'eat', 'mosquitos']

......没有包含'老鼠'和'蝙蝠'的窗户。

因此,如果在您的训练中,单词对彼此产生了不良影响,因为它们出现在彼此的附近上下文窗口中,您可以减少window参数,或者将文本拆分为更多示例窗户不应达到的边界。

(代码中没有应用重叠,因此无需查找/更改该代码。)