Etiquetado de puntos de venta con NLTK y fragmentación en NLP (EJEMPLOS)

Tabla de contenido:

Anonim

Etiquetado POS

El etiquetado POS ( etiquetado de partes del discurso) es un proceso para marcar las palabras en formato de texto para una parte particular de un discurso en función de su definición y contexto. Se encarga de la lectura de texto en un idioma y de asignar alguna ficha específica (partes del habla) a cada palabra. También se llama etiquetado gramatical.

Aprendamos con un ejemplo de NLTK Part of Speech:

Entrada: Todo lo que nos permita.

Salida : [('Everything', NN), ('to', TO), ('permit', VB), ('us', PRP)]

Pasos involucrados en el ejemplo de etiquetado POS:

  • Tokenizar texto (word_tokenize)
  • aplique pos_tag al paso anterior que es nltk.pos_tag (tokenize_text)

Los ejemplos de etiquetas NLTK POS son los siguientes:

Abreviatura Sentido
CC conjunción de coordinación
discos compactos dígito cardinal
DT determinante
EX existencial allí
FW palabra extranjera
EN preposición / conjunción subordinante
JJ Esta etiqueta NLTK POS es un adjetivo (grande)
JJR adjetivo, comparativo (más grande)
JJS adjetivo, superlativo (más grande)
LS mercado de lista
Maryland modal (podría, será)
NN sustantivo, singular (gato, árbol)
NNS sustantivo plural (escritorios)
NNP nombre propio, singular (sarah)
NNPS nombre propio, plural (indios o estadounidenses)
PDT predeterminador (todos, ambos, la mitad)
POS terminación posesiva (padre \ 's)
PRP pronombre personal (de ella, ella misma, él, él mismo)
PRP $ pronombre posesivo
RB adverbio (ocasionalmente, rápido)
RBR adverbio, comparativo (mayor)
RBS adverbio, superlativo (más grande)
RP partícula (sobre)
A marcador infinito (a)
OH interjección (adiós)
VB verbo (preguntar)
VBG verbo gerundio (juzgar)
VBD verbo pasado (suplicado)
VBN verbo participio pasado (reunificado)
VBP verbo, tiempo presente, no tercera persona del singular (envolver)
VBZ verbo, tiempo presente con tercera persona del singular (bases)
WDT wh-determiner (eso, qué)
WP wh- pronombre (quién)
WRB wh- adverbio (cómo)

La lista de etiquetas NLTK POS anterior contiene todas las etiquetas NLTK POS. El etiquetador NLTK POS se utiliza para asignar información gramatical de cada palabra de la oración. Se completó la instalación, importación y descarga de todos los paquetes de POS NLTK.

¿Qué es Chunking en PNL?

La fragmentación en PNL es un proceso para tomar pequeñas piezas de información y agruparlas en grandes unidades. El uso principal de Chunking es hacer grupos de "frases nominales". Se utiliza para agregar estructura a la oración siguiendo el etiquetado POS combinado con expresiones regulares. El grupo de palabras resultante se denomina "fragmentos". También se denomina análisis sintáctico superficial.

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

Reglas para fragmentar:

No hay reglas predefinidas, pero puede combinarlas según sus necesidades y requisitos.

Por ejemplo, debe etiquetar el sustantivo, el verbo (tiempo pasado), el adjetivo y la unión coordinada de la oración. Puede usar la regla de la siguiente manera

fragmento: {*** ?}

La siguiente tabla muestra lo que significan los distintos símbolos:

Nombre del símbolo Descripción
. Cualquier carácter excepto la nueva línea
* Coincidir 0 o más repeticiones
? Coincidir 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:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Producción

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 conclusión del ejemplo de Python de etiquetado de Part of Speech anterior: "make" es un verbo que no está incluido en la regla, por lo que no está etiquetado como mychunk

Caso de uso de fragmentación

La fragmentación se utiliza para la detección de entidades. Una entidad es esa parte de la oración por la cual 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, la fragmentación se utiliza para seleccionar los subconjuntos de tokens. Siga el siguiente código para comprender cómo se usa la fragmentación para seleccionar los tokens. En este ejemplo, verá el gráfico que corresponderá a un fragmento de un sintagma nominal. 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: {
?*}"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 :

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

Gráfico de fragmentación de frases sustantivas

A partir del gráfico, podemos concluir que "aprender" y "guru99" son dos tokens diferentes pero están categorizados como Noun Phrase mientras que el token "from" no pertenece a Noun Phrase.

La fragmentación se utiliza para categorizar diferentes tokens en el mismo fragmento. El resultado dependerá de la gramática que se haya seleccionado. Más fragmentación NLTK se utiliza para etiquetar patrones y explorar corpus de texto.

Resumen

  • El etiquetado de POS en NLTK es un proceso para marcar las palabras en formato de texto para una parte particular de un discurso en función de su definición y contexto.
  • Algunos ejemplos de etiquetado NLTK POS 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 oración. Se completó la instalación, importación y descarga de todos los paquetes de etiquetado de Part of Speech con NLTK.
  • La fragmentación en PNL es un proceso para tomar pequeñas piezas de información y agruparlas en grandes unidades.
  • No hay reglas predefinidas, pero puede combinarlas según sus necesidades y requisitos.
  • La fragmentación se utiliza para la detección de entidades. Una entidad es esa parte de la oración por la cual la máquina obtiene el valor de cualquier intención.
  • La fragmentación se utiliza para categorizar diferentes tokens en el mismo fragmento.