Komponenty entit

V konverzačních Language Understanding jsou entity relevantními informacemi, které se extrahují z promluv. Entitu lze extrahovat různými metodami. Je možné je zjistit z kontextu, spárovat je ze seznamu nebo zjistit předem připravenou rozpoznanou entitou. Každá entita v projektu se skládá z jedné nebo několika těchto metod, které jsou definovány jako komponenty vaší entity. Pokud je entita definovaná více než jednou komponentou, mohou se její předpovědi překrývat. Chování predikce entity při překrývajících se komponentách entity můžete určit pomocí pevné sady možností v možnostech entity.

Typy komponent

Komponenta entity určuje způsob, jak můžete entitu extrahovat. Entita může obsahovat jednu komponentu, která by určila jedinou metodu, která by se použila k extrahování entity, nebo více komponent k rozšíření způsobů, kterými je entita definována a extrahována.

Naučená komponenta

Naučená komponenta používá značky entit, kterými označíte své promluvy, k trénování strojově naučeného modelu. Model se naučí předpovědět, kde se entita nachází, na základě kontextu v promluvě. Popisky poskytují příklady toho, kde se entita má v promluvě vyskytovat, a to na základě významu slov kolem ní a slov, která byla označena. Tato komponenta je definována pouze v případě, že přidáte popisky označováním promluv pro entitu. Pokud s entitou neoznačinete žádné promluvy, nebude mít naučenou komponentu.

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

Komponenta List

Komponenta seznamu představuje pevnou uzavřenou sadu souvisejících slov spolu s jejich synonymy. Komponenta provede přesnou shodu textu se seznamem hodnot, které zadáte jako synonyma. Každé synonymum patří do "klíče seznamu", který lze použít jako normalizovanou standardní hodnotu synonyma, která se vrátí ve výstupu, pokud je komponenta seznamu shodná. Klíče seznamu se nepoužívají k párování.

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

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

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. Na 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

Součást Regex

Komponenta regex odpovídá regulárním výrazům, aby zachytila konzistentní vzory. 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 předpovědi.

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

Snímek obrazovky znázorňující příklad komponent regex pro entity

Možnosti entit

Pokud je pro entitu definováno více komponent, mohou se jejich předpovědi 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í komponent

Zkombinujte komponenty jako jednu entitu, když se překrývají, a to sjednocením všech komponent.

Pomocí tohoto příkazu můžete zkombinovat všechny komponenty, když se překrývají. Když se komponenty zkombinují, získáte všechny dodatečné 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 "Proseware OS". V datech promluv máte "Chci koupit Proseware OS 9" s "Proseware OS 9" označeným jako Software:

Snímek obrazovky znázorňující překrývající se naučenou entitu a entitu seznamu

Při použití kombinace komponent se entita vrátí s úplným kontextem jako "Proseware OS 9" spolu s klíčem z komponenty seznamu:

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

Předpokládejme, že máte 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

U kombinačních komponent se entita stále vrátí jako "Proseware OS 9" s klíčem z komponenty seznamu:

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

Nekombinovat komponenty

Každá překrývající se komponenta se vrátí jako samostatná instance entity. Pomocí této možnosti použijte vlastní logiku po predikci.

Příklad

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

Snímek obrazovky znázorňující příklad překrývající se naučené entity a entity seznamu

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

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

Požadované komponenty

Entita může být někdy definována více 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 například máte entitu s komponentou seznamu a požadovanou naučenou komponentu, je zaručeno, že každá vrácená entita bude obsahovat naučenou komponentu. Pokud ne, entita se nevrátí.

Povinné 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, aby všechny komponenty byly k dispozici pro entitu.

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

Příklad

Předpokládejme, že máte entitu s názvem Množství lístků , která se pokouší vyextrahovat počet letenek, které chcete rezervovat pro lety, například "Rezervujte si dvě letenky zítra do Káhiry".

Obvykle byste přidali předem připravenou komponentu pro Quantity.Number , která už extrahuje všechna čísla. Pokud by však vaše entita byla definována pouze s předem připraveným objektem, extrahuje také další čísla v rámci entity Množství lístku , například "Rezervujte si dvě vstupenky zítra do Káhiry v 15 :00".

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

Jak používat komponenty a možnosti

Komponenty poskytují flexibilitu při definování entity více než jedním způsobem. Při kombinování komponent se ujistíte, že každá komponenta je 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 o seznam hodnot, které předem připravená komponenta nemusí podporovat. Pokud máte například entitu Organizace , do které je přidaná předem připravená komponenta General.Organization , 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 tím rozšíření předem připraveného prvku o vlastní organizace.

Jindy vás může zajímat extrahování entity prostřednictvím kontextu, jako je například Produkt v maloobchodním projektu. Popiskem pro naučenou komponentu produktu zjistíte , kde je produkt založený na jeho pozici ve větě. Můžete také mít seznam produktů, které už znáte před rukou a které byste chtěli vždy extrahovat. Kombinace obou komponent v jedné entitě vám umožní získat obě možnosti pro entitu.

Pokud nekombinujete komponenty, umožníte, aby každá komponenta fungovala jako nezávislý extraktor entit. Jedním ze způsobů, jak tuto možnost použít, je oddělit entity extrahované ze seznamu od entit extrahovaných prostřednictvím naučených nebo předem připravených komponent, aby se s nimi jinak zacházeli a zacházeli s nimi.

Poznámka

Dříve ve verzi Public Preview služby byly k dispozici 4 možnosti: Nejdelší překrytí, Přesné překrytí, Sjednocení překrytí a Vrácení. Nejdelší překrytí a přesné překrytí jsou zastaralé a budou podporovány pouze u projektů, které dříve měly tyto možnosti vybrané. Sjednocovací překrytí bylo přejmenováno na Sloučit komponenty, zatímco funkce Return all zvlášť byla přejmenována na Nekombinovat komponenty.

Další kroky

Podporované předem připravené komponenty