# Introduction

Nous avons décidé début 2022 de changer nos algorithmes de compréhension du langage naturel pour répondre aux mieux aux demandes de la majorité de nos clients qui est de gérer le support interne (IT, RH, ...).

Nous sommes donc passés d'une "NLU" basée sur des intentions et des entités vers une NLU simplement basé sur des concepts.

# Qu'est ce qu'un concept

Un concept est une idĂ©e qui sera reprĂ©sentĂ© par un mot ou un ensemble de mots dans une requĂȘte utilisateur.

Par exemple: Je veux commander une pizza. 'Pizza' peut ĂȘtre considĂ©rĂ© comme un concept de "plat/nourriture/aliment".

Il est alors possible de définir pour le concept un ensemble de mots clés qui vont permettre de déclencher la logique assicé à ce concept.

Par exemple pour pizza => aliment. Nous pouvons rajouter dans les mots-clés un liste de plusieurs plats qui permettra à l'algorithmes de les reconnaitre. (lasagnes, couscous, hachis parmentier, ...).

TIP

Nous sommes actuellement en train de développer un outil qui va permettre d'enrichir de maniÚre automatique cette liste pour avoir un meilleur résultat sans passer plus de temps pour l'entrainemment.

# Comment sont repérés les concepts

Nous utilisons de nombreux algorithmes pour dĂ©tecter dans une requĂȘtes utilisateur (ou phrase d'entrainement) le ou les mots "clĂ©s" qui donnent du sens Ă  la phrase. Nous les prĂ© tagguons alors comme des concepts.

Ensuite, libre Ă  vous de les modifier, les enrichir, les supprimer, les ajouter, etc.

# Commment utiliser les concepts

Comme on l'a vu dans l'exemple ci-dessus: 'Je veux commmander une pizza'.

Nous pouvons jouer avec les cooncepts pour faire des différenciation trÚs avancées en fonction du résultat escompté. Par exemple, nous pouvons créer définir pizza comme appartenant à ces tous les concepts ci-dessous. Le résultat dans le chatbot sera forcément trÚs différent en fonction des choix que nous faisons ici.

  • aliment
  • plat
  • plat italien
  • plat Ă  emporter
  • junk food

# Labels et concepts parents / enfants.

Pour organiser vos concepts, il est possible de créer des concepts "parents" et donc des concepts "enfants".

Prenons un exemple pour illustré ce cas.

Nous avons un chatbot de support ITSM qui permet d'aider les utilisateurs sur les application métier de l'entreprise.

Les process sont différents en fonction des applications et du type de problÚmes.

Pour simplifier les processus et coller au plus prÚs des processus méétier existant il est possible de regrouper les concepts et de les "lier".

Prenons les requĂȘtes utilisateur ci-dessous:

  • J'ai un problĂšme de connexion sur Outlook
  • Je souhaite crĂ©er un nouvel employĂ© sur Azure
  • Je souhaite un crĂ©er un nouveau champs dans le formulaire XXXX sur SAP

On aura les concepts ci-dessous:

  • application: [Outlook, Azure, SAP]
  • problĂšme: [connexion, crĂ©ation]

D'un point de vue métier, on comprend aisément que le processus sera différent entre les application Microsoft et SAP.

On peut donc créer 3 concepts plutÎt que 2

  • application MS: [Outlook, Azure]
  • application: [SAP]
  • problĂšme: [connexion, crĂ©ation]

Cependant, on souhaite utiliser la mĂȘme logique opur tous les problĂšmes de connexion quelques soit l'application. On va donc prĂ©ciser que le concept 'application MS' est un "enfant" du concept application.

Pour ce faire, dans le concept 'application MS' on va ajouter le label 'application'.

On obtient alors une configuration comme ci-dessous:

  • application MS: avec un label (concept parent) application

  • application: avec un concept "enfant" application MS

Vous pouvez naviguer dans les concepts enfants en cliquant sur application MS. NAvigation concepts

đŸ™‹â€â™‚ïž

N'hésitez pas à demander de l'aide à votre contact chez Vizir pour qu'il vous aide à strucurer les concepts. C4est trÚs important et ça simplifiera largement la maintenance de votre chatbot.

# Conseils d'utilisation

Nous conseillons de partir avec un nombre limitĂ© de concepts et de les ajouter Ă  partir des requĂȘtes utilisateurs issues des conversations entre le chatbot et vos utilisateurs.

Il faut faire trĂšs attention Ă  ne pas entrainer un mĂȘme concept avec des mots clĂ©s identiques ou trop similaires. Dans ce cas, l'algorithme choisira le concept le plus proche mais vous n'ĂȘtes pas garantis d'obtenir le rĂ©sultat espĂ©rĂ©.

# Usage

# Message de clarification

Dans le message de clarification, on peut utiliser le nom des concepts que le chatbot à trouver pour améliorer l'UX et montrer à l'utilisateur pourquoi le chatbot hésite entre plusieurs ressources.

Pour cela vous pouvez utiliser la variable {conceptMessage} dans le message de clarification.