Natural Language Processing (NLP)
El procesamiento del lenguaje natural (NLP) es el campo de la IA que permite a los ordenadores analizar, comprender y generar lenguaje humano, desde los tokens hasta los LLM.
El procesamiento del lenguaje natural (NLP) es la rama de la inteligencia artificial (AI) que permite a los ordenadores analizar, comprender y generar lenguaje humano, tanto escrito como hablado. Sus tareas van desde encontrar nombres en una frase hasta traducir un libro o mantener una conversación, y combina la lingüística computacional con el aprendizaje automático y el aprendizaje profundo. Las búsquedas web, los filtros de spam, los asistentes de voz, las sugerencias del teclado del móvil y los chatbots basados en modelos de lenguaje grandes (LLMs) utilizan NLP.
De las reglas a los modelos de lenguaje grandes#
En el experimento Georgetown-IBM de 1954 se tradujeron al inglés más de sesenta frases rusas con un vocabulario de 250 palabras y seis reglas gramaticales. ELIZA (1966), de Joseph Weizenbaum, imitaba a un psicoterapeuta asociando palabras clave con respuestas predefinidas. Las reglas escritas a mano no podían abarcar la ambigüedad y variedad del texto real, así que, desde finales de la década de 1980, el NLP estadístico empezó a aprender probabilidades a partir de textos anotados: los modelos ocultos de Markov etiquetaban las categorías gramaticales y la traducción automática estadística aprendía de millones de pares de frases traducidas.
Las redes neuronales se impusieron en la década de 2010. Word2vec (2013) aprendió embeddings que sitúan cerca las palabras relacionadas, y las redes neuronales recurrentes (RNNs) leían las frases palabra por palabra. El transformador (2017) sustituyó la recurrencia por la autoatención, que relaciona todas las palabras entre sí en paralelo. Los transformadores preentrenados, como BERT y GPT, aprendían lenguaje a partir de texto sin etiquetar y luego solo necesitaban pequeños conjuntos de datos etiquetados para cada tarea. Desde el lanzamiento de ChatGPT en noviembre de 2022, los LLM realizan muchas tareas de NLP a partir de una simple instrucción escrita.
Cómo representan el texto los sistemas de NLP#
Un sistema moderno de NLP primero divide el texto en tokens —palabras completas o fragmentos de palabras generados mediante la tokenización— y asigna a cada token un vector de embedding. Una red neuronal, normalmente un transformador, convierte esa secuencia en vectores contextuales, en los que el vector de cada token refleja los tokens vecinos; una salida específica para la tarea los interpreta: una etiqueta para todo el texto, una etiqueta por token, el inicio y el final de un fragmento con la respuesta o nuevos tokens generados. Como el significado reside en los vectores, las frases con palabras distintas pueden quedar muy cerca, como muestra el codificador de frases all-MiniLM-L6-v2:
from sentence_transformers import SentenceTransformer
# A small sentence encoder maps each text to a 384-dimensional vector
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "How do I reset my password?"
candidates = ["I forgot my login credentials", "How do I reset my router?"]
# Encode all texts, then compare the query with each candidate by cosine similarity
embeddings = model.encode([query, *candidates])
scores = model.similarity(embeddings[0], embeddings[1:])[0]
for text, score in zip(candidates, scores):
print(f"{score:.2f} {text}")La paráfrasis «He olvidado mis credenciales de inicio de sesión» obtiene una puntuación de 0,68 frente a la pregunta, mientras que «¿Cómo restablezco mi router?», que repite cinco de las seis palabras de la pregunta, obtiene 0,53. La búsqueda semántica y la fase de recuperación de la generación aumentada con recuperación (RAG) clasifican documentos con la misma comparación.
Tareas habituales de NLP#
- Análisis de sentimientos: Clasifica la opinión expresada en una reseña, publicación o respuesta de encuesta como positiva, negativa o neutra.
- Reconocimiento de entidades nombradas (NER): Etiqueta cada mención a una persona, organización, lugar o fecha.
- Respuesta a preguntas: Devuelve la respuesta a una pregunta en lugar de una lista de documentos.
- Resumen de textos: Condensa un documento en un texto más corto que conserva sus ideas principales.
- Generación de texto: Escribe texto nuevo token a token; es la tarea que realizan los chatbots y los asistentes de programación.
El NLP en la visión artificial#
El lenguaje también permite indicar a los modelos de visión artificial qué deben buscar, y la combinación del NLP con la visión ha dado lugar a modelos que leen y escriben sobre imágenes. Los modelos de visión y lenguaje (VLMs) responden preguntas sobre fotos y redactan pies de imagen, y CLIP aprendió un espacio de embeddings compartido para imágenes y texto a partir de 400 millones de pares de imágenes y pies de imagen. Los detectores de vocabulario abierto reciben su lista de clases como texto: al llamar a set_classes(["double-decker bus", "person"]) en un modelo Ultralytics YOLOE-26, se tokeniza cada nombre con el tokenizador CLIP y se codifica con el codificador de texto MobileCLIP2 de Apple; después, el detector compara esos embeddings de texto con las regiones de la imagen para detectar y segmentar categorías con las que nunca se ha entrenado.
NLP y términos relacionados#
- Comprensión del lenguaje natural (NLU): Parte del NLP que se ocupa del significado, como la intención del usuario o el referente de un pronombre. La generación del lenguaje natural (NLG), que produce texto, es la otra parte principal.
- Modelos de lenguaje grandes: Modelos de lenguaje basados en transformadores, con miles de millones de parámetros, que realizan muchas tareas de NLP mediante instrucciones; su coste por solicitud es mayor que el de un modelo pequeño entrenado para una sola tarea.
- Reconocimiento del habla: Convierte el audio hablado en texto, que después interpretan los modelos de NLP.
- Reconocimiento óptico de caracteres (OCR): Convierte imágenes de texto impreso o manuscrito en caracteres; es el primer paso para que el NLP pueda leer un documento escaneado.










