Gensim的官方教程明确指出,可以继续训练(加载)模型。我知道,根据文档,不可能继续训练从word2vec格式加载的模型。但是,即使从零开始生成模型,然后尝试调用train方法,也不可能访问为train提供的LabeledSentence实例的新创建的标签。
>>> 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模型?如果是的话,怎样才能做到呢?
发布于 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/
发布于 2018-03-18 21:56:13
根据gensim文档,doc2vec不支持在线/增量培训。
请参阅https://github.com/RaRe-Technologies/gensim/issues/1019
我仍然可以将新文档添加到现有的doc2vec模型中(但有些文档由于分段错误而崩溃),但大多数类似的查询都不能处理新添加的文档(因此这种方法似乎毫无用处)。
https://stackoverflow.com/questions/30155506
复制相似问题