我可以使用gensim word2vec或doc2vec两次构建vocaburay吗?

时间:2018-02-22 17:53:39

标签: python word2vec gensim doc2vec

我有两个不同的语料库,我想要的是用两者来训练模型并且做它我认为它可能是这样的:

model.build_vocab(sentencesCorpus1)
model.build_vocab(sentencesCorpus2)

会不会?

1 个答案:

答案 0 :(得分:0)

否:每当你打电话给build_vocab(corpus)时,它就会从头开始创造一个新的词汇 - 丢弃任何先前的词汇。

您可以为build_vocab()update=True提供可选参数,该参数会尝试添加到现有词汇表中。但是:

  • 它没有考虑到Doc2Vec进行设计/测试,截至目前(2018年2月),将其与Doc2Vec一起使用不太可行,并且经常导致记忆 - 故障崩溃。 (见https://github.com/RaRe-Technologies/gensim/issues/1019。)

  • 最好train()将所有可用数据放在一起 - 对train()的任何类型的多次调用,每次都有不同的数据子集,引入了其他模糊的权衡模型质量/正确性容易出错。 (并且,在调用train()时,请确保为其所需参数提供正确的值 - 大多数在线示例中显示的做法通常仅适用于build_vocab()被调用一次的情况,完全相同稍后调用train()的文本。)