趙玲玲,羅軍
(長江師范學院計算機工程學院,重慶408100)
基于Android的智能聊天機器人設(shè)計
趙玲玲,羅軍
(長江師范學院計算機工程學院,重慶408100)
在深入研究圖靈機器人API的基礎(chǔ)上,基于Android平臺,設(shè)計智能聊天機器人。借助圖靈機器人提供的訪問接口,實現(xiàn)人與聊天機器人的智能交互,還提供天氣、人物、歌詞等信息的查詢,以及聽音樂、講笑話、講故事等娛樂功能。經(jīng)測試,程序能在Android手機上正常運行,具有一定的應(yīng)用價值。
Android;圖靈機器人;API;語義理解;智能問答
近幾年,移動互聯(lián)網(wǎng)快速發(fā)展,截至2015年12月,我國手機網(wǎng)民規(guī)模達6.20億[1]?;邶嫶蟮木W(wǎng)民人數(shù),各種基于Android平臺的應(yīng)用軟件也相應(yīng)產(chǎn)生[2-3],影響著人們的生活,最為明顯的是“互聯(lián)網(wǎng)+”的出現(xiàn)和智能聊天機器人的創(chuàng)新結(jié)合[4],為廣大的互聯(lián)網(wǎng)用戶帶來了全新的應(yīng)用體驗[5-6],其中圖靈機器人[7]作為全球領(lǐng)先的中文語義與認知計算平臺就顯得尤為突出。自然地,圖靈機器人接口API也得到了人們的廣泛關(guān)注[8-9]。API又稱應(yīng)用程序編程接口,英文全稱為Application Programming Interface,它是一些提前就定義好的函數(shù),其作用在是某軟件或硬件的基礎(chǔ)上,不需要訪問源碼又不具體了解工作細節(jié)的前提下,提供應(yīng)用程序與開發(fā)人員訪問一組例程的能力。程序開發(fā)人員基于此接口大大減少程序代碼編寫量,但在程序功能實現(xiàn)方面帶給用戶更為全面、豐富和方便的體驗與享受。本文也將秉承這個理念,基于Android移動平臺[10],結(jié)合API接口設(shè)計實現(xiàn)了一個集實用工具、實時信息、休閑內(nèi)容、智能交互于一體的圖靈機器人手機應(yīng)用程序。經(jīng)過測試表明,該軟件具有一定的趣味性和實用性。
1.1Android簡介
Android是一個基于Linux的開源移動設(shè)備操作系統(tǒng),廣泛被用于智能手機和平板電腦。該平臺具體由四部分組成,分別為操作系統(tǒng)、中間件、用戶界面以及應(yīng)用軟件。Android平臺最具優(yōu)勢的特點是其豐富的硬件選擇及巧妙的程序整合。因為寬泛、自由的開發(fā)環(huán)境使得第三方開發(fā)商推出功能特色各具的產(chǎn)品,但在功能上的差異和特色卻不會對數(shù)據(jù)同步、軟件兼容產(chǎn)生影響。Android允許開發(fā)人員無縫結(jié)合Web瀏覽器、地圖、聊天、搜索等核心功能的應(yīng)用軟件安全的在程序中共享數(shù)據(jù)。
1.2圖靈機器人簡介
圖靈機器人是繼克服了以關(guān)鍵詞匹配技術(shù)難題的第一代機器人之后的第二代智能機器人開放平臺。圖靈機器人平臺是一個免費的API開放平臺,基于自然語言處理、知識庫和云計算等技術(shù),為廣大開發(fā)者、合作伙伴提供的一系列智能語義處理能力(包括語義理解、智能問答、知識庫對接等)的服務(wù)平臺。
圖靈機器人和其他智能聊天軟件相比還有一個優(yōu)勢就是其免費的開放了許多諸如天氣、公交、附近、音樂、講笑話、講故事等實用功能,這使得圖靈機器人在類似的軟件中獨樹一幟,也大大增加了自身市場競爭力和吸引力。
本次設(shè)計的目的是為用戶提供一個專屬個人的智能聊天服務(wù),主要包括以下幾個核心功能:
(1)智能交互:智能交互是智能聊天服務(wù)最基本的功能。程序主要在中文環(huán)境下運行,為用戶隨時隨地提供聊天服務(wù),以滿足用戶需求。智能交互含有智能聊天、智能問答、語義解釋三個模塊。用戶通過這個功能可以隨時隨地聊天,再也不用擔心自己的聊天信息打擾到別人,或者在想找人聊天的時候沒有人可以聊,無處傾訴。
(2)實用工具:為用戶提供計算器、百科、英漢互譯、歌詞、區(qū)號等查詢工具,用戶不用特意去百度或搜索,利用聊天的方式,輕松愉快地解決問題,便捷又有趣。
(3)實時信息:為用戶提供天氣、空氣質(zhì)量、氣象指數(shù)等實時信息,用戶可通過該功能及時的掌握周圍的天氣狀況,方便、安全的安排出行,避免因為不了解天氣給出行帶來的麻煩。
(4)休閑內(nèi)容:休閑內(nèi)容包括講笑話、講故事、詩詞等,讓用戶在匆忙快速的都市生活中得以片刻放松,為緊張的生活增添一些別樣的樂趣。
整個智能機器人服務(wù)程序的流程如圖1所示:
圖1 智能聊天機器人服務(wù)程序整體流程
在使用免費API接口提供的各種功能之前,先要在圖靈官網(wǎng)申請一個API KEY,才能在程序中進行API接入。
3.1智能聊天機器人程序布局設(shè)計
程序開始進入頁面的布局:主界面消息的顯示是一個ListView,不過這個ListView中的Item有兩種風格,需要重寫兩個方法,一個是左邊消息,一個是右邊的消息;再加一個消息框和發(fā)送消息的按鈕。
程序中還有一個發(fā)送方和接受方的頁面布局,里面各一個TextView,來發(fā)送和接受消息。布局效果如圖所示:
圖2 智能聊天機器人布局效果圖
3.2智能機器人服務(wù)程序各功能在Android終端的實現(xiàn)
智能聊天機器人程序的各個功能在Android終端的實現(xiàn)基本一樣。首先在程序中要有一個MainActivity,MainActivity中定義handleMessage()、onCreate()、initView()、Thread()和sendMessage()方法;除此之外,還需要創(chuàng)建一個ChatMessageAdapter適配器,并在適配器中定義getView()、getItem()、getItemViewType()、LayoutInflater,程序先調(diào)用LayoutInflater,找到并將將layout/下的xml布局文件實例化;再進行初始化界面,用findViewById()找到xml布局文件下的widget控件,將一個沒有被載入或者想要動態(tài)載入的界面調(diào)用LayoutInflater.inflate()載入,然后調(diào)用MainActiviyt.findView-ById()方法來獲得其中的界面元素。
然后進入程序的主界面,在消息框里輸入內(nèi)容,使用SendMsg靜態(tài)方法發(fā)送消息,在發(fā)送請求的過程中,程序也調(diào)用Thread()會判斷網(wǎng)絡(luò)是否開通,從而給出相應(yīng)的提示信息。若網(wǎng)絡(luò)開通,發(fā)送的消息訪問API,也就是一個Get請求,在這里用HttpUtils封裝了一個用于訪問API的工具類。在收到請求之后,API接口根據(jù)請求內(nèi)容的信息類型將返回應(yīng)數(shù)據(jù)信息,其中g(shù)etItemViewType()中定義接受信息為1,發(fā)送消息為0:
getItemViewType根據(jù)當時Item的position決定返回不同的整型變量。然后在getView中,根據(jù)消息的類型調(diào)用findViewById()加載不同的Item布局。
而返回的數(shù)據(jù)信息也直接封裝成ChatMessage,并顯示在界面上,最后用onCreate()保存信息。當下次再使用時,打開程序,程序初始化界面,再依照上面的步驟運行,實現(xiàn)智能聊天功能。
在vivo、華為、小米3等智能手機上對智能聊天機器人的各個功能進行了測試,各個功能測試結(jié)果如圖2所示。測試結(jié)果顯示,程序加載流暢且穩(wěn)定,各個功能模塊正常運行,能夠滿足用戶對智能聊天機器人的要求。
圖3 智能聊天機器人程序運行結(jié)果
基于Android,利用圖靈機器人提供的開放接口,完成了智能聊天機器人的設(shè)計與實現(xiàn)。主要介紹了程序各模塊的功能和實現(xiàn)過程,并展示了程序運行結(jié)果。通過在Android智能手機上的運行與測試表明,程序?qū)崿F(xiàn)了最初的功能設(shè)計,用戶隨時可以與機器人聊天,而且還能通過智能聊天機器人實時查詢消息,下一步將繼續(xù)美化程序界面,并豐富軟件的功能。
[1]第37次中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告[OL].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/.
[2]朱鳳山.Android移動應(yīng)用程序開發(fā)教程[M].北京:清華大學出版社,2014.
[3]苗忠良,曾旭,宛斌.深入Android應(yīng)用開發(fā)[M].北京:機械工業(yè)出版社,2012.
[4]吳志霞,陳平.圖靈智能機器人在基于Android招生咨詢平臺的研究與應(yīng)用[J].吉林:通化師范學院學報.2016/02.
[5]梁兆東,黃洋,朱土風.基于圖靈機器人的智能地震科普微信公眾號的實現(xiàn)[J].天津:信息系統(tǒng)工程.2016/01.
[6]劉玉剛,回新寧.基于Android平臺的閱讀學習軟件[J].計算機應(yīng)用于軟件,2014(05):256-259.
[7]圖靈機器人官網(wǎng)[OL].http://www.tuling123.com/html/doc/apikey.html
[8]百度百科[OL].http://baike.baidu.com/link?url=uuxzRYObFatabqhZSgWZRQxa50TjQPl7MCh43vlGgruKkxTv3zerHA2hi3ARuTy-
QTFYp9-xvjvwIncwoMVeFcKshuroVaMCEnS7vxPD_LJxYqBOYd0BnQnUlzpH2XXR.
[9]開源中國社區(qū)[OL].http://www.oschina.net/question/2012249_172055.
[10]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,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-),女,甘肅蘭州人,長江師范學院,學生,研究方向為專業(yè)為軟件工程
2016-06-14
2016-08-30
羅軍(1977-),男,四川渠縣人,長江師范學院,講師,碩士,研究方向為數(shù)據(jù)分析與處理