田菁菁 許慧云 葉紫光


關鍵詞:機器學習;金庫模式;語義分析
中圖法分類號:TP181 文獻標識碼:A
1引言
近年來,國家對公民隱私信息和公司業務信息安全高度重視,已推出各項保護政策,彰顯了信息保護的重要性。為此,中國移動河南公司為了彌補對于內部人事行為的監管不足、解決高權限賬號被濫用的問題,建立了高風險操作納入金庫管理的模式,以提高信息安全管控水平。
2金庫管理模式介紹
中國移動河南公司在之前的經營生產中,關于敏感數據是否可以成功訪問,取決于本次訪問的原理是否合理。然而在操作者輸入訪問理由的過程中,可能出現詞不達意、表述不明確或者填寫不規范等問題。但監管系統未建立有效機制來審核原因,因此可能導致敏感數據泄露,影響公司運營和客戶滿意度。針對此問題,可以采用金庫管理模式進行有效監管。
“金庫模式”又被稱之為“雙人操作”或者“多人操作”模式。當涉及高價值信息的高風險操作時,強制要求必須由兩個或者兩個以上有相應權限的員工共同協作完成。通過操作人員之間互相監督來確保關鍵操作的安全性。
3主要技術方案
3.1總體方案概述
此項目是基于scikit?learn框架開發的一個自然語言處理模型,scikit?learn框架則基于Python語言而搭建。其中,關聯度最高的是numpy模塊組,該模塊組用于線性代數和矩陣的運算。Scikit?learn框架是目前使用較為廣泛、應用場景基礎良好的數據分析的機器學習框架。Scikit?learn框架主要負責以下幾個方面的工作:數據分類預測、數據回歸預測、數據信息聚類、數據降維處理以及模型選擇和數據預處理。
該模型適用于操作者在人為輸入申請原因時進行語義分割判斷,使用訓練好的模型可以過濾垃圾信息,可以讓訪問者的申請行為更為系統化與規范化,使得重要信息系統能夠實現內容搜索、內容推薦、語義識別及分析等功能。
3.2主要功能和技術實現方案
3.2.1中文分詞介紹
中文分詞即Chinese Word Segmentation。人類可以準確清晰地將所接收到的語句分割為單獨詞語,因此期望設計出的系統也可以達到這一目。由于中文與英文的起源不同,詞與詞之間的連接方式不同,所以中文分詞和英文分詞存在巨大差異。對英文而言,一個單詞就是一個詞,詞與詞之間用空格進行天然分割。而中文以“字”作為基本單位進行語句陳述,詞語之間并不用空格進行分隔,中文語句在分割方面相比英文語句更難。中文分詞的算法可分為“基于詞典的分詞算法”“基于統計分詞算法”“基于語義的分詞算法”“基于字標注的中文分詞算法”。
3.2.2結巴中文分詞算法介紹
Jieba( 結巴分詞) 是一個簡單高效又靈活的Python 工具庫, Jieba 工具庫中的語句簡潔凝練, 可以提供多種模式對中文文本進行分詞, 并且可以自由修改詞典文件。利用結巴分詞算法,可以達到以下目的:實現基于Trie 樹結構的高效詞圖掃描,對語句的所有輸入數據都加以分析,以語句中分割的詞語為落腳點,去分析該句子中詞語可能的構詞情況,然后再由它形成算法所要求的有向無環圖(DAG);得到有向無環圖之后,就要去測算每條路徑的可能性,這里采用動態規劃算法來找到最概率最大的路徑,將圖上點進行串聯得到最大切分組合;對于未收錄的詞匯(這里指的是并未收錄在詞典中的詞),將采用基于漢字構詞能力的HMM 模型進行維特比算法。
3.2.3結巴中文分詞支持的三種分詞模式
(1) 精確模式:將語句精確分解至詞,從而更好地進行語義分析。
(2) 全模式:從語句的頭部開始讀取,一直到尾部,這種讀取方法的速度較快,但是對于語句的歧義問題沒有得到很好地解決。
(3) 搜索引擎模式:這是在精確模式的基礎上,對可能存在的較長的組合詞匯在進行切分,從而提高召回率,適合用于搜索引擎分詞。
分詞效果如下例所示。
import jieba↙
string:'這個把手該換了,我不喜歡日本和服,別把手放在我的肩膀上,工信處女干事每月經過下屬科室都要親口交代24 口交換機等技術性器件的安裝工作'↙
result= jieba. lcut(string) print(len(result),'/ '.join(result))↙
結果。
38 這個/ 把手/ 該換/ 了/ ,/ 我/ 不/ 喜歡/ 日本/ 和服/ ,/ 別/ 把手/ 放在/ 我/ 的/ 肩膀/ 上/ ,/ 工信處/ 女干事/ 每月/ 經過/ 下屬/ 科室/ 都/ 要/ 親口/ 交代/24/ 口/交換機/ 等/ 技術性/ 器件/ 的/ 安裝/ 工作?
效果如圖1、2 所示。
3.2.4分類和聚類是文本挖掘中常用的方法
當用到這類方法的時候,是為了對檢測的數據進行區分,兩者的區別在于:分類基于有監督的學習,分類算法的核心在于對文本類型的判斷;而聚類是對讀入的語句數據進行每句之間的相關度分析,并將高關聯度的語句加以聚合,歸為一類。在分類計算中,由于將有監督的學習作為前提,所以數據集都具有標注,能讓網絡在學習中不斷修正,增加最后的準確度。但由于文本數據集較少,不能讓模型得到足夠大規模的學習以修正權值,最終效果并未達到預期,所以我們選用聚類算法對大規模隨機微博文本加以解決。
(1)預處理常用方法
文字信息內容預處理包括:對分割出來的詞進行詞性分析(謂語、形容詞和副詞)、語義人物標識、數據詞典建設、文字項目分割、文字信息內容的分詞流程。語義人物標識是指:在名詞指代事物中扮演的各種人物(施事、受事、客體、經歷者、受益者、工具、處所、目標和來源等)。數據詞典建設是指:所用到的詞的類別分類的索引字典。
(2)文本信息的特征表示
為了能夠提取出文本信息中的對應語句特征,可以使用多種方法。其中方法包括:有邏輯判斷的布爾型、概率型,布爾型與概率型的混合型和多維度記錄的向量空間型。向量空間模型(VSM)最大優勢就是能夠獲得更為全面的文本信息特征,是分析完文本信息之后組成特征向量(T1,T2,…,Tn)。當特征足夠多,可以組成文本信息特征向量矩陣;(W1,W2,…,Wn)為文檔項對應的權重,對應每個特征向量相乘的值。文本特征構建的主要目的是能夠將原本的文本轉化為詞表和特征向量的組合,以更加高效的方式去存儲語句信息。
(3)文本信息特征縮減
向量空間模型(VSM)構建完成之后并不是完美的,也存在向量數目過多、長度過長等問題。因此,在對文本進行聚類之前,必須對向量空間模型(VSM)進行精簡,對特征相關度較低的向量進行相應的壓縮操作,并且從高到低的對權值相關度進行排序,保留能夠表示文本信息特點的特征詞與其權重。
(4)構造特征空間
經過上述步驟,可以得到最具表征的特征向量和特征詞,以此作為構建特征空間的基本素材,設置訓練模型的基本參數。
3.2.5樸素貝葉斯算法
在分類方法計算中, 樸素貝葉斯算法(Naive Bayesian algorithm) 是應用得最多一個計算類型。樸素貝葉斯算法由貝葉斯算法改進而來的,貝葉斯算法本身考慮了合并先驗概率和后驗概率,既沒有掉入到前者的主觀偏見中,也可以彌補語句信息過于擬合的劣勢。樸素貝葉斯算法在此基礎上更加注重在設置目標值時,屬性之間應該具有獨立性。這樣就可以降低被設置的屬性之間的冗余度,使每個屬性都具有較高的獨立性,利于整個目標屬性之間的均衡。雖然樸素貝葉斯算法總體的準確度沒有貝葉斯算法高,但是在實際的應用中,樸素貝葉斯算法的可用性更強,減輕了系統的運算壓力。
3.2.6 Flask 框架介紹
Flask 是基于Python 語言編寫的輕量級網絡框架模型。其中,Jinja2 模板引擎和Werkzeug WSGI 以框架模型作支撐 。Jinja2 模板引擎主要負責用戶對金庫訪問系統的使用反饋,即用戶提出訪問申請后,將對應的數據輸入文件,該模板引擎對其渲染加工之后再放回系統的響應頁面呈現給客戶。設計Werkzeug WSGI 的目的是架起Web 服務器與系統調用接口之間通信的橋梁,能夠讓服務器傳遞所要求請的數據信息給Web 程序。
3.2.7 構建垃圾信息分類的機器學習模型
數據集是標注為正常和非正常語句數據的集合。首先,可以使用數據集構建預測模型,以準確分類哪些文本是不正常的;其次,可以使用Naive Bayes定理構建一個簡單的消息分類器。
4結束語
通過應用基于機器學習的人工智能語義分析方法,增強了金庫模式的管控力度,加強了各業務系統對語義分析的應用效果,具備一定的推廣價值。
作者簡介:
田菁菁(1976—),本科,工程師,研究方向為:網絡安全、信息系統安全、數據安全。