Documentation dydu
EnglishFrench
  • Un même logiciel, de multiples applications
  • Guide de première utilisation
    • Prise en main
    • Créer votre bot
    • Créer votre première connaissance
    • Créer et publier votre chatbot
    • Cas d'utilisation fréquents
    • Bonnes pratiques
    • Glossaire
  • Contenus
    • Connaissances
      • Gestion des connaissances
      • Gestion des thématiques
      • Types de connaissances
        • Réponse à une question
        • Réponse complémentaire
        • Réponse prédéfinie
        • Ciblage comportemental
        • Slot filling
      • Eléments de réponse
      • Accessibilité des réponses des bots
      • Arbre de décision
      • Commentaires
      • Tester le bot
      • Alertes qualité
    • Carte des connaissances
    • Groupes de formulations
    • Phrases générales
    • Langues / espaces
    • Conditions de contexte
    • Contenus externes
      • LLM : comment configurer chaque type de modèle ?
      • VertexAI Gemini
    • Galerie
    • Services Web
      • Exemples de configuration (REST)
      • Configurer l’OIDC sur keycloack pour un Service Web
      • Questions Fréquentes
    • Avancé
      • Scripts serveurs
      • Modèles de réponse prédéfinis
      • Variables
      • Déclencheurs de web services
      • Top connaissances
    • Outils
    • Import/Export de connaissances
  • Apprentissage
    • Conversations
    • Suggestions
    • Phrases incomprises
  • Statistiques
    • Exploitation
      • Important
      • Conversations
      • Visiteurs
      • Thématiques
      • Connaissances
      • Qualification
      • Avis des utilisateurs
      • Liens cliqués
      • Reformulations
      • Performance
      • Autres
    • Livechat
      • Conversations
      • Connaissances
      • Opérateurs
      • Satisfaction
      • Files d'attente
    • Base de connaissances
      • Formulations
      • Utilisateurs
      • Matches
    • Export
    • Configuration
  • Statistiques personnalisées
    • Rapports
    • Alertes
    • Configuration
      • Rapports
      • Exports
      • Sources prédéfinies
      • Alertes
      • Préférences
      • Annexe : liste des indicateurs
  • Livechat
    • Activer le livechat
    • Configuration de la base de connaissances
    • Livechat DYDU
      • Aperçu des interfaces
        • Interface opérateur
        • Interface manager
      • Configuration livechat DYDU
        • Configuration générale
        • Compétences
        • Files d'attente
          • Général
            • Mise en place de la file d'attente
          • Compétence
            • Mise en place de la file d'attente par compétence
            • Mise en place d'une connaissance avec la file d'attente par compétence
        • Capacité de l'opérateur
        • Paramètres de compte
    • Connecteur Livechat Genesys
  • Intégrations
    • FAQ
      • FAQ statique
      • FAQ dynamique
    • MetaBot
    • Actions javascript
    • Règles personnalisées du ciblage comportemental
    • Canaux
      • Chatbox
        • Intégration d'une chatbox dans une webview
      • Customisation avancée
        • Éditeur Css
          • Teaser
            • Modification CSS teaser
          • Header
            • Modification CSS header
          • Body
            • Modification CSS body
        • Éditeur JS Custom
        • Gestion des libellés
        • Intégrations possibles
      • Connecteurs
        • Teams
        • Meta
          • Messenger
          • Instagram
          • WhatsApp
          • Fonctionnalités et compatibilité META
          • Contrôle d'application Meta
    • LLM - IA générative
  • Préférences
    • SAML 2
    • OpenID Connect (OIDC)
    • Droits et utilisateurs
    • Bot
      • Général
      • Conversations
      • Questionnaires
      • URLs
      • Champ de recherche
  • Autres
    • Comment fonctionne votre bot?
    • Protection des données
      • Politique de gestion des cookies
    • Console des logs
    • Mots-clés spéciaux
    • Aspects techniques
      • Hébergement
      • Infrastructure
    • Sécurité
      • Informations générales
      • Usage des serveurs
      • Outils open source
      • Expiration session utilisateur
  • Développeurs
    • Référence API
      • Authentification
      • Boîte de dialogue API
      • Export des Conversations
      • Champ de recherche
      • Import/Export du bot
      • Import/Export Base de connaissances
      • API de statut du serveur
      • Accès aux APIS
      • Gestion des utilisateurs du BMS
    • Chatbox V5
      • Mise en place et intégration
  • Release Note
