Procesamiento del lenguaje natural

Introducción al procesamiento del lenguaje natural (PLN)

3 cosas que debe saber

El procesamiento del lenguaje natural (PLN) es una rama de la inteligencia artificial (IA) que enseña a equipos informáticos a comprender el lenguaje humano verbal y escrito. El procesamiento del lenguaje natural combina lingüística computacional con Machine Learning y Deep Learning para procesar datos del habla y texto. También se puede utilizar con otros tipos de datos para desarrollar sistemas de ingeniería inteligentes.

Cómo funciona el procesamiento del lenguaje natural

El objetivo del procesamiento del lenguaje natural es transformar datos de lenguaje no estructurados a un formato estructurado que las máquinas puedan usar para interpretar datos del habla y texto, descubrir y visualizar relaciones complejas en conjuntos de datos de gran tamaño, y generar nuevos datos de lenguaje.

Los datos de lenguaje humano no procesados pueden provenir de varias fuentes, tales como señales de audio, web y redes sociales, documentos y bases de datos. Los datos contienen información valiosa, como comandos por voz, sentimiento público sobre ciertos temas, datos de funcionamiento, e informes de mantenimiento. El procesamiento del lenguaje natural puede combinar y simplificar estas fuentes de datos de gran tamaño, y transformarlas en visualizaciones y modelos de temas obtener nuevas perspectivas.

Introducción de datos del habla y texto en un modelo de IA para procesamiento del lenguaje natural.

El procesamiento del lenguaje natural combina lingüística computacional y modelado con IA para interpretar datos de habla y texto.

Para realizar procesamiento del lenguaje natural en datos del habla, detecte la presencia de habla humana en un segmento de audio, realice transcripción de habla a texto, y aplique técnicas de minería de textos y Machine Learning al texto derivado.

Preparación de datos para procesamiento del lenguaje natural

Estas son algunas técnicas utilizadas en el procesamiento del lenguaje natural para convertir texto de formato no estructurado a formato estructurado:

Tokenización: Por lo general, este es el primer paso en el procesamiento de texto para procesamiento del lenguaje natural. Se refiere a dividir el texto en oraciones o palabras.

Stemming: Esta técnica de normalización de texto elimina afijos para reducir las palabras a su raíz. Emplea reglas heurísticas simples, y puede generar palabras incorrectas que no existen en los diccionarios.

Lematización: Esta técnica sofisticada de normalización de texto utiliza vocabulario y análisis morfológico para eliminar los afijos de las palabras. Por ejemplo, “edificio tiene pisos” se reduce a “edificar tener piso”.

Word2vec: La técnica más popular de word embedding es Word2vec. Crea una representación distribuida de palabras en vectores numéricos, que capturan semántica y relaciones entre palabras.

Modelado de n-gramas: Un n-grama es un conjunto de n elementos consecutivos en un documento de texto, que puede incluir palabras, números, símbolos y puntuación. Los modelos de n-gramas son útiles en muchas aplicaciones de procesamiento del lenguaje natural en las que la secuencia de palabras es relevante, tales como análisis de sentimiento, clasificación de texto y generación de texto.

Procesamiento del lenguaje natural con IA

Los modelos de IA entrenados con datos lingüísticos pueden reconocer patrones y predecir caracteres o palabras subsiguientes en una oración. Para crear modelos de procesamiento del lenguaje natural, puede utilizar algoritmos de Machine Learning clásicos, tales como regresión logística y árboles de decisión, o arquitecturas de Deep Learning, tales como redes neuronales convolucionales (CNN), redes neuronales recurrentes (RNN) y autoencoders. Por ejemplo, puede utilizar las CNN para clasificar texto, y las RNN para generar una secuencia de caracteres.

Los modelos de transformador (un tipo de modelo de Deep Learning) revolucionaron el procesamiento del lenguaje natural, y son la base de modelos de lenguaje de gran tamaño (LLM) como BERT y ChatGPT™. Los transformadores están diseñados para realizar un seguimiento de las relaciones entre los componentes de una secuencia. Se basan en un mecanismo de autoatención para capturar dependencias globales entre entradas y salidas.

En el contexto del procesamiento del lenguaje natural, esto permite a los LLM capturar dependencias a largo plazo, relaciones complejas entre palabras y matices presentes en el lenguaje natural. Los LLM pueden procesar todas las palabras en paralelo, lo que acelera el entrenamiento y la inferencia.

