Kas ir Wordnet?
Wordnet ir NLTK korpusa lasītājs, leksiskā datu bāze angļu valodā. To var izmantot, lai atrastu vārdu nozīmi, sinonīmu vai antonīmu. To var definēt kā semantiski orientētu angļu valodas vārdnīcu. Tas tiek importēts ar šādu komandu:
from nltk.corpus import wordnet as guru
Statistika atklāj, ka angļu valodas WordNet ir iekļautas 155287 vārdu un 117659 sinonīmu kopas.
Dažādas metodes, kas pieejamas ar WordNet, var atrast, ierakstot dir (guru)
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', _ ___________________________________________________________________________________________________________ un_ un_______ un_____________________________________________ un___ un___ un_ __ un__detaļa __ge__ ',' __getattr__ ',' __getattribute__ ',' __gt__ ',' __hash__ ',' __init__ ',' __le__ ',' __lt__ ',' __module__ ',' __name__ ',' __ne__ ',' __new__ ',' __redze , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Ļaujiet mums saprast dažas no iespējām, kas pieejamas ar wordnet:
Synset : To sauc arī par sinonīmu kopu vai sinonīmu vārdu kolekciju. Pārbaudīsim piemēru
from nltk.corpus import wordnetsyns = wordnet.synsets("dog")print(syns)
Izeja:
[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')]
Leksiskās attiecības : Tās ir semantiskas attiecības, kas ir savstarpēji saistītas. Ja pastāv sakarība starp {x1, x2,… xn} un {y1, y2, ... yn}, tad pastāv saistība arī starp {y1, y2, ... yn} un {x1, x2, ... xn}. Piemēram, Sinonīms ir pretstats antonīmam vai hipernīmi, un hiponīms ir leksiskā jēdziena veids.
Uzrakstīsim programmu, izmantojot pitonu, lai atrastu vārda "aktīvs" sinonīmu un antonīmu, izmantojot Wordnet.
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))
Koda izvade:
{'dynamic', 'kaujas', 'cīņai gatavs', 'active_voice', 'active_agent', 'Participating', 'live', 'active'} - Sinonīms
{'stative', 'passive', 'quiet', 'passive_voice', 'izmiris', 'neaktīvs', 'neaktīvs'} - Antonīms
Koda skaidrojums
- Wordnet ir korpuss, tāpēc tas tiek importēts no ntlk.corpus
- Gan sinonīmu, gan antonīmu saraksts tiek uzskatīts par tukšu, kas tiks izmantots pievienošanai
- Vārda aktīvs sinonīmi tiek meklēti moduļa sinhronizācijās un tiek pievienoti saraksta sinonīmiem. Tas pats process tiek atkārtots arī otrajā.
- Izeja ir izdrukāta
Secinājums:
WordNet ir leksiska datu bāze, kuru ir izmantojusi galvenā meklētājprogramma. No WordNet informāciju par noteiktu vārdu vai frāzi var aprēķināt, piemēram,
- sinonīms (vārdi ar tādu pašu nozīmi)
- hipermani (vispārējs termins, ko lieto, lai apzīmētu specifiku klasi (ti, maltīte ir brokastis), hiponīmi (rīsi ir maltīte)
- holonīmi (olbaltumvielas, ogļhidrāti ir maltītes sastāvdaļa)
- meronīmi (maltīte ir daļa no ikdienas ēdiena uzņemšanas)
WordNet arī sniedz informāciju par koordinēšanas noteikumiem, atvasinājumiem, sajūtām un daudz ko citu. To izmanto, lai atrastu līdzību starp jebkuriem diviem vārdiem. Tajā ir arī informācija par saistītā vārda rezultātiem. Īsāk sakot vai īsumā to var uzskatīt par vārdnīcu vai tēzauru. Padziļinoties Wordnet, tas ir sadalīts četros kopējos apakštīklos, piemēram,
- Lietvārds
- Darbības vārds
- Īpašības vārds
- Apstākļa vārds
To var izmantot mākslīgā intelekta jomā teksta analīzei. Ar Wordnet palīdzību jūs varat izveidot savu korpusu pareizrakstības pārbaudei, valodas tulkošanai, surogātpasta noteikšanai un daudziem citiem.
Tādā pašā veidā jūs varat izmantot šo korpusu un veidot to, lai darbotos ar kādu dinamisku funkcionalitāti. Tas ir gluži kā gatavs jums izgatavot korpusu. Jūs to varat izmantot savā veidā.