Saltar al contenido
Home » Desarrollo » Procesamiento de lenguaje natural y sus aplicaciones (I)

Procesamiento de lenguaje natural y sus aplicaciones (I)

NLP

Hace algunos años parecía ciencia-ficción pedirle a nuestro teléfono móvil o algún aparato que nos ordenara una pizza en nuestro restaurante favorito. En varias ocasiones, nos hemos encontrado en uno de esos días que no nos decidimos por un producto y pedimos información o recomendación. A veces nos resulta engorroso tener que leer un mapa mientras manejamos y es más cómodo que una voz nos guíe a nuestro destino. Ya estamos viviendo estos días de ciencia ficción: ¿la rebelión de las máquinas?, para nada, es la ciencia y la tecnología al servicio de los seres humanos.

Se ha generalizado el uso de aplicaciones informáticas que son capaces de reconocer nuestro patrón de voz, procesarlo y realizar múltiples acciones útiles. Esto nos da la sensación de tener una navaja suiza de bolsillo, pero virtual. Por ejemplo, asistentes personales como Siri, Alexa o Cortana que pueden hasta contarnos chistes y ayudarnos a buscar rutas óptimas cuando conducimos por la ciudad.

También podemos encontrar otras que nos ayudan a realizar tareas a partir de procesamiento de textos escrito en lenguaje natural o lenguaje humano como: correctores ortográficos y gramaticales (i.e., Grammarly), traductores automáticos en múltiples idiomas (i.e., DeepL). Este último se ha popularizado por su capacidad de aprender de traductores humanos mediante técnicas avanzadas de inteligencia artificial que incluye aprendizaje profundo.

Procesamiento de lenguaje natural

En este punto nos preguntamos: ¿Cómo se han logrado estos avances?

Gracias a una nueva disciplina que ha surgido a partir de la combinación de la inteligencia artificial, la ciencia de la computación y el lenguaje humano: El Procesamiento de Lenguaje Natural (PNL), también conocido en el inglés como NLP de Natural Language Processing.

NLP, en pocas palabras, desarrolla métodos y algoritmos para dotar a los ordenadores de la capacidad de comprender textos y palabras habladas de forma muy similar a como lo hacen los seres humanos.

Los problemas abordados desde NLP son problemas complejos desde el punto de vista computacional y se caracterizan por procesar datos de naturaleza no estructurada. Entre ellos podemos considerar algunos como:

  • Categorización de textos o clasificación de textos. Asignar etiquetas ya predefinidas a documentos que consisten en meras líneas de texto en un idioma cualquiera. Esto tiene múltiples aplicaciones en la detección de spam en correos electrónicos, detección de polaridad e ironía y análisis de sentimientos. También les ayuda a los CEO Web catalogar contenidos en blogs, catalogar productos a partir de su descripción en el comercio electrónico, entre otros.
  • Reconocimiento de tópicos. Mediante modelos estadísticos se buscan tópicos abstractos a partir de colecciones de documentos. No se debe confundir con clasificación, ya que esta tarea se realiza de manera no supervisada analizando la distribución de las palabras en el texto.
  • Generación automática de frases. Trata de construir frases completas y complejas de un determinado dominio o área de conocimiento. Se evidencia su uso en chat bots, tutores inteligentes, generación de preguntas y respuestas, construcción de textos descriptivos mediante imágenes.
  • Traducción automática. Servicios de traducción de frases y documentos completos de un idioma a otro.

Todos ellos forman parte de los desafíos que son abordados en NLP, como: reconocimiento del habla, la comprensión del lenguaje y la generación del mismo.

¿Qué se ha desarrollado en la ciencia?

Los métodos o algoritmos utilizados puedes dividirse en tres categorías fundamentales:

  • Sistemas basados en reglas. Se enfocan en el uso de reglas de dominio específico (i.e., expresiones regulares). Aunque podemos decir que esta categoría ya está en desuso debido a la complejidad de los lenguajes, la dimensionalidad y su naturaleza no estructurada. Estos sistemas consiguen construir modelos que puedan razonar sobre el lenguaje.
  • Aprendizaje automático. Resuelven problemas que tienen los sistemas basados en reglas, ya que son capaces de aprender relaciones antes no exploradas de las palabras. Estos son capaces de identificar estructura sintáctica en el texto como: entidades nombradas y etiquetado gramatical. También se pueden identificar relaciones semánticas como similitud entre palabras a partir de su contexto, ya sea sinónimos/antónimos. Pero utilizan características elaboradas a mano (por ejemplo, la longitud de la frase, las etiquetas de parte de la oración, la aparición de palabras específicas). Con estas características se suministra la entrada a diferentes modelos o algoritmos de aprendizaje.
  • Modelos de aprendizaje profundo. Estos enfoques constituyen lo más activo y lo que está a la moda hoy. No en vano hoy los investigadores en ciencia de la computación tienen el ojo puesto en ellos. Estos generalizan incluso mejor que los enfoques clásicos de aprendizaje automático, ya que no necesitan características elaboradas a mano. Funcionan automáticamente como extractores de características, lo que ayuda mucho a construir modelos de extremo a extremo. En el texto natural, existe la presencia de alta dimensionalidad (cada palabra es una característica para aprender), algunas de estas son redundantes e innecesarias. Esto produce problemas de generalización en los modelos clásicos, lo que se traduce como mayor error en la tarea NLP o menor precisión.

Llegando a este punto te preguntarás, ¿cómo las máquinas entienden un texto, caracteres u oraciones? Lamento decirte que las máquinas no lo entienden ni lo entenderán, las máquinas solo entienden números. Por lo que debemos realizar un paso intermedio para lograr que el texto tenga una representación entendible para un ordenador. A esto se le conoce como representación de textos (en inglés Text representation).

Estas representaciones usando números, pueden darse en un espacio discreto (números enteros) o continuo (números de punto flotante o decimales). En próximas entradas profundizaremos sobre las diferentes maneras de representar textos, la importancia de cada una y cómo usarlas de manera adecuada según nuestra necesidad.

Fuentes bibliográficas

  • Handbook of Natural Language Processing. Indurkhya, Nitin Damerau, Fred J. 2010
  • Machine Learning for Text. Aggarwal, Charu C. 2018

Deja una respuesta

Tu dirección de correo electrónico no será publicada.