Etichetare POS cu NLTK și Chunking în NLP (EXEMPLE)

Cuprins:

Anonim

Etichetare POS

Etichetarea POS (Parts of Speech Tagging) este un proces de marcare a cuvintelor în format text pentru o anumită parte a unui discurs pe baza definiției și a contextului său. Este responsabil pentru citirea textului într-o limbă și atribuirea anumitor simboluri (părți ale vorbirii) fiecărui cuvânt. Se mai numește etichetare gramaticală.

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

Introducere: Tot ce ne permite.

Ieșire : [(„Totul”, NN), („la”, TO), („permis”, VB), („noi”, PRP)]

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)

Exemplele de etichete POS NLTK sunt cele de mai jos:

Abreviere Sens
CC conjuctie coordonatoare
CD cifra cardinală
DT determinant
EX existențial acolo
FW cuvânt străin
ÎN prepoziție / conjuncție subordonatoare
JJ Această etichetă POS NLTK este un adjectiv (mare)
JJR adjectiv, comparativ (mai mare)
JJS adjectiv, superlativ (cel mai mare)
LS listă de piață
MD modal (ar putea, va)
NN substantiv, singular (pisică, copac)
NNS substantiv plural (birouri)
NNP substantiv propriu, singular (sarah)
NNPS substantiv propriu, plural (indieni sau americani)
PDT predeterminator (toate, ambele, jumătate)
POS final posesiv (părinte)
PRP pronume personal (al ei, ea însăși, el, el însuși)
PRP $ pronume posesiv (ea, a lui, a mea, a mea, a noastră)
RB adverb (ocazional, rapid)
RBR adverb, comparativ (mai mare)
RBS adverb, superlativ (cel mai mare)
RP particula (despre)
LA marker infinit (la)
UH interjecție (la revedere)
VB verb (cere)
VBG verb gerund (judecare)
VBD verb la trecut (pledat)
VBN verb participiu trecut (reunificat)
VBP verb, timpul prezent nu persoana a 3-a singular (wrap)
VBZ verb, timp prezent cu persoana a III-a singular (baze)
WDT wh-determinant (asta, ce)
WP wh- pronume (cine)
WRB wh- adverb (cum)

Lista de etichete POS NLTK de mai sus conține toate etichetele POS NLTK. NLTK POS tagger este utilizat pentru a atribui informații gramaticale ale fiecărui cuvânt al propoziției. Instalarea, importarea și descărcarea tuturor pachetelor POS NLTK sunt complete.

Ce este Chunking în NLP?

Chunking în NLP este un proces de preluare a unor bucăți mici de informații și grupare în unități mari. Utilizarea principală a Chunking este crearea de grupuri de „fraze substantive”. Se folosește pentru a adăuga structură propoziției urmând etichetarea POS combinată cu expresii regulate. Grupul de cuvinte rezultat se numește „bucăți”. Se mai numește și analiză superficială.

În analiza superficială, există maxim un nivel între rădăcini și frunze, în timp ce analiza profundă cuprinde mai mult de un nivel. Analizarea superficială se mai numește analiza ușoară sau fragmentare.

Reguli pentru Chunking:

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

De exemplu, trebuie să etichetați Substantiv, verb (timp trecut), adjectiv și joncțiune coordonatoare din propoziție. Puteți utiliza regula după cum urmează

bucată: {*** ?}

Tabelul următor arată ce înseamnă diferitele simboluri:

Numele simbolului Descriere
. Orice caracter, cu excepția liniei noi
* Potriviți 0 sau mai multe repetări
? Potrivește 0 sau 1 repetări

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

Ieșire

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))

Concluzia din exemplul de mai sus din Python pentru etichetarea vorbirii: „face” este un verb care nu este inclus în regulă, deci nu este etichetat ca mychunk

Utilizați caz de Chunking

Chunking-ul este utilizat pentru detectarea entității. 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 utilizat ca selectare a subseturilor de jetoane. Vă rugăm să urmați codul de mai jos pentru a înțelege modul în care chunking-ul este utilizat pentru a selecta jetoanele. În acest exemplu, veți vedea graficul care va corespunde unei bucăți dintr-o frază nominală. Vom scrie codul și vom desena graficul pentru o mai bună înțelegere.

Cod pentru a demonstra caz de utilizare

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

Ieșire :

['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

Grafic

Substantiv expresie chunking Grafic

Din grafic, putem concluziona că „învață” și „guru99” sunt două jetoane diferite, dar sunt clasificate ca Fraze Substantive, în timp ce jetonul „din” nu aparține Fraze Substantive.

Chunking-ul este folosit pentru a clasifica diferite jetoane în aceeași bucată. Rezultatul va depinde de gramatica selectată. Chunking NLTK suplimentar este utilizat pentru etichetarea modelelor și pentru explorarea corpurilor de text.

rezumat

  • Etichetarea POS în NLTK este un proces de marcare a cuvintelor în format text pentru o anumită parte a unui discurs pe baza definiției și a contextului său.
  • Unele exemple de etichetare POS NLTK sunt: ​​CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO etc.
  • POS tagger este utilizat pentru a atribui informații gramaticale pentru fiecare cuvânt al propoziției. Instalarea, importul și descărcarea tuturor pachetelor de etichetare Part of Speech cu NLTK sunt complete.
  • Chunking-ul în NLP este un proces de preluare a unor bucăți mici de informații și grupare în unități mari.
  • Nu există reguli predefinite, dar le puteți combina în funcție de necesități și cerințe.
  • Chunking-ul este utilizat pentru detectarea entității. 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 jetoane în aceeași bucată.