Etiquetado POS con NLTK y Chunking en NLP [EJEMPLOS]

Etiquetado POS

El etiquetado POS (Parts of Speech Tagging) es un proceso para marcar las palabras en formato de texto para una parte particular de un discurso basado en su definición y contexto. Es responsable de la lectura del texto en un idioma y de la asignación de un token específico (partes del discurso) a cada palabra. También se denomina etiquetado gramatical.

Aprendamos con un ejemplo de NLTK Part of Speech:

Entrada: Todo para permitirnos.

Salida:

Pasos implicados en el ejemplo de etiquetado POS:

  • Tokenize text (word_tokenize)
  • Aplicar pos_tag al paso anterior que es nltk.pos_tag(tokenize_text)

Los ejemplos de etiquetas POS de NLTK son los siguientes:

Abraviatura Significado
CC conjunción coordinada
CD dígito cardinal
DT determinante
EX existencial allí
FW palabra extranjera
IN preposición/subordinación
JJ Esta etiqueta POS de NLTK es un adjetivo (grande)
JR adjetivo, comparativo (mayor)
JJS adjetivo, superlativo (más grande)
LS lista de mercado
MD modal (podría, será)
NN sustantivo, singular (gato, árbol)
NNS nombre plural (escritorios)
NP nombre propio, singular (sarah)
NPS nombre propio, plural (indios o americanos)
PDT predeterminador (todos, ambos, la mitad)
POS terminación posesiva (padre ‘s)
PRP pronombre personal (suyo, ella, él, él mismo)
PRP$ pronombre posesivo (su, su, mi, nuestro )
RB adverbio (ocasionalmente, rápidamente)
RBR adverbio, comparativo (mayor)
RBS adverbio, superlativo (mayor)
RP particular (sobre)
TO infinito marcador (a)
UH interjección (adiós)
VB verbo (preguntar)
VBG verbo gerundio (juzgar)
VBD verbo pasado (pleiteado)
VBN verbo participio pasado (reunificado)
VBP verbo presente no 3ª persona del singular(envoltura)
VBZ verbo, presente con 3ª persona del singular (bases)
WDT determinador de wh (that, what)
WP wh- pronombre (who)
WRB wh- adverbio (how)

The above NLTK POS tag list contains all the NLTK POS Tags. El etiquetador POS de NLTK se utiliza para asignar la información gramatical de cada palabra de la frase. La instalación, importación y descarga de todos los paquetes de POS NLTK está completa.

¿Qué es el Chunking en NLP?

El Chunking en NLP es un proceso para tomar pequeñas piezas de información y agruparlas en grandes unidades. El uso principal del Chunking es hacer grupos de «frases sustantivas». Se utiliza para añadir estructura a la frase siguiendo el etiquetado POS combinado con expresiones regulares. El grupo de palabras resultante se llama «chunks». También se llama parsing superficial.

En el análisis sintáctico superficial, hay como máximo un nivel entre las raíces y las hojas, mientras que el análisis sintáctico profundo comprende más de un nivel. El análisis sintáctico superficial también se denomina análisis sintáctico ligero o chunking.

Reglas para el Chunking:

No hay reglas predefinidas, sino que se pueden combinar según las necesidades y requerimientos.

Por ejemplo, necesita etiquetar el sustantivo, el verbo (tiempo pasado), el adjetivo y la unión coordinada de la frase. Puede utilizar la siguiente regla

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

La siguiente tabla muestra el significado de los distintos símbolos:

Nombre del símbolo Descripción
. Cualquier carácter excepto la nueva línea
* ¿Qué coincidan 0 o más repeticiones
? Empareja 0 o 1 repeticiones

Ahora escribamos el código para entender mejor la regla

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)

Salida

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 conclusión del ejemplo anterior de etiquetado de parte de la oración en Python: «make» es un verbo que no está incluido en la regla, por lo que no se etiqueta como mychunk

Caso de uso del Chunking

El Chunking se utiliza para la detección de entidades. Una entidad es la parte de la frase por la que la máquina obtiene el valor de cualquier intención

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

En otras palabras, el chunking se utiliza como la selección de los subconjuntos de tokens. Siga el siguiente código para entender cómo se utiliza el chunking para seleccionar los tokens. En este ejemplo, verá el gráfico que corresponderá a un chunking de una frase sustantiva. Escribiremos el código y dibujaremos el gráfico para una mejor comprensión.

Código para demostrar el caso de 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 

Salida:

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

Gráfico

Gráfico de chunking de frases sustantivas

Del gráfico, podemos concluir que «aprender» y «gurú99» son dos tokens diferentes pero están categorizados como frase sustantiva mientras que el token «de» no pertenece a la frase sustantiva.

El chunking se utiliza para categorizar diferentes tokens en el mismo chunk. El resultado dependerá de la gramática que se haya seleccionado. Más Chunking NLTK se utiliza para etiquetar patrones y para explorar corpus de texto.

Resumen

  • El etiquetado POS en NLTK es un proceso para marcar las palabras en formato de texto para una parte particular de un discurso basado en su definición y contexto.
  • Algunos ejemplos de etiquetado POS en NLTK son: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, etc.
  • El etiquetador POS se utiliza para asignar información gramatical de cada palabra de la frase. La instalación, importación y descarga de todos los paquetes de etiquetado de Parte de la Palabra con NLTK es completa.
  • Chunking en NLP es un proceso para tomar pequeñas piezas de información y agruparlas en grandes unidades.
  • No hay reglas predefinidas, pero se pueden combinar según la necesidad y el requisito.
  • Chunking se utiliza para la detección de entidades. Una entidad es la parte de la frase por la que la máquina obtiene el valor de cualquier intención.
  • Chunking se utiliza para categorizar diferentes tokens en el mismo chunk.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.