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


Posted in Python onMay 20, 2015

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

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

说明:

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程序设计有所帮助。

Python 相关文章推荐
Python实现把回车符\r\n转换成\n
Apr 23 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
说一说Python logging
Apr 15 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python中字符串类型json操作的注意事项
May 02 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
tensorflow更改变量的值实例
Jul 30 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
python 实现按对象传值
Dec 26 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
Python函数式编程中itertools模块详解
Sep 15 Python
Python中List.count()方法的使用教程
May 20 #Python
在Python中操作列表之List.append()方法的使用
May 20 #Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 #Python
python操作mongodb根据_id查询数据的实现方法
May 20 #Python
Python中列表的一些基本操作知识汇总
May 20 #Python
python对数组进行反转的方法
May 20 #Python
在Python中处理字符串之isdecimal()方法的使用
May 20 #Python
You might like
十天学会php之第九天
2006/10/09 PHP
消息持续发送的完整例子
2006/10/09 PHP
推荐php模板技术[转]
2007/01/04 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
javascript中的float运算精度实例分析
2010/08/21 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
python自动化办公操作PPT的实现
2021/02/05 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
老公给老婆的道歉信
2014/01/10 职场文书
陈欧广告词
2014/03/14 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
离婚案件答辩状
2015/05/22 职场文书
公司财务管理制度
2015/08/04 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP