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.

Temas relacionados