• 技术文章 >Python技术 >Python高级

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

    PythonPython2019-06-17 10:22:08原创3458
    python实现马耳可夫链算法有个简便的方法,通过实现马耳可夫链算法,来通过输入的文本,“随机”的生成一些有用的文本。

    说明:

    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解析nginx日志示例 下一篇:Python中的多态怎么理解?

    相关文章推荐

    • 举例说明Python中常见的数制转换• Python脚本绘制验证码• 用Python举例实现逆波兰表达式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网