任國華 呂國英 李 茹,2,3 王 燕
1(山西大學計算機與信息技術學院 山西 太原 030006) 2(山西大學計算智能與中文信息處理教育部重點實驗室 山西 太原 030006) 3(山西省大數據挖掘與智能技術協同創新中心 山西 太原 030006)
語義知識庫是自然語言處理中的基礎資源,進行語義分析時需要借助語義知識庫[1]。作為一種語義知識庫,由山西大學2004年開始建立的漢語框架網(CFN)[2]可以在自然語言處理領域進行框架語義分析。CFN是由一些語言學框架組成的,框架是指跟一些激活性語境相一致的結構化范疇系統,是儲存在人類認知經驗中的圖式化情境。框架語義學[3]認為,每個框架都代表著一個特定的語義場景,因此,可以根據語義場景的不同對詞語進行分類描述。如果一個詞語符合某個框架語義場景,就把它劃分到這個框架。例如詞元“出售”“售賣”和“零售”等被歸入“出售”框架。已登錄詞是指已經被歸入CFN框架的詞,未登錄詞是指暫未被收錄到CFN框架的詞,CFN詞元擴充就是為CFN已有框架收集未登錄詞,將語義相同的未登錄詞歸入同一框架。
CFN詞元庫的構建主要是翻譯FrameNet[4]已有詞元然后通過手工查找漢語字典對某些框架下的詞元進行調整補充,并不是對全部的漢語詞語做框架語義描述。當使用CFN在大規模真實文本中進行框架語義分析時會出現未登錄詞,影響文本語義的完整性與準確性。雖然CFN已經應用在漢語句子相似度計算[5]、閱讀理解答案句抽取[6]和漢語連貫性研究[7]等閱讀理解的研究中,但是由于CFN語義資源的詞元覆蓋不全,CFN的應用嚴重受限。
為了緩解人工查找的局限性,本文將研究自動擴充CFN詞元庫的方法,提高CFN的覆蓋率,從而擴大CFN的應用范圍。目前CFN詞元擴充任務主要通過以下兩種框架選擇方法解決。第一種是基于CFN框架分類的方法,利用傳統機器學習的方法將未登錄詞根據框架的不同進行分類;第二種是詞語相似度方法,利用詞語相似度的方法計算未登錄詞和已登錄詞的語義相似度。然而隨著CFN資源庫的不斷擴大,框架類別數也不斷地增多,使用框架選擇的方法難度較大。框架選擇會涉及多標簽問題,因為有的詞語是多義詞,可以被分配到不同的框架(如動詞“打”可以被分配到“使產生身體傷害”“比賽”和“使產生沖擊力”等框架)。框架選擇方法不能自動獲取未登錄詞,需要提前從開放文本中選取一批未登錄詞,實驗結果受所選取的未登錄詞的影響較大。本文受第二種方法的啟發,給定一個CFN框架以及該框架下的一個已登錄詞,為該框架擴充與已登錄詞語義相似并且符合該框架的詞,從而避免了以上提出的框架選擇的缺點。
本文采用如下思想解決CFN詞元擴充問題:輸入CFN已登錄詞在某一框架下的詞典釋義,輸出字典中符合該釋義的詞語,實現CFN詞元庫的擴充。本文提出融合框架表示的CFN詞元擴充模型,主要包括以下兩個方面的貢獻:
(1) 提出一種新的神經網絡模型用于CFN詞元擴充。
(2) 第一次將框架名向量融入模型,從而捕獲詞語和框架的相關性。
英文相關研究主要以FrameNet詞元庫建設為代表。Johansson等[8]使用WordNet上位樹分類方法為WordNet中的每個詞設計了一個特征表示,并且為FrameNet每個框架訓練了一個SVM分類器,最終在開放文本中獲得68.80%的準確率。Pennacchiotti等[9]提出基于分布式模型和基于WordNet模型,并將這兩種模型結合,最終在FrameNet數據集的Top10候選框架中取得78%的準確率。Das等[10]提出基于圖的半監督學習方法。使用框架語義解析器對沒有標簽的數據進行語義角色標注,構造了一個以目標詞為頂點的圖,然后使用標簽傳播算法為新的謂詞學習可能的語義框架,最終在真實語料中達到62.35%的準確率。Tonelli等[11]使用詞義消歧系統進行FrameNet已登錄詞和維基百科頁面之間的映射,自動利用維基百科的詞匯擴充FrameNet詞元庫,最終在真實語料中達到40%的準確率。英文相關研究開始時間較早,研究人員眾多,各種應用系統比較成熟,語義資源應用廣泛。而中文方面相關研究較少,框架語義解析器、中文開放詞網和中文維基百科等相關語義資源和系統的發展都不成熟,將以上方法直接用于漢語方面的研究較為困難。
中文相關研究主要以CFN的詞元庫建設為代表。賈君枝等[12]利用同義詞林,提出了基于語義的向量空間相似度計算方法,利用基于視覺的網頁數據表格定位算法對實驗結果進行評估,最終在257個頁面得到的準確率的平均值為85.35%。陳學麗等[13]利用同義詞林,提出基于平均語義相似度算法和基于最大熵模型的未登錄詞框架選擇方法,最終在開放文本的Top4框架中分別取得78.61%和70.90%的準確率。但是,當時CFN資源庫的框架總數僅為180個,如今CFN的框架總數為1 313個,使用框架分類的方法難度較大。王軍[14]提出基于HowNet和Word2Vec的詞語相似度方法,并且在開放文本中分別獲得70.38%和81.45%的Top4框架準確率。但是該方法僅限于小規模的詞元擴充,方法過于簡單。
本文提出的融合框架表示的CFN詞元擴充模型如圖1所示。模型主要由三部分組成:主模型、局部知識庫得分和最終得分與損失函數。

