Condividi tramite


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 è più possibile creare nuove risorse LUIS. Si consiglia di eseguire la migrazione delle applicazioni LUIS a comprensione del linguaggio di conversazione per sfruttare appieno il supporto continuativo per i prodotti e le funzionalità multilingue.

LUIS offre vari modi per manipolare le espressioni prima o durante la previsione. Tra questi figurano la correzione dell'ortografia e la risoluzione dei problemi di fuso orario per l'oggetto datetimeV2 predefinito.

Correggere gli errori di ortografia nell'espressione

Runtime V3

Pre-elaborare il testo per la correzione ortografica prima di inviare l'espressione a LUIS. Per avere la certezza di ottenere previsioni corrette, usare espressioni di esempio senza errori di ortografia.

Usare il 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 delle parole consentite

L'API Controllo ortografico Bing usata in LUIS non supporta un elenco di parole da ignorare durante le alterazioni del controllo ortografico. Se si desidera consentire un elenco di parole o acronimi, elaborare l'espressione nell'applicazione client prima di inviare l'espressione a LUIS per la previsione della finalità.

Cambiare il fuso orario dell'entità datetimeV2 predefinita

Quando un'app LUIS usa l'entità datetimeV2 predefinita, può essere restituito un valore datetime nella risposta di previsione. 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 previsione V3 per modificare il fuso orario

Nell'API V3 l'oggetto datetimeReference determina l'offset del fuso orario.

API di previsione V2 per modificare il fuso orario

Per correggere il fuso orario aggiungere il fuso orario dell'utente all'endpoint usando il parametro timezoneOffset basato sulla versione dell'API. Il valore del parametro deve essere il numero positivo o negativo che, in minuti, modifica l'ora.

Esempio di previsione V2 per l'ora legale

Se è necessario che l'entità datetimeV2 predefinita restituita sia regolata in base all'ora legale, occorre usare il parametro querystring con un valore +/- in minuti per la query 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# dell'API di previsione V2 determina il valore corretto del parametro

Il seguente codice C# usa il metodo FindSystemTimeZoneById della classe TimeZoneInfo per determinare il valore di offset corretto in base all'ora del 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