模型保存
在使用Word2vec 进行模型保存的时候,有两种保存方法:
- 加载保存的模型,如果再训练,会更新原来模型的向量,例如,原始的模型有预料
你好
, 将这个模型保存后,加载后新的预料里也有你好
,那么下面的形式将会更新你好
的Embedding
from gensim.models import Word2Vec
# 假设已经有了一个模型叫 model
model.wv.save(file_path)
对应的加载方法:
model = Word2Vec.load(file_path)
# 接下来整理一些自己的语料
corpus = [['你好', '我爱', 'python'], ['编程', '很美']]
model.build_vocab(corpus, update=True)
model.train(corpus, total_examples=model.corpus_count, epochs=model.iter)
- 加载保存的模型,再训练,不会更新原有的向量表示
保存成 orginal C word2vec-tool 的格式,网上很多预训练模型都保存成了这种模式
model.wv.save_word2vec_format(file_path)
加载模式如下:
from gensim.models import Word2Vec
from gensim.models import KeyedVectors
model = Word2Vec(size=300, sg=1, min_count=1)
# 这里设置的维数必须和预训练的模型一致才行
# 加载预训练的模型
pre_model = KeyedVectors.load_word2vec_format(model_path, binary=False)
# 训练新的模型
model.build_vocab([list(pre_model.vocab.keys())], update=True)
# 加载预训练模型
model.intersect_word2vec_format(model_path, binary=False, lockf=1.0)
model.train(corpus=新的预料, total_examples=model.corpus_count, epochs=model.epochs)