Computational humor is a branch of computational linguistics and artificial intelligence which uses computers in humor research. It is not to be confused with computer humor (i.e., jokes about computers, programmers, users, and computing).
It is a relatively new area, with the first dedicated conference organized in 1996.
An approach to analysis of humor is classification of jokes. A further step is an attempt to generate jokes basing on the rules that underlie classification.
Simple prototypes for computer pun generation were reported in the early 1990s, based on a natural language generator program, VINCI. Graeme Ritchie and Kim Binsted in their 1994 research paper described a computer program, JAPE, designed to generate question-answer-type puns from a general, i.e., non-humorous, lexicon. (The program name is an acronym for “Joke Analysis and Production Engine”.) Some examples produced by JAPE are:
Q: What is the difference between leaves and a car?
A: One you brush and rake, the other you rush and brake.Q: What do you call a strange market?A: A bizarre bazaar.
Since then the approach has been improved, and the latest report, dated 2007, describes the STANDUP joke generator, implemented in the Java programming language. The STANDUP generator was tested on children within the framework of analyzing its usability for language skills development for children with communication disabilities, e.g., because of cerebral palsy. (The project name is an acronym for “System To Augment Non-speakers’ Dialog Using Puns” and an allusion to standup comedy.) Children responded to this “language playground” with enthusiasm, and showed marked improvement on certain types of language tests.
“The two young people, who used the system over a ten-week period, regaled their peers, staff, family and neighbors with jokes such as: “What do you call a spicy missile? A hot shot!” Their joy and enthusiasm at entertaining others was inspirational.
A statistical machine learning algorithm to detect whether a sentence contained a “That’s what she said” double entendre was developed by Kiddon and Brun (2011). Open source Python implementation of Kiddon & Brun’s TWSS system.
A program to recognize knock-knock jokes was reported by Taylor and Mazlack. This kind of research is important in analysis of human-computer interaction.
An application of machine learning techniques for the distinguishing of joke texts from non-jokes was described by Mihalcea and Strapparava (2006).
Takizawa et al. (1996) reported a heuristic program of detecting puns in Japanese language.
A possible application for the assistance in language acquisition is described in the section “Pun generation”. Another envisioned use of joke generators is in cases of steady supply of jokes where quantity is more important than quality. Another obvious, yet remote, direction is automated joke appreciation.
It is known that humans interact with computers in ways similar to interacting with other humans that may be described in terms of personality, politeness, flattery, and in-group favoritism. Therefore the role of humor in human-computer interaction is being investigated. In particular, humor generation in user interface to ease communications with computers was suggested.
Craig McDonough implemented the Mnemonic Sentence Generator, which converts passwords into humorous sentences. Basing on the incongruity theory of humor, it is suggested that the resulting meaningless but funny sentences are easier to remember. For example, the password AjQA3Jtv is converted into “Arafat joined Quayle’s Ant, while TARAR Jeopardized thurmond’s vase”.