杜潔,李 芹,潘 媛,梁國迪
(云南電網有限責任公司信息中心,云南昆明 650214)
計算機處理技術的進步推動了自然語言的數字化發展,使得數字化自然語言在計算機運算中逐漸占據主導地位。由于網絡數據的增加,文檔信息的數量也隨之增加。將一份新檔案歸入現有檔案是一種有效的節約網絡空間的方式,這其中就涉及到文檔相似度的對比。
當前,文獻間的相似性比較已有許多理論研究,蔣楚[1]等人提出了一種基于表達式樹的gadget 語義分析算法,利用表達式樹的變體形式描述其表達式信息,提高gadget 工具語義分析的效率,并設計能對多種gadget 工具的分析效率和效能進行判斷的gadgetAnalysis 算法。該算法能夠較好地衡量gadget工具的語義分析效率和效能,實現較好的語義分析效果,但是該算法在判斷語義相似度方面的精準度仍有待提高。石彩霞[2]等人提出了一種多重檢驗加權融合的短文本相似度算法,使用三種方法分別計算短文本的相似度,對滿足已設定的多重檢驗標準的短文本加權融合,再計算短文本的相似度。該算法在計算短文本相似度方面的準確率有所提高,但仍難以滿足對語義相似度判斷的需要。為了解決上述問題,提出了基于堆棧集成學習的文檔隱含語義相似度判斷算法。
堆棧集成學習是一種元學習方式,其主要思路是利用基礎學習器生成問題數據,再利用元學習器的學習程序來處理。基于該原理構建堆棧集成學習模型,如圖1 所示。

圖1 堆棧集成學習模型
圖1 中,第0 層表示基礎學習層,第1 層表示元學習層。元學習層是在堆棧集成學習層之上進行學習的一種行為,在整個堆棧集成過程中,確定了定義組合規則,經過模型訓練,融合學習結果[3-4]。
通常情況下,堆棧集成學習是一個簡單的學習過程,能夠有效避免過度擬合。
在堆棧集成學習模型中,輸入文檔隱含語義進行識別,步驟如下:
步驟1:對原始文檔庫進行預處理,獲取與原文一一對應的詞袋矢量[5];
步驟2:通過對輸入文本的詞袋矢量與初始語料庫矢量之間的關系進行分析,得出與輸入語料庫相似度最高的原始文本[6];
步驟3:通過對原始文本中的虛詞進行篩選,把虛詞的賦值設為0,在虛詞賦值之后,將名詞賦值為1;取得與名詞相匹配的動詞,并把該動詞分配到一個文本矩陣內,可表示為式(1):
式中,N表示動詞與名詞之間存在的單詞數量。
步驟4:取得符合名詞的副詞,把它和名詞再配成一個新的詞組,把新的詞組賦值為1,但是保持原有的名詞,對原有的名詞進行重新賦值,該過程可表示為式(2):
式中,m表示新詞組與原始名詞詞組出現頻率之比。
步驟5:獲取與名詞相匹配的形容詞,并指定一個形容詞賦值,可表示為式(3):
式中,p表示形容詞賦值成名詞的頻率。
步驟6:以名詞為基礎,其他詞性名詞為基礎進行賦值,充分考慮各個關鍵詞性特點獲取單個關鍵詞的賦值[7]。需要注意的是,賦值并不只是用來表示關鍵詞的重要程度,其還可以用來區別不同的關鍵詞。在考慮到關鍵詞出現的頻次后,經過閾值篩選,篩選的單詞會極大地影響到文檔隱含語義[8-10]。借助于一個輔助詞庫矢量,能夠在基礎文本中發現類似于輸入文本的文件[11],可以得到更好的識別結果。
通過在堆棧集成學習模型上識別隱含語義,根據閾值篩選結果獲取與輸入文本類似的文檔,構建文檔隱含語義向量模型,保證文檔隱含的關鍵詞能夠描述具有語義的關鍵詞,并將其轉換為向量形式[12-13]。文檔隱含語義向量模型構建,具體如圖2 所示。

