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.

  • 🧩 Čitač korpusa: WordNet je uvezen iz nltk.corpusa i djeluje kao semantički orijentirani rječnik engleskog jezika.
  • 🔁 Sinsetovi: Sinset je skup sinonimnih riječi, kao što je osam značenja vraćenih za "pas".
  • 🔗 Leksički odnosi: Recipročne semantičke veze povezuju sinonime, antonime, hipernime i hiponime.
  • 🧪 Sinonimi i antonimi: WCping preko sinsetova i lema prikuplja svaki sinonim i antonim riječi.
  • ???? Hijerarhija: Hipernimi, hiponimi, holonimi i meronimi organiziraju riječi u imeničke, glagolske, pridjevske i prilogske podmreže.
  • 🤖 Prednost umjetne inteligencije: WordNet omogućuje zadatke analize teksta poput ispravljanja pravopisa, prevođenja i otkrivanja neželjene pošte.

NLTK WordNet

Š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.

Pitanja i odgovori

WordNet je NLTK čitač korpusa i leksička baza podataka za engleski jezik. Radi poput semantički orijentiranog rječnika, omogućujući vam jednostavno pretraživanje značenja, sinonima i antonima riječi. Python naredbe.

Sinset, skraćenica za skup sinonima, jest skupina riječi koje dijele isti koncept. Pozivanjem funkcije wordnet.synsets(“pas”) vraća se nekoliko sinsetova, od kojih svaki predstavlja jedno različito značenje riječi “pas”.

Prođite kroz wordnet.synsets(word), a zatim iterirajte leme() svakog sinseta. Dodajte lemma.name() za prikupljanje sinonima i pozovite lemma.antonyms() za prikupljanje antonima. Premotajteping Rezultati u set() uklanjaju duplicirane unose.

Hipernim je širi, generički pojam (obrok je hipernim od doručak), dok je hiponim specifičniji pojam (riža je hiponim od obrok). WordNet ih povezuje kako bi formirao hijerarhiju 'is-a'.

English WordNet uključuje oko 155,287 riječi organiziranih u otprilike 117,659 sinonimnih skupova. Baza podataka obuhvaća četiri vrste riječi: imenice, glagole, pridjeve i priloge, svaki pohranjen u vlastitoj podmreži.

U umjetnoj inteligenciji, WordNet podržava zadatke analize teksta kao što su razdvajanje smisla riječi, ispravljanje pravopisa, prevođenje jezika i otkrivanje neželjene pošte. Njegovi strukturirani odnosi daju modelima strojnog učenja bogatije lingvističke značajke od samih sirovih tokena.

Da. Cjevovodi umjetne inteligencije i strojnog učenja koriste mjere sličnosti WordNeta poput sličnosti puta i sličnosti Wu-Palmera. Oni ocjenjuju koliko su dva sinseta blizu mjerenjem najkraćeg puta između njih u hijerarhiji hipernima i hiponima.

Normalni rječnik navodi definicije abecednim redom. WordNet umjesto toga povezuje riječi po značenju putem sinsetova i leksičkih odnosa, pa se ponaša kao kombinirani rječnik i tezaurus koji strojevi mogu programski pregledavati.

Sažmite ovu objavu uz: