摘 要: 通過手機管理日常事務,已成為快節(jié)奏生活狀態(tài)下人們的首選。與傳統(tǒng)的手動添加日程不同,為了提高日程管理效率,依據(jù)GTD時間管理理念,設計和實現(xiàn)基于短信內(nèi)容解析的日程助手軟件。通過短信監(jiān)聽,采用分詞算法對短信文本進行解析,提取出事務日程信息,自動加入到Android手機自帶谷歌日歷的待辦事項,為用戶提供了短信日程自動記錄、提醒等功能。方便了用戶收集日程任務,提高了時間管理效率。
關鍵詞: GTD;Android;短信監(jiān)聽;文本解析;日程助手
0 引言
信息時代,手機已影響到人們?nèi)粘I畹姆椒矫婷妗!?014年中美移動互聯(lián)網(wǎng)調(diào)查報告》[1]顯示,70%以上的移動互聯(lián)網(wǎng)用戶對智能手機有依賴性,用戶通過手機進行通訊、瀏覽信息、收發(fā)郵件、社交等活動。Android系統(tǒng)是Google公司推出的以移動互聯(lián)網(wǎng)業(yè)務為核心的智能終端開源平臺[2]。目前在中國市場上,Android系統(tǒng)的智能手機占有83.6%的移動互聯(lián)網(wǎng)終端市場[3]。
短信息社交是一項傳達準確、接收及時、回饋迅速的高效社交方式。通過短信息發(fā)送活動通知已成為很多組織活動很重要的一項工作。特別是一些服務商推出的短信群發(fā)的社交軟件,比如飛信、超信等,這些軟件為組織機構提供了方便快捷的事務通知等功能。
Allan提出的GTD(Getting Things Done)[4]理念,是近年來很多公司和個人較為推崇的一種時間管理理念,其主要通過收集、整理、組織、執(zhí)行、回顧5個步驟來管理個人時間。
市場上也出現(xiàn)了一系列的時間管理軟件來管理日程計劃[5],這些軟件的著眼點是定時提醒,一般都需要安裝應用程序(APP),尚未發(fā)現(xiàn)從接收短信中提取出日程安排信息,自動添加進日歷待辦事項中Android移動日程應用。
為了使用戶更好地安排好自己的日常學習和生活,設計和實現(xiàn)了基于GTD時間管理理念,基于短信內(nèi)容解析的大學生日程助手軟件。采用短信監(jiān)聽技術,通過短信接收日程安排,解析短信文本,提取待辦事項內(nèi)容,并自動添加進Android手機自帶的谷歌日歷待辦事項中,到時提醒。
1 模塊設計
該日程助手軟件主要分三個模塊,如圖1所示。短信監(jiān)聽模塊實現(xiàn)對手機接收短信的監(jiān)聽和記錄。日歷提醒模塊包括信息提取、鬧鐘提醒和自定義設置,信息提取模塊包括提取原文和提取屬性,提取的原文通過解析抽取后,形成日程的基本屬性信息,提取的屬性包括短信息的發(fā)送時間、發(fā)送人等。經(jīng)過提取解析后的事務相關內(nèi)容加載到日歷待辦事項當中,另外,用戶還可以根據(jù)自己的需求,對鬧鐘提醒進行再管理設置。自定義設置為用戶提供了一些定制的自定義功能,如很多單位和機構以“周”作為時間單位,自定義可以設置第一周的時間點。模板回復模塊包括快速回復和模板管理,快速回復為用戶提供采用已有的模板進行快速回復功能,模板管理模塊為用戶提供自行增加、刪除和修改的管理功能。
2 核心流程
根據(jù)GTD的5個步驟(收集、整理、組織、執(zhí)行、回顧),設計、分析手機日程助手軟件的流程。日程助手軟件先通過監(jiān)聽短信,獲取新收短信息;遵照用戶意愿,確定是否加入日歷提醒,對于需要進行日程安排的短信,解析短信內(nèi)容及屬性,使用分詞技術進行匹配,提取出事務關鍵信息,包括時間、地點、備注等;然后加入到Android手機自帶Google日歷中,到時提醒。系統(tǒng)的核心流程如圖2所示。
3 關鍵技術
3.1 短信監(jiān)聽
在Android系統(tǒng)中,電話的接收和短信的接收都會產(chǎn)生一個廣播,通過監(jiān)聽這些廣播可以對電話、短信做出程序邏輯的處理。通過接收Android系統(tǒng)的短信廣播方式監(jiān)聽短信,操作方便,適合簡單的短信處理。
短信廣播是一種有序廣播,它會先發(fā)送給優(yōu)先級最高的那個Receiver,設置代碼中SmsReceiver的優(yōu)先級為800:<intent-filter android:priority="800">。這個優(yōu)先級比原有接收短信軟件優(yōu)先級高。所以SmsReceiver接收到了短信,起到攔截短信的作用。
另外,接收短信需要權限,需要在AndroidManifest.xml中配置:<uses-permission android:name="android.permission.RECEIVE_SMS"/>。
3.2 短信內(nèi)容解析
解析短信內(nèi)容,即運用工具從短信文本中選取與待辦事項有關的時間、地點等信息。先要根據(jù)需求,建立日程信息詞典,再運用匹配技術,在短信文本中搜尋符合詞典中詞條的文本。
根據(jù)信息處理需求,按照特定規(guī)范,要對全部短信內(nèi)容進行切分,即分詞。采用好的分詞算法可以得到準確的時間相關詞以及事項關鍵詞。目前分詞算法主要分為三大類:基于字符串匹配的分詞方法、基于詞頻度統(tǒng)計的分詞方法和基于知識理解的分詞方法[6]。第一類方法基于詞典詞條,若在詞典中找到某個字符串,則匹配成功。這類方法實現(xiàn)簡單,分詞效率較高。第二類基于統(tǒng)計的分詞方法則基于字和詞的統(tǒng)計信息,由于這些信息是通過調(diào)查真實語料而取得的,因而具有較好的實用性。第三類基于知識理解的分詞方法是讓計算機模擬人類的思想語言邏輯對句子理解劃分,達到分詞效果。
對于日常事務通知,短信內(nèi)容一般不會很長,多數(shù)主題明確,地點也多有重復,日程信息詞典詞條數(shù)量不大,因此設計使用基于字符串匹配的分詞技術,將詞典中的所有詞按由長到短的順序在短信中逐詞遍歷搜索,進行匹配,直至文本結束。再配合對時間格式的匹配,短信的重要信息就可以被輕松獲取。
短信息發(fā)送方不統(tǒng)一,文本編排風格各異,日常通知短信息中,待辦事項文本結構復雜。因此,采用正則表達式設計查找時間復雜字符串的規(guī)則。正則表達式對復雜規(guī)則的字符串的查找效率高,用法靈活,語句簡單[7]。
設計提取時間內(nèi)容的正則表達式為:((本|下)?(周|(星期))*(一|二|三|四|五|六|日)|[今明后]天)|((1?[0-9])|(十*[(一|二|三|四|五|六|七|八|九)]))月(([1-3]?[0-9])|([二三]十*[(一|二|三|四|五|六|七|八|九)]))(日|號)。
例如:“后天中午十二點在一號樓111開會”,分詞后得到“后天”、“中午”、“十二點”、“一號樓”、“111”、“開會”這些詞語。按照正則表達式取出時間關鍵詞,計算出時間,然后取出剩下的地點信息。
3.3 傳值方法
基于以上技術實現(xiàn)整體軟件,其中重要的一點就是對數(shù)值的傳遞和使用。
采取Bundle方法在不同Activity之間傳遞短信內(nèi)容,然后再對數(shù)據(jù)進行處理。它的數(shù)據(jù)不是持久化狀態(tài)。在對用戶設置的屬性進行保存時使用sharePreferences方法,它簡單地存儲持久化的設置,就像用戶每次打開應用程序時的主頁,它只是通過一些簡單的鍵值對來操作。它將數(shù)據(jù)保存在一個XML文件中。通過系統(tǒng)的shared框架,用key-value進行值的增刪改查。在對短信和快捷回復的保存中使用SQlite。
4 實現(xiàn)
系統(tǒng)主要實現(xiàn)了短信息的監(jiān)聽、事務內(nèi)容提取及加入日歷提醒等功能。在系統(tǒng)啟動后會自動進入監(jiān)聽模式,對于新短信息則會自動彈出提示窗口,提示用戶是否要將此信息內(nèi)容加入到日歷中,同時為用戶提供快速回復和模板回復功能,監(jiān)聽界面如圖3。
如果用戶選擇“加入日歷”,則對短信息內(nèi)容進行解析和提取,提取出事務信息和整個短信內(nèi)容,進入“確認加入”界面,如圖4。用戶可以對信息進行進一步編輯,同時可以選擇是否有鈴聲提示及鬧鐘提示間隔時間等。確認加入后,系統(tǒng)調(diào)用Android系統(tǒng)提供的日歷接口,將日程待辦事項信息加入到手機日歷中,如圖5。
5 結論
針對日常繁瑣的事務,整合了當前領先的GTD時間管理理念于軟件設計中,通過監(jiān)聽事務短信,使用基于字符串匹配的分詞算法及正則表達式提取新短信息中的事務相關信息,能夠較準確地提取出事務信息,加入到手機自帶日歷中,實現(xiàn)到時提醒?;诙绦艃?nèi)容解析的手機日程管理軟件可以幫助用戶快速建立日程計劃,降低人工操作的錯誤率,降低手機負載,大大縮短時間,提高辦事效率。
參考文獻
[1] 于俊杰.2014年中美移動互聯(lián)網(wǎng)調(diào)查報告[EB/OL].(2014-11-20)[2015-2-10].http://tech.sina.com.cn/i/2014-11-20/14339810372.shtml.
[2] Android project official. Android project [EB/OL].(2008-9-1)[2015-2-10] http://www.android.com/2008.
[3] Sui Linda. China Smartphone Vendor and OS Marketshare [EB/OL].(2014-11-3)[2015-2-10] http://www.strategyanalytics.com/default.aspx?mod=reportabstractviewer&a0=10248.
[4] ALLEN D. Getting Things Done: the art of stress-free productivity[M]. Penguin Books, 2002.
[5] 林鴻.基于Android的班級智能日程安排系統(tǒng)的設計與開發(fā)[J].福建電腦,2014,30(1):151-153.
[6] 黎佳.淺談中文切詞算法[J].軟件,2013,34(7):75-76.
[7] 劉楊,陳暉,陳遠江.中文文本信息過濾技術研究[J].船電技術,2010,30(7):58-61.