JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

NLP Natural Language Processing : Introducción

¿Alguna vez te has preguntado cómo funcionan los asistentes personales de IA como Siri o Cortana? ¿Cómo ha podido el corrector ortográfico detectar errores de sintaxis que ni tú mismo habrías detectado? ¿Cómo adivina tu motor de búsqueda las palabras que estabas a punto de escribir a partir de las primeras letras?

Aunque estas herramientas se utilizan para fines totalmente diferentes, todas se basan en métodos comunes : los del Natural Language Processing (NLP) o procesamiento del lenguaje natural (PLN) en español.

El objetivo de este artículo es ofrecer una visión general del NLP. En particular, al final de esta lectura, sabrás:

  • ¿Qué es el NLP?
  • ¿Cuáles son las principales áreas de aplicación del NLP?
  • ¿Cuáles son los métodos más populares de NLP?

El NLP por Natural Language Processing o procesamiento del lenguaje natural es una disciplina que se enfoca principalmente en la comprensión, el manejo y la generación del lenguaje natural por parte de las máquinas. El NLP es realmente la interfaz entre la ciencia informática y la lingüística. Por tanto, se basa en la capacidad de la máquina para interactuar directamente con los humanos.

¿A qué problemáticas responde el NLP?

NLP
Campos de aplicación del NLP.

El NLP es un término muy general que abarca un campo de aplicación muy amplio. Estas son las aplicaciones más populares :

Traducción automática

El desarrollo de algoritmos de traducción automática ha revolucionado verdaderamente la manera en la que los textos se traducen en la actualidad. Aplicaciones como Google Translator, son capaces de traducir textos enteros sin ninguna intervención humana.

Como el lenguaje natural es por naturaleza ambiguo y variable, estas aplicaciones no se sustentan en un trabajo de sustitución palabra por palabra, sino que necesitan de un verdadero análisis y modelado del texto, conocido con el nombre de traducción automática estadística (Statistical Machine Translation, en inglés).

Análisis de sentimientos

También conocido como “Opinion Mining”, el análisis de sentimientos consiste en identificar la información subjetiva de un texto para extraer la opinión del autor.

A modo de ejemplo, cuando una marca lanza un producto nuevo, puede explotar los comentarios recopilados de las redes sociales para identificar el sentimiento positivo o negativo compartido entre los clientes.

Por lo general, el análisis de sentimientos permite medir el nivel de satisfacción de los clientes respecto a los productos o servicios ofrecidos por una compañía u organismo. Incluso puede resultar mucho más eficaz que los métodos clásicos como las encuestas.

De hecho, aunque a menudo somos reacios a dedicar tiempo a completar largos cuestionarios, hoy en día un porcentaje cada vez mayor de consumidores comparte con frecuencia sus opiniones en las redes sociales. De este modo, la búsqueda de textos negativos y la identificación de las quejas principales permite mejorar los productos, adaptar la publicidad y reducir el nivel de insatisfacción de los clientes.

Marketing

Los expertos del marketing utilizan también NLP para buscar personas que sean susceptibles de realizar una compra.

Para ello, se basan en el comportamiento de los usuarios en los sitios web, las redes sociales y las solicitudes a los motores de búsqueda. Gracias a este tipo de análisis, Google genera importantes ganancias al ofrecer la publicidad adecuada a los usuarios adecuados. ¡Cada vez que un visitante hace clic en un anuncio, el anunciante paga hasta 50 dólares!

Por lo general, los métodos de NLP se pueden aprovechar para tener una imagen surtida y completa del mercado existente, los clientes, los problemas, la competencia y el potencial de crecimiento de los nuevos productos y servicios de la empresa.

Las fuentes de datos sin procesar para este análisis incluyen registros de ventas, encuestas y redes sociales, etc. 

Chatbots

Los métodos de NLP son el centro del funcionamiento de los chatbots actuales. Aunque estos sistemas no son completamente perfectos, hoy en día pueden manejar fácilmente tareas estándar como informar a los clientes sobre productos o servicios, responder a sus preguntas, etc. Son utilizados por varios canales, incluidos Internet, aplicaciones y plataformas de mensajería. La apertura de la plataforma Facebook Messenger a los chatbots en 2016 contribuyó a su desarrollo.

