增量Word2VEC模型培训



我试图训练由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")

默认情况下,gensim word2vec仅一次词汇 - 发现一次。当您将像sentences这样的语料库提供给初始构造函数(自动词汇can train)或调用build_vocab()时,它将发生。虽然您可以继续致电train(),但不会识别新单词。

有支持(我将考虑实验)用新的文本示例调用build_vocab()和一个update=True参数来扩展词汇。虽然这会让进一步的train()调用两个旧单词,但有许多警告:

  • 这样的顺序训练可能不会导致模型像提供所有示例一样良好的模型,或者是自洽的。(例如,持续的培训可能会漂移单词,从较早的批次中任意地学习,而不是较早的批次。)
  • train()的此类调用应使用可选参数之一,以准确估算新的批次大小(在单词或示例中),以便正确完成学习率的衰减和进度杂物
  • 核心算法和基本理论并非基于此类批处理,而是从高低到低点的多次学习率重新启动,因此结果的解释以及结果向量的相对强度/平衡不是 - 不是等

如果尽可能,将所有示例组合到一个语料库中,然后进行一个大型词汇量,然后训练。

最新更新