張春祥,周雪松,高雪瑤,劉 歡
(哈爾濱理工大學 計算機科學與技術學院,黑龍江 哈爾濱 150080)
提高詞義消歧的準確率是自然語言處理中的一個重要課題。通常,使用圖來描述詞義消歧問題。利用圖中的結點來表示詞,使用圖中的邊來表示詞之間的關聯關系。此時,詞義消歧過程將轉化為圖的求解問題。文獻[1-4]使用圖的思想,將詞匯單元作為圖中的結點,利用邊來描述上下文語義距離及關系,達到詞義消歧的目的。TRIPODI等[5]提出了一種基于進化博弈論的詞義消歧模型。利用分布信息來衡量每個單詞對其它單詞的影響,利用語義相似性來度量不同選擇之間的兼容性。ERK等[6]提出了兩種新的注釋方案,詞義相似度(Word Sense SIMilarity,WSSIM)注釋和使用相似度(Usage SIMilarity,USIM)注釋,在上下文中以分級的方式來描述詞義。LOPEZ等[7]描述了一種通過選擇歧義詞最佳詞義來實現特定領域的詞義消歧(Word Sense Disambiguation,WSD)方法。文獻[8-9]利用Web搜索引擎來獲取詞典資源,通過計算語義相似度來完成詞義消歧任務。目前,神經網絡在自然語言處理相關領域有著廣泛的應用[10-12]。PESARANGHADER等[13]利用深度學習算法來提取語料中的關鍵特征,從而確定歧義詞匯的語義類別。CALVO等[14]提出了一種不限制固定語料集的深層神經網絡詞義消歧方法。RUAS等[15]根據歧義詞的多種語義和歧義詞所在上下文中的特定語義,建立多語義嵌入模型來進行消歧和標注。文獻[16-17]利用WordNet和HowNet中的語義注釋和語義關系,挖掘了義原之間的深度和密度對語義相似度的影響。唐善成等[18]提出了基于Seq2Seq模型的非受限詞義消歧方法。楊安等[19]利用無標注文本構建詞向量模型,結合特定領域的關鍵詞信息,提出了一種新的詞義消歧方法。通過引入不同的領域知識,證明該方法也可用于其它領域的文本消歧任務。LI等[20]給出了一種基于雙向長短期記憶網絡的語言模型用于抽取高質量的上下文表示,并將其應用于生物醫藥領域的詞義消歧。
筆者提出了一種結合k均值聚類與長短期記憶網絡的半監督詞義消歧模型。以歧義詞匯為中心,從左右鄰接的4個詞匯單元中提取詞形和語義類作為聚類特征,利用k均值聚類方法對無標注語料進行聚類。將聚類得到的無標注語料添加到SemEval-2007:Task#5的訓練語料中,提取詞形、詞性、語義類、英文譯文和消歧距離作為消歧特征,利用長短期記憶網絡來確定歧義詞匯的正確含義。
在歧義詞匯的上下文中,包含了很多有效的信息,可以用于文本聚類和確定歧義詞匯的正確含義。每一個詞匯單元都包含了若干種特征。這些特征可以用于文本的加工處理。在歧義詞匯的上下文中,主要包括詞法、語義和句法等語言學知識。其中,詞法知識主要包括詞匯的詞形和詞性。這是一種比較容易獲取也比較精確的知識。語義知識主要以語義類和同義詞的形式體現。詞匯單元的語義知識可以從語義詞典中獲取。因此,語義知識也是一種比較可靠的語言學信息。句法知識主要描述構成成分之間關聯關系。因為現有的句法分析工具的性能較差,所以獲取的句法知識不夠準確。以歧義詞匯為中心,從其左右鄰接的4個詞匯單元中,提取了5種特征用于無標注語料聚類和詞義消歧。
詞形:指詞的形態。在漢語中,單個字或詞語的形態即為詞形。
語義類:按照語義關系,可以將詞分類。在不同語境中,歧義詞匯被劃分的語義類有所不同。
詞性:指詞的特點。漢語共有14種詞性,如名詞和動詞等。在不同的語境下,歧義詞匯具有不同的詞性。
英文譯文:根據語義環境,可將歧義詞匯翻譯成不同的英語譯文。
消歧距離:以歧義詞匯為中心,能夠計算出其它詞匯與歧義詞匯之間的距離。距離越遠,對歧義詞匯的消歧影響就越小。
在特征提取過程中,對漢語句子進行分詞、詞性標注、語義類標注、譯文翻譯并計算消歧距離。根據停用詞表去掉“了”“的”等無實際意義的詞匯,得到了包含各種語言學信息的語料。
以包含歧義詞匯“成立”的漢語句子為例,其特征提取過程如下所示:
漢語句子:上月,日本成立了“美林證券公司”
分詞結果:上月,日本 成立 了 “美林 證券 公司”
詞性標注結果:上月/nt,/wp 日本/ns 成立/v 了/u “/wp 美林/nz 證券/n 公司/n”/wp
語義類標注結果:上月/nt/C,/wp/-1 日本/ns/-1 成立/v/H 了/u/K “/wp/-1 美林/nz/-1 證券/n/-1 公司/n/D”/wp/-1
去停用詞結果:上月/nt/C 日本/ns/-1 成立/v/H 美林/nz/-1 證券/n/-1 公司/n/D
如圖1所示,以“成立”為中心,選取其左側第二個詞匯單元UL2=“上月”;左側第一個詞匯單元UL1=“日本”;右側第一個詞匯單元UR1=“美林”;右側第二個詞匯單元UR2=“證券”。

