Modificare i dati delle espressioni prima e durante la stima

Importante

LUIS verrà ritirato il 1° ottobre 2025 e a partire dal 1° aprile 2023 non sarà possibile creare nuove risorse LUIS. È consigliabile eseguire la migrazione delle applicazioni LUIS alla comprensione del linguaggio conversazionale per trarre vantaggio dal supporto continuo del prodotto e dalle funzionalità multilingue.

LUIS offre vari modi per manipolare le espressioni prima o durante la previsione. Questi includono la correzione dell'ortografia e la correzione dei problemi del fuso orario per datetimeV2 predefinite.

Correggere gli errori di ortografia nell'espressione

Runtime V3

Pre-elaborare il testo per le correzioni ortografiche prima di inviare l'espressione a LUIS. Usare espressioni di esempio con l'ortografia corretta per assicurarsi di ottenere le stime corrette.

Usare Controllo ortografico Bing per correggere il testo prima di inviarlo a LUIS.

Prima del runtime V3

Per correggere gli errori di ortografia nell'espressione, LUIS usa l'API Controllo ortografico Bing V7 e ha bisogno della chiava associata a tale servizio. Occorre quindi creare la chiave e aggiungerla come parametro querystring all'endpoint.

L'endpoint richiede due parametri per il funzionamento delle correzioni ortografiche:

Param Valore
spellCheck boolean
bing-spell-check-subscription-key Chiave endpoint API Controllo ortografico Bing V7

Quando l'API Controllo ortografico Bing V7 rileva un errore, dall'endpoint vengono restituite l'espressione originale e l'espressione corretta insieme alle previsioni.

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

Elenco di parole consentite

L'API controllo ortografico Bing usata in LUIS non supporta un elenco di parole da ignorare durante le modifiche del controllo ortografico. Se è necessario consentire un elenco di parole o acronimi, elaborare l'espressione nell'applicazione client prima di inviare l'espressione a LUIS per la stima delle finalità.

Cambiare il fuso orario dell'entità datetimeV2 predefinita

Quando un'app LUIS usa l'entità datetimeV2 predefinita, è possibile restituire un valore datetime nella risposta di stima. Il fuso orario della richiesta viene utilizzato per determinare il valore datatime corretto da restituire. Se la richiesta proviene da un bot o da un'altra applicazione centralizzata prima di passare a LUIS, occorre correggere il fuso orario usato da LUIS.

API di stima V3 per modificare il fuso orario

In V3, determina l'offset datetimeReference del fuso orario.

API di stima V2 per modificare il fuso orario

Il fuso orario viene corretto aggiungendo il fuso orario dell'utente all'endpoint usando il timezoneOffset parametro basato sulla versione dell'API. Il valore del parametro deve essere il numero positivo o negativo, espresso in minuti, per modificare l'ora.

Esempio di previsione V2 per l'ora legale

Se è necessario che il valore datetimeV2 predefinito restituito venga modificato per l'ora legale, è consigliabile usare il parametro querystring con un valore +/- espresso in minuti per la query dell'endpoint.

Aggiungere 60 minuti:

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}

Sottrarre 60 minuti:

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}

Il codice C# di stima V2 determina il valore corretto del parametro

Il codice C# seguente usa il metodo FindSystemTimeZoneById della classe TimeZoneInfo per determinare il valore di offset corretto in base all'ora di sistema:

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

Passaggi successivi

Correggere gli errori di ortografia con questa esercitazione