Otros campos de aplicación

  • Clasificación de texto: consiste en asignar un conjunto de categorías predefinidas a un texto determinado. Los clasificadores de texto se pueden utilizar para organizar, estructurar y categorizar un conjunto de textos.
  • Reconocimiento de caracteres: permite extraer, a partir del reconocimiento de caracteres, la información principal de recibos, facturas, cheques, documentos legales de facturación, etc.
  • Corrección automática: la mayoría de los editores de texto actuales están equipados con un corrector ortográfico que permite comprobar si el texto contiene errores ortográficos.
  • Resumen automático: los métodos de NLP también se utilizan para producir resúmenes cortos, precisos y fluidos de un documento de texto más extenso

¿Cuáles son los principales métodos utilizados en NLP?

En general, podemos distinguir dos aspectos que son esenciales para cualquier problema de NLP :

  • La parte «lingüística», que consiste en preprocesar y transformar la información de entrada en una serie de datos explotable.
  • La parte de «aprendizaje automático» o «Data Science«, que se basa en la aplicación de modelos de Machine Learning o Deep Learning a ese conjunto de datos.

A continuación abordaremos estos dos aspectos, describiendo brevemente los métodos principales y destacando los principales retos. Vamos a basarnos en un ejemplo clásico: la detección de spam.

La fase de preprocesamiento : del texto a los datos

Supongamos que quieres poder determinar si un correo electrónico es spam o no, solo por su contenido. Para ello, es fundamental transformar los datos sin procesar (el texto del correo electrónico) en datos procesables.

Entre las principales etapas, encontramos :

  • Limpieza : Variable según la fuente de datos, esta fase consiste en realizar tareas como eliminar URL, emoji, etc.
  • Normalización de datos :

         ○  Tokenización, o dividir el texto en varias partes llamadas tókens. Ejemplo: «En adjunto, encontrarás el documento en cuestión», «encontrarás», «en adjunto», «el documento», «en cuestión».

         ○  Stemming : una misma palabra se puede encontrar de diferentes formas dependiendo del género (masculino o femenino), del número (singular o plural), la persona (yo, tú, ellos…) etc. El stemming por lo general designa el simple proceso heurístico de cortar el final de las palabras para mantener solo la raíz de la palabra. Ejemplo : «encontrarás» -> «encontr»

          ○  Lematización : consiste en realizar la misma tarea pero utilizando un vocabulario y un análisis minucioso de la construcción de las palabras. La lematización permite eliminar únicamente las terminaciones inflexibles y de ese modo aislar la forma canónica de la palabra, conocida como lema. Ejemplo: «encontrarás» -> “encontrar”

          ○  Otras operaciones : eliminación de números, puntuación, símbolos y stopwords, cambio a minúsculas.

Para poder aplicar métodos de Machine Learning a los problemas relativos al lenguaje natural, es indispensable transformar los datos textuales en datos digitales.

Existen varias maneras, de las cuales estas son las principales:

  • Term-Frequency (TF) : este método consiste en contar el número de presencias de tókens en el corpus de cada texto. Cada texto estará entonces representado por un vector de ocurrencias. Se suele hablar de Bag of Word o bolsa de palabras en español.
NLP
Representación de vectores del método Term-Frequency (TF)

Sin embargo, este enfoque presenta un gran inconveniente: algunas palabras son por naturaleza más utilizadas que otras, lo que puede llevar al modelo a resultados erróneos.

  • Term Frequency-Inverse Document Frequency (TF-IDF): este método consiste en contar el número de ocurrencias de los tókens en el corpus para cada texto, que luego se divide por el número total de ocurrencias de esos mismos tókens en todo el corpus.

Para el término x presente en el documento y, se puede definir su peso con la siguiente relación :

NLP formule

Donde :

  • tfx,y es la frecuencia del término x en y;
  • dfx es el número de documentos que contienen x;
  • N es el total de documentos.

Este enfoque permite obtener para cada texto una representación vectorial que comprende vectores de peso y no de ocurrencias.

La eficacia de estos métodos varía según el caso de aplicación. Sin embargo, tienen dos limitaciones principales :

  • Cuanto más rico sea el vocabulario del corpus, mayor será el tamaño de los vectores, lo que puede representar un problema para los modelos de aprendizaje utilizados en el siguiente paso.
  • El recuento de ocurrencias de palabras no permite dar cuenta de su disposición y, por lo tanto, del significado de las oraciones.

Existe un enfoque que permite remediar estos problemas : Word Embedding. Consiste en construir vectores de tamaño fijo que tomen en cuenta el contexto en el que se encuentran las palabras.

De este modo, dos palabras presentes en dos contextos similares tendrán vectores más cercanos (en términos de distancia vectorial). Esto permite entonces capturar a la vez las similitudes semánticas, sintácticas o temáticas de las palabras.

