La partie sur la compréhension du langage Naturelle: NLU est composé de plusieurs onglets.

Lorsque vos répondants vont intérarir avec le chatbot, nous allons analyser les phrases saisies par les répondants.

Pour cela nous utilisons des algorithmes de Machine Learning, nous sommes capable d'extraire d'une phrase

  • 1 intention (ou 2 dans certains cas trĂšs prĂ©cis): c'est le sujet principal de la phrase (acheter un appartement, crĂ©er un ticket, rĂ©initialiser un mot de passe, ...)
  • des entitĂ©s: ce sont les objets/prĂ©cisions qui tournent autour du sujet principal de la phrase. Par exemple dans la phrase Je veux acheter un appartement Ă  Paris. Nous comprendrons l'intention acheter un appartement et l'entitĂ© Paris comme Ă©tant la ville dans laquelle le rĂ©pondant souhaite acheter.

# Intentions

Dans cette partie vous pouvez créer/modifier/supprimer et entrainer vos intentions.

L'objectif est de fournir à minima 10 phrases par intention pour qu'ensuite l'algorithme soit capable de reconnaitre les phrases utilisés par les répondants.

Les algorithmes fonctionne en comparant la phrase saisies par le répondant avec l'ensemble des phrases d'entrainement, donc plus vous avez de phrases d'entrainement et plus la compréhension sera performante.

Il faut essayer de suivre plusieurs "rĂšgles":

  • favoriser les tournures de phrases diffĂ©rentes. Si vous tapez 10 phrases trĂšs proches, cela n'aura pas la mĂȘme performance que 10 phrases avec des tournures et des mots diffĂ©rents.
  • essayer dans la limite du raisonnable d'avoir des donnĂ©es d'entrainement de "taille" similaire entre les intentions. Si vous avez une intention qui est entrainement avec 10 fois plus de phrases qu'une autre, l'algorithme aura tendance Ă  "favoriser" celle ci.

# Pour plus de conseils pour entrainer votre nlu vous pouvez Voir la FAQ

# Liste des intentions

Dans un premier temps vous avez la liste des intentions comme ci dessous Liste intentions

# Expressions liées à une intention

Lorsque vous paramĂ©trez la NLU de votre application, il peut ĂȘtre intĂ©ressant de consulter la liste des expressions associĂ©es Ă  chaque intention (ou Ă  chaque entitĂ©).

Pour ce faire, dans la section "NLU" du dashboard Vizir, rendez-vous sur l'onglet "Intentions" oĂč se trouve la liste des intentions que vous avez configurĂ©es pour votre NLU.

Dans l'encart correspondant à l'intention de votre choix, cliquez sur le troisiÚme bouton "Intention liées".

S'ouvre alors sur la droite de votre Ă©cran un panneau latĂ©ral qui affiche la liste de toutes les expressions que vous avez prĂ©cĂ©demment saisies et correspondant Ă  cette intention. Ce panneau est exactement le mĂȘme que celui qui s'affiche au clic sur "tester la NLU" (prĂ©sent dans toutes les sections du dashboard, en haut Ă  droite) ; vous pouvez donc y rĂ©aliser les mĂȘmes actions (ajouter/modifier des entitĂ©s, ajouter une expression, filtrer/rechercher des expressions, ...)

Liste Expressions intention

C'est ici que vous pouvez ajouter les expressions d'entraiement de votre intention.

TIP

N'oubliez pas de tagguer les entités en cliquant sur le mot ou l'expression comme ci dessous

Expressions tag entity

DANGER

Essayer de garder un nombre d'expressions similaire par intention pour une NLU performante.

# Options de l'intention

En cliquant sur le premier bouton depuis la liste de vos intentions (paramĂštres).

On accĂšde aux options de l'intention. Expressions tag entity

  • sauvegarder dans un attribut: Vous pouvez utiliser la valeur de l'intention pour la sauvegarder dans un attribut. Cette fonctionnalitĂ© peut ĂȘtre util pour savoir quelle est la derniĂšre action que votre rĂ©pondant Ă  rĂ©aliser depuis la NLU.

