¿Qué es el procesamiento del lenguaje natural?
El procesamiento del lenguaje natural (NLP, por sus siglas en inglés) se refiere a la rama de la informática -y más específicamente, a la rama de la inteligencia artificial (IA)- que se ocupa de darle a las computadoras la capacidad de entender el texto y las palabras habladas de la misma manera que los seres humanos.
NLP combina la lingüística computacional -modelado basado en reglas del lenguaje humano- con modelos estadísticos, de aprendizaje automático y de aprendizaje profundo. En conjunto, estas tecnologías permiten a las computadoras procesar el lenguaje humano en forma de datos de texto o voz y ‘entender’ su significado completo, incluyendo la intención y el sentimiento del hablante o escritor.
NLP impulsa programas de computadora que traducen texto de un idioma a otro, responden a comandos hablados y resumen grandes volúmenes de texto rápidamente, incluso en tiempo real. Es probable que haya interactuado con NLP en forma de sistemas de GPS operados por voz, asistentes digitales, software de dictado de voz a texto, chatbots de servicio al cliente y otras comodidades para el consumidor. Pero NLP también juega un papel cada vez más importante en las soluciones empresariales que ayudan a simplificar las operaciones comerciales, aumentar la productividad de los empleados y simplificar los procesos comerciales críticos.
Tareas de procesamiento del lenguaje natural (NLP)
El lenguaje humano está lleno de ambigüedades que lo hacen increíblemente difícil para escribir software que determine con precisión el significado pretendido de los datos de texto o voz. Homónimos, homófonos, sarcasmo, modismos, metáforas, gramática y excepciones de uso, variaciones en la estructura de las oraciones; solo son algunas de las irregularidades del lenguaje humano que a los humanos les toman años aprender, pero que los programadores deben enseñar a las aplicaciones impulsadas por el lenguaje natural para que las reconozcan y entiendan con precisión desde el principio, si es que esas aplicaciones van a ser útiles.
Varias tareas de NLP desglosan los datos de texto y voz humano de maneras que ayudan a la computadora a comprender lo que está ingiriendo. Algunas de estas tareas incluyen las siguientes:
- El reconocimiento de voz, también llamado texto a voz, es la tarea de convertir de manera confiable los datos de voz en datos de texto. El reconocimiento de voz es necesario para cualquier aplicación que siga comandos de voz o responda preguntas habladas. Lo que hace que el reconocimiento de voz sea especialmente desafiante es la forma en que habla la gente: rápido, mezclando palabras, con énfasis e intonación variables, en diferentes acentos y a menudo utilizando una gramática incorrecta. La etiquetación de parte del discurso, también llamada etiquetado gramatical, es el proceso de determinar la parte del discurso de una palabra o texto en particular en función de su uso y contexto. La parte del discurso identifica «hacer» como un verbo en «Puedo hacer un avión de papel» y como un sustantivo en «¿Qué marca de coche tienes?»
- La tarea de Procesamiento del Lenguaje Natural (NLP, por sus siglas en inglés) es un reto debido a las ambigüedades del lenguaje humano que dificultan la escritura de software capaz de determinar con precisión el significado de los datos de texto o voz. Las homonimias, homófonos, sarcasmo, modismos, metáforas, excepciones gramaticales y de uso, las variaciones en la estructura de las oraciones, son solo algunas de las irregularidades del lenguaje humano que los programadores deben enseñar a las aplicaciones impulsadas por el lenguaje natural para que puedan reconocer y entender con precisión desde el principio, si se espera que esas aplicaciones sean útiles.
- Varias tareas de NLP desglosan el texto y los datos de voz humanos de manera que ayudan a la computadora a dar sentido a lo que está consumiendo. Algunas de estas tareas incluyen lo siguiente:
- La desambiguación del sentido de las palabras es la selección del significado de una palabra con múltiples significados mediante un proceso de análisis semántico que determina la palabra que tiene más sentido en el contexto dado. Por ejemplo, la desambiguación del sentido de las palabras ayuda a distinguir el significado del verbo ‘make’ en ‘make the grade’ (lograr) vs. ‘make a bet’ (hacer una apuesta).
- El reconocimiento de entidades nombradas, o NEM, identifica palabras o frases como entidades útiles. NEM identifica «Kentucky» como una ubicación o «Fred» como el nombre de un hombre.
- La resolución de correferencias es la tarea de identificar si y cuándo dos palabras se refieren a la misma entidad. El ejemplo más común es determinar la persona u objeto al que se refiere un pronombre determinado (por ejemplo, ‘ella’ = ‘Mary’), pero también puede involucrar la identificación de una metáfora o un modismo en el texto (por ejemplo, una instancia en la que ‘bear’ no es un animal sino una persona grande y peluda).
- El análisis de sentimientos intenta extraer cualidades subjetivas, como actitudes, emociones, sarcasmo, confusión, sospecha, del texto.
- La generación de lenguaje natural a veces se describe como lo opuesto al reconocimiento de voz o de texto; es la tarea de poner información estructurada en lenguaje humano.
¿Cómo funciona el procesamiento del lenguaje natural?
El NLP (Natural Language Processing) permite que las computadoras comprendan el lenguaje natural tal como lo hacen los humanos. Ya sea que el lenguaje esté hablado o escrito, el procesamiento del lenguaje natural utiliza la inteligencia artificial para tomar una entrada del mundo real, procesarla y darle sentido de tal manera que una computadora pueda entenderla. Al igual que los humanos tienen diferentes sensores, como los oídos para escuchar y los ojos para ver, las computadoras tienen programas para leer y micrófonos para recopilar audio. Y al igual que los humanos tienen un cerebro para procesar esa entrada, las computadoras tienen un programa para procesar sus entradas respectivas. En algún punto del procesamiento, la entrada se convierte en código que la computadora puede entender.
Hay dos fases principales en el procesamiento del lenguaje natural: el preprocesamiento de datos y el desarrollo de algoritmos.
El preprocesamiento de datos implica preparar y «limpiar» los datos de texto para que las máquinas puedan analizarlos. El preprocesamiento coloca los datos en una forma trabajable y resalta las características del texto con las que un algoritmo puede trabajar. Hay varias formas de hacerlo, incluyendo:
Tokenización: cuando el texto se descompone en unidades más pequeñas para trabajar con ellas. Eliminación de palabras de parada: cuando se eliminan las palabras comunes del texto para que queden las palabras únicas que ofrecen la mayor cantidad de información sobre el texto. Lematización y truncamiento de palabras: cuando las palabras se reducen a sus formas básicas para su procesamiento. Etiquetado de partes del discurso: 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. Hay muchos algoritmos diferentes de procesamiento de lenguaje natural, pero dos tipos principales se utilizan comúnmente:
Sistema basado en reglas: Este sistema utiliza reglas lingüísticas cuidadosamente diseñadas. Este enfoque se utilizó en las primeras etapas del desarrollo del procesamiento del lenguaje natural y aún se utiliza. Sistema basado en aprendizaje automático: Los algoritmos de aprendizaje automático utilizan métodos estadísticos. Aprenden a realizar tareas en función de los datos de entrenamiento que se les proporcionan 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 un procesamiento y aprendizaje repetitivo.
Herramientas y enfoques de NLP
Python y la Natural Language Toolkit (NLTK)
El lenguaje de programación Python proporciona una amplia gama de herramientas y bibliotecas para abordar tareas específicas de procesamiento del lenguaje natural. Muchas de ellas se encuentran en la Natural Language Toolkit, o NLTK, una colección de bibliotecas, programas y recursos educativos de código abierto para construir programas de NLP.
El NLTK incluye bibliotecas para muchas de las tareas de NLP mencionadas anteriormente, así como bibliotecas para subtareas, como análisis de oraciones, segmentación de palabras, reducción y lematización de palabras (métodos para reducir las palabras a sus raíces) y tokenización (para descomponer frases, oraciones, párrafos y pasajes en tokens que ayudan al ordenador a comprender mejor el texto). También incluye bibliotecas para implementar capacidades como el razonamiento semántico, la capacidad de llegar a conclusiones lógicas basadas en hechos extraídos del texto.
En sus inicios, las aplicaciones de NLP eran sistemas codificados a mano que podían realizar ciertas tareas, pero no podían escalar fácilmente para acomodar una cantidad aparentemente interminable de excepciones o el aumento de los volúmenes de datos de voz y texto.
Sin embargo, con la llegada del NLP estadístico, se combinaron algoritmos de computadora con modelos de aprendizaje automático y aprendizaje profundo para extraer, clasificar y etiquetar automáticamente elementos de datos de texto y voz, asignándole a cada posible significado de esos elementos una probabilidad estadística. Hoy en día, los modelos de aprendizaje profundo y las técnicas de aprendizaje basadas en redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN) permiten sistemas de NLP que ‘aprenden’ a medida que trabajan, extrayendo un significado cada vez más preciso de enormes volúmenes de datos de voz y texto no estructurados e sin etiquetar.
Casos de uso de NLP
El procesamiento del lenguaje natural es la fuerza impulsora detrás de la inteligencia artificial en muchas aplicaciones modernas del mundo real. Aquí hay algunos ejemplos:
- Detección de spam: es posible que no pienses en la detección de spam como una solución de NLP, pero las mejores tecnologías de detección de spam utilizan las capacidades de clasificación de texto de NLP para escanear correos electrónicos en busca de lenguaje que a menudo indica spam o phishing. Estos indicadores pueden incluir el uso excesivo de términos financieros, mala gramática característica, lenguaje amenazante, urgencia inapropiada, nombres de empresas mal escritos y más. La detección de spam es uno de los pocos problemas de NLP que los expertos consideran «en su mayoría resueltos» (aunque podrías argumentar que esto no coincide con tu experiencia de correo electrónico).
- Traducción automática: Google Translate es un ejemplo de tecnología NLP ampliamente disponible en acción. La traducción automática realmente útil implica más que reemplazar palabras en un idioma por palabras de otro. La traducción efectiva tiene que capturar con precisión el significado y el tono del idioma de entrada y traducirlo a texto con el mismo significado e impacto deseado en el idioma de salida. Las herramientas de traducción automática están avanzando en términos de precisión. Una excelente manera de probar cualquier herramienta de traducción automática es traducir el texto a un idioma y luego volver al original. Un ejemplo clásico que se cita a menudo: Hace no mucho tiempo, la traducción de «El espíritu está dispuesto pero la carne es débil» del inglés al ruso y de vuelta producía «El vodka es bueno pero la carne está podrida». Hoy en día, el resultado es «El espíritu desea, pero la carne es débil», que no es perfecto, pero inspira mucha más confianza en la traducción del inglés al ruso.
- Agentes virtuales y chatbots: Los agentes virtuales como Siri de Apple y Alexa de Amazon utilizan el reconocimiento de voz para reconocer patrones en comandos de voz y la generación de lenguaje natural para responder con una acción apropiada o comentarios útiles. Los chatbots realizan la misma tarea en respuesta a entradas de texto. Los mejores de ellos también aprenden a reconocer pistas contextuales sobre solicitudes humanas y las usan para proporcionar respuestas u opciones aún mejores con el tiempo. La próxima mejora para estas aplicaciones es la respuesta a preguntas, la capacidad de responder a nuestras preguntas, anticipadas o no, con respuestas relevantes y útiles en sus propias palabras.
- Análisis de sentimientos en las redes sociales: NLP se ha convertido en una herramienta empresarial esencial para descubrir información oculta de los canales de redes sociales. El análisis de sentimientos puede analizar el lenguaje utilizado en publicaciones, respuestas, reseñas y más en las redes sociales para extraer actitudes y emociones en respuesta a productos, promociones y eventos; información que las empresas pueden utilizar en diseños de productos, campañas publicitarias y más.
- Resumir texto es una técnica de procesamiento de lenguaje natural (NLP) que permite digerir grandes volúmenes de texto digital y crear resúmenes y sinopsis para índices, bases de datos de investigación o lectores ocupados que no tienen tiempo para leer el texto completo. Las mejores aplicaciones de sumarización de texto utilizan el razonamiento semántico y la generación de lenguaje natural (NLG) para agregar contexto y conclusiones útiles a los resúmenes.
¿Por qué es importante el procesamiento de lenguaje natural?
Las empresas utilizan grandes cantidades de datos no estructurados y ricos en texto y necesitan una manera eficiente de procesarlos. Gran parte de la información creada en línea y almacenada en bases de datos es lenguaje natural humano, y hasta hace poco, las empresas no podían analizar eficazmente estos datos. Aquí es donde el procesamiento de lenguaje natural resulta útil.
La ventaja del procesamiento de lenguaje natural se puede observar al considerar las siguientes dos declaraciones: «El seguro de computación en la nube debería ser parte de cada acuerdo de nivel de servicio» y «Un buen acuerdo de nivel de servicio garantiza una noche de sueño más tranquila, incluso en la nube». Si un usuario se basa en el procesamiento de lenguaje natural para realizar una búsqueda, el programa reconocerá que la computación en la nube es una entidad, que «nube» es una forma abreviada de «computación en la nube» y que «SLA» es un acrónimo de la industria para «acuerdo de nivel de servicio».
El uso de diagramas en el procesamiento de lenguaje natural Estas son algunas de las áreas clave en las que una empresa puede utilizar el procesamiento de lenguaje natural (NLP). Estos son los tipos de elementos vagos que a menudo aparecen en el lenguaje humano y que los algoritmos de aprendizaje automático históricamente no han sido buenos para interpretar. Ahora, con mejoras en los métodos de aprendizaje profundo y de aprendizaje automático, los algoritmos pueden interpretarlos efectivamente. Estas mejoras amplían la amplitud y profundidad de los datos que se pueden analizar.
Beneficios del procesamiento del lenguaje natural
El principal beneficio del NLP 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 ellas se vuelve mucho más intuitiva para los humanos.
Otros beneficios incluyen:
- Mejora la precisión y eficiencia de la documentación.
- Permite hacer un resumen legible de un texto original más grande y complejo de forma automática.
- Es útil para asistentes personales como Alexa, al permitirle entender la palabra hablada.
- Permite a una organización usar chatbots para el soporte al cliente.
- Es más fácil realizar análisis de sentimiento.
- Proporciona ideas avanzadas de análisis de datos que antes eran inalcanzables debido al volumen de datos.
Desafíos del procesamiento del lenguaje natural
ay varios desafíos del procesamiento del lenguaje natural y la mayoría de ellos se deben al hecho de que el lenguaje natural está en constante evolución y siempre es un tanto ambiguo. Estos desafíos incluyen:
- Precisión: las computadoras tradicionalmente requieren que los humanos «hablen» con ellas en un lenguaje de programación preciso, no ambiguo y altamente estructurado, o a través de un número limitado de comandos de voz claramente enunciados. Sin embargo, el habla humana no siempre es precisa; a menudo es ambigua y la estructura lingüística puede depender de muchos variables complejas, incluyendo jerga, dialectos regionales y contexto social.
- Tono de voz e inflexión: el procesamiento del lenguaje natural aún no está perfeccionado. Por ejemplo, el análisis semántico aún puede ser un desafío. Otras dificultades incluyen el hecho de que el uso abstracto del lenguaje suele ser difícil para que los programas lo entiendan. Por ejemplo, el procesamiento del lenguaje natural no detecta fácilmente el sarcasmo. Estos temas suelen requerir la comprensión de las palabras utilizadas y su contexto en una conversación. Como otro ejemplo, una oración puede cambiar de significado dependiendo de en qué palabra o sílaba enfatice el hablante. Los algoritmos de PLN pueden perder los cambios sutiles, pero importantes, de tono 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 ser un desafío para que un algoritmo los analice.
- Uso en constante evolución del lenguaje: el procesamiento del lenguaje natural también se enfrenta al hecho de que el lenguaje, y la forma en que las personas lo usan, está en constante cambio. Aunque hay reglas para el lenguaje, ninguna está escrita en piedra y están sujetas a cambios con el tiempo. Las reglas de computación duras que funcionan ahora pueden volverse obsoletas a medida que cambian las características del lenguaje del mundo real con el tiempo.