首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继续训练Doc2Vec模型

继续训练Doc2Vec模型
EN

Stack Overflow用户
提问于 2015-05-10 19:04:33
回答 2查看 3.8K关注 0票数 5

Gensim的官方教程明确指出,可以继续训练(加载)模型。我知道,根据文档,不可能继续训练从word2vec格式加载的模型。但是,即使从零开始生成模型,然后尝试调用train方法,也不可能访问为train提供的LabeledSentence实例的新创建的标签。

代码语言:javascript
复制
>>> sentences = [LabeledSentence(['first', 'sentence'], ['SENT_0']), LabeledSentence(['second', 'sentence'], ['SENT_1'])]
>>> model = Doc2Vec(sentences, min_count=1)
>>> print(model.vocab.keys())
dict_keys(['SENT_0', 'SENT_1', 'sentence', 'first', 'second'])
>>> sentence = LabeledSentence(['third', 'sentence'], ['SENT_2'])
>>> model.train([sentence])
>>> print(model.vocab.keys())

# At this point I would expect the key 'SENT_2' to be present in the vocabulary, but it isn't
dict_keys(['SENT_0', 'SENT_1', 'sentence', 'first', 'second'])

是否有可能用新的句子继续训练Gensim的Doc2Vec模型?如果是的话,怎样才能做到呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-12 21:38:00

我的理解是,这是不可能的任何新的标签。只有当新数据具有与旧数据相同的标签时,我们才能继续进行培训。因此,我们正在训练或重新调整已经学过的词汇的权重,但却无法学习新的词汇。

在培训期间添加新标签/单词/句子有一个类似的问题:https://groups.google.com/forum/#!searchin/word2vec-toolkit/online$20word2vec/word2vec-toolkit/L9zoczopPUQ/_Zmy57TzxUQJ

另外,您可能需要密切关注下面的讨论:https://groups.google.com/forum/#!topic/gensim/UZDkfKwe9VI

更新:如果你想在一个已经受过训练的模型中添加新单词,请看一下在线word2vec:http://rutumulkar.com/blog/2015/word2vec/

票数 5
EN

Stack Overflow用户

发布于 2018-03-18 21:56:13

根据gensim文档,doc2vec不支持在线/增量培训。

请参阅https://github.com/RaRe-Technologies/gensim/issues/1019

我仍然可以将新文档添加到现有的doc2vec模型中(但有些文档由于分段错误而崩溃),但大多数类似的查询都不能处理新添加的文档(因此这种方法似乎毫无用处)。

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

https://stackoverflow.com/questions/30155506

复制
相关文章

相似问题

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