Minták a LUIS-alkalmazásokban

Fontos

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

A mintákat a pontosság javítására tervezték, ha több kimondott szöveg nagyon hasonló. A minta lehetővé teszi, hogy több beszédelem megadása nélkül nagyobb pontosságot szerezzen egy szándékhoz.

A minták alacsony szándékú megbízhatóságot oldanak meg

Tekintsünk egy emberi erőforrások alkalmazást, amely egy alkalmazotthoz viszonyítva jelent a szervezeti diagramon. Az alkalmazott neve és kapcsolata alapján a LUIS visszaadja az érintett alkalmazottakat. Vegyünk egy alkalmazottat, Tomot, egy Alice nevű vezetővel, és egy beosztotti csapattal: Michael, Rebecca és Carl.

Képernyőkép a minták használatáról

Beszédelemek Szándék előrejelzett Szándék pontszáma
Ki Tom beosztottja? GetOrgChart 0,30
Ki Tom beosztottja? GetOrgChart 0,30

Ha egy alkalmazás 10 és 20 közötti beszédelemekkel rendelkezik, amelyek különböző mondathosszúságú, eltérő szósorrendű és akár különböző szavakat is tartalmazhatnak (az "alárendelt", a "kezelés", a "jelentés" szinonimái), a LUIS alacsony megbízhatósági pontszámot adhat vissza. Hozzon létre egy mintát, amely segít a LUIS-nak megérteni a szórend fontosságát.

A minták a következő helyzeteket oldják meg:

  • A szándék pontszáma alacsony
  • A helyes szándék nem a legmagasabb pontszám, de túl közel van a legmagasabb pontszámhoz.

A minták nem garantálják a szándékot

A minták előrejelzési technikák kombinációját használják. A sablon kimondott szövegének mintában való beállítása nem garantálja a szándék előrejelzését, de erős jel.

A minták nem javítják a gépi tanulási entitások észlelését

A minta elsődleges célja a szándékok és szerepkörök előrejelzésének elősegítése. A "pattern.any" entitás szabad formátumú entitások kinyerésére szolgál. Bár a minták entitásokat használnak, a minták nem segítenek a gépi tanulási entitások észlelésében.

Ne várjon továbbfejlesztett entitás-előrejelzést, ha több kimondott szöveget egyetlen mintába csuk össze. Ahhoz, hogy az alkalmazás egyszerű entitásokat használjon, beszédelemeket kell hozzáadnia, vagy listaentitásokat kell használnia.

A minták entitásszerepköröket használnak

Ha egy mintában két vagy több entitás környezetfüggő, a minták entitásszerepköröket használnak az entitásokkal kapcsolatos környezeti információk kinyerésére.

Előrejelzési pontszámok mintákkal és anélkül

Elegendő kimondott példaszöveget figyelembe véve a LUIS képes lehet növelni az előrejelzés megbízhatóságát mintázatok nélkül. A minták növelik a megbízhatósági pontszámot anélkül, hogy annyi kimondott szöveget kellene megadniuk.

Mintaegyeztetés

A minta megfeleltetéséhez először észleli a mintán belüli entitásokat, majd érvényesíti a minta többi szóját és szósorrendét. A mintában entitásokra van szükség ahhoz, hogy egy minta egyezzen. A minta a token szintjén van alkalmazva, nem a karakter szintjén.

Pattern.any entitás

A pattern.any entitás lehetővé teszi szabad formátumú adatok keresését olyankor, amikor az entitás szövegezése nehézzé teszi az entitás végének a kimondott szöveg fennmaradó részétől való elkülönítését.

Vegyünk például egy Emberi erőforrások alkalmazást, amely segít az alkalmazottaknak megtalálni a vállalati dokumentumokat. Előfordulhat, hogy az alkalmazásnak ismernie kell az alábbi kimondott példaszövegeket.

  • "Hol van a HRF-123456?"
  • "Ki írta a HRF-123234-et?"
  • "A HRF-456098 francia nyelven van közzétéve?"

