码迷,mamicode.com
首页 > 其他好文 > 详细

使用马尔科夫链生成文本

时间:2018-11-04 21:52:56      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:info   generate   现在   image   env   else   pen   dom   odi   

马尔科夫链是一种随机模型,能根据先前的事件单独预测一个时间。

用马尔科夫链生成文本也是采用了相同的理念,努力找到一个词出现在另一个词后面的概率。

技术分享图片

代码包含两部分,一个用来训练,一个用来生成

#!/usr/bin/env python
# coding:utf8
# author:Z time:2018/10/27

import random
#训练模型 model
={START: [i, you], i: [like], like: [to], to: [eat], you: [eat], eat: [apples,oranges],END: [apples,oranges]} #上面的模型词典中还有两个术语:“起始”(START)和“结束”(END),它们表示一个生成的句子的起始词和结束词
#生成鸡汤句 generated
= [] while True: if not generated: words = model[START]#[‘i‘, ‘you‘] elif generated[-1] in model[END]: break else: words = model[generated[-1]] generated.append(random.choice(words)) print(generated)
#生成器部分包含一个循环。它首先会选取一个随机的起始词并将其添加至一个列表,然后会在词典中所搜包含潜在跟随词的列表,并随机选取一个列表,将新的选取的词添加至该列表。生成器#会一直选择随机的潜在跟随词直到找到结束词,然后会停止循环,输出生成的句子或所谓的“名言”

 

使用马尔科夫链生成文本

标签:info   generate   现在   image   env   else   pen   dom   odi   

原文地址:https://www.cnblogs.com/z-x-y/p/9905996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!