python實現馬耳可夫鏈算法
import random import sysMAXGEN = 10000 NONWORD = '\n' w1 = w2 = NONWORD
statetab = {} text = sys.stdin.read() words = text.split() for word in words: statetab.setdefault((w1, w2),[]).append(word) w1, w2 = w2, word
add tail
statetab.setdefault((w1, w2),[]).append(NONWORD)
show mar words
w1 = w2 = NONWORD for i in xrange(MAXGEN): suf = statetab[(w1,w2)] t = random.choice(suf) if t == NONWORD: break print t w1, w2 = w2, t </pre>
本文由用戶 ex7n 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!