将输出(上下文)嵌入保存在word2vec(gensim实现)中作为最终模型

时间:2017-03-29 15:57:21

标签: python gensim word2vec word-embedding

我已经在gensim中研究了word2vec实现,我知道输入向量在syn0,输出向量在syn1syn1neg,如果是负采样。

我知道我可以访问输入和输出嵌入之间的相似性,如下所示:

outv = KeyedVectors()
outv.vocab = model.wv.vocab
outv.index2word = model.wv.index2word  
outv.syn0 = model.syn1neg 
inout_similars = outv.most_similar(positive=[model['cousin']])

我的问题是,是否可以将输出嵌入(来自syn1syn1neg矩阵)保存为最终模型。例如,当model.save()时,它输出输出嵌入(或者恰好在word2vec.py的代码中我可以访问和修改它)。我需要这个,以便使用这些输出嵌入作为分类器的输入。我以前用蛮力方法做过,所以我想轻松访问输出嵌入。

1 个答案:

答案 0 :(得分:2)

您的对象outv作为KeyedVectors的一个实例,有自己的save()方法(继承自SaveLoad中定义的gensim/utils.py超类)和{ {1}}方法。每个人都会以稍后可以重新加载到Python代码中的方式保存它们。