This article is an example of a python implementation of the Markov chain algorithm. Shared for your reference. Specific analysis is as follows:
In The Practice of Programming, Chapter 3 implements the Markov Chain Algorithm in C, C++, AWK, and Perl to "randomly" generate useful text from input.
Description:
1. The program uses a dictionary, which is not the same thing as a hash. A dictionary is a collection of key-value pairs, whereas a hash is a constant-order insertion, deletion, but a hash can be used to implement a dictionary.
2. The dictionary's setdefault() method makes the program much less conditional.
3. () can take out elements of a sequence at random.
4. Identify one suffix for every two prefix words.
Implementation Code:
import random import sys MAXGEN = 10000 NONWORD = '\n' w1 = w2 = NONWORD statetab = {} text = () words = () for word in words: ((w1, w2),[]).append(word) w1, w2 = w2, word # add tail ((w1, w2),[]).append(NONWORD) # show mar words w1 = w2 = NONWORD for i in xrange(MAXGEN): suf = statetab[(w1,w2)] t = (suf) if t == NONWORD: break print t w1, w2 = w2, t
I hope that what I have described in this article will help you in your Python programming.