botframework
Lägga till naturlig språkbearbetning
Sök…
Introduktion
Bot Framework stöder Recognizers . En igenkännare används för att känna igen vad man ska göra när en användare skickar botten meddelandet. Därför kan du designa din bot för att känna igen avsikter baserat på användarinmatningen. Genkännaren kan användas med LUIS API för att lägga till naturlig språkförståelse för botten.
Syntax
var igenkännare = ny byggare.LUISRecognizer ('Din modells URL');
var intents = new builder.IntentDialog ({kännare: [igenkännare]});
Initiera och lägga till LUISRecognizer
När du har kommit med ett nytt projekt med den grundläggande mallen som anges i introduktionen bör du kunna lägga till en LUISRecognizer som så -
var model = '' // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);
Nu är recognizer en LUISRecognizer och kan passera avsikter baserat på din definierade LUIS-modell. Du kan lägga till recognizer till dina avsikter från
var intents = new builder.IntentDialog({recognizers: [recognizer]});
Din bot kan nu hantera avsikter från LUIS. Alla namngivna avsikter på LUIS kan upptäckas genom att använda matches i IntentDialog klassen. Så säg, en avsikt som heter hi definieras i LUIS-modellen för att erkänna avsikten med bot,
intents.matches('hi', function(session) {
session.send("Hey :-)");
});
Definiera en LUIS-modell med avsikter
Att skapa en LUIS-modell kräver liten eller ingen programmeringsupplevelse. Du måste dock vara bekant med två viktiga termer som kommer att användas mycket.
- Avsikter - Så här identifierar du funktioner som måste köras när användaren skriver in något. Exempelvis - En avsikt med namnet
Hikommer att identifiera en funktion som måste utföras varje gång användaren skickar "Hej". Avsnitt namnges unikt i ditt program / modell. - Enheter - Dessa identifierar substantiven i ett uttalande. Exempelvis - "Ställ in ett alarm för 13:00", här
1:00 pmär en enhet som måste identifieras av chat-botten för att ställa in ett larm.
Obs! Bilder på webbplatsen tillhandahålls inte som min ändring i front, men kärnkonceptet förblir detsamma.
För att skapa en ny modell, gå till LUIS.ai och logga in med ditt Microsoft-konto för att gå till appen skapande sida. Där ett tomt projekt kan skapas.
Definiera avsikter:
Avsnitt kan definieras på fliken Intents . De identifierar vilken funktion du behöver utföra när användaren anger något.
Alla applikationer har en standard None avsikt, som aktiveras när användarinmatningen matchar ingen annan avsikt.
För att definiera en avsikt,
- Ge det ett unikt namn som är relevant för den funktion du vill utföra.
- När namnet är klart bör du lägga till
utterancestill avsikten. Ytringar är vad du vill att användaren ska skicka för att aktivera den avsikt du definierar. Försök mata så många olikautterancessom möjligt för att LUIS ska kunna associeraintentsochutterancesordentligt. - Träna din LUIS modell, genom att klicka på
Trainknappen påTrain and TestTab. Efter träning kan appen testas i panelen nedan. -
Publish Appslutligen din app på flikenPublish App. Du bör nu få en endpoint-URL som ska läggas in när du definierarLUISRecognizeri din botkod.
Lägga till enheter till LUIS-modellen
En enhet är den information som din bot extraherar från en viss ytring som överensstämmer med en avsikt.
Eg- Låt My name is John Doe tillhöra en avsikt som kallas introduction . För att din bot ska förstå och extrahera namnet John Doe från meningen, måste du definiera en enhet som gör det. Du kan namnge enheten vad du än vill, men det är bäst att namnge det som något som hör till det den extraherar. I vårt exempel kan vi kallar vår enhet name .
Enheter kan återanvändas mellan olika syften för att extrahera olika saker. Så den bästa principen skulle vara att göra en enhet som extraherar endast typ av data och använder den på olika sätt. Därför, i vårt exempel ovan, säger att Book a flight on Emirates tillhör booking , då kan samma enhet, name , användas för att extrahera emirates .
Du måste komma ihåg två saker innan du fortsätter att definiera enheter -
- Enheter bör vara unika per ytring i en avsikt. En enhet kan inte användas två gånger i samma ytring.
- LUIS är okänslig för fall. Detta innebär att allt extraherat och mottaget genom utvinning av enheter kommer att vara i små bokstäver. Så extrahering av skiftkänslig information genom enheter är förmodligen en dålig idé.
Lägga till förbyggda enheter
Förbyggda enheter är, som namnet antyder, förbyggda, dvs de är redan konfigurerade för att extrahera en viss typ av data över den avsikt de läggs till. Ett exempel kan vara den enhet number som utvinner nummer från avsikten den är tilldelad. Siffrorna kan antingen vara numeriska eller alfabetiska som 10 eller ten .
För en fullständig lista över alla förbyggda enheter kan du besöka [Förbyggda entitetslista] [1].
För att lägga till förbyggda enheter,
- Gå till
entitiesflik. - Klicka på
Add pre-built entitiesoch välj enheten som du vill lägga till i modellen och tryck på spara.
Lägga till anpassade enheter Anpassade enheter är av fyra typer,
- Enkelt : En enkel enhet extraherar en viss data,
namei exemplen ovan är en enkel enhet. - Hierarkisk : En överordnad enhet med barnenheter (undertyper) som är beroende av föräldern.
- Komposit : En grupp av två eller flera enheter oberoende tillsammans.
- Lista : En enhet som bara känner igen ord från en given lista.
Definiera enkla enheter
- Gå på
entitiesflik. - Klicka på
Add Custom Entities - Namnge din enhet, kontrollera önskad entitetstyp och tryck på
Save.
Alla andra typer av enheter kan läggas till på samma sätt genom att bara ändra Entity Type till en av ovanstående typer. I hierarkiska och sammansatta entitetstyper måste du också ge barnen namn tillsammans med moderföretagets namn. Att definiera Lista-enheter är lite annorlunda än resten.
Definiera listor
När du följer ovanstående steg för att skapa en List Entity genom att sätta th Entity Type som List, kommer du att hänvisas till informationssidan för den enhet du just definierats.
- Definiera ett kanoniskt värde. Detta är ett standardvärde som botten kommer att få när användaren skriver in någon av synonymerna.
- Definiera synonymer till det kanoniska värdet. De konverteras till det kanoniska värdet när de möts av enheten.
Du kan också importera hela listor med hjälp av en matris med JSON-objekt, i formen:
[
{
"canonicalForm": "Hey",
"list": [
"Howdy",
"Hi"
]
},
.
.
.
]
Att associera en enhet med en avsikt
Pre-built och list enheter har redan en uppsättning värden definierade som kan extraheras från alla yttranden, men Simple , Hierarchical och Composite yttranden måste tränas för att ta upp värden.
Detta kan göras av
- Gå till
intentsfliken och välj avsikten du vill lägga till enheten till. - Lägg till en ytring med ett dummyvärde som du vill extraheras. Säg, du kan lägga till
My name is John Doesom en ytring. - Klicka och dra musen över orden du vill att enheten ska extrahera. Du måste markera
john doei exemplet ovan. - En listruta öppnas med en lista över alla tillgängliga enheter i ditt projekt. Välj motsvarande efter behov.
Nameär den enhet som valts i exemplet ovan. - Lägg till fler yttranden med olika dummyvärden varje gång och alla möjliga strukturer du kan tänka på.
- Träna och publicera din LUIS-modell.