Création d'une intention

Voici les étapes à suivre pour créer une intention dans une brique.

Pour créer une intention, procédez comme suit :
  1. Cliquez sur Intentions Il s'agit d'une image de l'icône Intention. dans la barre de navigation de gauche.
  2. Si vous avez déjà défini vos intentions dans un fichier CSV, cliquez sur Importer des intentions. Import d'intentions à partir d'un fichier CSV décrit le format de ce fichier. Sinon, cliquez sur Ajouter une intention. Votre brique doit comporter au moins deux intentions.
  3. Cliquez sur Il s'agit d'une image de l'icône Modifier. afin de saisir une expression ou un nom descriptif pour l'intention dans le champ Nom de la conversation. Par exemple, si le nom de l'intention est callAgent, le nom de la conversation peut être Parler à un représentant client. Lorsque la brique n'arrive pas à résoudre un message en une intention, elle génère les expressions et noms conviviaux que vous saisissez dans le champ Nom de la conversation comme options répertoriées dans Voulez-vous les messages d'homonymie décrits dans Fonctions de la marge de gain de confiance et Configuration de l'acheminement des intentions et des questions/réplications.
  4. Ajoutez le nom de l'intention dans le champ Nom. Si vous n'entrez pas de nom de conversation, la valeur du champ Nom est utilisée à la place. N'oubliez pas qu'un nom abrégé sans signe de ponctuation finale peut nuire à l'expérience utilisateur. Le nom de l'intention s'affiche dans le champ Nom de la conversation pour les briques créées avec des versions précédentes de Digital Assistant.
    Remarque

    Lorsque vous nommez vos intentions, n'utilisez pas system. comme préfixe. system. est un espace de noms réservé aux intentions que nous fournissons. Les intentions avec ce préfixe étant traitées différemment par l'entraîneur Tm, l'utilisation de ce préfixe peut entraîner la résolution inattendue de vos intentions.
  5. Ajoutez une description de l'intention. La description doit mettre l'accent sur ce qui rend l'intention unique et sur les actions ou la tâche qu'elle effectue.
  6. S'il s'agit d'une intention de réponse, ajoutez une réponse courte au champ Réponse.
  7. Eventuellement, dans le champ Annotations, ajoutez des balises pour l'intention afin de la classer d'une manière qui vous soit utile. Vous pouvez utiliser les mots de votre choix.

    Conseil :

    Sur la page Intentions, vous pouvez filtrer l'affichage des intentions par annotation.
  8. Commencez à créer le corpus d'entraînement en ajoutant des exemples de variation illustrant la signification de l'intention. Pour une résolution optimale des intentions, utilisez des termes, des expressions et des formulations propres à chaque intention. Idéalement, vous devriez baser vos données d'entraînement sur des phrases du monde réel. Vous pouvez sauvegarder vos variations en cliquant sur Entrée ou en cliquant en dehors du champ de saisie. Pour gérer le jeu d'apprentissage, sélectionnez une ligne afin d'accéder aux fonctions Modifier (Il s'agit d'une image du bouton Modifier.) et Supprimer (Il s'agit d'une image de la fonction Supprimer.).
    Si votre brique prend en charge plusieurs langues natives, élargissez l'ensemble d'entraînement avec des expressions dans les langues secondaires afin de renforcer la précision du modèle dans la langue concernée et dans toutes les autres langues natives prises en charge par la brique.

    Pour obtenir des conseils sur la création d'un corpus d'entraînement efficace, reportez-vous à Création du corpus d'entraînement.
    Pour permettre à votre brique d'établir une distinction claire entre les intentions, créez une intention qui résout le charbonnage ou les saisies utilisateur inappropriées.
    Bien que les variations puissent être ajoutées à une intention existante manuellement ou en important un fichier CSV, elles peuvent également être affectées à des intentions via des travaux de fabrication de données et à l'aide du réentraînement d'analyse.
  9. Dans le champ Suggestions d'écriture automatique, saisissez un ensemble d'expressions suggérées qui aident l'utilisateur à entrer une demande correctement formulée. N'ajoutez pas l'ensemble complet de données d'entraînement. Ajoutez plutôt un ensemble d'expressions représentant les demandes utilisateur idéales. L'ajout d'un ensemble de variations trop large peut induire les utilisateurs en erreur et entraîner un comportement inattendu.
    Cette étape est facultative. Cette fonction est prise en charge uniquement par le canal Oracle Web.
  10. Ajoutez une entité si l'intention en a besoin pour la résolution de la saisie utilisateur. Pour savoir comment procéder, reportez-vous à Ajout d'entités aux intentions.
  11. Pour apprendre à votre brique à comprendre les saisies utilisateur à l'aide de l'ensemble de variations que vous avez fourni jusqu'à présent, cliquez sur Entraîner, choisissez un modèle, puis cliquez sur Soumettre.
    Comme décrit dans Quel modèle d'entraînement utiliser ?, nous fournissons deux modèles qui apprennent à partir de votre corpus : l'entraîneur Ht et l'entraîneur Tm. Chacun de ces modèles utilise un algorithme différent pour rapprocher la saisie utilisateur de vos intentions. L'entraîneur Ht utilise la correspondance de modèle tandis que l'entraîneur Tm est un algorithme d'apprentissage automatique qui utilise des vecteurs de mot. Les briques qui utilisent la prise en charge des langues natives de Digital Assistant et les briques avec des intentions de réponse nécessitent l'entraîneur TM.
    En règle générale, vous devez suivre le processus suivant :
    1. Créez le corpus d'entraînement initial.

    2. Entraînez-le à l'aide de l'entraîneur Ht. Vous devez commencer par l'entraîneur Ht, car il ne nécessite pas un ensemble important de variations. Tant qu'il existe suffisamment de variations pour lever l'ambiguïté des intentions, votre brique sera en mesure de résoudre les saisies utilisateur.

      Si vous recevez un message Un problème est survenu lorsque vous essayez d'entraîner votre brique, il se peut que vous n'ayez pas ajouté assez de variations pour prendre en charge l'entraînement. En premier lieu, assurez-vous de disposer d'au moins deux intentions comportant au moins deux variations chacune (et plus de préférence). Si vous n'avez pas ajouté suffisamment de variations, fournissez-en d'autres, puis entraînez la brique.

    3. Affinez les corpus et effectuez un nouvel entraînement à l'aide de l'entraîneur Ht. Répétez l'opération autant de fois que nécessaire. L'entraînement est un processus itératif.

    4. Entraînez le corpus à l'aide de l'entraîneur Tm. Utilisez cet entraîneur lorsque vous avez accumulé un ensemble riche d'intentions.

    La mention Entraînement nécessaire apparaît lorsque vous ajoutez une intention ou lorsque vous mettez à jour une intention en ajoutant, en modifiant ou en supprimant des variations. Pour mettre à jour l'entraînement, choisissez un modèle d'entraînement et cliquez sur Entraîner. Le modèle affiche un point d'exclamation chaque fois qu'il requiert un entraînement. Lorsque l'entraînement est à jour, une coche s'affiche.

  12. Cliquez sur Tester les variations (en haut à gauche) pour ouvrir le testeur de variations. Sélectionnez la langue cible, puis saisissez des variations semblables à celles de votre ensemble d'entraînement. Le testeur de variations renvoie le niveau de confiance pour la variation et permet d'affecter la variation à une intention, ou de l'ajouter en tant que cas de test.
    Pour consigner les résultats de test de vos intentions, activez la journalisation des intentions de conversation ( Paramètres > Général > Activer les analyses).
  13. Cliquez sur Valider et consultez les messages de validation pour rechercher les erreurs telles qu'un nombre trop faible de variations et pour obtenir des conseils sur l'application des meilleures pratiques, comme l'ajout d'une intention unresolvedIntent.

