Python: sinonimi e contrari

Sinonimi e contrari sono disponibili come parte del wordnet, un database lessicale per la lingua inglese. È disponibile come parte dell'accesso ai corpora nltk. In wordnet i sinonimi sono le parole che denotano lo stesso concetto e sono intercambiabili in molti contesti in modo che siano raggruppate in insiemi non ordinati (synset). Usiamo questi synset per derivare i sinonimi e contrari come mostrato nei programmi seguenti.

from nltk.corpus import wordnet
synonyms = []
for syn in wordnet.synsets("Soil"):
    for lm in syn.lemmas():
             synonyms.append(lm.name())
print (set(synonyms))

Quando eseguiamo il programma sopra, otteniamo il seguente output:

set([grease', filth', dirt', begrime', soil', 
grime', land', bemire', dirty', grunge', 
stain', territory', colly', ground'])

Per ottenere i contrari usiamo semplicemente la funzione antonimo.

from nltk.corpus import wordnet
antonyms = []
for syn in wordnet.synsets("ahead"):
    for lm in syn.lemmas():
        if lm.antonyms():
            antonyms.append(lm.antonyms()[0].name())
print(set(antonyms))

Quando eseguiamo il programma sopra, otteniamo il seguente output:

set([backward', back'])