Označavanje POS-a s NLTK-om i dijeljenje u NLP-u (PRIMJERI)

Sadržaj:

Anonim

POS označavanje

POS označavanje ( označavanje dijelova govora) postupak je za označavanje riječi u tekstualnom formatu za određeni dio govora na temelju njegove definicije i konteksta. Odgovorno je za čitanje teksta na jeziku i za dodjeljivanje određenog znaka (dijelovi govora) svakoj riječi. Naziva se i gramatičkim označavanjem.

Naučimo na primjeru dijela govora NLTK:

Ulaz: Sve što nam dopušta.

Izlaz : [('Sve', NN), ('do', TO), ('dozvola', VB), ('nas', PRP)]

Koraci uključeni u primjer označavanja POS-om:

  • Tokeniziranje teksta (word_tokenize)
  • primijeniti pos_tag na gornji korak koji je nltk.pos_tag (tokenize_text)

Primjeri NLTK POS oznaka su sljedeći:

Skraćenica Značenje
CC koordinacijski veznik
CD kardinalna znamenka
DT odrednik
Npr egzistencijalni tamo
FW strana riječ
U prijedlog / podređeni veznik
JJ Ova NLTK POS oznaka je pridjev (velik)
JJR pridjev, poredbeni (veći)
JJS pridjev, superlativ (najveći)
LS tržište popisa
doktor medicine modalni (mogao, hoće)
NN imenica, jednina (mačka, drvo)
NNS imenica množina (stolovi)
NNP vlastita imenica, jednina (sarah)
NNPS vlastita imenica, množina (Indijanci ili Amerikanci)
PDT predeterminer (svi, oboje, pola)
POS posvojni završetak (roditelj)
PRP osobna zamjenica (njezina, ona sama, on, on sam)
PRP $ prisvojna zamjenica (her, his, my, my, our)
RB prilog (povremeno, brzo)
RBR prilog, poredbeni (veći)
RBS prilog, superlativ (najveći)
RP čestica (oko)
DO beskonačni marker (do)
UH interjekcija (zbogom)
VB glagol (pitati)
VBG glagol gerund (ocjenjivanje)
VBD glagol prošlo vrijeme (molba)
VBN glagolski prilog prošli (ujedinjeni)
VBP glagol, sadašnje vrijeme ne 3. lice jednine (omot)
VBZ glagol, sadašnje vrijeme s 3. licem jednine (osnove)
WDT wh-determinator (ono, što)
WP zamjenica (tko)
WRB wh- prilog (kako)

Gornji popis NLTK POS oznaka sadrži sve NLTK POS oznake. Oznaka NLTK POS koristi se za dodjeljivanje gramatičkih podataka svake riječi rečenice. Instaliranje, uvoz i preuzimanje svih paketa POS NLTK je završeno.

Što je chunking u NLP-u?

Dijeljenje NLP-a postupak je za uzimanje malih podataka i njihovo grupiranje u velike jedinice. Primarna upotreba Chunkinga je stvaranje skupina "imenskih fraza". Koristi se za dodavanje strukture rečenici slijedeći POS označavanje u kombinaciji s regularnim izrazima. Dobivena skupina riječi naziva se "komadi". Naziva se i plitkim raščlanjivanjem.

U plitkom raščlanjivanju postoji najviše jedna razina između korijena i lišća, dok se duboko raščlanjivanje sastoji od više od jedne razine. Plitko raščlanjivanje naziva se i lagano raščlanjivanje ili komadanje.

Pravila za komadanje:

Nema unaprijed definiranih pravila, ali ih možete kombinirati prema potrebi i zahtjevima.

Na primjer, iz rečenice morate označiti imenicu, glagol (prošlo vrijeme), pridjev i koordinacijski spoj. Možete koristiti pravilo kao u nastavku

komad: {*** ?}

Sljedeća tablica pokazuje što znači razni simbol:

Naziv simbola Opis
. Bilo koji znak, osim novog retka
* Podudarite 0 ili više ponavljanja
? Podudarite 0 ili 1 ponavljanja

Sada napišimo kod da bismo bolje razumjeli pravilo

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Izlaz

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Zaključak iz gornjeg primjera Pythona za označavanje dijela govora: "make" je glagol koji nije uključen u pravilo, pa nije označen kao mychunk

Slučaj korištenja

Chunking se koristi za otkrivanje entiteta. Entitet je onaj dio rečenice kojim stroj dobiva vrijednost za bilo koju namjeru

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Drugim riječima, komadanje se koristi kao odabir podskupina tokena. Slijedite donji kod da biste razumjeli kako se dijeljenje koristi za odabir tokena. U ovom ćete primjeru vidjeti grafikon koji će odgovarati dijelu imenske fraze. Napisat ćemo kod i nacrtati grafikon radi boljeg razumijevanja.

Kôd za demonstraciju slučaja upotrebe

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Izlaz :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Grafikon

Grafikon koji dijeli imensku frazu

Iz grafikona možemo zaključiti da su "learn" i "guru99" dva različita tokena, ali su kategorizirani kao imenička fraza, dok znak "from" ne pripada imenskoj frazi.

Chunking se koristi za kategorizaciju različitih tokena u isti komad. Rezultat će ovisiti o gramatici koja je odabrana. Daljnje komadanje NLTK koristi se za označavanje uzoraka i istraživanje tekstualnih tijela.

Sažetak

  • Označavanje POS-om u NLTK-u postupak je označavanja riječi u tekstualnom formatu za određeni dio govora na temelju njegove definicije i konteksta.
  • Neki primjeri NLTK POS označavanja su: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO itd.
  • POS označivač koristi se za dodjeljivanje gramatičkih podataka svake riječi rečenice. Instaliranje, uvoz i preuzimanje svih paketa označavanja dijela govora s NLTK je završeno.
  • Dijeljenje NLP-a postupak je za uzimanje malih podataka i njihovo grupiranje u velike jedinice.
  • Nema unaprijed definiranih pravila, ali ih možete kombinirati prema potrebi i zahtjevima.
  • Chunking se koristi za otkrivanje entiteta. Entitet je onaj dio rečenice kojim stroj dobiva vrijednost za bilo koju namjeru
  • Chunking se koristi za kategorizaciju različitih tokena u isti komad.