宮法明,朱朋海
(中國石油大學(華東)計算機與通信工程學院,青島 266580)
語義是指信息包含的概念和意義.語義不僅表述事物本質,還表述事物之間的因果、上下位、施事等各種邏輯關系.因此,語義是對事物的描述和邏輯表示.語義分析就是對信息所包含的語義的識別,并建立一種計算模型,使其能夠像人那樣理解自然語言.語義分析是自然語言理解的根本問題,它在自然語言處理、信息檢索、信息過濾、信息分類、語義挖掘等領域有著廣泛的應用.在互聯網時代,面對海量的信息資源,要想準確地進行信息抽取,檢索所需信息、挖掘潛在的信息價值、提供智能的知識服務,都離不開面向機器理解的語義分析.尤其在大數據環境下,語義分析的地位越來越凸顯出來[1].
關于語義分析研究方法主要有基于專業詞典的方法[2–4]、基于詞匯-句法模式的方法[5-6]、基于Harris假設的方法[7–9]、基于關聯規則的方法[10,11]、基于模式匹配的方法和幾種方法的混合方法.但這些方法存在很大的局限性,無法涵蓋所有的內容,不能針對石油領域組合詞多的特點進行語義識別,沒有領域適應性.
為了克服以上算法的缺點,本文提出了一種基于改進詞向量的語義關系識別模型,該模型克服了傳統詞向量訓練模型固定大小的缺點,考慮到句子的完整性對詞向量訓練的重要作用.具體地,以CBOW模型為基礎,在輸入層前增加一個預處理層,對句子進行預處理,轉換成統一輸入格式,方便進行訓練.為了適應石油領域組合詞以及具有父子關系的詞多的特點,對訓練語料進行擴展,增加正樣本訓練比重,使訓練結果更加準確.通過負采樣和二次采樣提高訓練效率和訓練精度.將訓練好的詞向量進行代數運算提取特征進行SVM分類識別出語義關系.對樣本的準確率、召回率和F值進行計算分析,與傳統的CBOW模型相比,我們的語義關系識別效果更好.本文貢獻如下所示:
(1)提出了一種適用石油領域改進的詞向量訓練方法;
(2)本文提出的詞向量能夠準確識別石油文檔中的類義關系;
(3)為石油文檔語義識別提供了一個思路.
本文章安排具體如下:第2節介紹相關理論與方法;第3節介紹改進的詞向量表示方法;第4節是實驗結果及分析;最后對本文工作進行了總結,并指出為未來的工作方向.
基于詞向量的文檔語義識別,通過對語料庫中的文本進行分詞處理,統計各個詞語出現的頻率,采用one-hot表示方法初始化詞向量,構建詞語矩陣,利用矩陣變換訓練調整詞向量.該算法有簡單方便、易于訓練、效果好等優點,但也有領域適應性差、計算復雜、效率低等缺點.周慧霞[12]提出了一種基于詞向量的中文詞匯蘊含關系識別方法,利用詞向量技術對維基百科上的的語料進行訓練,設計詞向量分類特征進行詞匯蘊含關系的識別.由于石油領域組合詞多,該方法領域適用性差,并不適用石油領域,并且也不能識別上下義關系.蔣振超[13]等提出了一種新的基于神經網絡的詞向量訓練模型,借助大規模文本數據,利用依存關系和上下文關系來訓練詞向量.但此方法需要依據大規模文本數據,由于石油行業的保密性較強,無法提供充分的文本數據進行訓練.杜漫[14]等提出了一種面向情緒分類的融合詞內部信息和情緒標簽的詞向量學習方法.在CBOW模型基礎上,引入詞內部成分和情緒標簽信息,以適應微博情緒表達的不規范,但這種方法只針對微博信息進行處理,領域性太強,不適合石油領域.
盡管他們能夠取得比較好的語義關系識別結果,但都沒有領域針對性,對領域專業詞之間的語義關系識別效果并不太好.在本文中,我們提出了一種基于改進詞向量的石油文檔語義識別模型算法,該算法能夠很好的識別領域專業詞語之間的語義關系,特別是針對石油領域這樣組合詞多的領域.
CBOW模型是常用的詞向量訓練模型,CBOW模型的訓練輸入是一個特征詞的上下文相關詞對應的詞向量,而輸出就是這特定詞的詞向量.CBOW模型的結構如圖1,該模型一方面根據C&W[15]模型的經驗,使用一段文本的中間詞作為目標詞;另一方面,又以NNLM[16,17]作為藍本,并在其基礎上做了兩個簡化.

圖1 CBOW模型結構圖
(1)CBOW沒有隱藏層,去掉隱藏層之后,模型從神經網絡結構直接轉化為log線性結構,與Logistic回歸一致.log線性結構比三層神經網絡結構少了一個矩陣運算,大幅度地提升了模型的訓練速度.
(2)CBOW去除了上下文各詞的詞序信息,使用上下文各詞詞向量的平均值,代替神經網絡語言模型使用的上文各詞詞向量的拼接.形式化地,CBOW模型對于一段訓練樣本wi?(n?1),···,wi,輸入為:

