朱小龍,邱 林
(1. 荊楚理工學院計算機工程學院,湖北 荊門 448000;2. 湖北省荊門產業技術研究院智能信息技術研究所,湖北 荊門 448000;3. 長江大學計算機科學學院,湖北 荊州 434023)
為了準確、高效地在海量信息中抽取特定的信息,需要一種自動化程度較高的計算機輔助工具。信息抽取系統的主要工作是在信息源中獲取所需的信息,并向用戶展示抽取的信息,將抽取的信息存儲在數據庫或電子表格中,方便后續工作的使用和分析[1,2]。目前針對半結構化文本的信息抽取算法較多,在各個領域中都得到了廣泛的應用,但目前的信息抽取算法都存在一些問題。
賴娟[3]等人在規則約束的基礎上構建深度學習網絡模型,首先在模型的學習模塊中輸入數據,在多個維度上結合多頭注意力機制和Bi-GRU網絡生成單詞對應的預測向量,利用規則庫中存在的邏輯規則約束模型的深度學習,以此實現文本信息抽取,該算法沒有對文本信息實行降維處理,對高維文本信息抽取的復雜度較高,導致算法存在信息抽取精度低、召回率低的問題。孫新[4]等人在CNN和LSTM自編碼器的基礎上建立短語向量模型,用于表示復雜短語的語義,針對候選短語,采用短語向量計算其對應的主體權重,對計算結果排序,完成文本信息的抽取,該算法的抽取結果與用戶所需的信息之間存在差異,存在信息抽取準確率低的問題。陳珂[5]等人通過BERT預訓練語言模型提取文本信息的特征,通過依存句法根據信息特征選取最短依存路徑,在分類模型中輸入最短依存路徑完成文本信息的抽取,該方法抽取文本信息所用的時間較長,存在信息抽取效率低的問題。
為了解決上述方法中存在的問題,提出基于機器學習的半結構化文本信息抽取算法。
基于機器學習的半結構化文本信息抽取算法通過自編碼網絡完成文本信息的降維處理,用低維信息代替高維信息,降低后續半結構化文本信息抽取的復雜度。用T={t1,…,tn}表示高維數據集,該數據集中共存在n個半結構化文本信息,將高維數據集T輸入自編碼網絡中,獲取對應的低維嵌套結構M。
自編碼網絡結構由兩個部分構成,第一部分為編碼網絡,第二部分為解碼網絡[6]。編碼網絡的主要目的是在維數固定的低維嵌套結構中映射高維原始半結構化文本信息;可用編碼網絡的逆過程描述解碼網絡,其主要作用是還原低維嵌套結構中存在的半結構化文本信息,將其轉化為高維數據。自編碼網絡的核心是碼字層,存在于解碼網絡和編碼網絡之間的交叉部分,具有嵌套結構的高維半結構化文本數據集的本質規律可通過碼字層得以描述,獲取本質維數[7]。
采用自編碼網絡對半結構化文本信息處理的具體過程為:對編碼網絡和解碼網絡的權值實行初始化處理,遵循誤差最小化原則訓練自編碼網絡,半結構化文本信息依次經過解碼和編碼網絡,在鏈式法則的基礎上計算梯度值,根據計算結果調整自編碼網絡的權值。
所提算法在限制玻爾茲曼機連續形式CRBM的基礎上完成連續數的建模,通過CRBM訓練獲得對應的權值,即編碼網絡和解碼網絡在自編碼網絡中的初始權值。在全局調整階段中,利用反向傳播算法完成權值的調整,實現半結構化文本信息的最佳重構。
設dj代表的是隱單元j在可視單元狀態集{di}中的輸出,可通過下式計算得到

(1)
式中,wij代表的是CRBM的權值;函數γj的表達式為:

(2)
式中,?L、?H均描述的是漸近線中存在的點;參數sj對sigmoid曲線的斜率具有調整作用,屬于噪聲控制變量,當參數sj的值變大時,可以將無噪聲的確定性狀態平滑過渡到二進制隨機狀態。
高斯隨機變量Nj(0,1)與常數?構成噪聲輸入分量nj=?Nj(0,1),通過下式計算分量nj的概率分布:

(3)
為了降低半結構化文本信息降維的計算量,將最小化對比散度訓練準則引入CRBM中,更新參數sj和權值wij:

(4)

基于機器學習的半結構化文本信息抽取算法通過計算文本信息的單詞間相似度和文本間相似度完成信息的聚類處理。
2.2.1 單詞間相似度
考慮半結構化文本信息之間存在的關系類型,結合信息量和節點連接距離,通過下式計算父概念節點p和子概念節點c之間的連接權值wt(c,p)
×Y(c,p)[IC(c)-IC(p)]
(5)

IC(c)=log-1P(c)
(6)
式中,P(c)代表的是在語料庫中出現概念c的概率。
用D(w1,w2)表示兩個單詞之間存在的語義距離,其計算公式如下

(7)
式中,c1=sen(w1)、c2=sen(w2),path(c1,c2)描述的是節點在c1、c2最短路徑中構成的集合;parent(c)代表的是概念c對應的父概念;LSuper(c1,c2)代表的是上位概念。
各條邊在最短路徑中的權值和即為語義距離D(c1,c2)

(8)
結合上述公式計算概念之間存在的距離D(c1,c2)
D(c1,c2)=IC(c1)+IC(c2)-2ICLSuper(c1,c2)
(9)
兩個含義間語義距離的最小值即為單詞間的語義距離D(w1,w2)

