唐啟濤
(湖南信息學院 電子信息學院,湖南 長沙 410105)
配置命令歸類的過程實質是一個模式識別的過程,是在給定的分類體系下,根據(jù)配置命令的內容確定配置命令所屬類別的過程,在實際操作過程中,存在向量維數(shù)高與訓練樣本數(shù)量巨大兩個顯著特征。常見的配置命令分類步驟總結如下[1]:首先是配置命令的預處理,通過預處理,把配置文本中一些不必要的冗余信息刪除;第二步是配置命令的模型表示;在確定配置命令的表示方式后,第三步是選取配置命令的獨有特征;第四步根據(jù)特征選擇合適的分類器進行訓練。由于在配置命令的分類中,并非所有高維的特征集都具備相同的重要性,而通過配置命令的特征選擇可以有效降低分類維數(shù)從而簡化計算的難度。同時,對分類結果的準確性、樣本的訓練時間均有著非常重要的影響,因此在配置命令分類過程中特征選擇成為了最關鍵的步驟。目前在配置命令分類中比較常見的特征選擇算法有詞頻方法、信息增益、期望交叉熵、互信息等[2]。這些特征選擇算法在文本分類中針對不同的文本類型,其應用效果也有所不同,針對網(wǎng)絡設備中的配置命令進行分類處理時,簡單地應用其中某一種算法,往往會存在配置命令過度冗余、計算配置命令權重繁雜等問題。為了更好地進行網(wǎng)絡設備中的配置命令分類處理,在對日常應用中常見的特征算法進行分析比較的基礎上,引入了基于信息特征向量的信息熵對傳統(tǒng)的配置命令分類算法進行優(yōu)化,進而提出一種基于信息熵的網(wǎng)絡設備配置命令分類算法。
該方法是根據(jù)給定文本中相應詞語出現(xiàn)的次數(shù),記錄各個詞匯的詞頻,當詞頻大于給定閾值時,才保留其在語料庫中的數(shù)據(jù),對于低于給定閾值的詞匯,直接忽略[3]。在實際應用中,往往需要對給定文本進行樣本訓練,其目的是為了統(tǒng)計各詞匯的詞頻數(shù),排除低詞頻的詞匯,只保留對語料庫中文本分類影響較大的詞匯。
詞頻方法的應用簡化了文本分類的流程,在詞頻計算中其計算復雜度較低,是一種最簡單的降維方法,但由于其對詞匯的處理只是簡單地去除低詞頻的詞匯,對文本分類的準確率不高,通常作為文本分類處理的一種輔助方法[4]。
該方法是根據(jù)給定文本中相應特征向量的信息熵之差來確定特征項是否入選,基于此,需要先計算特征項的信息熵差,計算公式如下[5]:
(1)
信息增益方法本質上是根據(jù)給定樣本中特征項的信息增益值的大小,決定其對文本中的分類的影響程度。該方法在應用過程中沒有考慮一些特殊情況,導致當特征項或者類別的分布信息不均衡時,應用信息增益的效率會大大減弱[7]。
互信息方法是通過計算相關詞匯與給定樣本中類別的關聯(lián)程度,來確定詞匯在文本分類中的重要性,從而確定其被選入的可能性[8]。
詞匯t的MI評價函數(shù)為[9]:
MI(t,Cj)=log2(P(t/Cj)/P(t))
(2)
其中,t表示相關的文本特征項;Cj表示第j種文本類別。
通過該公式可以計算出相關特征項與給定文本類別的關聯(lián)性,其MI值越大,說明兩者之間相關程度越高,當MI為0時,說明兩者之間相互獨立[10]。
交叉熵方法中詞匯t的CE評價函數(shù)為[11]:
(3)
該方法的基本原理是根據(jù)文本特征項在相關類別中出現(xiàn)的頻率計算出評價函數(shù)值。在計算過程中,只考慮文本特征項在樣本中出現(xiàn)的概率,把一些不出現(xiàn)的詞匯作為噪聲來處理,與信息增益方法相比,其在文本分類應用中更優(yōu)越[12]。
先從隨機過程的角度介紹熵的概念。
定義1:設X表示一組隨機事件:x1,x2,…,xn,其中p(xi)=Pi(0≤Pi≤1)分別是它們出現(xiàn)的概率,且P1+P2+…+Pn=1,則X的信息熵H(X)定義為其自信息量的統(tǒng)計平均值,即[13]:
(4)
通過上式計算隨機變量X的信息熵值,該值的大小直接決定隨機變量對給定樣本的影響程度。在進行隨機試驗中,有效獲取隨機變量的熵就能確定各隨機變量的概率分布,在這里,熵作為信息的一種度量,熵值的確定也表明信息的不確定性完成。
熵最早是由Shannon提出的,最初是應用在統(tǒng)計熱力學中,通過計算熵值,確定一個系統(tǒng)混亂度,熵值越小,其混亂度越弱,表明系統(tǒng)越穩(wěn)定[14]。在統(tǒng)計熱力學中,應用的是熵增原理,而對于通常的文本樣本信息,其信息熵值根據(jù)要求只能減少,應用的是熵不增性原理。
定義2:對于一個數(shù)據(jù)集合中的屬性X,它的屬性域為{a1,a2,…,an},對應的概率分布為{p(a1),p(a2),…,p(an)},則X的熵定義為[15]:
(5)
(6)
在實際應用過程中,熵的使用對于無序結構比較實用。通過一個非負的熵值表述信息的不確定程度,熵作為樣本中的概率分布函數(shù),是一個全局變量,熵值的大小直接決定信息在樣本中的重要程度。H(X)表達了屬性X所包含的信息量,針對屬性X,可以通過熵來衡量其純度,其值越小,屬性X的純度就越高。
在信息論中,通常通過信息熵表述信息量的多少。對于一個隨機變量X,如果用p(t)表示X取值為t的概率,那么其信息熵表示為:
H(X)=∑p(x)log2p(x)
(7)
通過式7可以看出,信息熵的大小決定信息量的確定性,信息熵值越大,其不確性越大,反之,其不確定性越小。在實際應用過程中,信息熵值越小,對于信息量的處理越有效。
多個屬性變量同時擁有的信息量稱為聯(lián)合熵,其表示如下:
H(X1,X2,…,Xn)=-∑x1…∑xnp(x1,x2,…,
xn)log2p(x1,x2,…,xn)
(8)
其中,p(x1,x2,…,xn)表示變量X1,X2,…,Xn分別同時取x1,x2,…,xn時的概率。
條件熵用于表示當某幾個變量確定時其他變量所含的信息量,若已知變量X1,X2,…,Xn,變量Y的條件熵可表示為:
H(Y|X1,X2,…,Xn)=H(Y,X1,X2,…,Xn)-
H(X1,X2,…,Xn)
(9)
其中,H(Y,X1,X2,…,Xn)表示變量Y,X1,X2,…,Xn的聯(lián)合熵。
條件熵反映了成員元素之間的關聯(lián)關系,其值越小,其對應的關聯(lián)關系越緊密。當兩個不同變量的條件熵與信息熵值相等時,則這兩個變量具備完全獨立性,此時,有以下關系式成立[16]:
H(Y|X)=H(Y)
(10)
(1)基于信息熵的網(wǎng)絡設備配置命令分類模型。
在網(wǎng)絡設備的配置命令分類中應用信息熵時,主要是通過信息熵值的大小來判斷命令短語在已有配置命令集中是否存在相似或者相同的,當該短語在配置命令集中存在或相近時,其信息熵為0。當檢測到新的配置命令文本時,需先進行特征向量處理,在此基礎上,再應用信息熵原理,把已提取的特征向量進行優(yōu)化,并把得到的結果存儲到配置命令集中。在整個優(yōu)化過程中,信息熵值是決定一個命令短語是否存在于配置命令集合中的依據(jù)。
算法流程如下:
假設已定類別C中有k個配置文本命令集合,k篇配置文本的特征詞集合為{fi1,fi2,…,fin}(i=1,2,…,k),待加入的配置文本為xk+1,其抽取的特征詞集合為{d(k+1,1),d(k+1,2),…,d(k+1,n)}。
(a)文本預處理。根據(jù)預處理流程,對配置命令文本抽取特征向量,得到相應的特征詞集合{fi1,fi2,…,fin}(i=1,2,…,k)。
(b)統(tǒng)計詞頻。根據(jù)詞頻方法統(tǒng)計各篇命令配置文本中特征詞的詞頻,并設定一個閾值。低于該閾值的特征詞直接忽略,只統(tǒng)計高于該閾值的特征詞,然后再對選出的特征詞排序,在此基礎上,再應用信息熵原理,計算每個特征詞的熵值,當其熵值為0或者接近0時,取消該特征詞。特征詞的熵值計算公式如下:
W(t,d)=(tf(t,d)xlog2(N/nt+0.01))/
(11)
(c)計算新文本信息熵。對于新加入的配置文本命令,按照上述流程選取特征詞,在此基礎上,再對所得到的特征詞計算其信息熵,只保留符合要求的特征詞,用于實現(xiàn)對配置命令進行分類。
(d)反饋。將分類好的配置命令文本中的特征詞加入到特征詞庫中,然后重新計算各個特征詞的信息熵,返回執(zhí)行步驟(c),繼續(xù)進行配置命令文本類別的分類。在操作過程中,對于每篇配置命令文本分類后,可根據(jù)實際需要,動態(tài)調整信息熵的閾值。
(2)基于信息熵的網(wǎng)絡設備配置命令分類算法。
在該算法中,應用詞頻方法初步選取特征詞,在此基礎上,再應用信息熵原理,對已抽取的特征詞計算其信息熵值,利用其值與給定的閾值進行比較,當其值低于閾值時,直接忽略掉,排除不重要的文本,保持文本的原有數(shù)據(jù)特性。
(a)關鍵短語的界定。
對在給定的文本信息,適當?shù)膭澐株P鍵短語至關重要,文本可以通過關鍵短語鮮明的表達文本內容,關鍵短語的界定可從三個方面來確定:在結構上要求凝固性好;在語義方面,能清晰明確地表達詞意,具有一定的專指性和完整性;在統(tǒng)計方面,對于任何具有完整意義的文本信息,通常具有一定的可重用性,在表述上,往往通關鍵短語來實現(xiàn),而對于網(wǎng)絡設備的配置命令文本而言,短語便于表達配置命令的特征,更適合作為其特征項。
(b)英文分詞。
在網(wǎng)絡設備的配置命令文本中,英文表述較多,對于英文分詞的劃分也就顯得格外重要,但是,作為一個英文分詞系統(tǒng)進行的是基礎性檢測劃分工作,對于每個信息應用領域沒有必要都建立一個英文分詞系統(tǒng),那樣浪費資源,而且分詞的效果也不一定是最優(yōu)的。文中網(wǎng)絡設備的配置文本命令英文分詞的劃分直接使用基于DAG思想的配置元集無關性算法,該算法在英文文本的分類中,特征項的提取、配置命令的表示更易于實現(xiàn)。
(c)配置命令預處理。
配置命令文本的預處理主要是實現(xiàn)對配置命令劃分短語,為后期確定關鍵短語作輔墊,最終的處理結果實現(xiàn)了將非結構化的配置命令結構化,從而進一步提高短語的匹配速度。具體操作流程主要分兩步:第一步利用英文的標點符號及非漢字符號對英文配置命令進行切分,切分成長度較短的英文短語;第二步利用漢字標點符號進行切分,同時結合連接詞庫,把諸如”and”、”or”這樣的單詞去掉,使得文本句子得到進一步的切分。
(d)關鍵詞集抽取。
網(wǎng)絡設備的配置命令文本經(jīng)過文本預處理后,使得原有的命令文本變成了分割的短語。為了便于處理,把這些分割的短語存放至一個集合T中,通過對集合T不斷進行掃描,最終把確定的關鍵短語存儲到keyset集合中,配置文本命令的掃描處理過程如下:
·通過對預處理的命令文本利用詞頻方法統(tǒng)計各個分詞的詞頻,將達到給定閾值的分詞提取出來,存儲到集合keyset中。
·對于未有完整意義的短語,查看停用詞庫,判斷其是否包含不能用的單詞,如果是,直接刪除,如果否,則轉入下一步。
·對于給定的預處理配置命令文本,按照順序依次自前往后掃描,直到預處理文本所有短語處理完畢為止。
·對于集合keyset中短語應用信息熵原理,進一步優(yōu)化,實現(xiàn)對文本配置命令的分類處理。
在此基礎上分別對每類網(wǎng)絡設備的配置文本命令進行比較統(tǒng)計,將不同的關鍵詞集進一步組成每類的關鍵詞組描述集合。網(wǎng)絡設備的配置命令文本處理過程主要包括四大基本模塊:特征庫的建立、樣本訓練、短語測試、文本命令分類。系統(tǒng)框架如圖1所示。
圖1 結構框架
系統(tǒng)的處理過程如下:
系統(tǒng)對于訓練文本,先按照詞頻方法選取特征向量,將選取的特征向量存儲到特征庫;對于配置命令分類文本,根據(jù)特征庫的信息劃分關鍵短語,在此基礎上,再應用信息熵原理對優(yōu)化的命令文本進行分類處理,最后對分類結果進行評估;對于測試命令文本首先根據(jù)特征向量庫提取文本中的特征向量,在此基礎上,再應用信息熵原理,對已提取的特征向量進行優(yōu)化,以提高分類器中進行分類的準確率。
該系統(tǒng)的總體結構包括數(shù)據(jù)采集、處理、傳輸以及基本的數(shù)據(jù)更新功能,其結構如圖2所示。
(1)自動配置子系統(tǒng)。
主要用于實現(xiàn)管理員在自己所屬的網(wǎng)絡管理區(qū)域對相應的網(wǎng)絡設備進行配置及查詢其相應的設備配置信息。該子系統(tǒng)主要利用配置命令知識庫生成子系統(tǒng)實現(xiàn)自動配置,在配置過程中,可能由于使用的是最新的網(wǎng)絡設備,在這種情況下,配置命令知識庫生成子系統(tǒng)會找不到匹配的設備配置文本。如果在配置過程找不到相對應的配置文本,則需要管理員手動輸入正確的網(wǎng)絡設備配置命令文本,然后通過網(wǎng)絡設備的配置命令分類算法將其在配置命令知識庫自動生成相應的網(wǎng)絡設備配置文本。
圖2 配置命令智能修復系統(tǒng)結構
(2)診斷子系統(tǒng)。
該子系統(tǒng)主要用于實現(xiàn)對所監(jiān)控的網(wǎng)絡設備的配置命令文本進行智能匹配,具體的操作通過在知識庫的命令集中搜索與源配置文件相一致的配置命令文本,在啟用診斷子系統(tǒng)時,需要設置匹配差異度。在智能診斷中,當智能匹配結果高于所設的差異度值時,則其相應的網(wǎng)絡設備配置命令文本被診斷出錯。
(3)配置文件分析子系統(tǒng)。
在該子系統(tǒng)中結合基于信息熵的網(wǎng)絡設備配置命令分類算法實現(xiàn)對設備的源配置命令文本進行分析,生成有規(guī)則的命令集與配置實例供診斷子系統(tǒng)使用。
(4)配置命令知識庫生成子系統(tǒng)。
該子系統(tǒng)通過對配置命令庫中的命令文本使用基于信息熵的配置命令分類算法進行初步處理,實現(xiàn)對設備的配置命令分類,同時,分析各分類后的命令文本的相關性及其生成規(guī)則,最終形成系統(tǒng)的配置命令知識庫,它主要用在診斷子系統(tǒng)和自動配置子系統(tǒng)中。
整個系統(tǒng)的工作流程主要包括以下步聚:首先對網(wǎng)絡設備的配置命令文本進行提取,經(jīng)過基于信息熵的配置命令文本分類算法進行分類處理后,進入到配置命令知識庫,然后配置命令知識庫生成子系統(tǒng),使用配置命令知識庫進行樣本訓練,實現(xiàn)對配置命令知識庫進行優(yōu)化處理。配置命令知識庫可供配置文件分析子系統(tǒng)和診斷子系統(tǒng)使用,在診斷子系統(tǒng)中,使用配置文件分析子系統(tǒng)所得到的結果與命令知庫中的配置實例進行快速匹配,根據(jù)所得結果的差異度值,判斷設備的配置命令文本是否出錯,當診斷結果顯示有錯誤時,可通過直接重寫配置文件方式避免定位出錯位置的操作。
Simulink是MATLAB軟件支持的一個包,該軟件包的特點是圖形用戶界面使用靈活,用戶只需要通過簡單的鼠標操作即可完成建模任務,不再需要使用復雜的命令。在建模過程中,通過選擇合適的模塊,把上述算法中的各個功能一一實現(xiàn),然后再把各個模塊結構連接起來,最后進行調試與模擬仿真。實驗結果用MATLAB進行仿真描述,圖3和圖4為網(wǎng)絡設備配置命令文本使用信息熵原理分類后與未歸類在網(wǎng)絡設備的診斷響應時間與診斷正確率方面進行的對比。
圖3 診斷響應時間比較
圖4 診斷正確率比較
通過以上兩圖可以看出,應用信息熵原理對網(wǎng)絡設備配置命令分類后,在診斷正確率方面優(yōu)勢更明顯,在診斷的響應時間方面,當配置命令文本信息量不大的情況下,兩者相差不大,隨著信息量越大,兩者之間的差別也越大。文中算法不能保證配置命令診斷完全正確,但相比較未分類之前的配置命令文本,應用信息熵原理進行分類處理后,其在診斷響應與診斷正確率方面均有了一定程度的提高。
在實際的網(wǎng)絡設備故障診斷中,待處理的信息量非常大,而其中對于網(wǎng)絡設備故障診斷有幫助的數(shù)據(jù)只是其中很小一部分,通過在網(wǎng)絡設備配置命令智能修復系統(tǒng)中應用基于信息熵的配置命令文本分類算法,可以有效提高網(wǎng)絡設備在智能檢錯中的效率。通過在MATALAB中安裝Simulink軟件包,仿真實現(xiàn)了一般網(wǎng)絡設備配置文本命令與基于信息熵的配置文本命令在配置故障診斷方面的影響。仿真結果顯示,基于信息熵的網(wǎng)絡設備配置命令文本在分類處理后,在網(wǎng)絡設備由于配置出錯導致不能正常運行時,其故障診斷在響應時間和診斷結果正確性方面都有較為明顯的優(yōu)勢,為后續(xù)的網(wǎng)絡設備故障的智能修復提供了保障。