wordnetで類似度を計算するためにWuとPalmerの方法を使用したいのですが、
wp = (2 X depth(lcs)) / (depth(synset1) + depth(synset2))
とlcs
の「最小共通サブシューマー」はどこですかsynset1
synset2
私の質問は:
- 「最小共通サブシューマー」とは何ですか?
- それを計算する方法は?
この論文によると、2 つの概念 A と B の Least Common Subsumer は「A と B の両方の祖先である最も具体的な概念」であり、概念ツリーはis-a
関係によって定義されます。概念は、他の概念の親、祖父母などである人間の家系図で祖先を定義する方法と同じように、他の概念の祖先であると定義されます。例えば:
そしてグラフ:
物体 | | 車両 | | ---------- | | | | ボート 自動車 | | 車
この場合、「automobile」は「car」の親 (および祖先) であり、「vehicle」は「car」の祖先です。「乗り物」は「船」の祖先でもあります。この場合、"boat" と "car" の LCS は "vehicle" です。これは、"boat" と "car" の両方の祖先である最も具体的な概念だからです。「オブジェクト」は「ボート」と「車」の両方の共通のサブシューマーですが、共通の「オブジェクト」(この場合は「ビークル」) の子がまだあるため、少なくともそうではないことに注意してください。 「車」と「船」の両方のサブシューマー。「自動車」は「ボート」の祖先ではないため、最も一般的なサブシューマーではありません。
類似度を計算するには、利用可能なライブラリを使用することをお勧めします。そうしないと、概念グラフを自分で作成する必要があり、面倒です。
Perl では、 WordNet::Similarity パッケージを使用できます。
Python では、nltk パッケージを使用できます。具体的には、wup_similarity
Javaでは、ws4jパッケージを使用できます