由于沒有隱藏層,CBOW模型的輸入層直接就是上下文的表示.CBOW模型根據上下文的表示,直接對目標詞進行預測:

上述二式中,目標詞w和上下文c的定義與C&W模型中的公式一致.e為詞語w的詞向量.對于整個語料而言,與神經網絡語言模型類似,CBOW的優化目標為最大化:

石油領域文檔具有組合詞和上下義關系詞多的特點,傳統的CBOW訓練方法固定上下文,沒有針對石油領域文檔的特點進行訓練,不具有領域針對性,對石油領域的詞語訓練結果較差.本文提出的改進的詞向量訓練方法,是在CBOW模型的基礎上進行改進的.例如“游梁式抽油機”、“抽油機”和“磕頭機”等,“游梁式抽油機”、“抽油機”和“磕頭機”具有相似的上下文語義結構,所以訓練“游梁式抽油機”、“抽油機”和“磕頭機”采用的語料包括“抽機油”的上下文、“磕頭機”的上下文和“游梁式抽油機”的上下文,強化正樣本.其次,詞語包含在句子中,每個詞語受同一句中的詞語影響較大,受不同句中的詞語影響較小.對詞語進行訓練的時候,選取包含詞語所在句子為原則,然后進行語料擴充,而不是采用CBOW的固定上下文.
首先按照石油詞典找出石油領域專業詞語w,找出w的組合詞v1,···,vm.選取中心詞wi所在的句子作為待處理語料,獲取句子長度l與中心詞在句子中的位置i,計算中心詞與句子兩端的距離l1=i,l2=l?i,訓練窗口為nw.

選取wi上下文長度為nw的詞語wi?(nw?1)/2,···,wi+(nw?1)/2.選取中心詞wi的組合詞v1,···,vm進行同樣預處理,獲取v1,···,vm上下文詞語w1i?(nv1?1)/2,···,w1i+(nv1?1)/2,w2i?(nv2?1)/2,···,w2i+(nv2?1)/2,···,wmi?(nvm?1)/2,···,wmi+(nvm?1)/2.將wi與v1,···,vm的訓練語料進行合并,制作新的訓練數據集c={wi?(nw?1)/2,···,wi+(nw?1)/2,w1i?(nv1?1)/2,···,w1i+(nv1?1)/2,···,wmi?(nvm?1)/2,···,wmi+(nvm?1)/2},公式(1)變成

(1)負采樣技術
為了進一步提升最后一層的效率,借鑒C&W模型采用的構造負樣本的方法,提出了負采樣技術.通過構造優化目標,實現最大化正樣本的似然,同時最小化負樣本的似然.使用負采樣,對語料庫進行排序,通過隨機選取一個較少數目的負樣本來更新對應的權重,并且仍然為正樣本更新對應的權重,如果選到自己就跳過重新選擇.
(2)二次采樣技術
在大規模語料中,高頻詞通常就是停用詞(如英語中的“the”、漢語中的“的”).一方面,這些高頻詞只能帶來非常少量的語義信息,比如幾乎所有的詞都會和“的”共同出現,但是并不能說明這些詞的語義都相似.另一方面,訓練高頻詞本身占據了大量的時間,但在迭代過程中,這些高頻詞的詞向量變化并不大.為了解決這一問題,提出了二次采樣技術,具體而言,如果詞w在語料中的出現頻率大于閾值t,則有的概率在訓練時跳過這個詞.

本文利用多個向量多個特征進行語義識別,對于兩個向量u=<u1,···,un>和v=<v1,···,vn>,如果兩個詞語具有相似關系,則兩個向量在同維度上的分量也具有相似關系,他們的向量差就很小,某一維度的分量和就很大.各個向量特征定義如下:
向量差特征:

向量和特征:

向量乘特征:

向量連接特征:

