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