我正在用语料库文件训练doc2vec,这是非常巨大的。
model = Doc2Vec(dm=1, vector_size=200, workers=cores, comment='d2v_model_unigram_dbow_200_v1.0')
model.build_vocab(corpus_file=path)
model.train(corpus_file=path, total_examples=model.corpus_count, epochs=model.iter)我想知道如何获得total_words的价值。
编辑:
total_words=model.corpus_total_words是这样的吗?
发布于 2019-10-31 18:59:50
根据当前的文档 (gensim 3.8.1,2019年10月),您不需要同时提供total_examples和total_words,只需提供其中一个:
为了支持从(初始) alpha到min_alpha的线性学习速率衰减,以及精确的进度百分比日志记录,必须提供total_examples (文档计数)或total_words (文档中原始单词的计数)。如果文档与前面提供给build_vocab()的语料库相同,则只需使用total_examples=self.corpus_count即可。
但是,新的corpus_file选项确实两者都需要,文档注释是错误的。我已经提交了臭虫来修复这个文档疏忽。
是的,模型缓存了在最近的build_vocab()内部model.corpus_total_words中观察到的单词数,所以total_words=model.corpus_total_words应该为您做正确的事情。
当使用corpus_file空间分隔的文本输入选项时,corpus_count和corpus_total_words给出的数字应该与您在命令行中运行wc your_file_path所看到的行和字计数相匹配。
(如果您使用的是经典的、普通的Python迭代语料库选项(它不能有效地使用线程),那么将total_examples和total_words同时提供给train()是没有好处的--它将只使用其中一个来估计进度。
https://stackoverflow.com/questions/58635642
复制相似问题