Azonban minden dokumentum rendelkezik egy formázott névvel (amelyet a fenti listában használnak), valamint egy emberi olvasásra alkalmas névvel is, például a Request relocation from employee new to the company 2018 version 5 (Áthelyezés kérése új alkalmazottról a vállalat 2018 5-ös verziójára).

Az emberi olvasásra alkalmas névvel rendelkező kimondott szövegek a következőképpen nézhetnek ki:

  • "Hol található a Kérelem áthelyezésének kérése új alkalmazottról a vállalat 2018 5-ös verziójára?"
  • "Ki írta a következőt: "Áthelyezés kérése új alkalmazottról a vállalat 2018 5-ös verziójára"?
  • Francia nyelven jelenik meg a Request relocation from employee from the company 2018 2018 version 5 ?" (Kérelem áthelyezése az alkalmazottból a 2018 5-ös verziójába ) francia nyelven van közzétéve?"

A kimondott szövegek olyan szavakat tartalmaznak, amelyek összezavarhatják a LUIS-t azzal kapcsolatban, hogy hol ér véget az entitás. A Pattern.any entitások mintában való használatával megadhatja a dokumentum nevének elejét és végét, így a LUIS helyesen nyeri ki az űrlap nevét. Például a következő kimondottszöveg-sablon:

  • Hol található a {FormName}[?]
  • Ki a szerzője ennek: {FormName}[?]
  • A(z) {FormName} francia nyelven van közzétéve[?]

Ajánlott eljárások mintákhoz:

Minták hozzáadása későbbi iterációkban

A minták hozzáadása előtt meg kell értenie, hogy az alkalmazás hogyan viselkedik, mivel a minták nagyobb súlyozást kapnak, mint a kimondott szövegek, és eltúlozzák a megbízhatóságot.

Ha már tisztában van az alkalmazás viselkedésével, adjon hozzá mintákat az alkalmazáshoz. Nem kell minden alkalommal hozzáadnia őket, amikor iterál az alkalmazás kialakításán.

A modellterv elején nem árt felvenni őket, de könnyebb látni, hogy az egyes minták hogyan változtatják meg a modellt, miután kimondott szövegekkel tesztelték a modellt.

Ne adjon hozzá sok mintát

Ne adjon hozzá túl sok mintát. A LUIS célja, hogy kevesebb példával gyorsan tanuljon. Ne terhelje túl feleslegesen a rendszert.

Funkciók

A gépi tanulásban a funkció az adatok megkülönböztető tulajdonsága vagy attribútuma, amelyet a rendszer megfigyel és megtanul.

A gépi tanulási funkciók fontos jelzéseket adnak a LUIS-nak arról, hogy hol érdemes megkeresni azokat a dolgokat, amelyek megkülönböztetik a fogalmakat. Ezek olyan tippek, amelyeket a LUIS használhat, de nem szigorú szabályok. A LUIS ezeket a tippeket használja a címkékkel az adatok megkereséséhez.

Egy funkció függvényként írható le, például f(x) = y: . A kimondott példaszövegben a funkció megmutatja, hol kell keresni a megkülönböztető tulajdonságot. Ez az információ segít létrehozni a sémát.

A funkciók típusai

A funkciók a sématerv szükséges részét képezik. A LUIS funkcióként támogatja a kifejezéslistákat és a modelleket is:

  • Kifejezéslista funkció
  • Modell (szándék vagy entitás) funkcióként

Funkciók keresése a kimondott példaszövegekben

Mivel a LUIS nyelvalapú alkalmazás, a funkciók szövegalapúak. Válassza ki a megkülönböztetni kívánt tulajdonságot jelző szöveget. A LUIS esetében a legkisebb egység a jogkivonat. Az angol nyelv esetében a token betűk és számok folytonos kiterjedése, amelynek nincs szóköze vagy írásjele.

Mivel a szóközök és az írásjelek nem tokenek, a funkciókként használható szöveges nyomokra kell összpontosítania. Ne felejtse el a szavak különböző változatait is belefoglalni, például:

  • Többes számú űrlap
  • Igeidők
  • Rövidítések
  • Helyesírási és helyesírási hibák

