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



我研究了 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']])

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

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

最新更新