王子牛 陳婭先 高建瓴
摘? 要: 在計(jì)算機(jī)語(yǔ)言學(xué)中,詞義消歧是自然語(yǔ)言處理的一個(gè)重要問(wèn)題,詞義消歧即指根據(jù)上下文確定對(duì)象語(yǔ)義的過(guò)程,在詞義、句義、篇章中都會(huì)出現(xiàn)這種詞語(yǔ)在上下文的語(yǔ)義環(huán)境中有不同的含義的現(xiàn)象。本文提出一種基于神經(jīng)網(wǎng)絡(luò)的模型實(shí)現(xiàn)詞義消歧,將詞向量輸入神經(jīng)網(wǎng)絡(luò),通過(guò)分類的方式實(shí)現(xiàn)消歧的目的。實(shí)驗(yàn)表明,基于神經(jīng)網(wǎng)絡(luò)的詞義消歧比傳統(tǒng)的統(tǒng)計(jì)方法消歧具有更高的準(zhǔn)確度。
關(guān)鍵詞: 詞義消歧;自然語(yǔ)言處理;詞向量;神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào): TP391.1? ? 文獻(xiàn)標(biāo)識(shí)碼: 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)境所確定語(yǔ)義的過(guò)程,解決這個(gè)問(wèn)題對(duì)于自然語(yǔ)言處理的相關(guān)研究和應(yīng)用具有很重要的意義。機(jī)器翻譯、語(yǔ)音識(shí)別、文本分類和自動(dòng)摘要等各種自然語(yǔ)言處理系統(tǒng)都涵蓋了消除歧義這項(xiàng)工作,為了使這些系統(tǒng)更高效,提高消歧的準(zhǔn)確度就顯得尤為重要[1]。
多義詞消歧方法主要有三種:第一,基于規(guī)則方式來(lái)進(jìn)行詞義消歧,使用該方法需要一個(gè)具有完備性、一致性和對(duì)開(kāi)放領(lǐng)域適應(yīng)的語(yǔ)料庫(kù),該方法存在很多瓶頸問(wèn)題[2]。第二,基于統(tǒng)計(jì)的消歧方法,利用統(tǒng)計(jì)學(xué)方法自動(dòng)在訓(xùn)練語(yǔ)料中獲取消歧所需的語(yǔ)言學(xué)知識(shí),根據(jù)訓(xùn)練數(shù)據(jù)的差異選擇又分為有監(jiān)督機(jī)器學(xué)習(xí)、無(wú)監(jiān)督機(jī)器學(xué)習(xí)和半監(jiān)督機(jī)器[3]學(xué)習(xí)三種方法,無(wú)監(jiān)督的消歧方法就是運(yùn)用聚類算法對(duì)相似的語(yǔ)義環(huán)境或樣本示例進(jìn)行聚類,最典型的就是Lesk算法[4];有監(jiān)督的消歧方法就是運(yùn)用標(biāo)注好的語(yǔ)料庫(kù),提取與歧義詞有關(guān)的語(yǔ)義關(guān)系作為特征進(jìn)行消歧,這種方法具有較好的消歧效果,但是難點(diǎn)在于需要大量人工標(biāo)注的語(yǔ)料庫(kù)[5];結(jié)合有監(jiān)督和無(wú)監(jiān)督兩種方法的優(yōu)點(diǎn)推敲出的半監(jiān)督消歧方法就是根據(jù)少量有標(biāo)注的訓(xùn)練語(yǔ)料,結(jié)合未標(biāo)注語(yǔ)料資源構(gòu)建消歧分類器[6];第三,基于知識(shí)庫(kù)的消歧方法,該方法計(jì)算詞匯在詞典中的不同義項(xiàng)和語(yǔ)言環(huán)境中的語(yǔ)義的共現(xiàn)率,選擇出共現(xiàn)率最高的分類作為歧義詞在當(dāng)前語(yǔ)義環(huán)境下的語(yǔ)義,但由于現(xiàn)有詞典的覆蓋范圍相對(duì)狹窄,不具備擴(kuò)充能力,因而該方法逐漸受到冷落。
2005年謝芳[7]等人利用BP神經(jīng)網(wǎng)絡(luò)模型和統(tǒng)計(jì)待消歧詞的上下文信息來(lái)進(jìn)行詞義消歧。2014年張婷婷[8]提出基于WordNet現(xiàn)存的詞義結(jié)構(gòu)以及詞義對(duì)用的上下文語(yǔ)義關(guān)系,詞義消歧之后通過(guò)語(yǔ)義選擇完成消歧工作。2016年張國(guó)清[9]進(jìn)行了有導(dǎo)的利用神經(jīng)網(wǎng)絡(luò)進(jìn)行的詞義消歧方法,還介紹了無(wú)導(dǎo)的利用Hownet義原同現(xiàn)頻率信息進(jìn)行的消歧方法。2016年張春祥[10]等人將語(yǔ)義信息引入詞義消歧模型之中。在漢語(yǔ)句子中,以歧義詞匯為中心定位其左右詞匯單元,以左右詞匯單元的語(yǔ)義類別為基礎(chǔ),使用貝葉斯模型來(lái)判斷歧義詞匯的真實(shí)語(yǔ)義。隨著神經(jīng)網(wǎng)絡(luò)的興起,神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理也被廣泛應(yīng)用[11-13]。Bengio[14]等借助語(yǔ)言模型的思想,使用句子中的詞作為神經(jīng)網(wǎng)絡(luò)的輸入和神經(jīng)網(wǎng)絡(luò)的輸出,利用語(yǔ)言模型的思想和神經(jīng)網(wǎng)絡(luò)反向傳播算法,對(duì)詞向量進(jìn)行學(xué)習(xí),大大縮短了訓(xùn)練時(shí)間[15]。結(jié)合矩陣分解和上下文窗口,能利用更多的統(tǒng)計(jì)信息,在越大的語(yǔ)料上越具有優(yōu)勢(shì),深度學(xué)習(xí)獲得的詞向量中包含大量的語(yǔ)義信息[16],這些語(yǔ)義信息能否用于以及如何用于詞義消歧領(lǐng)域成為了最新的問(wèn)題?;诖?,本文提出了一種基于神經(jīng)網(wǎng)絡(luò)的有導(dǎo)詞義消歧方法, 利用神經(jīng)網(wǎng)絡(luò)的泛化功能來(lái)解決傳統(tǒng)有導(dǎo)消歧中的問(wèn)題,達(dá)到比較好的詞義消歧效果。為了驗(yàn)證模型的有效性,本文采用人民日?qǐng)?bào)數(shù)據(jù)集對(duì)模型進(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ò),將消歧過(guò)程轉(zhuǎn)變?yōu)楹?jiǎn)單的分類過(guò)程;(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é)介紹了詞義消歧的模型及消歧過(guò)程;第四節(jié)通過(guò)調(diào)整窗口參數(shù)做不同實(shí)驗(yàn)獲取最佳參數(shù),達(dá)到最佳消歧效果;最后一節(jié)是本文結(jié)論。
1? 神經(jīng)網(wǎng)絡(luò)模型
從最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)講起,這個(gè)神經(jīng)網(wǎng)絡(luò)僅由一個(gè)“神經(jīng)元”構(gòu)成,該神經(jīng)元有兩個(gè)部分,一部份為狀態(tài)值,另一個(gè)部分為激活值。一個(gè)神經(jīng)元有一個(gè)或多個(gè)輸入,每一個(gè)輸入對(duì)應(yīng)一個(gè)權(quán)值w,神經(jīng)元內(nèi)部將輸入的值與對(duì)應(yīng)權(quán)值相乘相加后,再將結(jié)果與偏置值相加,最終將結(jié)果放入激活函數(shù)中,由激活函數(shù)給出最后的輸出,“神經(jīng)元”如下圖1所示。
2? 基于神經(jīng)網(wǎng)絡(luò)的詞義消歧算法
2.1? 方法描述
本文提出的基于神經(jīng)網(wǎng)絡(luò)的詞義消歧方法主要思想是,將多義詞所在的語(yǔ)義環(huán)境通過(guò)截取一定的長(zhǎng)度轉(zhuǎn)變?yōu)樵~向量輸入神經(jīng)網(wǎng)絡(luò),通過(guò)神經(jīng)網(wǎng)絡(luò)反復(fù)迭代計(jì)算,調(diào)整權(quán)值和偏置值將該多義詞進(jìn)行準(zhǔn)確分類,找出最合適的義項(xiàng)進(jìn)行輸出。詞義消歧步驟如下:①數(shù)據(jù)預(yù)處理;②多義詞所在的上下文環(huán)境及其義項(xiàng)的向量表示;③搭建神經(jīng)網(wǎng)絡(luò)并訓(xùn)練網(wǎng)絡(luò);④進(jìn)行測(cè)試得出結(jié)論。
2.2? 文檔預(yù)處理
首先對(duì)需要進(jìn)行消歧的文檔進(jìn)行分詞,并將待消歧的詞語(yǔ)做標(biāo)記,標(biāo)記為《同義詞詞林》中的小類代碼,然后查找待消歧文本中的多義詞,并將多義詞整理統(tǒng)計(jì)分為一個(gè)義項(xiàng)、兩個(gè)義項(xiàng)及多個(gè)義項(xiàng)的詞典。由于本文使用的多義詞標(biāo)記是《同義詞詞林》中的小類代碼,需要將這些小類代碼用One-Hot編碼方式表示為具體向量,最后將詞典的每個(gè)義項(xiàng)轉(zhuǎn)換為小類代碼的具體向量形式。
2.3? 神經(jīng)網(wǎng)絡(luò)的輸入
由于多義詞的含義取決于多義詞所在的上下文環(huán)境,所以上下文顯得尤為重要,上下文的確定是在歧義詞前后一定大小的窗口內(nèi)進(jìn)行截取,窗口過(guò)大會(huì)引入更多噪聲,過(guò)小又會(huì)丟失信息會(huì)降低消歧的準(zhǔn)確度,通過(guò)閱讀文獻(xiàn)的累計(jì),本文取窗口大小為5,將包含該歧義詞在內(nèi)的9個(gè)詞作為輸入。
將語(yǔ)料進(jìn)行預(yù)處理后,需要把分詞和截取以后的句子表示為計(jì)算機(jī)能夠計(jì)算的形式,常用的表示模型分別是詞袋模型和詞向量。詞袋模型直接將每一個(gè)詞語(yǔ)或者符號(hào)統(tǒng)一放置在一個(gè)集合,然后按照計(jì)數(shù)的方式對(duì)出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),TF-IDF是詞袋模型的一個(gè)經(jīng)典用法;而詞向量是將字、詞語(yǔ)轉(zhuǎn)換為向量矩陣的計(jì)算模型,常用的有One-Hot(獨(dú)熱)編碼方式。自Google團(tuán)隊(duì)的Word2vec的提出以及普及,Word2vec方式能很好地克服獨(dú)熱編碼方式的兩個(gè)缺點(diǎn)。該方法將一個(gè)詞映射到一個(gè)實(shí)數(shù)向量空間中,這種方法使得詞義之間的相似性可以用空間距離表示,兩個(gè)詞向量的空間距離越近,表示兩個(gè)詞的相似性越高。2013年開(kāi)放了Word2vec可以訓(xùn)練詞向量的工具。Word2vec以大量文本訓(xùn)練語(yǔ)料作為輸入,通過(guò)訓(xùn)練模型快速有效地將一個(gè)詞語(yǔ)表達(dá)成向量形式。
本文將該歧義詞所在的語(yǔ)句通過(guò)截取后利用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ò)對(duì)詞向量的特征進(jìn)行提取;
(3)最后利用softmax分類器進(jìn)行多義詞分類,輸出小類代碼所指向的向量形式。
2.4? 神經(jīng)網(wǎng)絡(luò)的輸出
經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)計(jì)算后,得到待消歧詞Wi 對(duì)應(yīng)的輸出向量,而輸出向量是由同義詞詞林的小類編碼通過(guò)One-hot編碼得到的向量。例如,“我國(guó)人民特別愛(ài)花,所以牡丹自古有上市的傳統(tǒng)?!敝小盎ā弊质嵌嗔x詞,它具有“花兒”和“積攢”這兩個(gè)義項(xiàng),
3? 實(shí)驗(yàn)
3.1? 數(shù)據(jù)集
為驗(yàn)證本文模型的有效性,采取了在人民日?qǐng)?bào)作為數(shù)據(jù)集,且此數(shù)據(jù)集是不平衡數(shù)據(jù)集。本次實(shí)驗(yàn)從中挑選了常用的12個(gè)歧義詞,分別為“提高”,“系統(tǒng)”,“用”,“發(fā)表”,“隊(duì)伍”,“根本”,“左右”,“行動(dòng)”,“花”,“保證”,“水”,“多少”。該預(yù)料包括800條句子。數(shù)據(jù)集分為兩部分,將百分之三十作為測(cè)試集,百分之七十作為訓(xùn)練集:(1)訓(xùn)練數(shù)據(jù)集;(2)測(cè)試集數(shù)據(jù)集。
使用神經(jīng)網(wǎng)絡(luò)進(jìn)行詞義消歧分為兩個(gè)階段:
(1)訓(xùn)練學(xué)習(xí)階段:向神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù),提供一組輸入與輸出對(duì)應(yīng)的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)通過(guò)反復(fù)迭代計(jì)算,不斷的調(diào)整權(quán)值和偏置值,直到滿足給定的期望輸出值,結(jié)束參數(shù)值的調(diào)整,或者已經(jīng)達(dá)到循環(huán)的次數(shù)而結(jié)束迭代計(jì)算,可能沒(méi)有調(diào)整到合適的參數(shù)。代價(jià)函數(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所示。
對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō)參數(shù)的設(shè)置十分重要,它會(huì)影響神經(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ò)輸出的維度為L(zhǎng)en*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,將分詞后長(zhǎng)度為5、7的詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入,第三、四組實(shí)驗(yàn)設(shè)置窗口大小為5、6,將分詞后長(zhǎng)度為9、11的詞向量作為輸入,第五組實(shí)驗(yàn)設(shè)置窗口大小為7,將長(zhǎng)度為13的詞向量作為輸入,而每一組又分別用12個(gè)不同的歧義詞訓(xùn)練模型,由于數(shù)據(jù)集的數(shù)量有限,本實(shí)驗(yàn)采取交叉驗(yàn)證的方式進(jìn)行實(shí)驗(yàn),根據(jù)五組不同的窗口參數(shù)設(shè)置,對(duì)系統(tǒng)的正確率影響如圖4所示。從圖3.1可以看出,當(dāng)窗口大小為3、4、7時(shí),系統(tǒng)的正確率普遍偏低,當(dāng)窗口大小為6時(shí),系統(tǒng)的正確率最大為94.20%,最小為72.86%,系統(tǒng)穩(wěn)定性較差,但是當(dāng)窗口大小為5時(shí),系統(tǒng)的穩(wěn)定性好,正確率較高,因此本文選取窗口大小為5進(jìn)行實(shí)驗(yàn)。
當(dāng)窗口大小為5時(shí),使用挑選的12個(gè)歧義詞進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表4中給出了BP神經(jīng)網(wǎng)絡(luò)模型、動(dòng)態(tài)規(guī)則方法、義原同現(xiàn)頻率方法、半監(jiān)督[10]方法和本文的模型在測(cè)試集上得到的結(jié)果,具體評(píng)價(jià)指標(biāo)包括正確率的最大值、最小值和平均值。
通過(guò)表3和表4可以看出預(yù)測(cè)的結(jié)果平均正確率為86.55%與之前的研究者做的消歧正確率高,文獻(xiàn)[7]中利用BP神經(jīng)網(wǎng)絡(luò)模型和統(tǒng)計(jì)待消歧詞的上下文信息來(lái)進(jìn)行詞義消歧正確率平均正確率為84.54%,最高達(dá)到88.9%,但最低只有72.72%說(shuō)明系統(tǒng)不穩(wěn)定;在文獻(xiàn)[8]中使用動(dòng)態(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個(gè)不同的歧義詞測(cè)試最高正確率達(dá)到85.0%,最低達(dá)到27.8%。通過(guò)此次實(shí)驗(yàn)證明本文模型比文獻(xiàn)[7]的模型提高正確率2.01個(gè)百分點(diǎn),比文獻(xiàn)[8]高16.05個(gè)百分點(diǎn),比文獻(xiàn)[10]高1.55個(gè)百分點(diǎn),說(shuō)明本文使用神經(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ò)模型對(duì)多義詞進(jìn)行詞義消歧。實(shí)驗(yàn)表明,該方法比基于知識(shí)的詞義消歧算法有更高的正確率。同時(shí),利用詞向量能夠更好的保存文本序列的上下文信息。由于實(shí)驗(yàn)數(shù)據(jù)的規(guī)模有限,若要提高消歧的效果,還需要大規(guī)模實(shí)驗(yàn)數(shù)據(jù),還可以對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行調(diào)整,這些問(wèn)題將在下一步研究中解決。
參考文獻(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.
蔣振超, 李麗雙, 黃德根. 基于詞語(yǔ)關(guān)系的詞向量模型[J]. 中文信息學(xué)報(bào), 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ì)算機(jī)工程與應(yīng)用, 2006, 12: 187-189.
張婷婷. 基于語(yǔ)義規(guī)則的詞義消歧方法的研究[J]. 數(shù)碼世界, 2018: 131-132.
張國(guó)清. 兩種詞義消歧方法分析與比較[J]. 信息與電腦, 2017(19): 47-52.
張春祥, 徐志峰, 高雪瑤, 等. 一種半監(jiān)督的漢語(yǔ)詞義消歧方法[J]. 西南交通大學(xué)學(xué)報(bào).
張曉明, 尹鴻峰. 基于卷積神經(jīng)網(wǎng)絡(luò)和語(yǔ)義信息的場(chǎng)景分類[J]. 軟件, 2018, 39(01): 29-34.
張玉環(huán), 錢(qiá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和依存分析的事件識(shí)別研究[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.