Procesamiento del lenguaje natural (PLN)
¿Qué es el procesamiento del lenguaje natural?
El procesamiento del lenguaje natural (PLN) es la capacidad de un programa informático para comprender el lenguaje humano tal como se habla y escribe, lo que se conoce como lenguaje natural. Es un componente de la inteligencia artificial (IA).
La PLN existe desde hace más de 50 años y tiene sus raíces en el campo de la lingüística. Tiene una variedad de aplicaciones del mundo real en varios campos, incluida la investigación médica, los motores de búsqueda y la inteligencia empresarial.
¿Cómo funciona el procesamiento del lenguaje natural?
El PLN permite a las computadoras comprender el lenguaje natural como lo hacen los humanos. Ya sea que el idioma sea hablado o escrito, el procesamiento del lenguaje natural utiliza inteligencia artificial para recibir información del mundo real, procesarla y darle sentido de una manera que una computadora pueda entender. Así como los humanos tienen diferentes sensores –como oídos para escuchar y ojos para ver–, las computadoras tienen programas para leer y micrófonos para recopilar audio. Y así como los humanos tienen un cerebro para procesar esa entrada, las computadoras tienen un programa para procesar sus respectivas entradas. En algún momento del procesamiento, la entrada se convierte en código que la computadora puede entender.
Hay dos fases principales en el procesamiento del lenguaje natural: preprocesamiento de datos y desarrollo de algoritmos.
El preprocesamiento de datos implica preparar y "limpiar" datos de texto para que las máquinas puedan analizarlos. El preprocesamiento pone los datos en un formato viable y resalta las características del texto con las que puede trabajar un algoritmo. Hay varias formas de hacer esto, que incluyen:
- Tokenización. Aquí es cuando el texto se divide en unidades más pequeñas para trabajar.
- Eliminación de palabras. Aquí es cuando las palabras comunes se eliminan del texto, de modo que permanecen las palabras únicas que ofrecen la mayor información sobre el texto.
- Lematización y derivación. Aquí es cuando las palabras se reducen a sus formas raíces para procesarlas.
- Etiquetado de parte del discurso. Aquí es cuando las palabras se marcan según la parte del discurso que son, como sustantivos, verbos y adjetivos.
Una vez que los datos han sido preprocesados, se desarrolla un algoritmo para procesarlos. Existen muchos algoritmos diferentes de procesamiento del lenguaje natural, pero comúnmente se usan dos tipos principales:
- Sistema basado en reglas. Este sistema utiliza reglas lingüísticas cuidadosamente diseñadas. Este enfoque se utilizó desde el principio en el desarrollo del procesamiento del lenguaje natural y todavía se utiliza.
- Sistema basado en aprendizaje automático. Los algoritmos de aprendizaje automático utilizan métodos estadísticos. Aprenden a realizar tareas basadas en los datos de entrenamiento que reciben y ajustan sus métodos a medida que se procesan más datos. Utilizando una combinación de aprendizaje automático, aprendizaje profundo y redes neuronales, los algoritmos de procesamiento del lenguaje natural perfeccionan sus propias reglas mediante procesamiento y aprendizaje repetidos.
¿Por qué es importante el procesamiento del lenguaje natural?
Las empresas utilizan cantidades masivas de datos no estructurados y con mucho texto y necesitan una forma de procesarlos de manera eficiente. Gran parte de la información creada en línea y almacenada en bases de datos es lenguaje humano natural y, hasta hace poco, las empresas no podían analizar estos datos de manera efectiva. Aquí es donde resulta útil el procesamiento del lenguaje natural.
La ventaja del procesamiento del lenguaje natural se puede ver al considerar las siguientes dos afirmaciones: "el seguro de computación en la nube debe ser parte de cada acuerdo de nivel de servicio" y "un buen SLA garantiza una noche de sueño más placentera, incluso en la nube". Si un usuario confía en el procesamiento del lenguaje natural para realizar búsquedas, el programa reconocerá que la computación en la nube es una entidad, que la nube es una forma abreviada de computación en la nube y que SLA es un acrónimo industrial de acuerdo de nivel de servicio.
Estos son los tipos de elementos vagos que aparecen con frecuencia en el lenguaje humano, y que los algoritmos de aprendizaje automático históricamente han sido malos interpretando. Ahora, con mejoras en los métodos de aprendizaje profundo y aprendizaje automático, los algoritmos pueden interpretarlos de manera efectiva. Estas mejoras amplían la amplitud y profundidad de los datos que se pueden analizar.
Técnicas y métodos de procesamiento del lenguaje natural
La sintaxis y el análisis semántico son dos técnicas principales utilizadas en el procesamiento del lenguaje natural. La sintaxis es la disposición de las palabras en una oración para que tengan sentido gramatical. La PLN utiliza la sintaxis para evaluar el significado de un idioma basándose en reglas gramaticales. Las técnicas de sintaxis incluyen:
- Análisis. Este es el análisis gramatical de una oración. Ejemplo: un algoritmo de procesamiento del lenguaje natural recibe la frase "El perro ladró". El análisis implica dividir esta oración en partes de la oración; es decir, perro = sustantivo, ladrado = verbo. Esto es útil para tareas de procesamiento posteriores más complejas.
- Segmentación de palabras. Este es el acto de tomar una cadena de texto y derivar de ella formas de palabras. Ejemplo: una persona escanea un documento escrito a mano en una computadora. El algoritmo sería capaz de analizar la página y reconocer que las palabras están divididas por espacios en blanco.
- Rotura de frase. Esto coloca límites de oraciones en textos grandes. Ejemplo: un algoritmo de procesamiento del lenguaje natural recibe el texto "El perro ladró. Me desperté". El algoritmo puede reconocer el período que divide las oraciones mediante la separación de oraciones.
- Segmentación morfológica. Esto divide las palabras en partes más pequeñas llamadas morfemas. Ejemplo: la palabra indiscutiblemente se dividiría en [[in[[discut]ible]]mente], donde el algoritmo reconoce "in", "discut", "ible" y "mente" como morfemas. Esto es especialmente útil en traducción automática y reconocimiento de voz.
- Derivados. Esto divide las palabras con inflexión en formas de raíz. Ejemplo: en la oración "El perro ladró", el algoritmo podría reconocer que la raíz de la palabra "ladró" es "ladrar". Esto sería útil si un usuario estuviera analizando un texto para todas las instancias de la palabra ladrar, así como todas sus conjugaciones. El algoritmo puede ver que son esencialmente la misma palabra aunque las letras sean diferentes.
La semántica implica el uso y el significado detrás de las palabras. El procesamiento del lenguaje natural aplica algoritmos para comprender el significado y la estructura de las oraciones. Las técnicas semánticas incluyen:
- Desambiguación del sentido de la palabra. Esto deriva el significado de una palabra según el contexto. Ejemplo: considere la oración "La lima aún está verde". La palabra lima tiene diferentes significados. Un algoritmo que utilice este método puede entender que el uso de la palabra aquí se refiere a una fruta, no a un instrumento para desgastar materiales.
- Reconocimiento de entidad nombrada. Esto determina las palabras que se pueden clasificar en grupos. Ejemplo: un algoritmo que utilice este método podría analizar un artículo de noticias e identificar todas las menciones de una determinada empresa o producto. Utilizando la semántica del texto, sería capaz de diferenciar entre entidades que son visualmente iguales. Por ejemplo, en la frase "El hijo de Daniel McDonald's fue a McDonald's y pidió una Cajita Feliz", el algoritmo pudo reconocer las dos instancias de "McDonald's" como dos entidades separadas: una, un restaurante y otra, una persona.
- Generación de lenguaje natural. Utiliza una base de datos para determinar la semántica detrás de las palabras y generar texto nuevo. Ejemplo: un algoritmo podría escribir automáticamente un resumen de los hallazgos de una plataforma de inteligencia empresarial, asignando ciertas palabras y frases a características de los datos en la plataforma de BI. Otro ejemplo sería generar automáticamente artículos de noticias o tuits basados en un determinado cuerpo de texto utilizado para la capacitación.
Los enfoques actuales para el procesamiento del lenguaje natural se basan en el aprendizaje profundo, un tipo de IA que examina y utiliza patrones en los datos para mejorar la comprensión de un programa. Los modelos de aprendizaje profundo requieren cantidades masivas de datos etiquetados para que el algoritmo de procesamiento del lenguaje natural se entrene e identifique correlaciones relevantes, y ensamblar este tipo de conjunto de grandes datos es uno de los principales obstáculos para el procesamiento del lenguaje natural.
Los enfoques anteriores del procesamiento del lenguaje natural implicaban un enfoque más basado en reglas, en el cual a algoritmos de aprendizaje automático más simples se les decía qué palabras y frases buscar en el texto y se les daban respuestas específicas cuando aparecían esas frases. Pero el aprendizaje profundo es un enfoque más flexible e intuitivo en el que los algoritmos aprenden a identificar la intención de los hablantes a partir de muchos ejemplos, casi de la misma manera que un niño aprendería el lenguaje humano.
Tres herramientas que se utilizan comúnmente para el procesamiento del lenguaje natural incluyen Natural Language Toolkit (NLTK), Gensim e Intel Natural Language Processing Architect. NLTK es un módulo Python de código abierto con conjuntos de datos y tutoriales. Gensim es una biblioteca de Python para modelado de temas e indexación de documentos. Intel NLP Architect es otra biblioteca de Python para topologías y técnicas de aprendizaje profundo.
¿Para qué se utiliza el procesamiento del lenguaje natural?
Algunas de las principales funciones que realizan los algoritmos de procesamiento del lenguaje natural son:
- Clasificación de textos. Se trata de asignar etiquetas a los textos para clasificarlos en categorías. Esto puede resultar útil para el análisis de sentimientos, que ayuda al algoritmo de procesamiento del lenguaje natural a determinar el sentimiento o emoción detrás de un texto. Por ejemplo, cuando la marca A se menciona en X cantidad de textos, el algoritmo puede determinar cuántas de esas menciones fueron positivas y cuántas negativas. También puede resultar útil para la detección de intenciones, lo que ayuda a predecir lo que el hablante o el escritor puede hacer en función del texto que está produciendo.
- Extracción de texto. Esto implica resumir texto automáticamente y encontrar datos importantes. Un ejemplo de esto es la extracción de palabras clave, que extrae las palabras más importantes del texto, lo que puede resultar útil para la optimización de motores de búsqueda. Hacer esto con procesamiento de lenguaje natural requiere algo de programación, no está completamente automatizado. Sin embargo, existen muchas herramientas sencillas de extracción de palabras clave que automatizan la mayor parte del proceso: el usuario sólo tiene que establecer parámetros dentro del programa. Por ejemplo, una herramienta podría extraer las palabras más utilizadas en el texto. Otro ejemplo es el reconocimiento de entidades denominadas, que extrae los nombres de personas, lugares y otras entidades del texto.
- Traducción automática. Este es el proceso mediante el cual una computadora traduce texto de un idioma, como el inglés, a otro idioma, como el francés, sin intervención humana.
- Generación de lenguaje natural. Esto implica el uso de algoritmos de procesamiento de lenguaje natural para analizar datos no estructurados y producir automáticamente contenido basado en esos datos. Un ejemplo de esto son los modelos de lenguaje como GPT3, que son capaces de analizar un texto no estructurado y luego generar artículos creíbles basados en el texto.
Las funciones enumeradas anteriormente se utilizan en una variedad de aplicaciones del mundo real, que incluyen:
- análisis de comentarios de los clientes: la IA analiza las reseñas de las redes sociales;
- automatización del servicio al cliente: los asistentes de voz al otro lado de una línea telefónica de servicio al cliente pueden utilizar el reconocimiento de voz para comprender lo que dice el cliente, de modo que puedan dirigir la llamada correctamente;
- traducción automática: utilizando herramientas como Google Translate, Bing Translator y Translate Me;
- investigación y análisis académicos: la IA es capaz de analizar enormes cantidades de material académico y artículos de investigación no sólo en función de los metadatos del texto, sino del texto mismo;
- análisis y categorización de registros médicos: la IA utiliza conocimientos para predecir e idealmente prevenir enfermedades;
- procesadores de texto utilizados para plagio y corrección de pruebas: utilizando herramientas como Grammarly y Microsoft Word;
- pronóstico de acciones e información sobre el comercio financiero: uso de inteligencia artificial para analizar el historial del mercado y documentos 10-K, que contienen resúmenes completos sobre el desempeño financiero de una empresa;
- reclutamiento de talento en recursos humanos; y
- automatización de tareas rutinarias de litigios: un ejemplo es el abogado de inteligencia artificial.
Las investigaciones que se realizan sobre el procesamiento del lenguaje natural giran en torno a la búsqueda, especialmente la búsqueda empresarial. Esto implica que los usuarios consulten conjuntos de datos en forma de una pregunta que podrían plantear a otra persona. La máquina interpreta los elementos importantes de la oración del lenguaje humano, que corresponden a características específicas de un conjunto de datos, y devuelve una respuesta.
El PLN se puede utilizar para interpretar texto libre y no estructurado y hacerlo analizable. Hay una enorme cantidad de información almacenada en archivos de texto libre, como los registros médicos de los pacientes. Antes de los modelos de PLN basados en el aprendizaje profundo, esta información era inaccesible al análisis asistido por computadora y no podía analizarse de ninguna manera sistemática. Con el PLN, los analistas pueden examinar grandes cantidades de texto libre para encontrar información relevante.
El análisis de sentimientos es otro caso de uso principal del PLN. Mediante el análisis de sentimientos, los científicos de datos pueden evaluar los comentarios en las redes sociales para ver cómo se está desempeñando la marca de su empresa, o revisar notas de los equipos de servicio al cliente para identificar áreas donde las personas quieren que la empresa funcione mejor.
Beneficios del procesamiento del lenguaje natural
El principal beneficio del PLN es que mejora la forma en que los humanos y las computadoras se comunican entre sí. La forma más directa de manipular una computadora es a través del código, el lenguaje de la computadora. Al permitir que las computadoras comprendan el lenguaje humano, la interacción con las computadoras se vuelve mucho más intuitiva para los humanos.
Otros beneficios incluyen:
- mayor precisión y eficiencia de la documentación;
- capacidad de hacer automáticamente un resumen legible de un texto original más grande y complejo;
- útil para asistentes personales como Alexa, al permitirle comprender la palabra hablada;
- permite a una organización utilizar chatbots para atención al cliente;
- más fácil de realizar análisis de sentimiento; y
- proporciona información avanzada a partir de análisis que antes eran inalcanzables debido al volumen de datos.
Desafíos del procesamiento del lenguaje natural
Hay una serie de desafíos en el procesamiento del lenguaje natural y la mayoría de ellos se reducen al hecho de que el lenguaje natural está en constante evolución y siempre es algo ambiguo. Incluyen:
- Precisión. Las computadoras tradicionalmente requieren que los humanos les "hablen" en un lenguaje de programación que sea preciso, inequívoco y altamente estructurado, o mediante un número limitado de comandos de voz claramente enunciados. Sin embargo, el habla humana no siempre es precisa; a menudo es ambiguo y la estructura lingüística puede depender de muchas variables complejas, incluida la jerga, los dialectos regionales y el contexto social.
- Tono de voz e inflexión. El procesamiento del lenguaje natural aún no se ha perfeccionado. Por ejemplo, el análisis semántico todavía puede ser un desafío. Otras dificultades incluyen el hecho de que el uso abstracto del lenguaje suele ser complicado de entender para los programas. Por ejemplo, el procesamiento del lenguaje natural no capta fácilmente el sarcasmo. Estos temas suelen requerir comprender las palabras que se utilizan y su contexto en una conversación. Como otro ejemplo, una oración puede cambiar de significado dependiendo de la palabra o sílaba en la que el hablante ponga énfasis. Los algoritmos de PLN pueden pasar por alto los cambios de tono sutiles, pero importantes, en la voz de una persona al realizar el reconocimiento de voz. El tono y la inflexión del habla también pueden variar entre diferentes acentos, lo que puede resultar difícil de analizar para un algoritmo.
- Uso evolucionado del lenguaje. El procesamiento del lenguaje natural también se ve desafiado por el hecho de que el lenguaje –y la forma en que la gente lo usa– cambia continuamente. Aunque existen reglas en el lenguaje, ninguna está escrita en piedra y están sujetas a cambios con el tiempo. Las reglas computacionales estrictas que funcionan ahora pueden volverse obsoletas a medida que las características del lenguaje del mundo real cambian con el tiempo.
La evolución del procesamiento del lenguaje natural
El PLN se basa en una variedad de disciplinas, incluidas las ciencias de la computación y los desarrollos de la lingüística computacional que se remontan a mediados del siglo XX. Su evolución incluyó los siguientes hitos importantes:
- Década de 1950. El procesamiento del lenguaje natural tiene sus raíces en esta década, cuando Alan Turing desarrolló el Test de Turing para determinar si una computadora es verdaderamente inteligente o no. La prueba implica la interpretación automatizada y la generación de lenguaje natural como criterio de inteligencia.
- Década de 1950-1990. La PNL se basaba en gran medida en reglas y utilizaba reglas elaboradas a mano y desarrolladas por lingüistas para determinar cómo las computadoras procesarían el lenguaje.
- Década de 1990. El enfoque de arriba hacia abajo, que daba prioridad al lenguaje para el procesamiento del lenguaje natural, fue reemplazado por un enfoque más estadístico, porque los avances en la informática hicieron de esta una forma más eficiente de desarrollar la tecnología de PLN. Las computadoras se estaban volviendo más rápidas y podían usarse para desarrollar reglas basadas en estadísticas lingüísticas sin que un lingüista creara todas las reglas. El procesamiento del lenguaje natural basado en datos se volvió común durante esta década. El procesamiento del lenguaje natural pasó de un enfoque basado en los lingüistas a un enfoque basado en los ingenieros, recurriendo a una variedad más amplia de disciplinas científicas en lugar de profundizar en la lingüística.
- Décadas de 2000-2020. El procesamiento del lenguaje natural experimentó un crecimiento espectacular en popularidad como término. Con los avances en la potencia informática, el procesamiento del lenguaje natural también ha adquirido numerosas aplicaciones en el mundo real. Hoy en día, los enfoques del PLN implican una combinación de lingüística clásica y métodos estadísticos.
El procesamiento del lenguaje natural juega un papel vital en la tecnología y la forma en que los humanos interactúan con ella. Se utiliza en muchas aplicaciones del mundo real, tanto en el ámbito empresarial como en el del consumidor, incluidos chatbots, ciberseguridad, motores de búsqueda y análisis de big data. Aunque no está exenta de desafíos, se espera que el PLN continúe siendo una parte importante tanto de la industria como de la vida cotidiana.