Share via


Entitetskomponenter

I Konversationsbaserade Language Understanding är entiteter relevanta informationsdelar som extraheras från dina yttranden. En entitet kan extraheras med olika metoder. De kan läras via kontext, matchas från en lista eller identifieras av en fördefinierad identifierad entitet. Varje entitet i projektet består av en eller flera av dessa metoder, som definieras som entitetens komponenter. När en entitet definieras av mer än en komponent kan deras förutsägelser överlappa varandra. Du kan fastställa beteendet för en entitetsförutsägelse när dess komponenter överlappar med hjälp av en fast uppsättning alternativ i entitetsalternativen.

Komponenttyper

En entitetskomponent avgör hur du kan extrahera entiteten. En entitet kan innehålla en komponent, vilket skulle bestämma den enda metod som skulle användas för att extrahera entiteten, eller flera komponenter för att utöka hur entiteten definieras och extraheras.

Inlärd komponent

Den inlärda komponenten använder de entitetstaggar som du märker dina yttranden med för att träna en maskininlärd modell. Modellen lär sig att förutsäga var entiteten är, baserat på kontexten i yttrandet. Etiketterna innehåller exempel på var entiteten förväntas finnas i ett yttrande, baserat på innebörden av orden runt den och som de ord som har märkts. Den här komponenten definieras bara om du lägger till etiketter genom att tagga yttranden för entiteten. Om du inte taggar några yttranden med entiteten har den ingen inlärd komponent.

En skärmbild som visar ett exempel på inlärda komponenter för entiteter.

Listkomponent

Listkomponenten representerar en fast, stängd uppsättning relaterade ord tillsammans med deras synonymer. Komponenten utför en exakt textmatchning mot listan med värden som du anger som synonymer. Varje synonym tillhör en "listnyckel", som kan användas som det normaliserade standardvärdet för synonymen som returneras i utdata om listkomponenten matchas. Listnycklar används inte för matchning.

I flerspråkiga projekt kan du ange en annan uppsättning synonymer för varje språk. När du använder förutsägelse-API:et kan du ange språket i indatabegäran, som endast matchar de synonymer som är associerade med det språket.

En skärmbild som visar ett exempel på listkomponenter för entiteter.

Fördefinierad komponent

Med den fördefinierade komponenten kan du välja från ett bibliotek med vanliga typer, till exempel siffror, datetimes och namn. När en fördefinierad komponent läggs till identifieras den automatiskt. Du kan ha upp till fem fördefinierade komponenter per entitet. Mer information finns i listan över fördefinierade komponenter som stöds .

En skärmbild som visar ett exempel på fördefinierade komponenter för entiteter.

Regex-komponent

Regex-komponenten matchar reguljära uttryck för att avbilda konsekventa mönster. När den läggs till extraheras all text som matchar det reguljära uttrycket. Du kan ha flera reguljära uttryck inom samma entitet, var och en med olika nyckelidentifierare. Ett matchat uttryck returnerar nyckeln som en del av förutsägelsesvaret.

I flerspråkiga projekt kan du ange olika uttryck för varje språk. När du använder förutsägelse-API:et kan du ange språket i indatabegäran, som endast matchar det reguljära uttryck som är associerat med det språket.

En skärmbild som visar ett exempel på regex-komponenter för entiteter.

Entitetsalternativ

När flera komponenter har definierats för en entitet kan deras förutsägelser överlappa varandra. När en överlappning inträffar bestäms varje entitets slutliga förutsägelse av något av följande alternativ.

Kombinera komponenter

Kombinera komponenter som en entitet när de överlappar varandra genom att ta union av alla komponenter.

Använd det här alternativet om du vill kombinera alla komponenter när de överlappar varandra. När komponenter kombineras får du all extra information som är kopplad till en lista eller en fördefinierad komponent när de finns.

Exempel

Anta att du har en entitet med namnet Programvara som har en listkomponent som innehåller "Proseware OS" som en post. I dina yttrandedata har du "Jag vill köpa Proseware OS 9" med "Proseware OS 9" taggat som Programvara:

En skärmbild som visar en inlärd och listad entitet överlappade.

Genom att använda kombinera komponenter returnerar entiteten med den fullständiga kontexten "Proseware OS 9" tillsammans med nyckeln från listkomponenten:

En skärmbild som visar resultatet av en kombinerad komponent.

Anta att du hade samma yttrande men bara "OS 9" förutsades av den inlärda komponenten:

En skärmbild som visar ett yttrande med O S 9 som förutsägs av den inlärda komponenten.

