如何从共现(bigram)计数列表中训练gensim中的单词2vec



我正试图使用COHA语料库,通过使用语料库作者在此处提供的预先计算的bigram计数同现计数来训练word2vec模型。

如何使用gensim实现这一点?

Gensim的Word2Vec类希望其训练语料库是实际文本的可迭代语料库(单词标记列表(。最内部的训练循环,即skip gram算法对上下文窗口内的成对单词进行处理的循环,并没有考虑到允许您提供更多原始语料库变体的因素。

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

如果你绝对需要使用2-gram,那么它们确实非常类似于用window=1进行的跳跃gram训练,所以你可以尝试从这些数据创建一个合成语料库。

也就是说,对于每一个有出现次数的bigram,都要创建那么多的2字文本。(例如,如果数据包括(('fat', 'cat'), 3)——这意味着"fat cat"在真实文本中出现了3次,则创建伪文本[['fat', 'cat'], ['fat', 'cat'], ['fat', 'cat']]。(然后,连接&把所有这些两个字的文本混在一起,这样就不会出现相同或相似的双字组。(交错对比的例子比长时间运行相同/相似的文本更适合模型训练。(

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

最新更新