python实现微信聊天机器人,用python做机器人
这是边肖推荐的第11个好句子。
资料来源:菜鸟学Python
作者:小安和小编
随着自然语言技术和机器学习技术的发展,越来越多有趣的自然语言项目出现在大家面前。聊天机器人就是最典型的应用之一。今天,边肖带领大家使用不到20行代码,通过两种方法构建自己的聊天机器人。
01
神器wxpy库
首先,编辑将介绍这次使用的python库。本项目使用的主库是wxpy和chatterbot。
wxpy是在 itchat库 的基础上通过大量的界面优化,模块简单易用,功能得到扩展。什么是界面优化?简单来说,用户可以直接调用函数,输入一些参数就可以使用了。不关心函数的基本实现。
Chatterbot是一个基于机器学习的聊天机器人引擎基于python编写,可以从已有的对话中进行内存匹配。
Wxpy在使用时非常有用,因为它使用了大量的接口集成。使用下图所示的简单Wxpy,进入交互界面就可以和指定的好友进行对话。并且代码效果如下图所示。
上面代码的print_msg函数使用了wxpy库中的decorator。这里装饰器的功能可以参考源代码来看,主要用于配置注册消息。比如print_msg函数可以输出对方的回复消息。在手机微信上,我们也看到双方的交流,所以在一定程度上,wxpy就是PC端的微信。
02
图灵聊天机器人
我们实现了第一个聊天机器人。这个机器人是集成在wxpy里的图灵机器人,是图灵机器人的资深专家,所以做出来的聊天机器人之间的交流也很流畅。怎样才能让图灵机器人融入我们的交流?首先你需要注册图灵机器人的主页,获得自己的机器人。注册后可以生成图灵自动机,得到api_key如下图所示。
这个api_key是我们以后做聊天机器人的关键。图灵聊天机器人的代码和效果图如下图所示:
从上图右侧的聊天记录来看,图灵机器人聊天机器人效果非常好,还可以进行天气查询等功能。
03
自己训练的聊天机器人
尽量不要依靠图灵机器人,而是依靠ChatterBot制造机器人。这个机器人,虽然效果较上一款性能差距较大,但是它可以训练我们自己的语料库
从上图可以看出,语料库资源太少,不一定能主动上网搜索。所以回答问题需要做大量的工作。
除了这些,还有什么可以做的吗?当然,ChatterBot为我们提供了训练的方法,我们也可以提供材料来训练它。并且代码效果如下图所示。
首先定义chatbot,加入训练数据使模型与问题一致,得到训练结果。
右图显示了我们的结果。从结果可以看出,由于我们的训练集中没有“在”的数据,所以答案是令人费解的,但是“你好”和“你叫什么名字?”这两个问题的答案都回答的很完美。这就是参与训练数据集的好处。
Trainer.train([你好,你好,很高兴见到你,你叫什么名字?,‘我是聊天机器人-2。,])
(训练集数据)
也可以加入想要训练的语料库进行训练。你也会得到好的结果。有些同学可能会问这是怎么训练的?答案就在chatterbot的源代码里。打开源代码后,chatbot这里可以选择的训练方式是“最佳匹配”。也就是说,它是最一致的方法。从训练好的对话中找出最熟悉的单词,并根据对话提供答案。
做Python机器学习项目有意思吗?这是编辑带给大家的两款聊天机器人的设计。让我们马上设计自己的聊天机器人。
近期热门:
神器软件推荐6款Sublime菜鸟必用的插件
3个月还没入门Python,看这100名小伙伴3周学Python的杰作
90%的人说Python程序慢,5大神招让你的代码像赛车一样跑起来
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。