分享好友 行情首页 行情分类 切换频道
用20行Python代码生成鸡汤,打造AI咪蒙指日可待
2025-01-03 00:48  浏览:72

先给大家分享点鸡汤:

“Don’t think of the overwhelming majority of the impossible.”

“不要去想不可能之事”

“Grew up your bliss and the world.”

“努力赢得自己的幸福和世界”

“what we would end create, creates the ground and you are the one to warm it”

“我们想要结束的创造却造就了大地,唯你抱以温情”

“look and give up in miracles”

“仰望奇迹,放弃幻想”

但其实上面这些鸡汤句子全都是电脑生成的,而且其生成鸡汤文所用的程序还不到 20 行 Python 代码。

一提到自然语言生成,人们通常会觉得这一定是很先进的 AI 系统,使用了很高级的数学知识。但是,事实并非如此。在本文我(作者 Ramtin Alami——译者注)会用马尔科夫链(Markov chains)和一个很小的鸡汤文数据集生成新的鸡汤文。

更多Python视频、源码、资料加群725638078免费获取

马尔科夫链是一种随机模型,能根据先前的事件单独预测一个事件。举个简单的例子,就用我家喵主子的生活状态转换解释一下吧。我家喵主子总是要么吃、要么睡、要么玩玩具。她大部分时间都是在睡觉,但是偶尔会睡醒起来用膳。通常,用膳过后她会倍儿精神,开始玩玩具,玩够了就回去睡,然后再睡醒去吃。

用马尔科夫链就能很容易地模拟出我家喵主人的生活状态,因为她会根据之前的状态决定下一步去干嘛。她一般不会醒来后直接去玩玩具,但是吃完东西后,有很大概率去玩一会。这些生活状态转换也可以用图表的形式表现出来:

 

每个椭圆代表一种生活状态,箭头所指的是下一个生活状态,箭头旁边的数字是指她从一种状态转到另一种状态的概率。我们可以看到,状态转换的概率基本上只根据上一种生活状态。

使用马尔科夫链生成文本也是采用了相同的理念,努力找到一个词出现在另一个词后面的概率。为了确认这些转换的可能性,我们用一些例句训练模型。

例如,我们使用下面这些句子训练模型:

我喜欢吃苹果(I like to eat apples)。 你吃橘子(You eat oranges)。

从上面这两个训练句子,我们可以总结出“I”(我),“like”(喜欢)和“eat”(吃)总是以相同的顺序出现,而“you”(你)和“eat”(吃)一直连在一起。但是“orange”(橘子)和“apples”(苹果)出现在词汇“eat”(吃)后面的几率是相等的。下面这个转换图表能更好地显示我上面讲的这一堆:

 

这两个训练句子能够生成两个新的句子,但是情况不总是这样。我用下面这四个句子训练了另一个模型,结果大不相同:

我朋友做出的树莓派在镇上最好(my friend makes the best raspberry pies in town)。 我觉得苹果派最好(i think apple pies are the best pies)。 史蒂夫觉得苹果做出的电脑在世界上最好(steve thinks apple makes the best computers in the world)。 我有两台电脑,它们不是苹果电脑,因为我既不是史蒂夫也不是大款(I own two computers and they’re not apple because I am not steve or rich)。

用这四个句子训练的模型的转换图表会大得多。

虽然图表和典型的马尔科夫链转换图表看起来大不一样,但两者背后的主要理念是一样的。

 

从起始节点开始的路径会随机选取接下来的词,一直到终端节点。词语之间相连路径的宽度表示词汇被选取的概率。

虽然只用四个句子训练,上面的模型却能够生成几百个不同的句子。

 

上面这个文本生成器的代码非常简单,除了Python的随机模块,不需要任何额外的模块或程序库。代码包含两部分,一个用来训练,另一个用来生成。

训练代码构造了我们稍后会用来生成鸡汤句的模型。我用了一个词典作为模型,其包含一些词汇作为关键点,还有一列可能跟随词作为对应值。例如,用上面“我喜欢吃苹果”(‘I like to eat apples’)和“你吃橘子”(You eat oranges)这两个句子训练的模型的词典会是这样:

 

我们不需要计算跟随词出现的概率,因为如果它们出现的概率较高,那么它们会在可能跟随词列表中多次出现。例如,如果我们想另外添加训练句子“我们吃苹果”(‘we eat apples’),词汇“苹果”(‘apples’)已经在两个句子中出现在词汇“吃”(eat)后面,那么它出现的概率就会很高。在该模型的词典中,如果在“吃”(eat)列表中出现两次就属于出现概率较高。

 

