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