Syntaxe du modèle
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.
La syntaxe du modèle est un modèle d’énoncé. Le modèle doit contenir les mots et entités que vous souhaitez faire correspondre, ainsi que les mots et la ponctuation que vous souhaitez ignorer. Ce n’est pas une expression régulière.
Attention
Les modèles incluent uniquement les parents d’entité de Machine Learning, pas les sous-entités.
Les entités des modèles sont placées entre accolades, {}
. Les modèles peuvent inclure des entités et des entités avec rôles. Pattern.any est une entité qui n’est utilisée que dans les modèles.
Les modèles acceptent la syntaxe suivante :
Fonction | Syntaxe | Niveau d’imbrication | Exemple |
---|---|---|---|
entité | {} – accolades | 2 | Où se trouve le formulaire {nom-entité} ? |
facultatif | [] – crochets Les niveaux d’imbrication de la syntaxe facultative et de la syntaxe de regroupement sont limités à trois, pour toutes les combinaisons possibles |
2 | Le point d’interrogation est facultatif [?] |
regroupement | () – parenthèses | 2 | est (a | b) |
ou | | - barre verticale (pipe) Les barres verticales (ou) sont limitées à deux par groupe |
- | Où est le formulaire ({nom-court-formulaire} | {nom-long-formulaire} | {numéro-formulaire}) |
Début ou fin de l’énoncé | ^ – accent circonflexe (caret) | - | ^commence l’énoncé l’énoncé est terminé^ ^correspondance littérale stricte de tout l’énoncé avec l’entité {numéro}^ |
Syntaxe d’imbrication dans les modèles
La syntaxe facultatif, entre crochets, peut être imbriquée sur deux niveaux. Par exemple : [[this]is] a new form
. Cet exemple accepte les énoncés suivants :
Exemple d’énoncé facultatif imbriqué | Explication |
---|---|
this is a new form | correspond à tous les mots du modèle |
is a new form | correspond au mot facultatif externe et aux mots non facultatifs du modèle |
a new form | correspond uniquement aux mots obligatoires |
La syntaxe regroupement, entre parenthèses, peut être imbriquée sur deux niveaux. Par exemple : (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} )
. Cette fonctionnalité permet une correspondance avec chacune des trois entités.
Si Entity1 est un emplacement comportant des rôles comme l’origine (Seattle) et la destination (Cairo) et Entity2 un nom de bâtiment connu issu d’une entité de liste (RedWest-C), les énoncés suivants correspondent à ce modèle :
Exemple d’énoncé de regroupement imbriqué | Explication |
---|---|
RedWest-C | correspond à l’entité de regroupement externe |
Seattle | correspond à l’une des entités de regroupement internes |
Le Caire | correspond à l’une des entités de regroupement internes |
Limites d’imbrication des groupes à syntaxe facultative
Les combinaisons entre les syntaxes regroupement et facultatif sont limitées à trois niveaux d’imbrication.
Autorisé | Exemple |
---|---|
Oui | ( [ ( test1 | test2 ) ] | test3 ) |
Non | ( [ ( [ test1 ] | test2 ) ] | test3 ) |
Limites d’imbrication des groupes à syntaxe de type ou
Les combinaisons entre les syntaxes regroupement et ou sont limitées à deux barres verticales.
Autorisé | Exemple |
---|---|
Oui | ( test1 | test2 | ( test3 | test4 ) ) |
Non | ( test1 | test2 | test3 | ( test4 | test5 ) ) |
Syntaxe pour ajouter une entité à un modèle
Pour ajouter une entité au modèle, placez le nom de l’entité entre accolades, comme Who does {Employee} manage?
.
Modèle avec une entité |
---|
Who does {Employee} manage? |
Syntaxe pour ajouter une entité et un rôle à un modèle
Le rôle d’une entité est indiqué par {entity:role}
avec le nom de l’entité suivi d’un signe deux-points, puis du nom de rôle. Pour ajouter une entité et un rôle au modèle, placez le nom de l’entité et le nom du rôle entre accolades, comme Book a ticket from {Location:Origin} to {Location:Destination}
.
Modèle avec des rôles d’entités |
---|
Book a ticket from {Location:Origin} to {Location:Destination} |
Syntaxe pour ajouter un pattern.any à un modèle
L’entité Pattern.any vous permet d’ajouter une entité de longueur variable au modèle. Tant que le modèle est suivi, l’entité pattern.any peut être de n’importe quelle longueur.
Pour ajouter une entité Pattern.any au modèle, placez l’entité Pattern.any entre accolades, comme How much does {Booktitle} cost and what format is it available in?
.
Modèle avec une entité Pattern.any |
---|
How much does {Booktitle} cost and what format is it available in? |
Titres de livres dans le modèle |
---|
Combien Steal this book coûte-t-il et dans quel format est-il disponible ? |
Combien Soufi, mon amour coûte-t-il et dans quel format est-il disponible ? |
Combien Le Bizarre Incident du chien pendant la nuit coûte-t-il et dans quel format est-il disponible ? |
Les mots du titre du livre ne gênent pas LUIS, car il sait où le titre du livre se termine grâce à l’entité Pattern.any.
Listes explicites
Créez une Liste explicite via l’API de création pour autoriser l’exception si les deux conditions suivantes sont réunies :
- Votre modèle contient un Pattern.any.
- La syntaxe de ce modèle autorise l’extraction d’une mauvaise entité selon l’énoncé.
Par exemple, supposons que vous disposez d’un modèle contenant la syntaxe facultative, []
, et la syntaxe d’entité, {}
, combinées de façon à extraire les données de manière incorrecte.
Prenons l’exemple du modèle « [trouver] e-mail sur {objet} [de {personne}] ».
Dans les énoncés suivants, les entités objet et personne sont extraites correctement et incorrectement :
Énoncé | Entité | Extraction correcte |
---|---|---|
e-mail sur les chiens de Chris | objet = les chiens personne = Chris |
✔ |
e-mail sur l’homme de La Manche | objet = l’homme personne = La Manche |
X |
Dans le tableau précédent, l’objet devrait être the man from La Mancha
(titre de livre) ; cependant, comme il comporte le mot facultatif from
, le titre est mal prédit.
Pour corriger cette exception dans le modèle, ajoutez the man from la mancha
en tant que correspondance de liste explicite pour l’entité {objet} à l’aide de l’API de création de liste explicite.
Syntaxe pour marquer le texte facultatif dans un modèle d’énoncé
Marquez un texte facultatif dans l’énoncé à l’aide de la syntaxe en crochet d’expression régulière, []
. Dans le texte facultatif, vous pouvez imbriquer jusqu'à deux crochets uniquement.
Modèle avec un texte facultatif | Signification |
---|---|
[find] email about {subject} [from {person}] |
find et from {person} sont facultatifs. |
`Can you help me[?] | Le signe de ponctuation est facultatif |
Les signes de ponctuation (?
, !
et .
) doivent être ignorés, avec la syntaxe entre crochets des modèles.
Étapes suivantes
Découvrez-en plus sur les modèles :
Découvrez comment les sentiments sont retournés dans la réponse .json.