1基于Android平台的图书馆咨询机器人探究南京晓庄学院曹畋摘要:图书馆咨询业务正逐步向移动平台及7×24小时服务拓展,鉴于这种拓展需求的迫切性,笔者认为将智能手机及平板电脑上流行的Android平台与人工智能进行联合研究与设计,将有助于移动咨询业务的发展,快速的建立起能满足一般性需求的7×24小时移动咨询平台。本文尝试对基于Android平台的图书馆咨询机器人进行探究对必要性,算法选择,开发要点等都进行了有侧重的分析。关键字:Android移动咨询机器人1基于Android平台的必要性2014年5月29日,被誉为“互联网女皇”的玛丽·米克尔(MaryMeeker)公布了2014年的年度互联网趋势报告。报告显示(如图1)移动互联网使用量持续增长,占整体互联网的25%,去年这一数据为14%。[1]从数据中不难看出,全球移动业务的强劲增长及未来的发展潜力。图1主要国家移动设备操作系统市场份额对比图(2013年5月与2014年5月数据对比)另外,在2014年初,一份关于手机及平板操作系统市场占有比例的统计(如图2)中,Android的占有率从去年的68.8%上升到78.9%。从数据上看,Android平台占据了市场的主导地位,继续充当老大的角色。2图2全球移动设备操作系统市场份额表且不考虑高校手机的使用比例可能更高,单从以上图表中的数据就能直观的看出:研究基于Android平台的移动咨询具有广泛的现实意义,能最快的切合读者的需求。2从人工智能到图书馆咨询机器人ArtificialIntelligence即人工智能,是当今非常热、非常新的一门新科技。人工智能,下面简称AI,它可以在各种模拟、扩展人类智慧的领域发挥意想不到的作用。当然,AI也可认为是计算机科学的一个研究方向。计算机学派的科学家企图通过计算机设计出一种与人类智能相似的机器,这种机器能做出类似人的反应,从而取代人类工作。比如,阅读自然语言、识别图像、专家系统等都是AI领域研究的内容。[2]AI可分为强人工智能和弱人工智能,其中强人工智能的研究目前处于停滞状态。本文中基于Android平台的图书馆咨询机器人能为读者带来像真人提供参考咨询服务的感觉,就是借鉴了弱人工智能中的相关研究成果。不但如此,由于机器人可以不间断工作,图书馆咨询也就实现了7×24h“人工”服务。人工智能的机器人运用到图书馆咨询服务还能为图书馆凝聚人气,提升知名度。从2012年3月,被网友“教坏”,下岗一个多月的清华大学图书馆机器人“小图”重新上岗,一时间成为全国热议话题的事件中就可见一斑。且不论咨询机器人回答问题的准确度,仅在提升人气方面的能量就令人羡慕,难怪2014年5月29日,微软为Bing搜索拉升人气也发布一款智能聊天机器人,并取名“微软小冰”。图书馆咨询机器人引入到图书馆咨询业务中,不但能实现7×24h“人工”咨询服务,而且能为图书馆凝聚人气,提升知名度。既然图书馆咨询机器人能给图书馆带来那么多的好处,那么图书馆人还在等什么?3基于Android平台的图书馆咨询机器人探究3.1Android系统介绍当今最流行的移动操作系统——Android系统,是Google于2007年11月发布的基于Linux平台开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组3成。Android系统采用了一种名叫软件叠层(或叫软件堆层)的架构,英文名SoftwareStack。这种架构可以理解为三个层次。最底层即完成基本功能的层,该层实现硬件操作的部分,是以Linux为基础内核并采用C语言编译完成。中间层包括了一种VirtualMachine(虚拟机)机制和提供必要的Library(函数库),而该层则采用C++开发编译完成。最顶端的层,即是各种应用程序,人们常说的APP应用就在该层,比如通话、短信、股票、天气等,可以由其他各个公司甚至个人进行开发。在该层进行开发主要用到Java编写代码。这种新的三层结构的好处就包括:可以不受到过去影响创新的各种所有权问题的影响,从而实现平台的大开放状态。Android成功成为首个也是最大最成功的移动终端,真正实现“旧时王谢堂前燕,飞入寻常百姓家”,使得小成本和个人开发应用范围巨大的移动程序成为可能。不但如此,Google公司还不断扩大与各大硬件制造商,软件开发商,通信运营商等进行各个层次的交流合作,不断强化以Android系统为核心的移动产业生态系统。希望借此建立标准化、更加开放的移动电话软件平台。33.2聊天机器人关键算法选择目前,聊天机器人通常基于弱人工智能实现,而弱人工智能的实现离不开相似算法。相似度算法是前沿的课题,又包括语义相似度,文本相似度等很多类别。本文主要谈谈余玄相似度算法在图书聊天机器人中的应用。本聊天机器人的设计,利用了余弦相似性算法,即通过两个矢量内夹角的余弦值来衡量它们之间的相似性。大家知道任意角度的余弦值都小于1,因为0度角的余弦值等于1。同样的道理,任意角度的余弦值都必将大于-1。这样就可以通过比较两个矢量夹角度数的余弦值来判断两个矢量是否大致指向相同方向。比如余弦相似度的值为1就说明两个矢量在完全相同指向。余弦相似度的值为-1就说明两个矢量指向正好相反。余弦相似度的值为0,则说明两个矢量的角度为90°。在进行相似度比较时仅考虑向量的指向,而无需考虑模的大小。一般认为,两个矢量的夹角小于90°时,具有一定的相似性,即夹角余弦值在区间[0,1]。当然,这种夹角不光是在二维直角坐标中的夹角,任何的多维空间中的矢量都可以采用这种以余弦相似度值进行的向量比较。在实际的应用中,被检索的每个词条都对应不同的度数,每一个文档可以看作一个有权值的特征失量,而诸如词条在文档中出现的频率则可以决定权值的结算结果。这就是余弦相似度比较文档相似性的原理。在聊天机器人的设计中,可作为对比用户输入文档中提取的关键字和知识库对比的核心算法。两个向量间的余弦值可以很容易地通过使用欧几里德点积和量级公式推导:,鉴于两个向量的属性,A和B的余弦相似性θ用一个点积形式来表示其大小,4如下所示:4在实际应用中,首先建立cos(θ)值的倒排索引。这里假定相似性的下界为cos(θ)0.531。当然,具体数字应根据实际应用效果而定。通过用户一句问话中提取的关键词,在倒排表中索引到相应知识,然后对比用户问话中采用TF-IDF算法评估的关键词的数值与对应知识的TF-IDF值。把用户问句中的TF-IDF算法构建空间向量A,和倒排表中得到的知识的关键词TF-IDF值对应的空间向量B逐一代入公式匹配。取满足cos(θ)0.531的内容返回给用户。3.3Android手机与服务器数据交换开发要点基于Android平台的图书馆咨询平台通常使用Eclipse3.7.2,JDK1.6,AndroidSDK4.0,ADTPluginforEclips6.0作为开发环境。数据库可以选用SQLServer、Oracle等大型数据库。在客户端访问数据库进行数据交换时可以采用MyConDdataBase类进行数据交换,主要代码如下:PublicclassmyCconDataBase{Socketsocket=null;DatainputStreamdin=null;PubicMyConDataBase(Stringaddress,intport){Try{Socket=newSocket(address,port);Din=newDataInputStream(socket.getInputStream());Dout=newDataInputStream(socket.getInputStream());}catch(Exceptione){e.printStackTrace();}}PubicvoidBye(){Try{Dout.writeUTF(#USER_LOGOUT#;Din.close();Dout.close();Socket.close();Socket=null;}catch(Exceptione){e.printStackTrace();}5}}3.4利用Android平台与微信挂钩服务微信拥有庞大的用户群体。从腾讯内部人士通过网络透露的信息看,微信用户数至少已经突破6亿。从用户数来看,中国移动用户近年来增长乏力;其他两家运营商加起来用户还不到4亿。而微信用户保守估算的6亿用户,足以使之成为沟通领域国内第一大“运营商”。既然微信有如此举足轻重的地位,那么利用Android平台的图书馆咨询机器人如果不能和微信平台挂钩,将失去庞大的用户群,更何况图书馆咨询机器人本身对大数据的依赖,使得与微信挂钩服务成为迫在眉睫的任务。这里给出图书馆机器人APP和微信之间发送文本消息和回复文本消息的接口代码:发送文本消息接口代码:xmlToUserName![CDATA[toUser]]/ToUserNameFromUserName![CDATA[fromUser]]/FromUserNameCreateTime***********/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[thisisatest]]/ContentMsgId1234567890123456/MsgId/xml发送文本消息接口参数说明表参数描述ToUserName开发者微信号FromUserName发送方帐号(一个OpenID)CreateTime消息创建时间(整型)MsgTypetextContent文本消息内容MsgId消息id,64位整型回复文本消息的接口代码:xmlToUserName![CDATA[toUser]]/ToUserNameFromUserName![CDATA[fromUser]]/FromUserNameCreateTime12345678/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[content]]/ContentFuncFlag0/FuncFlag/xml回复文本消息接口参数说明表参数描述ToUserName接收方帐号(收到的OpenID)6FromUserName开发者微信号CreateTime消息创建时间MsgTypetextContent回复的消息内容FuncFlag位0x0001被标志时,星标刚收到的消息。可以预见的是:基于Android平台的图书馆咨询机器人在不久的将来,定能在图书馆移动咨询业务中担当举足轻重的角色。但对于Android平台的图书馆咨询机器人的探讨和探究应该是刚刚开始,本文的浅探仅仅是砖,希望能引出广大同仁真正的玉。参考文献:[1]中国新闻网.互联网女皇:BAT、搜狐进入全球十大网站[EB/OL].[2]维基百科.人工智能[EB/OL]人工智能,2014-10-5-[3]360百科.Android系统[EB/OL],2014-9-18[4]维基百科.余弦相似性[EB/OL]余弦相似性,2014-5-13-论文系南京晓庄学院校级科研青年项目成果之一,项目编号:2012NXY87(高校图书馆虚拟化建设及云应用研究)作者简介:姓名:曹畋(1981.8—);性别:男;职称:工程师;中国传媒大学工程硕士;主攻方向:图书馆信息化、多媒体、新媒体研究联系电话:18914773634;E-mail地址:jchct@126.com