我已经在tensorflow中训练了word2vec模型。但是当我保存会话时,它仅输出model.ckpt.data
/ .index
/ .meta
文件。
我当时正在考虑在检索最近的单词时实施KNN方法。我看到了使用gensim的答案,但是如何将我的tensorflow word2vec模型首先保存到.txt
中?
最佳答案
只需将嵌入矩阵评估为一个numpy数组,并将其与已解析的单词一起写入文件。样例代码:
vocabulary_size = 50000
embedding_size = 128
# Assume your word to index map
word_to_idx = { ... }
# Assume your embeddings variable
embeddings = tf.Variable(tf.random_uniform([vocabulary_size, embedding_size],0,1))
with tf.Session() as sess:
embeddings_val = sess.run(embeddings)
with open('embeddings.txt', 'w') as file_:
for i in range(vocabulary_size):
embed = embeddings_val[i, :]
word = word_to_idx[i]
file_.write('%s %s\n' % (word, ' '.join(map(str, embed))))