Partage via


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.