Intentions
Important
LUIS sera mis hors service le 1er octobre 2025 et à partir du 1er avril 2023, vous ne pourrez plus créer de nouvelles ressources LUIS. Nous vous recommandons de migrer vos applications LUIS vers la compréhension du langage courant pour tirer parti de la prise en charge continue des produits et des fonctionnalités multilingues.
Une intention représente une tâche ou une action que l’utilisateur souhaite effectuer. Il s’agit d’une finalité ou d’un objectif exprimé dans l’énoncé d’un utilisateur.
Définissez un ensemble d’intentions qui correspondent aux actions que les utilisateurs souhaitent effectuer dans votre application. Par exemple, une application de voyage aurait plusieurs intentions :
Intentions de l’application de voyage | Exemples d’énoncés |
---|---|
RéserverVol | « Réserve-moi un vol pour Rio la semaine prochaine » « Emmène-moi à Rio le 24 » « J’ai besoin d’un billet d’avion pour Rio de Janeiro dimanche prochain » |
Greeting | « Salut » « Hello » « Bonsoir » |
BulletinMétéo | « Quel temps fait-il à Boston ? » « Montre-moi les prévisions pour ce week-end » |
None | « Trouve-moi une recette de cookies » « Les Lakers ont-ils gagné ? » |
Toutes les applications s’accompagnent de l’intention prédéfinie « None », qui correspond à l’intention de secours.
Intentions prédéfinies
LUIS fournit les intentions prédéfinies et leurs énoncés pour chacun de ses domaines prédéfinis. Les intentions peuvent être ajoutées sans ajouter le domaine entier. Pour ajouter une intention, il faut ajouter une intention et ses énoncés à votre application. Le nom de l’intention et la liste d’énoncés peuvent être modifiés.
Retourner le score de toutes les intentions
Vous attribuez une seule intention à un énoncé. Lorsque LUIS reçoit un énoncé, il retourne par défaut la meilleure intention pour cet énoncé.
Si vous souhaitez connaître les scores de toutes les intentions de l’énoncé, vous pouvez ajouter un indicateur sur la chaîne de requête de l’API de prédiction.
Version de l’API de prédiction | Indicateur |
---|---|
V2 | verbose=true |
V3 | show-all-intents=true |
Différence entre intention et entité
L’intention correspond à l’action que l’application doit effectuer pour l’utilisateur, sur la base de la totalité de l’énoncé. Un énoncé ne peut avoir qu’une seule principale intention de scoring, mais il peut avoir de nombreuses entités.
Créez une intention lorsque le but de l’utilisateur doit déclencher une action dans votre application cliente, comme un appel à la fonction checkweather() dans le tableau ci-dessus. Ensuite, créez des entités afin de représenter les paramètres requis pour exécuter l’action.
Intentionnel | Entité | Exemple d’énoncé |
---|---|---|
BulletinMétéo | { "type": "location", "entity": "Seattle" } { "type": "builtin.datetimeV2.date","entity": "demain","resolution":"2018-05-23" } |
« Quel temps fait-il à Seattle tomorrow ? » |
BulletinMétéo | { "type": "date_range", "entity": "ce weekend" } | Montre-moi les prévisions pour this weekend |
Intention None
L’intention None est créée mais laissée vide intentionnellement. L’intention None est requise ; elle n’est ni supprimable ni renommable. Remplissez-la avec des énoncés extérieurs à votre domaine.
L’intention None est l’intention de secours et doit avoir 10 % des énoncés totaux. Elle est importante dans chaque application, car elle sert à montrer à LUIS des expressions qui ne sont pas importantes dans le domaine d’application (sujet). Si vous n’ajoutez pas d’énoncés à l’intention None, LUIS force un énoncé extérieur au domaine dans l’une des intentions du domaine. Cela fausse les scores de prédiction en indiquant à LUIS la mauvaise intention pour l’énoncé.
Lorsqu’un énoncé est annoncé comme ayant l’intention None, l’application cliente peut poser des questions supplémentaires ou proposer un menu afin d’orienter l’utilisateur vers des choix valides.
Intentions négatives
Si vous souhaitez identifier les intentions négatives et positives, par exemple, « je veux une voiture » et « je ne veux pas de voiture », vous pouvez créer deux intentions (une positive et une négative) et ajouter les énoncés correspondant à chacune. Vous pouvez également créer une intention unique et marquer les deux termes, positif et négatif, comme une entité.
Intentions et les modèles
Si vous avez des exemples d’énoncé, qui peuvent être définis en partie ou intégralement sous la forme d’une expression régulière, envisagez d’utiliser l’entité d’expression régulière appariée à un modèle.
L’utilisation d’une entité de l’expression régulière garantit l’extraction de données, de sorte que le modèle est mis en correspondance. Les critères spéciaux garantissent qu'une intention exacte est renvoyée.
Équilibre des intentions
Les intentions du domaine d’application doivent avoir un équilibre entre les énoncés sur chaque objectif. Par exemple, ne définissez pas la plupart de vos intentions avec 10 énoncés et une autre intention avec 500 énoncés. Ce n’est pas équilibré. Dans cette situation, il est souhaitable de vérifier l’intention comportant 500 énoncés pour voir si la majeure partie d’entre eux peut être réorganisée en un modèle.
L’intention None n’est pas prise en compte dans la recherche d’équilibre. Cette intention doit contenir 10 % du nombre total d’énoncés de l’application.
Limites des intentions
Consultez les limites pour savoir combien d’intentions vous pouvez ajouter à un modèle.
Conseil
Si vous avez besoin d’un nombre d’intentions supérieur au nombre maximal, demandez-vous d’abord si votre système utilise trop d’intentions et déterminez si plusieurs intentions sont combinées en une seule avec des entités. Des intentions trop proches peuvent être plus difficiles à distinguer pour LUIS. Elles doivent être suffisamment variées pour capturer les principales tâches demandées par l’utilisateur, mais il n’est pas nécessaire de saisir la totalité des chemins de votre code. Par exemple, les deux intentions RéserverVol() et ServiceClientVol() peuvent être des intentions distinctes dans une application de voyage, mais RéserverVolInternational() et RéserverVolIntérieur() sont trop proches. Si votre système a besoin de les distinguer, utilisez les entités ou une logique autre que des intentions.
Aide pour les applications comportant de nombreuses intentions
S’il ne vous est pas possible de réduire le nombre d’intentions ou de les diviser en plusieurs applications, contactez le support. Si votre abonnement Azure comprend des services de support, contactez le support technique Azure.
Meilleures pratiques pour les intentions
Définir des intentions distinctes
Le vocabulaire de chaque intention doit porter uniquement sur cette intention, sans chevauchement avec une autre. Par exemple, si vous souhaitez disposer d’une application qui gère les préparatifs de voyage, comme les vols et les hôtels, vous pouvez choisir de faire de ces domaines des intentions distinctes ou une même intention avec des entités pour les données précises à l’intérieur de l’énoncé.
Si le vocabulaire des deux intentions est identique, combinez l’intention et utilisez des entités.
Prenons les exemples d’énoncés suivants :
- Book a flight
- Book a hotel
« Réserver un vol » et « Réserver un hôtel » utilisent le même vocabulaire « Réserver un <nom> ». Le format étant le même, il doit s’agir de la même intention avec différentes entités extraites pour les mots « flight » (« vol ») et « hotel » (« hôtel »).
Ajouter des fonctionnalités aux intentions
Les fonctionnalités décrivent les concepts d’une intention. Une fonctionnalité peut être une liste d’expressions de mots significatifs pour cette intention ou une entité significative pour cette intention.
Trouver l’équilibre idéal pour les intentions
Utilisez les données de prédiction de LUIS pour déterminer si vos intentions se chevauchent, ce qui serait source de confusion pour LUIS. La meilleure intention serait alors trop proche d’une autre intention. Dans la mesure où LUIS n’utilise pas à chaque fois le même chemin d’accès à travers les données pour l’apprentissage, l’intention présentant un recoupement a des chances de finir première ou deuxième lors de l’apprentissage. Pour éviter cette variance, il faut que le score de l’énoncé de chaque intention soit plus éloigné. Lorsque les intentions sont bien distinctes les unes des autres, la meilleure intention devrait être à chaque fois conforme aux attentes.
Équilibrer les énoncés sur les intentions
Pour que LUIS puisse faire des prédictions précises, la quantité d’exemples d’énoncés dans chaque intention (à l’exception de l’intention None) doit être plus ou moins égale.
Si vous avez une intention avec 500 exemples d’énoncés et toutes les autres avec 10 exemples d’énoncés, celle avec 500 énoncés aura un taux de prédiction plus élevé.
Ajouter des exemples d’énoncés à l’intention None
Cette intention est l’intention de secours, et indique tout ce qui ne concerne pas l’application. Ajoutez un exemple d’énoncé à l’intention None tous les 10 exemples d’énoncés dans le reste de votre application LUIS.
Ne pas ajouter de nombreux exemples d’énoncés aux intentions
Une fois l’application publiée, ajoutez seulement des énoncés à partir de l’apprentissage actif au processus de cycle de développement. S’ils sont trop proches, ajoutez un modèle.
Ne pas mélanger la définition des intentions et des entités
Créez une intention pour chaque action du bot. Utilisez des entités comme des paramètres qui rendent cette action possible.
Par exemple, pour un bot qui réserve des vols, créez une intention RéserverVol. Ne créez pas une intention pour chaque compagnie aérienne ou chaque destination. Utilisez ces éléments de données comme entités et marquez-les dans les exemples d’énoncés.