python - 从 synset 获取同义词返回错误 - Python

标签 python nlp nltk wordnet

我正在尝试使用 Wordnet 获取给定单词的同义词。问题是尽管我做的和这里写的一样:here ,它返回错误。

这是我的代码:

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

我唯一想要的就是输入一个词并获得同义词列表。有人知道怎么回事吗?

编辑:我尝试了在 stackoverflow 上找到的另一个建议。它也不起作用。

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 就是这种情况)。如果是这种情况,那么您可能可以改用它来修复您的代码:

for i,j in enumerate(wn.synsets('small')):
    print "Synonyms:", ", ".join(j.lemma_names())

关于python - 从 synset 获取同义词返回错误 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091571/

相关文章:

python - 如何用不在括号内的逗号分隔?

perl - 从给定字符串中提取任意位置的可行性?

python - 在 Python 中将 NLTK 语料库与 AWS Lambda 函数结合使用

c++ - 在文本冒险中解析匹配多个可能的字符串。

python - spaCy 和 scikit-learn 向量化器

带有 WordNet 2.1 的 Python 3 和 NLTK - 这可能吗?

nltk - nltk 是否包含阿拉伯语停用词,如果没有,我该如何添加?

python - 分割pandas数据框的有效方法

python - "Could not load dynamic library ' libcudnn.so.8 '"在 ubuntu 20.04 上运行 tensorflow 时

python 3.5 matplotlib从csv读取日期但不能表示为X轴上的日期