Ajout d'entités aux intentions

Certaines intentions nécessitent des entités (intégrées et personnalisées) pour réaliser une action dans le flux de dialogue ou effectuer un appel REST vers une API de back-end. Le système utilise uniquement ces entités, aussi appelées entités d'intention, pour exécuter l'intention associée. Vous pouvez associer une entité à une intention lorsque vous cliquez sur Ajouter une nouvelle entité et que vous sélectionnez des entités personnalisées (Il s'agit d'une image de l'icône Personnalisé.) ou intégrées (Il s'agit d'une image de l'icône Système.). Si vous affectez une entité intégrée, conservez l'option agnostique de la valeur activée (valeur par défaut) si des valeurs d'entité spécifiques ne sont pas prises en compte dans la classification des intentions (ce qui est généralement le cas). Si l'intention requiert une valeur d'entité spécifique, désactivez cette fonction.
Remarque

nostique de la valeur s'applique uniquement aux entités intégrées. Vous ne pouvez pas l'appliquer à des entités personnalisées.


Vous pouvez également cliquer sur Nouvelle entité pour ajouter une entité propre à l'intention.

Conseil :

Seules les entités d'intention incluses dans la charge utile JSON sont envoyées au service de composant et renvoyées par celui-ci. Les entités qui ne sont pas associées à une intention ne seront pas incluses, même si elles contribuent à la résolution de l'intention en reconnaissant la saisie utilisateur. Si votre composant personnalisé doit accéder aux entités par le biais de correspondances d'entité, veillez à ajouter l'entité à votre intention.

