随着自然语言技术和机器学习技术的发展,越来越多有趣的自然语言小项目呈现在大家面前,聊天机器人正在最典型的应用,今天小编将带领大家用不到20行的代码,通过两种方式搭建自己的聊天机器人。一、神器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给我们提供了一种训练的方式,我们可以提供它训练的素材。代码及效果如下图所示:我们先定义一个聊天机器人,然后将训练数据加入其中,让模型匹配我们的问题,得到训练结果。右图显示了我们的结果。从结果可以看出,由于我们的训练集中没有“in”数据,所以得到的答案是莫名其妙的。对于两个“你好”和“你叫什么名字?”第一个问题已经回答的很好了,这就是加入训练数据集的好处。trainer.train(["Hello","Hello,nicetomeetyou","What'syourname?","Mynameischat-robot-2.",])(训练集的数据)你也可以添加你要训练的语料进行训练,会得到很好的结果。可能有同学会问这是怎么训练出来的?答案在chatterbot的源代码中。打开源码,我们可以在这里选择chatbot的训练方式为“BestMatch”,即最佳匹配方式。从训练对话中找到最佳匹配。熟悉陈述,然后根据对话提供答案。用Python做机器学习项目有意思吗?以上就是小编为大家带来的两款聊天机器人的设计图。赶快设计一个属于你的聊天机器人吧!
