Procesamiento del lenguaje natural

Data de la notícia: 27-11-2018

PLN

Nuestro lenguaje, tanto escrito como hablado, constituye un tipo muy particular de datos. El lenguaje es el medio de comunicación humana por excelencia y su principal característica es la ambigüedad y la complejidad. Su procesamiento, debido a que se trata de datos no estructurados, ha constituido tradicionalmente un desafío a las máquinas, dificultando su uso en los procesos de análisis de la información. Con la explosión de las redes sociales y el avance de la supercomputación y la analítica de datos en campos tan dispares como la medicina o los call-centers, no es extraño que buena parte de los subcampos de la inteligencia artificial se dediquen a desarrollar estrategias y algoritmos para procesar y generar lenguaje natural.

 

Introducción

En el dominio del análisis de datos aplicado al procesamiento del lenguaje natural se distinguen dos grandes metas: Comprender y Generar

  • Comprender: existen un conjunto de técnicas, herramientas y algoritmos cuyo principal objetivo es el de procesar y comprender el lenguaje natural para, finalmente, convertir esta información en datos estructurados que puedan ser explotados/utilizados por una máquina. Existen diferentes niveles de complejidad, dependiendo de si el mensaje que se transmite en lenguaje natural se encuentra en forma escrita o hablada. Además, el idioma en el que se transmite el mensaje incrementa de forma notoria la complejidad de su procesamiento, pues los algoritmos de reconocimiento habrán de estar entrenados en ese idioma u otro similar.
  • Generar: encontramos algoritmos que tratan de generar mensajes en lenguaje natural. Es decir, algoritmos que consumen datos clásicos o estructurados para generar una comunicación en lenguaje natural, ya sea escrita o hablada.

En la Figura 1. Procesado de lenguaje natural y sus dos enfoques asociados, se muestra un diagrama para entender mejor estas tareas que forman parte del campo del procesado del lenguaje natural.

Para entender estas técnicas de forma práctica, pongamos algunos ejemplos:

Comprensión de lenguaje natural

En el primer grupo, se encuentran aquellas aplicaciones en las que un humano, solicita una determinada información o realiza una descripción de algo y una máquina es la encargada de recibir y procesar ese mensaje con el objetivo de resolver o atender dicha petición. Por ejemplo, cuando llamamos al teléfono de información de casi cualquier compañía de servicios, nos responde un contestador automático que, a través de un diálogo guiado o asistido, intenta dirigirnos al servicio o departamento más adecuado. En este ejemplo concreto, la dificultad es doble, ya que, por un lado, el sistema ha de convertir nuestro mensaje hablado en escrito y almacenarlo, para posteriormente pasarlo por una rutina o algoritmo de procesamiento del lenguaje natural que interprete la petición y tome la decisión correcta en base a un árbol de decisión pre-establecido.

Otro ejemplo de aplicación de este tipo de técnicas, son aquellas situaciones en las que se  cuenta con mucha información escrita en texto libre procedente de informes rutinarios. Por ejemplo, un informe médico tras una consulta en atención primaria, o un informe policial que se genera al poner una denuncia en una comisaría. Este tipo de informes, suelen contener una cantidad de datos estructurados en campos en las respectivas aplicaciones software en las que se generan - por ejemplo, fecha, asunto, nombre del declarante o paciente, etc.- sin embargo, también suelen contener uno o varios campos para introducir texto libre donde se narran los hechos acontecidos.

En la actualidad, ese texto libre (introducido de forma digital) se almacena, pero no se procesa para interpretar su contenido. En el campo de la Sanidad, para cambiar esta situación se podría utilizar, por ejemplo, la herramienta Apache CTAKES, un framework de desarrollo software que permite la interpretación y extracción de términos clínicos en informes médicos para su posterior uso en forma de asistente al diagnóstico o la creación de diccionarios médicos (más información en este interesante video que explica el funcionamiento de CTAKES).

Generación de lenguaje natural

