Création d'une intention
Voici les étapes à suivre pour créer une intention dans une brique.
Ajout d'entités aux intentions


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.
Exemples d'intention | Entité associée | Variations de formation | Activer la valeur indépendante de la valeur ? |
---|---|---|---|
Solde comptable | DATE |
|
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 |
|
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. |
|
DATE |
|
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 esttrue
, 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 :
-
Cliquez sur Intentions (
) dans la barre de navigation de gauche.
-
Cliquez sur Plus, puis choisissez Importer des intentions.
Description de l'illustration import-intents.png -
Sélectionnez le fichier
.csv
, puis cliquez sur Ouvrir. -
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.
-
Cliquez sur Intentions
dans la barre de navigation de gauche.
-
Cliquez sur Plus, puis choisissez Exporter les intentions.
Description de l'illustration export-corpus.png -
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 ?
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.
Entraîneur Tm
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.
- 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éfinirunresolvedIntent
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)
- 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éfinirunresolvedIntent
pour les expressions à ne pas résoudre en intentions de votre brique. Vous voulez peut-êtreunresolvedIntent
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
.
- Déplacez les variations dans la portée à partir de
Instructions pour l'entraîneur Ht
- 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)
-
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.
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 :- Cliquez sur
pour ouvrir le menu latéral et sélectionnez Développement > Briques.
- Dans la mosaïque de la brique, cliquez sur
et sélectionnez Exporter les conversations.
- Sélectionnez Journal de conversation d'intention, définissez la période de journalisation, puis cliquez sur Exporter.
- Vérifiez l'entrée utilisateur en ouvrant les fichiers CSV dans un tableur.