首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在线更新Word2Vec

在线更新Word2Vec
EN

Stack Overflow用户
提问于 2018-12-04 10:03:24
回答 1查看 837关注 0票数 0

我在在线更新我的Word2Vec模型时遇到了问题。

我有一份文件,用它建立模型。但是这个文档可以用新单词进行更新,我需要在一般情况下更新词汇表和模型。

我知道在gensim 0.13.4.1中我们可以做到这一点

我的代码:

代码语言:javascript
复制
model = gensim.models.Word2Vec(size=100, window=10, min_count=5, workers=11, alpha=0.025, min_alpha=0.025, iter=20)
model.build_vocab(sentences, update=False)

model.train(sentences, epochs=model.iter, total_examples=model.corpus_count)

model.save('model.bin')

在这之后我有了新的词汇。用于e.x.:

代码语言:javascript
复制
sen2 = [['absd', 'jadoih', 'sdohf'], ['asdihf', 'oisdh', 'oiswhefo'], ['a', 'v', 'b', 'c'], ['q', 'q', 'q']]

model.build_vocab(sen2, update=True)
model.train(sen2, epochs=model.iter, total_examples=model.corpus_count)

有什么问题,我怎么解决我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 10:33:13

您的模型被设置为忽略少于5次出现的单词:min_count=5。实际上,它需要在一个build_vocab()调用中至少出现5次。(它不会记得之前有3次,然后看到2次新事件,然后对所有5次进行训练。它需要一批全部5次或更多次。)

如果您只使用显示的小数据集调用您的更新程序,则不会有新的单词进行删除。

更广泛地说,如果有可能的话,您应该使用所有新旧数据对整个模型进行再培训。这将确保新旧词具有同等的影响力,并根据它们的组合频率对任何单词进行适当处理。对Word2Vec模型进行小规模的增量更新可能会使较新的单词或继续重复出现的旧单词脱离原来(或更早的)批中训练出来的旧单词。(只有经过相同交错训练周期的单词才能在位置上相互调整。)

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

https://stackoverflow.com/questions/53610331

复制
相关文章

相似问题

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