拥有自动学习的Python 机器人-ChatterBot

「聊天机器人」一直是许多企业、学界在专研的东西,它可以用于许多用途上,例如淘宝会有机器人客服人员,会透过机器人来帮助你解决问题,又或者是很多聊天室都会有聊天机器人这种东西,例如Line 当中有人制作出了「卡米狗」,透过与使用者聊天当中学习语具,并在对应的场合当中回应相对应的回答。

而ChatterBot是一个基于机器学习的聊天机器人引擎,使用Python作为主要基底语言,可以基于已知会话的集合生成回应,另外ChatterBot的语言独立设计允许它被训练以说任何语言。

在官方的GitHub 当中有一段范例:

user: Good morning! How are you doing?

bot: I am doing very well, thank you for asking.

user: You’re welcome.

bot: Do you like hats?

又或者说,曾经我有将ChatterBot结合到LineMessageAPI的范例当中:

范例

如果对于LineMessageAPI有兴趣的话,可以详情:Line Message API初战!

接下来我们开始来讲解该如何使用这套ChatterBot吧!首先我们必须要拥有Python,这边可能需要小小的注意一下说:

Python 3.x -> 可以支持中文。Python 2.x -> 可能没办法支持中文,会有编码上的问题。

再来你需要PyPi这套东西,然后透过它来下载:

安装完成之后,我们就可以开始透过Python来使用ChatterBot了!

让我们来看看简单的使用范例吧:

当然除了英文语言库外,还拥有中文语言库(简体中文)。

当然也不止这些,我们可以透过载入基本语言库、问候语言库、对话语言库,来让我们的机器人更加的智慧:

当然我们能够载入一些库,是不是代表说,在ChatterBot当中,有某个地方存放着这些库呢?我们打开ChatterBot专案底下的Corpus -> data资料夹,我们会发现有几些档案夹很熟悉呢!其中有一个档案夹叫做chinese,我们打开他后会发现:

看起来就像是普通的对话语句,不过设计经验上,会建议如果要自己建立语言库的话,conversations 的语句当中,最好是连续的对话。

看起来就是简单的一问一答,不过这种状况只在聊天刚开始的时候才会发生,就是简单的问候句。

很典型的问答,所以如果你想设计的是一个客服机器人的话,那你trivia 当中的内容就会比较多哦!

如果你已经设计好你的Corpus(库) 的话,我们就来实机测试看看吧!

使用时只要在终端机中下指令:

机器人就会立即回应你了,这方法是为了衔接之前的LineBOT 来实作,你可以使用PHP、JSP、ASP.NET 或Node.js 都可以,去呼叫这支Python 程式码,去启动这个机器人,并且获取回应回传到Line Server 当中,就完成简易又能自动学习对话的机器人了!

来源:https://kantai235.github.io/2017/03/16/ChatterBotTeaching/

学习Python和网络爬虫,关注公众号:datanami

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

扫码关注腾讯云开发者

领取腾讯云代金券