Ändern von Äußerungsdaten vor oder während der Vorhersage

Wichtig

LUIS wird am 1. Oktober 2025 eingestellt, und ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Es wird die Migration Ihrer LUIS-Anwendungen zu Conversational Language Understanding empfohlen, um fortgesetzte Produktunterstützung und mehrsprachige Funktionen zu erhalten.

LUIS bietet Möglichkeiten zum Bearbeiten einer Äußerung vor oder während der Vorhersage. Dazu gehören eine Korrektur der Rechtschreibung und das Beheben von Zeitzonenproblemen für die vordefinierte Entität datetimeV2.

Korrigieren von Rechtschreibfehlern in Äußerungen

V3-Runtime

Führen Sie eine Vorverarbeitung von Text zwecks Rechtschreibkorrektur durch, bevor Sie die Äußerungen an LUIS senden. Verwenden Sie Beispieläußerungen mit richtiger Schreibung, um sicherzustellen, dass Sie die richtigen Vorhersagen erhalten.

Verwenden Sie die Bing-Rechtschreibprüfung, um Text vor dem Senden an LUIS zu korrigieren.

Vor der V3-Runtime

LUIS verwendet die Bing-Rechtschreibprüfungs-API V7 um Rechtschreibfehler in Äußerungen zu korrigieren. LUIS benötigt den diesem Dienst zugewiesenen Schlüssel. Erstellen Sie den Schlüssel, und fügen Sie den Schlüssel dann als Parameter der Abfragezeichenfolge an den Endpunkt hinzu.

Der Endpunkt benötigt zwei Parameter, damit Rechtschreibkorrekturen funktionieren:

Parameter Wert
spellCheck boolean
bing-spell-check-subscription-key Bing-Rechtschreibprüfungs-API V7 – Endpunktschlüssel

Wenn die Bing-Rechtschreibprüfungs-API V7 einen Fehler erkennt, werden die ursprüngliche Äußerung und die korrigierte Äußerung zusammen mit Vorhersagen vom Endpunkt zurückgegeben.

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

Liste zulässiger Wörter

Die in LUIS verwendete Bing-Rechtschreibprüfungs-API unterstützt keine Liste mit Wörtern, die bei den Änderungen durch die Rechtschreibprüfung ignoriert werden sollen. Wenn Sie eine Liste für Wörter oder Akronyme benötigen, verarbeiten Sie die Äußerung im Client, bevor Sie die Äußerung zur Absichtsvorhersage an LUIS senden.

Ändern der Zeitzone von vordefinierten datetimeV2-Entitäten

Wenn eine LUIS-App die vordefinierte Entität datetimeV2 verwendet, kann ein datetime-Wert in der Vorhersageantwort zurückgegeben werden. Der richtige datetime-Wert für die Rückgaben wird anhand der Zeitzone der Anforderung bestimmt. Wenn die Anforderung von einem Bot oder einer anderen zentralen Anwendung vor dem Empfang durch LUIS stammt, korrigieren Sie die von LUIS verwendete Zeitzone.

V3-Vorhersage-API zum Ändern der Zeitzone

In V3 bestimmt datetimeReference den Zeitzonenunterschied.

V2-Vorhersage-API zum Ändern der Zeitzone

Die Zeitzone wird durch Hinzufügen der Zeitzone des Benutzers zum Endpunkt korrigiert. Dazu wird der zur API-Version passende timezoneOffset-Parameter verwendet. Der Wert des Parameters sollte die positive oder negative Zahl zum Ändern der Uhrzeit in Minuten sein.

Sommerzeitbeispiel für die V2-Vorhersage

Wenn Sie den zurückgegebenen vordefinierten datetimeV2-Wert für die Anpassung an die Sommerzeit benötigen, sollten Sie den QueryString-Parameter mit einem +/-Wert in Minuten für die Abfrage an den Endpunkt verwenden.

Hinzufügen von 60 Minuten:

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}

Entfernen von 60 Minuten:

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}

Der C#-Code der V2-Vorhersage bestimmt den richtigen Parameterwert

Der folgende C#-Code verwendet die FindSystemTimeZoneById-Methode der TimeZoneInfo-Klasse, um den richtigen Wert für den Zeitzonenunterschied im Ausgang von der Systemzeit zu bestimmen:

// 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);

Nächste Schritte

Korrigieren Sie Rechtschreibfehler mithilfe dieses Tutorials.