Comme on peut le voir dans l'image ci-dessous, en plus de choisir l'intention, nous devons Ă©galement sĂ©lectionner une valeur "manuelle" pour l'attribut.Vous pouvez Ă©crire la valeur qui vous plait, elle sera la mĂȘme pour tous les rĂ©pondants lorsque la NLU trouvera cette intention. Expressions tag entity

  • Regex Les regex permettent d'entrainer plus rapidement certaines intentions. Par exemple dans l'exemple ci-dessous, nous allons trĂšs simplement extraire toutes les phrases qui dĂ©but par Hey pour les attribuer Ă  l'intention Bonjour. Expressions tag entity

On peut bien sûr utiliser cette fonctionnalité pour des cas d'usage beaucoup plus avancés.

# Entités

Les entités vont vous permettre de:

  • affiner les redirections logiques
  • sauvegarder directement des informations sans les redemander Ă  l'utilisateur

# Affiner les redirection logique

Il peut arriver que vous souhaitiez avoir des logiques différentes en fonction de la valeur d'une (ou plusieurs) entité.s.

Par exemple, vous souhaitez permettre à vos utilisateurs de réinitialiser leur mot de passe SAP mais pas le mot de passe Azure qui doit suivre une autre procédure.

On va donc réaliser une configuration 'réinitialiser mot de passe' + 'application type' qui sera différentes en fonction de la valeur de celle ci. Voici comment on peut paramétrer ça dans l'onglet configuration: Logique Entités

# Sauvegarder des informations

Les entitĂ©s peuvent Ă©galement ĂȘtre utilisĂ©s dans le cadre de compĂ©tences actions pour ne pas redemander l'information que le rĂ©pondant a dĂ©jĂ  saisie.

Par exemple: Je veux réserver un billet de train pour demain matin entre Paris et Marseille

Nous sommes capable de comprendre que l'utilisateur souhaite réserver un billet de train, donc nous allons le rediriger vers la compétence de réservation de billets.

Mais nous avons également compris que la date était demain matin et que les villes de départ et d'arrivée était Paris et Marseille.

Nous pouvons donc directement nous rendre sur la ressource de validation pour valider que les informations que nous avons récupérées sont correctes.

Pour sauvegarder la valeur d'une entité dans un attribut, il faut activer la fonctionnalité et entrer le nom de l'attribut correspondant comme ci dessous: Sauvegarder une entité

# Entités, synonymes et mots clés

La performance dans l'extraction d'entités sera trÚs liée aux Mots-clés et Synonymes.

  • Mots clĂ©s: ces mots clĂ©s vont "aider" l'algorithme Ă  trouver l'entitĂ© correspondante quand elle verra l'un des mots clĂ©s dans la phrase du rĂ©pondant.

TIP

Il faut absolument que certains mots clés soient également présents dans les phrases d'entrainement et "tagguer" sinon ceux-ci ne seront pas utiles.

  • Les synonymes ne vont pas amĂ©liorer la comprĂ©hension et l'extraction d'entitĂ©s. Par contre ils vont vous permettre d'amĂ©liorer les configurations. Prenons un exemple: Je souhaite me rendre Ă  Paname demain matin

La NLU sera capable d'extraire Paname comme était le nom d'une ville. Cependant dans les configuration nous avons des logiques en fonction des entités mais nous n'avons pas utilisé Paname mais Paris.

Si nous avons ajouter dans la configuration de l'entité ville un synonymes Paris: Paname, ville lumiÚre, ... L'algorithme sera capable de ressortir Paris.

TIP

Les valeurs des synonymes sont automatiquement ajoutés aux mots clés de l'entité

# Sauvegarder l'entité dans un attribut

Notez bien qu'une des grandes utilités de pouvoir détecter des entités, c'est de les garder en mémoire => donc de les sauvegarder dans un attribut.

Pour cela, il faut cocher la case Sauvegarder dans un attribut et choisir l'attribut dans lequel stocker l'entité détectée par le bot.

Vous pourrez ensuite utiliser cette valeur dans la conversation ou dans un workflow interfacé avec votre SI.

# Regex

Ici la logique est la mĂȘme que pour les intentions. Si les "mots-clĂ©s" qui correspondent aux valeurs possible de votre entitĂ©s, vous pouvez crĂ©er des rĂšgles de Regex.

TIP

Comme pour les mots clés, il faut ajouter quelques phrases d'entrainement avec des valeurs d'entités qui correspondent au regex dans les phrases d'entrainements.

# Configuration

La configuration va vous permettre de rediriger les répondants vers une ressource ou une compétence en fonction des intentions et des entités que nous aurons été capable d'extraire.

