はじめに
こんばんは。
初めての投稿となりますので、至らぬところが多々あるかと思いますが、
何卒よろしくお願いいたします。
実現したいこと
環境 : Python3.6.1
Tkinterを用いて2つのエントリーボックスを表示させ、そのボックスに入力された単語間の類似度を求める、ということを実現したいと考えています。
学習済みモデルは、こちらを使用させていただきました。 : https://qiita.com/Hironsan/items/513b9f93752ecee9e670
こちらの学習済みモデルは日本語のみ対応しているようで、英語の類似度を計算しようとするとエラーを吐いてしまいます。
これを解決するために、英語の学習済みモデルが必要であると考えていますが、見つけられていないのが現状です。お力を貸していただけますと幸いです。
発生している問題・エラーメッセージ
Word2Vecを用いて日本語間の類似度を求めることはできたのですが、いざTkinterを使ってみると、
Tkinterは日本語入力ができないことに気づきました。
Tkinterを日本語入力に対応させることはできないようなので、学習済みモデルを変更することで、英語入力に対応するしか方法がないかと考えています。
以下のエラー文は、英単語"similarity"と同じく"similarity"の類似度を計算しようとした結果表示されたものです。
Traceback (most recent call last): File "/Users/admin/PycharmProjects/RecommendationSystem/Main.py", line 12, in <module> pprint.pprint(word_model.similarity(word1, word2)) File "/Users/admin/.pyenv/versions/3.6.1/lib/python3.6/site-packages/gensim/models/word2vec.py", line 1338, in similarity return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2])) File "/Users/admin/.pyenv/versions/3.6.1/lib/python3.6/site-packages/gensim/models/word2vec.py", line 1318, in __getitem__ return self.syn0[self.vocab[words].index] KeyError: 'similarity'
該当のソースコード
Python
1import gensim 2import pprint 3 4 5word_model = gensim.models.Word2Vec.load_word2vec_format('models/model.vec', binary=False) 6 7list1 = ["similarity"] 8list2 = ["similarity"] 9 10for word1 in list1: 11 for word2 in list2: 12 pprint.pprint(word_model.similarity(word1, word2))
回答1件
あなたの回答
tips
プレビュー