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