AI, artificiële intelligentie, kunstmatige intelligentie. Hoe je het ook noemt, het klinkt ingewikkeld. In de praktijk valt dat gelukkig mee, zoals je leert in deze Scratch workshop.

Alex Wit

 

Kunstmatige intelligentie kom je overal tegen. In de games die je speelt is AI het brein van je computertegenstanders. Bij het KNMI voorspelt AI het weer voor de komende dagen. Bij Siri op je iPhone luistert AI naar je vragen en geeft daar antwoord op.

                   

Woordenlijst

Sprite:
tweedimensionale afbeelding of animatiie  

              

Kunstmatige intelligentie is dus gewoon software. Maar dan wel software met bijzondere eigenschappen en een speciale taak: een computer of ander apparaat slimmer maken. AI probeert het denken van mensen na te doen. Daarvoor wordt bij het programmeren gekeken naar hoe mensen problemen oplossen en taken uitvoeren. Als je dat eenmaal goed in een programma weet vast te leggen, kan de enorme rekenkracht van de computer helpen om lastige taken van ons over te nemen en die zelfs beter uitvoeren. Het voorspellen van het weer is daar een goed voorbeeld van.

Maak een chatbot
Kunstmatige intelligentie programmeren is in veel gevallen een pittige klus. Toch kun je ook als programmeerbeginner vrij eenvoudig een vorm van kunstmatige intelligentie bouwen. Een goed voorbeeld is een chatbot. Chatbots kom je regelmatig tegen op websites om je te helpen als je vragen hebt. Je typt je vraag in en de chatbot geeft (hopelijk) het bijbehorende juiste antwoord.

Dit is een vrij eenvoudige vorm van AI die je zelf kunt programmeren. In deze workshop maak je een chatbot met Scratch. Je leert zo meteen omgaan met input, output, lijsten en tekstcommando’s in Scratch.

Scratch Chatbot afbeelding 1
De chatbot staat klaar

Aan de slag
Eerst start je de Scratch editor op in je internetbrowser. Bijna alle browsers zijn geschikt voor Scratch behalve Internet Explorer. Surf naar scratch.mit.edu en klik bovenin op de optie Maak. Sluit het videovenstertje met een klik op het kruisje. Staat Scratch nog niet op Nederlands? Klik dan op de wereldbol > Nederlands.

Je kunt nu aan de slag met je programma. Eerst kies je een andere sprite dan de standaard kat. Verwijder de katsprite door in het Spritevak bij Sprite1 op de vuilnisbak te klikken. Kies daarna een nieuwe sprite met een klik op de knop met de witte kat. Omdat we een chatbot maken, kiezen we voor de sprite van een robot. Typ in het vak Zoek linksboven: robot. Klik op de sprite van Retro Robot. De chatbot staat in het Speelveld.

Sprites in Scratch praten met behulp van een tekstballon. Het is dan ook handig daarvoor rechts van de sprite voldoende ruimte te houden. Typ daarom in het Spritevak in het vakje X: -75. Klik in het Speelveld. Nu de chatbot goed staat, voeg je de code voor het chatprogramma toe.

Input
Je start het programma met wanneer op (groene vlag) wordt geklikt. Sleep dit commando uit de groep Gebeurtenissen boven in de Scriptzone.

Een belangrijk onderdeel in de meeste programma’s is de input of invoer. Met input geef je van buitenaf informatie aan een programma. In het geval van een chatbot is dat natuurlijk onmisbaar, omdat je een gesprek wilt voeren met het programma. Input werkt standaard met een vraag die het programma stelt. Zo bepaal je als programmeur in welke richting een gesprek moet gaan. In het echte leven begin je een gesprek vaak met een begroeting als ‘dag’ of ‘hallo’ en door daarna naar een naam te vragen. Dat is een mooi voorbeeld om ook te gebruiken in je chatbot.

Voeg uit de groep Waarnemen het commando vraag ‘Hoe heet je?’ en wacht toe aan je programma. Klik op Hoe heet je? en typ als inputvraag: Hallo, ik ben chatbot. Hoe heet je?

Scratch Chatbot afbeelding 2a
De chatbot vraagt om input

