2017-09-08 5 views
-1

wordNetで与えられたパス類似度スコアを2つのSynsetsの間で理解しようとしています** good ** vs ** bad **と** good ** vs ** word **の間のパスの類似度スコア

 

    good = wn.synset('good.n.01') 
    bad = wn.synset('bad.n.01') 
    better = wn.synset('better.n.01') 
    print good.path_similarity(better) 
    print good.path_similarity(good) 
    print good.path_similarity(bad) 

出力は

 

    0.166666666667 
    1.0 
    0.2 

はここで良いとより良いとの間で得点さは0.16666で、善と悪に得点0.2であるとofcorseスコアが良いと良いのために1.0です。 しかし、良いと悪いスコアの差は、どちらも同じ意味の意味があるので、良いと良いよりも良いです。

ここで何かが見つからないので、これはパスの類似性の仕組みではありませんか?

+0

注:Word!= Synset' – alvas

答えて

0

あなたは "良い" の間違ったsynset選んだ:おそらくあなたは正しいsynsetを使用していない

good = nltk.wordnet.wordnet.synset('good.n.03') 
good.path_similarity(better) 
#0.5 
good.path_similarity(bad) 
#0.33333333333333 
+0

どのように特定の単語の正しいsynsetがわかりますか? –

+0

ハイパーセット()を見てください。 – DyZ

0

を:

http://labs.fc.ul.pt/dishin/

良い-名詞-3を悪い-名詞-1対

Measure MICA/DiShIn (Ex/In)trinsic Similarity 
Resnik MICA intrinsic 3.49406003202 
Lin MICA intrinsic 0.459704995741 
Jiang&Conrath MICA intrinsic 0.121755310731 

良い-名詞-3より良い-名詞-3

Measure MICA/DiShIn (Ex/In)trinsic Similarity 
Resnik MICA intrinsic 7.78451947317 
Lin MICA intrinsic 0.876326016756 
Jiang&Conrath MICA intrinsic 0.455119613313 
関連する問題