找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 查看内容

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

作者:模板之家 2019-6-17 10:22 1880人关注

使用马耳可夫链算法对输入的文本随机生成有用的文本,使用Python利用random和sys模块对输入的文本进行切分处理,然后再添加特定的字符拼接形成新的文本返回输出。

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

说明:

1. 程序使用了字典,字典和散列可不是一个东西,字典是键值对的集合,而散列是一种能够常数阶插入,删除,不过可以用散列来实现字典。

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学习网

全部回复(0)