botframework
Natuurlijke taalverwerking toevoegen
Zoeken…
Invoering
Bot Framework ondersteunt Recognizers
. Een herkenner wordt gebruikt om te herkennen wat te doen wanneer een gebruiker de bot een bericht stuurt. Daarom kunt u uw bot ontwerpen om intenties te herkennen op basis van de gebruikersinvoer. De herkenner kan worden gebruikt met de LUIS API om natuurlijk taalbegrip voor de bot toe te voegen.
Syntaxis
var herkenner = nieuwbouwer.LUISRecognizer ('URL van uw model');
var intents = new builder.IntentDialog ({herkenners: [herkenner]});
LUISRecognizer initialiseren en toevoegen
Zodra u klaar bent met een nieuw project met de basissjabloon in de Inleiding, zou u een LUISRecognizer als volgt moeten kunnen toevoegen -
var model = '' // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);
Nu is recognizer
een LUISRecognizer en kan het intenties doorgeven op basis van uw gedefinieerde LUIS-model. U kunt de recognizer
aan uw intenties door
var intents = new builder.IntentDialog({recognizers: [recognizer]});
Je bot kan nu intenties van LUIS verwerken. Elke naam intenties op LUIS kan worden gedetecteerd met behulp van de matches
eigendom van IntentDialog
klasse. Stel dat een intentie met de naam hi
is gedefinieerd in het LUIS-model, om de intentie op de bot te herkennen,
intents.matches('hi', function(session) {
session.send("Hey :-)");
});
Een LUIS-model met intenties definiëren
Het creëren van een LUIS-model vereist weinig tot geen programmeerervaring. U moet echter bekend zijn met 2 belangrijke termen die uitgebreid zullen worden gebruikt.
- Intenties - Zo identificeert u functies die moeten worden uitgevoerd wanneer de gebruiker iets invoert. Bijv. Een intentie met de naam
Hi
identificeert een functie die moet worden uitgevoerd wanneer de gebruiker "Hi" verzendt. Intenties worden uniek genoemd in uw programma / model. - Entiteiten - Deze identificeren de zelfstandige naamwoorden in een verklaring. Bijvoorbeeld: "Stel een alarm in voor 13:00", hier is
1:00 pm
een entiteit die moet worden herkend door de chat-bot om een alarm in te stellen.
Opmerking: afbeeldingen van de website worden niet verstrekt als de front-end van mijn wijziging, maar het kernconcept blijft hetzelfde.
Om een nieuw model te maken, gaat u naar LUIS.ai en logt u in met uw Microsoft-account om naar de pagina voor het maken van apps te gaan. Waar een leeg project kan worden gemaakt.
Intenties definiëren:
Intenties kunnen worden gedefinieerd op het tabblad Intents
. Ze identificeren welke functie u moet uitvoeren wanneer de gebruiker iets invoert.
Alle applicaties hebben de standaard None
intentie, die wordt geactiveerd wanneer de gebruikersinvoer overeenkomt met geen andere intentie.
Om een intentie te definiëren,
- Geef het een unieke naam die relevant is voor de functie die u wilt uitvoeren.
- Zodra de naamgeving is voltooid, moet u
utterances
aan de intentie toevoegen. Uitingen zijn wat u wilt dat de gebruiker verzendt om de intentie die u definieert te activeren. Probeer zoveel mogelijk verschillendeutterances
in te voeren zodat LUISintents
enutterances
juiste manier kan associëren. - Train je LUIS Model, door te klikken op de
Train
knop opTrain and Test
Tab. Na de training kan de app worden getest in het onderstaande paneel. - Publiceer ten slotte uw app op het tabblad
Publish App
. U zou nu een eindpunt-URL moeten krijgen die moet worden ingevoerd tijdens het definiëren vanLUISRecognizer
in uwLUISRecognizer
.
Entiteiten toevoegen aan het LUIS-model
Een entiteit is de informatie die je bot haalt uit een bepaalde uiting die overeenkomt met een intentie.
Bijv. Laat My name is John Doe
behoren tot een intentie genaamd introduction
. Om je bot de naam John Doe
uit de zin te laten begrijpen en eruit te halen, moet je een entiteit definiëren die dit doet. U kunt de entiteit een naam geven wat u maar wilt, maar het is het beste om het te noemen als iets dat betrekking heeft op wat het extraheert. In ons voorbeeld kunnen we de name
onze entiteit name
.
Entiteiten kunnen worden hergebruikt tussen verschillende intenties, om verschillende dingen te extraheren. Het beste principe zou dus zijn om een entiteit te maken die alleen het soort gegevens extraheert en deze voor verschillende doeleinden gebruikt. Daarom, in ons bovenstaande voorbeeld, zeg Book a flight on Emirates
behoort tot de beoogde booking
, dan kan dezelfde entiteit, name
, worden gebruikt om de vluchtnaam emirates
te extraheren.
U moet twee dingen in gedachten houden voordat u entiteiten gaat definiëren:
- Entiteiten moeten per uiting uniek zijn in een intentie. Een entiteit kan niet twee keer in dezelfde uiting worden gebruikt.
- LUIS is niet hoofdlettergevoelig. Dit houdt in dat alles geëxtraheerd en ontvangen via entiteitsextractie in kleine letters zal zijn. Het is dus waarschijnlijk een slecht idee om hoofdlettergevoelige gegevens via entiteiten te extraheren.
Vooraf gebouwde entiteiten toevoegen
Vooraf gebouwde entiteiten zijn, zoals de naam al doet vermoeden, vooraf gebouwd, dat wil zeggen dat ze al zijn geconfigureerd om een bepaald type gegevens te extraheren via de intentie waaraan ze zijn toegevoegd. Een voorbeeld kan de entiteit zijn number
dat uittreksels nummers uit de bedoeling deze is toegewezen aan. De getallen kunnen numeriek of alfabetisch zijn, zoals 10
of ten
.
Voor een volledige lijst van alle vooraf gebouwde entiteiten gaat u naar [Pre-built Entities List] [1].
Om vooraf gebouwde entiteiten toe te voegen,
- Ga naar het tabblad
entities
. - Klik op
Add pre-built entities
en selecteer de entiteit die u aan het model wilt toevoegen en druk op Opslaan.
Aangepaste entiteiten toevoegen Aangepaste entiteiten zijn van 4 soorten,
- Eenvoudig : een eenvoudige entiteit extraheert bepaalde gegevens, de
name
in de bovenstaande voorbeelden is een eenvoudige entiteit. - Hiërarchisch : een bovenliggende entiteit met onderliggende entiteiten (subtypen) die afhankelijk zijn van de bovenliggende.
- Composiet : een groep van 2 of meer onafhankelijke entiteiten samen.
- Lijst : een entiteit die alleen woorden uit een bepaalde lijst herkent.
Eenvoudige entiteiten definiëren
- Ga naar het tabblad
entities
. - Klik op
Add Custom Entities
- Geef uw entiteit een naam, vink het gewenste entiteitstype aan en klik op
Save
.
Alle andere typen entiteiten kunnen op dezelfde manier worden toegevoegd door het Entity Type
te wijzigen in een van de bovenstaande typen. In hiërarchische en samengestelde entiteitstypen moet u ook de onderliggende namen opgeven samen met de naam van de bovenliggende entiteit. Lijstentiteiten definiëren is een beetje anders dan de rest.
Lijstentiteiten definiëren
Nadat u de bovenstaande stappen hebt gevolgd om een List Entity
door het Entity Type
als lijst in te voeren, wordt u doorgestuurd naar de detailpagina van de entiteit die u zojuist hebt gedefinieerd.
- Definieer een canonieke waarde. Dit is een standaardwaarde die de bot ontvangt wanneer de gebruiker een van de synoniemen typt.
- Definieer synoniemen voor de canonieke waarde. Ze worden omgezet in de canonieke waarde wanneer ze door de entiteit worden aangetroffen.
U kunt ook volledige lijsten importeren met een reeks JSON-objecten, in de vorm:
[
{
"canonicalForm": "Hey",
"list": [
"Howdy",
"Hi"
]
},
.
.
.
]
Een entiteit associëren met een intentie
Pre-built
en list
entiteiten hebben al een reeks waarden gedefinieerd, die kan worden gewonnen uit alle utterences echter Simple
, Hierarchical
en Composite
uitingen moeten worden opgeleid te halen waarden.
Dit kan gedaan worden door
- Ga naar het tabblad
intents
en kies de intentie waaraan u de entiteit wilt toevoegen. - Voeg een uiting toe met een dummy-waarde die u wilt extraheren. Zeg, je kunt toevoegen
My name is John Doe
als een uiting. - Klik en sleep de muis over de woorden die u de entiteit wilt laten extraheren. Je moet
john doe
in het bovenstaande voorbeeld markeren. - Er wordt een vervolgkeuzelijst geopend met een lijst van alle beschikbare entiteiten in uw project. Selecteer de bijbehorende naar eigen inzicht.
Name
is de entiteit die in het bovenstaande voorbeeld is geselecteerd. - Voeg telkens meer uitingen met verschillende dummy-waarden en alle mogelijke structuren toe die je kunt bedenken.
- Train en publiceer uw LUIS-model.