Aujourd’hui, les sociétés qui investissent dans les chatbots sont de plus en plus nombreuses. Pourtant, tous les chatbots ne se valent pas. Une des raisons ? Les composants de leur moteur. Certains se basent sur des briques NLP tandis que d’autres, plus élaborés, se basent sur des briques NLU. Mais quelle est la différence entre NLP et NLU exactement ?
Le Natural Language Processing (NLP) ou Traitement Automatique du Langage Naturel (TALN) en français, est ce qui permet aux humains et aux machines de communiquer en langage naturel, le langage naturel étant la syntaxe et le vocabulaire des Hommes. En somme, le NLP consiste à analyser automatiquement de manière littérale les phrases formulées à l’oral ou à l’écrit par un humain. La machine ne va pas chercher à comprendre le sens de ce qui est dit ou écrit : elle va analyser et reconnaître les lemmes utilisés, c’est-à-dire les mots utilisés, sans les interpréter, et y répondre au mieux.
Le Natural Language Understanding (NLU) ou Compréhension du Langage Naturel (CLN) en français, est une sous-branche du NLP qui correspond à l’association des techniques de NLP aux technologies d’apprentissage automatique (Machine Learning en anglais) ou d’intelligence artificielle (IA) pour comprendre le langage naturel. Le NLU est donc une forme de NLP avancée qui, cette fois, va permettre aux machines et aux humains de communiquer en langage naturel tout en améliorant la compréhension du langage naturel par les machines. En somme, le NLU va analyser automatiquement la sémantique des phrases formulées par un humain afin de comprendre le sens de ce qui est dit ou écrit : la machine va analyser les lemmes utilisés pour comprendre le sens de l’énoncé et y répondre au mieux.
Pour aller plus loin, le « sens » d’un énoncé est identifié par l’intention et les entités. L’intention correspond au sens global, par exemple à l’action que souhaite effectuer l’utilisateur. Les entités sont les autres éléments forts contenus dans l’énoncé. Prenons l’exemple « Je voudrais aller nager jeudi à Toulouse » :
– « aller nager » correspond à l’intention de l’utilisateur, ici à l’action que l’utilisateur souhaite réaliser. Le chatbot peut traduire l’intention de l’utilisateur par « recherche piscine ».
– « jeudi » et « Toulouse » sont deux entités de l’énoncé qui, respectivement, correspondent à la date (quand) et à la ville (lieu).
L’utilisateur recherche donc un endroit où il pourra nager jeudi dans la ville de Toulouse : c’est ce que le chatbot comprendra grâce au NLU.
Pour bien saisir la différence entre NLP et NLU, j’utilise souvent ce parallèle à la traduction automatique : le NLP serait la traduction automatique mot à mot tandis que le NLU correspondrait à la traduction automatique neuronale, c’est-à-dire la traduction basée sur la technologie des réseaux de neurones. Le NLP retranscrira simplement la forme de la phrase mot à mot sans prendre en considération le sens des mots, s’ils ont plusieurs sens possibles, tandis que le NLU cherchera à retranscrire au mieux le sens de la phrase sans se préoccuper de la forme. Le NLP traite la forme tandis que le NLU traite le sens de l’énoncé.
Par exemple, pour la phrase « It rings me a bell » en anglais, la traduction mot à mot serait « Ça me sonne une cloche » tandis que la traduction neuronale serait « Ça me rappelle quelque chose » en français. En France métropolitaine, c’est la traduction neuronale qui est correcte tandis qu’au Québec, c’est la traduction mot à mot qui est correcte. Le contexte d’application du NLP et du NLU est donc très important. Gardez toujours à l’esprit qu’un blog ou article qui traite du sens de l’énoncé fera toujours référence à des briques de NLU, quand bien même l’auteur utiliserait l’appellation « NLP ». Il ne s’agit pas d’une faute en soi puisque le NLU est une sous-branche du NLP mais d’un manque de précision pouvant prêter à confusion.
L’objectif principal d’un chatbot est de comprendre la requête formulée par un utilisateur en langage naturel et à en extraire les bonnes informations pour pouvoir réagir ou répondre de la manière la plus cohérente possible. Si vous ne savez pas quelle brique choisir entre NLP et NLU pour votre chatbot, votre budget vous donnera peut-être la réponse. Les technologies NLU sont, par expérience, les plus performantes à l’heure actuelle. Performance rime malheureusement avec coût élevé. Toutefois, selon les domaines d’applications de votre chatbot, des briques de NLP pourraient s’avérer amplement suffisantes pour obtenir d’excellents résultats tout comme la traduction mot à mot selon les contextes : étudier les différents cas d’usage et d’application de votre chatbot vous aidera à faire votre choix. Par exemple, si votre chatbot doit créer des réponses de toutes pièces aux questions des utilisateurs, des briques de NLU seront nécessaires car créer une réponse en langage naturel est bien plus complexe pour une machine que de retrouver la réponse à une question dans une base de données, comme pour un FAQ, avec du NLP.
Suite à la lecture de nombreux blogs et articles, il me paraît également nécessaire de souligner qu’il est plus que complexe de classifier les moteurs de chatbot actuellement sur le marché car chacun d’eux utilise des algorithmes très différents. Les performances de ces moteurs varient selon le scénario choisi : pour un scénario donné, ce sera le premier moteur qui sera le plus performant tandis que pour un autre scénario, un ou plusieurs autres moteurs seront plus performants que le premier. Il faut donc toujours garder un esprit critique en parcourant les classements, mais aussi lorsque l’on utilise ces différents moteurs de chatbot !
N’oubliez pas que votre choix entre NLP et NLU dépend des domaines d’applications souhaités pour votre chatbot et de votre budget, et non des performances des autres chatbots.
Et Hubi alors ?
Lorsque l’architecture Hubi a été élaborée, ses créateurs ont tout d’abord testé plusieurs approches et se sont posés de nombreuses questions : quelle branche utiliser, NLP ou NLU ? Quelle plateforme choisir ? Faut-il développer notre propre plateforme ? Répondre à ces questions pourrait faire l’objet d’un blog entier, mais les réponses sont déjà toutes trouvées concernant Hubi !