Les tunnels NLP

Comment détecter plusieurs intentions dans une même phrase

Définition d’un Tunnel:
C’est une règle d’IA prioritaire qui déclenche une recherche dans un autre contexte. Facultativement, on peut lancer une séquence intermédiaire.

Cette séquence intermédiaire peut servir, entre autres, à stocker dans une variable une donnée au passage sans rien afficher dans le chatbot.

Définition d’une Variable :
C’est une donnée que le chatbot va stocker dans sa mémoire. Une variable se définit par son nom et par sa valeur.

EX: La Variable portant le nom “type_de_bien” peut prendre comme valeur “Maison” ou “Appartement”

C’est une logique complexe à maîtriser mais c’est un outil très puissant. Il va en effet permettre de détecter plusieurs intentions dans la même phrase. Le tunnel dans le contexte par défaut détecte une première intention puis lance une recherche dans les règles d’IA d’un autre contexte pour détecter la seconde intention.

Il est aussi possible de mettre des tunnels dans le contexte secondaire et donc de détecter une troisième intention. En théorie, en utilisant des Tunnels en cascade on peut détecter autant d’intentions que l’on veut dans la même phrase. Mais d’un point de vue pratique, il vaut mieux se limiter à trois intentions.

Le mieux, pour comprendre comment ça marche, est d’étudier un cas pratique.

Exemple:

Toujours dans notre chatbot immobilier parisien, on veut détecter, en langage naturel, le type de transaction, le type de bien et l’arrondissement concerné pour pouvoir lancer une recherche dans une base de données d’annonces.

Il faut donc, non seulement que le chatbot comprenne une phrase comme “Je cherche un appartement à vendre dans le 16e” mais aussi traduire ces informations en données compréhensibles par le moteur de recherche.

Les tunnels en cascade et leurs séquences intermédiaires vont pouvoir résoudre cette problématique.

L’idée générale est de détecter chaque intention l’une après l’autre.

Nous allons avoir besoin de 3 contextes : le contexte par défaut dans lequel on détectera l’intention “Type de transaction”, un contexte “Type de bien” pour détecter cette intention et enfin un Contexte “Arrondissement” pour cette intention.

Contexte par défaut

On crée un premier Tunnel “Achat” avec les mots clés correspondants à cette intention et qui lancera une recherche dans le Contexte “Type de Bien”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant la valeur “achat” à la variable “type_de_transaction”.

On crée ensuite un Tunnel “Vente” avec les mots clés correspondants et qui lancera lui aussi une recherche dans le Contexte “Type de Bien”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant, cette fois-ci, la valeur “vente” à la variable “type_de_transaction”.

On voit donc qu’on peut avoir 2 tunnels différents qui renvoient au même contexte mais comme leurs séquences intermédiaires et leurs mots-clés sont différents, ils détectent deux intentions différentes.

Le chatbot peut donc maintenant faire la différence entre “Je cherche à vendre mon appartement dans le 16e” et “Je veux acheter un appartement dans le 16e”.

Contexte “Type de Bien”

On crée un premier Tunnel “Appartement” avec les mots clés correspondants et qui lancera une recherche dans le Contexte “Arrondissement”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant la valeur “appartement” à la variable “type_de_bien”.

On crée ensuite un Tunnel “Maison” avec les mots clés correspondants et qui lancera lui aussi une recherche dans le Contexte “Arrondissement”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant, cette fois-ci, la valeur “maison” à la variable “type_de_bien”.

Le chatbot peut donc maintenant faire la différence entre “Je cherche à vendre mon appartement dans le 16e” et “Je cherche une maison à vendre dans le 16e”

Contexte “Arrondissement”

Dans ce contexte-ci on crée de simples règles d’IA pour détecter chaque arrondissement qui chacune renverra à des séquences dans lesquelles on stockera la valeur de l’arrondissement (un nombre entre 1 et 20 puisque Paris compte 20 arrondissements) dans la variable “arrondissement”.

Pour résumer:

Dans le contexte par défaut le chatbot détecte le type de transaction puis recherche le type de bien dans le contexte”Type de bien” et enfin détecte l’arrondissement dans le contexte “Arrondissement”.

Et à chaque étape, le chatbot stocke l’info correspondante dans des variables.

Donc, si l’utilisateur écrit “je cherche à faire l’achat d’un appartement dans le vingtième” le chatbot détectera les intentions et les traduira comme suit :

  • type_de_transaction = achat
  • type_de_bien = appartement
  • arrondissement = 20

Le chatbot peut alors lancer la recherche dans la base de données car ce sont des informations exploitables par le moteur de recherche.

La détection de plusieurs intentions dans une phrase saisie est un casse-tête pour toutes les IA du monde entier. Avec les tunnels, notre plateforme offre enfin une solution pragmatique et efficace à cette problématique.

Créez votre Chatbot Facilement et Gratuitement !