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.