从 WordNet 同义词集中获取单词

Get the word from a WordNet synset

给出这样的同义词集:

Synset("pascal_celery.n.01")

我想得到它代表的词:

"pascal celery"

目前,我正在这样做:

synset.name().split(".")[0]

但这不会将下划线转换为空格。

有内置的方法吗?

根据 source code of the Synset class 没有方法 return 正是您想要的。

你可能不得不依赖普通的旧 Python replace:

synset.name().split(".")[0].replace('_',' ')

我来晚了一点,但为了后代,我想你正在寻找同义词集上的 .lemmas().lemma_names() 方法。

from nltk.corpus import wordnet as wn
dog = wn.synsets('dog')[0]
dog.lemma_names()

>>>['dog', 'domestic_dog', 'Canis_familiaris']

从那里,你可以用空格替换下划线,你会得到你需要的。