Definiera avsikter, yttranden och entiteter
Yttranden är de fraser som en användare kan ange när de interagerar med ett program som använder din språkmodell. En avsikt representerar en uppgift eller åtgärd som användaren vill utföra, eller helt enkelt innebörden av ett yttrande. Du skapar en modell genom att definiera avsikter och associera dem med ett eller flera yttranden.
Tänk dig till exempel följande lista över avsikter och associerade yttranden:
- GetTime:
- "Vilken tid är det?"
- "Vad är tiden?"
- "Berätta tiden"
- GetWeather:
- "Vad är väderprognosen?"
- "Behöver jag ett paraply?"
- "Kommer det att snöa?"
- TurnOnDevice
- "Tänd lampan."
- "Slå på lampan."
- "Slå på fläkten"
- Ingen:
- ”Hej”
- "Hej då"
I din modell måste du definiera de avsikter som du vill att din modell ska förstå, så ägna lite tid åt att överväga den domän som din modell måste stödja och vilka typer av åtgärder eller information som användarna kan begära. Förutom de avsikter som du definierar innehåller varje modell en avsikt ingen som du bör använda för att uttryckligen identifiera yttranden som en användare kan skicka, men för vilka det inte krävs någon specifik åtgärd (till exempel konversationshälsningar som "hello") eller som ligger utanför domänens omfång för den här modellen.
När du har identifierat de avsikter som din modell måste stödja är det viktigt att samla in olika exempelyttranden för varje avsikt. Samla in yttranden som du tror att användarna kommer att ange. inklusive yttranden som betyder samma sak men som konstrueras på olika sätt. Tänk på följande riktlinjer:
- Samla in flera olika exempel eller alternativa sätt att säga samma sak
- Variera längden på yttrandena från kort, till medel, till lång
- Variera platsen för substantiv eller ämne för yttrandet. Placera den i början, slutet eller någonstans mellan
- Använd rätt grammatik och felaktig grammatik i olika yttranden för att erbjuda bra exempel på träningsdata
- Precisionen, konsekvensen och fullständigheten i dina märkta data är viktiga faktorer för att fastställa modellprestanda.
- Etikett exakt: Etikettera varje entitet till rätt typ alltid. Inkludera bara det du vill extrahera, undvik onödiga data i etiketterna.
- Etikett konsekvent: Samma entitet bör ha samma etikett i alla yttranden.
- Etikett helt: Märk alla instanser av entiteten i alla dina yttranden.
Entiteter används för att lägga till specifik kontext i avsikter. Du kan till exempel definiera en TurnOnDevice-avsikt som kan tillämpas på flera enheter och använda entiteter för att definiera de olika enheterna.
Överväg följande yttranden, avsikter och entiteter:
Yttrande | Avsikt | Entiteter |
---|---|---|
Vad är tiden? | GetTime | |
Vilken tid är det i London? | GetTime | Plats (London) |
Vad är väderprognosen för Paris? | GetWeather | Plats (Paris) |
Behöver jag ett paraply ikväll? | GetWeather | Tid (ikväll) |
Vad är prognosen för Seattle i morgon? | GetWeather | Plats (Seattle), Tid (i morgon) |
Tänd lampan. | TurnOnDevice | Enhet (ljus) |
Slå på fläkten. | TurnOnDevice | Enhet (fläkt) |
Du kan dela upp entiteter i några olika komponenttyper:
- Inlärda entiteter är den mest flexibla typen av entitet och bör användas i de flesta fall. Du definierar en inlärd komponent med ett lämpligt namn och associerar sedan ord eller fraser med den i träningsyttranden. När du tränar din modell lär den sig att matcha lämpliga element i yttrandena med entiteten.
- Listentiteter är användbara när du behöver en entitet med en specifik uppsättning möjliga värden, till exempel dagar i veckan. Du kan inkludera synonymer i en listentitetsdefinition, så att du kan definiera en DayOfWeek-entitet som innehåller värdena "Sunday", "Monday", "Tuesday" och så vidare; var och en med synonymer som "Sun", "Mon", "Tue" och så vidare.
- Fördefinierade entiteter är användbara för vanliga typer som tal, datetimes och namn. När fördefinierade komponenter till exempel läggs till identifierar du automatiskt värden som "6" eller organisationer som "Microsoft". Du kan se den här artikeln för en lista över fördefinierade entiteter som stöds.