Uitingsgegevens vóór of tijdens voorspelling wijzigen

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.

LUIS biedt manieren om de uiting vóór of tijdens de voorspelling te manipuleren. Dit omvat het oplossen van spelling en het oplossen van tijdzoneproblemen voor vooraf gedefinieerde datum/tijdV2.

Spelfouten in utterance corrigeren

V3-runtime

Verwerkt tekst voor spellingcorrecties voordat u de uiting naar LUIS verzendt. Gebruik voorbeelduitingen met de juiste spelling om ervoor te zorgen dat u de juiste voorspellingen krijgt.

Gebruik Bing Spellingcontrole om tekst te corrigeren voordat u deze naar LUIS verzendt.

Voorafgaand aan V3-runtime

LUIS gebruikt Bing Spellingcontrole-API V7 om spelfouten in de uiting te corrigeren. LUIS heeft de sleutel nodig die aan die service is gekoppeld. Maak de sleutel en voeg de sleutel vervolgens toe als een querytekenreeksparameter op het eindpunt.

Voor het eindpunt zijn twee parameters vereist voor spellingcorrecties:

Param Weergegeven als
spellCheck boolean
bing-spell-check-subscription-key Bing Spellingcontrole-API V7-eindpuntsleutel

Wanneer Bing Spellingcontrole-API V7 een fout detecteert, worden de oorspronkelijke uiting en de gecorrigeerde uiting geretourneerd, samen met voorspellingen van het eindpunt.

{
  "query": "Book a flite to London?",
  "alteredQuery": "Book a flight to London?",
  "topScoringIntent": {
    "intent": "BookFlight",
    "score": 0.780123
  },
  "entities": []
}

Lijst met toegestane woorden

De Bing-spellingcontrole-API die in LUIS wordt gebruikt, biedt geen ondersteuning voor een lijst met woorden die tijdens de wijzigingen in de spellingcontrole moeten worden genegeerd. Als u een lijst met woorden of acroniemen wilt toestaan, moet u de uiting in de clienttoepassing verwerken voordat u de uiting naar LUIS verzendt voor intentievoorspelling.

Tijdzone van vooraf gedefinieerde datum/tijdV2-entiteit wijzigen

Wanneer een LUIS-app gebruikmaakt van de vooraf gedefinieerde entiteit datetimeV2 , kan een datum/tijd-waarde worden geretourneerd in het voorspellingsantwoord. De tijdzone van de aanvraag wordt gebruikt om de juiste datum/tijd te bepalen die moet worden geretourneerd. Als de aanvraag afkomstig is van een bot of een andere gecentraliseerde toepassing voordat u naar LUIS gaat, corrigeert u de tijdzone die LUIS gebruikt.

V3-voorspellings-API voor het wijzigen van tijdzone

In V3 bepaalt de datetimeReference tijdzone-offset.

V2-voorspellings-API voor het wijzigen van tijdzone

De tijdzone wordt gecorrigeerd door de tijdzone van de gebruiker toe te voegen aan het eindpunt met behulp van de timezoneOffset parameter op basis van de API-versie. De waarde van de parameter moet het positieve of negatieve getal zijn, in minuten, om de tijd te wijzigen.

Voorbeeld van V2-voorspellingstijd voor zomertijd

Als u de geretourneerde vooraf samengestelde datum/tijdV2 nodig hebt om aan te passen aan de zomertijd, moet u de querytekenreeksparameter gebruiken met een +/-waarde in minuten voor de eindpuntquery .

Voeg 60 minuten toe:

https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}

60 minuten verwijderen:

https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=-60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}

De C#-code voor V2-voorspelling bepaalt de juiste waarde van de parameter

De volgende C#-code maakt gebruik van de methode FindSystemTimeZoneById van de klasse TimeZoneInfo om de juiste offsetwaarde te bepalen op basis van systeemtijd:

// Get CST zone id
TimeZoneInfo targetZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");

// Get local machine's value of Now
DateTime utcDatetime = DateTime.UtcNow;

// Get Central Standard Time value of Now
DateTime cstDatetime = TimeZoneInfo.ConvertTimeFromUtc(utcDatetime, targetZone);

// Find timezoneOffset/datetimeReference
int offset = (int)((cstDatetime - utcDatetime).TotalMinutes);

Volgende stappen

Spelfouten corrigeren met deze zelfstudie