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

Ce este Wordnet?

Wordnet este un cititor de corpus NLTK, o bază de date lexicală pentru engleză. Poate fi folosit pentru a găsi sensul cuvintelor, sinonimului sau antonimului. Se poate defini ca un dicționar de engleză orientat semantic. Este importat cu următoarea comandă:

from nltk.corpus import wordnet as guru

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

Statisticile arată că există 155287 cuvinte și 117659 sinonim seturi incluse cu WordNet engleză.

Diferite metode disponibile cu WordNet pot fi găsite tastând dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__delattr__', '__delattr_,__dir__, '_delattr_,____,_ __eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne___reduce,', '_____reduce,'_' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

Să înțelegem câteva dintre caracteristicile disponibile cu wordnet:

Synset: Este numit și ca set de sinonime sau colecție de cuvinte sinonime. Să verificăm 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 care sunt 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 antonimelor sau hipernimelor, iar hiponimul sunt tipuri de concept lexical.

Să scriem un program folosind piton 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”} — Sinonim

{„stativ”, „pasiv”, „liniștit”, „voce_pasivă”, „dispărut”, „latent”, „inactiv”} — Antonim

Ieșire cod program Wordnet

Explicația codului

  1. Wordnet este un corpus, deci este importat din ntlk.corpus
  2. Lista sinonimelor și antonimului este considerată goală, care va fi folosită pentru atașare
  3. Sinonime ale cuvântului activ sunt căutate în modul synsets și sunt atașate în lista de sinonime. Același proces se repetă și pentru al doilea.
  4. Ieșirea este imprimată

Concluzie

WordNet este o bază de date lexicală care a fost folosită de un major motor de cautare. Din WordNet, pot fi calculate informații despre un anumit cuvânt sau expresie, cum ar fi

  • sinonim (cuvinte având același înțeles)
  • hipernime (termenul generic folosit pentru a desemna o clasă de specific (adică, masa este un mic dejun), hiponime (orezul este o masă)
  • holonime (proteinele, carbohidrații fac parte din masă)
  • meronime (masa face parte din aportul alimentar zilnic)

WordNet oferă, de asemenea, informații despre termeni coordonați, derivate, sensuri și multe altele. Este folosit pentru a găsi asemănările dintre oricare două cuvinte. De asemenea, conține informații despre rezultatele cuvântului înrudit. Pe scurt, se poate trata ca Dicționar sau Tezaur. Mergând mai profund în wordnet, acesta este împărțit în patru subrețele totale, cum ar fi

  1. substantiv
  2. Verb
  3. Adjectiv
  4. adverb

Poate fi folosit în domeniul inteligenței artificiale pentru analiza textului. Cu ajutorul Wordnet, vă puteți crea corpus pentru verificarea ortografică, traducerea limbii, detectarea spamului și multe altele.

În același mod, puteți utiliza acest corpus și îl puteți modela pentru a lucra cu o anumită funcționalitate dinamică. Acesta este la fel ca un corpus gata de făcut pentru tine. Îl poți folosi în felul tău.