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)
我收到以下错误消息:
Run Code Online (Sandbox Code Playgroud)sorted(w for w in wn.synset().name() if len(w)>18)类型错误:synset() 缺少 1 个必需的位置参数:'name'
我正在使用 Python 3.4.3。
我该如何修复我的代码?
使用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)