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
Hi
kommer 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
utterances
till 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 olikautterances
som möjligt för att LUIS ska kunna associeraintents
ochutterances
ordentligt. - Träna din LUIS modell, genom att klicka på
Train
knappen påTrain and Test
Tab. Efter träning kan appen testas i panelen nedan. -
Publish App
slutligen din app på flikenPublish App
. Du bör nu få en endpoint-URL som ska läggas in när du definierarLUISRecognizer
i 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
entities
flik. - Klicka på
Add pre-built entities
och 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,
name
i 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å
entities
flik. - 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
intents
fliken 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 Doe
som en ytring. - Klicka och dra musen över orden du vill att enheten ska extrahera. Du måste markera
john doe
i 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.