Med kombinera-komponenter returnerar entiteten fortfarande som "Proseware OS 9" med nyckeln från listkomponenten:

En skärmbild som visar den returnerade programvaruentiteten.

Kombinera inte komponenter

Varje överlappande komponent returneras som en separat instans av entiteten. Använd din egen logik efter förutsägelse med det här alternativet.

Exempel

Anta att du har en entitet som heter Programvara som har en listkomponent som innehåller "Proseware Desktop" som en post. I dina yttranden har du "Jag vill köpa Proseware Desktop Pro" med "Proseware Desktop Pro" taggat som Programvara:

En skärmbild som visar ett exempel på en inlärd och listad entitet överlappade.

När du inte kombinerar komponenter returnerar entiteten två gånger:

En skärmbild som visar entiteten som returneras två gånger.

Nödvändiga komponenter

En entitet kan ibland definieras av flera komponenter, men kräver att en eller flera av dem finns. Varje komponent kan anges efter behov, vilket innebär att entiteten inte returneras om komponenten inte fanns. Om du till exempel har en entitet med en listkomponent och en nödvändig inlärd komponent är det garanterat att en returnerad entitet innehåller en inlärd komponent. Om den inte gör det returneras inte entiteten.

Nödvändiga komponenter används oftast med inlärda komponenter, eftersom de kan begränsa de andra komponenttyperna till en specifik kontext, som ofta är associerad med roller. Du kan också kräva att alla komponenter ser till att varje komponent finns för en entitet.

I Language Studio har varje komponent i en entitet en växlingsknapp bredvid sig som gör att du kan ange den efter behov.

Exempel

Anta att du har en entitet med namnet Biljettkvantitet som försöker extrahera antalet biljetter som du vill reservera för flygresor, för yttranden som "Boka två biljetter i morgon till Kairo".

Vanligtvis lägger du till en fördefinierad komponent för Quantity.Number som redan extraherar alla tal. Men om din entitet bara har definierats med den fördefinierade skulle den också extrahera andra nummer som en del av biljettkvantiteten , till exempel "Boka två biljetter i morgon till Kairo kl. 15 :00".

För att lösa detta skulle du märka en inlärd komponent i dina träningsdata för alla tal som är avsedda att vara Biljettkvantitet. Entiteten har nu 2 komponenter, den fördefinierade som känner till alla tal och den inlärda som förutsäger var biljettkvantiteten finns i en mening. Om du behöver den inlärda komponenten ser du till att Biljettkvantitet endast returneras när den inlärda komponenten förutsäger den i rätt kontext. Om du också behöver den fördefinierade komponenten kan du garantera att den returnerade biljettkvantiteten är både ett tal och i rätt position.

Så här använder du komponenter och alternativ

Komponenter ger dig flexibiliteten att definiera entiteten på mer än ett sätt. När du kombinerar komponenter ser du till att varje komponent representeras och minskar antalet entiteter som returneras i dina förutsägelser.

En vanlig metod är att utöka en fördefinierad komponent med en lista med värden som den fördefinierade kanske inte stöder. Om du till exempel har en organisationsentitet , som har en fördefinierad komponent för General.Organization tillagd, kanske entiteten inte förutsäger alla organisationer som är specifika för din domän. Du kan använda en listkomponent för att utöka värdena för entiteten Organisation och därmed utöka den fördefinierade med dina egna organisationer.

Andra gånger kanske du är intresserad av att extrahera en entitet via kontext, till exempel en produkt i ett detaljhandelsprojekt. Du skulle märka upp den inlärda komponenten i produkten för att lära dig var en produkt baseras på dess position i meningen. Du kan också ha en lista över produkter som du redan känner till i förväg som du alltid vill extrahera. Genom att kombinera båda komponenterna i en entitet kan du hämta båda alternativen för entiteten.

När du inte kombinerar komponenter tillåter du att varje komponent fungerar som en oberoende entitetsextraktor. Ett sätt att använda det här alternativet är att separera de entiteter som extraheras från en lista till de som extraheras via de inlärda eller fördefinierade komponenterna för att hantera och hantera dem på olika sätt.

Anteckning

Tidigare under den offentliga förhandsversionen av tjänsten fanns det 4 tillgängliga alternativ: Längst överlappning, Exakt överlappning, Union-överlappning och Returnera alla separat. Den längsta överlappningen och den exakta överlappningen är inaktuell och stöds endast för projekt som tidigare hade valt dessa alternativ. Union överlappning har bytt namn till Kombinera komponenter, medan Retur alla separat har bytt namn till Kombinera inte komponenter.

Nästa steg

Fördefinierade komponenter som stöds