(10)
2.2.2 文本間的相似度
考慮每個概念在聯合概念中的元素,用D(d1,d2)表示兩個半結構化文本信息之間存在的語義距離[8,9],其計算公式如下
D(d1,d2)=D(C1∧…∧Ck,U1∧…∧Um)

(11)
式中,Ci、Ui描述的是半結構化文本d1、d2的概念列表中存在的單詞;gi代表的是半結構化文本d1中概念Ci出現的總數;k、m代表的是半結構化文本概念列表中存在的元組數;n描述的是概念語義在半結構化文本中存在的數量,可通過下式計算得到

(12)
半結構化文本的語義相似度Sim(d1,d2)的計算公式如下

(13)
根據單詞相似度和文本相似度完成半結構化文本信息的聚類處理。
通過上述過程完成半結構化文本信息的預處理,在不同類別的文本信息中基于機器學習的半結構化文本信息抽取算法通過隱馬爾可夫模型[10,11]完成信息抽取,具體步驟如下
采用隱馬爾可夫模型實現半結構化文本信息抽取,首先學習訓練文本,構建隱馬爾可夫模型,通過EM算法[12,13]計算初始時刻各狀態的概率?i

(14)

設aij代表的是狀態為si的模型變為狀態sj的概率,其計算公式如下

(15)
式中,Vij描述的是狀態si變為狀態sj的次數,根據上式計算結果構建狀態轉移概率矩陣A。
設bj(k)代表的是在狀態sj下模型釋放觀察值bk的概率,其計算公式如下

(16)
式中,Rj(k)代表的是狀態sj釋放觀察值bk的數量。根據上式計算結果構建觀察值概率分布矩陣B。
通過數據平滑解決數據稀疏問題

(17)
式中,E代表的是詞匯表的大小。
采用隱馬爾可夫模型[14,15]抽取半結構化文本信息的過程如下:

2)在半結構化文本序列P={p1,p2,…,pK}和給定模型λ=(A,B,?)的條件下,通過半結構化文本中釋放概率最大的最優狀態序列,完成文本信息抽取:
①設εt(i)代表的是模型在路徑中達到si狀態并釋放半結構化文本序列P={p1,p2,…,pK}對應的最大概率,對εt(i)實行初始化處理:εt(i)=?ibi(pt);
②歸納模型達到si狀態時經過的最大概率的路徑ζt(j)

(18)
根據上述分析可知,將機器學習中的隱馬爾可夫模型應用在不同的文本信息類別中,實現半結構化文本信息的抽取。
為了驗證基于機器學習的半結構化文本信息抽取算法的整體有效性,需要對其做如下測試。
在加州大學歐文分校UCI的機器學習數據庫中選取500篇論文,采用基于機器學習的半結構化文本信息抽取算法、文獻[3]算法和文獻[4]算法實行半結構化文本信息抽取測試。
按照文本結構將500篇論文劃分為3個數據集,分別為數據集1、數據集2和數據集3,采用所提算法、文獻[3]算法和文獻[4]算法在上述數據集中抽取設定的信息數量,測試不同方法的信息抽取精度,測試結果如表1所示。

表1 信息抽取精度
由表1中的數據可知,設定在數據集1中抽取80條信息,在數據集2中抽取90條信息,在數據集3中抽取70條信息。分析測試結果可知,采用所提算法在3個數據集中抽取的信息數與設定的抽取數量基本相符,文獻[3]算法的抽取數量總是低于設定的抽取數量,文獻[4]算法與文獻[3]算法相反,該算法抽取的數量總是高于設定的抽取數量。通過上述測試可知,所提算法可精準地抽取所需的信息數量。
將召回率Recall和準確率Precision作為測試指標,測試上述方法的抽取性能:

(19)
式中,X代表的是正確抽取半結構化文本信息的次數;Z代表的是半結構化文本信息沒有被抽取到的次數;Y代表的是錯誤抽取半結構化文本信息的次數。
所提算法、文獻[3]算法和文獻[4]算法的召回率、準確率測試結果如圖1所示。

圖1 不同算法的召回率與準確率對比結果
由圖1中的數據可知,所提算法的召回率均高于80%,準確率均高于90%,而文獻[3]算法和文獻[4]算法的召回率測試結果還是準確率測試結果均低于所提算法,驗證了所提算法具有良好的抽取性能,因為所提算法在抽取半結構化文本信息之前對信息實行了降維處理,將高維原始數據轉變為低維數據,降低了信息抽取的復雜度,進而提高了所提算法的信息抽取性能。
采用所提算法、文獻[3]算法和文獻[4]算法抽取半結構化文本信息,對比不同方法的抽取時間,測試結果如表2所示。

表2 不同方法的抽取時間
分析表2中的數據可知,所提算法、文獻[3]算法和文獻[4]算法的信息抽取時間隨著信息數量的增加不斷增加,在相同信息數量下,所提算法的抽取時間明顯低于其 它兩種算法的抽取時間,且所提算法的抽取時間增加幅度較低,驗證了所提算法具有較高的信息抽取效率。
在信息爆炸背景下,人們開始研究信息抽取技術,以便在海量的信息中抽取用戶所需的信息。目前信息抽取算法存在抽取精度低、召回率低、準確率低和抽取效率低的問題,提出基于機器學習的半結構化文本信息抽取算法,該算法通過信息降維處理,降低了算法的復雜性,進而提高了算法的整體性能,減少了抽取信息所用的時間。