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
Forklaring av koden
- Wordnet er et korpus, sรฅ det importeres fra ntlk.corpus
- Liste over bรฅde synonymer og antonymer tas som tom, som vil bli brukt for รฅ legge til
- Synonymer til ordet aktiv sรธkes i modulen synsets og legges til i listen synonymer. Den samme prosessen gjentas for den andre.
- 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
- Substantiv
- Verb
- Adjektiv
- 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.