Om te zien hoe een inputvraag in de praktijk werkt, klik je op de groene vlag links boven het Speelveld. De vraag verschijnt in een tekstballon. Je antwoord typ je in het vak onderin het Speelveld. Je voert het antwoord in door te drukken op Enter of te klikken op het vinkje. Vanzelfsprekend gebeurt er nu verder nog niets, omdat je nog geen commando’s voor het verwerken van het antwoord hebt toegevoegd.

Output
Een simpele manier om te reageren op het antwoord, is met een commando met een standaardreactie. De reactie wordt output of uitvoer genoemd. Hier zijn een aantal commando’s voor in Scratch. Klik op de groep Uiterlijken. Je kunt kiezen tussen zeggen en denken. Het enige verschil is hoe de ballon met de tekst eruit ziet. In dit geval nemen we zeg Hallo! 2 sec. en voegen deze toe aan het programma onder de inputvraag. De tekst Hallo! kun je eventueel veranderen. De 2 sec. geeft de tijd aan dat de tekst in beeld blijft staan. Ook die is aan te passen. Test nu het programma. 

Scratch Chatbot afbeelding 2
De chatbot reageert met output

                   

De basis van Scratch leren

Heb je nog geen ervaring met Scratch 3.0? In het vorige nummer van PC-Active (313, pagina 40-43)) stond een basisworkshop voor het leren omgaan met Scratch. Je kunt deze teruglezen op de website van PC-Active op https://bit.ly/30qD16B

              

Slimmer met een lijst
Een keer ‘hallo’ zeggen kan nog intelligent lijken, maar na een paar keer wordt wel duidelijk dat dit gewoon steeds dezelfde reactie is. Je maakt je chatbot al een stukje ‘slimmer’ door wat variatie in zijn reacties aan te brengen. Net zoals je als mens niet altijd hetzelfde reageert. Om dit voor elkaar te krijgen, gebruik je een lijst of tabel. In een lijst houd je meerdere variabelen bij die met elkaar te maken hebben. Bijvoorbeeld een lijst met verschillende reacties op het invoeren van een naam.

Je klikt voor het maken van een lijst op de groep Variabelen. Klik daarna op Maak een lijst. Typ als lijstnaam Reactie op naam en klik op OK. Als je een duidelijke naam aan een lijst geeft, is het makkelijk te onthouden welke informatie daarin staat. De lijst krijgt automatisch een plekje in het Speelveld, zodat je inhoud kunt zien.

Scratch Chatbot afbeelding 4a
De lijst Reactie op naam is klaar

Je moet nu de lijst nog vullen. Dat kun je doen in het programma zelf met de lijstcommando’s in de groep Variabelen. Maar je kunt ook van tevoren de lijst al vullen. De inhoud van de lijst wordt dan samen met je programma opgeslagen.

Klik op de + linksonder de lijst. Je geeft het eerste element van de lijst op. Typ Leuke naam heb je. Typ daarachter een spatie: die komt later nog van pas. Druk op Enter. Je kunt meteen het tweede element opgeven. Typ Leuk kennis te maken. Typ een spatie en druk op Enter. Typ Hallo en een spatie. Om een verkeerd element weg te halen, klik je erop en daarna op het kruisje. Klik buiten de lijst in het Speelveld om hem te sluiten.

De lijst Reactie op naam heeft nu drie elementen of items. Item nummer 1 is Leuke naam en roep je met dat nummer aan. De andere items hebben ook hun eigen nummer: 2 en 3. Het is mooier om de lijst niet in het Speelveld zichtbaar te hebben als je het programma klaar hebt, maar voor het testen is het handig om hem nog in beeld te houden. Om de lijst later te verbergen, haal je het vinkje ervoor weg in de groep Variabelen.

 

HCC!ai

 
  Een ideale manier om meer te weten te komen over kunstmatige intelligentie, is je aansluiten bij de interessegroep HCC!AI. Deze groep van HCC-hobbyisten houdt zich enthousiast bezig met het delen en verspreiden van kennis over kunstmatige intelligentie. HCC!AI heeft iedere maand een bijeenkomst in Hooglanderveen (bij Amersfoort). Als HCC-lid kun je je gratis aansluiten bij HCC!AI via de website https://ai.hcc.nl  

