El Procesamiento del Lenguaje Natural (NLP, Natural Language Processing) es uno de los campos de procesamiento automático donde más éxitos ha obtenido la Inteligencia Artificial.
En el mundo de los robots software usamos, por ejemplo NLP para el tratamiento de correos electrónicos (un uso común en Automatización Robótica de Procesos) pero se usa en abundancia en los bots conversacionales, tanto para procesar el texto de un chat como la comunicación basada en voz.
Un campo, pues, interesantísimo y de amplia aplicación en robotización.
No vamos a entrar en detalles en este artículo sobre las interioridades del procesamiento de lenguaje natural, pero sí quería recoger las tres tareas comunes del Procesamiento de Lenguaje Natural, y más específicamente, del Entendimiento del Lenguaje Natural (NLU, Natural Language Understanding) que a alto nivel identifica Szymon Rozga en su libro 'Practical Bot Development'
Son éstas:
- Análisis sintáctico: que, básicamente, consiste en tomar un texto de entrada y descomponerlo en las partes que lo integran. Una caso sería, en el caso de la voz, segmentar el sonido de entrada en los denominados morfemas y construir estructuras que representen lo hablado en una cierta gramática. Otra tarea es el etiquetado de las palabras clasificándolas como sustantivos, adjetivos, verbos...
- Análisis semántico: En este caso se trata de buscar significado a la entrada en lenguaje natural. Entre las aplicaciones que el autor identifica para el caso de los chatbots tenemos:
- Extracción de entidades como por ejemplo, extraer los sustantivos y saber si representan localizaciones, personas, etc
- Análisis de sentimiento identificando, por ejemplo, si lo que se expresa tiene una valoración general positiva, negativa o neutra.
- Segmentación de temas es decir, para un texto de entrada, segmentarlo por los temas de que trata e identificar esos temas.
- Extracción de relaciones, es decir, identificar las relaciones entre los objetos que aparecen en el texto.
- Análisis del discurso: proceso por el que se miran a unas estructuras linguísticas de mayor tamaño, obtener sentido de ello como una unidad y, por ejemplo, ser capaz de hacer algún tipo de resumen.
No abandonamos del todo el tema del procesamiento de lenguaje natural y hablaremos próximamente todavía un poco más de tratamiento de lenguaje en el contexto de los chatbots.