Изменение данных высказываний до или во время прогнозирования
Внимание
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);
Следующие шаги
Исправление орфографических ошибок с помощью этого руководства