首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

轻松用python实现自己的聊天机器人

顾名思义,聊天机器人(chatbot)就是一个可以聊天的程序。当然,准确说就是一个用来模拟人类对话或聊天的程序,就像小冰,siri等。目前主要有三种实现方式,包括基于模板的、基于检索式的,基于生成式的。

目前较火的方法主要是生成式。这主要是采用一个机器翻译的框架——seq2seq模型,这个模型是google一个团队提出来用于机器翻译的,模型提出来之后,google翻译的效果是相当的好。当然seq2seq模型不只是只能用于机器翻译,他还能用于各种生成式的应用中,包括歌词生成,诗歌生成,对话生成等。

seq2seq模型,它是序列到序列的模型,序列,说白了就是一个数据序列,当你输入一个序列时,通过训练可以得到你想要的一个序列。就如你说一句话,就回复你一句话,你给一串英文,我就生成一串翻译的中文给你。当然这里面的训练不是这么简单,已经涉及了深度学习的知识了。它主要采用两个LSTM(长短时依赖神经网络),两个LSTM一个用于编码,一个用于译码。如下图:

我们就简单介绍一下seq2seq模型好了,毕竟我们不打算用seq2seq模型实现聊天机器人。因为这是相当不轻松的,笔者深有体会,以后我们再来详细介绍实现的细节。大家也可以查询相应的博客和论文,文末会有相应的论文推荐。

这里我们主要用市面上已经相当成熟的聊天机器人来实现我们自己的聊天机器人,这里我们使用的图灵机器人,大家也可以用小黄鸡等;

首先,我们需要安装两个python库,一个是requests库(这个库相当有用,可用于爬虫等,以后也会有介绍和应用),另外一个就是itchat(这个微信官方的一个库,可以用于个人微信的管理,包括群发等的实现),我们导入这些库,其中time库是用来控制回复消息时间的, 以下演示的代码中我们没有直接使用,大家可以在每个回复函数中使用time.sleep(1)来控制自动回复的时间,1表示1s。

下面的抹红部分,希望大家填写自己的key和userID,如果有麻烦的可以留言,也可以和我联系哦。

接下来,我们定义函数通过调用图灵机器人的api来获取对话回复。

然后,就是实现个人微信的自动回复功能了,这里我们只能处理文字信息:

当然,我们可以友好回复一些我们不能回复的信息,如下:

其中itchat.auto_login()函数中的enableCmdQR是用来控制二维码大小的,每种IDE显示的效果可能不一样,大家可以适当的调节,后面的hotReload是用于自动登陆的。

效果展示如下:

以上就是完整的代码阐述了,是不是很简单,如果学到了东西,请向大家推荐此公众号喽。

参考文献:

Sequence to Sequence Learning with Neural Networks.

Neural Responding Machine for Short-Text Conversation.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180305G1LIGH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券