Cette option est disponible dans la partie Entrainement de la NLU. Logique entity_priority

Nous avons 2 choix principaux dans la configuration:

  • Favoriser l'intention pour le choix de la logique
  • Favoriser les entitĂ©s pour le choix de la logique

Prenons un exemple: Je veux réinitialiser mon mot de passe sur SAP Nous comprenons:

  • intention: rĂ©initialiser mot de passe
  • entitĂ©s: SAP => application-type

# Cas 1: Priorité à l'intention (configuration de base)

Nous allons rediriger version une configuration qui a l'intention réinitialiser mot de passe.
Si nous en trouvons qu'un rĂ©initialiser mot de passe - Ø entitĂ© donc utiliserons quand mĂȘme cette logique car nous estimons que le sens de la phrase est prioritaire (intention first).

# Cas 2: Priorité aux entités (Réglages possible dans entrainement)

Nous avons toujours la mĂȘme configuration rĂ©initialiser mot de passe - Ø entitĂ©.

Cependant si nous trouvons une configuration Ø intention - application-type nous allons privilégier cette configuration. (entity first)

TIP

N'hésitez pas à demander à votre chef de projet la meilleure méthode pour configurer votre chatbot en fonction de votre cas d'usage.

C'est plus simple de partir avec la bonne configuration que de changer en cours de route.

# Autres options de configuration

Pour chaque configuration en plus de la logique vous avez plusieurs options comme dans l'image ci dessous: Logique option

  • Reprise du context: La reprise du contexte va permettre Ă  vos utilisateurs de poser des questions et de revenir au mĂȘme endroit de la conversation. Pour plus d'information vous pouvez lire la FAQ Voici un exemple de conversation qu'il est possible de crĂ©er avec cette option Logique PrĂ©cision

  • ConsidĂ©rer comme non compris: Cette option vous permettra simplement au niveau statistiques. Elle permet d'incrĂ©menter le misunderstood et total_misunderstood de 1 mĂȘme si on a trouvĂ© cette configuration.

  • Demander une prĂ©cision avant la recherche: Vous permet de crĂ©er des conversation comme celle ci-dessous trĂšs simplement Logique PrĂ©cision vous pouvez lire la FAQ

  • Logique en fonction de la valeur des entitĂ©s: Comme on peut le voir dans l'exemple ci-dessous, nous avons une logique particuliĂšre si la valeur de l'entitĂ© dĂ©tectĂ©e est SAP.

# Pour plus de détails vous pouvez Lire la FAQ

Logique option

# RequĂȘtes NLU

Retrouvez dans cette partie les phrases qui ont été analysées par nos algorithmes de compréhension du langage naturel.

SĂ©lectionnez le type d'algorithme et vous verrez les requĂȘtes de vos utilisateurs que nous avons traitĂ©es avec cet algorithme et ce que nous avons compris.

RequĂȘte NLU Type

  • NLU: Entrainer votre chatbot Ă  dĂ©tecter intention et entitĂ©s dans les requĂȘtes de vos utilisateurs
  • Elastic Search: AmĂ©liorer la recherche dans les FAQ en analysant ce que nos comment nos algorithmes ont rĂ©agi Ă  une requĂȘte utilisateur.

TIP

Une mĂȘme phrase peut ĂȘtre prĂ©sente dans les deux catĂ©gories car c'est fortement probable que nous l'ayons analysĂ©e avec les deux algorithmes.

Il faudra donc l'archiver 2 fois si vous souhaitez la voir "disparaitre" des deux onglets.

Requete ES

Vous retrouvez ici ces informations au hover sur l'expression la plus proche

  • Expression la plus proche dĂ©tectĂ©e
  • Logique associĂ©e (c’est-Ă -dire ressource dans laquelle nous avons trouvĂ©e cette expression)

Nous ne pouvons pour le moment pas vous permettre depuis cette vue d'ajouter, de modifier, ... des mots clés dans les ressources. Nous travaillons activement pour vous proposer dans les prochains mois une nouvelle interface qui vous fera gagner du temps.

# Analyser la compréhension des algorithmes NLU

Dans cette partie, vous pourrez retrouver toutes les phrases que l'algorithme a traité depuis des conversations avec les répondants. Voici ce que vous devez voir pour un bot avec des utilisateurs:

