POS Tagging cu NLTK și Chunking în NLP [EXEMPLE]

POS Tagging

POS Tagging (Parts of Speech Tagging) este un proces de marcare a cuvintelor în format text pentru o anumită parte a discursului pe baza definiției și contextului acesteia. Este responsabilă de citirea textului într-o limbă și de atribuirea unor simboluri specifice (părți de vorbire) pentru fiecare cuvânt. Se mai numește și etichetare gramaticală.

Să învățăm cu un exemplu NLTK Part of Speech:

Intrare: Totul pentru a ne permite.

Output:

Pași implicați în exemplul de etichetare POS:

  • Tokenize text (word_tokenize)
  • aplicați pos_tag la pasul de mai sus care este nltk.pos_tag(tokenize_text)

NLTK POS Tags Examples are as Below:

.

Abbreviație Semnificație
CC conjuncție coordonatoare
CD Digital cardinal
DT determinator
EX existențial there
FW cuvânt străin
IN prepoziție/conjuncție subordonată
JJ Acest POS Tag NLTK este un adjectiv (mare)
JR JR adjectiv, comparativ (mai mare)
JJS adjectiv, superlativ (cel mai mare)
LS listă de piață
MD modal (ar putea, va)
NN substantiv, singular (pisica, copac)
NNS numele la plural (birouri)
NNP substantiv propriu, singular (sarah)
NNPS substantiv propriu, plural (indieni sau americani)
PDT predeterminant (all, both, half)
POS final posesiv (parent\ ‘s)
PRP pronume personal (hers, herself, him,himself)
PRP$ Pronume posesiv (her, his, mine, my, our )
RB adverb (ocazional, swiftly)
RBR adverb, comparativ (mai mare)
RBS adverb, superlativ (mai mare)
RP particular (despre)
TO infinit marker (to)
UH interjecție (goodbye)
VB verb (ask)
VBG verb gerunziu (a judeca)
VBD verb timp trecut (a pledat)
VBN verb participiu trecut (reunificat)
VBP verb, timpul prezent fără persoana a 3-a singular (înfășurat)
VBZ verb, timpul prezent cu persoana a 3-a singular (baze)
WDT wh-determinator (that, what)
WP wh- pronume (who)
WRB wh- adverb (how)

Lista tag-urilor NLTK POS de mai sus conține toate tag-urile NLTK POS. NLTK POS tagger este utilizat pentru a atribui informații gramaticale fiecărui cuvânt din propoziție. Instalarea, importul și descărcarea tuturor pachetelor POS NLTK este completă.

Ce este Chunking în NLP?

Chunking în NLP este un proces prin care se iau bucăți mici de informații și se grupează în unități mari. Utilizarea primară a Chunking-ului este crearea de grupuri de „fraze substantivale”. Acesta este folosit pentru a adăuga structură la propoziție prin urmărirea etichetării POS combinate cu expresii regulate. Grupul de cuvinte rezultat se numește „chunks”. Se mai numește și „shallow parsing”.

În parsarea superficială, există cel mult un nivel între rădăcini și frunze, în timp ce parsarea profundă cuprinde mai mult de un nivel. Shallow parsing se mai numește și light parsing sau chunking.

Reguli pentru Chunking:

Nu există reguli predefinite, dar le puteți combina în funcție de nevoi și cerințe.

De exemplu, trebuie să etichetați substantivul, verbul (la trecut), adjectivul și joncțiunea coordonatoare din propoziție. Puteți folosi regula ca mai jos

chunk:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}

Tabelul de mai jos arată ce înseamnă diferitele simboluri:

Numele simbolului Descriere
. Cu orice caracter, cu excepția liniei noi
* Corespunde la 0 sau mai multe repetiții
? Match 0 sau 1 repetiții

Acum să scriem codul pentru a înțelege mai bine regula

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:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Output

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

Concluzia din exemplul Python de mai sus de etichetare Part of Speech: „make” este un verb care nu este inclus în regulă, deci nu este etichetat ca mychunk

Cazul de utilizare a Chunking

Chunking este utilizat pentru detectarea entităților. O entitate este acea parte a propoziției prin care mașina obține valoarea pentru orice intenție

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

Cu alte cuvinte, chunking-ul este folosit pentru a selecta subansambluri de token-uri. Vă rugăm să urmăriți codul de mai jos pentru a înțelege cum se utilizează chunking-ul pentru a selecta token-urile. În acest exemplu, veți vedea graficul care va corespunde unui chunk al unei fraze substantivale. Vom scrie codul și vom desena graficul pentru o mai bună înțelegere.

Cod pentru a demonstra cazul de utilizare

 import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {<DT>?<JJ>*<NN>}"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 

Output:

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

Grafic

Grafic de clasificare a frazei substantivale

Din grafic, putem concluziona că „learn” și „guru99” sunt două token-uri diferite, dar sunt clasificate ca frază substantivală, în timp ce token-ul „from” nu aparține frazei substantivale.

Chunking-ul este utilizat pentru a clasifica diferite token-uri în același chunk. Rezultatul va depinde de gramatica care a fost selectată. În continuare, Chunking NLTK este utilizat pentru a marca modele și pentru a explora corpusuri de text.

Summary

  • Etichetarea POS în NLTK este un proces de marcare a cuvintelor în format text pentru o anumită parte a discursului pe baza definiției și a contextului său.
  • Câteva exemple de etichetare POS în NLTK sunt: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, etc.
  • Etichetatorul POS este utilizat pentru a atribui informații gramaticale fiecărui cuvânt din propoziție. Instalarea, importul și descărcarea tuturor pachetelor de etichetare Part of Speech cu NLTK este completă.
  • Chunking în NLP este un proces de a lua bucăți mici de informații și de a le grupa în unități mari.
  • Nu există reguli predefinite, dar le puteți combina în funcție de necesități și cerințe.
  • Chunking este utilizat pentru detectarea entităților. O entitate este acea parte a propoziției prin care mașina obține valoarea pentru orice intenție
  • Chunking-ul este folosit pentru a clasifica diferite token-uri în aceeași bucată.

Lasă un răspuns

Adresa ta de email nu va fi publicată.