En otra sección haremos una descripción más detallada de este método.

La fase de aprendizaje : de los datos al modelo

Por lo general, podemos distinguir 3 enfoques principales de NLP : los métodos basados en reglas, modelos clásicos de Machine Learning y modelos de Deep Learning.

Métodos basados en reglas 

Los métodos basados en reglas consisten en su mayoría en la creación de reglas específicas de un campo (por ejemplo, las expresiones regulares). Se pueden utilizar para resolver problemas simples, como extraer datos estructurados de datos no estructurados (por ejemplo, las páginas web).

En el caso de la detección de spam, esto podría consistir en considerar como correos electrónicos no deseados aquellos que contienen palabras de moda como «promoción», «oferta limitada», etc.

Sin embargo, estos métodos sencillos pueden verse rápidamente superados por la complejidad del lenguaje natural y resultar ineficaces.

Modelos clásicos de Machine Learning

Los enfoques clásicos de Machine Learning se pueden utilizar para resolver problemas más difíciles. A diferencia de los métodos basados en reglas predefinidas, se basan en métodos que realmente tratan sobre la comprensión del lenguaje. Utilizan los datos obtenidos de textos en bruto preprocesados a través de uno de los métodos descritos anteriormente, por ejemplo. También pueden utilizar datos relacionados con la longitud de las frases, la aparición de palabras específicas, etc. Por lo general, implementan un modelo estadístico de aprendizaje automático como los de Naive Bayes, de regresión logística, etc.

Modelos de Deep Learning : 

El uso de modelos de Deep Learning para problemas de NLP es objeto de numerosas investigaciones en la actualidad.

Estos modelos se generalizan incluso mejor que los enfoques clásicos de aprendizaje porque requieren una fase de pretratamiento del texto menos sofisticada : las capas de neuronas pueden verse como extractores automáticos de características.

Esto permite construir modelos de principio a fin con poco preprocesamiento de datos. Fuera de la parte de la ingeniería de características, las capacidades de aprendizaje de los algoritmos de Deep Learning suelen ser más poderosas que las del Machine Learning clásico, lo que permite obtener mejores resultados en varias tareas complejas de NLP, como la traducción.

¿Cuáles son las perspectivas y los retos del NLP?

Las reglas que rigen la transformación de texto de lenguaje natural en información no son fáciles de comprender para los ordenadores.

Esto requiere comprender a la vez las palabras y la manera en la que los conceptos están vinculados para entregar el mensaje deseado.

Entre los principales retos se encuentran :

Ambigüedad

En lenguaje natural, las palabras son únicas, pero pueden tener diferentes significados según el contexto, lo que resulta en una ambigüedad léxica, sintáctica y semántica. Para solucionar este problema, el NLP propone varios métodos, como la evaluación de contexto, por ejemplo. Sin embargo, la comprensión del significado semántico de las palabras en una oración sigue siendo una tarea que se está investigando.

Sinonimia

Otro fenómeno clave en el lenguaje natural es el hecho de que podemos expresar la misma idea con diferentes términos que también dependen del contexto específico.

Por ejemplo, los términos «alto» y «grande» pueden ser sinónimos para describir un objeto o edificio, pero no son intercambiables en todos los contextos: «grande» puede significar de mayor edad.

Correferencia

Las tareas de correferencia consisten en encontrar todas las expresiones que hacen referencia a una misma entidad. Este es un paso importante para muchas tareas de NLP de alto nivel que implican la comprensión del texto en su conjunto, como resumir documentos, responder preguntas y extraer información. Este problema ha resurgido con la introducción de técnicas avanzadas de Deep Learning.

Estilo de escritura

Dependiendo de la personalidad, las intenciones y las emociones del autor, la misma idea se puede expresar de diferentes maneras.

Algunos autores no dudan en utilizar la ironía o el sarcasmo y, por tanto, transmiten un sentido opuesto al sentido literal.

De este modo, mientras los humanos pueden dominar fácilmente un idioma, la ambigüedad y las características imprecisas de los lenguajes naturales son las que hacen que el NLP sea difícil de implementar para las máquinas.

¿Te gustaría dominar el arte del NLP? La continuación de este artículo llegará pronto. En el próximo episodio descubrirás: ¿cómo representar una palabra con un vector gracias al Word Embedding?

De este modo, mientras los humanos pueden dominar fácilmente un idioma, la ambigüedad y las características imprecisas de los lenguajes naturales son las que hacen que el NLP sea difícil de implementar para las máquinas.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.