Állapítsa meg, hogy a szövegnek szüksége van-e a következőkre, mert megkülönböztet egy tulajdonságot:

  • Pontos szó vagy kifejezés egyeztetése: Érdemes lehet egy reguláris kifejezésentitást vagy listaentitást funkcióként hozzáadni az entitáshoz vagy a szándékhoz.
  • Egy jól ismert fogalom, például dátumok, időpontok vagy személyek neve: Használjon egy előre összeállított entitást az entitás vagy a szándék funkciójaként.
  • Új példák megismerése az idő múlásával: Használjon kifejezéslistát a fogalom néhány példájáról az entitás vagy a szándék funkciójaként.

Kifejezéslista létrehozása egy fogalomhoz

A kifejezéslista a fogalmakat leíró szavak vagy kifejezések listája. A rendszer egy kifejezéslistát alkalmaz kis- és nagybetűk megkülönböztetéseként a jogkivonat szintjén.

Kifejezéslista hozzáadásakor a szolgáltatást globálisra állíthatja. A globális funkció a teljes alkalmazásra vonatkozik.

Mikor érdemes kifejezéslistát használni?

Használjon kifejezéslistát, ha a LUIS-alkalmazásra van szüksége a koncepció új elemeinek általánosításához és azonosításához. A kifejezéslisták olyan, mint a tartományspecifikus szókincs. Javítják a szándékok és entitások megértésének minőségét.

Kifejezéslista használata

A kifejezéslistával a LUIS a kontextust és az általánosításokat veszi figyelembe, hogy azonosítsa azokat az elemeket, amelyek hasonlóak a pontos szövegegyezéshez, de nem azok. A kifejezéslista használatához kövesse az alábbi lépéseket:

  1. Kezdje egy gépi tanulási entitással:
  2. Példaszövegek hozzáadása.
  3. Címke gépi tanulási entitással.
  4. Kifejezéslista hozzáadása:
  5. Adjon hozzá hasonló jelentésű szavakat. Ne adjon hozzá minden lehetséges szót vagy kifejezést. Ehelyett adjon hozzá egyszerre néhány szót vagy kifejezést. Ezután végezze el újra a betanítást és a közzétételt.
  6. Tekintse át és adja hozzá a javasolt szavakat.

Egy kifejezéslista tipikus forgatókönyve

A kifejezéslisták tipikus forgatókönyve egy adott ötlethez kapcsolódó szavak kiemelése.

Az orvosi kifejezések jó példa olyan szavakra, amelyeknek szükség lehet egy kifejezéslistára, hogy növeljék a jelentőségüket. Ezek a kifejezések konkrét fizikai, kémiai, terápiás vagy absztrakt jelentéssel bírhatnak. A LUIS nem tudja, hogy a kifejezések fontosak-e a tárgytartományban kifejezéslista nélkül.

Például az orvosi kifejezések kinyeréséhez:

  1. Hozzon létre példa kimondott szövegeket, és címkézze fel az orvosi kifejezéseket ezekben a kimondott szövegekben.
  2. Hozzon létre egy kifejezéslistát, amely példákat tartalmaz a tárgytartományban lévő kifejezésekre. Ennek a kifejezéslistának tartalmaznia kell a címkézett tényleges kifejezést és az ugyanazon fogalmat leíró egyéb kifejezéseket.
  3. Adja hozzá a kifejezéslistát ahhoz az entitáshoz vagy alhálózathoz, amely kinyeri a kifejezéslistában használt fogalmat. A leggyakoribb forgatókönyv egy gépi tanulási entitás összetevője (gyermeke). Ha a kifejezéslistát minden szándékra vagy entitásra alkalmazni kell, jelölje meg a kifejezéslistát globális kifejezéslistaként. Az enabledForAllModels jelző vezérli ezt a modell hatókörét az API-ban.

Kifejezéslista jogkivonat-egyezése

