Поделиться через


Изменение данных высказываний до или во время прогнозирования

Внимание

LUIS будет прекращена 1 октября 2025 г. и с 1 апреля 2023 г. вы не сможете создать новые ресурсы LUIS. Мы рекомендуем перенести приложения LUIS в понимание общения, чтобы воспользоваться продолжением поддержки продуктов и многоязычными возможностями.

LUIS предоставляет способы управления высказыванием до или во время прогнозирования. К ним относятся исправление орфографии или проблем с часовым поясом для предварительно созданной сущности datetimeV2.

Исправление орфографических ошибок в высказывании

Среда выполнения v3

Предварительная обработка текста для исправления правописания перед отправкой речевого фрагмента в LUIS. Используйте пример речевого фрагмента с правильным написанием, чтобы убедиться, что вы получаете правильные прогнозы.

Чтобы исправить текст перед отправкой в LUIS, используйте Проверку орфографии Bing.

До среды выполнения V3

Для исправления орфографических ошибок в высказывании LUIS использует API проверки орфографии Bing версии 7. LUIS требуется ключ, связанный с этой службой. Создайте ключ, а затем добавьте его в качестве параметра QueryString в конечную точку.

Чтобы исправления орфографических ошибок вступили в силу, конечной точке требуется два параметра.

Param Значение
spellCheck boolean
bing-spell-check-subscription-key Ключ конечной точки API проверки орфографии Bing версии 7

Когда API проверки орфографии Bing версии 7 обнаруживает ошибку, из конечной точки возвращаются исходное выражение, исправленное выражение и прогнозирование.

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

Список разрешенных слов

API проверки орфографии Bing, используемый в LUIS, не поддерживает список слов, которые следует игнорировать при изменении проверки орфографии. Если нужно разрешить список слов или сокращений, обработайте речевой фрагмент в клиентском приложении перед его отправкой в LUIS для прогнозирования намерений.

Изменение часового пояса предварительно созданной сущности datetimeV2

Когда приложение LUIS использует предварительно созданную сущность datetimeV2, в ответе прогнозирования может возвращаться значение даты и времени. Часовой пояс запроса используется для определения правильного возвращаемого значения даты и времени. Если запрос поступает от бота или другого централизованного приложения до передачи в LUIS, исправьте часовой пояс, используемый LUIS.

API прогнозирования версии 3 для изменения часового пояса

В версии 3 datetimeReference определяет смещение часового пояса.

API прогнозирования версии 2 для изменения часового пояса

Часовой пояс исправляется путем добавления часового пояса пользователя к конечной точке с помощью параметра timezoneOffset, основанного на версии API. Значение параметра должно быть положительным или отрицательным числом в минутах, чтобы изменить время.

Пример прогнозирования летнего времени на версии 2

Чтобы скорректировать возвращенную предварительно созданную сущность datetimeV2 для перехода на летнее время, следует использовать параметр QueryString со значением +/– в минутах для запроса конечной точки.

Добавьте 60 минут:

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 минут:

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}

Код C# прогнозирования версии 2 определяет правильное значение параметра

В следующем коде на C# для определения правильного значения смещения на основе системного времени используется метод FindSystemTimeZoneById класса TimeZoneInfo:

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

Следующие шаги

Исправление орфографических ошибок с помощью этого руководства