Vad är Wordnet?
Wordnet är en NLTK corpus-läsare, en lexikal databas för engelska. Den kan användas för att hitta betydelsen av ord, synonym eller antonym. Man kan definiera det som en semantiskt orienterad ordbok för engelska. Den importeras med följande kommando:
from nltk.corpus import wordnet as guru
Statistik avslöjar att det finns 155287 ord och 117659 synonymer som ingår i engelska WordNet.
Olika metoder som finns tillgängliga med WordNet kan hittas genom att skriva dir (guru)
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__ocattr__' __ge__ ',' __getattr__ ',' __getattribute__ ',' __gt__ ',' __hash__ ',' __init__ ',' __le__ ',' __lt__ ',' __module__ ',' __name__ ',' __ne__ ',' __new__ ',' __reduce__ ' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Låt oss förstå några av de funktioner som finns med wordnet:
Synset : Det kallas också som synonymuppsättning eller samling av synonymord. Låt oss kolla ett exempel
from nltk.corpus import wordnetsyns = wordnet.synsets("dog")print(syns)
Produktion:
[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')]
Lexiska relationer : Dessa är semantiska relationer som är fram och tillbaka. Om det finns en relation mellan {x1, x2, ... xn} och {y1, y2, ... yn} så finns det också en relation mellan {y1, y2, ... yn} och {x1, x2, ... xn}. Synonym är till exempel motsatsen till antonymer eller hypernymer och hyponym är typ av lexikalt begrepp.
Låt oss skriva ett program med python för att hitta synonym och antonym för ordet "aktivt" med hjälp av 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))
Utgången från koden:
{'dynamisk', 'slåss', 'stridsklar', 'aktiv_röst', 'aktiv_agent', 'deltagande', 'levande', 'aktiv'} - Synonym
{'stativ', 'passiv', 'tyst', 'passiv_röst', 'utdöd', 'vilande', 'inaktiv'} - Antonym
Förklaring av koden
- Wordnet är ett corpus, så det importeras från ntlk.corpus
- Listan med både synonym och antonym betraktas som tom som kommer att användas för att lägga till
- Synonymer till ordet aktiv söks i modulen synsets och läggs till i listans synonymer. Samma process upprepas för den andra.
- Utskriften skrivs ut
Slutsats:
WordNet är en lexikal databas som har använts av en större sökmotor. Från WordNet kan information om ett visst ord eller en fras beräknas såsom
- synonym (ord med samma betydelse)
- hypernyms (den generiska termen som används för att beteckna en klass av detaljer (dvs. måltid är en frukost), hyponymer (ris är en måltid)
- holonymer (proteiner, kolhydrater är en del av måltiden)
- meronymer (måltid är en del av det dagliga matintaget)
WordNet tillhandahåller också information om samordnade termer, derivat, sinnen och mer. Den används för att hitta likheterna mellan två ord. Den innehåller också information om resultaten av det relaterade ordet. I korthet eller nötskal kan man behandla det som ordbok eller ordbok. När vi går djupare i wordnet är den uppdelad i fyra totala undernät som
- Substantiv
- Verb
- Adjektiv
- Adverb
Den kan användas inom området artificiell intelligens för textanalys. Med hjälp av Wordnet kan du skapa ditt corpus för stavningskontroll, språköversättning, skräppostdetektering och många fler.
På samma sätt kan du använda detta korpus och forma det för att fungera dynamiskt. Detta är precis som redo att göra corpus för dig. Du kan använda den på ditt sätt.