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ă.