【发布时间】:2015-05-20 17:55:58
【问题描述】:
我想知道是否有一种简单的方法可以在 wordnet 中获取名词的同义词。形容词的同义词似乎很容易得到。
for ss in wn.synsets('beautiful'):
print(ss)
for sim in ss.similar_tos():
print(' {}'.format(sim))
我从另一个 SO question 中找到了上面的代码,它适用于形容词。但是当我的词是“汽油”或“火”时,结果很糟糕。理想情况下,我会得到一个与this site 非常相似的单词列表。
我尝试过的其他一些效果很好但速度极慢的方法是:
def syn(word, lch_threshold=2.26):
for net1 in wn.all_synsets():
try:
lch = net1.lch_similarity(wn.synset(word))
except:
continue
# The value to compare the LCH to was found empirically.
# (The value is very application dependent. Experiment!)
if lch >= lch_threshold:
yield (net1, lch)
for x in syn('gasoline.n.1'):
print x
这也是从另一个 SO 问题中找到的。有没有更简单的方法来获取上面提供的链接中的名词同义词?
【问题讨论】:
标签: python nltk wordnet synonym