加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

牛逼了,用Python写个会做诗的机器人

发布时间:2019-04-21 02:15:41 所属栏目:建站 来源:小安
导读:上一次的谈天呆板人,各人存眷度很是的高,阅读量破万了(不到20行代码,用Python做一个智能谈天呆板人),通过简朴的代码就能实现一个简朴的谈天呆板人,本日小编就教育各人,操作天然说话处理赏罚技能和谈天呆板人团结,做一个自动做诗的谈天呆板人。 1.道理介

上一次的谈天呆板人,各人存眷度很是的高,阅读量破万了(不到20行代码,用Python做一个智能谈天呆板人),通过简朴的代码就能实现一个简朴的谈天呆板人,本日小编就教育各人,操作天然说话处理赏罚技能和谈天呆板人团结,做一个自动做诗的谈天呆板人。

1.道理先容

起首,让呆板自动做诗,就必要运用天然说话处理赏罚的本领,让呆板可以或许学会领略“诗句”,进而做出我们必要的诗句。怎样让呆板“领略”诗句呢?我们用到了深度进修中的黑白期影象收集(LSTM)。有点晕,不要急,我们后头会用白话给各人表明。

LSTM是轮回神经收集(RNN)的一种变形,RNN可以或许很好的办理天然说话处理赏罚的使命,可是对付长依靠的句子示意却不是很好,譬喻:

牛逼了,用Python写个会做诗的呆板人

上面的例子中后头行使“was”照旧“were”取决于前面的单复数情势,可是因为“was”间隔“dog”间隔过长,以是RNN并不可以或许很好的办理这个题目。

为了办理上述的题目,便引入了LSTM,为了越发直观的表明,我这里引入一个不是很适当的例子:

好比我们正在看一场影戏,我们可以或许通过镜头的切换来相识故事的盼望。并且跟着故事的成长,我们会知道某些主角的性格,年数,兴趣等等,这些都不会跟着镜头的切换而立马被遗忘,这些就是恒久影象,而当故事产生在某个特定的场景下,好比下面乐陶陶的这张图:

通过我们对付这部动漫的恒久影象,我们知道这是乐陶陶在思索,而在这个镜头中,我们操作到了恒久影象中关于“乐陶陶思索举措”的影象,而在该镜头下必要被用到的恒久影象就被称为“事变影象”。

2.白话表明LSTM

那么LSTM是怎样事变的呢?

1).起首得让LSTM学会忘记

好比,当一个镜头竣事后,LSTM应该健忘该镜头的位置,时刻,可能说健忘该镜头的全部信息。可是假如产生某一演员领了盒饭的工作,那么LSTM就应该记着这小我私人已经领盒饭了,这也跟我们寓目影片一样,我们会选择健忘一些影象,而保存我们必要的影象。以是LSTM应该有手段知道当有新的镜头输入时,什么该记着,什么该健忘。

2).其次是添加保存机制

当LSTM输入新的镜头信息时,LSTM应该去进修什么样的信息值得行使和生涯。然后是按照前面的两条,当有新的镜头输入时,LSTM会忘记那些不必要的恒久影象,然后进修输入镜头中哪些值得行使,并将这些生涯到恒久影象傍边。

3).最后是必要知道恒久影象的哪些点要被当纵然用

好比,我们看到影片傍边有小我私人在写对象,那么我们也许会挪用年数这个恒久影象(小门生也许在写功课,而大人也许再写文案),可是年数信息跟当前的场景也许不相干。

4).因此LSTM只是进修它必要存眷的部门,而不是一次行使全部的影象。因此LSTM可以或许很好的办理上述的题目。下图是对付LSTM的一个很形象的展示:

3.拭魅战呆板人

下面即是拭魅战的环节,固然LSTM结果很是精彩,可是仍然必要对付数据的预处理赏罚事变,LSTM必要将每个诗句处理赏罚成沟通的长度,并且必要将汉字转换成为数字情势。那么怎样举办预处理赏罚呢,首要分为3步 :

  • 读入数据,我们网络了浩瀚的诗词数据
  • 统计每一个字呈现的次数,同时以其呈现的次数作为每个汉字的id。
  • 在发生批量数据的时辰,我们必要将每一个诗句的长度都同一到同样的长度,因此,对付长度不足的句子,我们会以“*”举办添补
  • 以是在最后的结果展示的时辰,也许在诗句中呈现“*”的字样。数据预处理赏罚的部门代码如下图所示:

上述的代码中首要完成了下面几步:

1).起首是读入数据,并将句长大于100的举办缩减,删掉100个字符后头的部门。

2).然后在每个句子的开头和末了插手‘^’和‘$’作为句子的符号。对付句长小于MIN_LENGTH的直接删除

3).最后将处理赏罚好的诗句,举办字数的统计,统计每个字呈现的次数,并凭证呈现的次数作为每个汉字的id。

对付数据预处理赏罚部门的代码,我都举办了注释,利便各人举办领略,对付我们对付数据处理赏罚,以及python语句的领略都有极大的辅佐。

模子的实习,必要确保电脑中已经设置了tensorflow和numpy库。当模子实习完成后,我们可以直接对付模子举办挪用,嵌入到我们的谈天呆板人措施中,来实现我们的谈天呆板人(对付谈天呆板人的先容,可以参照文末汗青文章)。

下面是部门代码的展示:

4. 结果展示

说了这么多,我们来看一些实习完的呆板人作诗的结果

在图A中展示了做诗呆板人结果,呆板人输出“请输入藏头诗提醒:”,当我们输入藏头诗提醒时,呆板人便会做出切合我们要求的藏头诗。

在图B中展示了有“*”字符存在的环境,虽然因为中汉文化的博大博识,也受制于实习资料的限定,当我们的藏头诗提醒中存在没有在实习资料里呈现的字符时,呆板人便会提醒该字符不在字典中,

在如图C中赤色标识出来的部门,会处理赏罚非常的环境,提醒不在字典中!

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读