Mönstersyntax
Viktigt!
LUIS dras tillbaka den 1 oktober 2025 och från och med den 1 april 2023 kommer du inte att kunna skapa nya LUIS-resurser. Vi rekommenderar att du migrerar dina LUIS-program till förståelse för konversationsspråk för att dra nytta av fortsatt produktsupport och flerspråkiga funktioner.
Mönstersyntax är en mall för ett yttrande. Mallen ska innehålla ord och entiteter som du vill matcha samt ord och skiljetecken som du vill ignorera. Det är inte ett reguljärt uttryck.
Varning
Mönster omfattar endast maskininlärningsentitetsföräldrar, inte underentiteter.
Entiteter i mönster omges av klammerparenteser, {}
. Mönster kan omfatta entiteter och entiteter med roller. Pattern.any är en entitet som endast används i mönster.
Mönstersyntax stöder följande syntax:
Funktion | Syntax | Kapslingsnivå | Exempel |
---|---|---|---|
entity | {} - klammerparenteser | 2 | Var finns formuläret {entity-name}? |
valfri | [] - hakparenteser Det finns en gräns på 3 för kapslingsnivåer för valfri kombination och gruppering |
2 | Frågetecknet är valfritt [?] |
gruppering | () - parenteser | 2 | är (en | b) |
eller | | - lodrät stapel (rör) Det finns en gräns på 2 på de lodräta staplarna (eller) i en grupp |
- | Var finns formuläret ({form-name-short} | {form-name-long} | {form-number}) |
början och/eller slutet av yttrandet | ^-Cirkumflex | - | ^börja talindata yttrandet är klart^ ^strikt literalmatchning av hela yttrandet med entiteten {number} ^ |
Kapslingssyntax i mönster
Den valfria syntaxen, med hakparenteser, kan kapslas två nivåer. Exempel: [[this]is] a new form
. Det här exemplet tillåter följande yttranden:
Kapslat valfritt yttrandeexempel | Förklaring |
---|---|
det här är ett nytt formulär | matchar alla ord i mönster |
är ett nytt formulär | matchar yttre valfria ord och icke-valfria ord i mönster |
ett nytt formulär | matchar endast nödvändiga ord |
Grupperingssyntaxen, med parenteser, kan kapslas två nivåer. Exempel: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} )
. Med den här funktionen kan någon av de tre entiteterna matchas.
Om Entity1 är en plats med roller som ursprung (Seattle) och mål (Kairo) och Entitet 2 är ett känt byggnamn från en listentitet (RedWest-C), mappas följande yttranden till det här mönstret:
Exempel på kapslade grupperingsexempel | Förklaring |
---|---|
RedWest-C | matchar entitet för yttre gruppering |
Seattle | matchar en av de inre grupperingsentiteterna |
Kairo | matchar en av de inre grupperingsentiteterna |
Kapslingsgränser för grupper med valfri syntax
En kombination av gruppering med valfri syntax har en gräns på 3 kapslingsnivåer.
Tillåtet | Exempel |
---|---|
Ja | ( [ ( test1 | test2 ) ] | test3 ) |
Nej | ( [ ( [ [ test1 ] | test2 ) ] | test3 ) |
Kapslingsgränser för grupper med eller ing-syntax
En kombination av gruppering med eller ing-syntax har en gräns på 2 lodräta staplar.
Tillåtet | Exempel |
---|---|
Ja | ( test1 | test2 | ( test3 | test4 ) ) |
Nej | ( test1 | test2 | test3 | ( test4 | test5 ) ) |
Syntax för att lägga till en entitet i en mönstermall
Om du vill lägga till en entitet i mönstermallen omger du entitetsnamnet med klammerparenteser, till exempel Who does {Employee} manage?
.
Mönster med entitet |
---|
Who does {Employee} manage? |
Syntax för att lägga till en entitet och roll i en mönstermall
En entitetsroll betecknas som {entity:role}
med entitetsnamnet följt av ett kolon och sedan rollnamnet. Om du vill lägga till en entitet med en roll i mönstermallen omger du entitetsnamnet och rollnamnet med klammerparenteser, till exempel Book a ticket from {Location:Origin} to {Location:Destination}
.
Mönster med entitetsroller |
---|
Book a ticket from {Location:Origin} to {Location:Destination} |
Syntax för att lägga till en pattern.any till mönstermall
Med entiteten Pattern.any kan du lägga till en entitet med varierande längd i mönstret. Så länge mönstermallen följs kan pattern.any vara valfri längd.
Om du vill lägga till en Pattern.any-entitet i mönstermallen omger du entiteten Pattern.any med klammerparenteserna, till exempel How much does {Booktitle} cost and what format is it available in?
.
Mönster med Pattern.any-entitet |
---|
How much does {Booktitle} cost and what format is it available in? |
Boktitlar i mönstret |
---|
Hur mycket kostar stjäla den här boken och vilket format är det tillgängligt i? |
Hur mycket kostar fråga och vilket format är det tillgängligt i? |
Hur mycket kostar The Curious Incident of the Dog in the Night-Time och vilket format är det tillgängligt i? |
Orden i boktiteln är inte förvirrande för LUIS eftersom LUIS vet var boktiteln slutar, baserat på entiteten Pattern.any.
Explicita listor
skapa en explicit lista via redigerings-API:et för att tillåta undantaget när:
- Ditt mönster innehåller ett Pattern.any
- Och den mönstersyntaxen möjliggör möjligheten till en felaktig entitetsextrahering baserat på yttrandet.
Anta till exempel att du har ett mönster som innehåller både valfri syntax, []
, och entitetssyntax, {}
, kombinerat på ett sätt som gör att data extraheras felaktigt.
Överväg mönstret "[hitta] e-post om {subject} [från {person}]".
I följande yttranden extraheras ämnes - och personentiteten korrekt och felaktigt:
Yttrande | Enhet | Rätt extrahering |
---|---|---|
e-post om hundar från Chris | subject=dogs person=Chris |
✔ |
e-post om mannen från La Mancha | subject=mannen person=La Mancha |
X |
I föregående tabell ska ämnet vara the man from La Mancha
(en bokrubrik), men eftersom ämnet innehåller det valfria ordet from
förutsägs rubriken felaktigt.
Om du vill åtgärda det här undantaget till mönstret lägger du till the man from la mancha
som en explicit listmatchning för entiteten {subject} med redigerings-API:et för explicit lista.
Syntax för att markera valfri text i ett mallyttrande
Markera valfri text i yttrandet med hjälp av det reguljära uttryckets hakparentessyntax, []
. Den valfria texten kan kapsla hakparenteser upp till två hakparenteser.
Mönster med valfri text | Innebörd |
---|---|
[find] email about {subject} [from {person}] |
find och from {person} är valfria |
'Kan du hjälpa mig[?] | Skiljetecknet är valfritt |
Skiljetecken (?
, !
, .
) bör ignoreras och du måste ignorera dem med hjälp av hakparentessyntaxen i mönster.
Nästa steg
Läs mer om mönster:
Förstå hur sentiment returneras i .json svar.