これを行うための「好ましい」方法があるが、gensimが期待する形式を複製することは非常に簡単であるかわからない:
data = pd.DataFrame([[0.15941701, 0.84058299],
[0.12190033, 0.87809967],
[0.06293788, 0.93706212]],
index=["these", "be", "words"])
np.savetxt('test.txt', data.reset_index().values,
delimiter=" ",
header="{} {}".format(len(data), len(data.columns)),
comments="",
fmt=["%s"] + ["%.18e"]*len(data.columns))
ヘッダーで2スペースで区切られた整数を、数語彙の単語の数と単語ベクトルの長さ。各行の最初の列は単語そのものです。残りの列は単語ベクトルの要素です。 fmtの不思議さは、最初の要素を文字列としてフォーマットし、残りはfloatとしてフォーマットすることです。
はその後gensimでこれをロードし、何を行うことができます。
import gensim
from gensim.models.keyedvectors import KeyedVectors
word_vectors = KeyedVectors.load_word2vec_format('test.txt', binary=False)
word_vectors.similarity('these', 'words')