NLTK WordNet: Pronađite sinonime iz NLTK WordNet u Python
⚡ Pametni sažetak
WordNet je leksička baza podataka i NLTK čitač korpusa za engleski jezik koji grupira imenice, glagole, pridjeve i priloge u sinsetove, omogućujući Python Programi traže sinonime, antonime, hipernime i značenja riječi za obradu prirodnog jezika.

Što je Wordnet?
WordNet je NLTK korpusni čitač, leksička baza podataka za engleski jezik. Može se koristiti za pronalaženje značenja riječi, sinonima ili antonima. Može se definirati kao semantički orijentirani rječnik engleskog jezika. WordNet se uvozi sljedećom naredbom:
from nltk.corpus import wordnet as guru
Budući da se WordNet isporučuje kao gotov korpus, možete ga jednom učitati i odmah početi pretraživati odnose riječi bez potrebe da sami izrađujete rječnik.
Pronađite sinonime iz NLTK WordNeta u Python
Statistika otkriva da ih ima 155287 riječi i 117659 sinonima setovi uključeni u engleski WordNet. Različite metode dostupne s WordNetom mogu se pronaći od strane typing dir(guru), koja navodi sve atribute učitavača i pomoćne metode koje otkriva čitač korpusa.
Sinset: Također se naziva skup sinonima ili zbirka sinonimnih riječi. Pogledajmo primjer.
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
Izlaz:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
Leksički odnosi: To su semantički odnosi koji su uzajamni. Ako postoji odnos između {x1,x2,…xn} i {y1,y2,…yn}, tada postoji i odnos između {y1,y2,…yn} i {x1,x2,…xn}. Na primjer, sinonim je suprotnost antonimu, dok su hipernimi i hiponimi vrsta leksičkog koncepta.
Napišimo program koristeći Python pronaći sinonim i antonim riječi "aktivan" koristeći WordNet.
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
Izlaz koda:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Objašnjenje koda:
- WordNet je korpus, pa se uvozi iz paketa nltk.corpus.
- Dva popisa za sinonime i antonime uzimaju se kao prazna, što će se koristiti za dodavanje.
- Sinonimi riječi „aktivan“ pretražuju se u synsets metodi i dodaju se na popis sinonima. Isti proces prikuplja antonime.
- Izlaz se ispisuje kao Python postavlja tako da se duplikati unosi automatski uklanjaju.
Osim sinonima i antonima, WordNet također otkriva hipernime (šire pojmove), hiponime (specifičnije pojmove), holonime i meronime, tako da jedan upit može smjestiti riječ unutar cijele hijerarhije izraza "is-a". Ovi odnosi čine WordNet praktičnim tezaurusom za provjeru pravopisa, prevođenje jezika, otkrivanje neželjene pošte i druge zadatke analize teksta u umjetnoj inteligenciji.