Propulsé par GitBook

Tous droits réservés @ 2023 dydu.

Sur cette page
  • Structure linguistique
  • Étapes
  • Enrichissement des formulations
  • Comparatif

Cet article vous a-t-il été utile ?

  1. Autres

Comment fonctionne votre bot?

Cette page vous présente quelques notions de la compréhension du langage naturel des bots dydu.

Structure linguistique

Une phrase est découpée en mots ou mots-composés. Chacun de ces mots est associé à un ensemble de sens et à un poids. En effet, il existe de nombreux homonymes et de nombreux mots polysémiques. Lorsqu'un mot est porteur de plusieurs sens, l'ensemble de ses sens est conservé, il n'y a pas de choix à priori sur un sens à conserver.

Chaque sens est associé à une pénalité. En effet, les sens d'un mot n'ont pas forcément la même probabilité d'être utilisés.

Le poids des mots est dépendant de la fréquence du mot dans la langue utilisée.

La structure globale est donc la suivante :

Mot 1

Poids

Sens 1 - Pénalité - Sens 2 - Pénalité - ...

Mot 2

Étapes

Correction orthographique

Les fautes d'orthographe étant courantes dans les phrases traitées par le chat automatique, une correction s'avère être nécessaire.

La technologie dydu utilise une librairie basée sur le correcteur dorthographique Hunspell d'Open Office et de Firefox. Cette librairie a été adaptée pour les besoins spécifiques à dydu.

La correction orthographique suggère plusieurs corrections possibles. Il n'y a pas de choix effectués et les différentes corrections proches sont conservées. Chaque correction est associée à une pénalité.

Identification des mots-composés

Les éventuels mots-composés sont identifiés dans la phrase, les mots les composant sont ainsi regroupés sous un nouveau sens.

Identification des lemmes

Pour chaque mot, les différents lemmes accessibles sont recherchés.

Un lemme est la forme de base non accordée et non conjuguée d'un mot, comme un verbe à l'infinitif ou encore un adjectif au masculin singulier.

Des liens vers des lemmes peuvent être définis pour les abréviations courantes, comme par exemple : « çàd → c'est à dire » ou encore « dqp → dès que possible ».

Identification des synonymes et hyperonymes

Les synonymes des lemmes ainsi que les hyperonymes sont identifiés et associés au mot.

Un hyperonyme est une généralisation du sens.

Les hyperonymes sont essentiellement utilisés pour définir un ensemble de produits ou de termes propres à la logique métier du bot.

Par exemple, chien et chat ne sont pas synonymes mais animal est un hyperonyme des deux.

Les synonymes sont renseignés dans la structure linguistique pour les phrases des internautes mais ne le sont pas pour les matches.

Des ontologies métiers peuvent être définies.

Une ontologie est composée d'un hyperonyme qui la désigne et des hyponymes qui y sont contenus. L'utilisation des ontologies dans la base de connaissances permet de réduire le nombre de formulations nécessaires et d'améliorer la compréhension du chat automatique.

Il devient alors possible de définir les ontologies suivantes :

  • Carte vitale : carte vitale, carte verte, etc. ;

  • Médecin traitant : médecin traitant, médecin de ville, médecin de famille, etc.

Calcul de la distance

La phrase de l'internaute est représentée de manière plane avec la structure présentée plus haut.

Les formulations présentes dans la base de connaissances du chat automatique peuvent également utiliser cette structure plane, mais de plus en plus elles utilisent une structure plus élaborée permettant de diminuer de manière importante la charge de travail nécessaire à la bonne compréhension du chat automatique.

Entre deux structures planes

Une fois que nous avons une structure linguistique de la phrase de l'internaute, il est possible de la comparer aux structures des phrases contenues dans la base de connaissances (appelé match).

Il s'agit d'une somme de scores partiels. À chaque fois qu'un sens est identifié comme étant présent à la fois dans les structures de la phrase et du match, le score partiel est mis à jour.

Celui-ci est dépendant du poids du mot dans la phrase et dans le match, et de la pénibilité appliquée au sens pour chacune des deux structures.

Une fois les scores partiels calculés, nous obtenons une matrice les contenant : une dimension de la matrice représentent les mots de la phrase et l'autre dimension représente les mots du match.

L'algorithme hongrois détecte dans cette matrice les cellules qui maximisent la somme.

