Cursus
Ben je het beu om lang in de wacht te staan voordat je met een klantenservicemedewerker wordt doorverbonden? Word je loom van het lezen van FAQ’s? Dan zit je hier goed. Kun je je de laatste keer herinneren dat je via chat contact had met de klantenservice omdat er een verkeerd artikel bij je is bezorgd? De kans is groot dat je met een bot praatte in plaats van met een medewerker. Maar wat zijn bots nu precies? Hoe bouw je er een? Welke codebron is ervoor nodig? Dit zijn enkele vragen die in deze blogpost worden beantwoord!
Kunstmatige intelligentie, die machine learning en Natural Language Processing (NLP) inzet voor het bouwen van een bot of chatbot, is speciaal ontworpen om de interactie tussen mens en computer soepel te laten verlopen. Chatbots zijn overal: van bankwebsites en pizzeria’s tot webwinkels vind je ze overal. Chatbots bieden realtime klantenservice voor een reeks vooraf gedefinieerde vragen binnen het domein waarvoor ze zijn gebouwd. Ze nemen natuurlijke mensentaal over en voeren gesprekken op een mensachtige manier.
Om de definitie van een chatbot te versimpelen: chatbots zijn de evolutie van vraag-en-antwoordsystemen die gebruikmaken van natural language processing. Volgens bronnen zal in 2024 de wereldwijde conversational-markt groeien tot $15,7 miljard, met een jaarlijkse groei van 30,2%. Zo zagen we tijdens de coronapandemie duizenden hoaxes rondgaan op WhatsApp, bijvoorbeeld over wat COVID zou kunnen behandelen, wat je weerstand zou verhogen, of dat het virus in een lab is ontwikkeld. Om zulke hoaxes te bestrijden, lanceerde Facebook een chatbot die als factchecker fungeert.
Interesse om een chatbot te bouwen met tools zoals OpenAI en Pinecone? Bekijk dan onze code-along hieronder:
Wat is een chatbot?
De term “chatterbot” ontstond in 1994 toen Michael Mauldin zijn eerste chatbot “Julia” maakte. Volgens de Oxford Dictionary is een chatbot “Een computerprogramma dat is ontworpen om een gesprek met menselijke gebruikers te simuleren, vooral via het internet.” Je kunt het zien als een virtuele assistent die via tekstberichten met gebruikers communiceert en bedrijven helpt dichter bij hun klanten te komen. Het is een programma dat is ontworpen om na te bootsen hoe mensen met elkaar communiceren. Dat kan via een chatinterface of via spraak. Ontwikkelaars ontwerpen chatbots meestal zo dat het voor gebruikers lastig is te zien of ze met een persoon of een robot praten.
Chatbots helpen elk bedrijf/organisatie bij het realiseren van de volgende doelen:
- Verhoogt de operationele efficiëntie.
- Automatiseert de afhandeling van klantverzoeken.
- Behandelt basisvragen, waardoor medewerkers tijd krijgen voor complexere en waardevollere vragen.
- Biedt meertalige ondersteuning.
- Bespaar tijd en moeite door klantenondersteuning te automatiseren.
- Verbetert de responssnelheid en de klantbetrokkenheid.
- Personaliseert communicatie.

