Kimondott szöveg adatainak módosítása előrejelzés előtt vagy közben

Fontos

A LUIS 2025. október 1-jén megszűnik, és 2023. április 1-től nem hozhat létre új LUIS-erőforrásokat. Javasoljuk, hogy a LUIS-alkalmazásokat a beszélgetési nyelv megértésére migrálja, hogy kihasználhassa a terméktámogatás és a többnyelvű képességek előnyeit.

A LUIS módot kínál a kimondott szöveg módosítására az előrejelzés előtt vagy alatt. Ezek közé tartozik a helyesírás javítása és az előre összeállított datetimeV2 időzónával kapcsolatos problémáinak kijavítása.

Helyesírási hibák javítása a kimondott szövegben

V3-futtatókörnyezet

A szöveg előfeldolgozása a helyesírás-javításokhoz, mielőtt elküldené a kimondott szöveget a LUIS-nak. A helyes helyesírású kimondott szövegeket használva győződjön meg arról, hogy a helyes előrejelzéseket kapja.

A Bing Spell Check használatával kijavíthatja a szöveget, mielőtt elküldené azt a LUIS-nak.

V3-futtatókörnyezet előtt

A LUIS a Bing Spell Check API V7 használatával javítja ki a kimondott szöveg helyesírási hibáit. A LUIS-nak szüksége van a szolgáltatáshoz társított kulcsra. Hozza létre a kulcsot, majd adja hozzá a kulcsot lekérdezési paraméterként a végponton.

A végponthoz két param szükséges a helyesírás-javítások működéséhez:

Paraméter Érték
spellCheck Logikai
bing-spell-check-subscription-key Bing Spell Check API V7 végpontkulcs

Amikor a Bing Spell Check API V7 hibát észlel, a rendszer visszaadja az eredeti kimondott szöveget és a kijavított kimondott szöveget, valamint a végpont előrejelzéseit.

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

Az engedélyezett szavak listája

A LUIS-ban használt Bing helyesírás-ellenőrző API nem támogatja a helyesírás-ellenőrzési módosítások során figyelmen kívül hagyandó szavak listáját. Ha engedélyeznie kell a szavak vagy mozaikszavak listáját, dolgozza fel a kimondott szöveget az ügyfélalkalmazásban, mielőtt elküldi a kimondott szöveget a LUIS-nak szándék-előrejelzés céljából.

Előre összeállított datetimeV2 entitás időzónájának módosítása

Ha egy LUIS-alkalmazás az előre összeállított datetimeV2 entitást használja, a dátum/idő érték visszaadható az előrejelzési válaszban. A kérés időzónája határozza meg a megfelelő visszatérési dátumot. Ha a kérelem egy robottól vagy egy másik központosított alkalmazástól érkezik, mielőtt a LUIS-ba jut, javítsa ki a LUIS által használt időzónát.

V3 előrejelzési API az időzónák módosításához

A V3-ban a datetimeReference rendszer határozza meg az időzónák eltolását.

V2 előrejelzési API az időzónák módosításához

Az időzónát úgy korrigálja a rendszer, hogy hozzáadja a felhasználó időzónáját a végponthoz az timezoneOffset API-verzión alapuló paraméter használatával. A paraméter értékének percekben pozitív vagy negatív számnak kell lennie az idő módosításához.

V2 előrejelzés nyári időszámítási példa

Ha a nyári időszámításhoz a visszaadott előre összeállított datetimeV2 értékre van szüksége, akkor a lekérdezéslánc paramétert a végpontlekérdezéshez percekben megadott +/- értékkel kell használnia.

60 perc hozzáadása:

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 perc eltávolítása:

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}

A V2 előrejelzési C# kódja határozza meg a paraméter helyes értékét

A következő C#-kód a TimeZoneInfo osztály FindSystemTimeZoneById metódusával határozza meg a megfelelő eltolási értéket a rendszeridő alapján:

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

Következő lépések

Helyesírási hibák kijavítása ezzel az oktatóanyaggal