Procesamiento del Lenguaje Natural (NLP)
Procesamiento del Lenguaje Natural (NLP)
El Procesamiento del Lenguaje Natural (NLP) es un campo de la inteligencia artificial que se enfoca en la interacción entre las computadoras y el lenguaje humano. Su objetivo es permitir que las máquinas comprendan, interpreten y generen lenguaje humano de manera efectiva. El NLP se basa en técnicas de lingüística computacional, aprendizaje automático y procesamiento de textos para lograr tareas como la traducción automática, el análisis de sentimientos, la generación de texto y la extracción de información. Este campo desempeña un papel crucial en la automatización de tareas relacionadas con el lenguaje, como chatbots, asistentes virtuales y análisis de grandes cantidades de texto en una amplia variedad de aplicaciones, desde la atención al cliente hasta la investigación científica. El NLP sigue siendo un área de investigación y desarrollo activa y continúa avanzando con el tiempo, ofreciendo soluciones cada vez más sofisticadas para el procesamiento y comprensión del lenguaje humano.¿Qué es el procesamiento de lenguaje natural?
El Procesamiento del Lenguaje Natural es el campo de conocimiento de la Inteligencia Artificial que se ocupa de la investigar la manera de comunicar las máquinas con las personas mediante el uso de lenguas naturales, como el español, el inglés o el chino.
Virtualmente, cualquier lengua humana puede ser tratada por los ordenadores. Lógicamente, limitaciones de interés económico o práctico hace que solo las lenguas más habladas o utilizadas en el mundo digital tengan aplicaciones en uso.
Pensemos en cuántas lenguas hablan Siri (20) o Google Assistant (8). El inglés, español, alemán, francés, portugués, chino, árabe y japonés (no necesariamente en este orden) son las que cuentan con más aplicaciones que las entienden. Google Translate es la que más lenguas trata, superando el centenar… pero hay entre 5000 y 7000 lenguas en el mundo.
Las lenguas humanas pueden expresarse por escrito (texto), oralmente (voz) y también mediante signos. Naturalmente, el PLN está más avanzado en el tratamiento de textos, donde hay muchos más datos y son más fáciles de conseguir en formato electrónico.
Los audios, aunque estén en formato digital, hay que procesarlos para transcribirlos en letras o caracteres y, a partir de ahí, entender la pregunta. El proceso de respuesta es el inverso: primero se elabora la oración y luego se “sintetiza la voz”.
Por cierto, la voz artificial cada vez suena más humana, con inflexiones tonales y prosódicas que imitan la producción humana.
Modelos para procesamiento del lenguaje natural
Tratar computacionalmente una lengua implica un proceso de modelización matemática. Los ordenadores solo entienden de bytes y dígitos y los informáticos codifican los programas empleando lenguajes de programación como C, Python o Java.
Los lingüistas computacionales se encargan de la tarea de “preparar” el modelo lingüístico para que los ingenieros informáticos lo implementen en un código eficiente y funcional. Básicamente, existen dos aproximaciones generales al problema de la modelización lingüística:
Modelos Lógicos: gramáticas
Los lingüistas escriben reglas de reconocimiento de patrones estructurales, empleando un formalismo gramatical concreto. Estas reglas, en combinación con la información almacenada en diccionarios computacionales, definen los patrones que hay que reconocer para resolver la tarea (buscar información, traducir, etc.).
Estos modelos lógicos pretenden reflejar la estructura lógica del lenguaje y surgen a partir de las teorías de N. Chomsky en los años 50.
Modelos probabilísticos del lenguaje natural: basados en datos
La aproximación es a la inversa: los lingüistas recogen colecciones de ejemplos y datos (corpus) y a partir de ellos se calculan las frecuencias de diferentes unidades lingüísticas (letras, palabras, oraciones) y su probabilidad de aparecer en un contexto determinado. Calculando esta probabilidad, se puede predecir cuál será la siguiente unidad en un contexto dado, sin necesidad de recurrir a reglas gramaticales explícitas.
Es el paradigma de “aprendizaje automático” que se ha impuesto en las últimas décadas en Inteligencia Artificial: los algoritmos infieren las posibles respuestas a partir de los datos observados anteriormente en el corpus.
Componentes del procesamiento del lenguaje natural
A continuación, vemos algunos de los componentes del procesamiento del lenguaje natural. No todos los análisis que se describen se aplican en cualquier tarea de PLN, sino que depende del objetivo de la aplicación.
- Análisis morfológico o léxico. Consiste en el análisis interno de las palabras que forman oraciones para extraer lemas, rasgos flexivos, unidades léxica compuestas. Es esencial para la información básica: categoría sintáctica y significado léxico.
- Análisis sintáctico. Consiste en el análisis de la estructura de las oraciones de acuerdo con el modelo gramatical empleado (lógico o estadístico).
- Análisis semántico. Proporciona la interpretación de las oraciones, una vez eliminadas las ambigüedades morfosintácticas.
- Análisis pragmático. Incorpora el análisis del contexto de uso a la interpretación final. Aquí se incluye el tratamiento del lenguaje figurado (metáfora e ironía) como el conocimiento del mundo específico necesario para entender un texto especializado.
Ejemplos de técnicas de preprocesamiento de NLP
Tokenización: la tokenización divide el texto sin formato (por ejemplo, una oración o un documento) en una secuencia de tokens, como palabras o subpalabras. La tokenización suele ser el primer paso en un pipeline de procesamiento de NLP. A menudo, los tokens son secuencias recurrentes de texto que se tratan como unidades atómicas en el procesamiento posterior. Pueden ser palabras, unidades de subpalabras denominadas morfemas (por ejemplo, prefijos como "un-" o sufijos como "-ing" en inglés) o incluso caracteres individuales.
Modelos de bolsa de palabras: los modelos de bolsa de palabras tratan los documentos como recopilaciones desordenadas de tokens o palabras (una bolsa es como un conjunto, excepto que realiza un seguimiento de la cantidad de veces que aparece cada elemento). Debido a que ignoran completamente el orden de las palabras, los modelos de bolsa de palabras confundirán una oración como "perro muerde a hombre" con "hombre muerde a perro". Sin embargo, los modelos de bolsa de palabras se suelen utilizar para lograr la eficiencia en grandes tareas de recuperación de información, como los motores de búsqueda. Pueden producir resultados cercanos a los mejores resultados con documentos más grandes.
Eliminación de palabra irrelevante: "palabra irrelevante" es un token que se ignora en el procesamiento posterior. Por lo general, son palabras cortas y frecuentes, como "a", "la/el" o "un/una". Los modelos de bolsa de palabras y los motores de búsqueda a menudo ignoran las palabras irrelevantes para reducir el tiempo de procesamiento y el almacenamiento en la base de datos. Las redes neuronales profundas suelen tener en cuenta el orden de las palabras (es decir, no son modelos de bolsa de palabras) y no eliminan palabras irrelevantes porque pueden transmitir distinciones sutiles en significado (por ejemplo, "el paquete se perdió" y "un paquete se perdió" no significan lo mismo, aunque sean iguales después de eliminar las palabras irrelevantes).
Stemming y lematización: los morfemas son los elementos de lenguaje con menor significado. Normalmente, los morfemas son más pequeños que las palabras. Por ejemplo, "revisitado" consiste en el prefijo "re-", la raíz "visit" y el sufijo de tiempo pasado "-ado". La función de stemming y la lematización asignan palabras a sus raíces (por ejemplo, "revisitar" + PASADO). La función de stemming y la lematización son pasos cruciales en los modelos de aprendizaje preprofundos, pero los modelos de aprendizaje profundos suelen aprender estas regularidades a partir de los datos de entrenamiento, por lo que no requieren pasos explícitos de stemming o lematización.
Etiquetado de categoría gramatical y análisis sintáctico: el etiquetado de la categoría gramatical (PoS) es el proceso mediante el cual se etiqueta cada palabra con su categoría gramatical (por ejemplo, sustantivo, verbo, adjetivo, etc.). Un analizador sintáctico identifica cómo se combinan las palabras para formar frases, cláusulas y oraciones completas. El etiquetado PoS es una tarea de etiquetado de secuencia, el análisis sintáctico es un tipo extendido de tarea de etiquetado de secuencia y las redes neuronales profundas son la tecnología de vanguardia para el etiquetado PoS y el análisis sintáctico. Antes del aprendizaje profundo, el etiquetado PoS y el análisis sintáctico eran pasos esenciales para la comprensión de las oraciones. Sin embargo, los modelos de NLP de aprendizaje profundo modernos suelen beneficiarse muy poco (si lo hacen) de la información de la categoría gramatical o sintáctica; por eso, ni el etiquetado de PoS ni el análisis sintáctico se utilizan ampliamente en el NLP de aprendizaje profundo.
Python: Python es uno de los lenguajes más populares para NLP. Ofrece bibliotecas y herramientas como NLTK, spaCy y Gensim, que facilitan el desarrollo de aplicaciones de procesamiento del lenguaje natural.
Java: Java se utiliza en algunas aplicaciones de NLP, y existen bibliotecas como Apache OpenNLP que pueden ser útiles.
R: R es conocido por su capacidad estadística y se utiliza en NLP para tareas relacionadas con el análisis de texto y minería de texto.
C++: Aunque menos común que Python, C++ se utiliza en aplicaciones de NLP de alto rendimiento debido a su velocidad y eficiencia.
Lisp: Lisp ha sido históricamente importante en el campo de la inteligencia artificial y NLP. El sistema de procesamiento de lenguaje natural "Common LISP"
Filtros de correo electrónico
Los filtros de correo electrónico son una de las primeras y más básicas aplicaciones del PLN en línea. Empezó con los filtros de spam, que podían detectar ciertas palabras o frases que indicaban que se trataba de un mensaje de spam. Sin embargo, los filtros se han actualizado, al igual que las primeras adaptaciones del PLN. Una de las aplicaciones más recientes y populares del PLN se encuentra en la clasificación del correo electrónico de Gmail. El sistema reconoce si los correos electrónicos pertenecen a una de tres categorías (principales, sociales o promocionales) en función de su contenido. Esto permite que las casillas de correo de todos los usuarios de Gmail tengan un tamaño manejable y que se pueda acceder fácilmente a los mensajes importantes y relevantes que se deben leer y responder con rapidez.
Asistentes inteligentes
Los asistentes inteligentes como Siri de Apple y Alexa de Amazon identifican patrones en el discurso gracias al reconocimiento de voz y, luego, deducen el significado y proporcionan una respuesta útil. Nos hemos acostumbrado a poder decir “Oye, Siri”, hacer una pregunta y que el asistente comprenda lo que dijimos y responda con respuestas relevantes en función del contexto. Ahora nos estamos acostumbrando a interactuar con Siri y Alexa en nuestro hogar y nuestra vida cotidiana, ya que conversamos con ellos por medio de dispositivos como el termostato, los interruptores de la luz, el automóvil, etc. Ahora esperamos que los asistentes como Alexa y Siri comprendan indicios contextuales, ya que mejoran nuestras vidas y facilitan ciertas tareas, como ordenar elementos. Incluso nos gusta cuando responden con humor o contestan preguntas sobre sí mismos. Nuestras interacciones se volverán más personales a medida que estos asistentes conozcan más cosas sobre nosotros. Así lo explica el artículo del New York Times “Por qué pronto podríamos vivir en el mundo de Alexa”: “Se avecina algo más grande. Alexa es la mejor candidata para convertirse en la tercera plataforma informática para consumidores de esta década”.
Resultados de búsqueda
Los motores de búsqueda usan el PLN para mostrar resultados relevantes en función de comportamientos de búsqueda similares o de la intención de los usuarios, por lo que una persona promedio encuentra lo que busca sin necesitar grandes habilidades de búsqueda. Por ejemplo, Google no solo predice qué búsquedas populares pueden aplicarse a tu consulta a medida que escribes, sino que analiza el panorama completo y reconoce lo que intentas decir, en lugar de centrarse en los términos de búsqueda exactos. Una persona podría buscar un número de vuelo en Google y ver el estado de ese vuelo, o introducir un símbolo bursátil y recibir información sobre acciones, o bien podría aparecer una calculadora cuando se escribe una ecuación matemática. Estas son algunas de las variaciones que podrías ver al realizar una búsqueda, ya que, en las consultas, el PLN asocia la búsqueda ambigua con una entidad relativa y brinda resultados útiles.
Texto predictivo
Las funciones como el corrector automático, el autocompletado y el texto predictivo son tan comunes en nuestros smartphones que les restamos importancia. El autocompletado y el texto predictivo se asemejan a los motores de búsqueda en el sentido de que predicen lo que quieres decir en función de lo que escribes y terminan las palabras o sugieren otros términos relevantes. El corrector automático a veces incluso cambia algunas palabras para que el mensaje en general tenga mayor sentido. Estas funciones también aprenden de ti. El texto predictivo se personaliza en función de tu propio estilo a medida que lo usas. Esto nos permite hacer el divertido experimento de compartir por teléfono oraciones formadas completamente de texto predictivo. Los resultados son sorprendentemente personales y reveladores; incluso varios medios de comunicación han destacado este aspecto.
Traducción de idiomas
Una de las evidencias más claras de haber hecho trampa en los deberes de inglés es que, gramaticalmente, las respuestas son un desastre. Muchos idiomas no dan lugar a una traducción directa y tienen diferentes órdenes para las estructuras oracionales, lo cual es un aspecto que los servicios de traducción solían pasar por alto. Sin embargo, han avanzado mucho últimamente. Con el PLN, los traductores en línea pueden hacer traducciones más precisas y ofrecer resultados gramaticalmente correctos. Esta función es sumamente útil cuando intentamos comunicarnos con alguien en otro idioma. Además, cuando traduces de un idioma al tuyo, las herramientas ahora reconocen el idioma en función del texto introducido y lo traducen.
Llamadas telefónicas digitales
Todos hemos escuchado la frase “esta llamada podría ser grabada con fines de entrenamiento”, pero rara vez nos preguntamos qué quiere decir. Esto significa que las grabaciones podrían utilizarse con fines de capacitación, por ejemplo, si se ofende a un cliente, pero por lo general se registran en la base de datos para que el sistema de PLN aprenda de ellas y pueda mejorar en el futuro. Los sistemas automáticos dirigen las llamadas de los clientes a un representante del servicio o a chatbots en línea, que responden las solicitudes de los clientes con información útil. Esta es una práctica de PLN que utilizan muchas empresas, incluidos grandes proveedores de telecomunicaciones. El PLN también permite que el lenguaje generado por los equipos se parezca a la voz de un humano. Las llamadas telefónicas que tienen la intención de programar una cita, como un cambio de aceite o un corte de cabello, se pueden automatizar, tal como se puede ver en este video en el que el Asistente de Google programa una cita en una peluquería.
Análisis de datos
Dado que cada vez más proveedores de inteligencia empresarial ofrecen una interfaz de lenguaje natural para las visualizaciones de datos, las funciones de lenguaje natural comenzaron a integrarse en los flujos de trabajo de análisis de datos. Un buen ejemplo son las codificaciones visuales más inteligentes, que ofrecen la mejor visualización para la tarea indicada en función de la semántica de los datos. Esto genera más oportunidades para que las personas exploren sus datos con frases en lenguaje natural o fragmentos de preguntas compuestos por varias palabras clave que se pueden interpretar y a las que se les puede atribuir un significado. Aplicar el lenguaje para investigar los datos no solo mejora el nivel de accesibilidad, sino que también rompe las barreras del análisis en las organizaciones y lo extiende más allá de la típica comunidad de analistas y desarrolladores de software. Si deseas obtener más información sobre cómo el lenguaje natural puede ayudarte a explorar y visualizar mejor los datos, consulta este seminario web.
Análisis de texto
El análisis de texto utiliza diferentes técnicas lingüísticas, estadísticas y de aprendizaje automático para convertir los datos de texto no estructurados en datos significativos que se puedan analizar. Si bien el análisis de los sentimientos puede parecer un poco abrumador para las marcas, especialmente si tienen bases de clientes muy grandes, una herramienta con PLN generalmente explora las interacciones con los clientes, como los comentarios en las redes sociales o incluso las menciones del nombre de la marca, para ver cuál es la opinión de los consumidores. El análisis de estas interacciones puede ayudar a las marcas a determinar la eficacia de una campaña de marketing o a supervisar los principales problemas de los clientes antes de decidir cómo pueden responder o mejorar el servicio para brindarles una mejor experiencia a los clientes. Otras formas en que el PLN contribuye al análisis de texto son la extracción de palabras clave y la detección de estructuras y patrones en los datos de texto no estructurados. Existe una enorme cantidad de aplicaciones de PLN en el mundo digital, y esta lista seguirá creciendo a medida que las empresas y las industrias adopten esta tecnología y descubran su importancia. Si bien es importante que los humanos intervengan en los problemas de comunicación más complicados, el PLN logrará mejorar nuestras vidas, ya que administrará y automatizará tanto las tareas pequeñas como las complejas con la innovación de la tecnología.
PREGUNTAS
¿Cuáles son los principales desafíos en el desarrollo de sistemas de Procesamiento del Lenguaje Natural capaces de comprender y generar lenguaje humano de manera más precisa y contextualmente relevante?
BIBLIOGRAFIA
- https://www.baoss.es/procesamiento-del-lenguaje-natural-pln-con-python/
- https://www.iic.uam.es/inteligencia-artificial/procesamiento-del-lenguaje-natural/







Comentarios