Dela via


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 fromfö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.