圖2 文檔隱含語義向量模型
圖2 中,從文件中抽取出能夠表達其主題內容的基本概念和特征[14]。在建立文件的語義矢量時,首先要對已處理過的文件進行預處理;其次,對文檔中的概念詞語進行抽取;最后,利用基于本體粗糙集的知識,從實例中抽取出與之相關的特征,從而構造出一個含有概念詞語和屬性描述的文件語義矢量[15]。
對于文檔隱含語義向量的提取,首先確定文檔抽取概念詞O=(O1,O2,…,On),這組詞在領域本體中的屬性可表示為D1,D2,…,Dn,其中n表示領域本體屬性個數。為了提取文檔隱含語義向量屬性,需在確保本體中包含所有實例的前提下,依次提取相關屬性,由此形成一個屬性集,以此類推,能夠獲取文檔全部隱含語義向量。
為方便檢索,每一個文檔都有一個語義矢量索引。首先,把從文檔中抽取的關鍵詞歸類到索引文件中,按照一定的次序進行分類,并在此基礎上創建一個指針來表示這個概念。每一種概念都有一個語義矢量,將相同的關鍵詞向量聚類為一簇,而文本的語義特征矢量則指向相應的文件[16]。
為方便提取關鍵詞,將文本劃分為以標點為邊界的小字符串,用最大公共字符串和傳統分詞的關鍵詞抽取方法,使關鍵詞盡量完整,過濾與標準要求不一致的關鍵詞。
使用信息增益法提取關鍵詞,從文檔中直接提取相關信息,再將這些信息與標準信息對比,獲取的信息熵之差就是信息增益。信息增益評估函數定義為式(4):
式中,n(tk)、n(hi)分別表示不同類的特征文檔的數量;p(hi∣tk)表示特征hi中出現特征tk的文檔概率,由此實現基于文檔隱含語義索引關鍵詞。
對于提取的文檔隱含語義索引關鍵詞,使用堆棧集成學習方法對關鍵詞進行訓練,由此產生的元數據經過反復堆疊后,產生一個完整的訓練數據集和元數據。
根據訓練結果,令文檔f1與f2的屬性集為E1、E2,設α是E1的導出路徑,β是E2的導出路徑,是通過α從文檔f1中導出的一段文本,是通過β從文檔f2中導出的一段文本,兩個文本的相似度為:
式中,Lα,β表示路徑α與β間最長的共同子路徑長度;ω表示相似度的權重系數。
根據式(6)計算結果可知,向量融合了隱含語音基本結構和內容特征,同時也反應了文檔中相似的部分。根據該計算結果,可體現出語義相似度判斷結果。
為了驗證基于堆棧集成學習的文檔隱含語義相似度判斷算法的準確性,選擇某省電力企業數據庫中的文檔集作為實驗對象,原始文本如圖3 所示。

圖3 原始文本
原始的文本都屬于電力工單,提取其中的關鍵詞,結果如圖4 所示。

圖4 關鍵詞提取結果
由圖4 可獲取全部關鍵詞提取結果,以此為研究對象進行實驗驗證分析。
用關鍵詞個體提取結果準確率和召回率作為評價標準,可表示為式(7)、(8):
式(7)和(8)中,fA表示語義相似度計算結果大于零且判斷為同一屬性的同類文檔;fB表示語義相似度計算結果大于零且判斷為不同屬性的同類文檔;fC表示語義相似度計算結果等于零且判斷為同一屬性的同類文檔。計算結果越大,相似度判斷結果越精準。
以圖4 所示關鍵詞為研究對象,分別使用基于表達式樹的方法、基于多重檢驗加權融合方法和堆棧集成學習算法,對比分析關鍵詞個數提取結果,如表1 所示。

表1 三種方法關鍵詞個數提取結果對比
由表1 可知,應用基于表達式樹的方法后,關鍵詞個數提取結果與實際個數最大誤差為兩個;應用基于多重檢驗加權融合方法后,關鍵詞個數提取結果與實際個數最大誤差為三個;應用堆棧集成學習算后,關鍵詞個數提取結果與實際個數最大誤差為一個。通過上述分析結果可知,應用堆棧集成學習算法后,關鍵詞個數提取結果與實際個數基本一致,說明使用該方法語義相似度判斷結果更精準。
三種方法的召回率對比分析結果如圖5 所示。

圖5 三種方法召回率對比分析
由圖5 可知,基于表達式樹方法的最高召回率為64%,最低為58%;基于多重檢驗加權融合方法的最高召回率為72%,最低為68%;基于堆棧集成學習的相似度判斷算法的最高召回率為86%,最低為80%。由此可知,應用基于堆棧集成學習的相似度判斷算法召回率較高。
基于堆棧集成學習的文檔隱含語義相似度判斷算法考慮了文檔隱含語義的結構特點和文檔內容特性,對文檔隱含語義的相似性展開具體分析。該算法可以更好地支持多源、異構信息集成和個性化信息服務。