2013-04-25 11 views
18

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

私はすでにthis questionをチェックアウトしていますが、かなり古くて、本当の役に立つ回答が見つかりませんでした。 one linkがありましたが、私はこれを信頼できないと判断しました。

例:
私はフレーズをしている:私は最初のものに類似度が最も高い用語/フレーズを見つけたい内側に力、粉砕し、感情的に破壊され、再形成な​​ど

破砕、私はいくつかの選択肢を持っていると感じました。
答えはここです:感情的に破壊されました。

大きな写真は次のとおりです。私は、FrameNetのどのフレームが、その動詞の用途に応じて特定の動詞と一致するかを特定したいと思います。

更新:this libraryは、2単語間の類似度を測定するのに非常に便利です。また、ConceptNet類似機構も非常に優れています。

this library文章

、誰もが共有してください任意の洞察力を持っている場合

間の意味的類似性を測定するため。

+0

セマンティックメジャーライブラリを見てください:[http://www.semantic-measures-library.org](http://www.semantic-measures-library。org /) – Seb

答えて

8

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

(より複雑なNLPプロセスに入る前に)考えられる主な技術は、各フレーズのペアにコサイン(または他のメトリック)類似性を適用することです。当然のことながら、この解決法は、不一致の問題のために現時点では非常に非効率的である。文は、異なる言葉で同じ概念を参照することがある。

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

例: {"car"、 "race"}は、シノニムで{"car"、 "automobile"、 "race"}に変換されますが、DSでは{ 「車」、「車」、「道路」、「パイロット」、...}

明らかに、この変換は、バイナリではありません。それぞれの用語は、いくつかの関連する重みを持つことになります。

私はこの時間を願っていますエルプス。

+0

あなたの返事をありがとうが、ここでの主な問題は、私がこの例で言及したように、結合された用語ではなく、個々の言葉ではなく類似性を評価するものが必要だということです。 – tejas

+0

用語 - 用語の類似性に基づいてフレーズ表現を変更します。 S1:{ "車"、 "レース"} S2:{ "バイク}、 "速度"} 標準コサイン類似度(まったく用語は一般的でないように)あなたが0.0の類似度を取得する例は、2つの文が与えられます。 S1:{"car"、 "race"、 "vehicle"、 "automobile"、 "fast"} S2:このような表現をDSに基づく「関連用語」を使用して拡張することができます。 {"バイク"、 "スピード"、 "自転車"、 "車両"、 "高速"} "高速"と "車両"に基づいていくつかの類似点があります。 – miguelmalvarez

0

おそらくcortical.io APIが問題の原因となる可能性があります。ここでのアプローチは、すべての単語が意味的なフィンガープリントに変換され、16Kのセマンティック機能でその意味を特徴付けるというものです。フレーズ、文章または長い文章は、単語指紋を一緒に論理和することによって指紋に変換されます。この(数値)バイナリベクトル表現への変換の後、意味距離はユークリッド距離またはコサイン類似性のような距離測定を用いて容易に計算することができる。 すべての必要な変換機能と比較機能がAPIによって提供されています。

関連する問題