Alterar os dados de declaração antes ou durante a previsão

Importante

O LUIS será desativado em 1º de outubro de 2025 e, a partir de 1º de abril de 2023, você não poderá criar novos recursos do LUIS. É recomendável migrar seus aplicativos LUIS para a compreensão da linguagem coloquial a fim de usufruir do suporte contínuo ao produto e dos recursos multilíngues.

O LUIS fornece maneiras de manipular a declaração antes ou durante a previsão. Isso inclui a correção de ortografia e a correção de problemas de fuso horário do datetimeV2 pré-criado.

Corrigir erros de ortografia na declaração

Runtime da V3

Pré-processe o texto realizando correções ortográficas antes de enviar o enunciado para o LUIS. Use os enunciados de exemplo com a grafia correta para garantir que você obtenha as previsões corretas.

Use a Verificação Ortográfica do Bing para corrigir o texto antes de enviá-lo para o LUIS.

Anterior ao runtime da V3

O LUIS usa a API de Verificação Ortográfica do Bing V7 para corrigir erros de ortografia na declaração. O LUIS precisa da chave associada a esse serviço. Crie a chave e adicione-a como um parâmetro querystring no ponto de extremidade.

O ponto de extremidade requer dois parâmetros para as correções ortográfica funcionarem:

Param Valor
spellCheck booleano
bing-spell-check-subscription-key Chave de ponto de extremidade de API de Verificação Ortográfica do Bing V7

Quando a API de Verificação Ortográfica do Bing V7 detecta um erro, a declaração original e a declaração corrigida são retornadas junto com as previsões do ponto de extremidade.

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

Lista de palavras permitidas

A API de verificação ortográfica do Bing usada no LUIS não dá suporte a uma lista de palavras a serem ignoradas durante as alterações de verificação ortográfica. Se você precisar permitir uma lista de palavras ou acrônimos, processe o enunciado no aplicativo cliente antes de enviá-lo ao LUIS para previsão de intenção.

Alterar o fuso horário da entidade datetimeV2 predefinida

Quando um aplicativo LUIS usa a entidade datetimeV2 predefinida, um valor de datetime pode ser retornado na resposta da previsão. O fuso horário da solicitação é usado para determinar o datetime correto a ser retornado. Se a solicitação for proveniente de um bot ou de outro aplicativo centralizado antes de chegar ao LUIS, corrija o fuso horário que o LUIS usa.

API de previsão V3 para alterar o fuso horário

Na V3, o datetimeReference determina o deslocamento do fuso horário.

API de previsão V2 para alterar o fuso horário

O fuso horário é corrigido adicionando o fuso horário do usuário ao ponto de extremidade usando o parâmetro timezoneOffset baseado na versão da API. O valor do parâmetro deve ser o número positivo ou negativo, em minutos, para alterar a hora.

Exemplo de horário de verão na previsão V2

Se você precisar que o datetimeV2 predefinido seja ajustado para o horário de verão, deverá usar o parâmetro querystring com um valor maior ou menor em minutos para a consulta de ponto de extremidade.

Adicionar 60 minutos:

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}

Remover 60 minutos:

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}

O código em C# de previsão V2 determina o valor correto do parâmetro

O seguinte código em C# usa o método FindSystemTimeZoneById da classe TimeZoneInfo para determinar o deslocamento correto com base na hora do 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);

Próximas etapas

Corrigir erros de ortografia com este tutorial