繁体   English   中英

如何从共现(bigram)计数列表中训练 gensim 中的 word2vec?

[英]How can you train a word2vec in gensim from a list of co-occurrence (bigram) counts?

我正在尝试通过使用语料库作者在此处提供的预先计算的双字词计数共现计数来训练带有COHA 语料库的 word2vec 模型。

我怎样才能使用gensim实现这一目标

Gensim 的Word2Vec类希望它的训练语料库是一个可迭代的实际文本(单词标记列表)。 最内层的训练循环,其中 skip-gram 算法在上下文窗口内的词对上工作,没有考虑到允许您提供更多原始语料库变体。

由于该语料库看起来(或很快将)作为全文提供,我建议以这种形式获取和使用它。 然后,您可以修改不同的window值。

如果您绝对需要使用 2-gram,那么它们会非常接近地模拟带有window=1的 skip-gram 训练,因此您可以尝试从该数据创建合成语料库。

也就是说,对于具有出现次数的每个二元组,创建那么多的 2 字文本。 (例如,如果数据包括(('fat', 'cat'), 3) - 表示双字组"fat cat"在真实文本中出现了 3 次,则创建伪文本[['fat', 'cat'], ['fat', 'cat'], ['fat', 'cat']] .) 然后,将所有这些 2 个单词的文本连接并随机排列在一起 - 这样相同或相似的二元词就不会出现在运行/团块中. (交错对比示例比长时间运行的相同/相似文本更适合模型训练。)

然后使用合成文本集来训练Word2Vec 你应该得到的词向量在实用性上与你在真实文本上得到的非常相似, window=1, sg=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM