服务器之家

服务器之家 > 正文

python实现马耳可夫链算法实例分析

时间:2020-07-03 10:56     来源/作者:aiqier

本文实例讲述了python实现马耳可夫链算法的方法。分享给大家供大家参考。具体分析如下:

在《程序设计实践》(英文名《The Practice of Programming》)的书中,第三章分别用C语言,C++,AWK和Perl分别实现了马耳可夫链算法,来通过输入的文本,“随机”的生成一些有用的文本。

说明:

1. 程序使用了字典,字典和散列可不是一个东西,字典是键值对的集合,而散列是一种能够常数阶插入,删除,不过可以用散列来实现字典。
2. 字典的setdefault()方法使得程序少了许多条件判断。
3. random.choice()可以随机取出一个序列中的元素。
4. 每两个前缀词确定一个后缀。

实现代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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程序设计有所帮助。

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部