Python的诗,用python写诗

  Python的诗,用python写诗

  上次聊天机器人关注度很高,阅读量也很大。(用不到20行代码用Python制作一个智能聊天机器人)。简单的聊天机器人可以用简单的代码实现。今天编辑带领大家将自然语言处理技术与聊天机器人相结合,自动打造诗词聊天机器人。

  1.原理介绍

  首先,要用自然语言处理的手段,让机器理解“诗句”,做出必要的诗句。如何让机器“理解”诗句?我们在深度学习中使用了长期和短期记忆网络(LSTM)。我觉得有点头晕。请不要担心。后面用白话解释一下。

  LTM是递归神经网络(RNN)的变体。RNN可以很好地解决自然语言处理的任务,但它不能很好地表达长依存句。例如:

  在上面的例子中,后面用“was”还是“were”取决于前面的单复数形式,但RNN不能很好地解决这个问题,因为“was”和“dog”之间的距离太长了。

  为了解决上述问题,LSTM被引进了。为了更直观的解释,这里有一个不恰当的例子:

  比如我们在看电影。我们可以通过换镜头来了解故事的进展。而且,随着故事的进行,我们可以知道人物的性格,年龄,喜好等。某个主角的。这些一旦场景切换就忘不了了。这些都是长期记忆。但是,当故事发生在特定的场合,比如下一张joy的照片:

  通过我们对这部动画的长期记忆,我们知道它是令人愉快的。在这个场景中,我们使用的是长时记忆中的“愉悦思维动作”的记忆。这个场景中需要用到的长时记忆叫做“工作记忆”。

  2.用白话解释LSTM

  LSTM是如何工作的?

  1)首先让LSTM学会遗忘。

  例如,在一个镜头结束后,LSTM必须忘记该镜头的位置、时间或所有信息。然而,如果一个演员收到了一个午餐盒,LSTM应该记得那个人收到了午餐盒。和看电影是一样的。我们会选择忘记一些记忆,留下必要的。因此,当有新的镜头输入时,LSTM应该有能力知道该记住什么,该忘记什么。

  2)接下来,添加预约机制。

  当LSTM输入新的快照信息时,LSTM应该了解哪些信息值得存储。然后根据前面两个,当输入一个新镜头时,LSTM会忘记那些不必要的长时记忆,学习它在输入镜头中有什么价值,并保存在长时记忆中。

  3 ).**需要知道长期记忆的哪些方面会被立即使用

  比如我们看到电影里有人写的东西,我们可以称之为年龄的长时记忆。小学生可能在做作业,大人可能在抄作业。然而,年龄信息可能与当前场景无关。

  4).因此,LSTM只是学习中需要注意的部分,而不是一次性使用所有的记忆。因此,LSTM可以很好地解决上述问题。下图显示了LSTM的形象。

  3.实战机器人

  作为实战的一部分,LSTM是非常有效的,但它仍然需要数据预处理。LSTM必须处理每个诗句的相同长度,并将汉字转换成数字格式。所以,如何预处理主要分为三个步骤:

  通过阅读资料,我们收集了大量的诗歌资料。

  统计每个单词出现的次数,取次数作为每个汉字的id。

  在生成大量数据时,需要将每个诗句的长度统一为相同的长度。所以长度不够的句子要用“*”来填充

  所以在表现* * * *的效果时,诗句中可能会出现“*”这个词。部分数据预处理代码如下图所示。

  在上面的代码中,主要完成了以下步骤:

  1)先读取数据,将语句限制在100个字符以上,删除100个字符后的部分。

  2).然后在每句话的开头和结尾加上“”和“$”作为句子的签名。直接删除语句的长度小于MIN_LENGTH。

  3)对经过* * * *处理的诗句统计字数,根据字数统计出现次数,将出现次数作为每个汉字的id。

  为了您的理解,我对数据预处理的代码进行了评论。对数据处理和理解python语句有帮助。

  在模型训练中,必须确保在计算机上设置了tensorflow和numpy库。模型训练完成后,我们可以直接调用模型,集成到我们的chatbot程序中,实现我们的chatbot(关于chatbot的介绍,可以参考文末的历史文章)。

  部分代码如下所示。

  4.效果显示

  说到这里,我们再来看看训练完的机器人创作诗歌的效果。

  图A显示了诗歌机器人的效果。机器人说:“请输入藏头诗的提示。”然后我们输入藏文诗词提示,机器人会创作出符合我们要求的藏文诗词。

  在照片B中,显示了单词“*”的存在。当然,从中国文化的深处来说,也受到了培训教材的制约。如果我们的诗集提示中有一个词没有出现在训练资料中,机器人会提示这个词不在词典中。

  如图C,红色部分表示处理异常情况,字典里没有!

  [责任编辑:包容摩托电话:(010) 68476606]

  叶昊0

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: