趙玲玲,羅軍
(長江師范學院計算機工程學院,重慶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-),男,四川渠縣人,長江師范學院,講師,碩士,研究方向為數據分析與處理