Al igual que con otros modelos de Deep Learning previamente entrenados, puede realizar transferencia del aprendizaje con LLM previamente entrenados para resolver un problema particular de procesamiento del lenguaje natural. Por ejemplo, puede ajustar un modelo BERT para texto japonés.

Por qué es importante el procesamiento del lenguaje natural

El procesamiento del lenguaje natural enseña a las máquinas a comprender y generar lenguaje humano. Sus aplicaciones son muchas y, a medida que evoluciona la tecnología de IA, aumenta el uso del procesamiento del lenguaje natural, desde tareas cotidianas hasta flujos de trabajo de ingeniería avanzada.

Algunas tareas comunes del procesamiento del lenguaje natural son reconocimiento del habla, reconocimiento de locutores, mejora de la calidad del habla y reconocimiento de entidades nombradas. En un subconjunto del procesamiento del lenguaje natural, denominado comprensión del lenguaje natural (CLN), puede utilizar análisis sintáctico y semántico de habla y texto para extraer el significado de una oración. Las tareas de CLN incluyen clasificación de documentos y análisis de sentimiento.

Resultados de tareas de PLN. A la izquierda, se reconocen cinco locutores diferentes en una señal de audio. A la derecha, nubes de palabras clasificadas como positivas y negativas.

El reconocimiento de locutores y el análisis de sentimiento son tareas comunes en el procesamiento del lenguaje natural.

Otra subárea del procesamiento del lenguaje natural, denominada generación de lenguaje natural (GLN), abarca métodos utilizados por los equipos informáticos para producir una respuesta de texto a partir de una entrada de datos. Si bien la GLN comenzó siendo generación de texto basada en plantillas, las técnicas de IA han permitido la generación dinámica de texto en tiempo real. Entre las tareas de GLN se encuentran el resumen de textos y la traducción automática.

Las dos áreas principales del procesamiento del lenguaje natural (PLN) son la comprensión del lenguaje natural (CLN) y la generación de lenguaje natural (GLN).

Procesamiento del lenguaje natural y sus subáreas.

El procesamiento del lenguaje natural se utiliza en finanzas, fabricación, electrónica, software, tecnología informática y otros sectores, para aplicaciones de:

  • Automatización de la clasificación de reseñas en función de sentimiento positivo o negativo
  • Recuento de la frecuencia de palabras o frases en documentos y modelado de temas
  • Automatización del etiquetado de grabaciones de habla
  • Desarrollo de programas de mantenimiento predictivo basados en datos de sensores y registros de texto
  • Automatización de la formalización de requisitos y comprobación de conformidad

Procesamiento del lenguaje natural con MATLAB

MATLAB permite crear cadenas de tareas de procesamiento del lenguaje natural, desde preparación de datos hasta despliegue. Utilizando Deep Learning Toolbox™ o Statistics and Machine Learning Toolbox™ con Text Analytics Toolbox™, puede realizar procesamiento del lenguaje natural en datos de texto. Si utiliza también Audio Toolbox™, puede realizar procesamiento del lenguaje natural en datos del habla.

El flujo de trabajo completo de PLN incluye acceder a datos de texto y explorarlos, preprocesarlos, desarrollar modelos de predicción, y compartir modelos y conclusiones.

Flujo de trabajo completo de procesamiento del lenguaje natural.

Preparación de datos

Puede utilizar apps de low-code para preprocesar datos del habla para procesamiento del lenguaje natural. La app Signal Analyzer permite explorar y analizar datos, y la app Signal Labeler realiza automáticamente etiquetado de validación ground-truth. Puede utilizar la tarea Extract Audio Features para extraer características específicas del dominio y realizar transformaciones de tiempo-frecuencia. Luego, puede transcribir habla a texto con la función speech2text.

Una vez que tenga datos de texto para aplicar procesamiento del lenguaje natural, puede transformar los datos de lenguaje de formato no estructurados a formato estructurado de manera interactiva, y limpiar los datos con la tarea Preprocess Text Data de Live Editor. Si lo prefiere, puede preparar los datos de PLN de forma programática con funciones integradas.

