Joe Toplyn

  • Home
  • About
  • Blog
  • Galleries
    • “Late Night with David Letterman”
    • “The Tonight Show with Jay Leno”
    • “Monk”
  • Events
  • Media Page
  • Contact

Tag Archives: joke formulas

Can a Computer Write a Joke?

Posted on May 5, 2016 by Joe Toplyn

Before long, a computer will write jokes as funny as those created by professional comedy writers.

The book "Comedy Writing for Late-Night TV"I’m no expert in computational humor, but I am the author of Comedy Writing for Late-Night TV. It’s possibly the most practical guide to writing jokes and other short-form comedy ever written.

I’ve also been reading up on the rapid advances in artificial intelligence (AI).

Take a look at these AI milestones:

1997: IBM’s Deep Blue computer system beats
a human world champion in a chess match.

Garry Kasparov plays against the Deep Blue chess computer

 

 

 

 

 

 

2011: IBM’s Watson computer system beats
human champions in Jeopardy.

The set of "Jeopardy," with two human champions and IBM's Watson computer

 

 

 

 

 

 

 

2016: Google’s AlphaGo computer program beats
a top-ranked human in Go.

Google's AlphaGo Go-playing computer plays against a human champion

 

 

 

 

 

 

Each of those milestones was previously considered unattainable by a computer. Each of them was considered to be a true test of a computer’s ability to think like a human. And a computer raced past each one of them.

The ability to write a good joke will be the next barrier for AI that a computer leaps over. That’s because writing a joke involves executing the kind of algorithms that computers can apparently already execute.

Here’s how I believe a computer system like IBM’s Watson will soon be able to write a joke.  (What I know about Watson I get from The AI Behind Watson: The Technical Article.)
A humanoid robot serves breakfast to a senior citizen.

Say you’re a senior citizen sitting at home with no one but your personal robot for companionship. You’re reading the news and you say, “Huh.  Some airline employee was arrested with over two hundred eighty two thousand dollars in his backpack.”

In a flash, the computer brain in your robot companion takes these steps:

STEP 1: The computer identifies the most unusual keywords and sentence fragments in the potential joke topic you uttered. Those are the linguistic elements–I call them handles–that made the topic interesting enough for you to comment on.

This process of parsing the joke topic into handles seems similar to what IBM’s Watson did every time it “decomposed” a Jeopardy question into “subclues.”

A Delta passenger jet on the runwayIn our hypothetical joke topic, the two handles are “airline employee” and “two hundred eighty two thousand dollars.”

STEP 2: For each of those two handles, the computer generates a list of what I call associations. An association is a word or phrase that’s somehow related to the handle.

The food court at an airport

One association of “airline employee” is “airport restaurant,” which has the sub-association “costs a lot of money.”

And one association of “two hundred eighty two thousand dollars” is “a lot of money.”

This process of generating associations seems similar to what IBM’s Watson did when it found phrases that were statistically related to keywords by using its “hypothesis generation” algorithms.

STEP 3: The computer makes a connection between the two associations “costs a lot of money” and “a lot of money” and it decides to build a punch line around that strong connection.

This process seems similar to what IBM’s Watson did when it evaluated candidate Jeopardy answers by using its “evidence retrieval” algorithms.

Here’s a diagram of Watson’s question-answering (QA) architecture:

A diagram of the question-answering architecture of IBM's Watson computer system

STEP 4: The computer uses its automated reasoning skills to devise what I call an angle leading from the joke topic to the punch line. The computer might reason this way: The airline employee has a lot of money, so he can dine at an airport restaurant, which costs a lot of money.

a blurred computer image of a woman's face

STEP 5: The computer uses its natural language generation (NLG) skills to transform the topic-angle-punch line data of the candidate joke into conversational English.

Some NLG systems are currently used to transform numerical data into sentences in English. And other computer programs known as chatbots now use NLG systems to simulate human conversation.

 

 

STEP 6: The computer decides that the resulting candidate joke is probably surprising enough to be funny. It does this by searching through its store of human knowledge and finding that a meal at an airport restaurant is extremely unlikely to cost two hundred eighty two thousand dollars.

This process seems similar to what IBM’s Watson did when it performed “confidence estimation” and “ranking” on a candidate answer.

STEP 7: The computer directs your robot companion to tell you the joke.

Sure, those are a lot of steps for a computer to execute. But remember, IBM’s Watson beat human champions in Jeopardy. That strongly suggests that a computer could do all of the above really fast, as fast as a professional comedian.

And it may be even easier for a computer to get a laugh than to win dollars in Jeopardy. That’s because there is only one way to win a Jeopardy question: figure out the one correct answer and buzz in first.

But there are several ways to get a laugh from any given joke topic. A fertile joke topic–one with a lot of associations–may spawn three or more different jokes. And those jokes don’t have to be of professional quality to get a laugh; they just have to be reasonably funny.

