我试图逐步训练gensim生成的word2vec模型。但是我发现词汇量没有增加,只更新了word2vec模型权重。但我需要更新词汇量和模型大小。
#Load data
sentences = []
....................
#Training
model = Word2Vec(sentences, size=100)
model.save("modelbygensim.txt")
model.save_word2vec_format("modelbygensim_text.txt")
#Incremental Training
model = Word2Vec.load('modelbygensim.txt')
model.train(sentences)
model.save("modelbygensim_incremental.txt")
model.save_word2vec_format("modelbygensim_text_incremental.txt")
答案 0 :(得分:7)
默认情况下,gensim Word2Vec只进行一次词汇发现。当您向初始构造函数(执行自动词汇扫描和训练)提供类似sentences
的语料库时,或者当您调用build_vocab()
时,会发生这种情况。虽然您可以继续致电train()
,但不会识别任何新词。
支持(我会考虑实验性)使用新的文本示例调用build_vocab()
和update=True
参数来扩展词汇表。虽然这会让更多的train()
电话同时训练新旧词汇,但仍有许多警告:
train()
的此类调用应使用其中一个可选参数来准确估计新的批量大小(单词或示例),以便正确完成学习率衰减和进度记录如果可能,将所有示例合并为一个语料库,然后进行一次大型词汇发现,然后进行培训。