我可以使用 gensim word2vec 或 doc2vec 分两次构建 vocaburay 吗?
Can i build vocaburay in twice with gensim word2vec or doc2vec?
我有两个不同的语料库,我想要的是用两者训练模型并做到这一点我认为它可能是这样的:
model.build_vocab(sentencesCorpus1)
model.build_vocab(sentencesCorpus2)
可以吗?
否:每次调用 build_vocab(corpus)
时,它都会从头开始创建新的词汇表——丢弃任何先前的词汇表。
您可以向 build_vocab()
、update=True
提供一个可选参数,它会尝试添加到现有词汇表中。然而:
它不是 designed/tested 考虑到 Doc2Vec
,截至目前(2018 年 2 月),将它与 Doc2Vec
一起使用不太可能并且经常导致 memory-fault 崩溃。 (参见 https://github.com/RaRe-Technologies/gensim/issues/1019。)
仍然最好 train()
将所有可用数据放在一起 - 任何类型的 multiple-calls 到 train()
,每次都有不同的数据子集,引入其他模糊模型 quality/correctness 中的权衡很容易出错。 (并且,当调用 train()
时,一定要为其所需参数提供正确的值——大多数在线示例中显示的做法通常仅适用于 build_vocab()
被调用一次的情况,并且具有完全相同的稍后调用 train()
.)
的文本
我有两个不同的语料库,我想要的是用两者训练模型并做到这一点我认为它可能是这样的:
model.build_vocab(sentencesCorpus1)
model.build_vocab(sentencesCorpus2)
可以吗?
否:每次调用 build_vocab(corpus)
时,它都会从头开始创建新的词汇表——丢弃任何先前的词汇表。
您可以向 build_vocab()
、update=True
提供一个可选参数,它会尝试添加到现有词汇表中。然而:
它不是 designed/tested 考虑到
Doc2Vec
,截至目前(2018 年 2 月),将它与Doc2Vec
一起使用不太可能并且经常导致 memory-fault 崩溃。 (参见 https://github.com/RaRe-Technologies/gensim/issues/1019。)仍然最好
train()
将所有可用数据放在一起 - 任何类型的 multiple-calls 到train()
,每次都有不同的数据子集,引入其他模糊模型 quality/correctness 中的权衡很容易出错。 (并且,当调用train()
时,一定要为其所需参数提供正确的值——大多数在线示例中显示的做法通常仅适用于build_vocab()
被调用一次的情况,并且具有完全相同的稍后调用train()
.) 的文本