Natural Language Understanding (NLU)
La compréhension du langage naturel (NLU) est la branche du NLP qui extrait le sens, l’intention et les entités d’un texte, comme le font les assistants vocaux et les moteurs de recherche.
La compréhension du langage naturel (NLU) est la partie du traitement automatique du langage naturel (NLP) qui détermine le sens d’un texte : ce que veut l’auteur, les éléments qu’il mentionne et l’interprétation visée lorsque les mots peuvent avoir plusieurs sens. Un système de NLU transforme « Réserve une table pour deux demain à 19 h » en une requête structurée, avec une intention telle que reserve_table et des champs pour le nombre de personnes, l’heure et la date, que le logiciel peut traiter. Les assistants virtuels, les chatbots du service client et les moteurs de recherche appliquent le NLU à chaque requête avant de décider quoi faire ou répondre.
Pourquoi la compréhension du langage est difficile#
Les mêmes mots peuvent avoir des sens différents à tous les niveaux. « Bank » peut désigner une banque ou une rive ; « J’ai vu l’homme avec le télescope » ne précise pas qui tient le télescope ; et dans « Le trophée ne rentre pas dans la valise marron parce qu’il est trop grand », « il » désigne le trophée, mais remplacer « grand » par « petit » le ferait désigner la valise. En 2011, Hector Levesque a proposé de tels schémas de Winograd pour évaluer la compréhension des machines, car leur résolution nécessite des connaissances sur le monde plutôt que des statistiques sur les mots. Les premiers systèmes à base de règles, comme SHRDLU de Terry Winograd (1968-1970), ne comprenaient les commandes écrites que dans un monde simulé de blocs entièrement décrit par leurs règles.
Tâches principales du NLU#
- Classification d’intention : Associe une requête à l’un des objectifs d’une application, comme consulter un solde ou bloquer une carte.
- Reconnaissance d’entités nommées (NER) : Repère les personnes, lieux, produits, dates et montants mentionnés dans une requête, éléments que les assistants utilisent pour remplir les champs d’une intention.
- Analyse sémantique : Convertit une phrase en une représentation formelle exécutable par un programme, comme une requête de base de données ou un appel d’API.
- Résolution des coréférences : Relie les pronoms et autres expressions référentielles aux entités qu’ils désignent.
- Inférence en langage naturel : Détermine si une phrase implique, contredit ou ne confirme ni ne contredit une autre phrase.
- Analyse des sentiments : Repère l’opinion exprimée dans un texte.
Les assistants classent généralement les intentions à l’aide d’un encodeur transformeur affiné. Un encodeur de phrases peut aussi classer les intentions en mode one-shot, à partir d’un seul exemple par intention, en choisissant l’intention dont l’exemple est le plus proche de la requête sur le plan sémantique :
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})")Les trois requêtes reçoivent la bonne intention : block_card (0,42), check_balance (0,49) et transfer_money (0,28). « combien d’argent me reste-t-il » et « rembourser 20 dollars à Alex » ne partagent aucun mot avec leurs exemples d’intention ; la correspondance provient donc des plongements, et non des mots-clés. La requête de transfert obtient le meilleur score, avec seulement 0,28 contre 0,17 pour les autres intentions. Des frameworks comme Rasa dirigent vers un mécanisme de repli qui demande à l’utilisateur de reformuler les requêtes dont le meilleur score est inférieur à un seuil de confiance.
Benchmarks et modèles#
GLUE (2018) a regroupé neuf tâches portant sur des phrases ou des paires de phrases, notamment l’analyse des sentiments, la détection de paraphrases et l’inférence en langage naturel, en un seul score. BERT l’a porté à 80,5 en 2018. Son successeur plus difficile, SuperGLUE (2019), a ajouté la résolution des coréférences de type Winograd. En janvier 2021, DeBERTa de Microsoft et T5 + Meena de Google ont tous deux dépassé sa référence humaine de 89,8. Des scores élevés peuvent reposer sur l’apprentissage de raccourcis : en 2018, Suchin Gururangan et ses collègues ont montré qu’un classifieur qui ne lisait que la deuxième phrase de chaque paire d’inférence étiquetait correctement environ 67 % du jeu de données SNLI, car des indices comme les mots de négation sont corrélés à l’étiquette « contradiction ». Les grands modèles de langage (LLMs) réalisent désormais la plupart des tâches de NLU à partir d’une invite, tandis que les petits modèles encodeurs restent courants lorsque la latence et le coût par requête sont importants.
Le NLU dans la recherche et la vision#
La recherche sémantique applique le NLU aux requêtes en faisant correspondre leur sens plutôt que leurs mots exacts, et la recherche vectorielle permet de le faire rapidement sur des millions d’éléments. La même approche fonctionne entre plusieurs modalités lorsque le texte et les images partagent un espace de plongement, comme avec CLIP. L’onglet Images de la page Explorer d’Ultralytics Platform prend une description de scène telle que « des chats sur un canapé » et renvoie des images de jeux de données publics en fonction de leur contenu, sans s’appuyer sur les noms de fichiers ni sur les balises.
Le NLU et les termes associés#
- NLP : Le domaine entier de l’informatique appliquée au langage humain. Le NLU interprète les entrées, et la génération du langage naturel (NLG) produit les sorties.
- Reconnaissance vocale : Convertit l’audio parlé en texte, que le NLU interprète ensuite.
- Reconnaissance optique de caractères (OCR) : Extrait les caractères d’images contenant du texte, que le NLU peut ensuite interpréter.
- Réponse aux questions : Répond aux questions en langage naturel, ce qui nécessite que le NLU interprète à la fois la question et le texte qui y répond.










