Procesamiento de lenguaje natural
¿Qué es el procesamiento de lenguaje natural y qué aplicaciones tiene?
El procesamiento de lenguaje natural (PLN) aúna dos disciplinas tan aparentemente lejanas como la lingüística y la inteligencia artificial. En la actualidad, este campo de las ciencias de la computación, que consiste en transformar el lenguaje natural en un lenguaje formal —como el de programación— que los ordenadores puedan procesar, no deja de evolucionar y sus aplicaciones son cada vez mayores.
Si alguna vez le has preguntado la hora a Alexa o a Siri, te habrás dado cuenta de que no es necesario hacer la pregunta siempre de la misma manera. Puedes formular un “¿qué hora es?” o un “¿me puedes decir la hora?” y en ambos casos recibir una respuesta adecuada. Lo mismo ocurre con el traductor automático de Google, que detecta los matices entre distintas palabras según el contexto. Estos ejemplos, y muchos más, tienen detrás algo llamado procesamiento de lenguaje natural (PLN).
QUÉ ES EL PROCESAMIENTO DE LENGUAJE NATURAL (PLN)
Según la definición de IBM, el procesamiento de lenguaje natural es la rama de la informática —más concretamente, de la inteligencia artificial— que se ocupa de dotar a los ordenadores de la capacidad de entender lenguaje hablado y escrito del mismo modo que los seres humanos. Esta tecnología ha alcanzado un alto nivel en la actualidad gracias a la aplicación de tecnologías como el machine learning (aprendizaje automático), el big data, el internet de las cosas o las redes neuronales.
Algunas de las aplicaciones más importantes se centran en la inteligencia de negocio (business intelligence), que permite analizar automáticamente las reacciones de los clientes a través de lo que publican en Internet o de las preguntas que realizan para extraer información. Los chatbots son otra aplicación que, aunque aún cuenta con un gran margen de mejora, agiliza la interacción con los clientes a través de chats o contestadores telefónicos ofreciendo respuestas rápidas y automatizadas gracias al procesamiento de lenguaje natural.
El procesamiento de lenguaje natural tiene sus raíces en la década de 1950, cuando Alan Turing publicó un artículo (Máquinas computacionales e inteligencia) en el que proponía lo que hoy se conoce como el Test de Turing. La prueba examinaba la capacidad de una máquina para exhibir un comportamiento inteligente similar al de un ser humano. A partir de ese momento, la evolución de los algoritmos asociados a esta tecnología ha permitido alcanzar el progreso actual.
CÓMO FUNCIONA EL PROCESAMIENTO DE LENGUAJE NATURAL
Los primeros modelos de análisis de lenguaje natural eran simbólicos y se basaban en codificar manualmente las reglas del lenguaje. Esto permitía distinguir, por ejemplo, los tiempos y conjugaciones de los verbos y extraer el significado de la raíz. En los años 80 y 90 se produjo la revolución estadística. En lugar de escribir conjuntos de reglas (y excepciones) los sistemas de PLN comenzaron a usar algoritmos de inferencia estadística para analizar otros textos y realizar comparaciones en busca de patrones.
La ventaja de los modelos estadísticos es que son más fiables a la hora de comprender nuevas palabras o de detectar errores, como por ejemplo palabras mal escritas u omitidas por accidente. La mayoría de los sistemas actuales utilizan una combinación de modelos simbólicos y estadísticos. En concreto, los sistemas de procesamiento de lenguaje natural realizan varios tipos de análisis:
- Morfológico: se centra en distinguir los distintos tipos de palabras (verbos, sustantivos, preposiciones, etc.) y sus variaciones (género, número, tiempo, etc.).
- Sintáctico: separa unas frases de otras y analiza las partes que las componen (sujeto, verbo, predicado) para así poder extraer su sentido.
- Semántico: analiza el significado, no solo de las palabras individuales, sino de las frases de las que forman parte y del discurso en su conjunto.
- Pragmático: se encarga de extraer la intención del texto dependiendo de su contexto y permite diferenciar factores como la ironía, la ambigüedad o el estado de ánimo.
APLICACIONES DEL PROCESAMIENTO DE LENGUAJE NATURAL (EJEMPLOS)
El corrector ortográfico de tu procesador de textos o el autocorrector de tu teléfono utilizan técnicas de procesamiento de lenguaje natural, pero las aplicaciones van mucho más allá:
Clasificación de documentos
La tarea de clasificar grandes cantidades de documentos según su temática o estilo puede agilizarse con sistemas de PLN.
Análisis del sentimiento y de la opinión
Los comentarios en redes sociales sobre productos o servicios son muy relevantes para las empresas y los sistemas de PLN permiten extraer información relevante.
Comparación de textos
Los sistemas de PLN permiten hallar patrones en textos y detectar coincidencias entre ellos, lo que facilita la detección de plagios y el control de calidad.
Anonimización de documentos
A través de sistemas de PLN pueden procesarse documentos para identificar y eliminar las menciones a datos personales, asegurando así la privacidad de personas e instituciones.
HERRAMIENTAS PARA EL PROCESAMIENTO DE LENGUAJE NATURAL
Numerosas empresas ofrecen herramientas de software para aplicar técnicas de procesamiento de lenguaje natural. Para desarrollarlas, usan lenguajes de programación estándar, especialmente Python —el más aplicado para este fin—:
- Natural Language Toolkit (NLTK): esta biblioteca de Python cuenta con una estructura modular que facilita las funciones del PLN, como el etiquetado y la clasificación, entre otros.
- MonkeyLearn: es una plataforma de PLN que dispone de modelos para tareas de análisis de textos o de sentimientos, de clasificación de temas o de extracción de palabras clave.
- IBM Watson: es un conjunto de servicios de IA almacenados en la nube de IBM que ofrece sistemas de PLN, permitiendo la identificación y la extracción de categorías, sentimientos, entidades, etc.
- Google Cloud Natural Language: esta API de lenguaje natural proporciona varios modelos para el análisis de sentimientos, la clasificación de contenidos y la extracción de entidades, entre otros.
- Amazon Comprehend: es un servicio de PLN integrado en la infraestructura de Amazon Web Services para el análisis de sentimientos, el modelado de temas o el reconocimiento de entidades, entre otras.
- SpaCy: es una de las bibliotecas de código abierto para PLN con Python más recientes y destaca por su usabilidad y por estar diseñada para analizar grandes volúmenes de datos.
- GenSim: es una librería de Python especializada que se ocupa del modelado de temas, el reconocimiento de similitudes entre textos o la navegación entre diferentes documentos.