También puede visualizar datos de texto y modelos para procesamiento del lenguaje natural utilizando nubes de palabras y diagramas de dispersión.

 Limpieza de datos de texto para procesamiento del lenguaje natural. A la izquierda: nube de palabras de datos no procesados. A la derecha: nube de palabras de datos procesados.

Nubes de palabras que ilustran análisis de frecuencia de palabras aplicado a datos de texto no procesados y procesados procedentes de informes de una fábrica.

Modelado con IA

Puede entrenar muchos tipos de modelos de Machine Learning para tareas de clasificación o regresión. Por ejemplo, puede crear y entrenar redes de memoria a corto-largo plazo (LSTM) con unas pocas líneas de código de MATLAB. También puede crear y entrenar modelos de Deep Learning con la app Deep Network Designer, y supervisar el entrenamiento del modelo con gráficas de precisión, pérdida y métricas de validación.

App Deep Network Designer que muestra una red BiLSTM simple que se puede utilizar para procesamiento del lenguaje natural

App Deep Network Designer para crear, visualizar, editar y entrenar redes de PLN interactivamente.

En lugar de crear un modelo de Deep Learning desde cero, puede obtener un modelo previamente entrenado y aplicarlo directamente o adaptarlo a una tarea de procesamiento del lenguaje natural. Con MATLAB, puede acceder a redes previamente entrenadas desde MATLAB Deep Learning Model Hub. Por ejemplo, puede utilizar el modelo VGGish para extraer características integradas de señales de audio, el modelo wav2vec para transcripción de habla a texto, y el modelo BERT para clasificación de documentos. También puede importar modelos desde TensorFlow™ o PyTorch™ con las funciones importNetworkFromTensorFlow o importNetworkFromPyTorch.

Preguntas frecuentes sobre Procesamiento del lenguaje natural

El Procesamiento del lenguaje natural es una rama de la Inteligencia artificial que permite a los ordenadores comprender el lenguaje humano, tanto en su forma escrita como hablada, combinando la lingüística computacional con Machine Learning y Deep Learning.

El Procesamiento del lenguaje natural transforma datos lingüísticos no estructurados en un formato estructurado mediante técnicas de preparación de datos como la tokenización, el stemming y la lematización. A continuación, utiliza modelos de IA para interpretar datos de texto y voz, identificar relaciones y generar nuevos contenidos lingüísticos.

La comprensión del lenguaje natural (NLU) utiliza análisis sintáctico y semántico para extraer el significado de las oraciones en tareas como la clasificación de documentos y el análisis de sentimientos. Por su parte, la generación del lenguaje natural (NLG) engloba los métodos que utilizan los ordenadores para producir respuestas de texto a partir de datos de entrada.

Las aplicaciones más habituales del Procesamiento del lenguaje natural incluyen reconocimiento de voz, reconocimiento de locutores, reconocimiento de entidades nombradas, análisis de sentimientos, clasificación de documentos, resumen automático de texto y traducción automática en sectores como las finanzas, la industria manufacturera y las tecnologías de la información.

Las técnicas de preprocesamiento más comunes incluyen la tokenización (dividir el texto en oraciones o palabras), el stemming (reducir las palabras a su raíz), la lematización (utilizar análisis del vocabulario para eliminar afijos), Word2vec (crear representaciones numéricas de palabras) y el modelado mediante n-gramas.

Los modelos de NLP abarcan desde algoritmos clásicos de Machine Learning, como la regresión logística y los árboles de decisión, hasta arquitecturas de Deep Learning que incluyen redes neuronales convolucionales (CNN), redes neuronales recurrentes (RNN), autoencoders y modelos transformer como BERT y ChatGPT, que constituyen la base de los grandes modelos de lenguaje.

MATLAB permite implementar flujos de trabajo completos de NLP mediante Text Analytics Toolbox para datos textuales y Audio Toolbox para datos de voz. Proporciona herramientas para el preprocesamiento, la extracción de características, el entrenamiento de modelos de Machine Learning y Deep Learning, así como acceso a modelos preentrenados como BERT y VGGish.

El aprendizaje por transferencia permite utilizar grandes modelos de lenguaje preentrenados y adaptarlos para resolver problemas específicos de NLP, por ejemplo ajustando un modelo BERT para un idioma concreto o una tarea de clasificación determinada.