Komponenty entit

V porozumění konverzačnímu jazyku jsou entity relevantními informacemi, které se extrahují z promluv. Entitu lze extrahovat různými metodami. Mohou se naučit prostřednictvím kontextu, spárovat se ze seznamu nebo zjistit předem připravenou rozpoznanou entitou. Každá entita v projektu se skládá z jedné nebo více těchto metod, které jsou definovány jako komponenty vaší entity.

Pokud je entita definována více než jednou komponentou, jejich předpovědi se mohou překrývat. Chování predikce entity můžete určit, když se její komponenty překrývají, pomocí pevné sady možností v možnostech entity.

Typy komponent

Komponenta entity určuje způsob, jak entitu extrahovat. Entita může obsahovat jednu komponentu, která určuje jedinou metodu, která se má použít k extrakci entity. Entita může také obsahovat více komponent, aby se rozšířily způsoby, kterými je entita definována a extrahována.

Naučená komponenta

Naučená komponenta používá k trénování strojově naučeného modelu značky entit, pomocí které označíte promluvy. Model se učí předpovídat, kde je entita založená na kontextu v promluvě. Popisky poskytují příklady toho, kde se entita má v promluvě vyskytovat, na základě významu slov kolem ní a slov označených jako označená.

Tato komponenta je definována pouze v případě, že přidáte popisky označováním promluv pro entitu. Pokud žádné promluvy s entitou neoznačíte, nemá naučenou komponentu.

Snímek obrazovky znázorňující příklad naučených komponent pro entity

Součást List

Součást seznamu představuje pevnou uzavřenou sadu souvisejících slov spolu s jejich synonymy. Komponenta provádí přesnou shodu textu se seznamem hodnot, které zadáte jako synonyma. Každé synonymum patří ke klíči seznamu, který lze použít jako normalizovanou standardní hodnotu synonyma, která se vrátí ve výstupu, pokud se komponenta seznamu shoduje. Klíče seznamu se nepoužívají ke shodě.

Ve vícejazyčných projektech můžete pro každý jazyk zadat jinou sadu synonym. Při použití rozhraní API pro predikce můžete zadat jazyk ve vstupním požadavku, který odpovídá pouze synonymům přidruženým k tomuto jazyku.

Snímek obrazovky znázorňující příklad součástí seznamu entit

Předem připravená komponenta

Předem připravená komponenta umožňuje vybrat si z knihovny běžných typů, jako jsou čísla, data a časy a názvy. Po přidání se automaticky zjistí předem připravená komponenta. Pro každou entitu můžete mít až pět předem připravených komponent. Další informace najdete v seznamu podporovaných předem připravených komponent.

Snímek obrazovky znázorňující příklad předem připravených komponent pro entity

Komponenta Regex

Komponenta regulárních výrazů odpovídá regulárním výrazům za účelem zachycení konzistentních vzorů. Po přidání se extrahuje veškerý text, který odpovídá regulárnímu výrazu. V rámci stejné entity můžete mít více regulárních výrazů, z nichž každý má jiný identifikátor klíče. Odpovídající výraz vrátí klíč jako součást odpovědi predikce.

Ve vícejazyčných projektech můžete pro každý jazyk zadat jiný výraz. Při použití rozhraní API pro predikce můžete zadat jazyk ve vstupním požadavku, který odpovídá pouze regulárnímu výrazu přidruženému k tomuto jazyku.

Snímek obrazovky znázorňující příklad komponent regulárních výrazů pro entity

Možnosti entit

Pokud je pro entitu definovaných více komponent, jejich předpovědi se můžou překrývat. Když dojde k překrytí, konečná předpověď každé entity je určena jednou z následujících možností.

Kombinování součástí

Zkombinujte komponenty jako jednu entitu, když se překrývají, a to tak, že se sjednocují se všemi komponentami.

Tuto možnost použijte ke kombinování všech součástí, když se překrývají. Když se komponenty zkombinují, získáte všechny další informace, které jsou spojené se seznamem nebo předem připravenou komponentou, když jsou k dispozici.

Příklad

Předpokládejme, že máte entitu s názvem Software , která má součást seznamu, která jako položku obsahuje "Operační systém Proseware". V datech promluvy máte "Chci koupit Proseware OS 9" se značkou "Proseware OS 9" označený jako Software:

Snímek obrazovky znázorňující překrývající se entitu se seznamem

Když použijete kombinované komponenty, vrátí entita úplný kontext jako "Proseware OS 9" spolu s klíčem ze komponenty seznamu:

Snímek obrazovky znázorňující výsledek kombinované komponenty

Předpokládejme, že jste měli stejnou promluvu, ale naučená komponenta předpověděla pouze "OS 9":

Snímek obrazovky znázorňující promluvu s O S 9 předpovězenou naučenou komponentou

