python實現馬耳可夫鏈算法

ex7n 9年前發布 | 770 次閱讀 Python

import random
import sys

MAXGEN = 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!