NLTK WordNet: leidke sünonüüme NLTK WordNetist Python
⚡ Nutikas kokkuvõte
WordNet on inglise keele leksikaalne andmebaas ja NLTK korpuse lugeja, mis grupeerib nimisõnad, tegusõnad, omadussõnad ja määrsõnad sünhulkadeks, võimaldades Python Programmid otsivad loomuliku keele töötlemiseks sünonüüme, antonüüme, hüpernüüme ja sõnatähendusi.

Mis on Wordnet?
WordNet on NLTK korpuse lugeja, inglise keele leksikaalne andmebaas. Seda saab kasutada sõnade tähenduse, sünonüümi või antonüümi leidmiseks. Seda saab defineerida semantiliselt orienteeritud inglise keele sõnaraamatuna. WordNet imporditakse järgmise käsuga:
from nltk.corpus import wordnet as guru
Kuna WordNet tarnitakse valmiskorpusena, saate selle üks kord laadida ja kohe sõnadevaheliste seoste päringuid alustada ilma ise sõnastikku loomata.
Otsige sünonüüme NLTK WordNetist Python
Statistika näitab, et neid on 155287 sõna ja 117659 sünonüümi Inglise keele WordNeti komplektid on kaasas. WordNeti erinevad meetodid leiate aadressilt typing dir(guru), mis loetleb kõik korpuse lugeja poolt avaldatud laaduri atribuudid ja abimeetodid.
Süneesikomplekt: Seda nimetatakse ka sünonüümide komplektiks või sünonüümsõnade kogumiks. Vaatleme näidet.
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
Väljund:
[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')]
Leksikaalsed suhted: Need on vastastikku avalduvad semantilised seosed. Kui {x1,x2,…xn} ja {y1,y2,…yn} vahel on seos, siis on seos ka {y1,y2,…yn} ja {x1,x2,…xn} vahel. Näiteks sünonüüm on antonüümi vastand, samas kui hüpernüümid ja hüponüümid on leksikaalsete mõistete tüübid.
Kirjutame programmi kasutades Python sõna „aktiivne“ sünonüümi ja antonüümi leidmiseks WordNeti abil.
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))
Koodi väljund:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Koodi selgitus:
- WordNet on korpus, seega imporditakse see paketist nltk.corpus.
- Kaks sünonüümide ja antonüümide loendit võetakse tühjadeks ja neid kasutatakse lisamiseks.
- Sõna „active“ sünonüüme otsitakse meetodis synsets ja lisatakse sünonüümide loendisse. Sama protsess kogub ka antonüüme.
- Väljund trükitakse kujul Python komplektid, nii et duplikaatkirjed eemaldatakse automaatselt.
Lisaks sünonüümidele ja antonüümidele pakub WordNet ka hüpernüüme (laiemad terminid), hüponüüme (täpsemad terminid), holonüüme ja meronüüme, nii et ühe päringuga saab sõna paigutada tervesse "on-a" hierarhiasse. Need seosed muudavad WordNeti praktiliseks tesauruseks õigekirjakontrollide, keele tõlkimise, rämpsposti tuvastamise ja muude tehisintellekti tekstianalüüsi ülesannete jaoks.
