python实现马耳可夫链算法实例分析
本文实例讲述了python实现马耳可夫链算法的方法。分享给大家供大家参考。具体分析如下:
在《程序设计实践》(英文名《ThePracticeofProgramming》)的书中,第三章分别用C语言,C++,AWK和Perl分别实现了马耳可夫链算法,来通过输入的文本,“随机”的生成一些有用的文本。
说明:
1.程序使用了字典,字典和散列可不是一个东西,字典是键值对的集合,而散列是一种能够常数阶插入,删除,不过可以用散列来实现字典。
2.字典的setdefault()方法使得程序少了许多条件判断。
3.random.choice()可以随机取出一个序列中的元素。
4.每两个前缀词确定一个后缀。
实现代码:
importrandom
importsys
MAXGEN=10000
NONWORD='\n'
w1=w2=NONWORD
statetab={}
text=sys.stdin.read()
words=text.split()
forwordinwords:
statetab.setdefault((w1,w2),[]).append(word)
w1,w2=w2,word
#addtail
statetab.setdefault((w1,w2),[]).append(NONWORD)
#showmarwords
w1=w2=NONWORD
foriinxrange(MAXGEN):
suf=statetab[(w1,w2)]
t=random.choice(suf)
ift==NONWORD:
break
printt
w1,w2=w2,t
希望本文所述对大家的Python程序设计有所帮助。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西