NLTK - WordNet:长词列表

Cor*_*ius 6 python nlp nltk wordnet

我想在 WordNet 中找到至少 18 个字符长的单词。我尝试了以下代码:

from nltk.corpus import wordnet as wn
sorted(w for w in wn.synset().name() if len(w)>18)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

sorted(w for w in wn.synset().name() if len(w)>18)
Run Code Online (Sandbox Code Playgroud)

类型错误:synset() 缺少 1 个必需的位置参数:'name'

我正在使用 Python 3.4.3。

我该如何修复我的代码?

ale*_*xis 5

使用wn.all_lemma_names()让所有引理的列表。我相信这就是您从 Wordnet 中得到的所有单词,因此不需要迭代同义词集(但如果您愿意,可以为每个引理调用同义词集)。

您可能希望按长度对点击进行排序:

longwords = [ n for n in wn.all_lemma_names() if len(n) > 18 ]
longwords.sort(key=len, reverse=True)
Run Code Online (Sandbox Code Playgroud)