另外,在上面的模型词典中还有两个术语:“起始”(START)和“结束”(END),它们表示一个生成的句子的起始词和结束词。

 
 

生成器部分包含一个循环。它首先会选取一个随机的起始词并将其添加至一个列表,然后会在词典中所搜包含潜在跟随词的列表,并随机选取一个列表,将新的选取的词添加至该列表。生成器会一直选择随机的潜在跟随词直到找到结束词,然后会停止循环,输出生成的句子或所谓的“名言”。

 

我用马尔科夫链生成了不少鸡汤文,但是作为文本生成器,你可以输入任何文本,让它生成相似的句子。

用马尔科夫链文本生成器还可以做别的很酷的事情,就是混合不同的文本类型。例如,在我最喜欢的电视剧《瑞克和莫蒂》中,有个角色叫做“亚拉道夫·林肯勒”(Abradolf Lincler)就是用“亚拉伯罕·林肯”和“阿道夫·希特勒”两人的名字混合而成。

你也可以这么操作,把一些名人的名字输入马尔科夫链中,让它生成好玩的混合人物名,(比如郭达·斯坦森

 

尼古拉斯·赵四

 

甚至你还能更进一步,把一些名人的名言,比如上面说的林肯和希特勒的演讲句子用马尔科夫链混合后生成全新风格的演讲。

马尔科夫链几乎可以应用在所有领域,虽然文本生成并非最有用处的应用,但我确实觉得这项应用很有意思,万一你生产的鸡汤文有朝一日吸引来的粉丝比咪蒙还多呢?

更多Python视频、源码、资料加群725638078免费获取

    以上就是本篇文章【用20行Python代码生成鸡汤,打造AI咪蒙指日可待】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/9261.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
11月智能手机销量排行:华为四款旗舰备受瞩目手机排行「11月智能手机销量排行:华为四款旗舰备受瞩目」
年底的手机市场竞争空前激烈,各大厂商纷纷争抢最终的销售成绩。据最新数据显示,2024年11月国内智能手机销量排名的前20强中,华
10年前的AR游戏是什么样的老手机「10年前的AR游戏是什么样的」
现在,当我们谈论增强现实(Augmented Reality,AR)游戏的时候,脑海里跃出的是生动鲜活、叫声可爱的皮卡丘。AR游戏进化到这个
脂肪肝:四个民间中医方专治脂肪肝 | 民间中医趣话手机搜狐网「脂肪肝:四个民间中医方专治脂肪肝 | 民间中医趣话」
中医学苑 xyzych1988四个处方专治脂肪肝 脂肪肝是因脂质在肝内的堆积所致。根据肝细胞内脂滴大小不同,又可分为大泡性脂肪肝和小
车载手机支架固定方式有哪些车载手机支架「车载手机支架固定方式有哪些」
车载手机支架是为了方便驾驶员在行驶途中让手机放置在适当的位置,并方便拿下来或者直接进行操作,方便及安全是基本要求。车载手
小米SU7大定乌龙事件,不少误按锁定要求退定金,华为博主解析抢手机「小米SU7大定乌龙事件,不少误按锁定要求退定金,华为博主解析」
小米SU7发布开始大定,结果大定成绩非常好:4分钟大定破万,27分钟大定破5万。2万定金的创世版本是直接锁定无法退的,创世版本外
steam手机版官方正版steam手机版下载「steam手机版官方正版」
Steam手机版官方正版,由Valve Corporation精心开发,旨在为移动端用户带来该平台的核心体验。这一轻量级应用让用户能够轻松注册
【木】【漫画】写实向格斗漫画——捍卫圣域手机搜狐网「【木】【漫画】写实向格斗漫画——捍卫圣域」
《捍卫圣域HOLYLAND》是森恒二的出道作,根据自身少年街斗的经历和练习格斗技的经验创作的写实向格斗漫画。在阅读过程中,个人可
天津有位“落场版”球衣收藏达人手机搜狐网「天津有位“落场版”球衣收藏达人」
“落场版”球衣,啥意思,简单说,就是球员们赛后直接脱下来的比赛服,没洗过,带着“汗味儿和DNA”。早听说过国外有球迷专门收藏这种
steam官方手机版steam手机版下载「steam官方手机版」
Steam官方手机版是一款非常实用的游戏聚合平台,由著名的Valve Corporation开发。V社以其卓越的游戏开发而闻名,而Steam则是全球
steam手机版最新版steam手机版下载「steam手机版最新版」
steam手机版最新版是一款资源众多的游戏社交软件,用户可以在其中找到大量的游戏资源,这些都是免费的,最新的线下游戏资源会第
本企业新闻
推荐企业新闻
发表评论
0评