首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >total_words必须与corpus_file参数一起提供

total_words必须与corpus_file参数一起提供
EN

Stack Overflow用户
提问于 2019-10-31 01:07:27
回答 1查看 827关注 0票数 0

我正在用语料库文件训练doc2vec,这是非常巨大的。

代码语言:javascript
复制
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的价值。

编辑:

代码语言:javascript
复制
total_words=model.corpus_total_words

是这样的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 18:59:50

根据当前的文档 (gensim 3.8.1,2019年10月),您不需要同时提供total_examplestotal_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_countcorpus_total_words给出的数字应该与您在命令行中运行wc your_file_path所看到的行和字计数相匹配。

(如果您使用的是经典的、普通的Python迭代语料库选项(它不能有效地使用线程),那么将total_examplestotal_words同时提供给train()是没有好处的--它将只使用其中一个来估计进度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58635642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档