A kifejezéslista mindig a jogkivonat szintjén érvényes. Az alábbi táblázat bemutatja, hogy az Ann szót tartalmazó kifejezéslista hogyan vonatkozik az adott sorrendben szereplő azonos karakterek variációira.

Az "Ann" tokenváltozata A kifejezéslista megegyezik a jogkivonat megtalálásakor
ANN
Ann
Igen – a jogkivonat Ann
Ann's Igen – a jogkivonat Ann
Anne Nem – a jogkivonat Anne

A modell mint funkció segít egy másik modellnek

Egy modellt (szándékot vagy entitást) funkcióként hozzáadhat egy másik modellhez (szándékhoz vagy entitáshoz). Ha meglévő szándékot vagy entitást ad hozzá funkcióként, egy jól definiált koncepciót ad hozzá, amely példákat címkézett.

A modell funkcióként való hozzáadásakor a funkciót a következőképpen állíthatja be:

  • Kötelező. Meg kell találni egy szükséges funkciót ahhoz, hogy a modell vissza legyen adva az előrejelzési végpontról.
  • Globális. A globális funkció a teljes alkalmazásra vonatkozik.

Mikor érdemes egy entitást funkcióként használni egy szándékhoz?

Adjon hozzá egy entitást funkcióként egy szándékhoz, ha az entitás észlelése jelentős a szándék szempontjából.

Ha például a szándék egy járat foglalására vonatkozik, például a BookFlightra , és az entitás jegyinformáció (például a helyek száma, a forrás és a cél), akkor a jegyinformációs entitás megkeresése jelentős súlyt ad a BookFlight szándék előrejelzéséhez.

Mikor érdemes egy entitást funkcióként használni egy másik entitáshoz?

Az entitást (A) funkcióként kell hozzáadni egy másik entitáshoz (B), ha az entitás (A) észlelése jelentős az entitás (B) előrejelzése szempontjából.

Ha például egy szállítási cím entitás szerepel egy utcacím-alhálózatban, akkor az utcacím részösszegének megkeresése jelentős súlyt ad a szállítási cím entitás előrejelzéséhez.

  • Szállítási cím (gépi tanulási entitás):
    • Utcaszám (alhálózat)
    • Utcanév (alhálózat)
    • Város (alhálózat)
    • Állam vagy tartomány (alhálózat)
    • Ország/régió (részösszeg)
    • Irányítószám (alösszeg)

Beágyazott alhálózatok funkciókkal

A gépi tanulási alhálózat azt jelzi, hogy egy fogalom jelen van a szülő entitásban. A szülő lehet egy másik alrendszer vagy a felső entitás. A részösszeg értéke a szülője jellemzőjeként működik.

Az alhálózatok funkcióként kifejezéslistával és modellel (egy másik entitással) is rendelkezhetnek.

Ha a részhalmaz kifejezéslistával rendelkezik, az növeli a fogalom szókincsét, de nem ad hozzá semmilyen információt az előrejelzés JSON-válaszához.

Ha az alhálózat egy másik entitás egyik funkciójával rendelkezik, a JSON-válasz tartalmazza a másik entitás kinyert adatait.

Szükséges szolgáltatások

Meg kell találni egy szükséges funkciót ahhoz, hogy a modellt vissza lehessen adni az előrejelzési végpontról. Akkor használjon kötelező funkciót, ha tudja, hogy a bejövő adatoknak meg kell egyeznie a funkcióval.

Ha a kimondott szöveg nem felel meg a szükséges funkciónak, a rendszer nem nyeri ki.

A szükséges funkciók nem gépi tanulási entitást használnak:

  • Reguláris kifejezés entitás
  • Listaentitás
  • Előre összeállított entitás

Ha biztos abban, hogy a modell megtalálható lesz az adatokban, állítsa be a funkciót igény szerint. A szükséges funkciók nem adnak vissza semmit, ha nem találhatók.

Folytassa a szállítási cím példájával:

