赵玲玲,罗军
(长江师范学院计算机工程学院,重庆408100)
基于Android的智能聊天机器人设计
赵玲玲,罗军
(长江师范学院计算机工程学院,重庆408100)
在深入研究图灵机器人API的基础上,基于Android平台,设计智能聊天机器人。借助图灵机器人提供的访问接口,实现人与聊天机器人的智能交互,还提供天气、人物、歌词等信息的查询,以及听音乐、讲笑话、讲故事等娱乐功能。经测试,程序能在Android手机上正常运行,具有一定的应用价值。
Android;图灵机器人;API;语义理解;智能问答
近几年,移动互联网快速发展,截至2015年12月,我国手机网民规模达6.20亿[1]。基于庞大的网民人数,各种基于Android平台的应用软件也相应产生[2-3],影响着人们的生活,最为明显的是“互联网+”的出现和智能聊天机器人的创新结合[4],为广大的互联网用户带来了全新的应用体验[5-6],其中图灵机器人[7]作为全球领先的中文语义与认知计算平台就显得尤为突出。自然地,图灵机器人接口API也得到了人们的广泛关注[8-9]。API又称应用程序编程接口,英文全称为Application Programming Interface,它是一些提前就定义好的函数,其作用在是某软件或硬件的基础上,不需要访问源码又不具体了解工作细节的前提下,提供应用程序与开发人员访问一组例程的能力。程序开发人员基于此接口大大减少程序代码编写量,但在程序功能实现方面带给用户更为全面、丰富和方便的体验与享受。本文也将秉承这个理念,基于Android移动平台[10],结合API接口设计实现了一个集实用工具、实时信息、休闲内容、智能交互于一体的图灵机器人手机应用程序。经过测试表明,该软件具有一定的趣味性和实用性。
1.1Android简介
Android是一个基于Linux的开源移动设备操作系统,广泛被用于智能手机和平板电脑。该平台具体由四部分组成,分别为操作系统、中间件、用户界面以及应用软件。Android平台最具优势的特点是其丰富的硬件选择及巧妙的程序整合。因为宽泛、自由的开发环境使得第三方开发商推出功能特色各具的产品,但在功能上的差异和特色却不会对数据同步、软件兼容产生影响。Android允许开发人员无缝结合Web浏览器、地图、聊天、搜索等核心功能的应用软件安全的在程序中共享数据。
1.2图灵机器人简介
图灵机器人是继克服了以关键词匹配技术难题的第一代机器人之后的第二代智能机器人开放平台。图灵机器人平台是一个免费的API开放平台,基于自然语言处理、知识库和云计算等技术,为广大开发者、合作伙伴提供的一系列智能语义处理能力(包括语义理解、智能问答、知识库对接等)的服务平台。
图灵机器人和其他智能聊天软件相比还有一个优势就是其免费的开放了许多诸如天气、公交、附近、音乐、讲笑话、讲故事等实用功能,这使得图灵机器人在类似的软件中独树一帜,也大大增加了自身市场竞争力和吸引力。
本次设计的目的是为用户提供一个专属个人的智能聊天服务,主要包括以下几个核心功能:
(1)智能交互:智能交互是智能聊天服务最基本的功能。程序主要在中文环境下运行,为用户随时随地提供聊天服务,以满足用户需求。智能交互含有智能聊天、智能问答、语义解释三个模块。用户通过这个功能可以随时随地聊天,再也不用担心自己的聊天信息打扰到别人,或者在想找人聊天的时候没有人可以聊,无处倾诉。
(2)实用工具:为用户提供计算器、百科、英汉互译、歌词、区号等查询工具,用户不用特意去百度或搜索,利用聊天的方式,轻松愉快地解决问题,便捷又有趣。
(3)实时信息:为用户提供天气、空气质量、气象指数等实时信息,用户可通过该功能及时的掌握周围的天气状况,方便、安全的安排出行,避免因为不了解天气给出行带来的麻烦。
(4)休闲内容:休闲内容包括讲笑话、讲故事、诗词等,让用户在匆忙快速的都市生活中得以片刻放松,为紧张的生活增添一些别样的乐趣。
整个智能机器人服务程序的流程如图1所示:
图1 智能聊天机器人服务程序整体流程
在使用免费API接口提供的各种功能之前,先要在图灵官网申请一个API KEY,才能在程序中进行API接入。
3.1智能聊天机器人程序布局设计
程序开始进入页面的布局:主界面消息的显示是一个ListView,不过这个ListView中的Item有两种风格,需要重写两个方法,一个是左边消息,一个是右边的消息;再加一个消息框和发送消息的按钮。
程序中还有一个发送方和接受方的页面布局,里面各一个TextView,来发送和接受消息。布局效果如图所示:
图2 智能聊天机器人布局效果图
3.2智能机器人服务程序各功能在Android终端的实现
智能聊天机器人程序的各个功能在Android终端的实现基本一样。首先在程序中要有一个MainActivity,MainActivity中定义handleMessage()、onCreate()、initView()、Thread()和sendMessage()方法;除此之外,还需要创建一个ChatMessageAdapter适配器,并在适配器中定义getView()、getItem()、getItemViewType()、LayoutInflater,程序先调用LayoutInflater,找到并将将layout/下的xml布局文件实例化;再进行初始化界面,用findViewById()找到xml布局文件下的widget控件,将一个没有被载入或者想要动态载入的界面调用LayoutInflater.inflate()载入,然后调用MainActiviyt.findView-ById()方法来获得其中的界面元素。
然后进入程序的主界面,在消息框里输入内容,使用SendMsg静态方法发送消息,在发送请求的过程中,程序也调用Thread()会判断网络是否开通,从而给出相应的提示信息。若网络开通,发送的消息访问API,也就是一个Get请求,在这里用HttpUtils封装了一个用于访问API的工具类。在收到请求之后,API接口根据请求内容的信息类型将返回应数据信息,其中getItemViewType()中定义接受信息为1,发送消息为0:
getItemViewType根据当时Item的position决定返回不同的整型变量。然后在getView中,根据消息的类型调用findViewById()加载不同的Item布局。
而返回的数据信息也直接封装成ChatMessage,并显示在界面上,最后用onCreate()保存信息。当下次再使用时,打开程序,程序初始化界面,再依照上面的步骤运行,实现智能聊天功能。
在vivo、华为、小米3等智能手机上对智能聊天机器人的各个功能进行了测试,各个功能测试结果如图2所示。测试结果显示,程序加载流畅且稳定,各个功能模块正常运行,能够满足用户对智能聊天机器人的要求。
图3 智能聊天机器人程序运行结果
基于Android,利用图灵机器人提供的开放接口,完成了智能聊天机器人的设计与实现。主要介绍了程序各模块的功能和实现过程,并展示了程序运行结果。通过在Android智能手机上的运行与测试表明,程序实现了最初的功能设计,用户随时可以与机器人聊天,而且还能通过智能聊天机器人实时查询消息,下一步将继续美化程序界面,并丰富软件的功能。
[1]第37次中国互联网络发展状况统计报告[OL].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/.
[2]朱凤山.Android移动应用程序开发教程[M].北京:清华大学出版社,2014.
[3]苗忠良,曾旭,宛斌.深入Android应用开发[M].北京:机械工业出版社,2012.
[4]吴志霞,陈平.图灵智能机器人在基于Android招生咨询平台的研究与应用[J].吉林:通化师范学院学报.2016/02.
[5]梁兆东,黄洋,朱土风.基于图灵机器人的智能地震科普微信公众号的实现[J].天津:信息系统工程.2016/01.
[6]刘玉刚,回新宁.基于Android平台的阅读学习软件[J].计算机应用于软件,2014(05):256-259.
[7]图灵机器人官网[OL].http://www.tuling123.com/html/doc/apikey.html
[8]百度百科[OL].http://baike.baidu.com/link?url=uuxzRYObFatabqhZSgWZRQxa50TjQPl7MCh43vlGgruKkxTv3zerHA2hi3ARuTy-
QTFYp9-xvjvwIncwoMVeFcKshuroVaMCEnS7vxPD_LJxYqBOYd0BnQnUlzpH2XXR.
[9]开源中国社区[OL].http://www.oschina.net/question/2012249_172055.
[10]李刚.疯狂Android讲义[M].北京:电子工业出版社,2011.
Design of Intelligent Chat Robot Based on Android
ZHAO Ling-ling,LUO Jun
(College of Computer Engineering,Yangtze Normal University,Chongqing 408100)
On the basis of the further study of Turing robot,designs an intelligent chat robot based on Android platform.With the help of access interface provided by Turing robot,realizes the intelligent interaction with bot,provides the information such as weather,character,lyrics of the query,listening to music,telling jokes,telling stories,and entertainment functions,and so on.After the test,the program can run on the Android mobile phone normally,has a certain application value.
Android;Turing Robot;API;Semantic Understanding;Intelligent Question-Answer
1007-1423(2016)25-0079-04DOI:10.3969/j.issn.1007-1423.2016.25.018
赵玲玲(1992-),女,甘肃兰州人,长江师范学院,学生,研究方向为专业为软件工程
2016-06-14
2016-08-30
罗军(1977-),男,四川渠县人,长江师范学院,讲师,硕士,研究方向为数据分析与处理