gensim word2vec 中的“corpus_count”是什么?

问题描述

我想从头开始训练我的词嵌入,我使用 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_examplestotal_words。如果您运行 build_vocab(),您可能会从 model.corpus_total_words 获得总字数的值。 还有另一个计数 - word_count 指的是已经训练的单词计数。如果要对所有单词进行训练,可以将其设置为 0,但这是可选的。

更多信息:https://radimrehurek.com/gensim/models/word2vec.html