2
私はword2vecを使用して2つの単語の類似点を作成しようとしています。手動で行いながら、成功しました。私は2つの大きなtxtファイルを持っています。私はループを作りたい。私はルーピングのためにいくつかの方法を試しましたが、失敗しました。私は専門家に頼むことにしました。ループ内の2つの入力でWord2Vecを使用するにはどうすればよいですか?
私のコード:
import gensim
model = gensim.models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
with open('myfile1.txt', 'r') as f:
data1 = f.readlines()
with open('myfile2.txt', 'r') as f:
data2 = f.readlines()
data = zip(data1, data2)
with open('myoutput.txt', 'a') as f:
for x in data:
output = model.similarity(x[1], x[0]) # reading each word form each files
out = '{} : {} : {}\n'.format(x[0].strip(), x[1].strip(),output)
f.write(out)
私INPUT1、(テキスト1)
street
spain
ice
man
私INPUT2(テキスト2)私は、この出力(output.txtとを)したい
florist
paris
cold
kid
street florist 0.19991447551502498
spain paris 0.5380033328157873
ice cold 0.40968857572410483
man kid 0.42953233870042506
インデントとエラーを修正してください。 –
私はあなたのコードをチェックして、それは動作しています!あなたが直面している問題は何ですか?何かエラーが出ていますか? –
ファイル: "testing1.py"、行14、 出力= model.similarity(x [1]、x [0])#各ファイルから各単語を読み取る# ファイル "/ anaconda2/lib/python2.7/site-packages/gensim-0.13.3-py2.7-linux-x86_64.egg/gensim/models/word2vec.py "、行1598、類似点 リターンドット(matutils.unitvec(self [w1] )、matutils.unitvec(self [w2])) ファイル "anaconda2/lib/python2.7/site-packages/gensim-0.13.3-py2.7-linux-x86_64.egg/gensim/models/word2vec.py "、1578行目、__getitem__ return self.syn0 [self.vocab [words] .index] KeyError: 'street \ n' –