王子牛 陳婭先 高建瓴
摘? 要: 在計算機(jī)語言學(xué)中,詞義消歧是自然語言處理的一個重要問題,詞義消歧即指根據(jù)上下文確定對象語義的過程,在詞義、句義、篇章中都會出現(xiàn)這種詞語在上下文的語義環(huán)境中有不同的含義的現(xiàn)象。本文提出一種基于神經(jīng)網(wǎng)絡(luò)的模型實(shí)現(xiàn)詞義消歧,將詞向量輸入神經(jīng)網(wǎng)絡(luò),通過分類的方式實(shí)現(xiàn)消歧的目的。實(shí)驗(yàn)表明,基于神經(jīng)網(wǎng)絡(luò)的詞義消歧比傳統(tǒng)的統(tǒng)計方法消歧具有更高的準(zhǔn)確度。
關(guān)鍵詞: 詞義消歧;自然語言處理;詞向量;神經(jīng)網(wǎng)絡(luò)
中圖分類號: TP391.1? ? 文獻(xiàn)標(biāo)識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.02.003
【Abstract】: In computer linguistics, word sense disambiguation is an important issue in natural language processing. Word sense disambiguation refers to the process of determining object semantics according to context. In words, sentences, and chapters, such words appear in context. There are different meanings in the semantic environment. This paper proposes a neural network-based model to achieve word sense disambiguation, input word vector into neural network, and achieve the purpose of disambiguation through classification. Experiments show that neural network disambiguation has higher accuracy than traditional statistical method disambiguation.
【Key words】: Word sense disambiguation; Natural language processing; Word vector; Neural network
0? 引言
詞義消歧(WSD)即根據(jù)多義詞所在的上下文環(huán)境所確定語義的過程,解決這個問題對于自然語言處理的相關(guān)研究和應(yīng)用具有很重要的意義。機(jī)器翻譯、語音識別、文本分類和自動摘要等各種自然語言處理系統(tǒng)都涵蓋了消除歧義這項工作,為了使這些系統(tǒng)更高效,提高消歧的準(zhǔn)確度就顯得尤為重要[1]。
多義詞消歧方法主要有三種:第一,基于規(guī)則方式來進(jìn)行詞義消歧,使用該方法需要一個具有完備性、一致性和對開放領(lǐng)域適應(yīng)的語料庫,該方法存在很多瓶頸問題[2]。第二,基于統(tǒng)計的消歧方法,利用統(tǒng)計學(xué)方法自動在訓(xùn)練語料中獲取消歧所需的語言學(xué)知識,根據(jù)訓(xùn)練數(shù)據(jù)的差異選擇又分為有監(jiān)督機(jī)器學(xué)習(xí)、無監(jiān)督機(jī)器學(xué)習(xí)和半監(jiān)督機(jī)器[3]學(xué)習(xí)三種方法,無監(jiān)督的消歧方法就是運(yùn)用聚類算法對相似的語義環(huán)境或樣本示例進(jìn)行聚類,最典型的就是Lesk算法[4];有監(jiān)督的消歧方法就是運(yùn)用標(biāo)注好的語料庫,提取與歧義詞有關(guān)的語義關(guān)系作為特征進(jìn)行消歧,這種方法具有較好的消歧效果,但是難點(diǎn)在于需要大量人工標(biāo)注的語料庫[5];結(jié)合有監(jiān)督和無監(jiān)督兩種方法的優(yōu)點(diǎn)推敲出的半監(jiān)督消歧方法就是根據(jù)少量有標(biāo)注的訓(xùn)練語料,結(jié)合未標(biāo)注語料資源構(gòu)建消歧分類器[6];第三,基于知識庫的消歧方法,該方法計算詞匯在詞典中的不同義項和語言環(huán)境中的語義的共現(xiàn)率,選擇出共現(xiàn)率最高的分類作為歧義詞在當(dāng)前語義環(huán)境下的語義,但由于現(xiàn)有詞典的覆蓋范圍相對狹窄,不具備擴(kuò)充能力,因而該方法逐漸受到冷落。
2005年謝芳[7]等人利用BP神經(jīng)網(wǎng)絡(luò)模型和統(tǒng)計待消歧詞的上下文信息來進(jìn)行詞義消歧。2014年張婷婷[8]提出基于WordNet現(xiàn)存的詞義結(jié)構(gòu)以及詞義對用的上下文語義關(guān)系,詞義消歧之后通過語義選擇完成消歧工作。2016年張國清[9]進(jìn)行了有導(dǎo)的利用神經(jīng)網(wǎng)絡(luò)進(jìn)行的詞義消歧方法,還介紹了無導(dǎo)的利用Hownet義原同現(xiàn)頻率信息進(jìn)行的消歧方法。2016年張春祥[10]等人將語義信息引入詞義消歧模型之中。在漢語句子中,以歧義詞匯為中心定位其左右詞匯單元,以左右詞匯單元的語義類別為基礎(chǔ),使用貝葉斯模型來判斷歧義詞匯的真實(shí)語義。隨著神經(jīng)網(wǎng)絡(luò)的興起,神經(jīng)網(wǎng)絡(luò)在自然語言處理也被廣泛應(yīng)用[11-13]。Bengio[14]等借助語言模型的思想,使用句子中的詞作為神經(jīng)網(wǎng)絡(luò)的輸入和神經(jīng)網(wǎng)絡(luò)的輸出,利用語言模型的思想和神經(jīng)網(wǎng)絡(luò)反向傳播算法,對詞向量進(jìn)行學(xué)習(xí),大大縮短了訓(xùn)練時間[15]。結(jié)合矩陣分解和上下文窗口,能利用更多的統(tǒng)計信息,在越大的語料上越具有優(yōu)勢,深度學(xué)習(xí)獲得的詞向量中包含大量的語義信息[16],這些語義信息能否用于以及如何用于詞義消歧領(lǐng)域成為了最新的問題?;诖耍疚奶岢隽艘环N基于神經(jīng)網(wǎng)絡(luò)的有導(dǎo)詞義消歧方法, 利用神經(jīng)網(wǎng)絡(luò)的泛化功能來解決傳統(tǒng)有導(dǎo)消歧中的問題,達(dá)到比較好的詞義消歧效果。為了驗(yàn)證模型的有效性,本文采用人民日報數(shù)據(jù)集對模型進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,該模型取得了較好的效果。
本文的主要工作如下:(1)提出利用神經(jīng)網(wǎng)絡(luò)應(yīng)用于中文詞義消歧,該方法可提高消歧的準(zhǔn)確度;(2)利用詞向量的特點(diǎn),結(jié)合神經(jīng)網(wǎng)絡(luò),將消歧過程轉(zhuǎn)變?yōu)楹唵蔚姆诸愡^程;(3)充分利用《同義詞詞林》的詞典結(jié)構(gòu),進(jìn)行編碼處理做為神經(jīng)網(wǎng)絡(luò)的分類輸出。
本文組織結(jié)構(gòu):第一節(jié)介紹了詞義消歧的定義及其相關(guān)研究進(jìn)度和成果;第二節(jié)介紹了神經(jīng)網(wǎng)絡(luò)的模型;第三節(jié)介紹了詞義消歧的模型及消歧過程;第四節(jié)通過調(diào)整窗口參數(shù)做不同實(shí)驗(yàn)獲取最佳參數(shù),達(dá)到最佳消歧效果;最后一節(jié)是本文結(jié)論。
1? 神經(jīng)網(wǎng)絡(luò)模型
從最簡單的神經(jīng)網(wǎng)絡(luò)講起,這個神經(jīng)網(wǎng)絡(luò)僅由一個“神經(jīng)元”構(gòu)成,該神經(jīng)元有兩個部分,一部份為狀態(tài)值,另一個部分為激活值。一個神經(jīng)元有一個或多個輸入,每一個輸入對應(yīng)一個權(quán)值w,神經(jīng)元內(nèi)部將輸入的值與對應(yīng)權(quán)值相乘相加后,再將結(jié)果與偏置值相加,最終將結(jié)果放入激活函數(shù)中,由激活函數(shù)給出最后的輸出,“神經(jīng)元”如下圖1所示。
2? 基于神經(jīng)網(wǎng)絡(luò)的詞義消歧算法
2.1? 方法描述
本文提出的基于神經(jīng)網(wǎng)絡(luò)的詞義消歧方法主要思想是,將多義詞所在的語義環(huán)境通過截取一定的長度轉(zhuǎn)變?yōu)樵~向量輸入神經(jīng)網(wǎng)絡(luò),通過神經(jīng)網(wǎng)絡(luò)反復(fù)迭代計算,調(diào)整權(quán)值和偏置值將該多義詞進(jìn)行準(zhǔn)確分類,找出最合適的義項進(jìn)行輸出。詞義消歧步驟如下:①數(shù)據(jù)預(yù)處理;②多義詞所在的上下文環(huán)境及其義項的向量表示;③搭建神經(jīng)網(wǎng)絡(luò)并訓(xùn)練網(wǎng)絡(luò);④進(jìn)行測試得出結(jié)論。
2.2? 文檔預(yù)處理
首先對需要進(jìn)行消歧的文檔進(jìn)行分詞,并將待消歧的詞語做標(biāo)記,標(biāo)記為《同義詞詞林》中的小類代碼,然后查找待消歧文本中的多義詞,并將多義詞整理統(tǒng)計分為一個義項、兩個義項及多個義項的詞典。由于本文使用的多義詞標(biāo)記是《同義詞詞林》中的小類代碼,需要將這些小類代碼用One-Hot編碼方式表示為具體向量,最后將詞典的每個義項轉(zhuǎn)換為小類代碼的具體向量形式。
2.3? 神經(jīng)網(wǎng)絡(luò)的輸入
由于多義詞的含義取決于多義詞所在的上下文環(huán)境,所以上下文顯得尤為重要,上下文的確定是在歧義詞前后一定大小的窗口內(nèi)進(jìn)行截取,窗口過大會引入更多噪聲,過小又會丟失信息會降低消歧的準(zhǔn)確度,通過閱讀文獻(xiàn)的累計,本文取窗口大小為5,將包含該歧義詞在內(nèi)的9個詞作為輸入。
將語料進(jìn)行預(yù)處理后,需要把分詞和截取以后的句子表示為計算機(jī)能夠計算的形式,常用的表示模型分別是詞袋模型和詞向量。詞袋模型直接將每一個詞語或者符號統(tǒng)一放置在一個集合,然后按照計數(shù)的方式對出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計,TF-IDF是詞袋模型的一個經(jīng)典用法;而詞向量是將字、詞語轉(zhuǎn)換為向量矩陣的計算模型,常用的有One-Hot(獨(dú)熱)編碼方式。自Google團(tuán)隊的Word2vec的提出以及普及,Word2vec方式能很好地克服獨(dú)熱編碼方式的兩個缺點(diǎn)。該方法將一個詞映射到一個實(shí)數(shù)向量空間中,這種方法使得詞義之間的相似性可以用空間距離表示,兩個詞向量的空間距離越近,表示兩個詞的相似性越高。2013年開放了Word2vec可以訓(xùn)練詞向量的工具。Word2vec以大量文本訓(xùn)練語料作為輸入,通過訓(xùn)練模型快速有效地將一個詞語表達(dá)成向量形式。
本文將該歧義詞所在的語句通過截取后利用Word2Vec進(jìn)行詞向量訓(xùn)練,獲得9*60維的詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入?;谏窠?jīng)網(wǎng)絡(luò)的詞義消歧模型主要有四層組成?;谏窠?jīng)網(wǎng)絡(luò)的詞義消歧模型如圖2所示。
(1)將文本分詞后,用詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入;
(2)利用神經(jīng)網(wǎng)絡(luò)對詞向量的特征進(jìn)行提取;
(3)最后利用softmax分類器進(jìn)行多義詞分類,輸出小類代碼所指向的向量形式。
2.4? 神經(jīng)網(wǎng)絡(luò)的輸出
經(jīng)過神經(jīng)網(wǎng)絡(luò)計算后,得到待消歧詞Wi 對應(yīng)的輸出向量,而輸出向量是由同義詞詞林的小類編碼通過One-hot編碼得到的向量。例如,“我國人民特別愛花,所以牡丹自古有上市的傳統(tǒng)?!敝小盎ā弊质嵌嗔x詞,它具有“花兒”和“積攢”這兩個義項,
3? 實(shí)驗(yàn)
3.1? 數(shù)據(jù)集
為驗(yàn)證本文模型的有效性,采取了在人民日報作為數(shù)據(jù)集,且此數(shù)據(jù)集是不平衡數(shù)據(jù)集。本次實(shí)驗(yàn)從中挑選了常用的12個歧義詞,分別為“提高”,“系統(tǒng)”,“用”,“發(fā)表”,“隊伍”,“根本”,“左右”,“行動”,“花”,“保證”,“水”,“多少”。該預(yù)料包括800條句子。數(shù)據(jù)集分為兩部分,將百分之三十作為測試集,百分之七十作為訓(xùn)練集:(1)訓(xùn)練數(shù)據(jù)集;(2)測試集數(shù)據(jù)集。
使用神經(jīng)網(wǎng)絡(luò)進(jìn)行詞義消歧分為兩個階段:
(1)訓(xùn)練學(xué)習(xí)階段:向神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù),提供一組輸入與輸出對應(yīng)的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)通過反復(fù)迭代計算,不斷的調(diào)整權(quán)值和偏置值,直到滿足給定的期望輸出值,結(jié)束參數(shù)值的調(diào)整,或者已經(jīng)達(dá)到循環(huán)的次數(shù)而結(jié)束迭代計算,可能沒有調(diào)整到合適的參數(shù)。代價函數(shù)如式(4)所示:
3.2? 實(shí)驗(yàn)參數(shù)設(shè)置
本文的實(shí)驗(yàn)硬件環(huán)境的主要參數(shù)CPU:Intel(R) Xeon(R) X5690 @3.47 GHz,CPU內(nèi)存(RAM)為32 GB,GPU:NVIDIA 2080Ti 11G操作系統(tǒng)為openSUSE 15.0。本文實(shí)驗(yàn)軟件環(huán)境如表1所示。
對于神經(jīng)網(wǎng)絡(luò)來說參數(shù)的設(shè)置十分重要,它會影響神經(jīng)網(wǎng)絡(luò)的性能。本文中主要參數(shù)設(shè)置為:神經(jīng)網(wǎng)絡(luò)由四層構(gòu)成,神經(jīng)網(wǎng)絡(luò)輸入層的維度為所需消歧的句子數(shù)目Len乘以以窗口大小為W的維度乘以詞向量維度,輸出層為小類編碼的類別數(shù),中間的隱藏層可以調(diào)整,權(quán)值和偏置值初始化值為0.1,則神經(jīng)網(wǎng)絡(luò)輸出的維度為Len*1426,隱藏層的激活函數(shù)使用relue函數(shù),輸出層的激活函數(shù)使用Softmax函數(shù)進(jìn)行實(shí)驗(yàn),其他參數(shù)設(shè)置如表2所示。
3.3? 實(shí)驗(yàn)結(jié)果
本文設(shè)置了五組實(shí)驗(yàn)進(jìn)行中文消歧,第一、二組實(shí)驗(yàn)設(shè)置窗口大小為3、4,將分詞后長度為5、7的詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入,第三、四組實(shí)驗(yàn)設(shè)置窗口大小為5、6,將分詞后長度為9、11的詞向量作為輸入,第五組實(shí)驗(yàn)設(shè)置窗口大小為7,將長度為13的詞向量作為輸入,而每一組又分別用12個不同的歧義詞訓(xùn)練模型,由于數(shù)據(jù)集的數(shù)量有限,本實(shí)驗(yàn)采取交叉驗(yàn)證的方式進(jìn)行實(shí)驗(yàn),根據(jù)五組不同的窗口參數(shù)設(shè)置,對系統(tǒng)的正確率影響如圖4所示。從圖3.1可以看出,當(dāng)窗口大小為3、4、7時,系統(tǒng)的正確率普遍偏低,當(dāng)窗口大小為6時,系統(tǒng)的正確率最大為94.20%,最小為72.86%,系統(tǒng)穩(wěn)定性較差,但是當(dāng)窗口大小為5時,系統(tǒng)的穩(wěn)定性好,正確率較高,因此本文選取窗口大小為5進(jìn)行實(shí)驗(yàn)。
當(dāng)窗口大小為5時,使用挑選的12個歧義詞進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表4中給出了BP神經(jīng)網(wǎng)絡(luò)模型、動態(tài)規(guī)則方法、義原同現(xiàn)頻率方法、半監(jiān)督[10]方法和本文的模型在測試集上得到的結(jié)果,具體評價指標(biāo)包括正確率的最大值、最小值和平均值。
通過表3和表4可以看出預(yù)測的結(jié)果平均正確率為86.55%與之前的研究者做的消歧正確率高,文獻(xiàn)[7]中利用BP神經(jīng)網(wǎng)絡(luò)模型和統(tǒng)計待消歧詞的上下文信息來進(jìn)行詞義消歧正確率平均正確率為84.54%,最高達(dá)到88.9%,但最低只有72.72%說明系統(tǒng)不穩(wěn)定;在文獻(xiàn)[8]中使用動態(tài)規(guī)則法最高正確率達(dá)到83.9%;在文獻(xiàn)[9]中使用的神經(jīng)網(wǎng)絡(luò)詞義消歧正確率達(dá)到82.5%,本文正確率達(dá)到86.55%;利用義原同現(xiàn)頻率進(jìn)行多義詞消歧正確率只有75%;在文獻(xiàn)[10]中使用13個不同的歧義詞測試最高正確率達(dá)到85.0%,最低達(dá)到27.8%。通過此次實(shí)驗(yàn)證明本文模型比文獻(xiàn)[7]的模型提高正確率2.01個百分點(diǎn),比文獻(xiàn)[8]高16.05個百分點(diǎn),比文獻(xiàn)[10]高1.55個百分點(diǎn),說明本文使用神經(jīng)網(wǎng)絡(luò)進(jìn)行消歧正確率還是比其他的消歧方式高,因此利用神經(jīng)網(wǎng)絡(luò)在詞義消歧方面具有很好的前景。
4? 結(jié)論
本文提出了一種基于神經(jīng)網(wǎng)絡(luò)的詞義消歧模型,利用word2vec模型訓(xùn)練的詞向量作為輸入,結(jié)合神經(jīng)網(wǎng)絡(luò)模型對多義詞進(jìn)行詞義消歧。實(shí)驗(yàn)表明,該方法比基于知識的詞義消歧算法有更高的正確率。同時,利用詞向量能夠更好的保存文本序列的上下文信息。由于實(shí)驗(yàn)數(shù)據(jù)的規(guī)模有限,若要提高消歧的效果,還需要大規(guī)模實(shí)驗(yàn)數(shù)據(jù),還可以對神經(jīng)網(wǎng)絡(luò)進(jìn)行調(diào)整,這些問題將在下一步研究中解決。
參考文獻(xiàn)
MincaA, Diaconescu S. An approach to knowledgebased word sense disambiguation using semantic trees built on a WordNet lexicon network[C]// The 6 th Conference on Speech Technology and Human_Computer Dialogue, 2011: 1-6.
Suvitha D S, Janarthanan R.Enriched semantic information Processing using WordNet based on semantic relation network[C]// Internation Conference on Computing, Electronics and Electrical Technologies, 2012: 846-851.
孫鵬, 馮翔. 一種基于集成學(xué)習(xí)的健壯性半監(jiān)督SVM[J]. 軟件, 2018, 39(11): 182-186.
王永生. 基于改進(jìn)的Lesk算法的詞義排歧算法[J]. 微型機(jī)與應(yīng)用, 2013(24): 69-71.
蔣振超, 李麗雙, 黃德根. 基于詞語關(guān)系的詞向量模型[J]. 中文信息學(xué)報, 2017, 31(3): 25-31.
LE A C, SHIMAZU A, HUYNH V N. Semi-supervised Learning Integrated with Classifier Combination for Word Sense Disambiguation[J]. Computer Speech & Language, 2008, 22(4): 330-345.
謝芳, 胡泉. 基于BP神經(jīng)網(wǎng)絡(luò)的詞義消歧模型[J]. 計算機(jī)工程與應(yīng)用, 2006, 12: 187-189.
張婷婷. 基于語義規(guī)則的詞義消歧方法的研究[J]. 數(shù)碼世界, 2018: 131-132.
張國清. 兩種詞義消歧方法分析與比較[J]. 信息與電腦, 2017(19): 47-52.
張春祥, 徐志峰, 高雪瑤, 等. 一種半監(jiān)督的漢語詞義消歧方法[J]. 西南交通大學(xué)學(xué)報.
張曉明, 尹鴻峰. 基于卷積神經(jīng)網(wǎng)絡(luò)和語義信息的場景分類[J]. 軟件, 2018, 39(01): 29-34.
張玉環(huán), 錢江. 基于兩種LSTM結(jié)構(gòu)的文本情感分析[J]. 軟件, 2018, 39(1): 116-120.
劉騰飛, 于雙飛, 張洪濤, 等. 基于循環(huán)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類研究[J]. 軟件, 2018, 39(01): 64-69.
BengioY, DucharmeR, VicebtP, et al. A Neural Probabilistic Language Model[J]. The Journal of Machine Learning Research. 2003, 3: 1137-1155.
王紅斌, 郜洪奎. 基于word2vec和依存分析的事件識別研究[J]. 軟件, 2017, 38(6): 62-65.
Mikolov Tomas, Yih Wen-tau, Zweig Geoffrey. Linguistic regularities in continuous space word representations[C]. The Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL-HLT), 2013: 746-75.