Delen via


Patroonsyntaxis

Belangrijk

LUIS wordt op 1 oktober 2025 buiten gebruik gesteld en vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources maken. We raden u aan uw LUIS-toepassingen te migreren naar gesprekstaalbegrip om te profiteren van continue productondersteuning en meertalige mogelijkheden.

Patroonsyntaxis is een sjabloon voor een uiting. De sjabloon moet woorden en entiteiten bevatten die u wilt vergelijken, evenals woorden en interpunctie die u wilt negeren. Het is geen reguliere expressie.

Let op

Patronen omvatten alleen machine learning-entiteitskoppelingen, niet subentiteiten. Entiteiten in patronen worden omgeven door accolades, {}. Patronen kunnen entiteiten en entiteiten met rollen bevatten. Pattern.any is een entiteit die alleen wordt gebruikt in patronen.

Patroonsyntaxis ondersteunt de volgende syntaxis:

Functie Syntaxis Nestniveau Opmerking
entity {} - accolades 2 Waar is formulier {entity-name}?
optioneel [] - vierkante haken

Er geldt een limiet van 3 voor geneste niveaus van elke combinatie van optionele en groepering
2 Het vraagteken is optioneel [?]
groepering () - haakjes 2 is (a | b)
or | - verticale staaf (pijp)

Er is een limiet van 2 op de verticale balken (Of) in één groep
- Waar is het formulier ({form-name-short} | {form-name-long} | {form-number})
begin en/of einde van utterance ^-Caret - ^begin de uiting
de uiting is voltooid^
^strikte letterlijke overeenkomst van volledige uiting met entiteit {number}

Syntaxis nesten in patronen

De optionele syntaxis, met vierkante haken, kan twee niveaus worden genest. Voorbeeld: [[this]is] a new form. In dit voorbeeld kunnen de volgende utterances worden weergegeven:

Voorbeeld van geneste optionele utterance Uitleg
dit is een nieuw formulier komt overeen met alle woorden in patroon
is een nieuw formulier komt overeen met buitenste optionele woorden en niet-optionele woorden in patroon
een nieuw formulier komt alleen overeen met vereiste woorden

De groeperingssyntaxis , met haakjes, kan twee niveaus worden genest. Voorbeeld: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} ). Met deze functie kunnen alle drie entiteiten worden vergeleken.

Als Entity1 een locatie is met rollen zoals origin (Seattle) en destination (Cairo) en Entity 2 is een bekende bouwnaam van een lijstentiteit (RedWest-C), worden de volgende uitingen toegewezen aan dit patroon:

Voorbeeld van geneste groeperingsuiting Uitleg
RedWest-C komt overeen met buitenste groeperingsentiteit
Seattle komt overeen met een van de binnenste groeperingsentiteiten
Cairo komt overeen met een van de binnenste groeperingsentiteiten

Geneste limieten voor groepen met optionele syntaxis

Een combinatie van groepering met optionele syntaxis heeft een limiet van 3 nestniveaus.

Toegestaan Opmerking
Ja ( [ ( test1 | test2 ) ] | test3 )
Nee ( [ ( [ test1 ] | test2 ) ] | test3 )

Nestlimieten voor groepen met or-ingssyntaxis

Een combinatie van groepering met or-ingssyntaxis heeft een limiet van 2 verticale balken.

Toegestaan Opmerking
Ja ( test1 | test2 | ( test3 | test4 ) )
Nee ( test1 | test2 | test3 | ( test4 | test5 ) )

Syntaxis voor het toevoegen van een entiteit aan een patroonsjabloon

Als u een entiteit wilt toevoegen aan de patroonsjabloon, zet u de naam van de entiteit tussen accolades, zoals Who does {Employee} manage?.

Patroon met entiteit
Who does {Employee} manage?

Syntaxis voor het toevoegen van een entiteit en rol aan een patroonsjabloon

Een entiteitsrol wordt aangeduid als {entity:role} met de naam van de entiteit, gevolgd door een dubbele punt en vervolgens de rolnaam. Als u een entiteit met een rol wilt toevoegen aan de patroonsjabloon, zet u de naam van de entiteit en de rolnaam tussen accolades, zoals Book a ticket from {Location:Origin} to {Location:Destination}.

Patroon met entiteitsrollen
Book a ticket from {Location:Origin} to {Location:Destination}

Syntaxis om een pattern.any toe te voegen aan een patroonsjabloon

Met de entiteit Pattern.any kunt u een entiteit van verschillende lengte toevoegen aan het patroon. Zolang de patroonsjabloon wordt gevolgd, kan het patroon.any elke lengte hebben.

Als u een Pattern.any-entiteit wilt toevoegen aan de patroonsjabloon, zet u de entiteit Pattern.any tussen de accolades, zoals How much does {Booktitle} cost and what format is it available in?.

Patroon met Pattern.any-entiteit
How much does {Booktitle} cost and what format is it available in?
Boektitels in het patroon
Hoeveel kost dit boek stelen en in welke indeling is het beschikbaar?
Hoeveel kost het en in welke indeling is deze beschikbaar?
Hoeveel kost The Curious Incident of the Dog in the Night-Time en in welke indeling is het beschikbaar?

De woorden van de boektitel zijn niet verwarrend voor LUIS, omdat LUIS weet waar de boektitel eindigt, op basis van de entiteit Pattern.any.

Expliciete lijsten

maak een expliciete lijst via de ontwerp-API om de uitzondering toe te staan wanneer:

  • Uw patroon bevat een Pattern.any
  • En die patroonsyntaxis biedt de mogelijkheid van een onjuiste entiteitextractie op basis van de uiting.

Stel dat u een patroon hebt met zowel optionele syntaxis als []entiteitssyntaxis, {}gecombineerd op een manier om gegevens onjuist te extraheren.

Houd rekening met het patroon [find] email about {subject} [from {person}].

In de volgende utterances worden de onderwerp- en persoonsentiteit correct en onjuist geëxtraheerd:

Uiting Entity Juiste extractie
e-mail over honden van Chris subject=honden
persoon=Chris
e-mail over de man van La Mancha subject=the man
persoon=La Mancha
X

In de voorgaande tabel moet het onderwerp (een boektitel) zijn the man from La Mancha , maar omdat het onderwerp het optionele woord frombevat, wordt de titel onjuist voorspeld.

Als u deze uitzondering wilt oplossen voor het patroon, voegt the man from la mancha u toe als een expliciete lijstovereenkomst voor de entiteit {subject} met behulp van de ontwerp-API voor een expliciete lijst.

Syntaxis om optionele tekst in een sjabloonuiting te markeren

Markeer optionele tekst in de uiting met behulp van de syntaxis van de vierkante haken van de reguliere expressie. [] De optionele tekst kan vierkante haken tot maximaal twee vierkante haken nesten.

Patroon met optionele tekst Betekenis
[find] email about {subject} [from {person}] find en from {person} zijn optioneel
'Kun je me helpen[?] Het interpunctieteken is optioneel

Leestekens (?, !, .) moeten worden genegeerd en u moet deze negeren met behulp van de syntaxis van vierkante haken in patronen.

Volgende stappen

Meer informatie over patronen:

Begrijpen hoe sentiment wordt geretourneerd in het .json-antwoord.