Hoe werkt een chatbot?
Chatbots zijn niets anders dan softwaretoepassingen met een applicatielaag, een database en API’s. Simpel gezegd werkt een chatbot met patroonherkenning om tekst te classificeren en een passend antwoord te geven op vragen/verzoeken van de gebruiker. De chatbot reageert op basis van het programma dat erin is geladen. Er zijn verschillende soorten chatbots, afhankelijk van het gebruik. Grofweg zijn er drie types chatbots:
-
Regelgebaseerde chatbot: Dit is de basisvariant. De gebruiker interacteert met dit type bot via vooraf gedefinieerde opties. Om antwoorden te krijgen, klikt de gebruiker op bepaalde knoppen. Deze bots verzamelen het verzoek van de gebruiker, analyseren het en bieden vervolgens resultaten in de vorm van knoppen. Ze vervangen vaak veelgestelde vragen, maar bij complexe vragen zijn ze niet altijd de beste oplossing.
-
Onafhankelijke (trefwoord)chatbots: Dit zijn machine-learning-bots; in tegenstelling tot regelgebaseerde bots analyseren ze wat de gebruiker wil en reageren ze dienovereenkomstig. Ze gebruiken aanpasbare trefwoorden en machine learning om effectief en efficiënt te bepalen hoe ze moeten reageren.
-
NLP (contextuele) chatbots: Dit zijn de meest geavanceerde chatbots. Ze combineren het beste van regelgebaseerde en trefwoordbots. Ze gebruiken NLP om de context en intentie in gebruikersverzoeken te begrijpen en handelen daarnaar. Deze chatbots kunnen moeiteloos meerdere verzoeken van dezelfde gebruiker afhandelen.
Vergelijking van chatbotplatforms
Veel platforms bieden maatwerkchatbots met automatisering, zodat klanten altijd tijdige, eersteklas ondersteuning krijgen, zonder dat er out-of-the-box conversatiecapaciteiten nodig zijn. Klanten kopen ook liever bij bedrijven waarmee ze eenvoudig via berichten in contact komen.
Hieronder een overzicht van AI-chatbotplatforms in 2020:
-
Azure Bot Service: Azure Bot Service biedt de mogelijkheid om een chatbot vanaf nul te bouwen: je kunt bouwen, verbinden, testen en implementeren. Ontwikkelaars kunnen de open-source SDK en tools gebruiken. Ook kun je geavanceerde bots maken, zoals virtuele assistenten voor complexe vragen.
-
Botsify: De kracht van deze tool is dat niet-technische gebruikers er met een intuïtieve interface chatbots mee kunnen bouwen. Bots worden hier weergegeven als stories: je kunt meerdere stories of meerdere chatbots maken en die naar behoefte inzetten. Een andere fijne functie is dat je reacties van gebruikers kunt opslaan in een formulier dat eenvoudig naar CSV kan worden geëxporteerd.
-
Amazon Lex: Amazon Lex stelt ontwikkelaars in staat om conversatie-interfaces te bouwen met tekst en spraak. Het biedt geavanceerde deep-learningfunctionaliteit en NLP om de context van tekst te begrijpen. Met een gebruiksvriendelijke console kun je binnen enkele minuten een chatbot bouwen.
-
Mobile Monkey: Mobile Monkey laat ontwikkelaars chatbots bouwen specifiek voor marketingdoeleinden. Je kunt Facebook-ad-bots, sms-bots en native webchatbots maken op één platform. Ze bieden ook kant-en-klare chatbottemplates voor vrijwel elke business, die je direct op een website kunt insluiten.
-
ChatterOn: Deze tool zegt verschillende soorten rijke contentreacties vanuit de bot te kunnen afhandelen, doordat ontwikkelaars bij elke interactie met de gebruiker verschillende API’s kunnen koppelen. ChatterOn biedt meer dan 20 vooraf gebouwde bots die je met één klik kunt gebruiken. Er is weinig code nodig, waardoor het voor niet-technische gebruikers makkelijker wordt om chatbots te bouwen.
-
TARS: Hiermee bouw je een conversationele landingspagina, zodat je een geautomatiseerde chatbot kunt maken die je klanten begroet, relevante informatie over hun vragen rond jouw producten geeft en tegelijk om hun contactgegevens vraagt. Tars biedt veel vooraf gedefinieerde chatbottemplates, ingedeeld op branche en usecase.
Intussen ben je vast nieuwsgierig geworden om je eigen chatbot te bouwen. En wat is beter dan een aanpasbare NLP-chatbot? Laten we aan de slag gaan met het bouwen van onze eigen chatbot in Python met de library chatterbot.
Chatterbot

