Vzory v aplikacích LUIS
Důležité
Služba LUIS bude vyřazena 1. října 2025 a od 1. dubna 2023 nebudete moct vytvářet nové prostředky LUIS. Doporučujeme migrovat aplikace LUIS do porozumění konverzačnímu jazyku, abyste mohli využívat další podporu produktů a vícejazyčné funkce.
Vzory jsou navrženy tak, aby zlepšily přesnost, když je více promluv velmi podobné. Model umožňuje získat větší přesnost záměru, aniž byste museli poskytovat několik dalších promluv.
Vzory řeší nízkou spolehlivost záměru
Zvažte aplikaci pro lidské zdroje, která hlásí organizační diagram ve vztahu k zaměstnanci. S ohledem na jméno a vztah zaměstnance vrátí služba LUIS příslušné zaměstnance. Představte si zaměstnance Toma s manažerem jménem Alice a týmem podřízených jménem Michael, Rebecca a Carl.
Výroky | Záměr predikovaný | Skóre záměru |
---|---|---|
Kdo je Tomův podřízený? | GetOrgChart | 0,30 |
Kdo je podřízený Tom? | GetOrgChart | 0,30 |
Pokud má aplikace 10 až 20 promluv s různými délkami vět, různými pořadími slov a dokonce i různá slova (synonyma "podřízených", "manage", "report"), může služba LUIS vrátit nízké skóre spolehlivosti. Vytvořte vzor, který službě LUIS pomůže porozumět důležitosti pořadí slov.
Vzory řeší následující situace:
- Skóre záměru je nízké.
- Správný záměr není nejvyšším skóre, ale příliš blízko k nejvyššímu skóre.
Vzory nejsou zárukou záměru.
Vzory používají kombinaci technik predikce. Nastavení záměru pro šablonu promluvy ve vzoru není zárukou předpovědi záměru, ale jedná se o silný signál.
Vzory nezlepšují detekci entit strojového učení
Vzor je primárně určen k předpovědím záměrů a rolí. Entita pattern.any slouží k extrakci entit volného tvaru. Zatímco vzory používají entity, vzor nepomůže rozpoznat entitu strojového učení.
Neočekávejte, že by se při sbalení více promluv do jednoho vzoru zobrazila vylepšená predikce entit. Aby aplikace využívala jednoduché entity, musíte přidat promluvy nebo použít entity seznamu.
Vzory používají role entit.
Pokud jsou dvě nebo více entit v modelu kontextově související, vzory používají role entit k extrakci kontextových informací o entitách.
Skóre předpovědi s vzory a bez vzorů
Vzhledem k dostatečnému počtu ukázkových promluv může služba LUIS zvýšit spolehlivost předpovědí bez vzorů. Vzory zvyšují skóre spolehlivosti, aniž byste museli poskytovat tolik promluv.
Porovnávání vzorů
Vzor se porovná tak, že nejprve zjistí entity uvnitř vzoru a pak ověřuje zbytek slov a pořadí slov vzoru. Entity se vyžadují ve vzoru, aby se vzor shodovaly. Vzor se použije na úrovni tokenu, nikoli na úrovni znaku.
Entita Pattern.any
Entita Pattern.any umožňuje vyhledat data volného tvaru, kde je kvůli formulaci entity obtížné odlišit konec entity od zbytku promluvy.
Představte si například aplikaci pro lidské zdroje, která pomáhá zaměstnancům najít firemní dokumenty. Tato aplikace může potřebovat pochopit následující ukázkové promluvy.
- "Kde je HRF-123456?"
- "Kdo vytvořil HRF-123234?"
- "Je HRF-456098 publikováno ve francouzštině?"
Každý dokument má ale formátovaný název (použitý ve výše uvedeném seznamu) i čitelný název člověka, například žádost o přemístění zaměstnance nového zaměstnance do společnosti 2018 verze 5.
Promluvy s názvem čitelným pro člověka můžou vypadat takto:
- "Kde je žádost o přemístění od zaměstnance nové společnosti 2018 verze 5?".
- "Who authored "Request relocation from employee new to the company 2018 version 5"?
- Je žádost o přemístění od zaměstnance nová do společnosti 2018 verze 5 publikována ve francouzštině?"
Promluvy zahrnují slova, která mohou zmást službu LUIS o tom, kde entita končí. Použití entity Pattern.any ve vzoru umožňuje zadat začátek a konec názvu dokumentu, takže služba LUIS správně extrahuje název formuláře. Například následující šablonové promluvy:
- Where is {FormName}[?] (Kde je {FormName}[?])
- Who authored {FormName}[?] (Kdo vytvořil {FormName}[?])
- Je {FormName} publikován ve francouzštině[?]
Osvědčené postupy pro vzory:
Přidání vzorů v pozdějších iteracích
Měli byste vědět, jak se aplikace chová před přidáním vzorů, protože vzory jsou vážené silněji než ukázkové promluvy a budou zkosené.
Jakmile pochopíte, jak se vaše aplikace chová, přidejte vzory, které platí pro vaši aplikaci. Nemusíte je přidávat pokaždé, když iterujete v návrhu aplikace.
Při jejich přidávání na začátek návrhu modelu není nic škodlivého, ale je jednodušší zjistit, jak se každý vzor po otestování modelu s promluvami změní.
Nepřidávejte mnoho vzorů
Nepřidávejte příliš mnoho vzorů. Služba LUIS se má rychle učit s menším počtem příkladů. Nepřetěžujte systém zbytečně.
Funkce
Ve strojovém učení je funkce rozlišující vlastností nebo atributem dat, která váš systém sleduje a učí se prostřednictvím nich.
Funkce strojového učení poskytují službě LUIS důležité pomůcky pro to, kde hledat věci, které rozlišují koncept. Jsou to rady, které může služba LUIS používat, ale nejsou pevná pravidla. Služba LUIS používá tyto rady s popisky k vyhledání dat.
Funkci lze popsat jako funkci, například f(x) = y
. V ukázkové promluvě vám funkce řekne, kde hledat rozlišovací vlastnost. Tyto informace vám pomůžou vytvořit schéma.
Typy funkcí
Součástí návrhu schématu jsou funkce. Luis podporuje seznamy frází i modely jako funkce:
- Funkce seznamu frází
- Model (záměr nebo entita) jako funkce
Vyhledání funkcí v ukázkových promluvách
Vzhledem k tomu, že služba LUIS je aplikace založená na jazyce, jsou funkce založené na textu. Zvolte text, který označuje vlastnost, kterou chcete odlišit. Nejmenší jednotkou služby LUIS je token. V případě anglického jazyka je token souvislým rozsahem písmen a číslic, které neobsahují mezery ani interpunkci.
Protože mezery a interpunkce nejsou tokeny, zaměřte se na vodítka textu, které můžete použít jako funkce. Nezapomeňte zahrnout varianty slov, například:
- Formuláře v množném čísle
- Slovesné časy
- Abbreviations
- Pravopisy a pravopisné pravopisy
Určete, jestli text potřebuje následující, protože rozlišuje vlastnost:
- Porovná přesné slovo nebo frázi: Zvažte přidání entity regulárního výrazu nebo entity seznamu jako funkce do entity nebo záměru.
- Porovná dobře známý koncept, jako jsou data, časy nebo jména lidí: Použijte předem připravenou entitu jako funkci pro entitu nebo záměr.
- Seznamte se s novými příklady v průběhu času: Seznam frází některých příkladů konceptu jako funkce entity nebo záměru.
Vytvoření seznamu frází pro koncept
Seznam frází je seznam slov nebo frází, které popisují koncept. Seznam frází se použije jako shoda nerozlišující malá a velká písmena na úrovni tokenu.
Při přidávání seznamu frází můžete tuto funkci nastavit na globální. Globální funkce se vztahuje na celou aplikaci.
Kdy použít seznam frází
Seznam frází použijte, když potřebujete aplikaci LUIS ke generalizaci a identifikaci nových položek pro koncept. Seznamy frází se podobají slovníku specifickému pro doménu. Vylepšují kvalitu porozumění záměrům a entitám.
Jak používat seznam frází
V seznamu frází služba LUIS považuje kontext a generalizuje k identifikaci položek, které jsou podobné, ale nejsou, přesnou shodu textu. Pokud chcete použít seznam frází, postupujte takto:
- Začněte entitou strojového učení:
- Přidejte ukázkové promluvy.
- Označení pomocí entity strojového učení
- Přidejte seznam frází:
- Přidejte slova s podobným významem. Nepřidávejte každé možné slovo ani frázi. Místo toho přidejte několik slov nebo frází najednou. Pak znovu natrénujte a publikujte.
- Zkontrolujte a přidejte navrhovaná slova.
Typický scénář pro seznam frází
Typickým scénářem pro seznam frází je zvýšení počtu slov souvisejících s konkrétním nápadem.
Lékařské termíny jsou dobrým příkladem slov, která můžou potřebovat seznam frází k posílení jejich významu. Tyto termíny mohou mít specifické fyzikální, chemické, léčebné nebo abstraktní významy. Služba LUIS nebude vědět, že termíny jsou pro vaši doménu předmětu důležité bez seznamu frází.
Například k extrakci lékařských termínů:
- V těchto promluvách můžete vytvářet ukázkové promluvy a označovat lékařské termíny.
- Vytvořte seznam frází s příklady termínů v doméně předmětu. Tento seznam frází by měl obsahovat skutečný termín, který jste označili, a další termíny, které popisují stejný koncept.
- Přidejte seznam frází do entity nebo podentity, která extrahuje koncept použitý v seznamu frází. Nejběžnějším scénářem je komponenta (podřízená) entity strojového učení. Pokud se má seznam frází použít pro všechny záměry nebo entity, označte seznam frází jako globální seznam frází. Příznak enabledForAllModels řídí tento obor modelu v rozhraní API.
Shody tokenů pro seznam frází
Seznam frází se vždy použije na úrovni tokenu. Následující tabulka ukazuje, jak se seznam frází obsahující slovo Ann vztahuje na varianty stejných znaků v daném pořadí.
Varianta tokenu Ann | Shoda seznamu frází při nalezení tokenu |
---|---|
ANN Ann |
Ano – token je Ann |
Ann's | Ano – token je Ann |
Anna | Ne - token je Anne |
Model jako funkce pomáhá jinému modelu
Model (záměr nebo entita) můžete přidat jako funkci do jiného modelu (záměru nebo entity). Přidáním existujícího záměru nebo entity jako funkce přidáváte dobře definovaný koncept s popisky.
Při přidávání modelu jako funkce můžete tuto funkci nastavit takto:
- Povinný: Požadovaná funkce musí být nalezena, aby se model vrátil z koncového bodu předpovědi.
- Globální. Globální funkce se vztahuje na celou aplikaci.
Kdy použít entitu jako funkci záměru
Přidání entity jako funkce do záměru, pokud je detekce této entity pro daný záměr významná.
Pokud je například záměr rezervace letu, jako je BookFlight , a entita je informace o letenkách (například počet míst, původu a cíle), pak by nalezení entity s informacemi o lístku mělo přidat významnou váhu k predikci záměru BookFlight .
Kdy použít entitu jako funkci pro jinou entitu
Entita (A) by se měla přidat jako funkce k jiné entitě (B), pokud je detekce této entity (A) důležitá pro predikci entity (B).
Pokud je například entita dodací adresy obsažená v podsítě street-address, pak nalezení subentity street-address přidává významnou váhu k predikci entity dodací adresy.
- Dodací adresa (entita strojového učení):
- Číslo ulice (subentita)
- Street address (subentity)
- Město (subentita)
- Stát nebo provincie (subentita)
- Země/oblast (subentita)
- PSČ (subentita)
Vnořené dílčí prvky s funkcemi
Subentita strojového učení označuje, že je pro nadřazenou entitu k dispozici koncept. Nadřazenou entitou může být jiná podsložka nebo nejvyšší entita. Hodnota subentity funguje jako funkce nadřazenosti.
Podentita může mít jako funkci seznam frází i model (jinou entitu).
Pokud má podentita seznam frází, zvyšuje slovní zásobu konceptu, ale nepřidá žádné informace do odpovědi JSON predikce.
Pokud má podentita funkci jiné entity, odpověď JSON obsahuje extrahovaná data této jiné entity.
Požadované funkce
Aby se model vrátil z koncového bodu předpovědi, musí být nalezena požadovaná funkce. Požadovanou funkci použijte, když víte, že příchozí data musí odpovídat této funkci.
Pokud se text promluvy neshoduje s požadovanou funkcí, nebude extrahován.
Požadovaná funkce používá entitu bez strojového učení:
- Entita regulárního výrazu
- Entita seznamu
- Předem připravená entita
Pokud máte jistotu, že váš model bude v datech nalezen, nastavte funkci podle potřeby. Požadovaná funkce nevrací nic, pokud se nenajde.
Pokračování v příkladu dodací adresy:
Dodací adresa (entita strojového učení)
- Číslo ulice (subentita)
- Street address (subentity)
- Název ulice (subentita)
- Město (subentita)
- Stát nebo provincie (subentita)
- Země/oblast (subentita)
- PSČ (subentita)
Požadovaná funkce s využitím předem připravených entit
Předem připravené entity, jako jsou město, stát a země/oblast, jsou obvykle uzavřenou sadou seznamů, což znamená, že se v průběhu času moc nemění. Tyto entity můžou mít relevantní doporučené funkce a tyto funkce můžou být označené jako povinné. Příznak isRequired ale souvisí pouze s entitou, ke které je přiřazena, a nemá vliv na hierarchii. Pokud se nenajde předem připravená funkce dílčí entity, nebude to mít vliv na detekci a vrácení nadřazené entity.
Jako příklad požadované funkce zvažte, jestli chcete zjistit adresy. Můžete zvážit, že číslo ulice je povinné. To by uživateli umožnilo zadat "1 Microsoft Way" nebo "One Microsoft Way" a oba by se přeložily na číslici "1" pro dílčí entitu čísla ulice. Další informace najdete v článku o předem připravené entitě.
Požadovaná funkce s využitím entit seznamu
Entita seznamu se používá jako seznam kanonických názvů spolu s jejich synonymy. Jako povinná funkce platí, že pokud promluva neobsahuje buď kanonický název, nebo synonymum, entita se nevrátí jako součást koncového bodu předpovědi.
Předpokládejme, že se vaše společnost dodává pouze do omezené sady zemí/oblastí. Můžete vytvořit entitu seznamu, která obsahuje několik způsobů, jak může zákazník odkazovat na zemi nebo oblast. Pokud služba LUIS nenajde přesnou shodu v textu promluvy, v predikci se nevrátí entita (která má požadovanou funkci entity seznamu).
Kanonický název** | Synonyma |
---|---|
USA | U.S. USA NÁS Spojené státy americké 0 |
Klientská aplikace, jako je chatbot, může položit následnou otázku, která vám pomůže. To zákazníkovi pomůže pochopit, že výběr země nebo oblasti je omezený a povinný.
Povinná funkce s využitím entit regulárního výrazu
Entita regulárního výrazu, která se používá jako požadovaná funkce, poskytuje funkce pro porovnávání rtfů textu.
V příkladu dodací adresy můžete vytvořit regulární výraz, který zachycuje pravidla syntaxe PSČ země/oblasti.
Globální funkce
Nejběžnějším použitím je použití funkce u konkrétního modelu, ale můžete ji nakonfigurovat jako globální funkci , která ji použije pro celou aplikaci.
Nejběžnějším použitím globální funkce je přidání dalšího slovníku do aplikace. Pokud například vaši zákazníci používají primární jazyk, ale očekávají, že budou moct používat jiný jazyk ve stejné promluvě, můžete přidat funkci, která obsahuje slova ze sekundárního jazyka.
Vzhledem k tomu, že uživatel očekává použití sekundárního jazyka v jakémkoli záměru nebo entitě, přidejte do seznamu frází slova ze sekundárního jazyka. Nakonfigurujte seznam frází jako globální funkci.
Kombinování funkcí pro přidanou výhodu
K popisu vlastnosti nebo konceptu můžete použít více než jednu funkci. Běžným párováním je použití:
- Funkce seznamu frází: Jako funkce stejného modelu můžete použít více seznamů frází.
- Model jako funkce: předem připravená entita, entita regulárního výrazu, entita seznamu.
Příklad: Funkce entity rezervace vstupenek pro cestovní aplikaci
Jako základní příklad zvažte aplikaci pro rezervaci letu se záměrem rezervace letu a entitou rezervace vstupenek. Entita rezervace vstupenek zaznamenává informace o rezervaci letenky v rezervačním systému.
Entita strojového učení pro ticket-book má dvě dílčí hodnoty pro zachycení původu a cíle. Funkce je potřeba přidat do každé podsložky, ne do entity nejvyšší úrovně.
Entita rezervace lístků je entita strojového učení s dílčími položkami, včetně zdroje a cíle. Obě tyto subentity označují zeměpisnou polohu. Aby bylo možné extrahovat umístění a rozlišovat mezi zdroji a cílem, měla by každá podentita obsahovat funkce.
Typ | Subentita původu | Subentita cíle |
---|---|---|
Model jako funkce | předem připravená entita geographyV2 | předem připravená entita geographyV2 |
Seznam frází | Počáteční slova : začínají od, nechejte | Cílová slova : to, arrive, land at, go, go, stay, heading |
Seznam frází | Kódy letiště – stejný seznam pro původ i cíl | Kódy letiště – stejný seznam pro původ i cíl |
Seznam frází | Názvy letiště – stejný seznam pro původ i cíl | Kódy letiště – stejný seznam pro původ i cíl |
Pokud předpokládáte, že lidé používají letištní kódy a názvy letiště, měla by služba LUIS obsahovat seznamy frází, které používají oba typy frází. Kódy letiště můžou být častější s textem zadaným v chatovacím robotu, zatímco názvy letiště můžou být častější s mluvenou konverzací, jako je chatovací robot s podporou řeči.
Odpovídající podrobnosti o funkcích se vrátí jenom pro modely, ne pro seznamy frází, protože v kódu JSON předpovědi se vrátí jenom modely.
Označení rezervace vstupenek v záměru
Po vytvoření entity strojového učení musíte do záměru přidat ukázkové promluvy a označit nadřazenou entitu a všechny dílčí položky.
V příkladu rezervace lístku označte ukázkové promluvy v záměru entitou TicketBooking a všemi dílčími znamény v textu.
Příklad: aplikace pro objednávání pizzy
Pro druhý příklad zvažte aplikaci pro restauraci pizzy, která přijímá objednávky pizzy včetně podrobností o typu pizzy, kterou si někdo objednává. Každý detail pizzy by měl být extrahován, pokud je to možné, aby bylo možné dokončit zpracování objednávky.
Entita strojového učení v tomto příkladu je složitější s vnořenými dílčími položkami, seznamy frází, předem připravenými entitami a vlastními entitami.
Tento příklad používá funkce na úrovni subentity a podřízené úrovně podřízenosti. Která úroveň získá, jaký druh seznamu frází nebo modelu jako funkce je důležitou součástí návrhu entity.
I když subentity můžou mít mnoho seznamů frází jako funkce, které pomáhají rozpoznat entitu, každá podentita má jako funkci pouze jeden model. V této aplikaci pizza jsou tyto modely primárně uvedené.
Správně označené ukázkové promluvy se zobrazují způsobem, který ukazuje, jak jsou entity vnořené.