从同义词集获取同义词返回错误-Python [英] Get synonyms from synset returns error - Python
问题描述
我正在尝试使用Wordnet获得给定单词的同义词.问题是,尽管我的操作与此处相同:此处,它返回错误.
I'm trying to get synonyms of a given word using Wordnet. The problem is that despite I'm doing the same as is written here: here, it returns error.
这是我的代码:
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
我唯一想做的就是输入一个单词并获取一个同义词列表.有人知道怎么了吗?
The only thing I want is to put a word and get a list of synonyms. Does anybody knows whats wrong?
我尝试了另一条在stackoverflow上找到的建议.它也不起作用.
I tried another advice which I found here on stackoverflow. It does not work either.
syns = wn.synsets('car')
print [l.name for s in syns for l in s.lemmas]
>>> TypeError: 'instancemethod' object is not iterable
推荐答案
您正在使用哪个版本的nltk(尝试print nltk.__version
)?您使用的是python 2还是python 3?似乎在您使用的版本中,lemma_names
是方法而不是属性(在Python 3的nltk 3.0中就是这种情况).如果是这种情况,那么您可以改用以下代码来修复代码:
Which version of nltk are you using (try print nltk.__version
)? Are you using python 2 or python 3? It seems that in the version you are using, lemma_names
is a method and not an attribute (this is the case in nltk 3.0 for Python 3). If this is the case then you can probably fix your code by using this instead:
for i,j in enumerate(wn.synsets('small')):
print "Synonyms:", ", ".join(j.lemma_names())
这篇关于从同义词集获取同义词返回错误-Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!