POS Tagging con NLTK e Chunking in NLP [ESEMPI]

POS Tagging

POS Tagging (Parts of Speech Tagging) è un processo per contrassegnare le parole in formato testo per una particolare parte di un discorso basato sulla sua definizione e sul contesto. È responsabile della lettura del testo in una lingua e dell’assegnazione di alcuni token specifici (parti del discorso) ad ogni parola. È anche chiamato tagging grammaticale.

Impariamo con un esempio di NLTK Part of Speech:

Input: Tutto per permetterci.

Output:

Passi coinvolti nell’esempio di POS tagging:

  • Tokenize text (word_tokenize)
  • applica pos_tag al passo precedente che è nltk.pos_tag(tokenize_text)

NLTK POS Tags Examples are as Below:

Abbreviazione Significato
CC congiunzione coordinante
CD cifra cardinale
DT determinante
EX esistenziale ci
FW parola straniera
IN preposizione/congiunzione subordinante
JJ Questo tag POS NLTK è un aggettivo (grande)
JJR aggettivo, comparativo (più grande)
JJS aggettivo, superlativo (più grande)
LS lista mercato
MD modale (potrebbe, farà)
NN nome, singolare (gatto, albero)
NNS nome plurale (scrivanie)
NNP nome proprio, singolare (sarah)
NNPS nome proprio, plurale (indiani o americani)
PDT predeterminante (tutti, entrambi, metà)
POS finale possessivo (genitore ‘s)
PRP pronome personale (hers, se stessa, lui, se stesso)
PRP$ pronome possessivo (lei, suo, mio, nostro)
RB adverbio (occasionalmente, rapidamente)
RBR adverbio, comparativo (maggiore)
RBS adverbio, superlativo (più grande)
RP particella (circa)
TO infinito marcatore (a)
UH interiezione (addio)
VB verbo (chiedere)
VBG verbo gerundio (giudicare)
VBD verbo passato (supplicare)
VBN verbo participio passato (riunificare)
VBP verbo, presente non in 3a persona singolare (involucro)
VBZ verbo, presente con 3a persona singolare (basi)
WDT determinatore di cosa (che, cosa)
WP wh- pronome (chi)
WRB wh- avverbio (come)

L’elenco di tag NLTK POS qui sopra contiene tutti i tag NLTK POS. NLTK POS tagger è usato per assegnare le informazioni grammaticali di ogni parola della frase. Installare, importare e scaricare tutti i pacchetti di POS NLTK è completo.

Cos’è il Chunking in NLP?

Chunking in NLP è un processo per prendere piccoli pezzi di informazione e raggrupparli in grandi unità. L’uso primario del Chunking è fare gruppi di “frasi sostantive”. Viene utilizzato per aggiungere struttura alla frase seguendo il POS tagging combinato con le espressioni regolari. Il gruppo di parole risultante è chiamato “chunks”. È anche chiamato parsing superficiale.

Nel parsing superficiale, c’è al massimo un livello tra radici e foglie mentre il parsing profondo comprende più di un livello. Il parsing superficiale è anche chiamato parsing leggero o chunking.

Regole per il chunking:

Non ci sono regole predefinite, ma è possibile combinarle secondo le necessità e i requisiti.

Per esempio, hai bisogno di taggare il nome, il verbo (passato), l’aggettivo e la giunzione di coordinazione dalla frase. Puoi usare la regola come segue

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

La seguente tabella mostra il significato dei vari simboli:

Nome del simbolo Descrizione
. Qualsiasi carattere eccetto la nuova linea
* Risponde a 0 o più ripetizioni
? Risponde a 0 o 1 ripetizione

Ora scriviamo il codice per capire meglio la regola

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

La conclusione di questo esempio Python di etichettatura di parte del discorso: “make” è un verbo che non è incluso nella regola, quindi non è taggato come mychunk

Caso d’uso di Chunking

Chunking è usato per il rilevamento di entità. Un’entità è quella parte della frase da cui la macchina ottiene il valore per qualsiasi intenzione

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

In altre parole, il chunking è usato per selezionare i sottoinsiemi di token. Seguite il codice qui sotto per capire come il chunking è usato per selezionare i token. In questo esempio, vedrete il grafico che corrisponderà a un chunk di una frase sostantiva. Scriveremo il codice e disegneremo il grafico per una migliore comprensione.

Codice per dimostrare il caso d’uso

 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

Grafico

Grafico della frase sostantiva

Dal grafico, possiamo concludere che “learn” e “guru99” sono due token diversi ma sono classificati come frase sostantiva mentre il token “from” non appartiene alla frase sostantiva.

Chunking è usato per categorizzare diversi token nello stesso chunk. Il risultato dipenderà dalla grammatica che è stata selezionata. Ulteriore Chunking NLTK è usato per etichettare i modelli e per esplorare i corpora di testo.

Sommario

  • Il POS Tagging in NLTK è un processo per marcare le parole in formato testo per una particolare parte del discorso basata sulla sua definizione e sul contesto.
  • Alcuni esempi di POS tagging in NLTK sono: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, ecc.
  • Il POS tagger è usato per assegnare informazioni grammaticali di ogni parola della frase. Installare, importare e scaricare tutti i pacchetti di Part of Speech tagging con NLTK è completo.
  • Chunking in NLP è un processo per prendere piccoli pezzi di informazione e raggrupparli in grandi unità.
  • Non ci sono regole predefinite, ma è possibile combinarle secondo il bisogno e l’esigenza.
  • Chunking è usato per il rilevamento di entità. Un’entità è quella parte della frase da cui la macchina ottiene il valore per qualsiasi intenzione
  • Chunking è usato per categorizzare diversi token nello stesso chunk.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.