Mi a Wordnet?
A Wordnet egy NLTK korpuszolvasó, az angol nyelv lexikális adatbázisa. Használható szavak, szinonimák vagy antonimák jelentésének megkeresésére. Meghatározható szemantikailag orientált angol szótárként. A következő paranccsal importálható:
from nltk.corpus import wordnet as guru
A statisztikák szerint 155287 szó és 117659 szinonimakészlet szerepel az angol WordNet-ben.
A WordNet segítségével elérhető különböző módszerek megtalálhatók a dir (guru) beírásával
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class___' __ge__ ',' __getattr__ ',' __getattribute__ ',' __gt__ ',' __hash__ ',' __init__ ',' __le__ ',' __lt__ ',' __module__ ',' __name__ ',' __ne__ ',' __new__ ',' __red___ , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'alkönyvtár', 'unicode_repr']
Ismerjük meg a wordnet néhány elérhető tulajdonságát:
Szinset : Szinonimakészletként vagy szinonimaszók gyűjteményeként is hívják. Nézzünk meg egy példát
from nltk.corpus import wordnetsyns = wordnet.synsets("dog")print(syns)
Kimenet:
[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 viszonozva vannak. Ha kapcsolat van {x1, x2,… xn} és {y1, y2, ... yn} között, akkor kapcsolat van {y1, y2, ... yn} és {x1, x2,… xn} között is. Például a szinonimája ellentétes az antonimával, vagy a hiperimmek és a hiponim a lexikális fogalom típusa.
Írjunk egy programot python segítségével, hogy megtaláljuk az "aktív" szó szinonimáját és antonimáját a Wordnet segítségével.
from nltk.corpus import wordnetsynonyms = []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', 'harci', 'harci kész', 'active_voice', 'active_agent', 'részt vevő', 'életben', 'aktív'} - Szinonima
{'stative', 'passzív', 'csendes', 'passive_voice', 'kihalt', 'alvó', 'inaktív'} - Antoním
A kód magyarázata
- A Wordnet egy korpusz, ezért az ntlk.corpus fájlból importálja
- A szinonimák és az antonimák listáját is üresnek tekintik, amelyeket a csatoláshoz használnak
- Az aktív szó szinonimáit keresik a modul szinkronszettjeiben, és a lista szinonimáihoz csatolják. Ugyanezt a folyamatot ismételjük meg a másodiknál is.
- A kimenet kinyomtatásra kerül
Következtetés:
A WordNet egy lexikális adatbázis, amelyet egy nagyobb keresőmotor használt. A WordNetből kiszámolhatók egy adott szóra vagy kifejezésre vonatkozó információk, pl
- szinonima (azonos jelentésű szavak)
- hiperminták (A specifikus osztály (azaz az étkezés egy reggeli), a hiponimák (a rizs egy étkezés) jelölésére használt általános kifejezés
- holonimák (fehérje, szénhidrát az étkezés része)
- meronimák (az étkezés a napi étkezés része)
A WordNet információt nyújt a koordinációs kifejezésekről, a deriváltakról, az érzékekről és egyebekről is. Bármely két szó közötti hasonlóság megtalálására szolgál. Információt 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 wordnet mélyebbre menve négy teljes alhálózatra oszlik, mint pl
- Főnév
- Ige
- Melléknév
- Határozószó
A mesterséges intelligencia területén használható szövegelemzésre. A Wordnet segítségével létrehozhatja korpuszját a helyesírás-ellenőrzéshez, a nyelvfordításhoz, a spamfelismeréshez és még sok máshoz.
Ugyanígy használhatja ezt a korpuszt, és formázhatja valamilyen dinamikus funkcionalitáshoz. Ez olyan, mintha készen állna az elkészített korpusz az Ön számára. Használhatja a maga módján.