If you like this, check out "King James Programming"[0] as well which is currently the King James Bible, Structure and Interpretation of Computer Programs, and Why's Poignant Guide to Ruby.
I studied music composition as an undergraduate and often used Markov chains in my work. For my senior recital, I composed a piece in which I recite an apocryphal psalm generated with a Markov chain trained on the King James psalms.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in
this document are to be interpreted as the fantastic mythology of those beings
This is IETF RFC 2119. On a somewhat related note of mashing up IEEE documents with other things, here's what happens when you run RFC 2119 through the Songify app from the "Autotune the News People": https://soundcloud.com/mpdehaan/rfc-2119
Now somewhat tempted to run the Ansible docs against the complete text of Ender's Game, but it's hard to beat Lovecraft :)
“This document is currently being used in production at several large sites,
but there are some experiences and intimations which scar too deeply to
permit of healing, and leave only such an added sensitiveness that memory
reinspires all the original horror.”
Markov chains are one of my favorite "simple" models. They are easy enough for someone with an introductory level of programming experience to understand, but they can provide a lot of entertainment and insight.
I wrote a Markov text generator in Lisp a few months ago (https://github.com/jl2/markov), and had fun generating text using some old sci-fi books from Project Gutenberg and some documentation we use at work (Fiber Channel and ISCSI specs), but the sentences mine generated weren't as coherent as these.
I'm curious if this is generating thousands of sentences and only posting the best, if it used the basic algorithm and a ton of sample text, or if it's using a more advanced algorithm.
I was planning on making mine use parts of speech to help avoid some of the nonsense sentences, but never got around to it. And it would be harder to find source text to feed into it.
It's a fairly trivial markov chain text generator that I manually scan for good results.
To make it easier, I've got it colorizing output based on the source corpus, so I can see where there's crossover. Then I just generate a wall of text and look for gems where the colors change.
[0] http://kingjamesprogramming.tumblr.com/