Guía de NLP: Identificación de la parte de las etiquetas de voz utilizando campos aleatorios condicionales

Guía de NLP: Identificación de la parte de las etiquetas de voz utilizando campos aleatorios condicionales
Guía de NLP: Identificación de la parte de las etiquetas de voz utilizando campos aleatorios condicionales

Guía de NLP: Identificación de la parte de las etiquetas de voz utilizando campos aleatorios condicionales

En el mundo del procesamiento de lenguaje natural (NLP), los modelos más básicos se basan en la bolsa de palabras. Pero tales modelos no pueden capturar las relaciones sintácticas entre las palabras.

Por ejemplo, supongamos que construimos un analizador de sentimientos basado en una sola bolsa de palabras. Tal modelo no podrá captar la diferencia entre «me gustas», donde «como» es un verbo con un sentimiento positivo, y «soy como usted», donde «como» es una preposición con un sentimiento neutro.

Entonces, esto nos deja con una pregunta: ¿cómo mejoramos esta técnica de Bolsa de palabras?

Parte del habla (por la presente se refiere a las etiquetas POS) es útil para construir árboles de análisis, que se utilizan en la construcción (las entidades más nombradas son sustantivos) y extrayendo las relaciones entre las palabras. El etiquetado POS también es esencial para construir lemmatizantes que se utilizan para reducir una palabra a su forma raíz.

El etiquetado POS es el proceso de marcar una palabra en un corpus a una parte correspondiente de una etiqueta de voz, basada en su contexto y definición. Esta tarea no es sencilla, ya que una palabra en particular puede tener una parte diferente del habla basada en el contexto en el que se usa la palabra.

Por ejemplo: en la oración «Dame tu respuesta», la respuesta es un sustantivo, pero en la oración «Responde la pregunta», la respuesta es un verbo.

Para entender el significado de cualquier oración o para extraer las relaciones y construir un gráfico de conocimiento, el etiquetado POS es un paso muy importante.

Las diferentes técnicas de etiquetado POS.

Hay diferentes técnicas para el etiquetado POS:

En este artículo, veremos el uso de campos aleatorios condicionales en el Penn Treebank Corpus (esto está presente en la Biblioteca NLTK).

Campos aleatorios condicionales (CRF)

Un CRF es un clasificador probabilístico discriminativo. La diferencia entre los modelos discriminativos y generativos es que, si bien los modelos discriminativos intentan modelar la distribución de probabilidad condicional, es decir, P (y | x), los modelos generativos intentan modelar una distribución de probabilidad conjunta, es decir, p (x, y).

Regresión logística, SVM, CRF son clasificadores discriminativos. Bayos ingenuos, HMMS son clasificadores generativos. CRF también se puede utilizar para tareas de etiquetado de secuencia como los reconocidos de entidades con nombre y los Taggers.

En CRF, la entrada es un conjunto de características (números reales) derivada de la secuencia de entrada utilizando funciones de funciones, los pesos asociados con las características (que se aprenden) y la etiqueta anterior y la tarea es predecir la etiqueta actual. Los pesos de diferentes funciones de características se determinarán de manera que se maximizará la probabilidad de las etiquetas en los datos de capacitación.

En CRF, se define un conjunto de funciones de características para extraer características para cada palabra en una oración. Algunos ejemplos de funciones de características son: es la primera letra de la palabra capitalizada, cuál es el sufijo y el prefijo de la palabra, cuál es la palabra anterior, es la primera o la última palabra de la oración, es un número, etc. Estas El conjunto de características se llaman características estatales. En CRF, también pasamos la etiqueta de la palabra anterior y la etiqueta de la palabra actual para aprender los pesos. CRF intentará determinar los pesos de diferentes funciones de características que maximizarán la probabilidad de las etiquetas en los datos de capacitación. La función de funciones que depende de la etiqueta de la palabra anterior es la función de transición

Ahora vamos a saltar a cómo usar CRF para identificar las etiquetas POS en Python. El código se puede encontrar aquí.

Conjunto de datos

Usaremos el conjunto de datos de NLTK Treebank con el conjunto universal. El tagset universal de NLTK consta de 12 clases de etiquetas: verbo, sustantivo, pronombres, adjetivos, adverbios, adosiciones, conjunciones, determinantes, números cardinales, partículas, otras palabras extranjeras de% 2F, puntuaciones. Este conjunto de datos tiene 3,914 oraciones etiquetadas y un vocabulario de 12,408 palabras.

A continuación, dividiremos los datos en capacitación y datos de prueba en una proporción de 80:20, 3,131 oraciones en el conjunto de capacitación y 783 oraciones en el conjunto de pruebas.

Creando la función de característica

Para identificar las etiquetas POS, crearemos una función que devuelva un diccionario con las siguientes funciones para cada palabra en una oración:

La función de característica se define como a continuación y se extraen las características para los datos de tren y prueba.

Ajustando un modelo de CRF

El siguiente paso es usar el Sklearn_crfsuite para adaptarse al modelo CRF. El modelo está optimizado por el descenso de degradado utilizando el método LBGS con la regularización L1 y L2. Pondremos el CRF para generar todas las transiciones de etiquetas posibles, incluso aquellas que no se producen en los datos de capacitación.

Evaluando el modelo CRF

Utilizamos la puntuación de F para evaluar el modelo CRF. El puntaje F transmite el equilibrio entre la precisión y el recuerdo y se define como:

2 * ((Precision * Recall)% 2F (recuerdo de precisión))

La precisión se define como el número de verdaderos positivos divididos por el número total de predicciones positivas. También se denomina valor predictivo positivo (PPV):

Precisión = TP% 2F (TP FP)

El recuerdo se define como el número total de verdaderos positivos divididos por el número total de valores de clase positivos en los datos. También se llama sensibilidad o la tasa positiva verdadera:

Recall = TP% 2F (TP FN)

El modelo CRF dio una puntuación F de 0.996 en los datos de capacitación y 0.97 en los datos de prueba.

Desde la puntuación sabia de la clase del CRF (imagen a continuación), observamos que para predecir adjetivos, la precisión, la recuperación y el puntaje F son más bajos, lo que indica que se deben agregar más características relacionadas con los adjetivos a la función de función CRF.

El siguiente paso es mirar las 20 funciones de transición más probables.

Características de transición más probable

Como podemos ver, es más probable que un adjetivo sea seguido por un sustantivo. Es más probable que un verbo sea seguido por una partícula (como), un determinante como «el» también es más probable que se le siga un sustantivo.

Del mismo modo, podemos ver las características del estado más comunes.

Características del estado más probable

Si la palabra anterior es «Will» o «sería», es más probable que sea un verbo, o si una palabra termina en «Ed», definitivamente es un verbo. Como discutimos durante la definición de características, si la palabra tiene un guión, según el modelo CRF, la probabilidad de ser un adjetivo es mayor. Del mismo modo, si se capitaliza la primera letra de una palabra, es más probable que sea un sustantivo. ¡El lenguaje natural es tan complejo pero hermoso!

Notas finales

En este artículo, aprendimos a usar CRF para construir un Tagger POS. Se puede usar un enfoque similar para construir ners usando CRF. Para mejorar la precisión de nuestro modelo CRF, podemos incluir más características en el modelo, como las dos últimas palabras en la oración en lugar de solo la palabra anterior, o las siguientes dos palabras en la oración, etc. El código de todo este análisis Se puede encontrar aquí.

Espero que hayas encontrado este artículo útil. Como siempre, cualquier comentario es altamente apreciado. Por favor, siéntase libre de compartir sus comentarios a continuación.