我已经在gensim中研究了word2vec
实现,我知道输入向量在syn0
,输出向量在syn1
和syn1neg
,如果是负采样。
我知道我可以访问输入和输出嵌入之间的相似性,如下所示:
outv = KeyedVectors()
outv.vocab = model.wv.vocab
outv.index2word = model.wv.index2word
outv.syn0 = model.syn1neg
inout_similars = outv.most_similar(positive=[model['cousin']])
我的问题是,是否可以将输出嵌入(来自syn1
或syn1neg
矩阵)保存为最终模型。例如,当model.save()
时,它输出输出嵌入(或者恰好在word2vec.py
的代码中我可以访问和修改它)。我需要这个,以便使用这些输出嵌入作为分类器的输入。我以前用蛮力方法做过,所以我想轻松访问输出嵌入。
答案 0 :(得分:2)
您的对象outv
作为KeyedVectors
的一个实例,有自己的save()
方法(继承自SaveLoad
中定义的gensim/utils.py
超类)和{ {1}}方法。每个人都会以稍后可以重新加载到Python代码中的方式保存它们。