如何使用 python 3.4.2 遍历从 wordnet 生成的同义词集列表

How to iterate through the synset list generated from wordnet using python 3.4.2

我正在使用 wordnet 查找特定单词的同义词,如下所示

synonyms = wn.synsets('good','a')

wn 是 wordnet。 returns 同义词集列表,如

Synset('good.a.01')    
Synset('full.s.06')    
Synset('good.a.03')    
Synset('estimable.s.02')    
Synset('beneficial.s.01')

等...

如何遍历每个synset并获取每个synset的名称和pos标签?

您可以像这样获取每个同义词集的名称和 pos 标签:

from nltk.corpus import wordnet as wn

synonyms = wn.synsets('good','a')

for synset in synonyms:
    print(synset.name())
    print(synset.pos())

名字是词、词、义的组合,如'full.s.06'。如果你只想要这个词,你可以在点 '.' 上拆分。并取第一个元素:

print(synset.name().split('.')[0]

我在我的代码中使用这个:

from nltk.corpus import wordnet

word = input()

for syn in wordnet.synsets(word):
    for l in syn.lemmas():
        print(syn.pos()) 
        print(l.name())

syn.pos() 也可以在内循环外调用,因为每个引理都包含具有相同位置的词。