圖1 融合框架表示的CFN詞元擴充模型結構
2.1.1 詞嵌入
將每個詞映射到一個高維的向量空間,本文使用預先訓練好的詞向量(在這里采用Word2Vec)得到定長的詞嵌入。給定一個句子S={w1,w2,…,wi,…,wn},其中wi表示句子S中的第i個詞,每個詞wi的詞嵌入表示xi見式(1)。
xi=ev×t(wi)
(1)
式中:ev×t表示詞向量嵌入映射;v表示詞表大小;t表示向量維度。
2.1.2 框架表示
框架名中包含豐富的語義信息,且框架名可以表示該框架所代表的語義場景,因此本文使用框架名獲得框架的語義表示。本文將框架名當作句子進行處理,因為有的框架名字較長,如框架“驚訝發現某意外狀況”“信息交流方式”等。本文使用雙向LSTM作為句子編碼器,它將一個句子編碼為一個向量,具體見式(2)-式(5)。
(2)
(3)
(4)
(5)

2.1.3 詞典釋義表示

框架語義學通過建立框架來解釋詞語的意義,框架與詞語具有一定的語義相關性(如“出售”框架與詞語“出售”“售賣”和“零售”語義相似)。本文使用詞典釋義表示詞語的語義,框架名的語義代表框架,詞典釋義和框架名也有一定的相關性(如詞語“零售”的詞典釋義“把商品不成批地賣給消費者”與框架“出售”語義相似)。同時,框架名與詞典釋義中的每個詞的語義相關性具有一定的差異性。為了捕獲這種相關性與差異性,本文在對詞典釋義表示時融入了attention機制,對于與框架名有較強相關性的詞語,在進行高級向量表示時賦予較高的權重,具體計算見式(6)-式(8)。
(6)
式中:Wu1、Wu2和Wu3是可訓練的參數;sf是框架名表示;ui是第i個詞的attention權重。
接著,將ui歸一化,使得同一個句子所有詞的權重值相加為1,如式(6)所示。
(7)
最后的句子表示是輸入序列中每個詞的隱層向量的權重和,其計算式表示為:
(8)
式中:sd∈Re為最終的詞典釋義表示。
2.1.4 主模型得分
本文直接采用sum方式對詞典釋義和框架名進行融合,因為sum操作能利用兩者的所有信息獲得豐富的語義信息,具體計算見式(9)。
v=Sd+Sf
(9)
接著,將融合向量v映射到詞向量空間,目的是為了與詞典中的每個詞計算相關程度。式(10)表示將融合向量映射到詞向量空間,式(11)表示使用點乘操作計算c與詞典中每個詞w的相關程度。
c=Wcv+bc
(10)
Scorew,df=c·w
(11)
式中:Wc是權重參數,bc為偏置參數,均為可訓練的參數,隨機初始化并跟隨模型優化;Scorew,df為已登錄詞詞典釋義對詞典中每個詞的主模型得分。
HowNet和同義詞林等知識庫已被證明能夠有效提高NLP任務[15],故本文將HowNet和同義詞林融入模型。
2.2.1 局部詞林得分
同義詞林[16]是梅家駒等按詞義分類編著的類義詞典,它將語義相似或者相關的詞劃分為一個類別。而CFN也是一個詞匯分類詞典,把語義相近或相關的詞放入同一框架。本文假設CFN同一框架的詞在同義詞林的類別也相同(如“出售”框架下的“出售”“售賣”“零售”在同義詞林中均屬于“He03B01”),將同義詞林中類別相同的詞歸入同一框架。本文首先計算輸入釋義對全部的同義詞林類別的得分,然后計算詞典中的詞(同時也在同義詞林中)在同義詞林的局部得分,具體介紹如下。
本節設計一個層次預測器來計算詞典中的詞在同義詞林的預測分數。每個詞都屬于層次結構的每一層中的某個類別。首先計算每一層的類別得分,如式(12)所示。
Scorecilin,k=Wcilin,ksd+bcilin,k
(12)
式中:下標k表示第k層;Scorecilin,k∈Rck表示輸入釋義序列對第k層每個類別的得分;ck表示第k層的類別數;sd是詞典釋義表示,Wcilin,k∈Rck×e是權重矩陣;bcilin,k∈Rck是偏置矩陣。
詞典中的詞在同義詞林的最終預測得分就是各層分類的預測得分的加權和,如式(13)所示。
(13)