Requete NLU Vous obtenez donc 5 informations majeures pour chaque requĂȘte :

  1. Le score au moment ou la requĂȘte a Ă©tĂ© faite (La date apparait au passage de la souris sur la ligne en question)
  2. l'intention comprise
  3. Un bouton pour corriger l'intention comprise
  4. Un bouton pour archiver la requĂȘte
  5. Un bouton pour retester la requĂȘte => c'est trĂšs utile pour obtenir le nouveau score (puisque la requĂȘte peut dater de plusieurs mois mais votre modĂšle NLU dater de 5 minutes).

Vous pouvez également corriger une entité mal étiquetée comme expliqué dans cet article (opens new window).

Si jamais vous voyez en testant la NLU qu'une entité n'est pas détectée, vous pouvez utiliser cet article pour résoudre votre problÚme (opens new window).

Que faire si votre bot ne se comporte pas pareil pour deux phrases extrĂȘmement similaires ? => regardez cette vidĂ©o (opens new window)

# Tester la requĂȘte avec l'entrainement actuel

TIP

L'onglet "RequĂȘtes NLU" de la section NLU affiche des informations qui sont des photos faites Ă  l'instant oĂč la requĂȘte a Ă©tĂ© tapĂ©e. Ce qui signifie que les informations ne sont peut ĂȘtre plus valides au moment oĂč vous les consultez (en effet, avoir des informations valides au moment de la consultation signifierai rĂ©-entrainer la NLU Ă  chaque affichage de la page ; difficilement rĂ©alisable du fait du temps de calcul nĂ©cessaire ⚙ đŸ”„ ).

Vous pouvez nĂ©anmoins obtenir ces informations mises Ă  jour, requĂȘte par requĂȘte, en cliquant sur le bouton dĂ©diĂ© : "tester"

Requete NLU

Sur l'exemple ici, en cliquant sur le bouton "tester" de la 4Ăšme ligne, le rĂ©sultat va ĂȘtre :

Requete NLU

On constate qu'ici les informations diffĂšrent de ce qui est prĂ©sentĂ© sur la vue par ligne. Par exemple l'intention reconnue est bien "partager mon chatbot" alors que sur la vue par ligne, l'intention reconnue (au moment oĂč la requĂȘte a Ă©tĂ© tapĂ©e par un utilisateur) Ă©tait "mettre Ă  jour...". Entre temps (le moment oĂč la requĂȘte a Ă©tĂ© tapĂ©e et le moment ou on consulte cette page), la NLU a dĂ» ĂȘtre rĂ©-entrainĂ©e, ce qui explique l'"amĂ©lioration" des informations 👍

# Corriger une phrase mal comprise