V případě kombinovaných komponent se entita stále vrací jako "Proseware OS 9" s klíčem ze komponenty seznamu:

Snímek obrazovky znázorňující vrácenou entitu Software

Nekombinovat komponenty

Každá překrývající se komponenta se vrátí jako samostatná instance entity. Použití vlastní logiky po predikci s touto možností

Příklad

Předpokládejme, že máte entitu s názvem Software , která má součást seznamu, která obsahuje položku "Proseware Desktop" jako položku. V datech promluvy máte "Chci koupit Proseware Desktop Pro" se značkou "Proseware Desktop Pro" označený jako Software:

Snímek obrazovky znázorňující příklad překrývající se entity se seznamem

Pokud komponenty nekombinujete, vrátí entita dvakrát:

Snímek obrazovky znázorňující entitu vrácenou dvakrát

Požadované komponenty

Někdy může být entita definována několika komponentami, ale vyžaduje, aby byla přítomna jedna nebo více z nich. Každou komponentu je možné nastavit podle potřeby, což znamená, že entita se nevrátí , pokud tato komponenta nebyla k dispozici. Pokud máte například entitu se součástí seznamu a požadovanou naučenou komponentou, je zaručeno, že každá vrácená entita obsahuje naučenou komponentu. Pokud ne, entita se nevrátí.

Požadované komponenty se nejčastěji používají s naučenými komponentami, protože můžou omezit ostatní typy komponent na konkrétní kontext, který je běžně přidružený k rolím. Můžete také vyžadovat všechny komponenty, abyste měli jistotu, že každá komponenta existuje pro entitu.

V sadě Language Studio má každá komponenta v entitě přepínač, který umožňuje nastavit ji podle potřeby.

Příklad

Předpokládejme, že máte entitu s názvem Ticket Quantity , která se pokouší extrahovat počet lístků, které chcete rezervovat pro lety, pro promluvy, jako je například "Rezervovat dvě letenky zítra do Káhiry".

Obvykle přidáte předem připravenou komponentu, která Quantity.Number už extrahuje všechna čísla. Pokud byla entita definována pouze s předem připravenou komponentou, extrahuje také další čísla jako součást entity Ticket Quantity , například "Rezervovat dva lístky zítra do Káhiry na 3 :00.".

Pokud chcete tento scénář vyřešit, označíte v trénovacích datech naučenou komponentu pro všechna čísla, která mají být typu Množství lístků. Entita má teď dvě komponenty: předem připravenou komponentu, která zná všechna čísla, a naučenou komponentu, která předpovídá, kde je množství lístku ve větě. Pokud vyžadujete naučenou komponentu, ujistěte se, že se množství lístků vrátí pouze v případě, že je naučená komponenta predikuje ve správném kontextu. Pokud také potřebujete předem připravenou komponentu, můžete zaručit, že vrácená entita Ticket Quantity je číslo i ve správné pozici.

Použití součástí a možností

Komponenty poskytují flexibilitu při definování entity více než jedním způsobem. Při kombinování součástí se ujistěte, že je každá komponenta reprezentovaná a snížíte počet entit vrácených v předpovědích.

Běžným postupem je rozšířit předem připravenou komponentu se seznamem hodnot, které předem sestavené součásti nemusí podporovat. Pokud máte například entitu organizace , která má přidanou předem připravenou General.Organization komponentu, nemusí entita předpovědět všechny organizace specifické pro vaši doménu. Komponentu seznamu můžete použít k rozšíření hodnot entity organizace a rozšíření předem připravené komponenty s vlastními organizacemi.

Jindy vás může zajímat extrakce entity prostřednictvím kontextu, jako je například produkt v maloobchodním projektu. Označíte naučenou komponentu produktu, abyste zjistili , kde je produkt založený na jeho pozici ve větě. Můžete mít také seznam produktů, které už víte předem, že chcete vždy extrahovat. Kombinace obou komponent v jedné entitě umožňuje získat obě možnosti pro entitu.

Pokud komponenty nekombinujete, můžete všem komponentám umožnit, aby fungovaly jako nezávislý extraktor entit. Jedním ze způsobů, jak tuto možnost použít, je oddělit entity extrahované ze seznamu na entity extrahované prostřednictvím naučených nebo předem připravených komponent pro zpracování a zacházení s nimi odlišně.

Poznámka:

Dříve ve verzi Public Preview služby byly k dispozici čtyři možnosti: nejdelší překrytí, přesná překrytí, sjednocování a vrácení všech samostatně. Nejdelší překrývání a Přesná překrytí jsou zastaralé a podporují se pouze u projektů, které dříve měly tyto možnosti vybrané. Překrývání sjednocení bylo přejmenováno na Kombinovat součásti, zatímco funkce Return all zvlášť byla přejmenována na Nekombinovat součásti.