2.2.2 局部HowNet得分
在語言學中,義原是自然語言的最小語義單位[17]。一個詞的義原集可以準確地表達出這個詞的意思。HowNet[18]是面向義原的知識庫。而CFN也是用來解釋詞語意義的詞匯語義知識庫,框架可以描述詞語及句子的語義[19]。本文假設同一框架的詞,義原相同或相似(如“出售”框架下的“出售”“售賣”“零售”在HowNet中均有義原“賣”),將義原相同的詞歸入同一框架。本文首先計算輸入釋義對全部義原的得分,然后計算詞典中的詞(同時也在HowNet中)在HowNet的局部得分,具體介紹如下。
首先將詞典釋義的每個隱藏狀態傳遞給一個單層感知器,如式(14)所示。
(14)


(15)
式中:j表示第j個義原;[Scoresem]j表示輸入序列對第j個義原的得分。
詞典中的詞w在HowNet的得分計算式如式(16)所示。
(16)
式中:s表示w的義原;indexsem(s)表示s在所有義原的索引值;[Scoresem]indexsem(s)表示詞典中的詞w對應的義原得分。式(16)表示將詞典中的詞對應的義原得分相加得到該詞的得分。
將主模型得分Scorew,df和兩個通道的得分Scorew,cilin、Scorew,sem求加權和,得到最終的詞典中每個詞的得分,如式(17)所示。
Scorew=λdfScorew,df+λcilinScorew,cilin+λsemScorew,sem
(17)
式中:λdf、λcilin和λsem是控制相關權重的超參數。
本文使用交叉熵損失函數作為該模型的損失函數。
本文使用PyTorch實現模型結構,所有實驗在NVIDIA GeForce GTX 1080上運行。
本文使用現代漢語詞典(第6版)抽取的69 000個詞的釋義作為訓練集。對于現代漢語詞典中的每一個詞,如果該詞屬于CFN已登錄詞,就在訓練集中添加對應的CFN框架標簽。測試集是CFN數據庫的已登錄詞。
詞典編纂任務中需要較高的準確率、,因此本文選取準確率P對實驗結果進行評估。在專家進行人工確認的基礎上,只要輸出的結果能和對應的測試集輸入的已登錄詞歸入同一個框架,就代表結果正確,計算如式(18)所示。
(18)
式中:C表示結果正確的詞語個數;M表示總的輸出個數。TopN對應的概率表示前N個結果的準確率。
本文參數設置如表1所示。

表1 參數設置
3.3.1 比較實驗與結果分析
為了驗證本文方法的有效性,設計了以下六個實驗,實驗結果如表2所示。

表2 不同方法實驗結果(%)
前四種方法都是詞語相似度方法,計算已登錄詞和詞典中每個詞的詞語相似度,然后將詞典中的詞按照相似度值排列。第五種方法是反向詞典模型。
(1) W2V-Ws:王軍[14]提出的基于Word2Vec詞向量模型的未登錄詞框架選擇方法。
(2) HowNet-Ws:王軍[14]提出的基于HowNet語義詞典的未登錄詞框架選擇方法。
(3) Cilin-Ws:朱新華等[20]提出的基于詞林的詞語語義相似度計算。
(4) HowNet-Cilin-Ws:將以上基于詞林和基于HowNet詞語相似度計算方法結合。
(5) Multi-Channel:Zhang等[15]提出的多通道反向詞典模型。
(6) F-CS-BiLSTM:本文方法。
由表2可以看出:
(1) 本文方法都明顯優于其他方法,說明本文方法可以有效地實現詞元擴充。
(2) W2V-Ws、HowNet-Ws和Cilin-Ws三種方法實驗結果較低,主要原因是這三種方法僅僅利用了詞信息,從而無法捕獲更多的語義信息,導致準確率較低。HowNet-Cilin-Ws將三種方法進行融合,從而提高了實驗結果。
(3) Multi-Channel和F-CS-BiLSTM方法相對于其他方法的準確率更高,說明詞典釋義的上下文信息對CFN框架詞元擴充是有效的。
(4) F-CS-BiLSTM方法的準確率優于Multi-Channel方法,說明F-CS-BiLSTM方法能夠有效地捕獲框架與詞元的相關性,提高了實驗結果。
3.3.2 框架信息對實驗結果的影響
為了證明框架信息的有效性,設計了以下對比實驗,實驗結果如表3所示。

