【发布时间】:2016-02-06 02:25:59
【问题描述】:
我正在尝试使用 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 意大利语 画家、雕塑家、工程师、科学家和建筑师;这 意大利文艺复兴时期最多才多艺的天才(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 意大利语 画家、雕塑家、工程师、科学家和建筑师;这 意大利文艺复兴时期最多才多艺的天才(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 意大利语 画家、雕塑家、工程师、科学家和建筑师;这 意大利文艺复兴时期最多才多艺的天才(1452-1519) -1
game.s.02 愿意面对危险 leonardo.n.01 意大利画家和 雕塑家、工程师、科学家和建筑师;最通用的 意大利文艺复兴时期的天才(1452-1519) -1
但是 game.n.04 和 leonardo.n.01 之间的相似性真的很奇怪。我觉得相似度(0.923076923077)应该不会那么高。
game.n.04
为了食物或运动而猎杀动物
莱昂纳多.n.01
意大利画家、雕塑家、工程师、科学家和建筑师;意大利文艺复兴时期(1452-1519)最多才多艺的天才
0.923076923077
我的概念有问题吗?
【问题讨论】: