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