第一种情况 直接将文件传入
文件内容应该是有空格或 其他风格符 分割好的
import gensim
sentences = gensim.models.word2vec.Text8Corpus("corpus_cut.txt")
print("sentences格式:", sentences)
# 训练 skip-gram 模型
model = gensim.models.Word2Vec(sentences, size=5, min_count=2, window=3,
iter=15)
model.wv.save_word2vec_format('vector.txt', binary=False)
注意其中的两个 wordvec 的大小写
保存的文本内容:
16 5
新浪 -0.06905467 -0.023766568 0.07842334 0.006353028 0.0049496214
湖人 0.048101567 -0.014213783 0.047882263 -0.076561205 -0.08102651
NBA -0.093392216 0.018996047 0.06596676 -0.085236624 -0.028979963
...
第二种情况 直接传入分割好的列表
model2 = gensim.models.Word2Vec([["我","爱","中国"],
["我", "爱","共产党"],
["我","爱","祖国"]],
size=5, min_count=1, window=3, iter=15)
model2.wv.save_word2vec_format("vector2.txt", binary=False)
内容:
5 5
我 0.017137242 -0.09880305 -0.09792759 0.033876248 -0.08942874
爱 -0.05069774 -0.091354795 -0.06785396 0.009330186 -0.06874075
中国 -0.0059655565 -0.0077055786 0.08764696 -0.0022335218 0.021677464
共产党 -0.07774594 -0.07243683 0.04755306 -0.056220874 -0.03266464
祖国 0.016343607 0.054410834 0.012110993 -0.051844314 -0.058297116
3 加载保存的模型为新模型 并进行相应的运算
model3 = gensim.models.KeyedVectors.load_word2vec_format("vector2.txt",
binary=False)
print(model3.similarity("我", "爱"))
print(model3.get_vector("中国"))
结果:
0.8789337
[-0.00596556 -0.00770558 0.08764696 -0.00223352 0.02167746]