Nlp 如何在gensim中使用build_vocab? 扩大我的词汇量
例如,我的想法是,当我使用doc2vec来训练模型时,它只是从数据集中构建词汇表。如果我想扩展它,我需要使用build_vocab()Nlp 如何在gensim中使用build_vocab? 扩大我的词汇量,nlp,word2vec,gensim,doc2vec,Nlp,Word2vec,Gensim,Doc2vec,例如,我的想法是,当我使用doc2vec来训练模型时,它只是从数据集中构建词汇表。如果我想扩展它,我需要使用build_vocab() 我应该在哪里使用它?我应该把它放在“gensim.doc2vec()”后面吗 例如: sentences = gensim.models.doc2vec.TaggedLineDocument(f_path) dm_model = gensim.models.doc2vec.Doc2Vec(sentences, dm=1, size=300, window=8,
sentences = gensim.models.doc2vec.TaggedLineDocument(f_path)
dm_model = gensim.models.doc2vec.Doc2Vec(sentences, dm=1, size=300, window=8, min_count=5, workers=4)
dm_model.build_vocab()
您应该遵循gensim文档/教程/笔记本或在线教程中的工作示例,以了解哪些步骤是必要的,顺序是什么 特别是,如果您在
Doc2Vec()
初始化中提供了句子
语料库,它将自动完成词汇发现过程和所有训练,因此您无需自己调用build\u vocab()
或train()
。而且,您永远不会在没有参数的情况下调用build\u vocab()
。(文档或在线中的任何工作示例都不会像您的代码那样工作——因此,在您遵循示例并了解它们为什么这样做之前,不要临时创作新东西。)
build_vocab()
中有一个可选的update
参数,该参数旨在允许扩展早期培训课程中的词汇表(为使用新单词进行进一步培训做准备)。但是,它仅针对Word2Vec
型号进行了开发/测试–有报告称,当与Doc2Vec
一起使用时,它会导致崩溃。即使在Word2Vec
中,它的整体效果和最佳使用方式在所有培训模式中都不清楚。因此,我不推荐使用它,除了那些能够阅读和解释源代码的专家,还有许多专家需要自己权衡。如果你收到一大块新的文本,有了新的单词,最好的有根据的行动方针,也最容易评估/推理,就是使用所有文本示例的组合语料库从头开始重新训练 单独调用build_vocab或在Doc2Vec初始化期间调用build_vocab有什么好处吗?特别是在速度方面,如果您在实例化Doc2Vec
时提供了一个语料库,那么初始化方法只需调用build\u vocab()
,然后为您调用train()
。(如果您不提供语料库,它只会跳过该步骤并等待您调用它们。)因此,实例化/初始化/构建vocab/train所需的总时间是相同的。显式地这样做只会更清楚地显示代码中的每个步骤,并让您可以选择在每个步骤之间执行额外的步骤,或者改变通常的参数。(通常只有更高级的修补程序需要这样做。)