A man sits at an airport restaurant
So when you comment to your robot companion, “Look at this. Some airline employee was arrested with over two hundred eighty two thousand dollars in his backpack,” the robot might wisecrack:

“He probably needed the money to buy lunch at the airport.”

And you, the senior citizen, might chuckle and feel a little less lonely.

High-quality computational humor is the next Holy Grail for AI. That’s because a computer with a sense of humor is a more human computer. And a more human computer is worth billions of dollars.

UPDATE #1: A Computer Can Write a Joke

Soon after I wrote the above post I decided to dust off my engineering degree and teach a computer to be funny myself.

I learned how to program in Python and how to use many readily-available tools of natural language processing (NLP), natural language generation (NLG), and machine learning (ML).

Then I used those tools to transform some of the techniques in my book, “Comedy Writing for Late-Night TV,” into computer code.

Now I think it’s fair to update the second paragraph of my original post to say that I am an expert in computational humor.

I also think it’s fair to answer the question posed by the title of my original post this way: Yes, a computer can write a joke.

I call my joke-writing system Witscript (U.S. Patent Nos. 10,642,939; 10,878,817; and 11,080,485). Right now the jokes it makes aren’t very sophisticated.

But as research in artificial general intelligence (AGI) advances, Witscript can learn to create smarter jokes. Witscript is a road map to a computer with a sense of humor, like a witty human companion.

Witscript also represents a new approach to computational creativity.

On November 22, 2019, I presented a poster about Witscript at the Natural Language, Dialog and Speech (NDS) Symposium in New York City.

The poster is here.

And below is the poster abstract. For a demo of Witscript, contact me through my company website.

Witscript: Computational Methods for Generating Contextually Integrated Jokes
Joseph E. Toplyn, SB, Twenty Lane Media, LLC

Research shows that people prefer to interact with an artificial intelligence (AI) that exhibits a sense of humor. But most conversational AIs have only a limited ability to make jokes. For example, they only output jokes written by humans, they mostly generate nonsense that requires human editing, they only tell jokes on request, or they tell jokes unrelated to a context. In contrast, we present Witscript, a novel approach to computational humor that independently generates original, contextually integrated jokes. A user inputs text, which may be an utterance in dialog, into the Witscript system. Witscript uses natural language processing tools and word embeddings to identify which pair of keywords in the input text is most likely to be useful in creating a joke response. Word embeddings are then used to list words associated with each of the two keywords. The two word associations that have the best wordplay are linked to create a punch line. Finally Witscript uses a language model fine-tuned on a dataset of jokes to fill the gap between the input text and the punch line with bridge text in a natural-sounding way. This bridge text and the punch line comprise a joke response to the original input text. The system outputs the joke response to the user only if it exceeds a preset score. With Witscript software to simulate a humanlike sense of humor in conversation, chatbots can be more engaging and personal robots can be friendlier companions.

UPDATE #2: This App Can Write a Joke

I’ve launched my AI comedy co-writer, Witscript, as a web app. Now anyone can get AI to write a joke quickly and easily.

Want help writing jokes?
Make AI write jokes for you with
my AI-powered joke writer app.

Explore Witscript here.

Witscript logo
Posted in Writing Tips | Tags: can a computer be funny, can AI understand jokes, can an AI recognize humor, can an artificial intelligence understand jokes, can computers be funny, can computers be taught to be funny, can computers create humor, can computers have a sense of humor, Can computers learn to be funny, can computers tell jokes, Can robots be funny?, Can you teach a computer to be funny?, can you teach humor to an AI, comedy algorithms, computational creativity, computational humor, funny robot, humor generation, joke algorithms, joke formulas, joke generation, joke-telling robot, machine joking, natural language generation, robot telling jokes, will artificial intelligences have a sense of humor, Witscript | 4 Comments |

How to Write a Joke

Posted on July 15, 2014 by Joe Toplyn

There are formulas for writing jokes. Experienced joke writers go through a systematic process to turn something like a news item into a sentence or two that will make people laugh.

You may have heard that “Writing is rewriting.” That describes only part of the process. Writing a joke is first thinking of what to write, then slapping together a rough draft, and only then rewriting to maximize the laugh.

Here’s the process I went through to write a joke for Twitter using the techniques in my book Comedy Writing for Late-Night TV.

The idea for the joke starts with this news headline:

“Giant African Snails Seized at Los Angeles Airport”

I have an emotional reaction to the headline—“That’s weird”—which alerts me that the news item might be of general interest and worth exploring as a joke Topic.

Giant African snails at LAXThe news item also feels promising because it has two handles–“snail” and “Los Angeles”—each of which has several well-known associations. That means there’s a great chance I can create a solid Punch Line from the associations. “Snail” has associations like “slimy,” “slow,” and “French people eat them.” “Los Angeles” has associations like “smog,” “traffic,” and all the individual celebrities there.

