我有一个WordNet synset偏移(例如id="n#05576222"
).鉴于此偏移,我如何使用Python获取synset?
使用几种内置的相似性度量可以轻松地计算WordNet中两个同义词集之间的语义相似性,例如:
synset1.path_similarity(synset2)
Run Code Online (Sandbox Code Playgroud)
synset1.lch_similarity(synset2)
,Leacock-Chodorow相似度
synset1.wup_similarity(synset2)
,吴帕尔默相似
然而,所有这些都利用了WordNet的分类关系,这些关系是名词和动词的关系.形容词和副词通过同义词,反义词和属性相关联.如何衡量两个形容词之间的距离(跳数)?
我尝试过path_similarity()
,但正如预期的那样,它会返回'None'
:
from nltk.corpus import wordnet as wn
x = wn.synset('good.a.01')
y = wn.synset('bad.a.01')
print(wn.path_similarity(x,y))
Run Code Online (Sandbox Code Playgroud)
如果有任何方法来计算一个形容词与另一个形容词之间的距离,那么指出它将会非常感激.
我正在尝试使用Wordnet获取给定单词的同义词.问题是尽管我做的和写在这里一样:在这里,它返回错误.
这是我的代码:
from nltk.corpus import wordnet as wn
import nltk
dog = wn.synset('dog.n.01')
print dog.lemma_names
>>> <bound method Synset.lemma_names of Synset('dog.n.01')>
for i,j in enumerate(wn.synsets('small')):
print "Synonyms:", ", ".join(j.lemma_names)
>>> Synonyms:
Traceback (most recent call last):
File "C:/Users/Python/PycharmProjects/PribliznostneVyhladavanie/testy.py", line 38, in <module>
print "Synonyms:", ", ".join(j.lemma_names)
TypeError
Run Code Online (Sandbox Code Playgroud)
我唯一想要的是说出一个单词并获得同义词列表.有谁知道什么是错的?
编辑:我尝试了另一个建议,我在这里找到stackoverflow.它也不起作用.
syns = wn.synsets('car')
print [l.name for s in syns for l in s.lemmas]
>>> TypeError: 'instancemethod' object is not iterable
Run Code Online (Sandbox Code Playgroud)