问题描述
我想用 Gensim 训练一个 word2vec 模型。我预处理了我的语料库,该语料库由来自特定报纸的数十万篇文章组成。我对它们进行了预处理(小写、词形还原、去除停用词和标点符号等),然后制作一个列表列表,其中每个元素都是一个单词列表。
corpus = [['first','sentence','second','dictum','third','saying','last','claim'],['first','adage','judgment','pronouncement']]
我想知道这是否正确,或者应该如下所示:
corpus = [['first','sentence'],['second','dictum'],['third','saying'],['last','adage'],'judgment'],'pronouncement']]
解决方法
两者都可以最低限度地工作。
但在第二个中,无论您的 window
参数有多大,所有文本的长度都不超过 2 个标记的事实意味着单词只会影响它们的直接邻居。这可能不是您想要的。
较长的文本没有真正的伤害,除了要注意:
- 同一列表中的所有令牌将出现在彼此
window
大小的邻域中 - 因此不要将不应该暗示任何实际用途的单词放在一起。 (但是,在足够大的语料库中,即使是一些杂乱无章的不相关文本也不会产生太大影响,被大量文本中的真实关系淹没。) - 每个文本的长度不应超过 10,000 个标记,因为内部实施限制会导致超出该限制的任何标记都将被忽略。