Scratch Chatbot afbeelding 8a
 
  Meer over AI vind je op de site van HCC!AI  

Verschillende antwoorden geven
Nu je een lijst met verschillende reacties hebt, moet de chatbot nog een reactie uitkiezen. Daarvoor laat je een willekeurige keuze maken tussen een van de drie items in de lijst. 

      Scratch Chatbot afbeelding 5a
  Er zijn drie reacties mogelijk

Eerst gebruik je een commando uit Variabelen om het juiste element te kiezen. Sleep item 1 van Reactie op naam op Hallo! in het zeg commando. Nu wordt nog het eerste element standaard gekozen. Klik op de groep Functies. Sleep willekeurig getal tussen 1 en 10 op de 1 van item 1 van Reactie op naam. Verander de waarde 10 in 3. Op deze manier kiest het programma uit een van de drie items in de lijst. Test de chatbot meerdere keren, zodat je alle drie de reacties te zien krijgt. 

Beter reageren op de input
Je kunt je chatbot slimmer laten lijken door het antwoord van de gebruiker mee te nemen in de reactie. Dat doe je in dit geval door de ingevoerde naam aan het antwoord toe te voegen, zoals bij Hallo Peter. Voor dit soort trucs heeft Scratch een aantal handige tekstcommando’s in de groep Functies. Sleep voeg appel en banaan samen naar een lege plek in de Scriptzone. Dit commando voegt twee woorden of stukken tekst samen. Sleep item willekeurig getal tussen 1 en 3 van Reactie op naam uit het zeg commando op de plek van appel in het voeg commando.

Nu heb je nog de naam nodig. Handig genoeg heeft Scratch een aparte variabele voor het antwoord op een inputvraag. Sleep antwoord uit de groep Waarnemen op banaan in het voeg commando. Sleep nu het hele voeg commando terug op Hallo! van het zeg commando. Test uit wat deze wijziging doet. Je ziet nu meteen waarom je een spatie achter iedere tekst in de lijst moest zetten.

Scratch Chatbot afbeelding 6a
Reageren met een naam

De input ontleden

Tot nu toe zijn we ervan uitgegaan dat een antwoord op een vraag simpel en rechttoe rechtaan is. Maar een antwoord kan ook uitgebreider zijn dan alleen maar een woord. In dat geval is het slim om je chatbot te laten zoeken naar een trefwoord in de input. Aan de hand van dat trefwoord kun je dan een reactie uit een lijst weergeven. Hiervoor gebruik je het tekstcommando appel bevat a? uit Functies.

Je voegt een tweede vraag toe aan je programma: Welk apparaat gebruik je om met me te chatten? Daarnaast gebruik je een lijst Antwoord apparaat met de items: smartphone, tablet, pc. En een lijst Reactie op apparaat met de items: iOS of Android?, iOS of Android?, Windows of MacOS? Maak ook nog een variabele met de naam teller.

In dit programmadeel vraag je aan de hand van het gevonden trefwoord naar het besturingssysteem.

Het programmadeel gebruikt een lus en ziet eruit als in afbeelding 7. Kijk of je begrijpt hoe het programmadeel werkt. Test daarna je chatbot met verschillende antwoorden.

Scratch Chatbot afbeelding 7a
Reageren aan de hand van een trefwoord

Verder met je chatbot
Nu je een aantal basisonderdelen van een chatbot kent, kun je je chatbot verder uitbreiden met vragen en reacties. Probeer gewoon van alles uit en kijk wat er gebeurt.

 

Gratis AI-cursus

 
 

Scratch Chatbot afbeelding 9aAls je nieuwsgierig bent geworden naar kunstmatige intelligentie en meer wilt weten, is de Nationale AI-cursus een goede plek om te beginnen.

Met behulp van deze gratis online cursus maak je stap voor stap kennis met de verschillende kanten van AI. De cursus voor alle leeftijden duurt zes uur. Die voor jongeren één uur. Na afloop ontvang je een certificaat.

Je vindt de AI-cursus op https://www.ai-cursus.nl



 
                                                                            Meer over AI vind je op de site van HCC!AI