Pour corriger une phrase, vous pouvez commencer par ajouter/supprimer/modifier les entités que vous souhaitez en cliquant sur le mot (ou l'expression en question). Ensuite, en cliquant sur corriger, vous pourrez sélectionner la bonne intention.

Cliquez sur Valider (Oui je réassigne) et la phrase sera alors ajoutée aux phrases d'entrainement pour cette intention.

réassigner une requete NLU

Voici une vidéo qui reprend l'explication pas à pas Voir la vidéo (opens new window)

# Bavardage

# Entrainement

C'est ici que vous pouvez personnaliser les paramĂštres de votre NLU. Comme on peut le voir dans l'image ci-dessous, vous avez la main sur 4 options dans l'entrainement et l'utilisation de la NLU ParamĂštres de la NLU

# Algorithme d'extraction d'intentions et d'entités

Si vous souhaitez utiliser du machine learning pour extraire une intention et une (ou plusieurs) entité(s) d'une phrase saisie pour un répondant, il faut activer cette option.

Cette option est active de base.

Vous pouvez la désactiver si vous réaliser un bot FAQ trÚs simple. Dans ce cas nous allons favoriser l'algorithme de recherche FAQ

# Algorithme de recherche FAQ

Si vous bot contient des FAQ, vous devez activer cette option.

Nous avons 2 cas d'usage ou cette option est active:

La NLU intention/entités est activée

Dans ce cas, nous allons dans un premier temps utiliser la NLU. Si celle ci nous redirige vers une compétence de type FAQ, nous allons faire une recherche dans l'ensemble des ressources pour trouver la ressources la plus adéquate avec la question du répondant.

La NLU intention/entités n'est pas activée

Dans ce cas, nous allons directement cherché la ressources la plus adapté pour répondre à votre répondant. Nous n'avons aucune information sur la compétence dans laquelle nous devons chercher donc nous allons chercher dans toutes les ressources de type FAQ.

TIP

Dans tous les cas pour que cela fonctionne, il ne faut pas oublié d'ajouter des mots-clés dans les ressources en question voir la partie Ressources

# Utilisation du contexte

L'utilisation du contexte peut-ĂȘtre trĂšs utile dans le cas de FAQ.

Cette option va nous permettre de créer de conversation comme celle ci:

Bonjour, bienvenu, comment puis-je vous aider?

Consulter aide
Créer ticket

Je voudrais savoir comment uploader un fichier sur Teams

Pour uploader un fichier sur Teams, ....

Et le partager ?

Pour partager un fichier sur Teams, ....

On se rend compte que le chatbot à garder le contexte Teams et à simplement fait une recherche sur la précision.

On peut également utiliser cette fonctionnalité pour le cas d'usage suivant

Bonjour, bienvenu, comment puis-je vous aider?

Consulter aide
Créer ticket

Je voudrais savoir comment uploader un fichier sur Teams

Pour uploader un fichier sur Teams, ....

Et sur Sharepoint ?

Pour uploader un fichier sur Sharepoint, ....

TIP

Nous conseillons d'activer cette option si vous avez des FAQ de tailles raisonnables (15-20 ressources par FAQ).

# Donner la priorité aux entités

La configuration va vous permettre de rediriger les répondants vers une ressource ou une compétence en fonction des intentions et des entités que nous aurons été capable d'extraire.

Nous avons 2 choix principaux dans la configuration:

  • Favoriser l'intention pour le choix de la logique
  • Favoriser les entitĂ©s pour le choix de la logique

Prenons un exemple: Je veux réinitialiser mon mot de passe sur SAP Nous comprenons:

  • intention: rĂ©initialiser mot de passe
  • entitĂ©s: SAP => application-type

# Cas 1: Priorité à l'intention (configuration de base)

Nous allons rediriger version une configuration qui a l'intention réinitialiser mot de passe.
Si nous en trouvons qu'un rĂ©initialiser mot de passe - Ø entitĂ© donc utiliserons quand mĂȘme cette logique car nous estimons que le sens de la phrase est prioritaire (intention first).

# Cas 2: Priorité aux entités (Réglage possible dans entrainement)

Nous avons toujours la mĂȘme configuration rĂ©initialiser mot de passe - Ø entitĂ©.

Cependant si nous trouvons une configuration Ø intention - application-type nous allons privilégier cette configuration. (entity first)

Voici les deux rĂ©sultats avec exactement la mĂȘme NLU

TIP

N'hésitez pas à demander à votre chef de projet la meilleure méthode pour configurer votre chatbot en fonction de votre cas d'usage.

C'est plus simple de partir avec la bonne configuration que de changer en cours de route.

# Langues et score de certitude

Vous pouvez personnaliser la langue de votre chatbot. Si vous souhaitez ajouter une nouvelle langue, c'est possible. Nous limitons les langues disponibles mais nous pouvons rajouter des nouvelles langues sans aucun soucis.

Etant donnĂ© les algorithmes que nous utilisons les performances ne seront pas les mĂȘmes dans toutes les langues. La disponibilitĂ© de donnĂ©es d'entrainement open source aidant fortement la comprĂ©hension d'une langue par une machine.

Si vous ajouter plusieurs langues, il faudra un jeux de données par langue. Il faudra également que tout le contenu soit dupliqué par langue.

DANGER

GĂ©rer plusieurs langues sur un mĂȘme chatbot est possible mais peut rapidement devenir complexe. Si vous avez besoin de le faire, n'hĂ©sitez pas Ă  nous contacter nous pourrons vous conseiller sur la meilleur maniĂšre de gĂ©rer cette problĂ©matique.

ParamĂštres de la NLU

# Optimisations de l'entrainement

Enfin, nous avons ajouté une derniÚre partie qui indique les optimisations possible pour vos jeux de données.

Nous remontons les principales erreurs qui peuvent exister dans votre jeux de données d'entrainement, essayez de garder cette liste vide pour de meilleurs performances. ParamÚtres de la NLU