python实现马耳可夫链算法有个简便的方法,通过实现马耳可夫链算法,来通过输入的文本,“随机”的生成一些有用的文本。

Python举例实现马耳可夫链算法

说明:

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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。