Entiteiten
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:
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 |
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
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.
Verschil tussen gewone entiteiten en bestandsentiteiten
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:
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 |
Import / Export
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:
Regex 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:
Last updated