Alter utterance data before or during prediction (Zmienianie danych wypowiedzi przed przewidywaniem lub podczas przewidywania)

Ważne

Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.

Usługa LUIS udostępnia sposoby manipulowania wypowiedzią przed lub podczas przewidywania. Obejmują one naprawianie pisowni i rozwiązywanie problemów ze strefą czasową dla wstępnie utworzonej daty/godziny 2.

Poprawianie błędów pisowni w wypowiedzi

Środowisko uruchomieniowe w wersji 3

Wstępnie przetwarza tekst poprawek pisowni przed wysłaniem wypowiedzi do usługi LUIS. Użyj przykładowych wypowiedzi z poprawną pisownią, aby upewnić się, że uzyskasz poprawne przewidywania.

Użyj sprawdzania pisowni Bing, aby poprawić tekst przed wysłaniem go do usługi LUIS.

Przed środowiskiem uruchomieniowym w wersji 3

Usługa LUIS używa interfejsu API sprawdzania pisowni Bing w wersji 7 do poprawiania błędów pisowni w wypowiedzi. Usługa LUIS potrzebuje klucza skojarzonego z tą usługą. Utwórz klucz, a następnie dodaj klucz jako parametr querystring w punkcie końcowym.

Punkt końcowy wymaga dwóch parametrów, aby poprawki pisowni działały:

Param Wartość
spellCheck boolean
bing-spell-check-subscription-key Klucz punktu końcowego interfejsu API sprawdzania pisowni Bing v7

Gdy interfejs API sprawdzania pisowni Bing v7 wykryje błąd, oryginalna wypowiedź i poprawiona wypowiedź są zwracane wraz z przewidywaniami z punktu końcowego.

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

Lista dozwolonych wyrazów

Interfejs API sprawdzania pisowni Bing używany w usłudze LUIS nie obsługuje listy wyrazów do ignorowania podczas zmian sprawdzania pisowni. Jeśli musisz zezwolić na listę słów lub akronimów, przetwórz wypowiedź w aplikacji klienckiej przed wysłaniem wypowiedzi do usługi LUIS w celu przewidywania intencji.

Zmienianie strefy czasowej wstępnie utworzonej jednostki datetimeV2

Gdy aplikacja usługi LUIS używa wstępnie utworzonej jednostki datetimeV2 , wartość daty/godziny może zostać zwrócona w odpowiedzi przewidywania. Strefa czasowa żądania służy do określania prawidłowej daty/godziny do zwrócenia. Jeśli żądanie pochodzi z bota lub innej scentralizowanej aplikacji przed przejściem do usługi LUIS, popraw użycie strefy czasowej usługi LUIS.

Interfejs API przewidywania w wersji 3 w celu zmiany strefy czasowej

W wersji 3 określa datetimeReference przesunięcie strefy czasowej.

Interfejs API przewidywania w wersji 2 w celu zmiany strefy czasowej

Strefa czasowa jest poprawiana przez dodanie strefy czasowej użytkownika do punktu końcowego przy użyciu parametru timezoneOffset opartego na wersji interfejsu API. Wartość parametru powinna być dodatnią lub ujemną liczbą w minutach, aby zmienić czas.

Przykład prognozowania czasu letniego w wersji 2

Jeśli potrzebujesz zwróconej wstępnie utworzonej daty/godziny 2, aby dostosować czas letni, należy użyć parametru querystring z wartością +/- w minutach dla zapytania punktu końcowego.

Dodaj 60 minut:

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}

Usuń 60 minut:

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}

Kod języka C# przewidywania w wersji 2 określa poprawną wartość parametru

Poniższy kod języka C# używa metody FindSystemTimeZoneById klasy TimeZoneInfo w celu określenia poprawnej wartości przesunięcia na podstawie czasu systemowego:

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

Następne kroki

Poprawianie błędów pisowni w tym samouczku