Unsupervised Joke Generation from Big Data

Print Friendly, PDF & Email

Humor is a very human phenomenon. Can a machine appreciate humor? This reminds me of a scene from the 1994 movie “Star Trek: Generations” where the android Lt. Commander Data discovers humor. After having his emotion chip activated, Data finds everything amusing. Actually, it’s quite annoying. See for yourself:

But can a computer generate funny jokes? Can machine learning perform this seemingly simple task? Interestingly, two researchers from the University of Edinburgh published a paper on the subject, “Unsupervised joke generation from big data.” Using unsupervised machine learning methods, they were able to generate jokes of the type:

I like my X like I like my Y, Z

where X, Y, and Z are variable to fill in. This template yields jokes like this:

I like my men like I like my tea, hot.

The model significantly outperformed a competitive baseline and generated funny jokes 16% of the time, compared to 33% for human-generated jokes. This is a good step forward for the field of computational humor which can be divided into two classes: humor recognition (like our Commander Data), and humor generation.

Here is a sampling of the jokes that were generated by the algorithm:

  • I like my relationships like I like my source, open
  • I like my coffee like I like my war, cold
  • I like my boys like I like my sectors, bad

Pretty humorous I’d say, even without my emotion chip activated!

 

Sign up for the free insideBIGDATA newsletter.

 

 

 

Speak Your Mind

*

Comments

  1. I’m a professional comedy writer with an engineering degree and I believe it won’t be long before a computer is generating genuinely funny jokes.

    In fact, I wrote a book that contains joke-writing algorithms that can give a computer a sense of humor and, therefore, make the computer more human.

    For more about my take on computational humor, the next Holy Grail of artificial intelligence, read my article here:
    http://joetoplyn.com/can-a-computer-write-a-joke/