gensim word2vec - 更新模型数据
gensim word2vec - update model data
我遇到的问题与此处讨论的问题类似 - gensim word2vec - updating word embeddings with newcoming data
我有以下代码将模型保存为 text8_gensim.bin
sentences = word2vec.Text8Corpus('train/text8')
model = word2vec.Word2Vec(sentences, size=200, workers=12, min_count=5,sg=0, window=8, iter=15, sample=1e-4,alpha=0.05,cbow_mean=1,negative=25)
model.save("./savedModel/text8_gensim.bin")
这是向保存的模型添加更多数据的代码(加载后)
fname="savedModel/text8_gensim.bin"
model = word2vec.Word2Vec.load(fname)
model.epochs=15
#Custom words
docs = ["start date", "end date", "eft date","termination date"]
model.build_vocab(docs, update=True)
model.train(docs, total_examples=model.corpus_count, epochs=model.epochs)
model.wv.similarity('start','eft')
模型加载正常;但是,当我尝试调用 model.wv.similarity 函数时,出现以下错误
按键错误:"word 'eft' not in vocabulary"
我是不是漏掉了什么?
那些 docs
的格式不正确:每个文本都应该是字符串标记列表,而不是字符串。
并且,相同的 min_count
阈值将应用于增量更新:频率低于该阈值的词将被忽略。 (由于 min_count
高于 1 几乎总是一个好主意,因此在任何更新中只出现一次的词将永远不会添加到模型中。)
逐渐添加单词会引入很多模糊的问题,比如在模型质量、平衡早期与晚期训练的效果、alpha
学习率的管理等方面的正确选择不明确。它不一定会改进您的模型;如果选择错误,可能会使情况变得更糟,通过使用新文本调整一些单词,使它们与早期批次的单词不兼容。
所以要小心,并始终使用可重复的自动定量质量检查来检查您的更改是否有帮助。 (最安全的方法是在一个组合的语料库中使用新旧文本进行再训练,这样所有的词在所有数据上都能平等地相互训练。)
我遇到的问题与此处讨论的问题类似 - gensim word2vec - updating word embeddings with newcoming data
我有以下代码将模型保存为 text8_gensim.bin
sentences = word2vec.Text8Corpus('train/text8')
model = word2vec.Word2Vec(sentences, size=200, workers=12, min_count=5,sg=0, window=8, iter=15, sample=1e-4,alpha=0.05,cbow_mean=1,negative=25)
model.save("./savedModel/text8_gensim.bin")
这是向保存的模型添加更多数据的代码(加载后)
fname="savedModel/text8_gensim.bin"
model = word2vec.Word2Vec.load(fname)
model.epochs=15
#Custom words
docs = ["start date", "end date", "eft date","termination date"]
model.build_vocab(docs, update=True)
model.train(docs, total_examples=model.corpus_count, epochs=model.epochs)
model.wv.similarity('start','eft')
模型加载正常;但是,当我尝试调用 model.wv.similarity 函数时,出现以下错误
按键错误:"word 'eft' not in vocabulary"
我是不是漏掉了什么?
那些 docs
的格式不正确:每个文本都应该是字符串标记列表,而不是字符串。
并且,相同的 min_count
阈值将应用于增量更新:频率低于该阈值的词将被忽略。 (由于 min_count
高于 1 几乎总是一个好主意,因此在任何更新中只出现一次的词将永远不会添加到模型中。)
逐渐添加单词会引入很多模糊的问题,比如在模型质量、平衡早期与晚期训练的效果、alpha
学习率的管理等方面的正确选择不明确。它不一定会改进您的模型;如果选择错误,可能会使情况变得更糟,通过使用新文本调整一些单词,使它们与早期批次的单词不兼容。
所以要小心,并始终使用可重复的自动定量质量检查来检查您的更改是否有帮助。 (最安全的方法是在一个组合的语料库中使用新旧文本进行再训练,这样所有的词在所有数据上都能平等地相互训练。)