任國華 呂國英 李 茹,2,3 王 燕
1(山西大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 山西 太原 030006) 2(山西大學(xué)計(jì)算智能與中文信息處理教育部重點(diǎn)實(shí)驗(yàn)室 山西 太原 030006) 3(山西省大數(shù)據(jù)挖掘與智能技術(shù)協(xié)同創(chuàng)新中心 山西 太原 030006)
語義知識庫是自然語言處理中的基礎(chǔ)資源,進(jìn)行語義分析時(shí)需要借助語義知識庫[1]。作為一種語義知識庫,由山西大學(xué)2004年開始建立的漢語框架網(wǎng)(CFN)[2]可以在自然語言處理領(lǐng)域進(jìn)行框架語義分析。CFN是由一些語言學(xué)框架組成的,框架是指跟一些激活性語境相一致的結(jié)構(gòu)化范疇系統(tǒng),是儲存在人類認(rèn)知經(jīng)驗(yàn)中的圖式化情境??蚣苷Z義學(xué)[3]認(rèn)為,每個(gè)框架都代表著一個(gè)特定的語義場景,因此,可以根據(jù)語義場景的不同對詞語進(jìn)行分類描述。如果一個(gè)詞語符合某個(gè)框架語義場景,就把它劃分到這個(gè)框架。例如詞元“出售”“售賣”和“零售”等被歸入“出售”框架。已登錄詞是指已經(jīng)被歸入CFN框架的詞,未登錄詞是指暫未被收錄到CFN框架的詞,CFN詞元擴(kuò)充就是為CFN已有框架收集未登錄詞,將語義相同的未登錄詞歸入同一框架。
CFN詞元庫的構(gòu)建主要是翻譯FrameNet[4]已有詞元然后通過手工查找漢語字典對某些框架下的詞元進(jìn)行調(diào)整補(bǔ)充,并不是對全部的漢語詞語做框架語義描述。當(dāng)使用CFN在大規(guī)模真實(shí)文本中進(jìn)行框架語義分析時(shí)會出現(xiàn)未登錄詞,影響文本語義的完整性與準(zhǔn)確性。雖然CFN已經(jīng)應(yīng)用在漢語句子相似度計(jì)算[5]、閱讀理解答案句抽取[6]和漢語連貫性研究[7]等閱讀理解的研究中,但是由于CFN語義資源的詞元覆蓋不全,CFN的應(yīng)用嚴(yán)重受限。
為了緩解人工查找的局限性,本文將研究自動擴(kuò)充CFN詞元庫的方法,提高CFN的覆蓋率,從而擴(kuò)大CFN的應(yīng)用范圍。目前CFN詞元擴(kuò)充任務(wù)主要通過以下兩種框架選擇方法解決。第一種是基于CFN框架分類的方法,利用傳統(tǒng)機(jī)器學(xué)習(xí)的方法將未登錄詞根據(jù)框架的不同進(jìn)行分類;第二種是詞語相似度方法,利用詞語相似度的方法計(jì)算未登錄詞和已登錄詞的語義相似度。然而隨著CFN資源庫的不斷擴(kuò)大,框架類別數(shù)也不斷地增多,使用框架選擇的方法難度較大??蚣苓x擇會涉及多標(biāo)簽問題,因?yàn)橛械脑~語是多義詞,可以被分配到不同的框架(如動詞“打”可以被分配到“使產(chǎn)生身體傷害”“比賽”和“使產(chǎn)生沖擊力”等框架)??蚣苓x擇方法不能自動獲取未登錄詞,需要提前從開放文本中選取一批未登錄詞,實(shí)驗(yàn)結(jié)果受所選取的未登錄詞的影響較大。本文受第二種方法的啟發(fā),給定一個(gè)CFN框架以及該框架下的一個(gè)已登錄詞,為該框架擴(kuò)充與已登錄詞語義相似并且符合該框架的詞,從而避免了以上提出的框架選擇的缺點(diǎn)。
本文采用如下思想解決CFN詞元擴(kuò)充問題:輸入CFN已登錄詞在某一框架下的詞典釋義,輸出字典中符合該釋義的詞語,實(shí)現(xiàn)CFN詞元庫的擴(kuò)充。本文提出融合框架表示的CFN詞元擴(kuò)充模型,主要包括以下兩個(gè)方面的貢獻(xiàn):
(1) 提出一種新的神經(jīng)網(wǎng)絡(luò)模型用于CFN詞元擴(kuò)充。
(2) 第一次將框架名向量融入模型,從而捕獲詞語和框架的相關(guān)性。
英文相關(guān)研究主要以FrameNet詞元庫建設(shè)為代表。Johansson等[8]使用WordNet上位樹分類方法為WordNet中的每個(gè)詞設(shè)計(jì)了一個(gè)特征表示,并且為FrameNet每個(gè)框架訓(xùn)練了一個(gè)SVM分類器,最終在開放文本中獲得68.80%的準(zhǔn)確率。Pennacchiotti等[9]提出基于分布式模型和基于WordNet模型,并將這兩種模型結(jié)合,最終在FrameNet數(shù)據(jù)集的Top10候選框架中取得78%的準(zhǔn)確率。Das等[10]提出基于圖的半監(jiān)督學(xué)習(xí)方法。使用框架語義解析器對沒有標(biāo)簽的數(shù)據(jù)進(jìn)行語義角色標(biāo)注,構(gòu)造了一個(gè)以目標(biāo)詞為頂點(diǎn)的圖,然后使用標(biāo)簽傳播算法為新的謂詞學(xué)習(xí)可能的語義框架,最終在真實(shí)語料中達(dá)到62.35%的準(zhǔn)確率。Tonelli等[11]使用詞義消歧系統(tǒng)進(jìn)行FrameNet已登錄詞和維基百科頁面之間的映射,自動利用維基百科的詞匯擴(kuò)充FrameNet詞元庫,最終在真實(shí)語料中達(dá)到40%的準(zhǔn)確率。英文相關(guān)研究開始時(shí)間較早,研究人員眾多,各種應(yīng)用系統(tǒng)比較成熟,語義資源應(yīng)用廣泛。而中文方面相關(guān)研究較少,框架語義解析器、中文開放詞網(wǎng)和中文維基百科等相關(guān)語義資源和系統(tǒng)的發(fā)展都不成熟,將以上方法直接用于漢語方面的研究較為困難。
中文相關(guān)研究主要以CFN的詞元庫建設(shè)為代表。賈君枝等[12]利用同義詞林,提出了基于語義的向量空間相似度計(jì)算方法,利用基于視覺的網(wǎng)頁數(shù)據(jù)表格定位算法對實(shí)驗(yàn)結(jié)果進(jìn)行評估,最終在257個(gè)頁面得到的準(zhǔn)確率的平均值為85.35%。陳學(xué)麗等[13]利用同義詞林,提出基于平均語義相似度算法和基于最大熵模型的未登錄詞框架選擇方法,最終在開放文本的Top4框架中分別取得78.61%和70.90%的準(zhǔn)確率。但是,當(dāng)時(shí)CFN資源庫的框架總數(shù)僅為180個(gè),如今CFN的框架總數(shù)為1 313個(gè),使用框架分類的方法難度較大。王軍[14]提出基于HowNet和Word2Vec的詞語相似度方法,并且在開放文本中分別獲得70.38%和81.45%的Top4框架準(zhǔn)確率。但是該方法僅限于小規(guī)模的詞元擴(kuò)充,方法過于簡單。
本文提出的融合框架表示的CFN詞元擴(kuò)充模型如圖1所示。模型主要由三部分組成:主模型、局部知識庫得分和最終得分與損失函數(shù)。
圖1 融合框架表示的CFN詞元擴(kuò)充模型結(jié)構(gòu)
2.1.1 詞嵌入
將每個(gè)詞映射到一個(gè)高維的向量空間,本文使用預(yù)先訓(xùn)練好的詞向量(在這里采用Word2Vec)得到定長的詞嵌入。給定一個(gè)句子S={w1,w2,…,wi,…,wn},其中wi表示句子S中的第i個(gè)詞,每個(gè)詞wi的詞嵌入表示xi見式(1)。
xi=ev×t(wi)
(1)
式中:ev×t表示詞向量嵌入映射;v表示詞表大小;t表示向量維度。
2.1.2 框架表示
框架名中包含豐富的語義信息,且框架名可以表示該框架所代表的語義場景,因此本文使用框架名獲得框架的語義表示。本文將框架名當(dāng)作句子進(jìn)行處理,因?yàn)橛械目蚣苊州^長,如框架“驚訝發(fā)現(xiàn)某意外狀況”“信息交流方式”等。本文使用雙向LSTM作為句子編碼器,它將一個(gè)句子編碼為一個(gè)向量,具體見式(2)-式(5)。
(2)
(3)
(4)
(5)
2.1.3 詞典釋義表示
框架語義學(xué)通過建立框架來解釋詞語的意義,框架與詞語具有一定的語義相關(guān)性(如“出售”框架與詞語“出售”“售賣”和“零售”語義相似)。本文使用詞典釋義表示詞語的語義,框架名的語義代表框架,詞典釋義和框架名也有一定的相關(guān)性(如詞語“零售”的詞典釋義“把商品不成批地賣給消費(fèi)者”與框架“出售”語義相似)。同時(shí),框架名與詞典釋義中的每個(gè)詞的語義相關(guān)性具有一定的差異性。為了捕獲這種相關(guān)性與差異性,本文在對詞典釋義表示時(shí)融入了attention機(jī)制,對于與框架名有較強(qiáng)相關(guān)性的詞語,在進(jìn)行高級向量表示時(shí)賦予較高的權(quán)重,具體計(jì)算見式(6)-式(8)。
(6)
式中:Wu1、Wu2和Wu3是可訓(xùn)練的參數(shù);sf是框架名表示;ui是第i個(gè)詞的attention權(quán)重。
接著,將ui歸一化,使得同一個(gè)句子所有詞的權(quán)重值相加為1,如式(6)所示。
(7)
最后的句子表示是輸入序列中每個(gè)詞的隱層向量的權(quán)重和,其計(jì)算式表示為:
(8)
式中:sd∈Re為最終的詞典釋義表示。
2.1.4 主模型得分
本文直接采用sum方式對詞典釋義和框架名進(jìn)行融合,因?yàn)閟um操作能利用兩者的所有信息獲得豐富的語義信息,具體計(jì)算見式(9)。
v=Sd+Sf
(9)
接著,將融合向量v映射到詞向量空間,目的是為了與詞典中的每個(gè)詞計(jì)算相關(guān)程度。式(10)表示將融合向量映射到詞向量空間,式(11)表示使用點(diǎn)乘操作計(jì)算c與詞典中每個(gè)詞w的相關(guān)程度。
c=Wcv+bc
(10)
Scorew,df=c·w
(11)
式中:Wc是權(quán)重參數(shù),bc為偏置參數(shù),均為可訓(xùn)練的參數(shù),隨機(jī)初始化并跟隨模型優(yōu)化;Scorew,df為已登錄詞詞典釋義對詞典中每個(gè)詞的主模型得分。
HowNet和同義詞林等知識庫已被證明能夠有效提高NLP任務(wù)[15],故本文將HowNet和同義詞林融入模型。
2.2.1 局部詞林得分
同義詞林[16]是梅家駒等按詞義分類編著的類義詞典,它將語義相似或者相關(guān)的詞劃分為一個(gè)類別。而CFN也是一個(gè)詞匯分類詞典,把語義相近或相關(guān)的詞放入同一框架。本文假設(shè)CFN同一框架的詞在同義詞林的類別也相同(如“出售”框架下的“出售”“售賣”“零售”在同義詞林中均屬于“He03B01”),將同義詞林中類別相同的詞歸入同一框架。本文首先計(jì)算輸入釋義對全部的同義詞林類別的得分,然后計(jì)算詞典中的詞(同時(shí)也在同義詞林中)在同義詞林的局部得分,具體介紹如下。
本節(jié)設(shè)計(jì)一個(gè)層次預(yù)測器來計(jì)算詞典中的詞在同義詞林的預(yù)測分?jǐn)?shù)。每個(gè)詞都屬于層次結(jié)構(gòu)的每一層中的某個(gè)類別。首先計(jì)算每一層的類別得分,如式(12)所示。
Scorecilin,k=Wcilin,ksd+bcilin,k
(12)
式中:下標(biāo)k表示第k層;Scorecilin,k∈Rck表示輸入釋義序列對第k層每個(gè)類別的得分;ck表示第k層的類別數(shù);sd是詞典釋義表示,Wcilin,k∈Rck×e是權(quán)重矩陣;bcilin,k∈Rck是偏置矩陣。
詞典中的詞在同義詞林的最終預(yù)測得分就是各層分類的預(yù)測得分的加權(quán)和,如式(13)所示。
(13)
2.2.2 局部HowNet得分
在語言學(xué)中,義原是自然語言的最小語義單位[17]。一個(gè)詞的義原集可以準(zhǔn)確地表達(dá)出這個(gè)詞的意思。HowNet[18]是面向義原的知識庫。而CFN也是用來解釋詞語意義的詞匯語義知識庫,框架可以描述詞語及句子的語義[19]。本文假設(shè)同一框架的詞,義原相同或相似(如“出售”框架下的“出售”“售賣”“零售”在HowNet中均有義原“賣”),將義原相同的詞歸入同一框架。本文首先計(jì)算輸入釋義對全部義原的得分,然后計(jì)算詞典中的詞(同時(shí)也在HowNet中)在HowNet的局部得分,具體介紹如下。
首先將詞典釋義的每個(gè)隱藏狀態(tài)傳遞給一個(gè)單層感知器,如式(14)所示。
(14)
(15)
式中:j表示第j個(gè)義原;[Scoresem]j表示輸入序列對第j個(gè)義原的得分。
詞典中的詞w在HowNet的得分計(jì)算式如式(16)所示。
(16)
式中:s表示w的義原;indexsem(s)表示s在所有義原的索引值;[Scoresem]indexsem(s)表示詞典中的詞w對應(yīng)的義原得分。式(16)表示將詞典中的詞對應(yīng)的義原得分相加得到該詞的得分。
將主模型得分Scorew,df和兩個(gè)通道的得分Scorew,cilin、Scorew,sem求加權(quán)和,得到最終的詞典中每個(gè)詞的得分,如式(17)所示。
Scorew=λdfScorew,df+λcilinScorew,cilin+λsemScorew,sem
(17)
式中:λdf、λcilin和λsem是控制相關(guān)權(quán)重的超參數(shù)。
本文使用交叉熵?fù)p失函數(shù)作為該模型的損失函數(shù)。
本文使用PyTorch實(shí)現(xiàn)模型結(jié)構(gòu),所有實(shí)驗(yàn)在NVIDIA GeForce GTX 1080上運(yùn)行。
本文使用現(xiàn)代漢語詞典(第6版)抽取的69 000個(gè)詞的釋義作為訓(xùn)練集。對于現(xiàn)代漢語詞典中的每一個(gè)詞,如果該詞屬于CFN已登錄詞,就在訓(xùn)練集中添加對應(yīng)的CFN框架標(biāo)簽。測試集是CFN數(shù)據(jù)庫的已登錄詞。
詞典編纂任務(wù)中需要較高的準(zhǔn)確率、,因此本文選取準(zhǔn)確率P對實(shí)驗(yàn)結(jié)果進(jìn)行評估。在專家進(jìn)行人工確認(rèn)的基礎(chǔ)上,只要輸出的結(jié)果能和對應(yīng)的測試集輸入的已登錄詞歸入同一個(gè)框架,就代表結(jié)果正確,計(jì)算如式(18)所示。
(18)
式中:C表示結(jié)果正確的詞語個(gè)數(shù);M表示總的輸出個(gè)數(shù)。TopN對應(yīng)的概率表示前N個(gè)結(jié)果的準(zhǔn)確率。
本文參數(shù)設(shè)置如表1所示。
表1 參數(shù)設(shè)置
3.3.1 比較實(shí)驗(yàn)與結(jié)果分析
為了驗(yàn)證本文方法的有效性,設(shè)計(jì)了以下六個(gè)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同方法實(shí)驗(yàn)結(jié)果(%)
前四種方法都是詞語相似度方法,計(jì)算已登錄詞和詞典中每個(gè)詞的詞語相似度,然后將詞典中的詞按照相似度值排列。第五種方法是反向詞典模型。
(1) W2V-Ws:王軍[14]提出的基于Word2Vec詞向量模型的未登錄詞框架選擇方法。
(2) HowNet-Ws:王軍[14]提出的基于HowNet語義詞典的未登錄詞框架選擇方法。
(3) Cilin-Ws:朱新華等[20]提出的基于詞林的詞語語義相似度計(jì)算。
(4) HowNet-Cilin-Ws:將以上基于詞林和基于HowNet詞語相似度計(jì)算方法結(jié)合。
(5) Multi-Channel:Zhang等[15]提出的多通道反向詞典模型。
(6) F-CS-BiLSTM:本文方法。
由表2可以看出:
(1) 本文方法都明顯優(yōu)于其他方法,說明本文方法可以有效地實(shí)現(xiàn)詞元擴(kuò)充。
(2) W2V-Ws、HowNet-Ws和Cilin-Ws三種方法實(shí)驗(yàn)結(jié)果較低,主要原因是這三種方法僅僅利用了詞信息,從而無法捕獲更多的語義信息,導(dǎo)致準(zhǔn)確率較低。HowNet-Cilin-Ws將三種方法進(jìn)行融合,從而提高了實(shí)驗(yàn)結(jié)果。
(3) Multi-Channel和F-CS-BiLSTM方法相對于其他方法的準(zhǔn)確率更高,說明詞典釋義的上下文信息對CFN框架詞元擴(kuò)充是有效的。
(4) F-CS-BiLSTM方法的準(zhǔn)確率優(yōu)于Multi-Channel方法,說明F-CS-BiLSTM方法能夠有效地捕獲框架與詞元的相關(guān)性,提高了實(shí)驗(yàn)結(jié)果。
3.3.2 框架信息對實(shí)驗(yàn)結(jié)果的影響
為了證明框架信息的有效性,設(shè)計(jì)了以下對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表3 有無框架實(shí)驗(yàn)結(jié)果(%)
(1) CS-BiLSTM:無框架信息,其他保持不變。
(2) F-CS-BiLSTM:有框架信息。
由表3可以看出,加入框架信息顯著地提高了實(shí)驗(yàn)結(jié)果,說明了框架信息的有效性。如“探悉”屬于CFN框架“獲知”下的已登錄詞,“探悉”的詞典釋義為“打聽后知道”,既包含打聽的語義又包含知道的語義,CS-BiLSTM方法輸出的結(jié)果為“打探”“探聽”等,預(yù)測結(jié)果側(cè)重于打聽的語義,無法歸入“獲知”框架。加入框架信息后,該詞預(yù)測的實(shí)驗(yàn)結(jié)果為“獲知”“知曉”等,可以與“探悉”歸入同一個(gè)框架。
3.3.3 融合方式對實(shí)驗(yàn)結(jié)果的影響
本文分別對詞典釋義向量和框架名向量使用了max操作、門控機(jī)制和sum操作,實(shí)驗(yàn)結(jié)果如表4所示。
表4 不同融合方式實(shí)驗(yàn)結(jié)果(%)
(1) F-CS-BiLSTM-Max:對詞典釋義向量和框架名向量對應(yīng)維度求最大值。
(2) F-CS-BiLSTM-Gate:使用門控機(jī)制對詞典釋義向量和框架名向量加權(quán)求和。
(3) F-CS-BiLSTM-Sum:將詞典釋義向量和框架名向量對應(yīng)維度相加。
由表4可以看出,F-CS-BiLSTM-Max方法的實(shí)驗(yàn)結(jié)果最低,是因?yàn)镸ax操作選擇了只選了詞典釋義和框架名中值最大的,利用了較少的信息。F-CS-BiLSTM-Sum方法明顯優(yōu)于其他兩種方法,主要是因?yàn)镸ax操作和門控機(jī)制只利用了詞典釋義和框架的部分信息,而相加操作利用了兩者的全部信息,從而融合了更豐富的語義信息,提高了實(shí)驗(yàn)結(jié)果。
3.3.4 不同知識對實(shí)驗(yàn)結(jié)果的影響
為了證明知識庫的有效性,設(shè)計(jì)了以下對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同知識實(shí)驗(yàn)結(jié)果(%)
(1) F-BiLSTM:不加任何知識,只加入框架信息,其他與本實(shí)驗(yàn)一致。
(2) F-C-BiLSTM:只加入詞林和框架信息,其他與本實(shí)驗(yàn)一致。
(3) F-S-BiLSTM:只加入HowNet和框架信息,其他與本實(shí)驗(yàn)一致。
(4) F-CS-BiLSTM:加入詞林、HowNet和框架信息。
由表5可以看出,F-S-BiLSTM、F-C-BiLSTM和F-CS-BiLSTM三種方法都優(yōu)于F-BiLSTM方法,說明加入知識庫的有效性。加入了同義詞林和HowNet的F-CS-BiLSTM方法達(dá)到了最好的效果,說明加入詞林和義原知識能夠融合更多的語義信息,從而提高實(shí)驗(yàn)結(jié)果。
3.3.5 案例分析
為了說明本文方法的有效性,以“詢問”框架的已登錄詞“探問”為例,使用W2V-Ws、Multi-Channel、F-CS-BiLSTM方法的Top10實(shí)驗(yàn)結(jié)果如表6所示。(陰影部分為正確結(jié)果)。
表6 案例
續(xù)表6
可以看出,本文方法Top10正確的詞語最多,說明本文方法對詞元擴(kuò)充任務(wù)是有效的。已登錄詞“探問”的詞典釋義中既包含試探的語義,又包含詢問的語義,只有包含詢問語義的詞才能歸入該框架。W2V-Ws和Multi-Channel的Top10實(shí)驗(yàn)結(jié)果有很多詞只包含試探的語義,如“試探”“揣測”和“斟酌”等,不能歸入“詢問”框架。本文方法的Top10實(shí)驗(yàn)結(jié)果中沒有該類詞語,說明加入框架信息以及attention后,機(jī)器對于釋義中與框架名不相關(guān)性的詞語賦予較低的權(quán)重,而對與框架名相關(guān)的詞語賦予較高的權(quán)重,從而輸出包含“詢問”語義的詞。
本文提出一種融合框架表示的漢語框架網(wǎng)詞元擴(kuò)充方法,通過結(jié)合BiLSTM、注意力機(jī)制、框架定義、Hownet和Cilin擴(kuò)充詞元,充分發(fā)揮各網(wǎng)絡(luò)模型和知識庫的優(yōu)勢。本文將框架名向量融入模型,從而捕獲詞語和框架的相關(guān)性。實(shí)驗(yàn)結(jié)果表明,本文方法達(dá)到了最好的效果,驗(yàn)證了本文方法對CFN詞元庫擴(kuò)充的有效性。但是本文僅僅使用了漢語詞典中的詞語,未來考慮擴(kuò)大詞典大小。另外,本文方法僅僅通過詞典釋義判斷詞典中的詞能否歸入框架,沒有考慮詞語所在例句是否符合框架語義場景。下一步可以考慮在模型中加入例句,進(jìn)一步判斷實(shí)驗(yàn)結(jié)果的準(zhǔn)確性。