一種基于knn的文本分類方法
【專利摘要】本發明公開了一種基于KNN的文本分類方法,適用于核安全級軟件驗證和可靠性驗證。本發明的文本分類方法包括訓練過程處理和測試過程處理,將訓練樣本數據集以原始文本自身和文本中所有的標題兩部分的信息來表示。依據文本由淺到深的特征層次結構構建兩個DBM模型,提取低維高區分度的深層特征并存儲,在測試過程中以適當的權重考慮文本標題給相似度的計算帶來的貢獻來確定待測試文本的類別。本發明充分利用文本標題的信息,比將淺層特征向量作為訓練集在分類性能上有顯著改善,同時能夠降低存儲需求和在線計算量,解決了特征向量高維災難問題,提高了分類的準確度,可以用于安全級軟件可靠性評價分析中的規則匹配和失效模式庫的建立。
【專利說明】
一種基于KNN的文本分類方法
技術領域
[0001]本發明涉及一種基于KNN的文本分類方法,特別涉及核安全級軟件驗證和可靠性驗證。
【背景技術】
[0002]在核安全級的軟件開發過程中,產生大量的技術文件,并隨著軟件的迭代開發,技術文件也不斷地更新,針對每一版文件中的每個條目項(如需求項或設計項),根據核電相關軟件標準,必須滿足評估規則的要求,因此,快速準確的確定條目項與規則之間的關聯關系是質量人員亟待解決的問題。另外,在軟件產品開發的整個生命周期中,為了及早發現潛在的失效,在每個階段都要迭代執行失效模式及影響分析(FMEA),建立失效模式庫并能夠自動查詢與條目項相關的失效模式也是分析人員關注的問題。
[0003]文本分類是指按照預先定義的主題類別,根據信息內容將不同的信息劃分到與其相關的類別中。文本分類方法主要包括向量空間法、決策樹方法、神經網絡方法、遺傳算法、貝葉斯分類、K近鄰(K-NearestNeighbor,KNN)、支持向量機等。另外,近年來,在機器學習領域掀起了深度學習的浪潮,主要模型有自編碼器、受限玻爾茲曼機(Restricted BoltzmannMachine,RBM),深度玻爾茲曼機(Deep Boltzmann Machine ,DBM)、深度信念網絡(DeepBelief Network,DBN)、卷積神經網絡(Convolut1nal Neural Network,CNN)等。深度神經網絡包含多個隱藏層,具備強大的特征表達能力和對復雜任務的建模能力,因而被廣泛的應用于圖像處理、語音識別、文本分類和信息檢索等工業領域。本發明利用KNN文本分類技術識別條目項與評估規則項、失效模式之間的關聯關系,在KNN文本分類過程中采用DBM模型對文本進行特征提取,構建具有深層特征屬性的向量空間模型。
[0004]20世紀90年代以后,隨著互聯網技術的飛速發展,基于統計理論和機器學習方法成為主流的文本分類技術,其中KNN是最早應用于自動文本分類的機器學習算法之一,其分類思想是:取待分類文本d的K個近鄰,看這K個近鄰中多數屬于哪一類,就將d歸于該類。該方法由于其簡單,易實現,無需估計參數,且適合于多分類問題的優勢而被廣泛的應用。但是,該方法對測試文本分類時計算量大,內存開銷大,尤其當文本表現為高維特征,將會降低分類器的實現性能和分類性能。在文本分類算法中,首先將文本轉化為數據集表示,文本數據集的表示一般采用向量空間模型(Vector Space Model,VSM),即用分詞算法和詞頻統計方法得到的特征項來表示文本向量中的各個維,將文本中的詞映射為實數值特征向量,以特征向量代替原始數據集。即使通過這些處理,文本向量的維度依然很高,維度災難問題直接影響了 KNN算法對內存開銷的要求和對測試文本進行分類時的計算量;而且,由于不具有區分度的特征項未被剔除,會損害分類精確度。因此,必須對文本特征向量做進一步凈化處理,在保證不損失文本核心信息的基礎上,提取對文本類別最具代表性的文本特征,從而降低向量空間維數。為了解決這個問題,傳統的特征選擇方法大多采用各評估函數進行特征權重的計算,如卡方檢驗(Ch1-square test)、信息增益(IG,Informat1n Gain)等,由于這些評估函數是基于統計學的,其中一個主要缺陷是權重高的特征詞可能對分類沒有什么用處,反而會干涉到正確的分類,而真正有用的特征卻因為出現的頻率低而獲得較低的權重,甚至在降低特征空間維數的時候被刪除掉了,從而影響到對文本核心信息的真實反映。另外一種特征選擇常用的方法是主成分分析法,它不是通過特征選取的方式降維的,而是通過搜索最能代表原數據的正交向量,創立一個替換的、較小的變量集來組合屬性的精華,原數據可以投影到這個較小的集合。它能夠揭示更多有關變量重要方向的信息,但是在主成分方法中,由于矩陣方法的復雜度在η很大的情況以二次方增長,難以求解。深度神經網絡其本質思想就是堆疊多個神經元層,每個層都提取一定的特征和信息,這一層的輸出作為下一層的輸入。通過這種方式,就可以實現對輸入信息進行分級表達。因此深度神經網絡具有優異的特征學習能力,學習到的特征對數據有更本質的刻畫,并且深度神經網絡在訓練上的難度,可以通過“逐層初始化”來有效克服。其中RBM是一個二部圖,一層是可視層(V),另一層是隱藏層(h),同層節點之間沒有連接,它是深層模型的基本組件,用來逐層初始化網絡參數,同時它也是特征學習的過程。DBM是由多個RBM構成的深層模型,通過隱藏層對原始輸入的一步一步抽象表示,來學習原始輸入的數據結構,找到更有用的特征,從而最終提高分類問題的準確性。
[0005]此外,作為核電領域的技術文件,其編寫要符合標準規范,尤其是同類的標題具有高度的概括性和相似性,如果在對文本建立向量空間模型的時候,采取將整個文本統一處理,會極大的損失標題給分類帶來的重要信息。
【發明內容】
[0006]針對現有技術存在的不足,本發明利用深度玻爾茲曼機(DBM)自動提取特征并實現降維的特點,提出了一種基于KNN的文本分類方法。
[0007]本發明提出的基于KNN的文本分類方法,包括訓練過程處理和測試過程處理,
[0008]所述訓練過程包括以下步驟:
[0009]步驟一,對訓練樣本數據集建立向量空間模型,計算樣本的淺層特征向量,包括:提取每個文本中的段落標題形成標題數據集,分別對原始數據集和標題數據集進行預處理,分詞,去除停用詞,計算每個訓練樣本和對應的標題集的特征向量,形成原始文本特征向量和標題特征向量;
[0010]步驟二,分別以原始文本特征向量和標題特征向量作為可視層的輸入數據,構建兩個包含5層隱藏層的深度玻爾茲曼機,并由這兩個模型分別逐級提取原始文本深層特征向量V。和標題深層特征向量Vt ;
[0011]步驟三,分別對原始文本深層特征向量V。和標題深層特征向量Vt進行加權合并得至帽練樣本深層特征向量(λν。;(1-A)vt),λ是權重系數。存儲該訓練樣本深層特征向量;
[0012]所述測試過程處理包括以下步驟:
[0013]步驟四,利用所述步驟一方法獲得待測文本的特征向量,由步驟二構建的神經網絡模型對其進行逐級特征提取,利用步驟三所述方法對提取后的特征向量進行加權合并,得到該待測文本的深層特征向量;
[0014]步驟五,計算步驟四所述的特征向量與步驟三所存儲的每個特征向量之間的相似度,將相似度按大小降序排序,在相似度排在前K的向量中,將多數特征向量所具有的類別,作為待測文本的類別。
[0015]本發明基于KNN的文本分類方法,充分利用技術文件自身規范性,以及文本標題的重要信息,利用DBM模型,提取區分度更高的特征同時降低特征維數,改善了文本分類性能,降低了維度過高給基于KNN的分類算法帶來的存儲需求和在線計算量,特別適用于大規模的技術文件分類系統。本發明提出的文本分類算法解決了特征向量高維災難問題,有效提高了分類的準確度,可以用于安全級軟件驗證中的規則匹配和可靠性評價分析中失效模式庫的建立。
【附圖說明】
[0016]圖1為本發明基于KNN的文本分類方法流程圖;
[0017]圖2為本發明基于KNN的文本分類方法DBM構建及訓練樣本的深層特征提取流程圖;
[0018]圖3為本發明基于KNN的文本分類方法DBM模型結構圖。
【具體實施方式】
[0019]下面結合附圖對本發明基于KNN的文本分類方法做詳細描述。
[0020]本發明提出的基于KNN的文本分類方法,將訓練樣本數據集以原始文本自身和文本中所有的標題兩部分的信息來表示。分別針對所有的文本和所有標題,依據文本由淺到深的特征層次結構構建兩個DBM模型,進一步提取低維高區分度的深層特征并存儲,在測試過程中以適當的權重考慮文本標題給相似度的計算帶來的貢獻來確定待測試文本的類別。該方法能夠充分的利用文本標題的信息,且比將淺層特征向量作為訓練集在分類性能上有顯著改善,同時能夠降低存儲需求和在線計算量。
[0021 ]基于文本自身的層次結構特征,構建含有5層隱藏層的DBM神經網絡,自動抽取訓練數據集的深層特征和降低特征向量的維數,并將該模型應用于基于KNN的文本分類算法,以實現降低對數據集的存儲需求,和測試過程的計算量,同時顯著改善分類性能。
[0022]如圖1所示,本方案所提出的分類方法包括訓練過程處理和測試過程處理兩個部分,并應用于軟件需求和設計文檔的審查,以及軟件可靠性分析過程中。其中,訓練過程針對原始數據集和標題數據集分別做如下處理:對訓練樣本數據集建立VSM模型,提取文本本身及其標題集的淺層特征表示,其過程包括預處理,分詞,去除停用詞,計算每個訓練樣本及其標題集的特征向量;然后以淺層特征數據集作為輸入,構建兩個包含5層受限玻爾茲曼機的神經網絡,提取深層特征向量,并分別加權存儲。測試過程包括:針對待測樣本,將文本本身和標題集進行預處理,特征計算;利用訓練過程中得到的神經網絡對該特征向量進行處理得到低維深層特征向量;計算與訓練過程中存儲的每個特征向量之間的相似度,在相似度排在前K的向量中,尋找多數向量所具有的類別,作為待測文本的類別。
[0023]訓練過程對文件中的標題集和原始文本分別建立獨立DBM模型,并對其進行特征提取、降低特征維數并參與類別判定決策。其過程如圖2所示:
[0024]第一步,將原始數據集的每個訓練樣本中所有段落的標題提取出來,構成的新的微型的標題數據集。
[0025]第二步,分別針對原始數據集和標題數據集提取淺層特征。方法如下:
[0026]文本預處理:搜集文本并進行預處理,包括處理文本亂碼及非文本內容,分詞并去停用詞,刪除非相關文本;
[0027]特征向量計算:忽略特征項在文檔中的先后順序并要求特征項互異,將文檔簡化為以特征項的權重為分量的向量表示。利用TF-1DF(Term frequency-1nverse documentfrequency)方法計算文本特征項的權重,并且進行歸一化處理,得到原始文本特征向量di
(wil ; W12 ;...; Wlm),d2(W21;W22;...; W2m) ,..., dn(wnl ;Wn2 ;...; Wnm)和標題特征向量l(tll ;tl2;...; tlm' ) ,d7 2(t21;t22;...; t2m’ ) ,..., d7 n (tnl ; tn2 ;...; tnm’ ),如圖2所示,其中,n 為文本數量,n^Pm’分別為原始文本的特征項個數和標題文本的特征項個數。
[0028]第三步,分別以原始文本特征向量和標題特征向量為輸入數據,基于文本自身的層次結構特征,構建兩個含有5層隱藏層的DBM神經網絡,分別記為Ml和M2。該模型應用于基于KNN的文本分類算法,以實現降低對數據集的存儲需求,和測試過程的計算量,同時用于改善分類性能。
[0029]DBM模型的構建方法如下:文本的特征層次結構由淺層特征到深層特征包括詞、短語、句子、段落、文章和語義,構建兩個包含5層隱藏層的DBM神經網絡模型提取文本深層特征并實現降維,其結構如圖3所示:
[0030]圖3中,(Vi;V2;......; Vi)、(hii ;hi2;......;hij)、(h2i ;h22;......;h2k)、(h3i;
h32;......;h31)、(h41;h32;......;h4p)和(h51;h52;......;h5q)分別代表可視層單兀和隱藏層單元,i,j,k,I,p和q分別代表對應可視層和隱藏層的單元個數。
[0031]訓練該DBM的步驟如下:
[0032]首先以樣本特征向量作為可視層初始值,訓練底層的RBM模型,該過程采用基于對比散度的快速學習算法,具體訓練過程如下:根據可視層向量V來得到隱藏層向量h的狀態:h = o(b+ff.v);
[0033]通過h來重構可視層向量VSVyob+?1".!!);
[0034]再根據V1來生成新的隱藏層向量IiSh1= O^W-V1);
[0035]按照如下規則更新各個參數:
[0036]ff^ff+e(h.vT-h1.(v1)T)
[0037]a^a+ε (v-v1)
[0038]b—b+eCh-h1)
[0039]其中,ε為學習率;W為可視單元與隱藏層單元之間連接權重矩陣,a為可視單元的偏置向量,b為隱藏層單元的偏置向量,可視單元數與第一層隱藏層單元數分別為i和j,則W是」><1階的矩陣,3為;[維列向量,13為」維列向量;激活函數為0(1) = 1/(1+61口(1))。在訓練過程中,神經元個數的設定,參數的初始化,學習率的調整和訓練周期的確定需要在實踐中多次訓練,反復摸索嘗試。
[0040]以上一層RBM模型的輸出作為下一層RBM模型的可視層,重復以上過程。
[0041]將構建兩個DBM模型時,獲取的原始文本特征向量和標題特征向量的低維深層抽象特征數據集,分別稱為原始文本深層特征向量V。和標題深層特征向量vt,如圖2所示,其中,md是原始文本特征向量經過Ml提取后的向量維數,md’是標題特征向量經過M2提取后的向量維數。將這兩個向量空間分別加權為λν。和(1-A)vt,其中λ是權重系數,0<λ<I,AeR,并按照文本順序對應合并存儲,獲得訓練樣本深層特征向量,其形式如圖2所示。
[0042]測試過程:
[0043]將待測文本的標題提取出來組成新的文本,分別進行預處理、特征計算得到原始待測文本特征向量和待測文本標題特征向量,其方法與訓練過程相同;分別將原始待測文本特征向量和待測文本標題特征向量經過Ml和M2網絡的提取得到原始待測文本深層特征向量VC1UTDFV和待測文本標題深層特征向量VUTTDFV,直接加權后合并構成待測文本深層特征向量(Xvqutdfv ; (1-λ) vuttdfv),其中權重與訓練過程中的λ相同;將待測文本深層特征向量與訓練樣本深層特征向量中的每個特征向量進行相似度計算,在前K個相似度最大的向量中,尋找多數向量所具有的類別,作為待測文本的類別。
【主權項】
1.一種基于KNN的文本分類方法,包括訓練過程處理和測試過程處理, 所述訓練過程包括以下步驟: 步驟一,對訓練樣本數據集建立向量空間模型,計算樣本的淺層特征向量,包括:提取每個文本中的段落標題形成標題數據集,分別對原始數據集和標題數據集進行預處理,分詞,去除停用詞,計算每個訓練樣本和對應的標題集的特征向量,形成原始文本特征向量和標題特征向量; 步驟二,分別以原始文本特征向量和標題特征向量作為可視層的輸入數據,構建兩個包含5層隱藏層的深度玻爾茲曼機,并由這兩個模型分別逐級提取原始文本深層特征向量V。和標題深層特征向量Vt ; 步驟三,分別對原始文本深層特征向量V。和標題深層特征向量Vt進行加權合并得到訓練樣本深層特征向量(λν。;(1-A)vt),其中λ是權重系數,存儲該訓練樣本深層特征向量;所述測試過程處理包括以下步驟: 步驟四,利用所述步驟一方法獲得待測文本的特征向量,由步驟二構建的神經網絡模型對其進行逐級特征提取,利用步驟三所述方法對提取后的特征向量進行加權合并,得到該待測文本的深層特征向量; 步驟五,計算步驟四所述的特征向量與步驟三所存儲的每個特征向量之間的相似度,將相似度按大小降序排序,在相似度排在前K位的向量中,將多數特征向量所具有的類別,作為待測文本的類別。
【文檔編號】G06F17/30GK105975573SQ201610288920
【公開日】2016年9月28日
【申請日】2016年5月4日
【發明人】馮素梅, 趙云飛, 張亞棟, 江國進, 白濤, 王曉燕, 寧祾, 程建明
【申請人】北京廣利核系統工程有限公司, 中國廣核集團有限公司