Entiteter i LUIS
En entitet är ett objekt eller ett element som är relevant för användarens avsikt. Entiteter definierar data som kan extraheras från yttrandena och är nödvändiga för att slutföra en användares nödvändiga åtgärd. Exempel:
| Yttrande | Förutsagd avsikt | Entiteter som extraherats | Förklaring |
|---|---|---|---|
| Hej hur mår du? | Hälsning | - | Inget att extrahera. |
| Jag vill beställa en liten pizza | orderPizza | "liten" | Entiteten "Storlek" extraheras som "liten" . |
| Stäng av sovrumsbelysning | Avfarten | "sovrum" | Entiteten "Rum" extraheras som "sovrum". |
| Kontrollera saldot i mitt sparandekonto som slutar på 4406 | checkBalance | "savings", "4406" | Entiteten "accountType" extraheras som "savings" och "accountNumber"-entiteten extraheras som "4406". |
| Köp 3 biljetter till New York | buyTickets | "3", "New York" | Entiteten "ticketsCount" extraheras som "3" och "Destination"-entiteten extraheras som "New York". |
Entiteter är valfria men rekommenderas. Du behöver inte skapa entiteter för varje koncept i din app, endast för dem där:
- Klientprogrammet behöver data, eller
- Entiteten fungerar som ett tips eller en signal till en annan entitet eller avsikt. Om du vill veta mer om entiteter när funktioner går du till Entiteter som funktioner.
Entitetstyper
Om du vill skapa en entitet måste du ge den ett namn och en typ. Det finns flera typer av entiteter i LUIS.
Lista entitet
En listentitet representerar en fast, stängd uppsättning relaterade ord tillsammans med deras synonymer. Du kan använda listentiteter för att identifiera flera synonymer eller varianter och extrahera normaliserade utdata för dem. Använd det rekommenderade alternativet för att se förslag på nya ord baserat på den aktuella listan.
En listentitet är inte maskininlärd, vilket innebär att LUIS inte identifierar ytterligare värden för listentiteter. LUIS markerar alla matchningar till ett objekt i en lista som en entitet i svaret.
Matchning i listentiteter är både fallkänsligt och måste vara en exakt matchning som ska extraheras. Normaliserade värden används också när du matchar listentiteten. Exempel:
| Normaliserat värde | Synonymer |
|---|---|
| Liten | sm, sml, tiny, smallest |
| Medel | md, mdm, regular, average, middle |
| Stor | lg, lrg, big |
Mer information finns i referensartikeln om entiteter i listan.
Regex-entitet
En entitet för reguljära uttryck extraherar en entitet baserat på ett mönster för reguljära uttryck som du anger. Den ignorerar fall och ignorerar kulturell variant. Reguljära uttryck passar bäst för strukturerad text eller en fördefinierad sekvens med alfanumeriska värden som förväntas i ett visst format. Exempel:
| Entitet | Reguljärt uttryck | Exempel |
|---|---|---|
| Flygnummer | flight [A–Z] {2} [0–9]{4} | flight AS 1234 |
| Kreditkortsnummer | [0-9]{16} | 5478789865437632 |
Mer information finns i referensartikeln för regex-entiteter.
Förbyggd entitet
LUIS erbjuder en uppsättning fördefinierade entiteter för att identifiera vanliga typer av data som namn, datum, nummer och valuta. Beteendet för fördefinierade entiteter är fast. Stöd för fördefinierade entiteter varierar beroende på LUIS-appens kultur. Exempel:
| Förbyggd entitet | Exempelvärde |
|---|---|
| PersonName | James, Bill, Tom |
| DatetimeV2 | 2019-05-02, 2 maj, 08:00 den 2 maj 2019 |
Mer information finns i referensartikeln om fördefinierade entiteter.
Pattern.Any-entitet
Ett mönster. En entitet är en platshållare med variabel längd som endast används i ett mönsters mutterance för att markera var entiteten börjar och slutar. Den följer en specifik regel eller ett visst mönster och används bäst för meningar med fast lexikal struktur. Exempel:
| Exempel på yttrande | Mönster | Entitet |
|---|---|---|
| Kan jag ha en er? | Kan jag ha en {}} [please][?] | Burger |
| Kan jag få en pizza? | Kan jag ha en {}} [please][?] | Pizza |
| Var hittar jag The Great Gatsby? | Var hittar jag {bookName}? | Den stora Gatsby |
Mer information finns i referensartikeln Pattern.Any-entiteter.
Maskininlärd entitet (ML)
En maskininlärd entitet använder kontext för att extrahera entiteter baserat på märkta exempel. Det är den föredragna entiteten för att skapa LUIS-program. Den förlitar sig på maskininlärningsalgoritmer och kräver att etiketter skräddarsys för ditt program. Använd en ML-entitet för att identifiera data som inte alltid är väl formaterade men har samma betydelse.
| Exempel på yttrande | Extraherad produktentitet |
|---|---|
| Jag vill köpa en bok. | "bok" |
| Kan jag skaffa de här skorna? | "skor" |
| Lägg till shortsen i varukorgen. | "shorts" |
Du kan läsa mer om maskininlärda entiteter här.
Mer information finns i referensartikeln om maskininlärda entiteter.
ML-entitet med struktur
En ML-entitet kan bestå av mindre underentiteter som var och en kan ha sina egna egenskaper. Adress kan till exempel ha följande struktur:
- Adress: 4567 Main Street, NY, 98052, USA
- Byggnummer: 4567
- Gatunamn: Main Street
- Tillstånd: NY
- Postnummer: 98052
- Land: USA
Skapa effektiva ML-entiteter
Följ dessa metodtips om du vill skapa maskininlärda entiteter på ett effektivt sätt:
Om du har en maskininlärd entitet med underentiteter ser du till att de olika beställningarna och varianterna av entiteten och underentiteterna visas i de märkta yttrandena. Märkta exempelyttranden ska innehålla alla giltiga formulär och innehålla entiteter som visas och saknas och som även ordnas om i yttrandena.
Undvik att överanpassa entiteterna till en mycket fast uppsättning. Överanpassas när modellen inte generaliseras väl och är ett vanligt problem i maskininlärningsmodeller. Detta innebär att appen inte skulle fungera på nya typer av exempel på rätt sätt. I sin tur bör du variera de märkta exempelyttrandena så att appen kan generalisera bortom de begränsade exempel som du anger.
Etiketterna ska vara konsekventa för avsikterna. Detta inkluderar även yttranden som du anger i avsikten None (Ingen) som innehåller den här entiteten. Annars kommer modellen inte att kunna fastställa sekvenserna på ett effektivt sätt.
Entiteter som funktioner
En annan viktig funktion hos entiteter är att använda dem som funktioner eller särskilja egenskaper för andra avsikter eller entiteter så att systemet observerar och lär sig genom dem.
Entiteter som funktioner för avsikter
Du kan använda entiteter som en signal för en avsikt. Förekomsten av en viss entitet i yttrandena kan till exempel skilja vilken avsikt den faller under.
| Exempel på yttrande | Entitet | Avsikt |
|---|---|---|
| Boka mig en strid mot New York. | City | Boka flygresa |
| Boka huvudkonferensrummet. | Rum | Reservera rum |
Entiteter som funktion för entiteter
Du kan också använda entiteter som en indikator på förekomsten av andra entiteter. Ett vanligt exempel på detta är att använda en förbyggd entitet som en funktion för en annan ML-entitet.
Om du skapar ett bokningssystem för flyg och ditt uttryck ser ut som "Boka mig en flygresa från Destinations till Seattle" kommer du att ha Origin City och Destination City som ML-entiteter. En bra idé är att använda den fördefinierade entiteten som GeographyV2 en funktion för båda entiteterna.
Mer information finns i referensartikeln geographyV2-entiteter.
Du kan också använda entiteter som nödvändiga funktioner för andra entiteter. Detta hjälper till att lösa extraherade entiteter. Om du till exempel skapar ett program för pizzabeställning och du har en ML-entitet kan du skapa entiteten lista och använda den som en obligatorisk Size SizeList funktion för Size entiteten. Programmet returnerar det normaliserade värdet som den extraherade entiteten från yttrandena.
Se funktioner för mer information och fördefinierade entiteter för att lära dig mer om fördefinierade entiteter som är tillgängliga i din kultur.
Entitetens förutsägelsestatus och fel
LUIS-portalen visar följande när entiteten har en annan entitetsförutsägelse än den entitet som du har märkt för ett exempelyttrande. Den här olika poängen baseras på den aktuella tränade modellen.
Texten som orsakar felet markeras i exempelyttrandet och exempelyttranderaden har en felindikator till höger, som visas som en röd triangel.
Prova ett eller flera av följande för att lösa entitetsfel:
- Den markerade texten är felmärkt. Åtgärda problemet genom att granska etiketten, korrigera den och träna appen igen.
- Skapa en funktion för entiteten för att identifiera entitetens koncept.
- Lägg till fler exempelyttranden och etiketter med entiteten.
- Granska förslag på aktiv inlärning för yttranden som tas emot vid förutsägelseslutpunkten och som kan hjälpa dig att identifiera entitetens koncept.
Nästa steg
- Lär dig mer om bra exempelyttranden.
- Mer information om hur du lägger till entiteter i LUIS-appen finns i Lägga till entiteter.
- Läs mer om begränsningar för LUIS-program.
- Använd en självstudie för att lära dig hur du extraherar strukturerade data från ett uttryck med hjälp av maskininlärningsentiteten.