「聊天机器人」一直是许多企业、学界在专研的东西,它可以用于许多用途上,例如淘宝会有机器人客服人员,会透过机器人来帮助你解决问题,又或者是很多聊天室都会有聊天机器人这种东西,例如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
领取专属 10元无门槛券
私享最新 技术干货