¿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).
El PLN existe desde hace más de 50 años y tiene sus raíces en el campo de la lingüística. Tiene diversas aplicaciones reales en numerosos campos, como la investigación médica, los motores de búsqueda y la inteligencia empresarial.
La PLN utiliza enfoques basados en reglas o en el aprendizaje automático para comprender la estructura y el significado del texto. Desempeña un papel importante en chatbots, asistentes de voz, programas de escaneado basados en texto, aplicaciones de traducción y software empresarial que ayuda en las operaciones de negocio, aumenta la productividad y simplifica diferentes procesos.
¿Cómo funciona el procesamiento del lenguaje natural?
El PLN utiliza muchas técnicas diferentes para que las computadoras comprendan el lenguaje natural como lo hacen los humanos. Ya sea hablado o escrito, el procesamiento de lenguaje natural puede utilizar la inteligencia artificial para tomar datos del mundo real, procesarlos y darles sentido de forma que una computadora pueda entenderlos. Del mismo modo que los humanos tienen diferentes sensores -oídos para oír y ojos para ver-, las computadoras tienen programas para leer y micrófonos para recoger el audio. Y al igual que 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.
El procesamiento del lenguaje natural consta de dos fases principales: el preprocesamiento de datos y el desarrollo de algoritmos.
El preprocesamiento de datos consiste en preparar y limpiar los datos de texto para que las máquinas puedan analizarlos. El preprocesamiento da a los datos una forma viable y resalta las características del texto con las que puede trabajar un algoritmo. Hay varias formas de hacerlo, entre ellas las siguientes:
- Tokenización. La tokenización sustituye la información sensible por información no sensible, o un token. La tokenización se utiliza a menudo en las transacciones de pago para proteger los datos de las tarjetas de crédito.
- Eliminación de palabras vacías. Se eliminan del texto las palabras comunes para que queden las palabras únicas que ofrecen más información sobre el texto.
- Lematización y derivación. La lematización agrupa diferentes versiones flexionadas de la misma palabra. Por ejemplo, la palabra «caminando» se reduciría a su forma raíz, o tallo, «caminar» para procesarla.
- Etiquetado por parte de la oración. Las palabras se etiquetan en función de la parte de la oración a la que corresponden (sustantivos, verbos o adjetivos).
Una vez preprocesados los datos, se desarrolla un algoritmo para procesarlos. Hay muchos algoritmos diferentes de procesamiento del lenguaje natural, pero los dos tipos principales que se utilizan habitualmente son los siguientes:
- Sistema basado en reglas. Este sistema utiliza reglas lingüísticas cuidadosamente diseñadas. Este enfoque se utilizó al principio del desarrollo del procesamiento del lenguaje natural y se sigue utilizando.
- Sistema basado en el aprendizaje automático. Los algoritmos de aprendizaje automático utilizan métodos estadísticos. Aprenden a realizar tareas basándose en los datos de entrenamiento que reciben y ajustan sus métodos a medida que procesan más datos. Mediante una combinación de aprendizaje automático, aprendizaje profundo y redes neuronales, los algoritmos de procesamiento del lenguaje natural perfeccionan sus propias reglas a través del procesamiento y el aprendizaje repetidos.
¿Por qué es importante el procesamiento del lenguaje natural?
Las empresas utilizan grandes cantidades de datos no estructurados y cargados de texto, y necesitan una forma de procesarlos de manera eficiente. Gran parte de la información creada en Internet y almacenada en bases de datos es lenguaje humano natural y, hasta hace poco, las empresas no podían analizar eficazmente estos datos. Aquí es donde resulta útil el procesamiento del lenguaje natural.
Las ventajas del procesamiento del lenguaje natural pueden apreciarse al considerar las dos afirmaciones siguientes: «El seguro de computación en nube debería formar parte de todo acuerdo de nivel de servicio» y «Un buen acuerdo de nivel de servicio (ANS) garantiza una noche de sueño más fácil — incluso en la nube». Si un usuario confía en el procesamiento del lenguaje natural para la búsqueda, el programa reconocerá que la computación en nube es una entidad, que nube es una forma abreviada de computación en nube y que ANS es un acrónimo de la industria para 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 interpretado mal. Ahora, con las mejoras en el aprendizaje profundo y los métodos de aprendizaje automático, los algoritmos pueden interpretarlos eficazmente. Estas mejoras amplían la amplitud y profundidad de los datos que pueden analizarse.
Del mismo modo, el PLN es útil por las mismas razones que cuando una persona interactúa con un chatbot de IA generativa o un asistente de voz de IA. En lugar de tener que utilizar un lenguaje específico predefinido, un usuario podría interactuar con un asistente de voz como Siri en su teléfono utilizando su dicción habitual, y su asistente de voz seguirá siendo capaz de entenderle.
Técnicas y métodos de procesamiento del lenguaje natural
El análisis sintáctico y el semántico son dos de las principales técnicas utilizadas en el procesamiento del lenguaje natural.
La sintaxis es la disposición de las palabras en una frase para que tenga sentido gramatical. El PLN utiliza la sintaxis para evaluar el significado de un lenguaje basándose en reglas gramaticales. Las técnicas de PLN sintácticas son las siguientes:
- Análisis sintáctico. Es el análisis gramatical de una frase. Por ejemplo, un algoritmo de procesamiento del lenguaje natural recibe la frase «El perro ladró». El análisis sintáctico consiste en dividir la frase en partes de la oración: perro = sustantivo, ladró = verbo. Esto es útil para tareas de procesamiento posteriores más complejas.
- Segmentación de palabras. Consiste en tomar una cadena de texto y derivar de ella formas de palabras. Por ejemplo, una persona escanea un documento manuscrito en un ordenador. El algoritmo puede analizar la página y reconocer que las palabras están divididas por espacios en blanco.
- Romper frases. Permite delimitar frases en textos extensos. Por ejemplo, un algoritmo de procesamiento del lenguaje natural recibe el texto «El perro ladró. Me he despertado». El algoritmo puede utilizar la separación de frases para reconocer el punto que divide las frases.
- Segmentación morfológica. Divide las palabras en partes más pequeñas llamadas morfemas. Por ejemplo, la palabra untestably se dividiría en [[un[[test]able]]ly]], donde el algoritmo reconoce «un», «test», «able» y «ly» como morfemas. Esto es especialmente útil en la traducción automática y el reconocimiento del habla.
- Stemming. Divide las palabras con inflexión en raíces. Por ejemplo, en la frase «El perro ladró», el algoritmo reconocería que la raíz de la palabra «ladró» es «ladrar». Esto es útil si un usuario está analizando el texto en busca de todas las instancias de la palabra ladrar, así como de todas sus conjugaciones. El algoritmo puede ver que son esencialmente la misma palabra aunque las letras sean diferentes.
La semántica tiene que ver con el uso y el significado de las palabras. El procesamiento del lenguaje natural aplica algoritmos para comprender el significado y la estructura de las frases. Entre las técnicas semánticas se incluyen las siguientes:
- Desambiguación del sentido de las palabras. Deduce el significado de una palabra basándose en el contexto. Por ejemplo, considere la frase «El cerdo está en el corral». La palabra corral tiene varios significados. Un algoritmo que utilice este método puede entender que el uso de la palabra aquí se refiere a un área cercada, no a un cercado que se hace en los ríos.
- Reconocimiento de entidades nombradas (ó NER, por sus siglas en inglés). El NER determina las palabras que pueden clasificarse en grupos. Por ejemplo, un algoritmo que utilice este método podría analizar un artículo de prensa e identificar todas las menciones a una determinada empresa o producto. Utilizando la semántica del texto, podría diferenciar entre entidades que son visualmente iguales. Por ejemplo, en la frase «El hijo de Daniel McDonald’s fue a McDonald’s y pidió un Happy Meal», el algoritmo podría reconocer las dos instancias de «McDonald’s» como dos entidades distintas: una un restaurante y otra una persona.
- Generación de lenguaje natural (ó NLG, por sus siglas en inglés). El NLG utiliza una base de datos para determinar la semántica de las palabras y generar texto nuevo. Por ejemplo, un algoritmo podría escribir automáticamente un resumen de los resultados de una plataforma de inteligencia empresarial (BI), asignando ciertas palabras y frases a características de los datos de la plataforma BI. Otro ejemplo sería la generación automática de artículos de noticias o tweets basados en un determinado cuerpo de texto utilizado para el entrenamiento.
Los enfoques actuales del 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 grandes cantidades de datos etiquetados para que el algoritmo de procesamiento del lenguaje natural se entrene e identifique correlaciones relevantes, y reunir este tipo de grandes conjuntos de datos es uno de los principales obstáculos para el procesamiento del lenguaje natural.
Las primeras aproximaciones al procesamiento del lenguaje natural se basaban más en reglas, en las que a los algoritmos de aprendizaje automático más sencillos se les indicaba qué palabras y frases debían 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 como un niño aprendería el lenguaje humano.
Tres herramientas de código abierto utilizadas habitualmente para el procesamiento del lenguaje natural son Natural Language Toolkit (NLTK), Gensim y NLP Architect de Intel. NLTK es un módulo de Python con conjuntos de datos y tutoriales. Gensim es una biblioteca de Python para el modelado de temas y la indexación de documentos. NLP Architect de Intel es una 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 y tareas de PLN que realizan los algoritmos de procesamiento del lenguaje natural son las siguientes:
- Clasificación de textos. Esta función asigna etiquetas a los textos para clasificarlos. Esto puede ser útil para el análisis de sentimientos, que ayuda al algoritmo de procesamiento del lenguaje natural a determinar el sentimiento, o la emoción, que hay detrás de un texto. Por ejemplo, cuando se menciona la marca A en X número de textos, el algoritmo puede determinar cuántas de esas menciones eran positivas y cuántas negativas. También puede ser útil para la detección de intenciones, que ayuda a predecir lo que el hablante o escritor podría hacer basándose en el texto que está produciendo.
- Extracción de texto. Esta función resume automáticamente el texto y encuentra datos importantes. Un ejemplo es la extracción de palabras clave, que extrae las palabras más importantes del texto, lo que puede ser útil para la optimización de motores de búsqueda. Hacer esto con el procesamiento del lenguaje natural requiere algo de programación: no está completamente automatizado. Sin embargo, hay muchas herramientas sencillas de extracción de palabras clave que automatizan la mayor parte del proceso: el usuario sólo tiene que establecer los parámetros dentro del programa. Por ejemplo, una herramienta puede extraer las palabras más frecuentes del texto. Otro ejemplo es el reconocimiento de entidades, que extrae los nombres de personas, lugares y otras entidades del texto.
- Traducción automática. En este proceso, una computadora traduce un texto de un idioma, como el inglés, a otro, como el francés, sin intervención humana.
- Generación de lenguaje natural. Este proceso utiliza algoritmos de procesamiento del lenguaje natural para analizar datos no estructurados y producir automáticamente contenidos basados en ellos. Un ejemplo de ello son los modelos lingüísticos como el Generative Pre-trained Transformer (GPT-3) de tercera generación, que puede analizar texto no estructurado y luego generar artículos creíbles basados en ese texto.
Las funciones mencionadas se utilizan en diversas aplicaciones del mundo real, entre ellas las siguientes:
- Análisis de opiniones de clientes. Las herramientas que utilizan IA pueden analizar reseñas en redes sociales y filtrar comentarios y consultas para una empresa.
- Automatización del servicio de atención al cliente. Los asistentes de voz de una línea telefónica de atención al cliente pueden utilizar el reconocimiento del habla para entender lo que dice el cliente y dirigir su llamada correctamente.
- Traducción automática. Herramientas como Google Translate, Bing Translator y Translate Me pueden traducir texto, audio y documentos a otro idioma.
- Análisis e investigación académica. Las herramientas que utilizan IA pueden analizar enormes cantidades de material académico y documentos de investigación basándose en los metadatos del texto, así como en el propio texto.
- Análisis y categorización de historiales médicos. Las herramientas basadas en IA pueden utilizar la información para predecir e, idealmente, prevenir enfermedades.
- Detección de plagios. Herramientas como Copyleaks y Grammarly utilizan tecnología de IA para escanear documentos y detectar coincidencias de texto y plagios.
- Predicción bursátil y análisis del mercado financiero. Las herramientas de PLN pueden analizar el historial bursátil y los informes anuales que contienen resúmenes exhaustivos de los resultados financieros de una empresa.
- Captación de talento en recursos humanos. Las organizaciones pueden utilizar herramientas basadas en IA para reducir el tiempo de contratación automatizando el proceso de búsqueda y selección de candidatos.
- Automatización de litigios rutinarios. Las herramientas basadas en IA pueden investigar, identificar posibles problemas y resumir casos más rápidamente que los abogados humanos.
- Detección de spam. Las herramientas basadas en PLN pueden utilizarse para clasificar texto en busca de lenguaje que se utiliza a menudo en el spam o los intentos de phishing. Por ejemplo, estas herramientas pueden detectar errores gramaticales, nombres mal escritos, llamadas urgentes a la acción y términos amenazadores.
Beneficios del procesamiento del lenguaje natural
La principal ventaja del PLN es que mejora la comunicación entre humanos y computadoras. La forma más directa de manipular una computadora es a través del código, su lenguaje. Permitir que los computadoras entiendan el lenguaje humano hace que interactuar con ellos sea mucho más intuitivo para los humanos.
Otros beneficios incluyen los siguientes:
- Mejora la precisión y eficacia de la documentación.
- Permite a una organización utilizar chatbots para la atención al cliente.
- Proporciona a una organización la capacidad de hacer automáticamente un resumen legible de un texto original más amplio y complejo.
- Permite a las organizaciones analizar datos estructurados y no estructurados.
- Permite a asistentes personales como Alexa entender la palabra hablada.
- Facilita a las organizaciones el análisis de sentimientos.
- Las organizaciones pueden utilizar el PLN para comprender mejor la generación de prospectos, las publicaciones en redes sociales, las encuestas y las reseñas.
- Proporciona conocimientos avanzados de análisis que antes eran inalcanzables debido al volumen de datos.
Desafíos del procesamiento del lenguaje natural
El procesamiento del lenguaje natural plantea numerosos retos, la mayoría de los cuales se reducen al hecho de que el lenguaje natural está en constante evolución y es algo ambiguo. Entre ellos están los siguientes:
- Precisión. Tradicionalmente, las computadoras requieren que los humanos les hablen en un lenguaje de programación preciso, inequívoco y muy 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 muchas variables complejas, como 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 puede seguir siendo un reto. Otras dificultades son que el uso abstracto del lenguaje suele ser difícil y complejo de entender para los programas. Por ejemplo, el procesamiento del lenguaje natural no capta fácilmente el sarcasmo. Estos temas suelen requerir entender las palabras que se utilizan y su contexto en una conversación. Además, una frase puede cambiar de significado dependiendo de la palabra o sílaba en la que el hablante ponga el acento. Los algoritmos de PLN pueden pasar por alto los sutiles pero importantes cambios de tono en la voz de una persona al realizar el reconocimiento del habla. El tono y la inflexión del habla también pueden variar de un acento a otro, lo que puede suponer un reto para un algoritmo.
- Evolución del uso del lenguaje. El procesamiento del lenguaje natural también se enfrenta al reto de que la lengua -y la forma en que la gente la utiliza- cambia continuamente. Aunque hay reglas para el lenguaje, ninguna está escrita en piedra y están sujetas a cambios con el tiempo. Las reglas computacionales que funcionan ahora pueden quedar obsoletas, ya que las características del lenguaje real cambian con el tiempo.
- Sesgo. Los sistemas de PLN pueden estar sesgados cuando sus procesos reflejan los sesgos que aparecen en sus datos de entrenamiento. Este es un problema en los campos médicos y en los puestos de contratación, donde una persona puede ser discriminada.
Evolución del procesamiento del lenguaje natural
El PLN se basa en diversas disciplinas, como la informática y la lingüística computacional, y sus avances se remontan a mediados del siglo XX. Su evolución incluye los siguientes grandes hitos:
- Década de 1950. El procesamiento del lenguaje natural tiene sus raíces en esta década, cuando Alan Turing desarrolló la Prueba de Turing para determinar si una computadora es realmente inteligente. La prueba implica la interpretación automatizada y la generación de lenguaje natural como criterio de inteligencia.
- Década de 1950-1990. El PLN se basaba en gran medida en reglas, elaboradas a mano por lingüistas para determinar cómo procesarían el lenguaje las computadoras. El experimento Georgetown-IBM de 1954 se convirtió en una notable demostración de traducción automática, al traducir automáticamente más de 60 frases del ruso al inglés. En las décadas de 1980 y 1990 se desarrollaron el análisis sintáctico basado en reglas, la morfología, la semántica y otras formas de comprensión del lenguaje natural.
- Década de 1990. El enfoque descendente del procesamiento del lenguaje natural, basado en el lenguaje, se sustituye por un enfoque más estadístico, ya que los avances informáticos hacen que el desarrollo de la tecnología de PLN sea más eficaz. Las computadoras eran cada vez más rápidos y podían utilizarse para desarrollar reglas basadas en estadísticas lingüísticas sin necesidad de que un lingüista creara todas las reglas. El procesamiento del lenguaje natural basado en datos se generalizó durante esta década. El procesamiento del lenguaje natural pasó de un enfoque basado en la lingüística a otro basado en la ingeniería, recurriendo a una mayor variedad de disciplinas científicas en lugar de ahondar en la lingüística.
- Década de 2000-2020. La popularidad del término «procesamiento del lenguaje natural» creció de forma espectacular. También se exploraron los procesos de PLN que utilizan algoritmos de aprendizaje automático no supervisados y semi-supervisados. Con los avances en potencia informática, el procesamiento del lenguaje natural también ha adquirido numerosas aplicaciones en el mundo real. El PLN también empezó a impulsar otras aplicaciones como los chatbots y los asistentes virtuales. Hoy en día, los enfoques de la PLN implican una combinación de lingüística clásica y métodos estadísticos.
El procesamiento del lenguaje natural desempeña un papel vital en la tecnología y en la forma en que los seres humanos interactúan con ella. Aunque tiene sus retos, se espera que el PLN sea más precisa con modelos más sofisticados, más accesible y más relevante en numerosas industrias. El PLN seguirá siendo una parte importante tanto de la industria como de la vida cotidiana.