3

2 つの文の間の意味的距離を測定する方法を探しています。次の文があるとします。

(S1) The beautiful cherry blossoms in Japan. 
(S2) The beautiful Japan.

S2 は、S1 から「cherry」、「blossoms」、「in」という単語を削除して作成されます。S1 と S2 の間の距離を大きくする関数を定義したいと考えています。その理由は、美しいとは日本ではなく桜を修飾するため、意味が大きく異なるからです。

4

3 に答える 3

8

ロブが指摘したように、これは非常に難しい問題です。プログラムは、言語のセマンティクスを理解するだけでなく、百科事典的な知識も必要とします。たとえば、「日本の美しい桜」と言うとき、日本でたまたま咲いた美しい桜のことを言っているのでしょうか、それとも美しくて美しい単一の集合体「桜」のことを言っているのでしょうか。たまたま日本に?これには、百科事典的知識と言語的知識の組み合わせが必要です。

純粋に百科事典的な観点から、次の文を検討してください。

  1. 日本の美しい桜。
  2. 日本の美しい桜。
  3. 日本の美しい花。

最初の 2 つは同一ですが、3 番目は密接に関連していますが、同一ではありません。この種の知識に基づいて文の距離を確立することは、単なる文法分析の範囲を超えており、外部のオントロジーを使用する必要があります (例: sakura = 桜、その桜は IS_A 花)。

そうは言っても、文の解析ツリーに基づいて実行できることが少しあります。たとえば、提供された 2 つの文の Constituency 構文木を見ると、それらをフレーズ (NP、VP など) に分解することができます。多くの例では、2 つの文の間の距離をその構成フレーズ間の距離の最大値として定義するだけで十分です。フレーズ間の距離は、WordNetなどの語彙データベースやYagoなどのオントロジーに基づくことができます。

WordNet の場合、セマンティック距離を測定するためにすぐに利用できるパッケージは、Java ベースのパッケージWS4Jです。オンラインデモもあります。これらのセマンティック距離は、オントロジー グラフ内の 2 つの用語間のパス距離に基づいています (辞書グロス内の用語の重複を単純に計算する LESK を除く)。

これは、セマンティック距離の測定の問題に対する完全な解決にはほど遠いですが、出発点になることを願っています。

于 2014-04-16T20:56:54.197 に答える