Por otro lado, las aplicaciones y ejemplos que demuestran el potencial de la generación de lenguaje natural, ya sea en forma de texto o habla, son múltiples y muy variadas. Uno de los ejemplos más conocidos en este sentido es el de la generación de resúmenes meteorológicos. La mayor parte de los resúmenes e informes meteorológicos que se encuentran en la Web han sido generados con un motor de generación de lenguaje natural a partir de los datos cuantitativos de predicción que ofrecen las agencias y organismos oficiales. De forma muy simplificada, un algoritmo de generación de lenguaje natural, generaría la expresión "El tiempo está empeorando" como descripción lingüística de la siguiente variable cuantitativa (∆P=Pt0-Pt1), que es un cálculo que muestra que la presión atmosférica está bajando. Los cambios en la presión atmosférica son un indicador bien conocido de la evolución del tiempo a corto plazo. La pregunta evidente ahora es cómo determina el algoritmo lo que ha de escribir. La respuesta es simple en primera aproximación. La mayoría de estas técnicas utilizan plantillas para generar el lenguaje natural. Plantillas que utilizan frases que se van combinando en función de las salidas que determine el algoritmo. Dicho así, esto podría parecer sencillo, sin embargo, el sistema puede alcanzar un alto grado de complejidad si se introduce lógica difusa para determinar (en el ejemplo) en qué grado el tiempo está empeorando.

Otros ejemplos típicos donde se encuentra comúnmente generación de lenguaje natural es en los resúmenes de encuentros deportivos o en informes periódicos de algunos mercados como el bursátil o el inmobiliario. Por ejemplo, haciendo uso de una herramienta sencilla para generar lenguaje natural a partir del siguiente conjunto de datos estructurados (en formato JSON):

Obtendremos el siguiente resumen en lenguaje natural (en el ejemplo, en inglés) junto con algunos detalles adicionales en cuanto a la legibilidad y métricas del texto devuelto:

Otro ejemplo es la traducción automática, una de las aplicaciones con más impacto en el ámbito del procesamiento del lenguaje natural. Abarca tanto la comprensión como la generación con la complejidad añadida de que la comprensión y el procesamiento es sobre la lengua de origen y la generación del mensaje es en la lengua destino.

Todos estos ejemplos demuestran que los beneficios del uso de herramientas para procesado de lenguaje natural son múltiples. Estas herramientas permiten un escalado que posibilita a algunas empresas generar del orden de 10.000 o 100.000 narrativas semanales que dan valor a sus clientes. Sin estas herramientas de generación y automatización sería imposible alcanzar esas cotas. Estas herramientas permiten democratizar determinados servicios para usuarios no expertos en el manejo de variables cuantitativas. Este es el caso de narrativas que resumen nuestro consumo de electricidad sin necesidad de ser un experto conocedor de variables como los kWh. Desde el punto de vista del procesamiento del lenguaje natural, estas tecnologías han cambiado radicalmente la forma de entender el servicio posventa al cliente. Combinadas con tecnologías como los chatbots o robots conversacionales, permiten mejorar la experiencia del cliente al ser atendido rápidamente y sin necesidad de horarios. Ejecutadas por máquinas, estas tecnologías de procesamiento del lenguaje natural, pueden además, consultar datos del cliente de forma eficiente mientras se le guía a través del diálogo (asistido) en su lenguaje natural.

Ante todas estas posibilidades de futuro, no es de extrañar que cada vez más empresas y organismos estén apostando por desarrollar el procesamiento del lenguaje natural, un campo que puede aportar grandes beneficios a nuestra sociedad. Cabe destacar la iniciativa de la Secretaría de Estado para el Avance Digital que ha diseñado un plan específico para el impulso de las tecnologías del lenguaje (www.PlanTL.es), entendiendo por tales, el procesamiento del lenguaje natural, la traducción automática y los sistemas conversacionales.


Contenido elaborado por Alejandro Alija,experto en Transformación Digital e Innovación.

Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.