20

2 つのフレーズ/センテンス間の意味的類似性を測定したいと考えています。直接かつ確実に使用できるフレームワークはありますか?

私はすでにこの質問をチェックアウトしましたが、かなり古く、本当に役立つ答えが見つかりませんでした。リンクが1 つありましたが、信頼性が低いことがわかりました。

例:
フレーズがあります: 押しつぶされたと感じました
いくつかの選択肢があります: 内側に力を入れる、粉砕する、感情的に破壊する、形を変えるなど

ここでの答えは次のとおりです。感情的に破壊されました。

全体像は次のとおりです。文での使用法に従って、FrameNet のどのフレームが特定の動詞に一致するかを特定したいと考えています。

更新 :このライブラリは、2 つの単語の類似度を測定するのに非常に便利であることがわかりました。また、ConceptNet の類似性メカニズムも非常に優れています。

文間の意味的類似性を測定するためのこのライブラリ

誰かが洞察を持っている場合は、共有してください。

4

2 に答える 2

9

これは非常に複雑な問題です。

(より複雑な NLP プロセスに入る前に) 私が考えることができる主な手法は、フレーズの各ペアにコサイン (またはその他のメトリック) 類似度を適用することです。明らかに、この解決策は、一致しない問題のために、現時点では非常に非効率的です。文は、異なる単語で同じ概念を参照している可能性があります。

この問題を解決するには、各フレーズの最初の表現をより「概念的な」意味に変換する必要があります。1 つのオプションは、各単語をその同義語で拡張することです (つまり、WordNetを使用します。別のオプションは、表現を拡張する分布セマンティクス DS ( http://liawww.epfl.ch/Publications/Archive/Besanconetal2001.pdf )などのメトリックを適用することです)。各用語と一緒に表示される可能性が高い単語を示します。

例: ドキュメントの表現: {"car","race"} は、同義語を持つ {"car","automobile","race"} に変換されます。一方、DS では {"car","wheel","road","pilot", ...} のようになります。

明らかに、この変換はバイナリではありません。各用語には、いくつかの関連する重みがあります。

これが役立つことを願っています。

于 2013-04-25T09:04:47.700 に答える
1

おそらく、cortical.io API が問題の解決に役立つ可能性があります。ここでのアプローチは、すべての単語が 16K のセマンティック機能でその意味を特徴付けるセマンティック フィンガープリントに変換されるというものです。語句、文、または長いテキストは、単語フィンガープリントを OR することによってフィンガープリントに変換されます。この (数値) バイナリ ベクトル表現への変換後、ユークリッド距離やコサイン類似度などの距離測定を使用して、セマンティック距離を簡単に計算できます。必要なすべての変換関数と比較関数は、API によって提供されます。

于 2014-11-06T15:25:16.657 に答える