6

動詞については、NLTK の WordNet 類似性測定が「なし」を返すことがあることを確認しましたが、これは他の品詞では起こらないはずだと理解しました。コードを見ると、他の品詞で 2 つの単語のペアの間に関係がない場合は、"None" ではなく -1 になることが明らかです。それでも、私はこの結果を得ています:

>>> from nltk.corpus import wordnet as wn
>>> plodding1 = wn.synset('plodding.a.01')
>>> for sense in wn.synsets('unsteady','a'):
        print sense.name, sense.path_similarity(plodding1)

unsteady.a.01 None
unfirm.s.01 None

何かご意見は?

4

2 に答える 2

10

WordNet の形容詞は階層化されていないため、最短経路は形容詞では機能しません。副詞についても同様です。形容詞と副詞に有効な唯一の尺度は、レスク尺度のような関連性の尺度です。WordNet の動詞は階層に編成されていますが、それらの数は多く、かなり「短い」ため、動詞間のパスを見つけることができない場合があります (異なる動詞階層に属している可能性があるため)。一般に、名詞は 1 つの大きな名詞階層に属しているため、名詞間の最短経路を見つけることができます (少なくとも WordNet 3.0 以降)。

これが役立つことを願っています。これらの問題の詳細については、WordNet::Similarity リスト (NLTK の一部ではなく、これらの種類の測定を行うスタンドアロンの Perl パッケージ) にも記載されています。http://wn-similarity.sourceforge.net

がんばれ、テッド

于 2012-11-26T13:55:28.893 に答える
0

比較している特定の synset には、分類法に「最短経路」がないようです。「不安定」のすべてのシンセットを「プロッディング」のすべてのシンセットと比較すると、パスの類似点がいくつか見つかります。

私はより一般化されたものを試しました:

from nltk.corpus import wordnet as wn
sy1 = wn.synsets('plodding')
sy2 = wn.synsets('unsteady')

for s in sy1:
    for t in sy2:
        print "%s\t %s\t :%s" % (s.name,t.name,wn.path_similarity(s,t))

そして私は得る:

drudgery.n.01    unsteady.a.01   :None
drudgery.n.01    unfirm.s.01     :None
plodding.n.02    unsteady.a.01   :None
plodding.n.02    unfirm.s.01     :None
slog.v.02    unsteady.a.01   :0.2
slog.v.02    unfirm.s.01     :0.2
leaden.s.04  unsteady.a.01   :None
leaden.s.04  unfirm.s.01     :None

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

于 2012-11-26T07:33:50.790 に答える