Cet algorithme posant différents problèmes de performances lorsque les phrases sont longues, nous subdivisons la matrice en sous-ensembles disjoints avant d'appliquer cet algorithme sur chacun de ces sous-ensembles.

Afin de rendre plus concret le calcul de ce score, nous vous invitons à découvrir l'exemple suivant :

Cet exemple est réalisé sur le calcul d'une distance « à plat » sans considérer d'éventuelles combinaisons entre des groupes de formulations.

Considérons dans cet exemple le match « Perte ou vol de ma carte Vitale » et la phrase de l'internaute « perte carte vitale ».

Pour information, le score final est compris entre 0 et 1024. 0 signifie qu'il n'y a aucun point commun entre les deux phrases. 1024 signifie que les deux phrases sont identiques.

L'image suivante est issue du debugger de ce calcul. Cet outil est accessible uniquement par l'équipe dydu et permet plus simplement de comprendre la structure d'un score.

Score

Le score obtenu entre ces deux phrases est de 770 sur 1024.

Note

Dans l'hypothèse où ce score serait l'un des meilleurs obtenus pour la base de connaissances du bot, celui-ci répondra à l'internaute sous la forme d'une reformulation dans laquelle l'internaute pourra confirmer l'une des connaissances proposées ou reformuler sa phrase.

Avant d'entrer dans le détail du score, il est important de préciser que ces formulations sont proches, mais considérées comme différentes par défaut. Il faudrait donc ajouter cette phrase dans les formulations associées à la connaissance du bot pour obtenir une réponse directe.

Les bulles bleues foncées représentent les mots pour lesquels il y a une correspondance, les bulles bleues plus claires représentent les mots sans correspondantes.

Poids

Le poids de chaque mot dans la phrase est exprimé en pourcentage dans les bulles bleues.

Pénalité

Les mots présents dans les bulles roses représentent les sens associés au mot de la phrase. Certains ont une pénalité de 1024 ; soit aucune pénalité. D'autre en rose plus clair ont une pénalité à 829. Cette pénalité est appliquée pour les synonymes.

Avec une structure arborescente

Dans de nombreux cas, les questions correspondant à une connaissance utilisent une structure propre à la langue et pouvant s'exprimer avec un nombre très important de formulations.

Prenons comme exemple une connaissance « Comment modifier mon mot de passe ? »

Cette phrase est composée de deux parties indépendantes qui ont chacune un nombre important de formulations. D'une part « comment modifier » et d'autre part « mon mot de passe ».

Comment modifier

comment modifier

modification

il faudrait que je modifie

comment mettre à jour

changer de

Mon mot de passe

Mon mot de passe

mon code

mon code confidentiel

mon code secret

⇒ Dans le cas présent, si nous avions souhaité définir toutes les combinaisons possibles dans des structures planes, il aurait fallu en créer 5*4=20.

Il est en réalité uniquement nécessaire d'en créer 4 pour le « mot de passe » puisque les formulations associées à « comment modifier » sont déjà définies dans la solution.

il a été ici présenté un exemple simple avec un seul niveau mais en réalité, « comment modifier » utilise le groupe de formulations « comment ».

Comment

Comment

comment cela se passe t-il quand

comment dois-je procéder

comment faire

comment faire en cas de

connaître la marche à suivre

marche à suivre pour

les modalités pour

Ce groupe de formulations contient plusieurs dizaines de formulations. Si nous considérons ici uniquement ces 8 formulations, notre exemple de base correspond à 8*20=160 formulations dans une structure plane.

Cette compréhension fine de la langue permet donc de diminuer de manière très importante la charge de travail nécessaire tout en assurant une meilleure compréhension. En effet, il serait quasi impossible de définir via des structures planes toutes les combinaisons possibles.

Enrichissement des formulations

Pour que votre bot soit capable de répondre correctement aux internautes, il est nécessaire qu'il dispose d'un nombre important de formulations dans sa base de connaissances. Chaque connaissance est en effet associée à un ensemble de formulations qui permettent de reconnaître les phrases qui doivent aboutir à la réponse correspondante.

De manière générale, il faut compter plusieurs milliers de formulations dans la configuration d'un bot pour que sa compréhension soit correcte.

