Bron foto: Shutterstock

In een (gelukkig) niet zo ver verleden, voor ik in de wereld van UX belandde, studeerde ik Toegepaste Taalkunde. Je kan je dus wel voorstellen dat ik de trend van chatbots met meer dan gemiddelde interesse volg: geautomatiseerde diensten die via een chat-interface met mensen in contact treden, dat boeit me als UX designer maar zeker ook als taalkundige.

Het wonderlijke van chatbots is dat we nu bijna spelenderwijs zien gebeuren wat enkele decennia geleden nog als heel verre toekomstmuziek werd afgedaan. Een supercomputer als IBM Watson, die de quiz Jeopardy won van de allersterkste quizkampioenen, toont aan dat er vandaag al heel veel mogelijk is.

Chatbots hoeven natuurlijk geen quizzen te winnen. Maar aangezien ze met mensen in contact komen in chatsessies, wordt van hen wel een dialoog verwacht die de menselijke interactie zo goed mogelijk benadert. In de meeste gevallen lukt dat nog aardig, omdat het vaak gaat over antwoorden op eenvoudige verzoeken zoals het verplaatsen of annuleren van een afspraak. Maar bij Madison Reed bijvoorbeeld, gaan ze al een stapje verder. Daar helpt een chatbot vrouwen bij het selecteren van de juiste producten om hun haar te kleuren door hun huidige haarkleur via een foto te analyseren.  

Twee soorten “intelligentie”

Om een goed werkende chatbot te bouwen, zijn er grofweg twee wegen die je kunt inslaan: een chatbot op basis van regels enerzijds of op basis van artificiële intelligentie (AI) anderzijds. Het eerste type is het  eenvoudigste om te maken: je bouwt een aantal standaard antwoorden in als reactie op vooraf gedefinieerde vragen en verzoeken. Dat is uiterst efficiënt zolang de vragen - zelfs met tikfouten en kleine variaties in de vraagstelling - behoren tot de lijst van verwachte vragen. Zodra er een vraag wordt gesteld die de chatbot niet herkent, zal de chatbot geen nuttig antwoord meer kunnen verschaffen. We kunnen dus niet spreken over een intelligente chatbot.

Chatbots op basis van AI daarentegen kunnen meer dan louter op vooraf gedefinieerde zinnen reageren, maar ook op de inhoud van de tekst. Chatbots met AI begrijpen het lexicon van een tekst,  ze kunnen zinsconstructies analyseren en - last but not least - ze kunnen leren uit vorige conversaties.

Taalanalyse in vijf stappen

Voor het analyseren van menselijke taal maken chatbots gebruik van Natural Language Processing (NLP), een  model dat ook wordt  toegepast op Google Translate of steminterfaces zoals Siri op iPhone. Zonder al te veel in te gaan op de details kunnen we vijf stappen in taalanalyse onderscheiden:

1. Lexicale analyse. Hierbij wordt een tekst onderverdeeld in paragrafen, zinnen, woorden en leestekens, waarbij aan elk woord (of leesteken) een tag wordt toegekend om het type te bepalen.



Lexicale analyse

2. Syntactische analyse. Hier wordt geanalyseerd welk woord welke rol vervult in de zin en wat de verbanden tussen de woorden onderling zijn. Wat is het onderwerp, wat is het werkwoord, enzovoort.








Syntactische analyse

3. Semantische analyse. In deze stap wordt de eigenlijke betekenis van de woorden vastgesteld. Sommige woorden kunnen meer dan één betekenis hebben, bijvoorbeeld omdat ze zowel naamwoord als werkwoord zijn, en dan helpt de analyse uit de vorige niveaus vaak om de juiste keuze te maken. In twijfelgevallen moet de context uitsluitsel geven. Voor chatbots niet onoverkomelijk omdat ze meestal in een vrij specifieke context worden ingezet.


Semantische analyse

4. Referentiële analyse. Hier worden zinnen geanalyseerd door rekening te houden met de zinnen ervoor en erna. Als een verwijzend woord zoals ‘zij’ of ‘deze” wordt gebruikt, kan de chatbot begrijpen waarnaar precies wordt verwezen.


Referentiële analyse

5. Pragmatische analyse. Dit is verreweg de moeilijkste stap voor elke computer. Bij deze analyse interpreteert de computer wat er bedoeld wordt met de tekst. In de menselijke taal is wat we zeggen namelijk niet altijd gelijk aan wat we bedoelen. Als je bij iemand op bezoek gaat en de gastvrouw zegt: “er staat wijn in de koelkast”, weet je dat dit niet gewoon een mededeling of vaststelling is, maar een uitnodiging om jezelf te bedienen, ook al zegt de gastvrouw dit niet expliciet. Dat is voor een chatbot niet echt een probleem - chatbots hebben zelden dorst - maar je begrijpt al snel hoe ook andere conversaties grondig fout kunnen lopen.

Om NLP om te zetten naar de praktijk, worden deze vijf  stappen in computeralgoritmes gegoten. Meestal gebeurt dit met de programmeertaal Python: de tekst wordt omgezet in afzonderlijke tokens, die elk ook een tag krijgen (het computerequivalent van lexicale analyse), waarna elke token via parsing wordt verwerkt om hun rol in de zin te definiëren (syntactische analyse). Deze parses dienen als basis om de betekenis van de tekst te achterhalen via semantische, referentiële en pragmatische analyse.

Het nut (en gevaar) van voorbeeldzinnen

Dat betekent gelukkig niet dat een programmeur oneindig veel zinnen moet invoeren en regels code moet schrijven om de chatbot optimaal te laten werken. Hiervoor maakt een computer gebruik van machine learning (ML): door een groot aantal correct geparsete zinnen (corpus) in de chatbot te introduceren, leert die de structuur en betekenis van een goed gevormde zin  te begrijpen en toe te passen op andere zinnen. 

De bedoeling is dus om zo veel mogelijk correcte voorbeeldzinnen te voeden aan de chatbot. Het maakt weinig uit waar de zinnen vandaan komen: boeken, artikels, of zelfs menselijke conversaties. Zo maakt Microsoft gebruik van machine learning om zijn Chinese chatbot Xiao Ice te verrijken met alle mogelijke Chinese conversaties die het kan vinden op het internet.

Maar met menselijke conversaties moet je wel opletten. Datzelfde Microsoft ontwikkelde een chatbot voor Twitter, Tay genaamd. Deze bot leerde converseren op basis van wat andere Twittergebruikers naar haar tweetten. Helaas werd Tay met opzet bestookt met racistische en seksistische tweets, waardoor Tays eigen tweets gaandeweg ontaardden en offline werden gehaald nadat de chatbot zich fan van Hitler verklaarde.

Chatbot Tay, waarbij het resultaat anders was dan gehoopt

Om een goed werkende en betrouwbare chatbot te bouwen, heb je een goede technologie voor taalverwerking én voor machine learning nodig. En idealiter een vrachtwagen vol relevante voorbeeldzinnen. De tools zijn gelukkig al voorhanden, zodat je niet eerst een snelcursus toegepaste taalkunde hoeft te volgen. Helaas zijn de meeste tools enkel geschikt om chatbots op basis van regels te bouwen, maar een aantal tools bieden ook al iets uitgebreidere mogelijkheden aan.

Als UX designer zal je moeten leren om taal als gebruikersinterface te hanteren en ervoor zorgen dat elke zin die de chatbot produceert relevant en zinvol is. Vaak zal je eigen traditionele kennis van user interfaces hiervoor te kort schieten. Bereid je dus al maar voor op aangename samenwerkingen met linguïsten, copywriters en - waarom niet? - romanschrijvers en comedians.