Re:Happy third birthday, Horse_ebooks
by simonw on Wednesday August 07, 2013 @02:38AM
(#6171222)
Have you played around with markov chains? They're really easy to build and produce very entertaining results - a few years ago I tried feeding all of the SXSW Interactive session titles in to one and got results like "Participatory budgeting crowdsourcing for real time marketing growing a digital culture".
[ Parent
| on HN ]
Can you suggest some good resources for newbies/laymen on the topic?
Edit - For anyone else who might be looking, this page gives a nice pythonic example:
http://agiliq.com/blog/2009/06/generating-pseudo-random-text...
Well, as a very rough overview, all they are is:
* read in words
* keep track of the frequency of "wordA wordB", "wordB wordC", etc.
* use that frequency, e.g.:
{ "wordA" : {"wordB" : 0.5,
"wordC" : 0.25, ...},
"wordB" : {"wordC" : 0.75, ...} }
combined with a word, say "wordA", and pick a
random word from the frequencies, weighted by frequency.
* your word is now the word you just picked. repeat that
last step until you get bored.
You can go 'up' and 'down' in how many layers of frequency you want to collect, like the frequency of individual word pairs, vs word triples {"wordA wordB" : {"wordC" : 0.25}, etc}, vs sentences, anything.The more you collect, the more 'real' your generation will tend to be, but it takes more data to train it effectively since you want lots of possibilities for each 'key' so it doesn't repeat itself. Otherwise it might think that the only thing that comes after 'key' so it doesn't repeat itself. Otherwise it might think that the only thing that comes after 'key' so it doesn't repeat itself. Otherwise it might think that the only thing that comes after 'key' is a single phrase, so it keeps selecting it and it doesn't sound like something anyone would actually say.