[解決済み] gensimのword2vecモデルを用いた文の類似度計算の方法(Pythonによる
質問
によると Gensim Word2Vec によると、gensim パッケージの word2vec モデルを使って、2つの単語の類似度を計算することができる。
例
trained_model.similarity('woman', 'man')
0.73723527
しかし、word2vecモデルは文の類似度を予測することができません。gensimで文の類似度を表すLSIモデルを探しましたが、word2vecモデルと組み合わせられるようには思えません。手持ちのコーパスの長さは、10単語以下と短い。 そこで、目標を達成するための簡単な方法はないでしょうか?
どのように解決するのですか?
これは実際に質問されているかなり難しい問題です。文の類似性を計算するには、文の文法モデルを構築し、同等の構造 ("he walked to the store yesterday" と "yesterday, he walked to the store") を理解し、代名詞と動詞だけでなく固有名詞にも類似性を見出し、多くの実際のテキスト例で統計的共起関係/関係を見つけ出すことなどが必要となります。
試せる最も簡単なことは -- これがどの程度うまく機能するかはわかりませんし、最適な結果を得られないことは確かですが -- まずすべての "stop" 単語 ("the", "an" など、文にあまり意味を付加しない単語) を削除してから、両方の文の単語に word2vec を実行し、一方の文のベクトルの合計、もう一方の文のベクトルの合計、そして合計同士の差分を見つけることでしょう。単語単位での差分ではなく、合計することで、少なくとも語順に左右されずに済みます。とはいえ、これは多くの点で失敗するでしょうし、決して良い解決策ではありません(この問題に対する良い解決策は、ほとんどの場合、ある程度のNLP、機械学習、その他の巧妙さを伴いますが)。
つまり、簡単に言えば、これを行う簡単な方法はないのです(少なくともうまく行うことはできません)。
関連
-
Pythonの非常に便利な2つのデコレーターを解説
-
pythonを使ったオフィス自動化コード例
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
python string splicing.join()とsplitting.split()の説明
-
Python jiabaライブラリの使用方法について説明
-
Pythonによるjieba分割ライブラリ
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】Flaskのテンプレートが見つからない【重複あり