在 Tensorflow 中训练 wordvec,导入到 Gensim

Training wordvec in Tensorflow, importing to Gensim

我正在训练来自 tensorflow 教程的 word2vec 模型。

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/word2vec/word2vec_basic.py

训练后我得到了嵌入矩阵。我想保存它并将其作为经过训练的模型导入 gensim。

要在gensim中加载模型,命令是:

model = Word2Vec.load_word2vec_format(fn, binary=True)

但是如何从 Tensorflow 生成 fn 文件?

谢谢

一种方法是以 non-binary Word2Vec 格式保存文件,基本上如下所示:

num_words vector_size  # this is the header
label0 x00 x01 ... x0N
label1 x10 x11 ... x1N
...

示例:

2 3
word0 -0.000737 -0.002106 0.001851
word1 -0.000878 -0.002106 0.002834

保存文件然后用 kwarg 加载 binary=False:

model = Word2Vec.load_word2vec_format(filename, binary=False)

print(model['word0'])

更新

加载模型的新方法是:

from gensim.models.keyedvectors import KeyedVectors

model = KeyedVectors.load_word2vec_format(model_path, binary=False)