Pythonでgensimのword2vecモデルを使用して文の類似性を計算する方法 質問する

Pythonでgensimのword2vecモデルを使用して文の類似性を計算する方法 質問する

によるゲンシム Word2Vecgensim パッケージの word2vec モデルを使用して、2 つの単語間の類似度を計算できます。

例えば

trained_model.similarity('woman', 'man') 
0.73723527

しかし、word2vec モデルは文の類似性を予測できません。gensim で文の類似性を備えた LSI モデルを見つけましたが、word2vec モデルと組み合わせることはできないようです。私が持っている各文のコーパスの長さはそれほど長くありません (10 語未満)。それでは、目標を達成する簡単な方法はありますか?

ベストアンサー1

あなたが尋ねているのは、実はかなり難しい問題です。文の類似性を計算するには、文の文法モデルを構築し、同等の構造(「彼は昨日店まで歩いた」と「昨日、彼は店まで歩いた」など)を理解し、代名詞と動詞だけでなく固有名詞にも類似性を見つけ、実際のテキスト例の多くで統計的な共起/関係を見つける必要があります。

試すことができる最も簡単な方法は、まず「ストップ」ワード(「the」、「an」など、文にあまり意味を加えない単語)をすべて削除し、次に両方の文の単語に対して word2vec を実行し、一方の文のベクトルを合計し、もう一方の文のベクトルを合計して、合計の差を求めることです(ただし、この方法がどれほどうまくいくかはわかりませんし、最適な結果が得られるわけでもありません)。単語ごとの差を求めるのではなく、合計することで、少なくとも語順の影響を受けなくなります。とはいえ、この方法はさまざまな点で失敗し、決して良い解決策とは言えません(ただし、この問題に対する良い解決策には、ほとんどの場合、ある程度の NLP、機械学習、その他の巧妙な技術が関係します)。

したがって、簡単に答えると、いいえ、これを行う簡単な方法はありません (少なくともうまく行う方法はありません)。

おすすめ記事