An amusement which mangles some input text. It simulates a k'th order Markov chain based on the text's statistics. The chain can either be based on letter statistics ("if the last 4 letters in the text were ` the', what is the chance that the next letter is `r'?), or on word statistics ("if the last 2 words in the text were `I love', what is the chance that the next word is `nobody'?"). The parameter k is the degree of continuity required; 4-6 is a good choice for a letter-based chain, while 2-3 for a word-based chain. The results are always amusing, since they're almost English-like.

In Emacs, you can perform dissociation based on the current buffer using "M-x dissociated-press RET". See that function's documentation string ("C-h f dissociated-press RET") for details on how to specify k and the use of letter or word statistics.

In practice, most implementations don't do a real Markov chain, but instead do the following:

  • Pick a random place in the text.
  • Search forward for the require continuity (wrap around from the end of the text to its beginning).
  • Output the next letter or word.
If the original text were generated by the Markov model, the results would be the same. Unfortunately, this is not true of English.