表3 有無框架實驗結果(%)
(1) CS-BiLSTM:無框架信息,其他保持不變。
(2) F-CS-BiLSTM:有框架信息。
由表3可以看出,加入框架信息顯著地提高了實驗結果,說明了框架信息的有效性。如“探悉”屬于CFN框架“獲知”下的已登錄詞,“探悉”的詞典釋義為“打聽后知道”,既包含打聽的語義又包含知道的語義,CS-BiLSTM方法輸出的結果為“打探”“探聽”等,預測結果側重于打聽的語義,無法歸入“獲知”框架。加入框架信息后,該詞預測的實驗結果為“獲知”“知曉”等,可以與“探悉”歸入同一個框架。
3.3.3 融合方式對實驗結果的影響
本文分別對詞典釋義向量和框架名向量使用了max操作、門控機制和sum操作,實驗結果如表4所示。

表4 不同融合方式實驗結果(%)
(1) F-CS-BiLSTM-Max:對詞典釋義向量和框架名向量對應維度求最大值。
(2) F-CS-BiLSTM-Gate:使用門控機制對詞典釋義向量和框架名向量加權求和。
(3) F-CS-BiLSTM-Sum:將詞典釋義向量和框架名向量對應維度相加。
由表4可以看出,F-CS-BiLSTM-Max方法的實驗結果最低,是因為Max操作選擇了只選了詞典釋義和框架名中值最大的,利用了較少的信息。F-CS-BiLSTM-Sum方法明顯優于其他兩種方法,主要是因為Max操作和門控機制只利用了詞典釋義和框架的部分信息,而相加操作利用了兩者的全部信息,從而融合了更豐富的語義信息,提高了實驗結果。
3.3.4 不同知識對實驗結果的影響
為了證明知識庫的有效性,設計了以下對比實驗,實驗結果如表5所示。

表5 不同知識實驗結果(%)
(1) F-BiLSTM:不加任何知識,只加入框架信息,其他與本實驗一致。
(2) F-C-BiLSTM:只加入詞林和框架信息,其他與本實驗一致。
(3) F-S-BiLSTM:只加入HowNet和框架信息,其他與本實驗一致。
(4) F-CS-BiLSTM:加入詞林、HowNet和框架信息。
由表5可以看出,F-S-BiLSTM、F-C-BiLSTM和F-CS-BiLSTM三種方法都優于F-BiLSTM方法,說明加入知識庫的有效性。加入了同義詞林和HowNet的F-CS-BiLSTM方法達到了最好的效果,說明加入詞林和義原知識能夠融合更多的語義信息,從而提高實驗結果。
3.3.5 案例分析
為了說明本文方法的有效性,以“詢問”框架的已登錄詞“探問”為例,使用W2V-Ws、Multi-Channel、F-CS-BiLSTM方法的Top10實驗結果如表6所示。(陰影部分為正確結果)。

表6 案例

續表6
可以看出,本文方法Top10正確的詞語最多,說明本文方法對詞元擴充任務是有效的。已登錄詞“探問”的詞典釋義中既包含試探的語義,又包含詢問的語義,只有包含詢問語義的詞才能歸入該框架。W2V-Ws和Multi-Channel的Top10實驗結果有很多詞只包含試探的語義,如“試探”“揣測”和“斟酌”等,不能歸入“詢問”框架。本文方法的Top10實驗結果中沒有該類詞語,說明加入框架信息以及attention后,機器對于釋義中與框架名不相關性的詞語賦予較低的權重,而對與框架名相關的詞語賦予較高的權重,從而輸出包含“詢問”語義的詞。
本文提出一種融合框架表示的漢語框架網詞元擴充方法,通過結合BiLSTM、注意力機制、框架定義、Hownet和Cilin擴充詞元,充分發揮各網絡模型和知識庫的優勢。本文將框架名向量融入模型,從而捕獲詞語和框架的相關性。實驗結果表明,本文方法達到了最好的效果,驗證了本文方法對CFN詞元庫擴充的有效性。但是本文僅僅使用了漢語詞典中的詞語,未來考慮擴大詞典大小。另外,本文方法僅僅通過詞典釋義判斷詞典中的詞能否歸入框架,沒有考慮詞語所在例句是否符合框架語義場景。下一步可以考慮在模型中加入例句,進一步判斷實驗結果的準確性。