NLTK WordNet: Etsi synonyymejä NLTK WordNetistä Python

Mikä Wordnet on?

Wordnet on NLTK-korpuslukija, englannin leksikaalinen tietokanta. Sitä voidaan käyttää sanojen, synonyymien tai antonyymien merkityksen löytämiseen. Se voidaan määritellä semanttisesti suuntautuneeksi englannin sanakirjaksi. Se tuodaan seuraavalla komennolla:

from nltk.corpus import wordnet as guru

Etsi synonyymejä NLTK WordNetistä Python

Tilastot paljastavat, että niitä on 155287 sanaa ja 117659 synonyymiä sarjat sisältyvät englanninkieliseen WordNetiin.

WordNetissä käytettävissä olevat erilaiset menetelmät löytyvät kirjoittamalla dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '______'del', ______'del',tr __', '__doc__', '__eq__', '__format__', ' * _' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_'subniir', '_'subniir'

Ymmärrämme joitakin Wordnetin ominaisuuksia:

Synset: Sitä kutsutaan myös synonyymijoukoksi tai synonyymisanojen kokoelmaksi. Tarkastellaanpa esimerkkiä

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

lähtö:

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

Leksiset suhteet: Nämä ovat semanttisia suhteita, jotka ovat vastavuoroisia. Jos {x1,x2,…xn} ja {y1,y2,…yn} välillä on suhde, on myös suhde välillä {y1,y2,…yn} ja {x1,x2,…xn}. Esimerkiksi synonyymi on vastakohta antonyymille tai hypernyymit ja hyponyymit ovat leksikaalisia käsitteitä.

Kirjoitetaan ohjelma käyttäen pytonkäärme löytää synonyymit ja antonyymit sanalle "aktiivinen" Wordnetin avulla.

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))

Koodin tulos:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} — synonyymi

{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dorralt', 'inactive'} — Antonyymi

Wordnet Ohjelmakoodin tulostus

Koodin selitys

  1. Wordnet on korpus, joten se tuodaan ntlk.corpuksesta
  2. Sekä synonyymien että antonyymien luettelo on tyhjä, jota käytetään liittämiseen
  3. Sanan aktiivinen synonyymejä etsitään moduulisynonyymeistä ja ne liitetään luettelosynonyymeihin. Sama prosessi toistetaan toiselle.
  4. Tulostus tulostetaan

Yhteenveto

WordNet on leksikaalinen tietokanta, jota pääaine on käyttänyt hakukone. WordNetistä voidaan laskea tietoja tietystä sanasta tai lauseesta, kuten

  • synonyymi (sanoilla on sama merkitys)
  • hypernyymit (yleinen termi, jota käytetään kuvaamaan tiettyä luokkaa (eli ateria on aamiainen), hyponyymit (riisi on ateria)
  • holonyymit (proteiinit, hiilihydraatit ovat osa ateriaa)
  • meronyymit (ateria on osa päivittäistä ravinnon saantia)

WordNet tarjoaa myös tietoa koordinaattitermeistä, johdannaisista, aisteista ja muusta. Sitä käytetään etsimään yhtäläisyyksiä minkä tahansa kahden sanan välillä. Se sisältää myös tietoa vastaavan sanan tuloksista. Lyhyesti tai pähkinänkuoressa sitä voidaan pitää sanakirjana tai synonyymisana. Wordnetissä syvemmälle menemällä se on jaettu neljään kokonaisaliverkkoon, kuten

  1. Substantiivi
  2. Verbi
  3. Adjektiivi
  4. adverbi

Sitä voidaan käyttää tekoälyn alalla tekstianalyysiin. Wordnetin avulla voit luoda korpuksen oikeinkirjoituksen tarkistamista, kielten kääntämistä, roskapostin tunnistamista ja monia muita varten.

Samalla tavalla voit käyttää tätä korpusta ja muokata sitä dynaamisten toimintojen käyttöön. Tämä on aivan kuin valmis korpus sinulle. Voit käyttää sitä omalla tavallasi.