Co je Wordnet?
Wordnet je čtečka korpusů NLTK, lexikální databáze pro angličtinu. Lze jej použít k vyhledání významu slov, synonym nebo antonym. Lze jej definovat jako sémanticky orientovaný slovník angličtiny. Importuje se pomocí následujícího příkazu:
from nltk.corpus import wordnet as guru
Statistiky ukazují, že do anglického WordNetu je zahrnuto 155287 slov a 117659 sad synonym .
Různé metody dostupné ve WordNetu najdete zadáním dir (guru)
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__d__,' __ '' __ge__ ',' __getattr__ ',' __getattribute__ ',' __gt__ ',' __hash__ ',' __init__ ',' __le__ ',' __lt__ ',' __module__ ',' __name__ ',' __ne__ ',' __new__ ',' __red , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Rozumíme některým funkcím dostupným na wordnetu:
Synset : Nazývá se také jako sada synonym nebo kolekce synonymních slov. Podívejme se na příklad
from nltk.corpus import wordnetsyns = wordnet.synsets("dog")print(syns)
Výstup:
[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')]
Lexikální vztahy : Jedná se o sémantické vztahy, které jsou vzájemné. Pokud existuje vztah mezi {x1, x2, ... xn} a {y1, y2, ... yn}, pak existuje také vztah mezi {y1, y2, ... yn} a {x1, x2, ... xn}. Například Synonymum je opakem antonymů nebo hypernymů a hyponym jsou typem lexikálního konceptu.
Napíšeme program pomocí pythonu, abychom pomocí Wordnetu našli synonymum a antonymum slova „aktivní“.
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))
Výstup kódu:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'involved', 'alive', 'active'} - Synonymum
{'stative', 'passive', 'quiet', 'passive_voice', 'zaniklý', 'spící', 'neaktivní'} - Antonym
Vysvětlení kódu
- Wordnet je korpus, takže se importuje z ntlk.corpus
- Seznam synonym i antonym je považován za prázdný, který bude použit pro připojení
- Synonyma slova aktivní jsou vyhledávána v synsetech modulu a jsou připojena v seznamu synonym. Stejný postup se opakuje pro druhý.
- Výstup se vytiskne
Závěr:
WordNet je lexikální databáze, kterou používá hlavní vyhledávač. Ze sítě WordNet lze vypočítat informace o daném slově nebo frázi, například
- synonymum (slova mající stejný význam)
- hypernyms (Obecný termín používaný k označení třídy specifik (tj. jídlo je snídaně), hyponyma (rýže je jídlo)
- holonymy (bílkoviny, sacharidy jsou součástí jídla)
- meronyma (jídlo je součástí denního příjmu potravy)
WordNet také poskytuje informace o souřadných pojmech, derivátech, smyslech a dalších. Používá se k nalezení podobnosti mezi libovolnými dvěma slovy. Obsahuje také informace o výsledcích souvisejícího slova. Stručně řečeno, lze to považovat za slovník nebo tezaurus. Jdeme hlouběji do wordnetu, je rozdělen do čtyř celkových podsítí, jako je
- Podstatné jméno
- Sloveso
- Přídavné jméno
- Příslovce
Lze jej použít v oblasti umělé inteligence pro textovou analýzu. Pomocí Wordnetu můžete vytvořit svůj korpus pro kontrolu pravopisu, jazykový překlad, detekci spamu a mnoho dalších.
Stejným způsobem můžete tento korpus použít a zformovat jej tak, aby fungoval s některými dynamickými funkcemi. Je to jako připravený korpus pro vás. Můžete to použít svým způsobem.