Tagging POS con NLTK e Chunking in NLP (ESEMPI)

Sommario:

Anonim

Etichettatura POS

Tagging POS (Parts of Speech Tagging) è un processo per contrassegnare le parole in formato testo per una parte particolare di un discorso in base alla sua definizione e contesto. È responsabile della lettura del testo in una lingua e dell'assegnazione di un segno specifico (Parti del discorso) a ciascuna parola. È anche chiamato etichettatura grammaticale.

Impariamo con un esempio di parte del discorso NLTK:

Input: tutto ciò che ce lo permette.

Risultato : [('Tutto', NN), ('a', TO), ('permesso', VB), ('us', PRP)]

Passaggi coinvolti nell'esempio di tagging POS:

  • Tokenizza testo (word_tokenize)
  • applica pos_tag al passaggio precedente che è nltk.pos_tag (tokenize_text)

Gli esempi di tag POS NLTK sono i seguenti:

Abbreviazione Significato
CC congiunzione coordinativa
CD cifra cardinale
DT determinante
EX esistenziale lì
FW parola straniera
NEL congiunzione preposizione / subordinazione
JJ Questo tag POS NLTK è un aggettivo (grande)
JJR aggettivo, comparative (greater)
JJS aggettivo, superlative (large)
LS mercato delle liste
MD modale (potrebbe, sarà)
NN sostantivo, singolare (gatto, albero)
NNS sostantivo plurale (scrivanie)
NNP nome proprio, singolare (sarah)
NNPS nome proprio, plurale (indiani o americani)
PDT predeterminatore (tutti, entrambi, metà)
POS desinenza possessiva (genitore)
PRP pronome personale (suo, lei, lui, se stesso)
PRP $ pronome possessivo (lei, suo, mio, mio, nostro)
RB avverbio (occasionally, swiftly)
RBR avverbio, comparative (greater)
RBS avverbio, superlative (greater)
RP particella (circa)
PER marker infinito (a)
UH interiezione (arrivederci)
VB verbo (chiedere)
VBG verbo gerundio (giudicare)
VBD verbo passato (supplicato)
VBN verbo participio passato (riunificato)
VBP verbo, presente non terza persona singolare (avvolgere)
VBZ verbo presente con terza persona singolare (basi)
WDT wh-determiner (quello, cosa)
WP wh- pronome (chi)
WRB wh- avverbio (come)

Il precedente elenco di tag NLTK POS contiene tutti i tag NLTK POS. Il tagger POS NLTK viene utilizzato per assegnare informazioni grammaticali a ciascuna parola della frase. L'installazione, l'importazione e il download di tutti i pacchetti di POS NLTK è completata.

Cos'è il chunking nella PNL?

La suddivisione in blocchi in PNL è un processo per prendere piccole informazioni e raggrupparle in unità di grandi dimensioni. L'uso principale di Chunking è creare gruppi di "frasi nominali". Viene utilizzato per aggiungere struttura alla frase seguendo la codifica POS combinata con espressioni regolari. Il gruppo di parole risultante è chiamato "blocchi". È anche chiamato analisi superficiale.

Nell'analisi superficiale, esiste un massimo di un livello tra radici e foglie, mentre l'analisi profonda comprende più di un livello. L'analisi superficiale è anche chiamata analisi leggera o frammentazione.

Regole per il chunking:

Non ci sono regole predefinite, ma è possibile combinarle in base alle necessità e ai requisiti.

Ad esempio, devi taggare nome, verbo (passato), aggettivo e giunzione coordinata dalla frase. Puoi usare la regola come di seguito

pezzo: {*** ?}

La tabella seguente mostra cosa significano i vari simboli:

Nome del simbolo Descrizione
. Qualsiasi carattere tranne la nuova riga
* Abbina 0 o più ripetizioni
? Abbina 0 o 1 ripetizioni

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

Produzione

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

La conclusione dall'esempio di tagging Python nella parte precedente del discorso: "make" è un verbo che non è incluso nella regola, quindi non è etichettato come mychunk

Usa il caso di chunking

La suddivisione in blocchi viene utilizzata per il rilevamento delle entità. Un'entità è quella parte della frase dalla quale 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 viene utilizzato per selezionare i sottoinsiemi di token. Segui il codice seguente per capire come viene utilizzato il chunking per selezionare i token. In questo esempio, vedrai il grafico che corrisponderà a una parte di una frase nominale. 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: {
?*}"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

Uscita :

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

Grafico

Sostantivo Frase chunking Grafico

Dal grafico, possiamo concludere che "impara" e "guru99" sono due simboli differenti ma sono classificati come Frase di Sostantivo mentre il segno "da" non appartiene a Frase di Sostantivo.

La suddivisione in blocchi viene utilizzata per classificare diversi token nello stesso blocco. Il risultato dipenderà dalla grammatica selezionata. Ulteriore chunking NLTK viene utilizzato per etichettare i pattern e per esplorare i corpora di testo.

Sommario

  • L'etichettatura POS in NLTK è un processo per contrassegnare le parole in formato testo per una parte particolare di un discorso in base alla sua definizione e contesto.
  • Alcuni esempi di tagging POS NLTK sono: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, ecc.
  • Il tagger POS viene utilizzato per assegnare informazioni grammaticali a ciascuna parola della frase. L'installazione, l'importazione e il download di tutti i pacchetti di Part of Speech tagging con NLTK è completata.
  • Il raggruppamento in PNL è un processo per prendere piccole informazioni e raggrupparle in unità di grandi dimensioni.
  • Non ci sono regole predefinite, ma è possibile combinarle in base alle necessità e ai requisiti.
  • La suddivisione in blocchi viene utilizzata per il rilevamento delle entità. Un'entità è quella parte della frase dalla quale la macchina ottiene il valore per qualsiasi intenzione
  • La suddivisione in blocchi viene utilizzata per classificare diversi token nello stesso blocco.