Szállítási cím (gépi tanult entitás)

  • Utcaszám (alhálózat)
  • Utcanév (alhálózat)
  • Utcanév (alhálózat)
  • Város (alhálózat)
  • Állam vagy tartomány (alhálózat)
  • Ország/régió (részösszeg)
  • Irányítószám (alösszeg)

Kötelező funkció előre összeállított entitások használatával

Az előre összeállított entitások, például a város, az állam és az ország/régió általában egy zárt listakészlet, ami azt jelenti, hogy idővel nem változnak sokat. Ezek az entitások a megfelelő ajánlott funkciókkal rendelkezhetnek, és ezek a funkciók szükség szerint megjelölhetők. Az isRequired jelölő azonban csak ahhoz az entitáshoz kapcsolódik, amelyhez hozzá van rendelve, és nincs hatással a hierarchiára. Ha nem található az előre összeállított alentitási funkció, az nem befolyásolja a szülő entitás észlelését és visszatérését.

A szükséges funkciókra példaként érdemes lehet észlelni a címeket. Érdemes lehet egy utcaszámot kötelezővé tenni. Ez lehetővé teszi, hogy a felhasználó "1 Microsoft Way" vagy "One Microsoft Way" értéket adjon meg, és mindkettő az "1" számra oldaná fel az utcaszám alentitásának számát. További információért tekintse meg az előre összeállított entitásrólszóló cikket.

Listaentitásokat használó kötelező szolgáltatás

A listaentitások a canonikus nevek és szinonimáik listájaként használatosak. Ha a kimondott szöveg nem tartalmazza sem a canonikus nevet, sem a szinonimát, akkor az entitás nem lesz visszaadva az előrejelzési végpont részeként.

Tegyük fel, hogy a vállalata csak korlátozott számú országba/régióba szállít. Létrehozhat egy listaentitást, amely számos módszert tartalmaz arra, hogy az ügyfél az országra/régióra hivatkozzon. Ha a LUIS nem talál pontos egyezést a kimondott szövegben, akkor az entitás (amely rendelkezik a listaentitás szükséges funkciójával) nem lesz visszaadva az előrejelzésben.

Canonical name** Szinonimák
Egyesült Államok Egyesült Államok
U.S.A
USA
USA
0

Az ügyfélalkalmazások, például a csevegőrobotok segítséget kérhetnek egy utólagos kérdéstől. Ez segít az ügyfélnek megérteni, hogy az ország/régió kiválasztása korlátozott és kötelező.

Reguláriskifejezés-entitásokat használó kötelező szolgáltatás

A kötelező funkcióként használt reguláris kifejezésentitás részletes szövegegyeztetési képességeket biztosít.

A szállítási cím példában létrehozhat egy reguláris kifejezést, amely az ország/régió irányítószámainak szintaxisszabályait rögzíti.

Globális funkciók

Bár a leggyakrabban egy adott modellre alkalmazunk egy funkciót, a szolgáltatást globális szolgáltatásként konfigurálhatja úgy, hogy az a teljes alkalmazásra vonatkozni fog.

A globális funkciók leggyakrabban egy további szókészletet adnak hozzá az alkalmazáshoz. Ha például az ügyfelek elsődleges nyelvet használnak, de várhatóan egy másik nyelvet is használhatnak ugyanazon a kimondott szövegen belül, hozzáadhat egy olyan funkciót, amely a másodlagos nyelvből származó szavakat is tartalmaz.

Mivel a felhasználó elvárja a másodlagos nyelv használatát bármely szándék vagy entitás esetében, adjon hozzá szavakat a másodlagos nyelvről a kifejezéslistához. Konfigurálja a kifejezéslistát globális funkcióként.

Funkciók egyesítése a további előnyökhöz

Egy tulajdonságot vagy fogalmat egynél több funkcióval is leírhat. Gyakori párosítás a következő:

Példa: jegyfoglalási entitások funkciói egy utazási alkalmazáshoz

