python编写一个聊天机器人(不到20行代码用Python做一个智能聊天机器人)
python编写一个聊天机器人
不到20行代码用Python做一个智能聊天机器人
伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼前,聊天机器人就是其中最典型的应用,今天小编就带领大家用不到20行代码,运用两种方式搭建属于自己的聊天机器人。
1.神器wxpy库
首先,小编先向大家介绍一下本次运用到的python库,本次项目主要运用到的库有wxpy和chatterbot。
wxpy是在 itchat库 的基础上,通过大量接口优化,让模块变得简单易用,并进行了功能上的扩展。什么是接口优化呢,简单来说就是用户直接调用函数,并输入几个参数,就可以使用了,不需要关心函数的底层实现。
chatterbot是一个基于机器学习的聊天机器人引擎,基于python编写而成,它可以自可以从已有的对话中进行记忆匹配。
wxpy因为采用大量的接口集成,所以在使用的时候非常方便,下图是简单的wxpy使用,通过进入交互式界面,可以与指定的好友进行交谈。代码及效果如下图所示:
上述的代码中print_msg函数采用了wxpy库的装饰器,装饰器在这里的作用可以查阅其源码进行查看,主要是用于注册消息的配置。例如print_msg函数,可以将对方的回复消息进行输出。而在手机微信上我们同样看到了双方之间交流,所以从某个层面上来讲,wxpy就是pc端的微信。
2.图灵聊天机器人
下面我们将会实现第一个聊天机器人,该机器人是wxpy内集成的图灵机器人,由于图灵机器人的高度专业,所以制作出来的聊天机器人交流也非常的顺畅。那如何将图灵机器人嵌入到我们的交流中呢?首先我们需要去图灵机器人官网注册得到我们自己的机器人,注册完成后,我们便可以生成图灵机器人,并得到一个api_key,如下图所示:
这个api_key便是我们后续制作聊天机器人的关键。图灵聊天机器人的代码和效果图如下图所示:
由上图右边的聊天记录来看,依托图灵机器人的聊天机器人效果非常的出色,而且还可以进行天气查询等功能。
3.自己训练的聊天机器人
下面我们不依托于图灵机器人,而是依靠chatterbot来制作一款机器人,这款机器人,虽然效果较上一款性能差距较大,但是它可以训练我们自己的语料库,下面是代码和效果的展示。
由上图可以看出,或许是受制于语料库资源过少,而且也不能够主动上网查询。所以要想使其能够回答和提问基本吻合还需要大量的工作。
难道除了这些我们就没有其它可以做的了吗?当然不是,chatterbot为我们提供了可以训练的方式,我们可以提供素材来让其进行训练。代码和效果如下图所示:
我们首先定义了一个chatbot,然后将训练数据加入进去,让模型匹配我们的问题,得到训练的结果。
右边的图展示了我们的结果,由结果可以看出,由于我们的训练集中没有“在”这个数据,所以得到的回答很莫名其妙,而对于“你好”和“你叫什么名字?”这两个问题的回答则得到了很完美的答复,这就是加入训练数据集的优势所在。
|
trainer.train([ "你好" , "你好,很高兴认识你" , "你叫什么名字?" , "我叫chat-robot-2." ,]) |
(训练集的数据)
你也可以加入你想要训练的语料库进行训练,一样会得到不错的效果。有的同学可能会问这是如何训练的呢?答案就在chatterbot的源码里,打开源码我们可以这里的chatbot选择的训练方法是“bestmatch”,也即最匹配方式,从训练的对话中找到最相识的语句,然后根据对话提供回答。
总结
以上所述是小编给大家介绍的不到20行代码用python做一个智能聊天机器人,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:http://developer.51cto.com/art/201904/595281.htm
- python字典键对应的值(Python 互换字典的键值对实例)
- python中的数据类型和数字类型(Python数据类型之Number数字操作实例详解)
- python入门知识点总结(深入解析Python小白学习操作列表)
- python支持面向对象的程序设计(Python面向对象程序设计之类的定义与继承简单示例)
- java怎么调用支付宝的扫码支付(python实现银联支付和支付宝支付接入)
- python类定义(浅谈python新式类和旧式类区别)
- python 并发传输文件(python单线程文件传输的实例C/S)
- python中pip和pip3有什么区别(ISAPI-REWRITE伪静态规则写法以及说明)
- python爬虫面试经历(搞定这套Python爬虫面试题面试会so easy)
- python技巧图解(Python魔法方法功能与用法简介)
- python小程序编程代码(python实现烟花小程序)
- python怎么进行参数传递(在Python中如何传递任意数量的实参的示例代码)
- python基本运算符编程(对Python3 * 和 ** 运算符详解)
- python随机生成时间戳(python时间序列按频率生成日期的方法)
- python udp通信(Python socket模块实现的udp通信功能示例)
- python中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- 少儿口才表达影响未来一生,50首经典绕口令和孩子玩出聪明大脑(少儿口才表达影响未来一生)
- 玩网游居然让人更友善 很难以让人置信(玩网游居然让人更友善)
- 学好汉语拼音,从娃娃绕口令抓起,平时还是要多练 收藏好(从娃娃绕口令抓起)
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
热门推荐
- vue移动端图片放大效果实现(vue实现图片切换效果)
- docker如何进入容器中(修改已有docker容器中的内容方法)
- python外部如何调嵌套函数(python中嵌套函数的实操步骤)
- mysql 死锁产生的原因和必要条件(Mysql查看死锁与解除死锁的深入讲解)
- xampp安装后还用配置吗(如何用xampp建立数据库)
- 远程访问服务器网络方案(基于http.server搭建局域网服务器过程解析)
- docker搭建elasticsearch(docker安装ElasticSearch:7.8.0集群的详细教程)
- serv-u兼容性(解决IIS和Serv-U冲突的问题[Serv-U 7.0])
- 别让用户发呆,提升网站用户体验
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9