Planifier votre application LUIS
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.
Un schéma d’application Language Understanding (LUIS) contient des intentions et des entités pertinentes pour le domaine de votre sujet. Les intentions classifient les énoncés utilisateur et les entités extraient les données des énoncés utilisateur. Intentions et entités pertinentes le votre domaine de votre sujet. Les intentions classifient les énoncés utilisateur.
Une application LUIS apprend et s’exécute plus efficacement lorsque vous la développez de façon itérative. Voici un cycle d’itération classique :
- Créer une version
- Modifiez le schéma d’application LUIS. notamment :
- Intentions avec des exemples d’énoncés
- Entités
- Fonctionnalités
- Effectuer l’apprentissage, tester et publier
- Tester l’apprentissage actif en examinant les énoncés envoyés au point de terminaison de prédiction
- Collecter des données à partir de requêtes de point de terminaison
Identifier votre domaine
Une application LUIS est centrée sur un domaine de sujets. Par exemple, vous pouvez avoir une application de voyage qui gère la réservation de tickets, de vols, d’hôtels et de voitures de location. Une autre application peut fournir du contenu relatif à l’exercice physique, le suivi des efforts de fitness et la définition d’objectifs. L’identification du domaine vous permet de trouver des mots ou expressions qui sont pertinents pour votre domaine.
Conseil
LUIS offre des domaines prédéfinis pour de nombreux scénarios courants. Vérifiez si vous pouvez utiliser un domaine prédéfini comme point de départ pour votre application.
Identifier vos intentions
Pensez aux intentions qui sont importantes pour la tâche de votre application.
Prenons l’exemple d’une application de voyage, qui permet de réserver un vol et de vérifier la météo là où se rend l’utilisateur. Vous pouvez définir deux intentions, BookFlight et GetWeather, pour ces actions.
Dans une application plus complexe avec plus de fonctions, vous avez plus d’intentions et vous devez les définir soigneusement pour ne pas être trop spécifique. Par exemple, BookFlight et BookHotel peuvent devoir être des intentions distinctes, mais BookInternationalFlight et BookDomesticFlight peuvent être trop proches.
Notes
Il est recommandé d’utiliser uniquement les intentions nécessaires pour exécuter les fonctions de votre application. Si vous définissez trop d’intentions, il devient plus difficile pour LUIS de classer les énoncés correctement. Si vous en définissez trop peu, elles peuvent être trop générales au point de se chevaucher.
Si vous n’avez pas besoin d’identifier l’intention globale de l’utilisateur, ajoutez tous les exemples d’énoncés utilisateur à l’intention None
. Si votre application a besoin de plus d’intentions, vous pouvez les créer ultérieurement.
Créer des exemples d’énoncés pour chaque intention
Pour commencer, évitez de créer un trop grand nombre d’énoncés pour chaque intention. Une fois que vous avez déterminé les intentions dont vous avez besoin pour votre application, créez 15 à 30 exemples d’énoncés par intention. Chaque énoncé doit être différent de ceux fournis précédemment. Incluez une variété de nombres de mots, de choix de mots, de temps de verbe et de ponctuation.
Pour plus d’informations, consultez Connaître les bons énoncés pour les applications LUIS.
Identifier vos entités
Dans les exemples d’énoncés, identifiez les entités à extraire. Pour réserver un vol, vous avez besoin d’informations comme la destination, la date, la compagnie aérienne, la catégorie de ticket et la classe de voyage. Créez des entités pour ces types de données, puis marquez les entités dans les exemples d’énoncés. Les entités sont importantes pour accomplir une intention.
Lorsque vous déterminez les entités à utiliser dans votre application, n’oubliez pas qu’il existe différents types d’entités pour la capture des relations entre les types d’objet. Consultez Entités dans LUIS pour plus d’informations sur les différents types.
Conseil
LUIS offre des entités prédéfinies pour les scénarios courants d’utilisateur conversationnel. Envisagez d’utiliser des entités prédéfinies comme point de départ pour le développement de votre application.
Intentions et entités
Une intention est le résultat souhaité de l’énoncé entier, tandis que des entités sont des éléments de données extraits de l’énoncé. En général, les intentions sont liées aux actions que l’application cliente doit réaliser. Les entités sont des informations nécessaires à l’exécution de cette action. Du point de vue de la programmation, une intention déclenche un appel de méthode et les entités sont utilisées comme paramètres de cet appel de méthode.
Cet énoncé doit avoir une intention et peut avoir des entités :
« Acheter un billet d’avion au départ de Seattle à destination du Caire »
Cet énoncé n’a qu’une seule intention :
- Achat d’un billet d’avion
Cet énoncé peut avoir plusieurs entités :
- Emplacements de Seattle (origine) et Caire (destination)
- Quantité d’un billet nique
Résolution dans des énoncés contenant plusieurs fonctions ou intentions
Dans de nombreux cas, en particulier lors d’une conversation naturelle, les utilisateurs fournissent un énoncé qui peut contenir plusieurs fonctions ou intentions. Pour y remédier, une stratégie générale consiste à comprendre que la sortie peut être représentée à la fois par les intentions et les entités. Cette représentation doit pouvoir être mappée à vos actions d’application cliente et n’a pas besoin d’être limitée aux intentions.
Int-ent-ties est le concept selon lequel les actions (généralement assimilées à des intentions) peuvent également être capturées comme des entités dans la sortie de l’application, puis mappées à des actions spécifiques. Négation, par exemple, généralement s’appuie sur l’intention et l’entité pour l’extraction complète. Considérez les deux énoncés suivants, qui sont similaires dans le choix des mots, mais qui mènent à des résultats différents :
- « Veuillez planifier mon vol du Caire à Seattle »
- « Annulez mon vol du Caire à Seattle »
Au lieu d’avoir deux intentions distinctes, il est préférable de créer une seule intention avec une entité Machine Learning FlightAction. Cette entité Machine Learning doit extraire les détails de l’action pour les demandes de planification et d’annulation, ainsi qu’un emplacement d’origine ou de destination.
Cette entité FlightAction est structurée avec l’entité Machine Learning générale suivante et des sous-entités :
- FlightAction
- Action
- Origine
- Destination
Pour faciliter l’extraction, vous ajoutez des fonctionnalités aux sous-entités. Vous allez choisir les fonctionnalités en fonction du vocabulaire que vous souhaitez voir dans les énoncés de l’utilisateur et les valeurs que vous souhaitez renvoyer dans la réponse de prédiction.
Bonnes pratiques
Planifier votre schéma
Avant de commencer à générer le schéma de votre application, vous devez déterminer comment et où vous envisagez d’utiliser cette application. Plus votre planification est détaillée et spécifique, plus votre application est performante.
- Rechercher des utilisateurs ciblés
- Définir des personnages de bout en bout pour représenter votre application : voix, avatar, gestion des problèmes (proactif, réactif)
- Identifier les canaux des interactions de l’utilisateur (comme le texte ou discours), en passant aux solutions existantes ou en créant une nouvelle solution pour cette application
- Parcours utilisateur de bout en bout
- Que voulez-vous que cette application fasse et ne fasse pas ? Quelles sont ses priorités ?
- Quels sont les principaux cas d’usage ?
- Collecte des données : en savoir plus sur la collecte et la préparation des données
Ne pas effectuer l’apprentissage et publier à chaque ajout d’exemple d’énoncé
Ajoutez 10 ou 15 énoncés avant de passer à l’apprentissage et à la publication. Vous pourrez ainsi en voir l’impact sur la précision des prédictions. L’ajout d’un seul énoncé n’aura peut-être pas d’incidence visible sur le score.
Ne pas utiliser LUIS comme plateforme d’apprentissage
LUIS est propre au domaine d’un modèle de langage. Il n’est pas conçu pour fonctionner comme une plateforme générale d’entraînement en langage naturel.
Générer l’application de manière itérative avec des versions
Chaque cycle de création doit être contenu dans une nouvelle version, clonée à partir d’une version existante.
Ne publiez pas trop rapidement
La publication trop rapide de votre application, sans planification appropriée, peut entraîner plusieurs problèmes, notamment :
- Votre application ne fonctionnera pas dans votre scénario réel à un niveau de performance acceptable.
- Le schéma (intentions et entités) risque de ne pas convenir, et si vous avez développé une logique d’application cliente qui suit le schéma, vous devrez peut-être la remanier. Cela risque d’entraîner des retards inattendus et des coûts supplémentaires pour le projet sur lequel vous travaillez.
- Les énoncés que vous ajoutez au modèle peuvent entraîner des biais vers les exemples d’énoncés difficiles à déboguer et à identifier. Cela complique également la suppression de l’ambiguïté une fois que vous avez validé un certain schéma.
Analyser les performances de l’application
Supervisez la précision des prédictions à l’aide d’un jeu de tests par lots.
Conservez un jeu distinct d’énoncés ne servant pas d’exemples d’énoncés ou d’énoncés du point de terminaison. Continuez à améliorer l’application pour votre jeu de test. Adaptez celui-ci de façon à refléter les énoncés d’utilisateurs réels. Utilisez ce jeu de test pour évaluer chaque itération ou version de l’application.
Ne pas créer de listes d’expressions avec toutes les valeurs possibles
Donnez quelques exemples dans les listes d’expressions, mais pas tous les mots ou expressions. LUIS généralise et tient compte du contexte.