Deux outils sont présents pour améliorer de manière importante la productivité sur l'enrichissement des formulations. Cet enrichissement étant réalisé par dydu.

  • Un outil rassemble des phrases similaires mal comprises pour identifier les plus utilisées afin d'en faire une priorité ;

  • Un autre outil utilise des phrases qui ont donné lieu à une reformulation et pour lesquelles l'utilisateur a choisi l'une des reformulations. Les associations peuvent alors être acceptées ou refusées.

Cet enrichissement est manuel, les seules automatisations sont des suggestions de manière à être plus efficace mais toute modification de la base de connaissances est réalisée par une personne habilitée.

Comparatif des différents algorithmes de matching

D'autres technologies sont utilisées par les bots concurrents :

  • Analyse syntaxique ;

  • Matching mots clés.

Analyse syntaxique

L'analyse syntaxique consiste à analyser la phrase et mettre en évidence la structure de la phrase. Elle est dépendante de la langue dans laquelle l'énoncé est exprimé (SVO : sujet-verbe-objet en français).

La structure révélée par l'analyse de la langue donne alors précisément la façon dont les règles de syntaxe sont combinées dans le texte. Cette structure est représentable par un arbre syntaxique dont les nœuds peuvent être dotés d'informations complémentaires pour une analyse fine.

Par conséquent, le sens de la phrase a de bonnes chances d'être correctement comprise par le système et ainsi éviter des contresens, même dans des cas où la nuance est subtile. Par contre, cette analyse ne peut pas aboutir lorsque les phrases sont grammaticalement incorrectes.

Matching mots clés

Le matching mot clé fonctionne de la même manière qu'un moteur de recherche.

Le système repère parmi les mots de la phrase de l'internaute ceux qui ont été mis en exergue dans les questions de la base de connaissances. Il donnera la réponse de la connaissance contenant un ou deux mots clés découverts en même temps. Certains systèmes mettent en place un ordonnancement dans les mots clés, voire un système d'exclusion de mots clés afin de gérer les ambiguïtés.

Comparatif

Dans ce tableau, vous trouverez les avantages et inconvénients de chacune des technologies.

Avantages
Inconvénients

Analyse syntaxique

Compréhension précise de la phrase Contre-sens rares

Complexité de la configuration de la base de connaissances Exige que la phrase d'entrée soit grammaticalement correcte (moins de 50% des questions à un bot) Substitué par des mots-clés correspondants si aucun résultat Coûteux en ressources CPU et mémoire

Matching mots clés

Configuration initiale facile Algorithme très rapide et peu coûteux

Contresens fréquents Les règles d'ordonnancement et d'exclusions peuvent devenir fastidieuses

Calcul de la distance

Compréhension précise de la phrase Mauvaise interprétation rare Algorithme rapide qui utilise peu de ressources CPU et mémoire **Ne nécessite pas la saisie d'une phrase d'entrée grammaticalement correcte **

Période d'apprentissage nécessaire sur les premières questions des internautes pour compléter les formulations

Voici quelques exemples des possibilités et problèmes de chacune des technologies :

Phrase de l'internaute
Analyse syntaxique
Matching mots clés
Calcul de la distance

Je cherche une carte bleue

La distinction est possible

La distinction n'est pas possible, les mots clés étant cherche et carte bleue

La distinction est possible

Je veux partir en voyage, mais pas en Martinique

Le système ne renverra pas de voyages en Martinique

Le système ne renverra que des voyages en Martinique

La base de connaissances devra être configurée pour tenir compte de ce cas de figure

Combien par mois ça coûte ?

La question est grammaticalement incorrecte, le système ne comprendra pas bien la question

Le système va identifier les mots clés mois et coûte et va donner la bonne réponse

La calcul de distance donnera la bonne réponse car identifiera comme étant très proche de la connaissance « combien ça coûte par mois ? »

PrécédentAutresSuivantProtection des données

Dernière mise à jour il y a 5 mois

Cet article vous a-t-il été utile ?

Ce calcul de distance est inspiré sur l'algorithme TF-IDF ().

Il s'agit donc de déterminer la somme maximale de ces scores partiels en ne considérant qu'une fois chaque mot dans la somme. Il ne faut pas rester bloqué dans des maxima locaux qui ne seraient pas optimaux pour la solution globale. C'est un problème d'affectation, nous utilisons dès lors l'algorithme hongrois ().

https://en.wikipedia.org/wiki/Tf-idf
https://en.wikipedia.org/wiki/Hungarian_algorithm_hongrois