Entités d'intention indépendantes de la valeur

La fonctionnalité nostique de la valeur vous permet d'ajuster l'incidence des valeurs d'entité sur la classification d'intention. Lorsque vous activez cette fonction, les valeurs spécifiques d'une entité intégrée associée n'ont aucune incidence sur la classification d'intention. Toutefois, lorsque vous désactivez cette fonctionnalité, vous autorisez la valeur d'entité à jouer un rôle clé dans la résolution de l'entrée.

En général, vous pouvez laisser cette fonctionnalité dans son paramètre par défaut (activé) car une valeur d'entité spécifique prend rarement en compte la classification des intentions. Les variations d'entraînement d'une intention de soldes de compte, par exemple, peuvent inclure des dates spécifiques (Quel était mon solde le 5 octobre ?), mais ces valeurs ne sont pas le facteur déterminant pour la résolution de l'entrée dans l'intention. Si vous laissez l'option agnostique de la valeur activée, la résolution de l'intention sera, dans la plupart des cas, améliorée car elle empêche les valeurs d'affecter les scores de confiance ou même de signaler une intention non intentionnelle. Toutefois, chaque fois que des valeurs spécifiques jouent un rôle clé dans la résolution d'intention, vous devez désactiver cette fonctionnalité. Par exemple, vous désactivez cette fonction si la valeur d'une DATE est essentielle pour distinguer une intention de vérification des soldes de congés passés d'une intention de vérification des soldes de congés futurs. Si ces intentions étaient indépendantes de la date, le modèle ignorerait le passé et le présent et ne résoudrait pas correctement l'entrée.
Exemples d'intention Entité associée Variations de formation Activer la valeur indépendante de la valeur ?
Solde comptable DATE
  • Pouvez-vous me dire le solde de mon compte hier ?
  • Combien d'argent ai-je pour vérifier ?
  • Quel était mon solde le 5 octobre ?
  • Quel était le solde de ma carte de crédit la semaine dernière ?
  • Quel est mon solde bancaire aujourd'hui ?
  • Quel était le solde de mon compte épargne sur 5/3 ?
Oui - Les valeurs de date spécifiques ne signalent pas l'intention. Les différentes valeurs de date de ces variations peuvent être ignorées car un utilisateur peut demander un solde de compte à tout moment.
Heures du magasin de vacances DATE
  • Êtes-vous ouvert le 1er janvier ?
  • Êtes-vous ouvert le Thanksgiving ?
  • Heures pour le Nouvel An
  • Quelles sont les heures de magasin pour le 4 juillet ?
  • Quelles sont vos heures de vacances ?
  • Êtes-vous ouvert le Noël ?
Non : la classification de l'intention est basée sur un ensemble de valeurs spécifique (et limité) et les utilisateurs interrogent les jours fériés.
  • Vérifier le solde des congés passés
  • Vérifier le solde des congés futurs
DATE
  • Vérifier le solde des congés passés
    • Ai-je pris des congés le mois dernier ?
  • Vérifier le solde des congés futurs
    • Des vacances prévues le mois prochain ?
Non - Désactiver nostique de la valeur pour les deux intentions. Dans ce cas, les valeurs DATE indépendantes signifieraient que le modèle ne considérerait pas une valeur comme passée ou future. Une valeur "dernier mois", qui doit signaler l'intention Vérifier le solde des congés passés, sera ignorée. Par conséquent, une entrée de formulation similaire telle que "Ai-je pris un congé le mois suivant" peut être résolue de manière incorrecte à cette intention.

Import d'intentions à partir d'un fichier CSV

Vous pouvez ajouter vos intentions manuellement ou les importer à partir d'un fichier CSV. Vous pouvez créer ce fichier à partir d'un fichier CSV d'intentions exportées, ou en partant de zéro dans un tableur ou un fichier texte.