圖1 特征提取過程
筆者提出了一種半監督詞義消歧方法,包括無標注語料聚類和詞義消歧兩個部分。消歧框架如圖2所示。以歧義詞匯w為中心,選取其左右各兩個詞匯單元,提取詞形和語義類作為聚類特征。利用word2vec工具將聚類特征轉換為二進制數。得到包含歧義詞匯w的有標注聚類特征向量集合SCY和無標注聚類特征向量集合SCN。對于任意f∈SCY或f∈SCY,有f=(WL2,SL2,WL1,SL1,WR1,SR1,WR2,SR2)。
當數據規模較大時,k均值聚類方法保持了很好的可伸縮性和高效性。因此,以SCY為基礎利用k均值聚類方法對SCN進行聚類。假設歧義詞匯w有n個語義類S1,S2,…,Sn。在SCY中隨機選取n個聚類中心Ci(i=1,2,…,n)。使用詞形和語義類作為聚類特征,各個聚類特征彼此獨立,不存在關聯關系。因此,使用歐氏距離來度量兩個特征向量之間的距離。對于任意無標注聚類實例f∈SCN,計算f到聚類中心Ck(k=1,2,…,n)的距離:
(1)
其中,|fj-Ck,j|為向量fj與Ck,j之間的歐氏距離。
計算f到n個聚類中心的最小距離dmin:
(2)
利用式(3)選出與f距離最小的第t個聚類中心:
(3)
若dmin<δ,則f的語義類別置為St,否則,f仍然是無標注聚類實例。其中,δ為設定的閾值。迭代上述過程,直到聚類中心不再發生變化或達到最大迭代次數為止。
在確定歧義詞匯w語義類的過程中,提取w的消歧特征。利用word2vec工具將消歧特征轉換為二進制數,得到消歧特征向量集合SWSD。對于任意f∈SWSD,有f=(WL2,SL2,PL2,TL2,GL2,WL1,SL1,PL1,TL1,GL1,WR1,SR1,PR1,TR1,GR1,WR2,SR2,PR2,TR2,GR2)。
將SWSD輸入長短期記憶網絡進行詞義消歧。長短期記憶網絡分為輸入層、隱藏層和輸出層。對于消歧實例f∈SWSD,輸入層結點首先接受左側第二個詞匯單元的特征向量(WL2,SL2,PL2,TL2,GL2),并將其送入對應的隱藏層結點進行計算。隱藏層結點計算完畢后,將計算結果送入對應的輸出層結點。輸出層結點調用softmax函數,計算語義類分布向量O1。重復上述過程,直到輸入層結點接受右側第二個詞匯單元的特征向量(WR2,SR2,PR2,TR2,GR2)進行計算,輸出層結點輸出最終語義類分布向量O4。
在圖2中,U表示輸入層結點與隱藏層結點之間的連接權值矩陣;D表示相鄰兩個隱藏層結點之間的連接權值矩陣;V表示隱藏層結點與輸出層結點之間的連接權值矩陣。矩陣U、D和V是長短期記憶網絡模型的訓練參數。在開始訓練之前,將矩陣U、D和V隨機初始化為很小的數值。