Zoals de naam al zegt, is chatterbot een Python-library die speciaal is ontworpen om chatbots te genereren. Dit algoritme gebruikt een selectie van machine-learningalgoritmen om verschillende reacties te creëren op basis van gebruikersverzoeken.
Chatterbot maakt het makkelijker om chatbots te ontwikkelen die een gesprek kunnen voeren. Je begint met een ongetrainde chatterbot zonder ervaring of kennis over hoe te communiceren. Wanneer gebruikers zinnen invoeren, slaat de library zowel het verzoek van de gebruiker als de reactie die wordt teruggestuurd op. Naarmate het aantal voorbeelden in chatterbot toeneemt, stijgt ook de nauwkeurigheid van de reacties.
Chatterbot is getraind om de meest vergelijkbare reactie te zoeken door de meest vergelijkbare gebruikersaanvraag te vinden die overeenkomt met de nieuwe aanvraag. Vervolgens kiest het een reactie uit de al bestaande reacties. De USP van chatterbot is dat ontwikkelaars eenvoudig hun eigen dataset en structuren kunnen maken.
Een chatbot bouwen met Chatterbot
We beginnen met het installeren van de chatterbot-library. Voor het maken van een chatbot moet je ook chatterbot corpus installeren. Corpus betekent letterlijk een verzameling woorden. Dit bevat een corpus aan data dat in de chatterbot-module is opgenomen. Elk corpus is een prototype van verschillende invoerzinnen en hun reacties. Deze corpora worden door bots gebruikt om zichzelf te trainen. De aanbevolen manier om chatterbot en chatterbot_corpus te installeren is via pip.
Installatiecommando’s voor de terminal:
pip install chatterbot
pip install chatterbot_corpus
Installatiecommando’s voor Jupyter Notebook:
!pip install chatterbot
!pip install chatterbot_corpus
Laten we eerst de Chatbot-klasse van de chatterbot-module importeren.
# Importing chatterbot
from chatterbot import ChatBot
Chatbotinstantie maken
Dan nu het leukste onderdeel: je chatbot een naam geven door een ChatBot-object te maken. Je kunt elke naam kiezen die je wilt. Deze ene regel code maakt onze eigen nieuwe bot met de naam Buddy. We moeten nog enkele parameters opgeven voordat we ons eerste programma draaien.
# Create object of ChatBot class
bot = ChatBot('Buddy')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data] /root/nltk_data...
[nltk_data] Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data] Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package wordnet to /root/nltk_data...
[nltk_data] Unzipping corpora/wordnet.zip.
Je kunt de storage adapter instellen bij het chatbotobject. Storage adapters laten je verbinding maken met een specifieke opslagunit of -service. Om een storage adapter te gebruiken, moeten we die specificeren. We wijzen de storage adapter toe via het importpad van de opslag die we willen gebruiken. Hier gebruiken we de SQL Storage Adapter, waarmee de chatbot verbinding kan maken met SQL-databases. Met de parameter database maken we een nieuwe SQLite-database. Volg onderstaande code om een nieuwe database voor de chatbot te maken.
# Create object of ChatBot class with Storage Adapter
bot = ChatBot(
'Buddy',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
database_uri='sqlite:///database.sqlite3'
)
Je kunt ook de logical adapter instellen bij een chatbotobject. Zoals de naam aangeeft, bepaalt de Logical Adapter de logica achter chatterbot: deze kiest reacties voor elke input. Deze parameter bevat een lijst met logical adapters. Chatterbot laat je meerdere logical adapters gebruiken. Als er meer dan één logical adapter wordt gebruikt, berekent de chatbot het vertrouwensniveau en wordt de reactie met het hoogste vertrouwen teruggegeven als output. Hier gebruiken we twee logical adapters: BestMatch en TimeLogicAdapter.
# Create object of ChatBot class with Logic Adapter
bot = ChatBot(
'Buddy',
logic_adapters=[
'chatterbot.logic.BestMatch',
'chatterbot.logic.TimeLogicAdapter'],
)
De chatbot trainen
De laatste stap bij het maken van een chatbot is het trainen ervan met de modules die in chatterbot beschikbaar zijn. Een chatbot trainen met chatterbot is zo eenvoudig als een conversatie aan de chatbotdatabase toevoegen. Zodra de chatbot een dataset krijgt, maakt hij de noodzakelijke items aan in de kennisgrafiek om input en output correct weer te geven. Laten we eerst ListTrainer importeren, er een object van maken door het Chatbot-object door te geven, en de train()-methode aanroepen met een lijst van zinnen.
# Inport ListTrainer
from chatterbot.trainers import ListTrainer
trainer = ListTrainer(bot)
trainer.train([
'Hi',
'Hello',
'I need your assistance regarding my order',
'Please, Provide me with your order id',
'I have a complaint.',
'Please elaborate, your concern',
'How long it will take to receive an order ?',
'An order takes 3-5 Business days to get delivered.',
'Okay Thanks',
'No Problem! Have a Good Day!'
])
List Trainer: [####################] 100%
Chatbot testen
De laatste stap van deze tutorial is het testen van de conversatievaardigheden van de chatterbot. Om de reacties te testen, roepen we de methode get_responses() van de Chatbot-instantie aan.
# Get a response to the input text 'I would like to book a flight.'
response = bot.get_response('I have a complaint.')
print("Bot Response:", response)
Bot Response: Please elaborate, your concern
We maken een while-lus waarin onze chatbot draait. Als er zinnen in de lus worden doorgegeven, krijgen we er een passend antwoord op, omdat we al gegevens in onze database hebben gezet. Als we de zin "Bye" of "bye" van de gebruiker krijgen, kunnen we de lus beëindigen en het programma stoppen.
name=input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
request=input(name+':')
if request=='Bye' or request =='bye':
print('Bot: Bye')
break
else:
response=bot.get_response(request)
print('Bot:',response)
Enter Your Name: Avinash
Welcome to the Bot Service! Let me know how can I help you?
Avinash:I need your assistance regarding my order
Bot: Please, Provide me with your order id
Avinash:12345
Bot: No Problem! Have a Good Day!
Avinash:Bye
Bot: Bye
Conclusie
Gefeliciteerd, je bent tot het einde van deze tutorial gekomen!
Dit artikel ging over hoe je een chatbot maakt in Python met de ChatterBot-library. Een chatbot bouwen met ChatterBot was niet alleen eenvoudig, maar leverde ook nauwkeurige resultaten op. Met de vooruitgang in Artificial Intelligence en Machine Learning is alles mogelijk, of het nu gaat om bots met gespreksskills zoals mensen of iets heel anders. Bekijk DataCamp’s tutorial over Facebook-chatbots implementeren met Python.