Le fichier CSV comporte six colonnes pour les briques qui utilisent le mode de prise en charge native des langues, et cinq colonnes pour celles qui ne l'utilisent pas. Voici les noms des colonnes et ce qu'ils représentent :

  • query : exemple de variation.
  • topIntent : intention à laquelle la variation doit correspondre.
  • conversationName : nom de la conversation pour l'intention.
  • answer : pour les intentions de réponse, réponse statique pour l'intention.
  • enabled : si la valeur est true, l'intention est activée dans la brique.
  • nativeLanguageTag : (pour les briques avec prise en charge des langues natives uniquement) langue de la variation. Pour les valeurs, utilisez des balises de langue à deux caractères (fr, en, etc.).
    • Pour les compétences avec la prise en charge des langues natives de Digital Assistant, cette colonne est requise.
    • Pour les briques sans prise en charge des langues natives, vous ne pouvez pas importer un fichier CSV contenant cette colonne.

Voici un extrait de fichier CSV pour une brique qui ne prend pas en charge les langues natives et qui n'utilise pas les intentions de réponse.

query,topIntent,conversationName,answer,enabled
I want to order a pizza,OrderPizza,Order a Pizza.,,true
I want a pizza,OrderPizza,Order a Pizza.,,true
I want a pizaa,OrderPizza,Order a Pizza.,,true
I want a pizzaz,OrderPizza,Order a Pizza.,,true
I'm hungry,OrderPizza,Order a Pizza.,,true
Make me a pizza,OrderPizza,Order a Pizza.,,true
I feel like eating a pizza,OrderPizza,Order a Pizza.,,true
Gimme a pie,OrderPizza,Order a Pizza.,,true
Give me a pizza,OrderPizza,Order a Pizza.,,true
pizza I want,OrderPizza,Order a Pizza.,,true
I do not want to order a pizza,CancelPizza,Cancel your order.,,true
I do not want this,CancelPizza,Cancel your order.,,true
I don't want to order this pizza,CancelPizza,Cancel your order.,,true
Cancel this order,CancelPizza,Cancel your order.,,true
Can I cancel this order?,CancelPizza,Cancel your order.,,true
Cancel my pizza,CancelPizza,Cancel your order.,,true
Cancel my pizaa,CancelPizza,Cancel your order.,,true
Cancel my pizzaz,CancelPizza,Cancel your order.,,true
I'm not hungry anymore,CancelPizza,Cancel your order.,,true
don't cancel my pizza,unresolvedIntent,unresolvedIntent,,true
Why is a cheese pizza called Margherita,unresolvedIntent,unresolvedIntent,,true

Voici un extrait de fichier CSV pour une brique avec prise en charge des langues natives qui utilise les intentions de réponse.

query,topIntent,conversationName,answer,enabled,nativeLanguageTag
Do you sell pasta,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez-vous des salades,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,fr
do you sell burgers,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Do you sell salads,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez des hamburgers,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,true,fr

