Entiteiten
Last updated
Last updated
Soms is een intentie alleen niet voldoende om een antwoord te kunnen geven. Bekijk het volgende voorbeeld:
<< Gebruiker wil de prijs weten van een product >> => intentie: #productkost
“Hoeveel kost een iPhone Xs?”
“Hoeveel kost een Nokia 3310?”
Het spreekt voor zich dat de eerste en de tweede voorbeeldzin een ander antwoord verwachten, hoewel de intentie toch hetzelfde is. De onderscheidende factor zit in het feit of het over iPhone Xs
of Nokia 3310
gaat. Om een antwoord te kunnen geven, moet de chatbot dus niet alleen de intentie #productkost
detecteren, maar ook het product waarover het gaat: een entiteit met het type @product
. Het antwoord zal dus niet alleen afhangen van de gedetecteerde intentie, maar ook van de entiteiten die gevonden worden in de zin.
Soms is het niet altijd duidelijk hoe je intenties en entiteiten moet splitsen. In bovenstaand voorbeeld zou je ook een intentie #iphonexskost
en een intentie #nokia3310kost
kunnen maken en geen entiteiten definiëren. Dit zou ons echter veel dubbel werk opleveren, aangezien deze intenties bijna exact hetzelfde zijn. In dit geval is het dus duidelijk dat je er beter één intentie van maakt en met entiteiten werkt. Soms is deze grens echter minder duidelijk. Door ervaring op te doen en dingen uit te proberen, leer je wat werkt en wat niet.
Een entiteit heeft 3 niveaus:
Naam
Waardes
Synoniemen
Enkele voorbeelden van entiteiten:
In Oswald kunnen entiteiten aangemaakt worden door in de chatbot in het linkermenu op Entiteiten
te klikken. Klik dan net naast het linkermenu bovenaan op Nieuwe entiteit
. Kies een beschrijvende naam voor deze entiteit. Dit is best een overkoepelende naam voor alle waarden die deze entiteit kan bevatten.
Om een nieuwe waarde aan de entiteit toe te voegen, klik je rechtsboven op Nieuwe waarde
. Vul de naam van de waarde in, bijvoorbeeld iPhone X
zoals in de tabel hierboven. Verder kan je nog enkele synoniemen toevoegen voor deze waarde. Vergeet opnieuw niet op Klaar
te klikken wanneer je klaar bent. Zo kan je verschillende waarden met allemaal nul, één of meerdere synoniemen toevoegen.
Tenslotte kan je nog het veldje Corrigeer
op ja
of nee
zetten (standaard staat dit op nee
). Wanneer je dit aanzet, zal het systeem de entiteiten herkennen ook als er een schrijffout gemaakt wordt. Zo zal bijvoorbeeld PlayStaion 4
automatisch gecorrigeerd worden naar PlayStation 4
en zo dus ook herkend worden door Oswald.
Bestandsentiteiten maken het mogelijk om via een Excel-bestand entiteiten in bulk op te laden naar Oswald. De A-kolom staat voor de verschillende waarden van de entiteiten. De B-, C-, D... -kolommen staan voor de synoniemen die bij de waarden horen. Bestandsentiteiten toevoegen werkt op een gelijkaardige manier als voor gewone entiteiten. Je klikt op Nieuwe entiteit
, je kiest een naam voor je entiteit en kiest dan voor Laad entiteit uit bestand
. Daar kan je het bijhorende Excel-bestand kiezen. De waardes en synoniemen worden nu automatisch ingevuld.
Het grote verschil tussen gewone entietiten en bestandsentiteiten is het feit dat bestandsentiteiten op een andere manier behandeld worden door Oswald. Voor bestandentiteiten gebruikt Oswald immers geavanceerde optimalisatiealgoritmes zodat de chatbot honderden, duizenden of zelfs miljoenen en waardes voor entiteiten kan bevatten. Verder worden de verschillen hieronder opgelijst:
Entiteiten kunnen, net als intenties geïmporteerd en geëxporteerd worden. Je doet dit door te klikken op de menu optie bij de lijst van alle entiteiten:
Een reguliere expressie of een regex is een zeer specifieke string of lijn tekst is die je kan gebruiken om informatie uit tekst te filteren dat een bepaald patroon volgt. Een paar voorbeelden van regexen zijn e-mailadressen, vluchtnummers of telefoonnummers. Deze hebben duidelijke patronen en kunnen gemakkelijk uit tekst worden gefilterd.
Je kan regex entiteiten ook in Oswald gebruiken. Wanneer een gebruiker dan bijvoorbeeld vraagt: "Wanneer vertrekt vlucht SN12345?", kan Oswald dit nummer herkennen als een unieke entiteit.
Het vluchtnummer zal worden geanaliseerd met de regex ^([A-Za-z]{2})([0-9]{4})?$
. Deze code werkt op de volgende manier:
^
: start van de regex
([A-Za-z]{2})
: Exact 2 letters (klein en groot)
([0-9]{4})
: exact 4 cijfers
?$
: einde regex
Ga naar je Entiteiten en maak een nieuwe aan. Wanneer je het onderstaand scherm krijgt, vink je de waarde Regex
aan.
Opgelet! Regex entiteiten zijn hoofdlettergevoelig!
Je regex entiteiten zien er anders uit dan normale entiteiten. Zie de afbeelding hieronder:
Naam
Waarde
Synoniemen
@product
iPhone Xs
de duurste iPhone, iPhone 10s
PlayStation 4
PS4
Amazon Echo Dot
Echo Dot
Samsung Galaxy S9
Galaxy S9
@film
Harry Potter en De Steen Der Wijzen
Harry Potter and The Sorcerer’s Stone, de eerste Harry Potter
Sjakie en De Chocoladefabriek
Charlie and the Chocolate Factory
@smalltalk
bedankt
merci, thanks, dankuwel
hallo
hey, jow, hi, goeiedag
@credentials
gebruikersnaam
username, nickname, userID, loginID
wachtwoord
paswoord, password
Eigenschap
Gewone entiteiten
Bestandsentiteiten
Waarden en synoniemen toe te voegen via UI
x
Waarden en synoniemen aan te passen via UI
x
Kan duizenden waarden bevatten
x
Op te laden vanuit een bestand
x
Corrigeer altijd aan
x
Waarden te gebruiken in inputconfiguratie van antwoordnode
x