Wordnet同义词未返回所有值nltk
我正在尝试使用nltk的wordnet来获取所有的同义词或相似词,但它没有返回结果。
我做了以下操作:
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('swap')
[Synset('barter.n.01'), Synset('trade.v.04'), Synset('swap.v.02')]
我还尝试了(从一个StackOverflow页面上找到的):
>>> for ss in wn.synsets('swap'):
for sim in ss.similar_tos():
print(' {}'.format(sim))
但是我没有得到所有的同义词。我不想把同义词添加到wordnet中。
我希望它能返回像exchange、interchange、substitute等词。
该怎么做呢?
谢谢
Abhi
1 个回答
1
要使用 wordnet
获取同义词,你只需要这样做:
>>> from nltk.corpus import wordnet as wn
>>> for synset in wn.synsets('swap'):
for lemma in synset.lemmas():
print lemma.name(),
barter swap swop trade trade swap swop switch swap # note the overlap between the synsets
为了得到你提到的一些词,你可能还需要包含上位词:
>>> for synset in wn.synsets('swap'):
for hypernym in synset.hypernyms():
for ss in hypernym.lemmas(): # now you need to iterate through each synset returned by synset.hypernyms()
print ss.name(),
exchange interchange exchange change interchange travel go move locomote # again, some overlap