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

python

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

说明:

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

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

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

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

实现代码:

import random

import sys

MAXGEN = 10000

NONWORD = '

'

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举例实现马耳可夫链算法 的全部内容, 来源链接: utcz.com/z/523895.html

回到顶部