Het is weer zover, de jaarlijkse quiz van je vereniging, en ze hebben jou gevraagd om de quizvragen samen te stellen. Plots word je geconfronteerd met het vinden van originele vragen met de juiste moeilijkheidsgraad. Artificiële intelligentie systeem IBM Watson heeft al succes geboekt in de Amerikaanse game show quiz Jeopardy!. Als artificiële intelligentie gebruikt kan worden om vragen te beantwoorden, waarom ook niet om interessante vragen te genereren?
Vragen maken voor een quiz brengt twee uitdagingen met zich mee. De eerste uitdaging is dat het moeilijk kan zijn om interessante vragen te bedenken. De tweede uitdaging is zorgen dat de vragen de juiste moeilijkheid hebben. Een ideale quiz bevat een goede mix van makkelijke en moeilijke vragen voor respectievelijk onervaren en ervaren quizzers.
We lossen de eerste uitdaging in deze thesis op door sjablonen te extraheren uit bestaande quizvragen. Een sjabloon is een tekst waar woorden ingevuld kunnen worden, bijvoorbeeld ‘In welk continent ligt X? Y.’ Vervolgens vullen we deze sjablonen in met woorden met dezelfde relatie om een nieuwe reeks van quizvragen te krijgen, bijvoorbeeld ‘In welk continent ligt België? Europa.’ De tweede uitdaging lossen we op door naar de onderlinge moeilijkheidsgraad van de gegenereerde vragen te schatten door te kijken hoe algemeen gekend de ingevulde woorden zijn.
Het systeem leidt sjablonen af uit bestaande vragen en bijhorende antwoorden. Neem bijvoorbeeld: ‘Wat is de hoofdstad van China? Beijing.’ Het systeem zoekt de logische connectie(s) tussen woorden in de vraag en antwoord. Hiervoor gebruikt het algoritme de kennisbank Wikidata. Deze kennisbank bevat allerlei informatie over entiteiten, bijvoorbeeld dat Beijing de hoofdstad is van China of dat Christopher Nolan de regisseur is van de film Inception. Deze eerste connectie kunnen we gebruiken om uit de originele vraag het sjabloon ‘Wat is de hoofdstad van X? Y.’ af te leiden. Dankzij de kennisbank kunnen we namelijk automatisch achterhalen dat de relatie tussen X en Y ‘hoofdstad van’ is. Het systeem hoeft hiervoor niet eens de rest van de vraag te begrijpen. Door aan de kennisbank andere invullingen van deze ‘hoofdstad van’-relatie op te halen, kunnen we andere vragen genereren, zoals bijvoorbeeld ‘Wat is de hoofdstad van België? Brussel.’ of ‘Wat is de hoofdstad van Duitsland? Berlijn.’
Het systeem kon 1272 sjablonen extraheren uit 4300 vragen verspreid over drie datasets. Uit die 1272 waren er 436 sjablonen die bij invulling resulteerden in kwaliteitsvolle vragen.
Een vraag is moeilijker als de quizzer een concept minder goed kent, daarom kijken we naar twee populariteitskenmerken van de ingevulde entiteiten in het sjabloon om een moeilijkheidsgraad te schatten. De eerste populariteitskenmerk krijgen we door gebruik te maken van Google Trends, dat ons leert hoe populair een entiteit als zoekterm is. Als tweede populariteitskenmerk kijken we naar hoeveel connecties de entiteit heeft in de Wikidata kennisbank. Hoe meer connecties, hoe hoger de kans dat de quizzer ervan gehoord heeft. Naast populariteitskenmerken kijken we ook nog naar hoe verwant de ingevulde entiteiten zijn. Hoe meer verwant de entiteiten zijn, hoe hoger de kans dat de quizzer een pad naar het antwoord kent.
Resultaten tonen aan dat de combinatie van deze drie bovenstaande kenmerken over het algemeen een betere moeilijkheidsgraad schatting oplevert dan elk van de kenmerken apart te gebruiken voor de schatting.
Voor deze headline hoeft u nog niet te vrezen. Het systeem dat in deze thesis gecreëerd werd, is een assisterend systeem dat samen met de gebruiker vragen bedenkt. De gebruiker kiest zelf een paar voorbeeldvragen waar het variaties op wil. Het systeem genereert dan enkele gelijkaardige vragen met gelijkaardige relaties, en presenteert deze gesorteerd op moeilijkheid. Zo stel je vanaf nu in een mum van tijd die jaarlijkse quiz samen!