Dissociated press


Dissociated press is a parody generator. The generated text is based on another text using the Markov chain technique. The name is a play on "Associated Press" and the psychiatric term dissociative identity disorder.
An implementation of the algorithm is available in Emacs. Another implementation is available as a Perl module in CPAN, .

The algorithm

The algorithm starts by printing a number of consecutive words from the source text. Then it searches the source text for an occurrence of the few last words or letters printed out so far. If multiple occurrences are found, it picks a random one, and proceeds with printing the text following the chosen occurrence. After a predetermined length of text is printed out, the search procedure is repeated for the newly printed ending.
Considering that words and phrases tend to appear in specific grammatical contexts, the resulting text usually seems correct grammatically, and if the source text is uniform in style, the result appears to be of similar style and subject, and takes some effort on the reader's side to recognize as not genuine. Still, the randomness of the assembly process deprives it of any logical flow - the loosely related parts are connected in a nonsensical way, creating a humorously abstract, random result.

Examples

Here is a short example of word-based Dissociated Press applied to the Jargon File:
Here is a short example of letter-based Dissociated Press applied to the same source:

History

The dissociated press algorithm is described in HAKMEM Item #176. The name "dissociated press" is first known to have been associated with the Emacs implementation.
Brian Hayes discussed a Travesty algorithm in Scientific American in November 1983. The article provided a garbled William Faulkner passage:
Hugh Kenner and Joseph O'Rourke of The Johns Hopkins University discussed their frequency table-based Travesty generator for microcomputers in BYTE in November 1984. The article included the Turbo Pascal source for two versions of the generator, one using Hayes' algorithm and another using Claude Shannon's Hellbat algorithm. Murray Lesser offered a compiled BASIC version in the magazine in July 1985, in September 1985 Peter Wayner offered a version that used tree data structures instead of frequency tables, and in December 1985 Neil J. Rubenking offered a version written in Turbo Pascal that stored frequency information in a B-tree.