How to get synonyms from nltk WordNet Python

user2758113 picture user2758113 · Oct 8, 2013 · Viewed 51.3k times · Source

WordNet is great, but I'm having a hard time getting synonyms in nltk. If you search similar to for the word 'small' like here, it shows all of the synonyms.

Basically I just need to know the following: wn.synsets('word')[i].option() Where option can be hypernyms and antonyms, but what is the option for getting synonyms?

Answer

Francis Bond picture Francis Bond · Sep 22, 2015

If you want the synonyms in the synset (aka the lemmas that make up the set), you can get them with lemma_names():

>>> for ss in wn.synsets('small'):
>>>     print(ss.name(), ss.lemma_names())

small.n.01 ['small']
small.n.02 ['small']
small.a.01 ['small', 'little']
minor.s.10 ['minor', 'modest', 'small', 'small-scale', 'pocket-size',  'pocket-sized']
little.s.03 ['little', 'small']
small.s.04 ['small']
humble.s.01 ['humble', 'low', 'lowly', 'modest', 'small']    
...