Mil*_*ano 2 python nlp nltk wordnet
我正在尝试使用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)
你使用的是哪个版本的nltk(试试print nltk.__version
)?你使用的是python 2还是python 3?似乎在您使用的版本中,lemma_names
是一个方法而不是一个属性(这是在Python 3的nltk 3.0中的情况).如果是这种情况,那么您可以通过使用此代码来修复代码:
for i,j in enumerate(wn.synsets('small')):
print "Synonyms:", ", ".join(j.lemma_names())
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3104 次 |
最近记录: |