本算法是基于改進詞向量模型實現的,根據石油領域文檔組合詞多的特點,實現適合石油領域詞向量的訓練模型,利用詞向量的加、減、乘和連接特征訓練SVM分類器進行語義識別.具體實現算法如下:
(1)利用隱馬爾科夫模型對文檔D進行分詞處理,將文檔分成單詞的詞語,構建語料庫S;
(2)對單詞進行詞頻統計,利用詞頻夠將初始化詞向量;
(3)利用石油詞典找出待訓練的石油專業術語w,統計術語所在句子長度l和相關的組合詞v1,···,vm等信息;
(4)利用w的上下文詞語和v1,···,vm的上下文詞語,結合負采樣和二次采樣對w進行詞向量訓練,得到詞語w的詞向量;
(5)對訓練好的詞向量進行向量差、和、乘和連接特征計算,進行語義關系標記,制作訓練數據集;
(6)將訓練好的數據集導入SVM分類器進行語義關系訓練;
算法流程圖如圖2所示.
本文基于中文維基百科語料庫和100篇石油文檔,涵蓋了油氣地質勘探、油氣田開發與開采等石油領域的10個子學科,每個子學科10篇文檔.然后利用3.5節所述特征,利用libsvm工具進行訓練詞匯語義關系SVM分類器,最后在測試語料庫上對識別效果進行綜合評價.
首先從維基百科的語料庫中下載中文維基百科數據集并進行處理,將100篇石油文檔進行處理制作數據集,然后用隱馬爾科夫模型進行分詞和詞性標注,制作成語料庫.然后利用word2vec對語料進行訓練,得到50維、100維、200維和400維詞向量.
利用是有詞典查找語料庫中包含的具有代表性的石油專業術語150個,制作語義關系訓練數據集,三類關系分別提取1500個詞對.每類關系取1000個詞對作為訓練集,500個詞對作為測試集.本文模型及參數設置如表2所示.

圖2 語義識別流程圖

表1 模型參數設置表
為了準確定義評價指標,定義一個評價矩陣C(2×3),cij(i∈{1,2,3},j∈{0,1})表示詞對數量,i表示關系類別(包括上下義關系、總分關系和類義關系),j=0表示關系識別錯誤,j=1表示關系識別正確.本文使用準確率、召回率和F值對本文提出的方法進行評價.其中,準確率是語義關系識別正確的詞語數與具有語義關系詞語總數的比率,衡量的是語義關系識別結果的查準率;召回率是語義關系識別正確的詞語數與實際具有語義關系詞語總數的比率,衡量的是語義關系識別結果的查全率.兩者取值在0和1之間,數值越接近1,準確率或召回率就越高,定義如下:


基于4.1節所述數據集,利用第3節所述方法進行試驗,最后在測試集上進行評價.
表2給出了三種關系分別在50維、100維、200維和400維的詞向量表示條件下,基于向量差、向量和、向量和乘和向量連接這4中不同分類特征時SVM分類的F值.

表2 不同詞向量維度、不同特征下語義關系識別F值
為了更直觀的觀察不同維度對語義關系識別的效果,將表2中的數據以折線圖的形式進行展示,如圖3、圖4、圖5所示.
從表2和圖3、圖4、圖5中可以看出,不同詞向量維度和向量特征對詞匯語義關系的識別有一定的差異.總體來看,當詞向量維度越大時,識別效果越好.向量和對上下義關系識別較好,而向量乘則對總分關系識別較好.綜合識別效果和計算復雜度等因素,最終選擇維度為200的詞向量進行特征組合試驗,測試不同特征對識別效果的影響,實驗結果如表3和圖6所示.

圖3 不同詞向量維度下的上下義關系F值

圖4 不同詞向量維度下的總分關系F值

圖5 不同詞向量維度下的類義關系F值

表3 不同特征組合時的三種語義關系識別F值

圖6 不同特征下三種關系F值
實驗結果表明,在使用單個特征進行識別時,fadd特征的綜合性最好.因此在的基礎上再組合其他特征.通過表3和圖6可以看出,隨著特征的增加,識別效果的F值也在增加,說明增加特征可以提高語義關系的識別效果.當四種特征全部組合時,識別效果達到最好,三種語義關系的F值分別達到了0.791、0.784和0.802,效果非常好.
最后與傳統CBOW模型訓練的詞向量進行試驗對比,維度為200維,特征包含向量差、和、乘、連接四種特征,實驗結果如表4和圖7所示.

表4 傳統CBOW模型詞向量與改進詞向量F值

圖7 不同傳統CBOW模型詞向量與改進詞向量F值
實驗結果表明,傳統CBOW模型詞向量對上下義關系、總分關系和類義關系識別的F值分別為0.655、0.701和0.687,改進的詞向量對三種關系的識別F值分別為0.791、0.784和0.802.改進的詞向量相對于傳統的詞向量,對三種語義關系的識別效果提高了20.8%、11.8%和16.7%,識別效果提高顯著.
石油領域文檔的語義關系識別是構建石油領域本體的重要步驟.本文提出基于改進詞向量的石油文檔語義關系識別算法,利用CBOW模型對是由專業術語進行擴展訓練,增加正樣本權重,結合負采樣和二次采樣提高準確率和效率,再利用SVM對語義關系進行識別.實驗結果表明,本文提出的方法在石油領域專業術語語義關系識別方面具有明顯的優勢.結合“向量差”、“向量和”、“向量乘”和“向量并”特征,在語義關系識別方面具有很好的效果.同時,各種特征及其組合特征在測試集上的F值大部分都在0.8以下,說明語義關系識別仍然不夠準確.在下一步工作中,尋求更好的分類特征和新的詞向量表示形式是研究重點.