NLTK WordNet: Szinonimák keresése az NLTK WordNetben Python

Mi az a Wordnet?

A Wordnet egy NLTK korpusz olvasó, egy angol lexikális adatbázis. Használható szavak, szinonimák vagy antonimák jelentésének megtalálására. Úgy definiálhatjuk, mint egy szemantikailag orientált angol szótárt. Az importálás a következő paranccsal történik:

from nltk.corpus import wordnet as guru

Szinonimák keresése az NLTK WordNetben Python

A statisztikák azt mutatják, hogy vannak 155287 szó és 117659 szinonimája készletek az angol WordNethez.

A WordNettel elérhető különféle módszereket a dir(guru) beírásával találhatja meg

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '___class_'_'._,___dic__' ir__', '__doc__', '__eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name, _______ __' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_'subniir', '_'subniir'

Ismerkedjünk meg a wordnet néhány funkciójával:

Synset: Szinonimakészletnek vagy szinonimszavak gyűjteményének is nevezik. Nézzünk egy példát

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

output:

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

Lexikai kapcsolatok: Ezek szemantikai kapcsolatok, amelyek kölcsönösek. Ha van kapcsolat {x1,x2,…xn} és {y1,y2,…yn} között, akkor van kapcsolat az {y1,y2,…yn} és az {x1,x2,…xn} között is. Például a szinonimák az antonimák ellentéte, vagy a hipernimák és a hiponimák lexikális fogalomtípusok.

Írjunk egy programot a segítségével piton hogy megtalálja az „aktív” szó szinonimáját és antonimáját a Wordnet segítségével.

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

A kód kimenete:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} — Szinonimák

{'statív', 'passzív', 'csendes', 'passzív_hang', 'kihalt', 'alvó', 'inaktív'} — Antoníma

Wordnet programkód Kimenet

A kód magyarázata

  1. A Wordnet egy korpusz, ezért az ntlk.corpusból importálják
  2. A szinonimák és az antonimák listája üresnek tekinthető, amelyet a hozzáfűzéshez használunk
  3. Az aktív szó szinonimáit a rendszer a modul szintkészleteiben keresi, és hozzáfűzi a szinonimák listájához. Ugyanez a folyamat megismétlődik a másodiknál ​​is.
  4. A kimenet kinyomtatott

Következtetés

A WordNet egy lexikális adatbázis, amelyet egy szakos használt kereső. A WordNetből egy adott szóra vagy kifejezésre vonatkozó információkat lehet kiszámítani, mint pl

  • szinonimák (azonos jelentésű szavak)
  • hipernimák (az általános kifejezés, amely egy speciális osztály megjelölésére szolgál (azaz az étkezés egy reggeli), hiponimák (a rizs egy étkezés)
  • holonimák (a fehérjék, szénhidrátok az étkezés részét képezik)
  • meronimák (az étkezés a napi táplálékbevitel része)

A WordNet a koordináta kifejezésekről, a származékokról, az érzékekről és egyebekről is nyújt információkat. Arra használják, hogy megtalálják a hasonlóságokat bármely két szó között. Információkat is tartalmaz a kapcsolódó szó eredményeiről. Röviden vagy dióhéjban szótárként vagy tezauruszként kezelhetjük. A wordnetben mélyebben haladva négy teljes alhálózatra oszlik, mint pl

  1. Főnév
  2. Ige
  3. Melléknév
  4. határozószó

Használható a mesterséges intelligencia területén szövegelemzésre. A Wordnet segítségével elkészítheti korpuszát a helyesírás-ellenőrzéshez, a nyelvi fordításhoz, a levélszemét-felismeréshez és még sok máshoz.

Ugyanígy használhatja ezt a korpuszt, és alakíthatja ki bizonyos dinamikus funkciók működéséhez. Ez olyan, mint az Ön számára elkészített korpusz. Használhatja a maga módján.