我試圖找到使用wordnet的python nltk兩個單詞之間的相似性。兩個樣本關鍵字是'遊戲'和'萊昂納多'。首先,我提取了這兩個單詞的所有同義詞,並對每個同義詞進行交叉匹配以找到它們的相似性。這裏是我的代碼python nltk返回單詞結果爲wordnet相似性度量
from nltk.corpus import wordnet as wn
xx = wn.synsets("game")
yy = wn.synsets("leonardo")
for x in xx:
for y in yy:
print x.name
print x.definition
print y.name
print y.definition
print x.wup_similarity(y)
print '\n'
這裏是總輸出:
game.n.01與規則的較量,以確定一個勝利者leonardo.n.01 意大利畫家,雕刻家和工程師和科學家和建築師; 意大利文藝復興時期最多才多藝的天才(1452-1519) 0.285714285714
game.n.02運動或其他競賽leonardo.n.01 意大利畫家,雕刻家和工程師,科學家和建築師的單次播放; 意大利文藝復興時期最多才多藝的天才(1452-1519) 0.285714285714
game.n.03遊或消遣leonardo.n.01意大利畫家,雕刻家 和工程師兼科學家和建築師;意大利文藝復興時期最多才多藝的天才 (1452-1519) 0.25
game.n.04動物捕獵食物或運動leonardo.n.01意大利0畫家,雕刻家和工程師,科學家和建築師;意大利文藝復興時期的 最多才多藝的天才(1452-1519) 0.923076923077
game.n.05(網球)的在此期間,一名球員提供 leonardo.n.01意大利畫家,雕刻家和工程師,發揮分工科學家 和建築師;意大利文藝復興時期 (1452-1519) 0.222222222222
game.n.06(遊戲)在特定點的分數或分數的最多才多藝的天才需要 贏得leonardo.n.01意大利畫家和雕塑家和工程師和 科學家和建築師;意大利文藝復興時期 的最多才多藝的天才(1452-1519) 0.285714285714
game.n.07是用於食品 leonardo.n.01意大利畫家,雕刻家和工程師和科學家 野生動物的肉和建築師;意大利文藝復興時期 的最多才多藝的天才(1452-1519) 0.5
plot.n.01祕密計劃做一些事情(尤指 陰招或非法)leonardo.n.01意大利畫家,雕刻家和 工程師和科學家和建築師;在 意大利文藝復興時期(1452-1519) 0.2
game.n.09的最多才多藝的天才,以便在需要的遊戲設備玩特定遊戲 leonardo.n.01意大利畫家,雕刻家和工程師和科學家 和建築師;意大利文藝復興時期最多才多藝的天才 (1452-1519) 0.666666666667
game.n.10你的職業或工作線路leonardo.n。01意大利0畫家和雕塑家兼工程師和科學家和建築師;意大利文藝復興時期的 最多才多藝的天才(1452-1519) 0.25
game.n.11輕浮瑣碎或行爲leonardo.n.01意大利畫家 和雕刻家和工程師,科學家和建築師;意大利文藝復興時期最 多才多藝的天才(1452-1519) 0.222222222222
bet_on.v.01發生在leonardo.n.01意大利畫家和雕塑家 和工程師,科學家和建築師賭注;的 最多才多藝的天才意大利文藝復興時期(1452-1519) -1
crippled.s.01在腳或腿leonardo.n.01意大利0畫家,雕刻家和工程師,科學家和建築師禁用;意大利文藝復興時期的 最多才多藝的天才(1452-1519) -1
game.s.02願意面對leonardo.n.01意大利畫家,雕刻家 和工程師兼科學家和建築師的危險;最多才多藝的天才 意大利文藝復興時期(1452-1519) -1
但game.n.04和leonardo.n.01之間的相似性是非常奇怪的。我認爲相似度(0.923076923077)不應該這麼高。
game.n.04
動物捕獵食物或運動
leonardo.n.01
的意大利畫家,雕刻家和工程師,科學家和建築師;意大利文藝復興時期(1452-1519)
0.923076923077
最多才多藝的天才有沒有用我的概念什麼問題嗎?
感謝您的解釋。但是什麼計算會顯示它們的原始/近似不相似性? – qmaruf
@QuaziMarufurRahman取決於你如何定義「不相似性」。你可能會用'path_distance()'方法得到更好的結果,但這取決於你想要測量的是什麼。 – Aya
其實我想要一些測量,表明不相似('遊戲','國際象棋')比差異性要小得多('遊戲','leonardo') – qmaruf