NLTK WordNet: Găsiți sinonime din NLTK WordNet în Python

⚡ Rezumat inteligent

WordNet este o bază de date lexicală și un cititor de corpus NLTK pentru limba engleză care grupează substantive, verbe, adjective și adverbe în synseturi, permițând... Python Programele caută sinonime, antonime, hipernime și semnificații ale cuvintelor pentru procesarea limbajului natural.

  • 🧩 Cititor de corpus: WordNet este importat din nltk.corpus și acționează ca un dicționar semantic al limbii engleze.
  • 🔁 Synset-uri: Un synset este o colecție de cuvinte sinonime, cum ar fi cele opt simțuri returnate pentru „câine”.
  • 🔗 Relații lexicale: Legăturile semantice reciproce leagă sinonime, antonimele, hipernimele și hiponimele.
  • 🧪 Sinonime și antonime: Looping peste synset-uri și leme colectează fiecare sinonim și antonim al unui cuvânt.
  • 🌳 Ierarhie: Hipernimele, hiponimele, olonimele și meronimele organizează cuvintele în subrețele de substantive, verb, adjective și adverbe.
  • 🤖 Beneficiul IA: WordNet gestionează sarcini de analiză textuală precum corectarea ortografiei, traducerea și detectarea spamului.

NLTK WordNet

Ce este Wordnet?

WordNet este un cititor de corpus NLTK, o bază de date lexicală pentru limba engleză. Poate fi folosit pentru a găsi sensul cuvintelor, un sinonim sau un antonim. Îl putem defini ca un dicționar semantic al limbii engleze. WordNet se importă cu următoarea comandă:

from nltk.corpus import wordnet as guru

Deoarece WordNet este livrat ca un corpus predefinit, îl puteți încărca o singură dată și puteți începe imediat interogarea relațiilor dintre cuvinte fără a construi singur vreun dicționar.

Găsiți Sinonime din NLTK WordNet în Python

Statisticile arată că există 155287 cuvinte și 117659 sinonim seturi incluse în WordNet în limba engleză. Diferite metode disponibile cu WordNet pot fi găsite de typing dir(guru), care listează fiecare atribut al încărcătorului și metodă helper expusă de cititorul de corpus.

Synset: Se mai numește și set de sinonime sau colecție de cuvinte sinonime. Să vedem un exemplu.

from nltk.corpus import wordnet
syns = wordnet.synsets("dog")
print(syns)

ieșire:

[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')]

Relații lexicale: Acestea sunt relații semantice reciproce. Dacă există o relație între {x1,x2,…xn} și {y1,y2,…yn}, atunci există și o relație între {y1,y2,…yn} și {x1,x2,…xn}. De exemplu, sinonimul este opusul antonimului, în timp ce hipernimele și hiponimele sunt un tip de concept lexical.

Să scriem un program folosind Python pentru a găsi sinonimul și antonimul cuvântului „activ” folosind 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))

Ieșirea codului:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym

Explicația codului:

  • WordNet este un corpus, deci este importat din pachetul nltk.corpus.
  • Două liste de sinonime și antonime sunt considerate goale și vor fi folosite pentru adăugare.
  • Sinonimele cuvântului „activ” sunt căutate în metoda synsets și adăugate la lista de sinonime. Același proces colectează antonimele.
  • Rezultatul este imprimat ca Python seturi astfel încât intrările duplicate să fie eliminate automat.

Dincolo de sinonime și antonime, WordNet expune și hipernime (termeni mai generali), hiponime (termeni mai specifici), olonime și meronime, astfel încât o singură interogare poate plasa un cuvânt într-o întreagă ierarhie is-a. Aceste relații fac din WordNet un tezaur practic pentru verificatoare ortografice, traduceri lingvistice, detectarea spamului și alte sarcini de analiză textuală în inteligența artificială.

Întrebări frecvente

WordNet este un cititor de corpus NLTK și o bază de date lexicală pentru limba engleză. Funcționează ca un dicționar orientat semantic, permițându-vă să căutați sensul, sinonimele și antonimele unui cuvânt cu ajutorul unor funcții simple. Python comenzi.

Un synset, prescurtare de la synonym set (mulțime de sinonime), este un grup de cuvinte care au același concept. Apelul funcției wordnet.synsets(„dog”) returnează mai multe synset-uri, fiecare reprezentând un sens distinct al cuvântului „dog”.

Parcurgeți wordnet.synsets(word), apoi iterați lemmas() fiecărui synset. Adăugați lemma.name() pentru a colecta sinonime și apelați lemma.antonyms() pentru a colecta antonime. Wrapping Rezultatele din set() elimină intrările duplicate.

Un hipernim este un termen generic mai larg („masă” este un hipernim al cuvântului „mic dejun”), în timp ce un hiponim este un termen mai specific („orez” este un hiponim al cuvântului „meal”). WordNet leagă aceste termene pentru a forma o ierarhie de tip „este” („is-a”).

English WordNet include aproximativ 155,287 de cuvinte organizate în aproximativ 117,659 de seturi de sinonime. Baza de date cuprinde patru părți de vorbire: substantive, verbe, adjective și adverbe, fiecare stocată în propria subrețea.

În inteligența artificială, WordNet oferă suport pentru sarcini de analiză textuală, cum ar fi dezambiguizarea sensului cuvintelor, corectarea ortografiei, traducerea limbii și detectarea spamului. Relațiile sale structurate oferă modelelor de învățare automată caracteristici lingvistice mai bogate decât simplele token-uri brute.

Da. Inteligența artificială și conductele de învățare automată utilizează măsuri de similaritate WordNet, cum ar fi similaritatea căii și similaritatea Wu-Palmer. Acestea evaluează cât de apropiate sunt două seturi de synseturi prin măsurarea celei mai scurte căi dintre ele în ierarhia hipernimelor și hiponimelor.

Un dicționar normal listează definițiile în ordine alfabetică. WordNet leagă în schimb cuvintele după sens prin seturi de synseturi și relații lexicale, astfel încât se comportă ca un dicționar și un tezaur combinate pe care mașinile le pot parcurge programatic.

Rezumați această postare cu: