导语:
本文主要介绍了关于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
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python input()的特点10/31
- ♥ 什么是python格式字符串09/28
- ♥ python是函数式语言吗12/28
- ♥ 使用 python time() 方法09/11
- ♥ python如何判断key是否在字典中11/10
- ♥ 什么是python轮10/20
内容反馈