圖2 半監督詞義消歧框架
以有標注語料為基礎,利用k均值聚類方法對無標注語料進行聚類,聚類過程如下所示。
輸入:包含歧義詞匯w的有標注聚類特征向量集合SCY=L1∪L2∪…∪Ln(Li為語義類為Si的有標注聚類特征向量集合,且La∩Lb=?,a≠b);包含歧義詞匯w的無標注聚類特征向量集合SCN;聚類類別數n;閾值δ。
輸出:聚類后的有標注聚類特征向量集合SCY。
(Ⅰ)初始化
從Li中隨機選取一個特征向量作為Li的初始聚類中心Ci(i=1,2,…,n),初始化最大迭代次數T。
(Ⅱ)循環迭代聚類
fort=1,2,…,T{
(1)while(SCN≠?){
① 任選f∈SCN,利用式(2)計算f到n個聚類中心的最小距離dmin
② 利用公式(3)選出與f距離最小的第t個聚類
③ if(dmin<δ){
a.f的語義類別置為St;
b.SCN=SCN-{f};
c.Lt=Lt∪{f};
}
}
(2)利用式(4)計算更新聚類中心之前的向量與中心距離的累計Jbefore:
(4)
(3)利用式(5)更新聚類中心Ci(i=1,2,…,n):
(5)
(4)利用式(6)計算更新聚類中心之后的向量與中心距離的累計Jafter:
(6)
(5)利用式(7)計算兩次迭代之間的誤差ΔJ:
ΔJ=Jbefore-Jafter。
(7)
(6)if(|ΔJ|<δ)
輸出SCY=L1∪L2∪…∪Ln;break
}
(Ⅲ)if(達到最大迭代次數T)
輸出SCY=L1∪L2∪…∪Ln。
長短期記憶網絡是一種基于時間維度的模型,其隱藏層可以在時間維度上展開。將長短期記憶網絡的隱藏層層數設置為2。以包含歧義詞匯“成立”的消歧實例為例,展開后的長短期記憶網絡模型如圖3所示。

圖3 長短期記憶網絡網絡隱藏層展開圖
圖3中,每個長短期記憶網絡細胞都具有3個門:遺忘門、輸入門和輸出門,具體結構如圖4所示。

圖4 長短期記憶網絡的細胞結構
長短期記憶網絡的訓練過程分為前向傳播過程和后向反饋過程。具體訓練過程如下所示。
在前向傳播過程中,根據t時刻所接受的特征向量Ft和t-1時刻的隱藏層結點狀態At-1來計算t時刻的語義類概率分布向量Ot。具體步驟如下:
輸入:歧義詞匯w的消歧特征向量集合SWSD,隱藏層數m=2。

