从同义词集获取同义词返回错误-Python [英] Get synonyms from synset returns error - Python

查看:138
本文介绍了从同义词集获取同义词返回错误-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