Alapszintű példának tekinthet egy repülőjárat foglalására szolgáló alkalmazást, amely egy járatfoglalási szándékkal és egy jegyfoglalási entitással rendelkezik. A jegyfoglalási entitás rögzíti az információkat, hogy repülőjegyet foglaljon egy foglalási rendszerben.

A jegykönyv gépi tanulási entitásának két alösszetevője van a forrás és a cél rögzítéséhez. A funkciókat minden alegységhez hozzá kell adni, nem a legfelső szintű entitáshoz.

Képernyőkép egy jegyfoglalási alkalmazás példaentitásairól.

A jegyfoglalási entitás egy gépi tanulási entitás, amely az eredetet és a célt is magában foglalja. Ezek az alhálózatok mind földrajzi helyet jelölnek. A helyek kinyeréséhez, valamint a forrás és a cél közötti különbségtételhez minden alrendszernek rendelkeznie kell funkciókkal.

Típus Forrás alhálózata Cél alhálózata
Modell mint funkció geographyV2 előre összeállított entitás geographyV2 előre összeállított entitás
Kifejezéslista Forrásszavak : start at, begin from, leave Célszavak : címzett, érkezés, land at, go, going, stay, heading
Kifejezéslista Repülőtéri kódok – ugyanaz a lista a kiindulási és a célhelyhez Repülőtéri kódok – ugyanaz a lista a kiindulási és a célhelyhez
Kifejezéslista Repülőtérnevek – ugyanaz a lista a kiindulási és a célhelyhez is Repülőtéri kódok – ugyanaz a lista a kiindulási és a célhelyhez

Ha arra számít, hogy a személyek repülőtéri kódokat és repülőtérneveket használnak, akkor a LUIS-nak olyan kifejezéslistákat kell használnia, amelyek mindkét típusú kifejezést használják. A repülőtéri kódok gyakoribbak lehetnek a csevegőrobotban megadott szövegeknél, míg a repülőtérnevek gyakoribbak lehetnek a beszélt beszélgetésekben, például a beszédalapú csevegőrobotokban.

A funkciók egyező részletei csak a modellekhez lesznek visszaadva, a kifejezéslistákhoz nem, mert csak modellek jelennek meg az előrejelzési JSON-ban.

Jegyfoglalási címkézés a szándékban

A gépi tanulási entitás létrehozása után példa kimondott szövegeket kell hozzáadnia egy szándékhoz, és fel kell címkéznie a szülőentitást és az összes alegységet.

A jegyfoglalási példa esetében címkézze fel a szándékban szereplő példa kimondott szövegeket a TicketBooking entitással és a szövegben lévő albejegyzésekkel.

Képernyőkép egy kimondott példa címkézésével.

Példa: pizzarendelési alkalmazás

Egy második példaként vegyünk egy pizzaéttermi alkalmazást, amely pizzarendeléseket fogad, beleértve a megrendelt pizza típusának részleteit is. A pizza minden részletét ki kell nyerni, ha lehetséges, a rendelés feldolgozásának befejezéséhez.

Ebben a példában a gépi tanulási entitás összetettebb beágyazott alösszetevőkkel, kifejezéslistákkal, előre összeállított entitásokkal és egyéni entitásokkal.

Képernyőkép egy gépi tanulási entitásról különböző alösszetevőkkel.

Ez a példa az al-, illetve a gyermekszintű szolgáltatásokat használja. Az entitás kialakításának fontos része, hogy melyik szint kapja meg, hogy milyen típusú kifejezéslistát vagy -modellt használ funkcióként.

Bár az alentitások számos kifejezéslistát tartalmazhatnak olyan funkciókként, amelyek segítenek az entitás észlelésében, minden alegység csak egy modellel rendelkezik funkcióként. Ebben a pizzaalkalmazásban ezek a modellek elsősorban listák.

Képernyőkép egy gépi tanulási entitásról, amely sok kifejezéslistát jelenít meg funkcióként.

A helyesen címkézett kimondott példaszövegek úgy jelennek meg, hogy bemutják az entitások beágyazásának módját.

Következő lépések