(Ⅰ)將f=(WL2,SL2,PL2,TL2,GL2,WL1,SL1,PL1,TL1,GL1,WR1,SR1,PR1,TR1,GR1,WR2,SR2,PR2,TR2,GR2)的子向量分別賦值給時序向量,f∈SWSD;
F1=(WL2,SL2,PL2,TL2,GL2);F2=(WL1,SL1,PL1,TL1,GL1)F3=(WR1,SR1,PR1,TR1,GR1);F4=(WR2,SR2,PR2,TR2,GR2)
(Ⅱ)初始化隱藏層結點,狀態為A0,輸出門為h0;
(Ⅲ)輸入層結點將時序向量Ft(t=1,2,3,4)送入隱藏層進行計算:
for(t=1;t≤4;t++){
(1)for(n=1;n≤m;n++){
① 遺忘門計算需要保留的有效信息ft,如式(8)所示:
ft=sig mod(U·[ht-1,Ft]+bf) ,
(8)
其中,ht-1為t-1時刻隱藏層結點輸出門的輸出,bf為偏移向量。
② 輸入門接受有效信息ft,進行以下運算:
a.計算t時刻隱藏層結點需要接受的新信息it:
it=sig mod(U·[ht-1,Ft]+bi) ,
(9)
其中,bi為偏移向量。

(10)
其中,bc為偏移向量。
c.更新t時刻隱藏層結點的狀態,如式(11)所示:
(11)
③ 輸出門計算t時刻隱藏層結點需要遺忘的信息ht,如式(12)和式(13)所示:
ot=sig mod(U·[ht-1,Ft]+bo) ,
(12)
ht=ottanh(At) ,
(13)
其中,bo為偏移向量。
④At進入下一鄰接層。
}
(2)計算t時刻輸出層結點的語義類概率分布向量Ot:
(14)

(15)

}


(16)
(17)
(3)更新權值矩陣θ={U,V,D}:
(18)
(19)
(4)循環執行步驟(1)~(3)來更新參數θ。如果參數θ收斂,那么長短期記憶網絡訓練結束。

長短期記憶網絡隱藏層的層數將直接影響到模型訓練的效果。為了探究隱藏層數對消歧正確率的影響,此處共進行了3組對比實驗。采用SemEval-2007:Task#5的訓練語料和測試語料來進行實驗。選取2類歧義詞匯16個,3類歧義詞匯10個,4類歧義詞匯3個。訓練語料和測試語料的分布情況如圖5所示。

圖5 訓練語料和測試語料的分布
隱藏層數分別設置為2層、3層和4層。采用SemEval-2007提供的評測指標平均消歧準確率(macro average accuracy)對實驗結果進行評測,其計算過程如式(20)所示:
(20)
pi=mi/ni,
(21)
其中,N為所有歧義詞匯的數目;mi是第i個歧義詞匯正確分類的測試句子數;ni是包含第i個歧義詞的所有測試句子數;pi為第i個歧義詞的消歧準確率;pmar為詞義消歧的平均準確率。
測試語料的消歧準確率如表1所示。由表1可以發現,隨著隱藏層數增加,許多歧義詞匯的消歧準確率降低,部分歧義詞匯的消歧準確率上升,平均消歧準確率下降。當隱藏層數為2時,平均消歧準確率最高。
根據表1可以計算出在隱藏層數分別為2、3、4層時,二類、三類和四類歧義詞匯的平均消歧準確率,如圖6所示。

表1 不同隱藏層下的消歧準確率

