El NLP está de moda. La aparición reciente de ChatGPT nos ha asombrado a todos por la gran cantidad de tareas que permite resolver y por la precisión con la que es capaz de hacerlo en la gran mayoría de los casos. Su impacto ha sido tal que ha trascendido mucho más allá del campo de la inteligencia artificial y está siendo usado por gente de múltiples sectores para resolver tareas cotidianas. En este post ya contamos en detalle sus aplicaciones, el impacto que puede tener en el futuro y algunas incertidumbres que suscita.

En este otro post previo hicimos una introducción al mundo de NLP, los sectores en los que se aplica y los tipos de tareas más comunes que permite atacar.

El objetivo de este artículo es extender la parte de extracción de contenido de este último post para explicar en detalle algunas de las técnicas de NLP más comunes que permiten obtener información valiosa de textos no estructurados con algunos ejemplos prácticos.

Estas son algunas de las aplicaciones más comunes de extracción de contenido:

Resumen de contenido

En este grupo se incluyen todas las técnicas de NLP que permiten resumir textos de cierta extensión, como noticias, artículos de investigación, posts, contratos, libros, etc.

Existen dos grandes aproximaciones: la extracción y la abstracción. La extracción selecciona las frases más importantes para construir el resumen. Los métodos abstractivos generan nuevo texto propio de resumen, de forma similar a como lo haría un humano. Este segundo método, de mayor dificultad, requiere de modelos más complejos normalmente basados en redes neuronales.

También existen modelos que extraen los temas principales de un texto o las palabras clave.

NER

El reconocimiento de Entidades Nombradas (Named Entity Recognition) consiste en detectar y clasificar entidades en un texto. Una entidad es una palabra o un conjunto de palabras con unidad de significado perteneciente a una categoría. Las categorías dependen del modelo usado y suelen ser fechas, lugares, organizaciones, personas, productos o cantidades.

Por ejemplo, en la frase “En Piperlab nos gusta comer pizza los viernes” un modelo de NER podría detectar las siguientes entidades:

Entidad Categoría
Piperlab Organización
pizza Producto
los viernes Fecha

 

Esto es muy útil para seleccionar información relevante de un texto por categorías. Si se dispone de suficiente texto categorizado se puede crear un modelo de NER propio con categorías customizadas.

POS Tagging

El Etiquetado Gramatical (Part Of Speech Tagging) es similar al NER, ya que también consiste en detectar y asignar categorías, pero en este caso categorías gramaticales. Estos modelos son capaces de identificar si una palabra es un sustantivo, un verbo, un adjetivo, un adverbio, etc.

Si pasamos el mismo ejemplo del apartado anterior por un modelo de POS tagging nos devolvería algo similar a lo siguiente:

Palabra Categoría
En Preposición
Piperlab Nombre Propio
nos Pronombre
gusta Verbo
comer Verbo
pizza Nombre
los Determinante
viernes Nombre

 

Esto puede ser útil para eliminar de un texto palabras que por su naturaleza contienen menos información y quedarnos con aquellas sobre las que se suele concentrar el significado como sustantivos o verbos. También permite detectar las relaciones entre las palabras de una frase.

Question Answering

Los modelos de QA generalmente funcionan respondiendo a preguntas en base a un contexto que se le da al modelo como input. Son muy útiles para buscar una respuesta en un texto extenso.

Cuando hablamos de NLP, los modelos de QA reciben como input texto no estructurado. Sin embargo, también existen modelos multimodales que responden a preguntas recibiendo como input una imagen de un documento.

Siguiendo con el ejemplo anterior, si lo utilizamos como contexto en un modelo de QA, podríamos hacerle la siguiente pregunta:

Input: “En Piperlab nos gusta comer pizza los viernes”

Pregunta: ¿Cuándo se come pizza en Piperlab?

Respuesta: Los viernes

 

ChatGPT

Como hemos visto hay multitud de modelos distintos, cada uno enfocado en una tarea específica. Pero desde la aparición de modelos de lenguaje natural avanzados, un mismo modelo puede realizar muchas de estas tareas, simplificando mucho el proceso.

El modelo más popular a día de hoy para realizar estas tareas y muchas más es ChatGPT, del que ya os hemos hablado previamente en este post, y del que os contamos de dónde viene en este otro post.

Aunque pueda parecerlo, ChatGPT, no es una IA General, ya que su enfoque principal está en el procesamiento del lenguaje natural.

Si le pedimos hacer las tareas que hemos visto en los puntos anteriores es capaz de resolverlas sin problema como podemos ver en el siguiente ejemplos.

Pero con ChatGPT podemos ir mucho más lejos. Como pedirle que nos clasifique emails en función de su tipología o que nos genere la información de posibles pedidos que nos lleguen por email.

Necesidad de traducir

Conviene aclarar que los modelos de NLP suelen funcionar mucho mejor en inglés que en español. Para ilustrar las descripciones se han puesto ejemplos teóricos para NER, POS tagging y QA. Es posible que los resultados reales en español sean peores o diferentes, en función del modelo usado. Con modelos en inglés los resultados reales son muy similares a los planteados. Los ejemplos de ChatGPT son reales.

Es por esto que muchas veces es necesario traducir el texto antes de usar los modelos de lenguaje natural. Para esta traducción también se usan modelos de NLP, como el usado por Google Translate. Hay que tener en cuenta que cuantas más capas de modelos usemos, más errores podemos acumular. Por tanto, siempre es recomendable investigar los modelos existentes en el idioma que se quiere trabajar y compararlo con traducir y usar un modelo entrenado en inglés.

Conclusión

Hemos resumido algunas de las técnicas más comunes de NLP para extraer contenido de un texto. Como hemos visto, de forma tradicional, se han desarrollado modelos específicos por idioma para llevar a cabo cada una de las tareas de forma independiente. La reciente aparición de los modelos avanzados ha supuesto un cambio de paradigma, puesto que un mismo modelo puede resolver todas estas tareas de forma eficiente simplemente modificando la instrucción que le pasamos.

Estamos viviendo un momento de grandes avances en este campo y todo apunta a que los vamos a seguir viendo en un futuro próximo. El NLP está de moda.