Python gensim库使用word2vec
-
常见:
gensim.models.word2vec.Word2Vec(size=300, sg=1, min_count=1)
-
加载和保存模型
- gensim生成的模型有三种:
- 第一种是 默认的model文件(可以继续 进行tuning)
- 第二种是bin文件(c风格)
- 第三种是 txt文件(比较大)
- gensim生成的模型有三种:
from gensim.models import Word2Vec
# 第一种
model = Word2Vec.load(word2vec.model)
model.save('word2vec.model')
# 第二种
model = gensim.models.KeyedVectors.load_word2vec_format('word2vec.bin',binary=True)
model.wv.save_word2vec_format('word2vec.bin')
# 第三种
gensim.models.KeyedVectors.load_word2vec_format('word2vec.txt',binary=False)
model.wv.save_word2vec_format('word2vec.txt')
- 在预训练基础上训练自己的预料
- 第一种方式
model = gensim.models.Word2Vec.load(word2vec.model) more_sentences = [ ['Advanced', 'users', 'can', 'load', 'a', 'model', 'and', 'continue', 'training', 'it', 'with', 'more', 'sentences'] ] model.build_vocab(more_sentences, update=True) model.train(more_sentences, total_examples=model.corpus_count, epochs=model.iter)
- 第二种方式
# 首先初始化一个word2vec 模型: w2v_model = Word2Vec(size=300, sg=1, min_count=0) # 注意:min_count=0一定要设置,因为w2v_model.build_vocab会自动屏蔽vocab w2v_model.build_vocab(more_sentences) # 再加载第三方预训练模型: third_model = KeyedVectors.load_word2vec_format(third_model_path, binary=True) # 通过 intersect_word2vec_format()方法merge词向量: w2v_model.build_vocab([list(third_model.vocab.keys())], update=True) w2v_model.intersect_word2vec_format(third_model_path, binary=False, lockf=1.0) w2v_model.train(more_sentences, total_examples=w2v_model.corpus_count, epochs=w2v_model.epochs)