知行编程网知行编程网  2022-12-29 04:00 知行编程网 隐藏边栏  11 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python举例实现马耳可夫链算法的相关知识,希望可以帮到处于编程学习途中的小伙伴

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

实现马尔可夫链算法的Python例子


说明:

1.程序用到了字典,字典和hash不是一回事。字典是键值对的集合,哈希是一种可以按常量顺序插入和删除的方法,但是字典可以用哈希来实现。

2. 字典的setdefault()方法使得程序少了许多条件判断。

3. random.choice()可以随机取出一个序列中的元素。

4. 每两个前缀词确定一个后缀。


实现代码:

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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享