我想从头开始训练我的单词嵌入,我使用gensim.models。Word2vec是我的模型。我的语料库太大了,我不能一次读它,所以我把我的语料库文件分成了许多部分然后迭代地训练我的模型。我发现这很有帮助:
train(corpus_iterable=None, corpus_file=None, total_examples=None, total_words=None, epochs=None, start_alpha=None, end_alpha=None, word_count=0, queue_factor=2, report_delay=1.0, compute_loss=False, callbacks=(), **kwargs)
我对参数"total_words"感到困惑.它是指所有语料库的单词总数还是现在训练的部分语料库?
更新:
我的代码是这样的:model = gensim.models.word2vec.Word2Vec.load(init_model)
for i in range(parts):
model.build_vocab(corpus_file=this_part_file_name, update=True)
model.train(corpus_file = this_part_file_name,
total_words=word_count(this_part_file_name) )
参数total_words应该是word_count(this_part_file_name)
还是word_count(ALL_my_corpus_file)
?
total_words
是语料库中句子中所有原始单词的计数。您只需要提供两个中的一个:total_examples
或total_words
。如果运行build_vocab()
,则可以从model.corpus_total_words
获得总字数的值。还有一个计数——word_count
,它指的是已经训练过的单词的计数。如果你想训练所有的单词,你可以将其设置为0,但这是可选的。
更多信息:https://radimrehurek.com/gensim/models/word2vec.html