圖6 不同類別和隱藏層數下的平均消歧準確率
從圖6中可以發現,當歧義詞匯的語義類為二類或三類且隱藏層層數為2時,平均消歧準確率較高。當歧義詞匯的語義類為四類且隱藏層的層數為3時,平均消歧準確率較高。長短期記憶網絡根據當前時刻所接受的特征向量和上一時刻隱藏層結點的狀態來計算當前時刻的語義類概率分布。語義類概率分布的計算是一個多次迭代的過程。對二類和三類歧義詞匯而言,其分類過程比較簡單。2層長短期記憶網絡的分類效果最好。如果層數增多,那么迭代次數變大,會出現過擬合現象。此時,分類準確率將下降。當歧義詞匯的語義類別數比較大時,使用2層長短期記憶網絡不能進行準確的消歧,需要增加長短期記憶網絡的層數,加大迭代次數來提高消歧準確率。對四類歧義詞匯而言,3層長短期記憶網絡的消歧性能最好。當長短期記憶網絡的層數再繼續增大時,消歧準確率反而下降。
結合表1和圖6可知,設置恰當的隱藏層數可以提高詞義消歧的準確率。通過對比,將隱藏層數設置為2。
在k均值聚類算法中,閾值δ為0.000 001,最大迭代次數T=50。為了探究訓練語料的規模對詞義消歧的影響,將聚類得到的無標注語料按20%、40%、60%、80%和100%的比例添加到SemEval-2007:Task#5的訓練語料之中。分別對長短期記憶網絡進行訓練。用優化后的長短期記憶網絡分別對SemEval-2007:Task#5的測試語料進行詞義消歧,消歧準確率如表2所示。
從表2可以發現,在加入經過聚類的無標注語料之后,除了部分歧義詞匯之外,大多數歧義詞匯的消歧準確率都有所提升。其原因是:在無標注語料的聚類過程中會產生一些噪聲,降低了詞義消歧準確率。聚類后的無標注語料會為詞義消歧過程提供更多的語言學知識。因此,大多數歧義詞匯的平均消歧準確率有所提高。由此可知,訓練語料的規模對詞義消歧性能具有一定影響。

表2 訓練語料規模對詞義消歧的影響
為了度量所提出方法的性能,共進行了3組對比實驗。
實驗1選取歧義詞匯左右兩個詞匯單元的詞形、詞性和語義類作為消歧特征,使用貝葉斯分類器作為詞義消歧模型。使用SemEval-2007:Task#5的訓練語料來優化貝葉斯分類器。使用優化后的貝葉斯分類器對SemEval-2007:Task#5的測試語料進行消歧。
實驗2選取歧義詞匯左右兩個詞匯單元的詞形、詞性和語義類作為消歧特征,使用深度信念網絡作為詞義消歧模型。利用SemEval-2007:Task#5的訓練語料來優化深度信念網絡。使用優化后的深度信念網絡對SemEval-2007:Task#5的測試語料進行消歧。
實驗3將聚類得到的無標注語料添加到SemEval-2007:Task#5的訓練語料中用于優化長短期記憶網絡。使用優化后的長短期記憶網絡對SemEval-2007:Task#5的測試語料進行消歧。
測試語料的消歧準確率如表3所示。
從表3可以看出,實驗3的平均準確率要高于實驗1和實驗2。其原因是在深度信念網絡消歧模型和貝葉斯分類器中,僅采用了歧義詞匯左右兩個詞匯單元的詞形、詞性和語義類作為消歧特征。在所提出方法中,采用了歧義詞匯左右兩個詞匯單元的詞形、詞性、語義類、英語譯文和消歧距離作為消歧特征,具有更強的語言現象覆蓋能力和判別消歧能力。此外,所提出的方法是以SemEval-2007:Task#5的訓練語料為基礎,使用k均值聚類方法對大量無標注語料進行聚類來優化長短期記憶網絡。從而使長短期記憶網絡具有更好的詞義消歧性能,能夠覆蓋更多的語言學現象。在對比實驗中,僅使用SemEval-2007:Task#5的訓練語料來優化深度信念網絡和貝葉斯分類器。實驗2的平均準確率要高于實驗1的,其原因是深度信念網絡的消歧性能要好于貝葉斯分類器。由此可知,所提出的方法更適合于詞義消歧問題。

表3 測試語料的消歧準確率
選取歧義詞匯左右鄰接的4個詞匯單元的詞形和語義類作為聚類特征,利用k均值聚類方法對無標注語料聚類。將聚類得到的無標注語料添加到有標注語料中。提取歧義詞匯左右鄰接的4個詞匯單元的詞形、詞性、語義類、英文譯文和消歧距離作為消歧特征來優化長短期記憶網絡。實驗結果表明,相對于貝葉斯分類器和深度信念網絡而言,所提出方法的平均消歧準確率有所提升。