Pour importer un fichier CSV, procédez comme suit :

  1. Cliquez sur Intentions (Il s'agit d'une image de l'icône Intention.) dans la barre de navigation de gauche.

  2. Cliquez sur Plus, puis choisissez Importer des intentions.
    Description de l'image import-intents.png
    Description de l'illustration import-intents.png

  3. Sélectionnez le fichier .csv, puis cliquez sur Ouvrir.

  4. Former votre brique.

Export d'intentions vers un fichier CSV

Vous pouvez réutiliser le corpus d'entraînement en l'exportant au format CSV. Vous pourrez ensuite importer ce fichier vers une autre brique.

Pour exporter vos intentions et leurs variations, procédez comme suit :
  1. Cliquez sur Intentions Il s'agit d'une image de l'icône Intention. dans la barre de navigation de gauche.

  2. Cliquez sur Plus, puis choisissez Exporter les intentions.
    Description de l'image export-corpus.png
    Description de l'illustration export-corpus.png

  3. Enregistrez le fichier. Ce fichier comporte les colonnes suivantes, qui sont décrites dans Import d'intentions à partir d'un fichier CSV :
    query, topIntent, conversationName, answer, enabled, nativeLanguageTag

Quel modèle d'entraînement utiliser ?

Nous fournissons deux modèles d'entraînement permettant de façonner la capacité cognitive de votre brique : l'entraîneur Tm et l'entraîneur Ht. Vous pouvez utiliser l'un ou l'autre de ces modèles. Chacun utilise une approche différente de l'apprentissage automatique. En général, vous entraînez vos briques à l'aide de l'entraîneur Tm avant de les passer en production. En raison de sa durée d'entraînement plus courte, vous pouvez utiliser Ht pour le prototypage ou pour les briques.
Remarque

Vous ne pouvez pas utiliser l'entraîneur Ht pour les briques avec des intentions de réponse, avec la prise en charge des langues natives ou avec un grand nombre d'intentions. Utilisez l'entraîneur Tm pour ces briques.
L'entraîneur Ht est le modèle par défaut, mais vous pouvez modifier ce paramètre en cliquant sur Paramètres > Général et en sélectionnant un autre modèle dans la liste. Le modèle par défaut apparaît dans la mosaïque du catalogue de briques.

Entraîneur Tm

L'entraîneur Tm (Tm) établit une classification très précise des intentions, même lorsqu'une brique comporte des centaines, voire des milliers, d'intentions. Même si les intentions de ces grands ensembles de données sont souvent étroitement liées et parfois "déséquilibrées" en quantité de variations, Tm peut tout de même les différencier. De manière générale, vous devriez appliquer Tm à toutes les briques avant de les passer en production.
Remarque

Lorsque vous effectuez une formation avec l'entraîneur Tm, vous pouvez également utiliser le rapport sur les variations similaires.

Vous n'avez pas besoin de regrouper vos données d'entraînement avec des variations qui tiennent compte de la casse (Tm reconnaît BlacK Friday comme Black Friday, par exemple), de la ponctuation, des verbes et noms similaires ou des erreurs d'orthographe. Dans ce dernier cas, l'entraîneur Tm s'appuie sur le contexte pour résoudre une expression même lorsqu'un utilisateur saisit un mot-clé de manière incorrecte. Voici quelques instructions générales pour la création d'un corpus d'entraînement lorsque vous développez votre brique avec ce modèle.

L'entraîneur Tm améliore la capacité cognitive de la brique par les moyens suivants :
  • Reconnaissance du contenu non pertinent. Pour Je suis super motivé par les offres qui arrivent pour le Black Friday, je suis impatient de profiter de ces offres. Pouvez-vous m'indiquer ce qui sera vendu à prix réduit pour le Black Friday ?, l'entraîneur Tm effectue les opérations suivantes :
    • Ignore le contenu superflu (Je suis super motivé par les offres qui arrivent pour le Black Friday...).
    • Résout le contenu pertinent (Pouvez-vous m'indiquer ce qui sera vendu à prix réduit pour le Black Friday ?) en intention. Dans ce cas, il s'agit de l'intention appelée Offres Black Friday.
    L'entraîneur Tm peut également faire la distinction entre le contenu pertinent et le contenu non pertinent dans un message, même lorsque le contenu non pertinent pourrait potentiellement être résolu en intention. J'ai acheté une nouvelle télé 80 pouces pour le Black Friday à 2 200 €, mais je vois aujourd'hui que cette télé est disponible en ligne à 2 100 €. Pouvez-vous vous aligner sur ce prix ?, par exemple, peut être mis en correspondance avec l'intention Offres Black Friday et avec une intention Prix aligné, qui est appropriée pour ce message. Dans ce cas, l'entraîneur Tm effectue les opérations suivantes :
    • Reconnaissance du caractère superflu du contenu J'ai acheté une nouvelle télé 80 pouces pour le Black Friday à 2 200 €, mais je vois aujourd'hui que cette télé est disponible en ligne à 2 100 €
    • Résolution de Pouvez-vous vous aligner sur ce prix ?
  • Résolution des intentions lorsqu'un seul mot ou nom correspond à une entité. Par exemple, l'entraîneur Tm peut résoudre un message composé uniquement de Black Friday en intention associée à une entité pour Black Friday.
  • Distinction entre des variations similaires (Annuler ma commande et Pourquoi avez-vous annulé ma commande ?).
  • Reconnaissance des variations hors de portée, comme Afficher les ingrédients des pizzas ou Combien de calories dans la Meat Feast, dans une brique pour passer une commande de pizza et rien d'autre.
  • Reconnaissance des variations hors domaine, comme Quel temps fait-il aujourd'hui, pour une brique de commande de pizza.

    Conseil :

    Bien que l'entraîneur Tm puisse facilement identifier qu'un message utilisateur n'est pas classifiable car il est clairement différent des données d'entraînement, vous pouvez tout de même définir unresolvedIntent avec des variations qui représentent les expressions à ne pas résoudre en intentions de votre brique. Ces expressions peuvent appartenir au domaine de la brique, mais sont hors de portée, même si elles peuvent partager certains des mots des données d'entraînement. Par exemple : Je veux commander une voiture pour une brique Pizza, qui a également été entraînée avec Je veux commander une pizza.
  • Distinction entre des entités similaires. Par exemple, Tm reconnaît que courrier n'est pas identique à courrier électronique dans le contexte d'une intention appelée Recevoir les offres par courrier électronique. Etant donné qu'il reconnaît qu'une entité appelée regular mail est hors de portée, il résout l'expression Je souhaite recevoir les offres par courrier à un niveau de confiance plus faible que Je souhaite recevoir les offres par courrier électronique.

Entraîneur Ht

L'entraîneur Ht est le modèle d'entraînement par défaut. Dans la mesure où il requiert uniquement un petit corpus d'entraînement, vous pouvez l'utiliser pendant la phase de développement des entités, des intentions et du corpus d'entraînement. Lorsque le corpus d'entraînement est arrivé à un point où les tests font état d'une résolution d'intention hautement précise, vous êtes prêt à faire passer la capacité cognitive de votre brique à un niveau supérieur en l'entraînant à l'aide de l'entraîneur Tm.

Le seul examen du corpus d'entraînement vous donne une idée générale de la façon dont l'entraîneur Ht résout les intentions. Il génère des règles de mise en correspondance à partir des exemples de phrase en balisant les catégories grammaticales et les entités (personnalisées et intégrées) ainsi qu'en détectant les mots qui ont la même signification dans le contexte de l'intention. Par exemple, si une intention appelée SendMoney comporte les phrases Send $500 to Mom et Pay Cleo $500, l'entraîneur Ht interprète pay comme un équivalent de send. Une fois l'entraînement terminé, le balisage de l'entraîneur Ht réduit ces phrases en modèles (Send Currency to person, Pay person Currency) qu'il applique à la saisie utilisateur.

Etant donné que l'entraîneur Ht s'appuie sur les phrases que vous fournissez, vous pouvez anticiper son comportement : il sera très précis lors des tests contenant des phrases semblables à celles qui constituent le corpus d'entraînement (en d'autres termes, pour les saisies utilisateur qui respectent les règles), mais il sera beaucoup moins efficace face à des saisies utilisateur non conventionnelles.

Création du corpus d'entraînement

Lorsque vous définissez une intention, vous devez tout d'abord lui donner un nom représentant une action de l'utilisateur, puis compiler un ensemble d'instructions utilisateur réelles (variations). Collectivement, vos intentions et leurs variations constituent un corpus d'entraînement. Le terme corpus permet d'exprimer rapidement l'idée qu'il s'agit de "l'ensemble des intentions et des exemples d'expression trouvés pour améliorer l'efficacité de cette brique". Le corpus est un élément clé de l'intelligence de la brique. En entraînant un modèle à l'aide de votre corpus, vous transformez essentiellement ce modèle en outil de référence pour la résolution des saisies utilisateur en une intention unique. Votre corpus d'entraînement joue un rôle clé dans la détermination du parcours emprunté par la conversation entre la personne et la brique. Vous devez donc choisir soigneusement les mots lors de sa construction.

En règle générale, la taille et la diversification de l'ensemble d'exemples d'expression permettent d'augmenter la capacité d'un modèle à résoudre précisément les intentions. Cependant, la création d'un corpus d'entraînement fiable ne commence pas par des exemples d'expression correctement formulés, mais en réalité par des intentions clairement délimitées. Les intentions doivent non seulement refléter votre cas d'emploi, mais également être clairement associées à leurs exemples de phrase. Si vous n'êtes pas sûr de l'intention à laquelle appartient un exemple de phrase, vos intentions ne sont pas distinctes les unes des autres.

Vous avez probablement des idées d'exemples de variation lorsque vous créez vos intentions, mais vous pouvez en trouver d'autres en suivant les instructions suivantes .

Instructions pour l'entraîneur Tm

  • Utilisez un seuil de fiabilité minimal de 0,7 pour toutes les briques que vous prévoyez de passer en production.
  • Appliquez des conventions de dénomination efficaces pour vos noms d'intention, de sorte qu'il soit facile de vérifier les intentions associées.
  • En règle générale, créez au moins 80 à 100 variations pour chaque intention. Selon les directives de taille et de forme de corpus, le nombre minimal de variations pour une intention est de deux. Le nombre total de variations dans votre ensemble d'entraînement ne doit pas dépasser 25 000.
  • Dans la mesure du possible, utilisez des expressions réelles non modifiées incluant les éléments suivants :
    • Langage courant
    • Abréviations standard qu'un utilisateur peut saisir ("qd" pour quand, par exemple)
    • Noms non standard, tels que les noms de produit
    • Variantes orthographiques ("cacahouète" et "cacahuète", par exemple)
    Si vous ne disposez pas de données réelles, incorporez ces éléments dans vos propres données d'entraînement. Voici quelques conseils :
    • Créez des phrases entièrement formées qui mentionnent à la fois l'action et l'entité sur laquelle l'action est effectuée.
    • Essayez de conserver une longueur de variation comprise entre 3 et 30 mots. Des variations trop courtes et dépourvues de contexte peuvent entraîner une généralisation imprévisible du modèle. Des variations trop longues peuvent empêcher le modèle d'identifier les mots et expressions pertinents. Toutefois, il peut y avoir des exceptions pour les variations à un ou deux mots lorsqu'il s'agit d'expressions couramment utilisées. Si vous attendez des messages à deux mots tels que statut commande, vérification prix, infos adhésion ou livraison internationale qui spécifient à la fois l'entité et l'action, ajoutez-les à vos données d'entraînement. Assurez-vous que vos exemples d'expression comportent à la fois une action et une entité.
    • Soyez précis. Par exemple, l'expression Quel est votre numéro de téléphone au magasin ? est plus appropriée que Quel est votre numéro de téléphone ? car elle permet à l'entraîneur Tm d'associer un numéro de téléphone à un magasin. Suite à cet apprentissage, Quel est votre numéro de téléphone portable ? sera résolu avec un score de confiance inférieur.
    • Bien que l'entraîneur Tm détecte les variations hors de portée, vous pouvez améliorer les niveaux de confiance et de précision en créant unresolvedIntent pour les variations qui appartiennent au domaine mais pas à la portée des intentions de la brique. L'entraîneur Tm apprend ainsi la limite des intentions de domaine. Vous pouvez définir unresolvedIntent pour les expressions à ne pas résoudre en intentions de votre brique. Vous voulez peut-être unresolvedIntent uniquement si les messages utilisateur ont été résolus en intentions d'une brique même s'ils ne s'y appliquent pas.
    • Variez autant que possible les mots et les expressions qui entourent le contenu important. Par exemple : "Je voudrais une pizza, s'il vous plaît", "Pouvez-vous me livrer une pizza ? ", "Une pizza, s'il vous plaît".
    • Quelques pratiques à éviter :
      • N'associez un mot ou une expression unique à une intention spécifique que si ce mot ou cette expression indique l'intention. Les expressions répétées peuvent fausser la résolution de l'intention. Par exemple, le démarrage de chaque variation OrderPizza par "Je voudrais… " et de chaque intention ShowMenu par "Pouvez-vous m'aider à… " peut augmenter la probabilité que le modèle résolve toute entrée utilisateur commençant par "Pouvez-vous m'aider à" en OrderPizza et par "Je voudrais" en ShowMenu.
      • Un grand nombre de variations à un mot dans vos intentions. Les variations à un mot constituent une exception. Utilisez-les avec parcimonie, voire pas du tout.
      • Variations ouvertes qui peuvent facilement s'appliquer à d'autres domaines ou sujets hors domaine.
      • Votre corpus n'a pas besoin de répéter la même variation avec une casse différente ou avec des formes verbales différentes de même lemme. Par exemple, étant donné que l'entraîneur Tm sait faire la distinction entre gérer, gère et gestionnaire, il différencie non seulement "Qui est géré par Sam ?" de "Qui gère Sam ?", mais il comprend également que ces mots sont liés les uns aux autres.
        Remarque

        Vous pouvez être tenté d'ajouter des fautes d'orthographe. Mais avant de le faire, utilisez ces fautes d'orthographe dans le testeur de variations pour voir si le modèle les reconnaît. Vous pourriez être surpris de la façon dont il les gère. En outre, en n'ajoutant pas de fautes d'orthographe, vous courez moins de risque de fausser votre modèle de manière inattendue.
  • Créez des cas de contrôle pour assurer l'intégrité de la résolution d'intention.
  • Exécutez l'état d'aperçu pour la qualité des compétences afin de maintenir un jeu de formations équilibré. Exécutez le rapport d'anomalies et recherchez les variations mal classées ou inhabituelles.
  • Lorsque vous déployez votre brique, vous pouvez améliorer les données d'entraînement en permanence en réalisant les actions suivantes :
    • Examen des journaux de conversation, récapitulatifs de toutes les conversations survenues pendant une période donnée. Pour activer la journalisation, activez l'option Activer les analyses dans les paramètres.
    • Exécuter des rapports sur la qualité des compétences et affecter (ou réaffecter) des messages utilisateur réels à vos intentions avec le réentraînement d'analyse. Si ces rapports indiquent que unresolvedIntent comporte de nombreuses variations classées de façon incorrecte dans les intentions de domaine, procédez comme suit :
      • Déplacez les variations dans la portée à partir de unresolvedIntent vers les intentions de domaine.
      • Déplacez les variations hors de portée à partir des intentions de domaine vers unresolvedIntent.

Instructions pour l'entraîneur Ht

Créez 12 à 24 exemples d'expression par intention, si possible. Utilisez des expressions réelles non modifiées incluant les éléments suivants :
  • Langage courant
  • Fautes d'orthographe courantes
  • Abréviations standard qu'un utilisateur peut saisir ("qd" pour quand, par exemple)
  • Noms non standard, tels que les noms de produit
  • Variantes orthographiques ("cacahouète" et "cacahuète", par exemple)
Si vous ne disposez pas de données réelles, incorporez ces éléments dans vos propres données d'entraînement. Voici quelques conseils :
  • Variez le vocabulaire et la structure de phrase dans ces expressions de démarrage en utilisant une ou deux permutations à l'aide des éléments suivants :
    • mots familiers (moolah, lucre, dough)

    • Abréviations standard qu'un utilisateur peut saisir ("qd" pour quand, par exemple)
    • Noms non standard, tels que les noms de produit
    • expressions courantes (Am I broke? pour une intention appelée AccountBalance)

    • synonymes (Mettre de l'argent sur un compte épargne, Mettre des fonds sur un compte épargne, Mettre un montant sur un compte épargne, Transférer de l'argent sur un compte épargne)

    • différentes catégories d'objet (I want to order a pizza, I want to order some food).

    • variantes orthographiques (check, cheque)

    • Fautes d'orthographe courantes ("buisness" pour "business")

    • ordre des mots inhabituels (To checking, $20 send)

  • Utilisez différents concepts pour exprimer la même intention, par exemple I am hungry et Make me a pizza
  • N'associez un mot ou une expression unique à une intention spécifique que si ce mot ou cette expression indique l'intention. Les expressions répétées peuvent fausser la résolution de l'intention. Par exemple, le démarrage de chaque variation OrderPizza par "Je voudrais… " et de chaque intention ShowMenu par "Pouvez-vous m'aider à… " peut augmenter la probabilité que le modèle résolve toute entrée utilisateur commençant par "Pouvez-vous m'aider à" en OrderPizza et par "Je voudrais" en ShowMenu.
  • Evitez les fragments de phrase et les mots uniques. Utilisez plutôt des phrases complètes (pouvant comporter jusqu'à 255 caractères) incluant l'action et l'entité. Si vous devez utiliser des exemples contenant un seul mot, choisissez-les soigneusement.

  • Créez des cas de test pour assurer l'intégrité du test de résolution d'intention. L'ajout de nouveaux exemples d'intention peut faire régresser le corpus. Vous devrez peut-être ajouter plusieurs expressions de test pour stabiliser le comportement de résolution d'intentions.

Limites relatives à la forme et à la taille des données d'entraînement

En ce qui concerne les données et la forme d'entraînement, voici les limites du nombre d'intentions et de variations.

Objectifs :

  • Nombre minimal d'intentions par brique : 2
  • Nombre maximal d'intentions par brique : 2 500

Variations :

  • Nombre maximal de variations par brique : 25 000
  • Nombre minimal de variations par intention : 2
  • Longueur du mot de variation : entre 3 et 30 mots. Selon les directives de l'entraîneur Tm, il existe des exceptions où des variations d'un ou deux mots peuvent être appropriées si elles sont couramment utilisées.
Remarque

Il s'agit de limites techniques et non de recommandations. Reportez-vous à la section Guidelines for Trainer Tm pour obtenir des recommandations pratiques sur la mise en forme de vos compétences et la fourniture de données de formation fiables.

Export de données d'intention

Pour journaliser des conversations, veillez à activer l'option Activer les analyses dans Paramètres > Général avant de tester vos intentions.

Afin d'exporter des données pour une brique, procédez comme suit :
  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral et sélectionnez Développement > Briques.
  2. Dans la mosaïque de la brique, cliquez sur icône permettant d'ouvrir le menu Options et sélectionnez Exporter les conversations.
  3. Sélectionnez Journal de conversation d'intention, définissez la période de journalisation, puis cliquez sur Exporter.
  4. Vérifiez l'entrée utilisateur en ouvrant les fichiers CSV dans un tableur.