To generate a Punch Line, I focus first on the well-known “snail” association “slow” and ask myself which slow people are commonly associated with Los Angeles. I can’t think of any only-in-LA slowpokes, so I expand my list of associations to include workers in general.

DMV in Los Angeles

To spark ideas I Google “slow workers,” which reminds me of the DMV. Ah-ha! Now I have the basis of my Punch Line: I’ll link snails with DMV employees using their shared association “slow.” The result is this:

Partial Rough Draft: “Giant African snails were seized at Los Angeles Airport…workers at the DMV.”

To complete my rough draft I need an Angle that connects my Topic and Punch Line smoothly and efficiently. So I add an Angle that explains how the snails became workers at the DMV and get this:

Rough Draft: “Giant African snails were seized at Los Angeles Airport. Instead of destroying them, officials gave them jobs at the DMV.”

I use the word “officials” a lot in topical jokes. It suggests authority figures but isn’t specific enough to be distracting.

So that’s my rough draft. That was writing, wasn’t it? So much for writing being rewriting. Now comes the rewriting.

I add “live shipment” to clarify that these creatures are animate and could conceivably perform some kind of work. I add “67” because that detail from the news story subtly reinforces that this incident actually occurred. I remove “African” because it’s distractingly specific and unnecessary for the joke. I repeat “snails” in the Angle because it’s so crucial to making the Punch Line work. And this version results:

Version #2: “A live shipment of 67 giant snails was seized at Los Angeles Airport. Instead of destroying the snails, officials gave them jobs at the DMV.”

That version could still use a little tweaking. I backload the Topic, moving the most important elements closer to the Punch Line. I add “customs inspectors” to get rid of the passive voice and to clarify why the snails were seized and might be destroyed. And I get this final version:

Joe Toplyn's tweet about snails and the DMV

Abbreviating the name of the airport took the joke down to exactly 140 characters, Twitter’s limit at the time. That meant I didn’t have to waste more time, and possibly weaken the joke, trimming it to fit.

Before posting the joke I subject it to some Comedy Quality Tests. One of the tests gives me pause: Is the joke too familiar? Is making fun of slow DMV employees similar to making fun of airline food–too hacky? I decide that the joke is so effective that the laugh will blow away any possible whiff of hackiness. Copy and paste to Twitter.

Want help writing jokes?
Make AI write jokes for you with
my AI-powered joke writer app, Witscript.
Explore Witscript here.

Witscript logo

Posted in Writing Tips | Tags: basics of joke writing, Comedy Writing for Late-Night TV, how do comedians write jokes, how do I start writing jokes, how do people write jokes, how to write a good joke, how to write a joke punchline, how to write comedy, how to write monologue jokes, how to write original jokes, how to write topical comedy, joke formulas, joke structure, joke writing, joke writing exercises, joke writing formula, joke writing techniques, jokes, monologue jokes, process of writing jokes, snails, system for writing jokes, topical comedy, topical jokes, Twitter, ways to improve your joke writing, ways to write jokes, ways to write original jokes, write original jokes, writing jokes, writing jokes for standup comedy | 4 Comments |

Sign up to get more tips and offers from Joe.

Joe’s Tweets

JoeToplyn

Categories

Pages

  • About Joe
  • Blog
  • Contact
  • Events
  • Media Page
  • Photo Galleries
    • “Late Night with David Letterman”
    • “Monk”
    • “The Tonight Show with Jay Leno”

Recent Posts

  • How Can I Write a Joke with AI? August 20, 2024
  • Joke About Sports Illustrated’s Layoffs February 13, 2024
  • Joke About Betelgeuse January 9, 2024
  • Joke About Coca-Cola October 30, 2023
  • Joke About AI and Mass Extinction June 27, 2023

Recent Comments

  • Joe Toplyn on How to Pick a Good News Item for Writing Jokes
  • JJ on How to Pick a Good News Item for Writing Jokes
  • Anne Cherchian on Should You Include the End in a Movie Synopsis?
  • Joe Toplyn on Media Page
  • Zoe on Media Page

Archives

  • August 2024
  • February 2024
  • January 2024
  • October 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • February 2015
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • April 2014
  • March 2014

Categories

  • Joke Writing Workshop
  • Late-Night Writing
  • Writing Tips

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Pages

  • About Joe
  • Blog
  • Contact
  • Events
  • Media Page
  • Photo Galleries
    • “Late Night with David Letterman”
    • “Monk”
    • “The Tonight Show with Jay Leno”

Archives

  • August 2024
  • February 2024
  • January 2024
  • October 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • February 2015
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • April 2014
  • March 2014

Categories

  • Joke Writing Workshop (364)
  • Late-Night Writing (13)
  • Writing Tips (13)

WordPress

  • Log in
  • WordPress

CyberChimps WordPress Themes

© 2014 Joe Toplyn. All Rights Reserved.