Natural Language Understanding (NLU)
La comprensión del lenguaje natural (NLU) es la parte del NLP que extrae significado, intención y entidades del texto, como hacen los asistentes de voz y los buscadores.
La comprensión del lenguaje natural (NLU) es la parte del procesamiento del lenguaje natural (NLP) que determina qué significa un texto: qué quiere el autor, qué elementos menciona y qué interpretación pretende cuando las palabras admiten varias. Un sistema de NLU convierte «Reserva una mesa para dos mañana a las 7» en una solicitud estructurada, con una intención como reserve_table y campos para el tamaño del grupo, la hora y la fecha, que el software puede procesar. Los asistentes virtuales, los chatbots de atención al cliente y los motores de búsqueda ejecutan NLU con cada solicitud antes de decidir qué hacer o decir.
Por qué es difícil comprender el lenguaje#
Las mismas palabras pueden tener significados distintos en cada nivel. «Banco» puede ser una entidad financiera o la orilla de un río; «Vi al hombre con el telescopio» no aclara quién tiene el telescopio; y, en «El trofeo no cabe en la maleta marrón porque es demasiado grande», «es» se refiere al trofeo, pero si se cambia «grande» por «pequeño», se refiere a la maleta. En 2011, Hector Levesque propuso las situaciones de Winograd como prueba de comprensión automática, porque resolverlas requiere conocimientos sobre el mundo, no solo estadísticas de palabras. Los primeros sistemas basados en reglas, como SHRDLU (1968-1970), de Terry Winograd, solo entendían comandos escritos dentro de un mundo simulado de bloques que sus reglas describían por completo.
Tareas principales de NLU#
- Clasificación de intenciones: Asigna una solicitud a uno de los objetivos de una aplicación, como consultar el saldo o bloquear una tarjeta.
- Reconocimiento de entidades nombradas (NER): Encuentra las personas, lugares, productos, fechas e importes que se mencionan en una solicitud; los asistentes los utilizan para rellenar los campos de una intención.
- Análisis semántico: Convierte una frase en una representación formal que un programa puede ejecutar, como una consulta a una base de datos o una llamada a una API.
- Resolución de correferencias: Vincula los pronombres y otras referencias con las entidades a las que aluden.
- Inferencia en lenguaje natural: Determina si una frase implica, contradice o no guarda relación con otra.
- Análisis de sentimientos: Identifica la opinión que expresa un texto.
Los asistentes suelen clasificar las intenciones con un codificador de transformador ajustado. Un codificador de frases también puede clasificar intenciones con un solo ejemplo por intención, eligiendo la intención cuyo ejemplo tenga un significado más parecido al de la solicitud:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# One labeled example per intent, as an assistant's training data would provide
intents = {
"check_balance": "What is my account balance?",
"block_card": "Please freeze my debit card",
"transfer_money": "Send money to another account",
}
utterances = ["my card was stolen", "how much cash do I have left", "pay Alex back 20 dollars"]
# Assign each utterance the intent whose example is closest in meaning
scores = model.similarity(model.encode(utterances), model.encode(list(intents.values())))
for text, row in zip(utterances, scores):
best = int(row.argmax())
print(f"{text!r} -> {list(intents)[best]} ({row[best]:.2f})")Las tres solicitudes obtienen la intención correcta: block_card (0,42), check_balance (0,49) y transfer_money (0,28). «cuánto dinero me queda» y «devuélvele 20 dólares a Alex» no comparten ninguna palabra con sus ejemplos de intención, así que la coincidencia se basa en los embeddings, no en palabras clave. La solicitud de transferencia gana con solo 0,28 frente a 0,17 para las otras intenciones, y marcos de trabajo como Rasa envían a un sistema alternativo las solicitudes cuya mejor puntuación queda por debajo del umbral de confianza, para pedir al usuario que las reformule.
Pruebas de referencia y modelos#
GLUE (2018) combinó nueve tareas con frases y pares de frases —incluidos el análisis de sentimientos, la detección de paráfrasis y la inferencia en lenguaje natural— en una sola puntuación, y BERT la elevó a 80,5 en 2018. Su sucesor más exigente, SuperGLUE (2019), añadió la resolución de correferencias al estilo Winograd y, en enero de 2021, DeBERTa de Microsoft y T5 + Meena de Google superaron la referencia humana de 89,8. Las puntuaciones altas pueden depender del aprendizaje basado en atajos: en 2018, Suchin Gururangan y sus colegas demostraron que un clasificador que leía solo la segunda frase de cada par de inferencia etiquetaba correctamente cerca del 67 % del conjunto de datos SNLI, porque indicios como las palabras de negación se correlacionan con la etiqueta «contradicción». Hoy, los modelos de lenguaje grandes (LLMs) realizan la mayoría de las tareas de NLU a partir de una instrucción, y los modelos de codificador pequeños siguen siendo habituales cuando importan la latencia y el coste por solicitud.
NLU en búsquedas y visión#
La búsqueda semántica aplica NLU a las consultas y busca coincidencias según su significado, no según sus palabras exactas; la búsqueda vectorial permite hacerlo rápidamente entre millones de elementos. La misma idea funciona entre modalidades cuando el texto y las imágenes comparten un espacio de embeddings, como ocurre con CLIP. La pestaña Images de la página Explore de Ultralytics Platform recibe descripciones de escenas como «gatos en un sofá» y devuelve imágenes de conjuntos de datos públicos según lo que muestran, sin depender de nombres de archivo ni etiquetas.
NLU y términos relacionados#
- NLP: El campo completo de la informática que trabaja con el lenguaje humano. La NLU interpreta las entradas y la generación del lenguaje natural (NLG) redacta las salidas.
- Reconocimiento del habla: Convierte el audio hablado en texto, que después interpreta la NLU.
- Reconocimiento óptico de caracteres (OCR): Extrae caracteres de imágenes con texto, que la NLU puede interpretar para obtener su significado.
- Respuesta a preguntas: Devuelve respuestas a preguntas en lenguaje natural, lo que requiere que la NLU interprete tanto la pregunta como el texto que la responde.










