Modèles dans les applications 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.
Les modèles sont conçus pour améliorer la précision lorsque plusieurs énoncés sont très similaires. Un modèle vous permet d’obtenir plus de précision pour une intention sans fournir plusieurs énoncés en plus.
Les modèles résolvent les problèmes de faible confiance envers les intentions
Imaginez une application Ressources humaines qui génère des rapports sur l’organigramme en lien avec un employé. Selon le nom et les relations d’un employé, LUIS peut retourner les employés impliqués. Imaginez un employé, Tom, avec une manager nommée Alice, et une équipe de subordonnés appelés Michael, Rebecca et Carl.
Énoncés | Intention prédite | Score d’intention |
---|---|---|
Qui est subordonné à Tom ? | GetOrgChart | 0.30 |
Qui est le subordonné de Tom ? | GetOrgChart | 0.30 |
Si une application présente entre 10 et 20 énoncés de longueurs différentes, avec un ordre de mots, voire même des mots différents (synonymes de « subordonné », « gérer », « rapport »), LUIS peut renvoyer un score de confiance faible. Créez un modèle pour aider LUIS à comprendre l’importance de l’ordre des mots.
Les modèles peuvent résoudre les situations suivantes :
- Le score d’intention est faible.
- La bonne intention n’est pas le meilleur score, mais en est trop proche.
Les modèles ne garantissent pas l’intention
Les modèles utilisent un mélange de technologies de prédiction. La définition d’une intention pour un exemple d’énoncé dans un modèle ne garantit pas la prédiction de l’intention, mais constitue un signal fort.
Les modèles n’améliorent pas la détection d’entités de machine-learning
Un modèle sert principalement à faciliter la prédiction des intentions et des rôles. L’entité pattern.any permet d’extraire des entités à structure libre. Même si les modèles utilisent des entités, un modèles n’aide pas à détecter une entité de machine-learning.
Ne vous attendez pas à constater une amélioration de la prédiction d’entité si vous réduisez plusieurs énoncés dans un modèle unique. Pour que les entités simples soient utilisées par votre application, vous devez ajouter des énoncés ou utiliser des entités de liste.
Les modèles utilisent des rôles d’entités
Si deux ou plusieurs entités dans un modèle sont associées de manière contextuelle, les modèles utilisent des rôles d’entités pour extraire des informations contextuelles sur les entités.
Scores de prédiction avec et sans modèles
Avec suffisamment d’exemples d’énoncés, LUIS doit pouvoir accroître la confiance des prévisions sans modèles. Les modèles augmentent le score de confiance sans avoir à fournir autant énoncés.
Critères spéciaux
Un modèle est d’abord mis en correspondance selon la détection des entités dans le modèle, puis selon la validation du reste des mots et de l’ordre des mots du modèle. Des entités sont requises dans le modèle pour qu’un modèle corresponde. Le modèle est appliqué au niveau du jeton, pas au niveau du caractère.
Entité Pattern.any
L’entité pattern.any vous permet de rechercher des données en forme libre où le libellé de l’entité ne permet pas de distinguer la fin de l’entité du reste de l’énoncé.
Par exemple, considérez une application de ressources humaines qui permet aux employés de trouver des documents d’entreprise. Cette application peut avoir besoin de comprendre les exemples d’énoncés suivants.
- Où se trouve HRF-123456 ?
- Qui a créé HRF-123234 ?
- HRF-456098 est-il publié en français ?
Toutefois, chaque document a à la fois un nom mis en forme (utilisé dans la liste ci-dessus) et un nom explicite, tel que « Request relocation from employee new to the company 2018 version 5 ».
Les énoncés portant le nom explicite peuvent ressembler à ceci :
- Où se trouve le formulaire Request relocation from employee new to the company 2018 version 5 (demande de réaffectation d’un nouvel employé) ?
- Qui a écrit le formulaire Request relocation from employee new to the company 2018 version 5 (demande de réaffectation d’un nouvel employé - 2018 version 5) ?
- Le formulaire Request relocation from employee new to the company 2018 version 5 (demande de réaffectation d’un nouvel employé - 2018 version 5) ? est-t disponible en français ?
Les énoncés incluent des mots qui peuvent rendre ambigu l’endroit où l’entité se termine pour LUIS. Dans un modèle, l’entité Pattern.any permet de spécifier le début et la fin du nom du document afin que LUIS puisse extraire correctement son nom. Par exemple, les énoncés de modèle suivants :
- Où se trouve {FormName}[?]
- Qui a créé {FormName}[?]
- {nom_formulaire} est-il publié en Français[?]
Meilleures pratiques pour les modèles :
Ajouter des modèles dans les itérations ultérieures
Vous devez comprendre le comportement de l’application avant d’ajouter des modèles car les modèles sont pondérés plus fortement que les exemples d’énoncés et fausseront la confiance.
Une fois que vous comprenez le comportement de votre application, ajoutez des modèles tels qu’ils s’appliquent à votre application. Vous n’avez pas besoin de les ajouter chaque fois que vous effectuez une itération sur la conception de l’application.
Rien ne vous empêche de les ajouter au début de la conception de votre modèle, mais il est plus aisé de constater les changements produits par chaque modèle une fois le modèle testé avec des énoncés.
Ne pas ajouter de nombreux modèles
Évitez d’ajouter trop de modèles. LUIS est conçu pour apprendre rapidement avec peu d’exemples. Ne surchargez pas inutilement le système.
Fonctionnalités
En machine learning, une caractéristique est un trait ou un attribut distinctif des données que votre système observe et dont il apprend.
Les caractéristiques de Machine Learning fournissent à LUIS des indications importantes pour rechercher les éléments qui distinguent un concept. Il ne s’agit pas de règles strictes mais de conseils que LUIS peut utiliser. LUIS utilise ces conseils avec les étiquettes pour rechercher les données.
Une fonctionnalité peut être décrite comme une fonction, par exemple f(x) = y
. Dans l’exemple d’énoncé, la fonctionnalité indique où rechercher la caractéristique distinctive. Servez-vous de ces informations pour créer votre schéma.
Types de caractéristiques
Les caractéristiques sont essentielles à la conception de votre schéma. LUIS prend en charge les listes d’expressions et d’autres modèles en tant que caractéristiques :
- Caractéristiques de liste d’expressions
- Modèle (intention ou entité) en tant que caractéristique
Rechercher des caractéristiques dans vos exemples d’énoncés
LUIS étant une application basée sur la langue, les caractéristiques sont basées sur du texte. Choisissez le texte qui indique le trait que vous souhaitez distinguer. Pour LUIS, la plus petite unité est le jeton. Pour l’anglais, un jeton est une étendue continue de lettres et de chiffres sans espace ou signe de ponctuation.
Étant donné que les espaces et les signes de ponctuation ne sont pas des jetons, concentrez vous sur les indices textuels que vous pouvez utiliser comme caractéristiques. N’oubliez pas d’inclure les variantes de mots, par exemple :
- Formes plurielles
- Temps de verbes
- Abréviations
- Orthographes et fautes d’orthographe
Déterminez si le texte a besoin des éléments suivants, car il distingue une caractéristique :
- Correspondre à un mot ou une expression exacts. Envisagez d’ajouter une entité d’expression régulière ou une entité de liste comme caractéristique de l’entité ou de l’intention.
- Correspondre à un concept bien connu, comme des dates, des heures ou des noms de personnes. Utilisez une entité prédéfinie en tant que caractéristique de l’entité ou de l’intention.
- Apprendre de nouveaux exemples au fil du temps. Utilisez une liste d’expressions de quelques exemples du concept comme caractéristique de l’entité ou de l’intention.
Créer une liste d’expressions pour un concept
Une liste d’expressions est une liste de mots ou d’expressions qui décrit un concept. Une liste d’expressions est appliquée en tant que correspondance ne respectant pas la casse au niveau du jeton.
Lors de l’ajout d’une liste d’expressions, vous pouvez définir la caractéristique en tant que globale. Une caractéristique globale s’applique à l’ensemble de l’application.
Quand utiliser une liste d’expressions
Utilisez une liste d’expressions, si votre application LUIS doit être en mesure de généraliser et d’identifier de nouveaux éléments. Les listes d’expressions sont similaires à un lexique spécifique d’un domaine. Elles améliorent la qualité de la compréhension des intentions et des entités.
Comment utiliser une liste d’expressions
Avec une liste d’expressions, LUIS examine le contexte et généralise pour identifier des éléments similaires, sans être une correspondance de texte exacte. Pour utiliser une liste d’expressions, procédez comme suit :
- Commencez par une entité issue de l’apprentissage automatique :
- Ajoutez des exemples d’énoncés.
- Étiquetez avec une entité issue de l’apprentissage automatique.
- Ajoutez une liste d’expressions :
- Ajoutez des mots de sens similaire. N’ajoutez pas tous les mots ou expressions possibles. Au lieu de cela, ajoutez quelques mots ou expressions à la fois. Entraînez à nouveau et publiez.
- Révisez le résultat et ajoutez des mots suggérés.
Scénario classique pour une liste d’expressions
Un scénario classique pour une liste d’expressions consiste à amplifier les mots liés à une idée spécifique.
Les termes médicaux constituent un bon exemple de mots pouvant nécessiter une liste d’expressions pour améliorer leur sens. Ces termes peuvent avoir des sens physiques, chimiques, thérapeutiques ou abstraits. Sans liste d’expressions, LUIS ignore quels termes sont importants pour votre domaine de sujet.
Par exemple, pour extraire les termes médicaux :
- Créez des exemples d’énoncés et étiquetez-y les termes médicaux.
- Créez une liste d’expressions contenant des exemples de termes du domaine concerné. Cette liste d’expressions doit inclure le terme que vous avez étiqueté et d’autres termes qui décrivent le même concept.
- Ajoutez la liste d’expressions à l’entité ou à la sous-entité qui extrait le concept utilisé dans la liste d’expressions. Le scénario le plus courant est un composant (enfant) d’une entité de machine-learning. Si la liste d’expressions doit être appliquée à toutes les intentions ou entités, marquez la liste d’expressions comme une liste d’expressions globale. L’indicateur enabledForAllModels contrôle la portée de ce modèle dans l’API.
Correspondances de jeton pour une liste d’expressions
Une liste d’expressions s’applique toujours au niveau du jeton. Le tableau suivant montre comment une liste d’expressions contenant le mot Anne s’applique aux variations des mêmes caractères dans cet ordre.
Variation du jeton « Anne » | Liste d’expressions correspondant à la détection du jeton |
---|---|
ANNE aNNE |
Oui : le jeton est Anne |
d’Anne | Oui : le jeton est Anne |
Ann | Non : le jeton est Ann |
Un modèle en tant que caractéristique renforce un autre modèle
Vous pouvez ajouter un modèle (intention ou entité) en tant que caractéristique à un autre modèle (intention ou entité). En ajoutant une intention ou une entité existantes en tant que caractéristique, vous ajoutez un concept bien défini avec des exemples étiquetés.
Lorsque vous ajoutez un modèle en tant que caractéristique, vous pouvez définir la caractéristique comme suit :
- Requise . Une caractéristique requise doit être trouvée pour que le modèle soit retourné à partir du point de terminaison de prédiction.
- Globale . Une caractéristique globale s’applique à l’ensemble de l’application.
Quand utiliser une entité comme caractéristique d’une intention
Ajoutez une entité en tant que caractéristique d’une intention lorsque la détection de cette entité est significative pour l’intention.
Par exemple, si l’intention est de réserver un vol, comme BookFlight, et que l’entité désigne les informations du billet (telles que le nombre de sièges, l’origine et la destination), trouver l’entité d’informations du billet doit alors ajouter du poids à la prédiction de l’intention BookFlight.
Quand utiliser une entité comme caractéristique d’une autre entité
Une entité (A) doit être ajoutée en tant que caractéristique à une autre entité (B) lorsque la détection de cette entité (A) est importante pour la prédiction de l’entité (B).
Par exemple, si une entité d’adresse de livraison est contenu dans une sous-entité d’adresse de rue, la recherche de la sous-entité d’adresse de rue ajoute un poids significatif à la prédiction pour l’entité d’adresse de livraison.
- Adresse de livraison (entité issue de l’apprentissage automatique) :
- Numéro de rue (sous-entité)
- Rue (sous-entité)
- Ville (sous-entité)
- Région ou département (sous-entité)
- Pays/région (sous-entité)
- Code postal (sous-entité)
Sous-entités imbriquées avec des caractéristiques
Une sous-entité issue de l’apprentissage automatique indique qu’un concept est présent à l’entité parente. Celle-ci peut être une autre sous-entité ou l’entité supérieure. La valeur de la sous-entité fait office de caractéristique pour son entité parente.
Une sous-entité peut avoir pour caractéristique tant une liste d’expressions qu’un modèle (une autre entité).
Quand la sous-entité comprend une liste d’expressions, cela enrichit le vocabulaire du concept, mais n’ajoute pas d’informations à la réponse JSON de la prédiction.
Lorsque la sous-entité a une caractéristique d’une autre entité, la réponse JSON inclut les données extraites de celle-ci.
Caractéristiques requises
Une caractéristique requise doit être trouvée pour que le modèle soit retourné à partir du point de terminaison de prédiction. Utilisez une caractéristique requise lorsque vous savez que vos données entrantes doivent correspondre à la caractéristique.
Si le texte de l’énoncé ne correspond pas à la caractéristique requise, il n’est pas extrait.
Une caractéristique requise utilise une entité non issue de l’apprentissage automatique :
- Entité Expression régulière
- Entité de liste
- Entité prédéfinie
Si vous avec la conviction que votre modèle figure dans les données, définissez la caractéristique comme requise. Une caractéristique requise ne retourne rien si elle est introuvable.
Poursuivons avec l’exemple de l’adresse de livraison :
Adresse de livraison (entité issue du Machine Learning)
- Numéro de rue (sous-entité)
- Rue (sous-entité)
- Numéro de rue (sous-entité)
- Ville (sous-entité)
- Région ou département (sous-entité)
- Pays/région (sous-entité)
- Code postal (sous-entité)
Caractéristique requise utilisant des entités prédéfinies
Les entités prédéfinies, par exemple localité/ville, département/province et pays/région, correspondent généralement à un ensemble fermé de listes, ce qui signifie qu’elles ne changent pas beaucoup au fil du temps. Ces entités peuvent avoir des caractéristiques recommandées pertinentes et ces caractéristiques peuvent être définies comme « requises ». Toutefois, l’indicateur isRequired est uniquement lié à l’entité à laquelle il est affecté et n’affecte pas la hiérarchie. Si la caractéristique d’une sous-entité prédéfinie est introuvable, cela n’affecte pas la détection et le retour de l’entité parente.
À titre d’exemple de caractéristique obligatoire, supposons que vous souhaitiez détecter les adresses. Vous pouvez être amené à imposer l’entrée du numéro de rue. Cela permet à un utilisateur d’entrer « 1 Microsoft Way » ou « One Microsoft Way ». Les deux formes comportent la valeur « 1 » en tant que sous-entité correspondant au numéro de rue. Pour plus d’informations, consultez l’article consacré aux entités prédéfinies.
Caractéristique requise utilisant des entités de listes
Une entité de liste est utilisée en tant que liste de noms canoniques, ainsi que leurs synonymes. En tant que caractéristique requise, si l’énoncé n’inclut ni le nom canonique ni un synonyme, l’entité n’est pas retournée dans le cadre du point de terminaison de prédiction.
Supposons que votre entreprise n’expédie que vers un ensemble limité de pays/régions. Vous pouvez créer une entité de liste incluant plusieurs méthodes que votre client peut utiliser pour référencer le pays ou la région. Si LUIS ne trouve pas de correspondance exacte dans le texte de l’énoncé, l’entité (qui a la caractéristique requise de l’entité de liste) n’est pas renvoyée dans la prédiction.
Nom canonique** | Synonymes |
---|---|
États-Unis | États-Unis É.-U. A. US États-Unis 0 |
Une application cliente, telle qu’un bot conversationnel, peut poser une question de suivi pour vous aider. Cela permet au client de comprendre que la sélection de pays/régions est limitée et requise.
Caractéristique requise utilisant des entités d’expression régulière
Une entité d’expression régulière utilisée comme caractéristique requise offre des caractéristiques de correspondant de texte riches.
Dans notre exemple d’adresse de livraison, vous pouvez créer une expression régulière qui capture les règles de syntaxe des codes postaux de pays/régions.
Caractéristiques globales
Bien que l’utilisation la plus courante consiste à appliquer une caractéristique à un modèle spécifique, vous pouvez configurer la caractéristique en tant que caractéristique globale pour l’appliquer à l’ensemble de votre application.
L’utilisation la plus courante d’une caractéristique globale consiste à ajouter un vocabulaire à l’application. Par exemple, si vos clients utilisent une langue principale, mais s’attendent à pouvoir utiliser une autre langue dans le même énoncé, vous pouvez ajouter une caractéristique qui comprend des mots de la langue secondaire.
Étant donné que l’utilisateur s’attend à utiliser la langue secondaire pour exprimer toute intention ou entité, ajoutez des mots de la langue secondaire à la liste d’expressions. Configurez la liste d’expressions en tant que fonctionnalité globale.
Combiner les caractéristiques pour bénéficier d'avantages supplémentaires
Vous pouvez utiliser plusieurs caractéristiques pour décrire un trait ou un concept. L'association suivante est couramment utilisée :
- Caractéristique de liste d'expressions : vous pouvez utiliser plusieurs listes d'expressions comme caractéristiques d'un même modèle.
- Modèle en tant que caractéristique : entité prédéfinie, entité d'expression régulière, entité de liste.
Exemple : caractéristiques d'une entité de réservation de billets pour une application de voyage
Prenons l'exemple d'une application permettant de réserver un vol avec une intention de réservation de vol et une entité de réservation de billets. L’entité de réservation de billets capture les informations nécessaires à la réservation d’un billet d’avion dans un système de réservation.
L'entité d'apprentissage automatique associée à la réservation de billets comporte deux sous-entités permettant de capturer l'origine et la destination. Les caractéristiques doivent être ajoutées à chaque sous-entité, et non à l’entité de niveau supérieur.
L'entité de réservation de billets est une entité d'apprentissage automatique, avec des sous-entités Origine et Destination. Ces sous-entités indiquent toutes deux un emplacement géographique. Pour faciliter l'extraction des emplacements, et faire la distinction entre Origine et Destination, chaque sous-entité doit disposer de caractéristiques.
Type | Sous-entité Origine | Sous-entité Destination |
---|---|---|
Modèle en tant que fonctionnalité | Entité prédéfinie geographyV2 | Entité prédéfinie geographyV2 |
Liste d’expressions | Mots d’origine : démarrer à, commencer à, partir | Mots de destination : à, arrivée, atterrir à, aller, rejoindre, rester, se diriger |
Liste d’expressions | Codes d'aéroport - même liste pour l'origine et la destination | Codes d'aéroport - même liste pour l'origine et la destination |
Liste d’expressions | Noms d'aéroport - même liste pour l'origine et la destination | Codes d'aéroport - même liste pour l'origine et la destination |
Si vous souhaitez que les gens utilisent les codes et les noms des aéroports, LUIS doit disposer de listes d’expressions qui utilisent les deux types d’expressions. Les codes d'aéroport peuvent être plus courants avec du texte saisi dans un bot conversationnel, tandis que les noms d'aéroport peuvent être plus courants avec une conversation orale telle qu'un bot conversationnel à reconnaissance vocale.
Les détails correspondants des caractéristiques sont uniquement renvoyés pour les modèles, et non pour les listes d'expressions, car seuls les modèles sont renvoyés dans le JSON de prédiction.
Étiquetage des réservations de billets dans l'intention
Après avoir créé l'entité d'apprentissage automatique, vous devez ajouter des exemples d'énoncés à une intention, et étiqueter l'entité parente et toutes les sous-entités.
Pour l’exemple de réservation de billets, étiquetez les exemples d’énoncés de l’intention avec l’entité TicketBookinget les sous-entités du texte.
Exemple : application de commande de pizzas
Prenons maintenant l'exemple d'une application de pizzeria qui reçoit des commandes de pizzas, avec les détails du type de pizza que commande le client. Chaque détail de la pizza doit être extrait, si possible, afin de traiter la commande.
L'entité d'apprentissage automatique de cet exemple est plus complexe, avec des sous-entités imbriquées, des listes d'expressions, des entités prédéfinies et des entités personnalisées.
Cet exemple utilise des caractéristiques aux niveaux de la sous-entité et de l'enfant de la sous-entité. La détermination du niveau qui reçoit tel ou tel type de liste d'expressions ou de modèle comme caractéristique constitue une partie importante de la conception de votre entité.
Tandis que les sous-entités peuvent disposer de nombreuses listes d'expressions comme caractéristiques pour la détection de l'entité, chaque sous-entité ne dispose que d'un seul modèle comme caractéristique. Dans cette application de commandes de pizzas, ces modèles sont principalement des listes.
Les exemples d'énoncés correctement étiquetés illustrent la façon dont les entités sont imbriquées.