NLTK WordNet: Finn synonymer fra NLTK WordNet i Python

Hva er Wordnet?

Wordnet er en NLTK-korpusleser, en leksikalsk database for engelsk. Den kan brukes til รฅ finne betydningen av ord, synonym eller antonym. Man kan definere det som en semantisk orientert engelskordbok. Den importeres med fรธlgende kommando:

from nltk.corpus import wordnet as guru

Finn synonymer fra NLTK WordNet i Python

Statistikk viser at det er det 155287 ord og 117659 synonymer sett inkludert i engelsk WordNet.

Ulike metoder tilgjengelig med WordNet kan finnes av typing dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__delattr__', '__delattr__,' __format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

La oss forstรฅ noen av funksjonene som er tilgjengelige med wordnet:

Synset: Det kalles ogsรฅ som synonymsett eller samling av synonymord. La oss sjekke et eksempel

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

Utgang:

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

Leksiske forhold: Dette er semantiske relasjoner som er gjengjeldt. Hvis det er en sammenheng mellom {x1,x2,โ€ฆxn} og {y1,y2,โ€ฆyn}, sรฅ er det ogsรฅ en sammenheng mellom {y1,y2,โ€ฆyn} og {x1,x2,โ€ฆxn}. For eksempel er synonym det motsatte av antonym eller hypernyms og hyponym er en type leksikalsk konsept.

La oss skrive et program ved hjelp av python for รฅ finne synonym og antonym til ordet "aktiv" ved hjelp av 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))

Utgangen av koden:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} โ€” Synonym

{'stativ', 'passiv', 'stille', 'passiv_stemme', 'utdรธdd', 'sovende', 'inaktiv'} โ€“ Antonym

Wordnet Programkode Utgang

Forklaring av koden

  1. Wordnet er et korpus, sรฅ det importeres fra ntlk.corpus
  2. Liste over bรฅde synonymer og antonymer tas som tom, som vil bli brukt for รฅ legge til
  3. Synonymer til ordet aktiv sรธkes i modulen synsets og legges til i listen synonymer. Den samme prosessen gjentas for den andre.
  4. Utdata skrives ut

Konklusjon

WordNet er en leksikalsk database som har blitt brukt av en hovedfag sรธkemotor. Fra WordNet kan informasjon om et gitt ord eller uttrykk beregnes som f.eks

  • synonym (ord som har samme betydning)
  • hypernymer (det generiske begrepet som brukes for รฅ betegne en klasse med spesifikke kjennetegn (dvs. mรฅltid er en frokost), hyponymer (ris er et mรฅltid)
  • holonymer (proteiner, karbohydrater er en del av mรฅltidet)
  • meronymer (mรฅltid er en del av daglig matinntak)

WordNet gir ogsรฅ informasjon om koordinerte termer, derivater, sanser og mer. Det brukes til รฅ finne likhetene mellom to ord. Den inneholder ogsรฅ informasjon om resultatene av det relaterte ordet. Kort eller nรธtteskall kan man behandle det som ordbok eller synonymordbok. Gรฅr dypere inn i wordnet, er det delt inn i fire totale undernett som f.eks

  1. Substantiv
  2. Verb
  3. Adjektiv
  4. adverb

Den kan brukes innen kunstig intelligens for tekstanalyse. Ved hjelp av Wordnet kan du lage ditt korpus for stavekontroll, sprรฅkoversettelse, spam-deteksjon og mange flere.

Pรฅ samme mรฅte kan du bruke dette korpuset og forme det til รฅ fungere litt dynamisk funksjonalitet. Dette er akkurat som klart รฅ lage korpus for deg. Du kan bruke den pรฅ din mรฅte.

Oppsummer dette innlegget med: