在 NLTK 3.0 中使用 Wordnet 从 Synset 中提取单词

2024-03-25

前段时间,SO上有人问如何检索给定同义词集的单词列表 https://stackoverflow.com/questions/24664250/how-do-i-print-out-just-the-word-itself-in-a-wordnet-synset-using-python-nltk使用 NLTK 的 wordnet 包装器。以下是建议的回应之一:

for synset in wn.synsets('dog'):
    print synset.lemmas[0].name

使用 NLTK 3.0 运行此代码会产生结果TypeError: 'instancemethod' object is not subscriptable.

我尝试了之前提出的每个解决方案(上面链接的页面上描述的每个解决方案),但每个解决方案都会引发错误。因此我想问:是否可以使用 NLTK 3.0 打印同义词集列表中的单词?我将感谢其他人就这个问题提供的任何建议。


WordNet 在 NLTK 3.0 中运行良好。您只是以错误的方式访问引理(和名称)。试试这个:

>>> import nltk
>>> nltk.__version__
'3.0.0'
>>> from nltk.corpus import wordnet as wn
>>> for synset in wn.synsets('dog'):
    for lemma in synset.lemmas():
        print lemma.name()


dog
domestic_dog
Canis_familiaris
frump
dog
dog
cad
bounder
blackguard
...

synset.lemmas是一个方法并且没有__getitem__()方法(因此不可下标)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 NLTK 3.0 中使用 Wordnet 从 Synset 中提取单词 的相关文章

随机推荐