News for hackers. Stuff that matters.
Re:Happy third birthday, Horse_ebooks by d23 on Wednesday August 07, 2013 @09:10AM (#6172535)
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...

Re:Happy third birthday, Horse_ebooks by Groxx on Wednesday August 07, 2013 @07:12PM (#6176288)
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.