GOOFER, GAG and JokeJudger are three systems I created for my master's thesis about learning to automatically generate jokes from examples.
Table of Contents
GOOFER: Generator Of One-liners From Examples with Ratings
GOOFER is a framework for that models a general pipeline for learning to generate jokes from example jokes. It is extension on the generate-and-test principle, by generalising the typical template-and-schema approached used in other computational humor generators. With classic machine learning methods, it learns to recognise good patterns in jokes within particular templates, and then produces similar jokes using this learned pattern.

JokeJudger: Platform for collecting jokes and ratings
Since there wasn't an appropriately large humorousness-rated joke dataset, I created a platform to collect jokes and ratings, and called it JokeJudger. Because the GOOFER framework works with templates, we decided to only collect rated jokes for one template, namely analogy jokes. These jokes all fit the template "I like my X like I like my Y, Z". On the site, users were prompted with jokes and asked to rate it using 1 to 5 stars. They could also submit their own jokes, and view the ratings it received.
Later in the research, generated jokes were uploaded alongside human-created jokes, so they could be rated without users realising they weren't created by hand. The collected jokes can be found here.







GAG: Generalised Analogy Generator
GAG (Generalised Analogy Generator) is an analogy joke generator. It uses the GOOFER framework, but strips its template extraction components due to only handling one type of joke template.
The system uses the analogy jokes collected on JokeJudger to learn distinguish the relations between words in a good analogy joke from a bad analogy joke. Afterwards, it generates millions of jokes, and tries to identify the jokes that its test algorithm considers good.
In our evaluation (on JokeJudger), we showed that it was able to generate funny jokes half as frequent as humans did.

🍒 Generated Jokes
Here is a selection of jokes generated by the algorithm:
- I like my coffee like I like my myself: hot.
- I like my coffee like I like my sleep: strong.
- I like my men like I like my graves: nameless.
- I like my coffee like I like my country: cold.
- I like my men like I like my society: heartless.
- I like my women like I like my buildings: tall.
- I like my women like I like my tests: independent.
- I like my women like I like my questions: silly.
- I like my men like I like my rain: gentle.
- I like my women like I like my laughter: silly.
- I like my computer like I like my affection: personal.
- I like my computer like I like my argument: personal.