欢迎来到山村网

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

2019-03-02 12:56:16浏览:939 来源:山村网   
核心摘要:  本文实例讲述了python实现马耳可夫链算法的方法。分享给大家供大家参考。具体分析如下:  在《程序设计实践》(英文名《The

  本文实例讲述了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程序设计有所帮助。

(责任编辑:豆豆)
下一篇:

在Python中操作列表之list.extend()方法的使用

上一篇:

Python中List.count()方法的使用教程

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com