劉勝娃 李衛 王敏 高翔

摘 要: 基于智能手機的移動數據交互平臺作為衛星網絡通信的重要補充手段,近期在各鉆井隊普及起來。該系統的核心功能之一是對接收到的短信進行是否為垃圾短信的判別和分類。介紹了該核心功能的設計與實現,在參考現有成熟算法的基礎上,進行了優化和集成。實際應用結果表明,該實現方法取得了令人滿意的效果。
關鍵詞: 移動數據; 垃圾短信; 短信分類; 關鍵詞提取
中圖分類號: TN929.53?34; TP309 文獻標識碼: A 文章編號: 1004?373X(2015)19?0054?03
Abstract: Since mobile data interaction platform based on smart phone is an important supplement means of satellite network communication, which is widely used in many drilling teams. One of the core function of this system is to identify and classify if the received SMS is the spam SMS. The design and implementation of this core function is introduced. On the basis of the existing mature algorithms, the system was integrated and optimized. The practical application results show that this method can achieve satisfactory effect.
Keywords: mobile data; spam SMS; SMS classification; keyword extraction
0 引 言
長慶鉆井公司覆蓋的地域面積十分遼闊,鉆井隊的分布也很分散,信息化的水平亦參差不齊,難以保證每個鉆井隊的現場都有良好的衛星上網環境,順暢的上傳和下載數據。因此,開發了鉆井生產現場移動數據交互系統,該系統的投入使用使一線井隊的信息員在沒有衛星上網環境的條件下,仍然可以通過智能手機發送短信和彩信的方式提交現場工況數據,匯報突發情況,傳送現場照片。該系統作為衛星上網手段的有力補充,為井隊的信息員提供了新型的信息交互手段,與衛星上網相比,該方法不受天氣影響和場地限制,并且智能手機大量普及,因而無需組織專門的培訓即可迅速上手使用。
在鉆井生產現場移動數據交互系統中,通過在服務器上外接短信貓來實現接收短信收發功能,其中一個核心功能就是對所有接收到的短信進行分類,區分出垃圾短信并加以屏蔽;對有效短信則根據其內容進行智能分類,然后存放到對應的數據庫表中,并推送給對口的領導。
1 信息處理流程
如圖1所示,短信貓從偵聽端口中接收短信,并將其存儲到臨時信息庫中待處理,服務器中的監測程序捕獲到信息入庫的事件后就對新入庫的短信條目啟動預處理程序。首先根據設定好的垃圾短信特征進行模式匹配,當符合度超過給定閾值即標志為垃圾短信,主動丟棄該短信數據,將其從臨時信息庫中刪除,移入到回收站庫表里,5天后自動清空。同時把發送垃圾短信的手機號拉入黑名單庫表中,以后自動拒收該手機發送的任何信息。
對于通過檢測認定為非垃圾短信的數據則進行下一步處理——關鍵詞提取,即通過對整篇文字的掃描找出高頻詞,用高頻詞標識原有的短信息,為智能分類提供依據。
經過高頻詞篩選的步驟后,即采用改進的KNN算法對新增的信息進行分類操作,將其劃分到最接近的類別中,由于單純的人工智能不可避免的會出現誤判,因此在系統運行初期,還需要人為的介入來對分類結果進行審核,企業中專門為此設置了一個信息專員的崗位,用于手動修改錯誤的分類,分類的結果將指導KNN算法重新計算并更新分類中心。隨著訓練數據的不斷積累,該系統將完成分類中心的計算并趨于一個穩定值的向量作為該分類的中心。
2 功能模塊的設計實現
2.1 垃圾短信的判別
系統中設計了白名單與黑名單兩個庫表,對新接收的短信首先提取出發送號碼,分別與黑名單和白名單中的號碼進行比對,如果發送號碼在黑名單中,則該短信丟棄,從臨時信息表中移入到回收站表中;如果發送號碼在白名單中,則直接進入到關鍵詞提取模塊中進行處理;如果在白名單和黑名單中都找不到發送方的號碼,則采用垃圾短信判別方法對其進行鑒別。
當前有很多比較成熟的垃圾郵件判定算法,例如Spam Assassin和Brignmail算法都是基于規則的,這些規則可以是郵件發送方、關鍵詞、特定的詞匯或特殊的文本格式。相較于垃圾郵件的檢測,垃圾短信的檢測更簡單一些,主要原因是:
(1) 短信通常只有發送者的手機號碼和比較簡單的文字,很少像Email那樣具有大量的文字和豐富的信息,例如在附件中添加的文檔、圖片等。這可以大大減少所需的規則數量。
(2) 短消息的長度相對Email要短得多,一般限制為70 個中文字符。短信文本提供的可用文字信息更少,需要結合短信中的其他可用特征實現判定。
(3) 垃圾短信的處理方法有兩種:一種是由SMSC(短信服務中心)完成處理;另一種方法是在服務器上編制過濾檢測程序來實現。第一種方法,在短信中心過濾可能導致被誤判錯誤分類的信息無法到達入庫分類并推送給用戶,因此采取第二種方法解決這個問題。此外,過濾檢測程序要有較好的實時性,能夠在短時間處理及時完成檢測,否則將影響信息的后繼處理,降低了系統的實時性。endprint
垃圾短信與正常短信具有一些明顯的差異,垃圾短信中常常包含“中獎”,“贈送”,銀行賬號等信息,或者包含反動言論的敏感詞匯。這些特征都可以作為篩選的依據,通過與用戶設定好的敏感詞匯庫進行比對,得出該短信的可疑程度,當超過給定閾值時,就對其進行標識,并提交給信息專員進行判定,人工確定后即放棄該信息。未超過給定可疑閾值的則進行下一步分類處理。
2.2 關鍵詞提取
為了對收集到的短信進行準確分類,就必須解決短信中的高頻關鍵詞的提取問題。與傳統的垂直引擎提取關鍵詞的算法不同,本文中以半結構化和非結構化的短信為主,寫作比較隨意,使用傳統的分詞方法很難準確劃分出常用詞,影響了關鍵詞提取的質量。這就需要在使用垂直引擎之前還要加入結構化和除噪的預處理過程。針對這個問題,在短信的預處理階段需要通過文檔規范化來解決非結構化和半結構化短信的去噪問題,利用客戶提供的領域專業詞匯庫進行分詞。這需要解決兩個關鍵問題:如何從短信中提取詞語構建關鍵詞的候選集;在候選集中選取哪些詞語作為標識該短信的關鍵詞標簽。
關鍵詞候選集的構建采用的是基于特征選擇的方法,通過給不同的高頻詞賦予不同的權值來計算其是否為合適的關鍵詞。在本系統中采用了當下比較成熟且較通用的統計方法實現,該方法主要通過統計詞語出現的頻度和集成學習算法(如Bagging 算法)篩選出表示短信的特征項。
統計算法選用的是TF?IDF算法,該算法的復雜度僅為[O(n),]實現便捷,不需要任何先驗知識,不考慮句式、語法、段落、詞性和出現位置,僅僅掃描一遍即可獲得短信中的所有高頻詞匯,并給出具體頻度,還可以自動剔除短信中出現的感嘆詞、副詞、動詞、連接詞等,只保留名詞。該方法實現簡單,但是精度卻難以滿足要求,因此需要結合其他方法改進效果。
除了統計算法外,還集成了賦詞的方法提取特征,這種方法的效果主要取決于領域專家構建的敘詞詞庫、本體和知識庫的質量。該方法準確率高、專業性好,還能為用戶的語義搜索提供條件。但是專業的敘詞詞典僅憑鉆井公司的信息專員難以構建完整,因此采用了中國知網的專業詞庫作為基礎,自行添加和維護該專業詞庫。在進行詞語比對時,按照就長不就短的方法,盡可能提取出長的關鍵詞達到更好的分類效果。例如,在短信中有一個詞語為“鉆井安全生產”,這既可以是一個詞,也可以分為“鉆井”和“安全生產”兩個詞,此時選用一個詞來代表關鍵詞,因為長的詞語往往能更精確的表達短信內容的含義。
2.3 短信分類
短信分類就是在給定分類的條件下,根據短信內容,將其自動地、智能地劃分到其應屬的類別中。當前常見的分類方法有KNN(K?近鄰算法),Naive Bayes,SVM(支持向量機)算法。經過比較KNN,NB,SVM三種算法后,發現就精度而言,SVM算法效果最好,KNN算法次之,NB效果最差。但就運行時間而言,則NB算法效率最高,KNN次之,SVM運行時間最長,而且SVM算法需要較多的訓練數據才能達到較好的效果。因此選擇KNN算法,并根據項目的需求對其進行了局部改進,取得了較好的效果。
KNN算法的思想是:將早期的訓練樣本對應于[n]維空間中的點,對于一篇待分類短信,系統在所有已分類數據中查找到[K]個與其距離最近的鄰居,將這[K]個近鄰所屬的類別作為該短信的候選類別。傳統的KNN算法實現簡單有效,但是隨著數據的增多,比對數據點距離的計算量急劇增加,會大大影響運行速度,因此需要找出一種折衷的方式,在準確率損失不大的情況下,減少運算量。因此,對傳統方法進行了改進:
(1) 采用向量空間模型VSM來表示數據庫中所有的短信數據,即所有短信都表示成特征向量的形式;
(2) 采用基于知網的語義相似度向量距離計算結果來比較新增短信向量和不同分類的中心短信特征向量間的距離;
(3) 將新增短信的特征向量加入到距離最近的分類中心所在的類別中,并利用權重對該分類中心的特征向量進行更新計算。
通過這樣的改進使原本計算開銷較大的KNN算法的運行時間明顯縮短,而且準確率并未受到太大影響,加之采用了知網的語義相似度計算方法,取得了比較理想的分類效果。
3 結 語
本文介紹了長慶鉆井公司研發的鉆井生產現場移動數據交互系統中的核心模塊——短信分類算法的設計與實現,該方法在借鑒現有成熟方法的基礎上,進行了優化組合和改進,在保證較高的準確率的同時還具有較高的執行效率,在實際應用中取得了令人滿意的效果,受到了用戶的好評。
參考文獻
[1] 劉勝娃,陳思錦,李衛,等.企業私有云平臺安全技術研究[J].現代電子技術,2014,37(2):88?90.
[2] 劉勝娃,高翔,王敏.基于貝葉斯網絡的攻擊圖方法在網絡安全評估中的應用[J].現代電子技術,2013,36(9):84?87.
[3] 劉勝娃,陳思錦,李衛,等.面向企業私有云計算平臺的安全構架研究[J].現代電子技術,2014,37(4):34?36.
[4] 馬紀穎,朱力軍,張顏.Web信息檢索中信息分類技術研究[J].現代電子技術,2008,31(10):76?78.
[5] 包曉安,鐘樂海.基于ID3算法的快速分類方法研究[J].現代電子技術,2004,27(7):84?85.
[6] 馬曉昊.基于云計算的安全數據存儲服務的研究與實現[D].上海:同濟大學,2008.
[7] 張凱.基于移動數據城域網的建設規劃[J].現代電子技術,2014,37(21):27?30.
[8] 丁曉偉,金世俊.基于BP網絡的設備狀態分類器的設計[J].現代電子技術,2003,26(17):27?28.endprint