Introducción
NLP o Procesamiento del Lenguaje Natural es una rama de la inteligencia artificial que se ocupa de la interacción entre los ordenadores y el lenguaje humano. El objetivo principal de NLP es permitir que las máquinas comprendan, interpreten y generen texto de manera similar a como lo hacen los humanos. Esto implica la capacidad de procesar, analizar y responder a información escrita o hablada.
En términos simples, NLP busca habilitar a los ordenadores para comprender el significado detrás del lenguaje humano en todas sus complejidades. Esto incluye la capacidad de entender la gramática, el contexto, las ambigüedades, el tono emocional y otros aspectos lingüísticos. Las aplicaciones de NLP son diversas y van desde la traducción automática y la generación de texto hasta la extracción de información, el análisis de sentimientos, el chatbot y la mejora de motores de búsqueda.
Tema 1: Introducción a NLP y sus aplicaciones
1.1. Historia, evolución y áreas de aplicación
El Procesamiento de Lenguaje Natural (NLP) es una rama de la inteligencia artificial que busca que las máquinas comprendan, interpreten y generen lenguaje humano. Sus aplicaciones van desde traducción automática hasta asistentes virtuales.
Historia del NLP
- Inicios (1950-1980): Los primeros enfoques fueron basados en reglas y centrados en traducción automática, con proyectos como ELIZA y SHRDLU. Sin embargo, las limitaciones tecnológicas y conceptuales ralentizaron su avance.
- Técnicas estadísticas (1980-2000): Se introdujeron modelos estadísticos como los Modelos de Markov Ocultos, que permitieron procesar grandes cantidades de datos con más flexibilidad que los sistemas basados en reglas.
- Redes neuronales (2000-presente): La llegada de word embeddings (Word2Vec) y modelos transformadores como BERT y GPT revolucionaron el campo, logrando avances significativos en comprensión y generación de lenguaje.
- Modelos a gran escala (2020-presente): Modelos como GPT-3 han llevado el NLP a nuevas alturas con capacidades sorprendentes en generación de texto y análisis. Sin embargo, plantean desafíos éticos y de sostenibilidad debido a sus altos requerimientos computacionales.
Áreas de Aplicación del NLP
- Análisis de sentimiento: Evalúa opiniones públicas y detecta actitudes positivas, negativas o neutras en redes sociales y reseñas, ayudando a las marcas a comprender percepciones de sus productos y servicios.
- Traducción automática: Herramientas como Google Translate y DeepL ofrecen traducciones precisas en tiempo real, facilitando la comunicación cotidiana y profesional.
- Sistemas de recomendación: Personalizan contenido en plataformas como Netflix y YouTube, utilizando preferencias previas e intereses expresados por los usuarios.
- Asistentes virtuales y chatbots: Tecnologías como Siri, Alexa y ChatGPT responden preguntas y automatizan la atención al cliente.
- Detección de fraude y ciberseguridad: Identifican patrones en mensajes para prevenir phishing y fraudes, analizando grandes volúmenes de datos en busca de actividad maliciosa.
- Análisis jurídico y financiero: Automatizan la revisión de documentos legales y financieros, acelerando procesos y minimizando errores.
1.2. Desafíos y límites actuales en NLP
El Procesamiento de Lenguaje Natural ha experimentado avances significativos con el desarrollo de modelos de aprendizaje profundo, pero aún enfrenta desafíos críticos:
- Ambigüedad semántica y polisemia: El lenguaje humano es ambiguo, y palabras con múltiples significados dependen del contexto. Los modelos de NLP todavía tienen dificultades para desambiguar términos en contextos complejos.
- Ironía, sarcasmo y lenguaje figurado: Elementos como el sarcasmo o las metáforas son complicados de interpretar debido a su dependencia del contexto cultural y tonal.
- Dependencia contextual a largo plazo: Mantener coherencia en textos extensos o conversaciones largas sigue siendo un reto, ya que los modelos tienden a perder precisión a medida que aumenta la longitud del contexto.
Ética y sesgos en los modelos de NLP
- Sesgo en los datos de entrenamiento: Los modelos tienden a reflejar y amplificar sesgos de género, raza o clase presentes en los datos, lo que puede llevar a respuestas discriminatorias.
- Privacidad y confidencialidad: La inclusión de datos sensibles en los conjuntos de entrenamiento puede ocasionar que los modelos reproduzcan información confidencial.
- Uso en aplicaciones sensibles: En ámbitos como la medicina y el derecho, errores en la interpretación del lenguaje pueden tener consecuencias graves.
- Multilingüismo: Los modelos enfrentan retos al manejar múltiples idiomas, como la falta de datos en lenguas menos representadas.
Limitaciones técnicas actuales
- Alta demanda computacional y energética: Entrenar y operar modelos grandes como GPT-4 o BERT requiere enormes recursos computacionales y energéticos.
- Desafíos de escalabilidad y mantenimiento: La integración de estos modelos en sistemas masivos plantea problemas de escalabilidad y requiere actualizaciones constantes.
- Interoperabilidad entre idiomas y dialectos: Aunque los modelos muestran resultados sobresalientes en inglés, su rendimiento es menor en idiomas con pocos recursos de entrenamiento.
Evolución hacia el futuro del NLP
- NLP Multimodal: Los modelos integran texto, imágenes y audio, mejorando aplicaciones como la interpretación de lenguaje de señas y chatbots sofisticados.
- Sistemas más eficientes y personalizables: Se están desarrollando modelos más ligeros usando técnicas como la destilación de modelos y la compresión de redes.
- Mejor control de sesgos: Los esfuerzos para detectar y mitigar sesgos durante el entrenamiento incluyen curación avanzada de datos y penalizaciones específicas.
Tema 2: Representación del texto
1.3. Limpieza y preprocesamiento de texto
El preprocesamiento de texto es uno de los primeros pasos fundamentales en NLP. Este proceso implica preparar el texto para que los modelos puedan analizarlo y extraer información de manera eficiente. Las etapas de limpieza y preprocesamiento permiten transformar el texto en un formato estructurado y sin ruido.
Pasos principales en la limpieza de texto
- Conversión a minúsculas: Se unifican las palabras sin distinguir entre mayúsculas y minúsculas, evitando duplicados (e.g., "Amor" → "amor").
- Eliminación de signos de puntuación y caracteres especiales: Se eliminan para limpiar y simplificar el texto.
- Eliminación de palabras vacías (stop words): Se descartan palabras comunes con poco valor informativo (e.g., "el", "de") para reducir ruido.
- Corrección ortográfica y normalización: Se corrigen errores y se estandarizan abreviaturas (e.g., "tb" → "también").
- Lematización y stemming: Se reducen las palabras a su raíz o forma base. La lematización considera el contexto gramatical, mientras que el stemming aplica recortes más básicos.
Herramientas populares para el preprocesamiento
- NLTK: Ofrece tokenización, lematización y eliminación de palabras vacías.
- SpaCy: Eficiente para grandes volúmenes de datos y tareas avanzadas como la detección de entidades.
- TextBlob: Útil para análisis básico, como corrección ortográfica y sentimientos.
- Gensim: Enfocado en modelado de temas y representaciones semánticas.
Principales técnicas de limpieza avanzada
- Eliminación de caracteres especiales y emojis: Se pueden descartar o convertir emojis en etiquetas textuales según su relevancia.
- Corrección de errores tipográficos: Herramientas como SymSpell, Hunspell o modelos basados en transformadores (e.g., BERT) detectan y corrigen errores.
- Manejo de jerga y abreviaturas: Consiste en expandir términos informales (e.g., "u" → "you") mediante diccionarios personalizados.
- Normalización de caracteres: Simplifica repeticiones excesivas (e.g., "heellooo" → "hello").
1.4. Tokenización y extracción de características
La tokenización divide el texto en unidades más pequeñas llamadas tokens, que pueden ser palabras, subpalabras o caracteres:
- Tokenización de palabras: Divide el texto en palabras individuales, útil en métodos como Bag of Words o TF-IDF.
- Tokenización de subpalabras: Segmenta palabras en prefijos, sufijos o radicales, usado en modelos como BERT para mayor flexibilidad.
- Tokenización de caracteres: Separa texto en caracteres, útil para análisis más detallado, como detección de errores tipográficos.
Extracción de Características
- Frecuencia de términos: Representa palabras según su aparición en el texto, base de técnicas como Bag of Words.
- N-gramas: Combina palabras en secuencias de longitud N para capturar relaciones y contexto entre palabras.
- Etiquetas gramaticales y entidades: Identifica nombres, lugares y fechas, y asigna categorías gramaticales.
Entre los modelos sub-palabra destaca el Byte Pair Encoding (BPE), que segmenta las palabras en unidades más pequeñas. El BPE se basa en un proceso iterativo donde los pares de caracteres o sub-palabras más frecuentes se combinan en nuevos tokens, reduciendo el tamaño del vocabulario y mejorando la eficiencia del modelo.
1.5. Técnicas de representación
A. Representación basada en frecuencia de palabras
- Bag of Words (BoW): Representa el texto como un vector de frecuencias de palabras, sin considerar el orden ni el contexto. Es sencilla y rápida, pero limitada en capturar relaciones semánticas.
- TF-IDF: Mejora BoW al ponderar las palabras según su relevancia, considerando su frecuencia en un documento (TF) y su rareza en el corpus (IDF).
B. Word Embeddings
- Word2Vec: Basado en redes neuronales, genera vectores de alta dimensionalidad que capturan relaciones semánticas. Variantes:
- CBOW: Predice palabras desde el contexto.
- Skip-Gram: Predice el contexto desde una palabra.
- GloVe: Genera embeddings a partir de co-ocurrencias de palabras, integrando frecuencia y semántica.
- FastText: Considera subpalabras, mejorando la representación de palabras nuevas o complejas, ideal para lenguajes morfológicamente ricos.
C. Embeddings contextuales (Transformers)
BERT y modelos similares generan embeddings contextuales dinámicos, adaptándose al contexto en el que aparecen las palabras. Esto permite una comprensión más precisa del lenguaje y su estructura.
Tema 3: Modelos clásicos de NLP
1.6. Modelos estadísticos: N-grams y Markov Chains
N-grams
Un N-gram es una secuencia de "N" elementos contiguos (palabras o caracteres) en un texto o habla. Este enfoque asume que la probabilidad de una palabra depende de las "N-1" palabras previas.
- Unigramas (N=1): Cada palabra es independiente.
- Bigramas (N=2): La probabilidad de una palabra depende de la anterior.
- Trigramas (N=3): Consideran las dos palabras previas.
Ejemplo con la frase "el gato come pescado" — un modelo de bigramas analiza relaciones como P("gato"|"el"), P("come"|"gato"), P("pescado"|"come").
Ventajas: Simples, fáciles de implementar, efectivos en textos cortos y dominios específicos. Limitaciones: Alta dependencia del contexto (solo N-1 palabras), problemas de escasez de datos, complejidad exponencial con N grande.
Cadenas de Markov
Una Cadena de Markov es un modelo estadístico que describe una secuencia de eventos donde la probabilidad de cada evento depende únicamente del evento inmediatamente anterior (propiedad de Markov: el futuro es independiente del pasado dado el presente).
Se caracteriza por una matriz de transición. Ejemplo: sistema con estados "soleado" y "lluvioso" con probabilidades de transición entre ellos.
Ventajas: Simplifican el modelado de secuencias con dependencias de corto alcance. Limitaciones: Suponen independencia de estados pasados, dificultades en secuencias largas.
Comparación N-grams vs Cadenas de Markov
| Característica | N-grams | Cadenas de Markov |
|---|---|---|
| Dependencia de contexto | Fija (hasta N-1 elementos) | Fija (normalmente 1 elemento) |
| Matriz de transición | No es necesario | Necesaria |
| Aplicaciones | Textos cortos, corrección de errores | Sistemas de transición, análisis de patrones |
| Escalabilidad | Compleja con alto N | Compleja con muchos estados |
1.7. Métodos de clasificación y etiquetado (Naive Bayes, K-Nearest Neighbors)
Naive Bayes
Naive Bayes es un conjunto de algoritmos de clasificación que se basa en el Teorema de Bayes y asume independencia entre características. Aunque este supuesto no siempre se cumple, el modelo es eficaz en clasificación de textos, detección de spam y análisis de sentimientos.
Para clasificar una muestra con Naive Bayes:
Tipos: Gaussian (distribución normal), Multinomial (características discretas, común en texto), Bernoulli (características binarias).
Ventajas: Rápido, fácil de implementar, eficiente con datos pequeños. Limitaciones: El supuesto de independencia es poco realista.
K-Nearest Neighbors (KNN)
KNN es un método no paramétrico que asigna una clase a una muestra basándose en los "vecinos" más cercanos en el espacio de características.
Funcionamiento:
- Se elige un valor para K (número de vecinos).
- Se calcula la distancia entre la muestra a clasificar y las del conjunto de entrenamiento.
- Se seleccionan los K vecinos más cercanos.
- La clase asignada corresponde a la mayoría de votos entre los vecinos.
Métricas de distancia: Euclidiana (características numéricas), Manhattan (características enteras), Coseno (texto).
Ventajas: Simple, no requiere entrenamiento explícito. Limitaciones: Poco eficiente en conjuntos grandes, afectado por la "maldición de la dimensionalidad".
SVMs y otros métodos
- SVM (Máquinas de Soporte Vectorial): Busca un hiperplano para separar clases. Ideal para datos de alta dimensionalidad como texto. Funciones kernel: lineal o RBF.
- Árboles de Decisión y Random Forest: Los árboles generan reglas interpretables. Random Forest combina múltiples árboles para mejorar precisión y reducir sobreajuste.
1.8. Análisis de frecuencia y probabilidad en el lenguaje natural
- Frecuencia absoluta: Cantidad total de veces que aparece una palabra en el texto.
- Frecuencia relativa: Proporción de la aparición de una palabra respecto al total de palabras.
- Ley de Zipf: Establece que las palabras más comunes tienen frecuencias mucho mayores que las menos comunes, siguiendo una relación inversa con su posición en el ranking de frecuencia.
- Probabilidad de una palabra: Frecuencia de la palabra dividida entre el total de palabras. Ejemplo: si "probabilidad" aparece 25 veces en 1000 palabras → probabilidad = 2.5%.
Aplicaciones del análisis de frecuencia en PLN
- Análisis de Sentimiento: Examina la frecuencia de palabras para determinar la polaridad de un texto.
- Clasificación de Textos: Utiliza frecuencias y modelos como Naive Bayes para asignar textos a categorías.
- Desambiguación Semántica: Calcula probabilidades basadas en las palabras circundantes para identificar el significado correcto.
- Generación de Texto: Modelos basados en n-gramas predicen palabras para crear texto coherente.
1.9. Técnicas de Evaluación de Modelos de NLP
- Precisión (Precision): Proporción de predicciones positivas correctas.Precisión = Verdaderos Positivos / (Verdaderos Positivos + Falsos Positivos)
- Recall (Cobertura): Capacidad del modelo para capturar correctamente todos los casos positivos.Recall = Verdaderos Positivos / (Verdaderos Positivos + Falsos Negativos)
- F1 Score: Media armónica de precisión y recall.F1 Score = 2 × (Precisión × Recall) / (Precisión + Recall)
- BLEU: Evalúa la calidad de traducciones automáticas comparando n-gramas con traducciones de referencia. BLEU = Precisión de n-gramas × Factor de penalización de longitud.
- ROUGE: Usado principalmente en resumen automático. Mide la superposición entre la salida generada y referencias en términos de recall. ROUGE-N = n-gramas coincidentes / Total de n-gramas en la referencia.
- Perplexidad: Mide la incertidumbre de un modelo al predecir secuencias (menor es mejor).
- WMD (Word Mover's Distance): Calcula la distancia semántica entre textos usando embeddings.
- METEOR: Evalúa traducciones considerando coincidencias, sinónimos y morfología.