李國佳 趙瑩地 郭鴻奇
摘 要:詞義消歧是自然語言處理領域的基本任務。在詞語詞向量表示的基礎上,計算獲得多義詞語上下文窗口的向量表示。利用統(tǒng)計的多義詞及詞義個數(shù),基于K-means算法聚類文本語料集中多義詞的上下文窗口表示,在原始文本語料集中對多義詞語根據(jù)聚類類別進行標記。在標記的文本語料集上,訓練獲得多義詞語每個詞義的向量表示。對句子中的多義詞語,給出了一種基于多義詞向量表示的詞義消歧方法,實驗結果顯示該方法有效可行。
關鍵詞:多義詞向量表示; K-means; 詞義消歧
Abstract: Word sense disambiguation is a basic task in natural language process. To the original text corpus, the vector representation of polysemous word context window is calculated based on vector representation. Using statistical polysemy and the numbers of word sense, the vector representation of polysemy context window is clustered based on K-means, and the polysemous words are marked in the original text corpus. On the marked text corpus, the vector representation of polysemy' word sense is trained by using neural network language model. A word sense disambiguation method based on polysemy vector representation is presented. The experimental results show that the method is effective and feasible.
Key words: polysemy vector representation; K-means; word sense disambiguation
引言
詞義消歧(Word Sense Disambiguation)在機器翻譯、信息檢索、主題分析和文本分類中具有廣泛的應用。多義詞語在不同上下文環(huán)境下對應的具體詞義不同,對句子中的多義詞語,通過詞義消歧獲得詞語在上下文中特定語義,能提高詞語表示的準確性。
詞義消歧主要方法有2類,分別是:基于外部知識資源方法和基于語料庫的方法。其中,基于外部知識資源方法,利用人工的字典或詞典來獲得詞語語義間的關系,通過將這些關系量化后再進行詞義消歧,準確率一般要高于基于語料庫的方法,但構建字典、詞典需要耗費大量的人力、物力。高雪霞等人使用外部詞匯資源中同義詞、上義詞和下義詞3個語義關系,利用Jaccard系數(shù)相似度量方法,來計算最佳詞義[1]?;谡Z料庫的方法,以語料庫為知識資源,通過自動或半自動的學習確定詞語在給定上下文下的具體詞義,從而實現(xiàn)詞義消歧,但語料庫的規(guī)模和領域影響詞義消歧的效果[2]。楊陟卓提出一種自動生成有標注語料的方法,采用機器翻譯系統(tǒng)將訓練實例的上下文進行翻譯生成偽訓練實例,同時采用訓練實例和偽訓練實例構建貝葉斯消歧模型實現(xiàn)詞義消歧[3]。張春祥等人將歧義詞匯左右鄰接的4個詞匯單元的多種語言學知識作為消歧特征,利用貝葉斯分類器和最大熵分類器確定歧義詞匯的語義類別,結合大量無標注語料使用Co-Training算法提高詞義消歧分類器的性能[4]。楊安等人利用無標注的原始語料構建詞向量模型,結合特定領域關鍵詞信息及WordNet資源,設計一套打分系統(tǒng),選擇得分最高所對應的詞義作為詞義消歧的結果[5]。
針對多義詞語的表示問題,Reisinger 等人提出多原型向量空間模型,其中每個詞語的上下文表示將聚類為簇,通過對聚類簇內詞語所有的上下文向量表示進行平均生成詞語不同的原型向量[6]。Huang等人基于神經(jīng)網(wǎng)絡語言模型,結合詞語全局語義信息,利用K-means算法聚類每個詞語的上下文表示,并在原始文本語料庫中將每個詞語的出現(xiàn)情況標記為其所關聯(lián)的聚類類別,訓練獲得多義詞語的詞向量表示[7]。
本文利用原始文本語料集,訓練得到詞語的詞向量表示,結合多義詞詞典統(tǒng)計獲得多義詞詞義的個數(shù),基于K-means聚類獲得多義詞語上下文窗口表示的聚類類別,在原始文本語料集中將多義詞標記為不同類別,訓練獲得多義詞各個詞義的向量表示,進而給出了一種基于多義詞向量表示的詞義消歧方法,實驗結果驗證了該方法是有效可行的。
1 多義詞語的向量表示
1.1 詞語的向量化表示
在自然語言處理領域的各項任務中,詞語是最小的處理單元。常用的詞語表示方法是將詞語處理為向量的形式。一般的詞語表示是將每個詞語表示為一個向量,向量的維數(shù)是詞典的大小,這種形式稱為詞語的向量化表示。一種簡單的詞語向量化表示方法是One-hot Representation,將每個詞語表示為一個長的向量,其中一個維度的值為1,表示當前詞語,其它維度值為零。由于語言中詞語數(shù)量及增長變化,容易造成計算上的維度災難,并且這種表示對任意2個詞表示是孤立的,無法體現(xiàn)詞語之間的語義關系。
2003年,Bengio等人提出利用神經(jīng)網(wǎng)絡語言模型訓練獲得詞語的向量化表示[8],也稱為詞嵌入(Word Embedding)或詞向量(Word Representation)。通過對海量文本的訓練學習,將詞語表示為稠密連續(xù)的低維度向量,避免了傳統(tǒng)詞語表示的維數(shù)災難和數(shù)據(jù)稀疏問題,也反映了詞語語義之間的聯(lián)系。在自然語言處理領域的多項任務中,具有較好的效果。
近年來,許多學者利用基于神經(jīng)網(wǎng)絡的語言模型來訓練獲得詞語的向量化表示,基本思路是通過無監(jiān)督方式在大規(guī)模的文本數(shù)據(jù)集上訓練學習得到詞語的詞向量表示。
1.2 多義詞向量表示
詞語詞向量表示(Word Embedding)將每一個詞語對應唯一的向量表示。在實際語言現(xiàn)象中,一個詞語在不同的上下文語境中可能具有多種語義的情況,也就是一詞多義現(xiàn)象。詞向量表示不能區(qū)分表示多義詞語的不同詞義,對于多義詞語,不同的詞義需要對應特定的向量表示,以獲得更精確的詞義表示。
多義詞向量表示,對每個多義詞的不同詞義,都對應一個向量表示,能夠區(qū)別表示不同詞義。在詞語詞向量表示的基礎上,利用外部知識庫,根據(jù)多義詞語在文本語料集中的上下文環(huán)境,使用聚類算法對上下文窗口表示聚類,將聚類結果標記到文本語料集中,在標記的文本語料集上訓練獲得多義詞向量表示。
2 基于K-means聚類的多義詞向量表示
2.1 多義詞語的上下文表示
多義詞語的上下文表示,一種簡單的表示方法是基于多義詞語的上下文窗口,利用窗口內的詞語來表示,也可以融合多義詞語所在句子或所在段落及文檔的主題之間關聯(lián)性,綜合計算獲得多義詞語的上下文表示。多義詞語的上下文窗口,是指句子中與多義詞語左右鄰接的多個詞語,窗口大小為鄰接詞語數(shù)量。
對句子中多義詞語,上下文的窗口大小設為k,表示左右鄰接詞匯的數(shù)量。對于多義詞語左、右鄰接詞語小于k的情況,分別獲取左、右鄰接的全部詞語作為上下文窗口內的詞語。
利用多義詞語的上下文窗口,由窗口中詞語的詞向量進行綜合計算獲得多義詞語的上下文表示,數(shù)學計算公式可表述為:
2.2 結合多義詞詞典的K-means聚類
K-means算法是常用的文本聚類算法之一,通過計算樣本和目標類別之間的距離,使相似的樣本歸為同一類,不同類別之間的距離要盡可能大,類別內部的距離要盡可能小。K-means算法實現(xiàn)簡單,適用范圍較廣,但需要事先確定聚類類別的數(shù)目,即K的大小。
一般來說,多義詞語的具體詞義由上下文語言環(huán)境體現(xiàn),因此對多義詞語的上下文進行聚類,能夠獲得不同詞義的聚類簇。將聚類簇樣本作為原始文本語料集,利用神經(jīng)網(wǎng)絡語言模型,可以訓練獲得多義詞的向量表示。
在實際的語言環(huán)境中,不同多義詞語包含的詞義數(shù)目是有差異的。借助外部知識庫,統(tǒng)計獲得常用多義詞語及詞義個數(shù)作為多義詞詞典,以多義詞詞典中詞義個數(shù)作為K-means聚類算法的初始K值,在此基礎上,實現(xiàn)基于多義詞詞典的K-means聚類算法,研發(fā)得到的算法設計過程如下。
輸入:文本語料集中多義詞的上下文表示Cw[N](N表示樣本總數(shù)),多義詞及詞義個數(shù)K。
輸出:每個聚類簇中樣本個數(shù)n[j],每個聚類簇中樣本C[j]及聚類簇質心。
Step 1 隨機選擇K個樣本點作為初始質心,記為Ct[j]。
Step 2 對每一個樣本Cw[i],計算樣本Cw[i]和每個質心Ct[j]之間的距離dis[j],將Cw[i]聚類到距離最近的質心Ct[j],形成K個聚類簇C[j][n[j]];重新計算每個簇的質心Ct[k]。
Step 3 重復執(zhí)行Step 2,直到聚類簇質心不再發(fā)生變化或達到最大迭代次數(shù)。
2.3 多義詞向量表示的訓練過程
對文本語料集中的每個多義詞語,基于K-means算法對多義詞語在原始文本語料集中所有樣本的上下文窗口表示進行聚類,得到K個聚類簇。在文本語料集中按照K個類別對多義詞語做出標記,不同的聚類類別代表多義詞語不同的詞義。在標記的文本語料集上基于神經(jīng)網(wǎng)絡語言模型訓練詞語詞向量,得到詞語在不同上下文中表達不同詞義的向量表示。多義詞向量表示的訓練過程可描述為:
Step 1 利用外部知識庫構建多義詞詞典,統(tǒng)計多義詞語及其詞義的個數(shù)。
Step 2 獲取詞語在文本語料集中的上下文窗口表示。
Step 3 結合多義詞詞典基于K-means算法聚類多義詞語的上下文窗口表示,得到詞語上下文表示的聚類簇。
Step 4 按照聚類簇類別在文本語料集中進行標記,多義詞語根據(jù)聚類類別標記為多個詞義表示。
Step 5 在標記的文本語料集上利用神經(jīng)網(wǎng)絡語言模型訓練獲得多義詞語的向量表示。
3 詞義消歧
基于多義詞語的向量表示,對語句中的多義詞語,通過計算多義詞語的上下文窗口表示和在文本語料集中對應的聚類簇質心間的相似度,來獲得多義詞語在上下文中特定詞義的詞向量表示,進行詞義消歧。對這一內容可闡釋分述如下。
3.1 相似度計算
多義詞語上下文窗口表示和聚類簇質心間的相似度,使用2個向量的夾角余弦值來度量。具體計算公式可表示為:
其中,Sim表示多義詞語上下文窗口表示和聚類簇質心點的相似度;vec1是多義詞語上下文窗口的向量表示;vec2是多義詞語聚類簇質心點的向量表示。
3.2 基于多義詞向量表示的詞義消歧
根據(jù)詞語的語義由其上下文決定的思想,多義詞語在上下文中特定語義,可以通過計算多義詞語的上下文窗口表示和在文本語料集中對應的聚類簇質心間的相似度來獲得,將最大相似度值所對應的詞向量表示作為多義詞語在上下文中特定語義的詞向量表示,計算方法的數(shù)學公式可寫作如下形式:
以句子中多義詞語的詞義消歧為例,利用詞語的上下文信息,本文給出的詞義消歧方法包含3個步驟,設計論述可詳見如下。
Step 1 識別句子中多義的詞語。
Step 2 計算多義詞語的上下文窗口表示。
Step 3 計算句子中多義詞語的上下文窗口表示和在文本語料集中對應的聚類簇質心間的相似度,將最大相似度值所對應的詞向量表示作為多義詞語在上下文中特定語義的詞向量表示。
詞語的上下文窗口表示由2.1節(jié)的公式(1)計算得到。在公式(1)中,若wi也是多義詞語,則vecwi為該詞語在文本語料集中最常出現(xiàn)的語義所對應的詞向量,最常出現(xiàn)的語義可以由文本語料集中該詞語語義樣本出現(xiàn)的次數(shù)來運算確定。
多義詞語有2個及以上的詞向量表示,不同的詞義對應不同的向量表示,可以識別出句子中的多義詞語。根據(jù)詞語詞義數(shù)量的多少,依照先少后多的順序依次對多義詞語進行消歧。
4 實驗結果及分析
實驗設計流程主要包含2部分:首先訓練獲得多義詞的詞向量表示,然后基于多義詞向量表示進行詞義消歧。
4.1 實驗參數(shù)
訓練獲得多義詞的詞向量表示,原始文本語料集采用維基中文百科文本語料(文本大小約為1.9 GB)和搜狐新聞語料集(文本大小約為680 MB),實驗用多義詞詞典根據(jù)現(xiàn)代漢語多義詞詞典,由人工統(tǒng)計部分常用多義詞語及詞義個數(shù)。采用Google的Word2Vec模型來進行詞向量的訓練,向量維度設為150(一般為100~300),訓練模型使用CBOW,其它設置均選擇默認。多義詞語的上下文窗口大小設為3(一般為3~5),中文分詞選用jieba分詞工具。
基于多義詞向量表示的詞義消歧,測試數(shù)據(jù)集使用SemEval-2007國際語義測評任務中SemEval-2007 task5,該任務的測試集包含40個多義詞語,分為名詞和動詞兩大類,多義詞語的上下文窗口大小為3。詞語上下文窗口出現(xiàn)的未登錄詞不參與計算。
詞義消歧的實驗結果采用準確率來進行評價,計算公式即如式(4)所示:
由表1、表2中可以看出,名詞性多義詞語進行詞義消歧的準確率要高于動詞性多義詞語。一般來說,在上下文環(huán)境中,名詞的詞義更加明確,也更加容易區(qū)分,訓練得到的名詞性多義詞語的向量表示,更能較好地區(qū)別表示名詞性多義詞語的不同詞義。
從整體上來看,單字的多義詞消歧正確率一般低于雙字的多義詞,在多義詞語向量表示的訓練過程中,需要對語料集文本進行分詞,分詞的粒度和準確性會影響分詞的效果,而對于單字的多義詞來說,分詞后的樣本較少,訓練得到的單字多義詞的向量表示不能做到準確區(qū)分表示詞義,例如動詞“出”,習慣用法是與其它詞語組合,共同作為一個詞語來加以使用。
整體詞義消歧的平均準確率為52%,由于語料庫規(guī)模的限制,影響多義詞上下文窗口表示的聚類效果,降低了訓練獲得的多義詞向量表示的準確性。受限于語言學的知識,人工編制的多義詞詞典,未能收錄全部的多義詞,多義詞詞義的個數(shù)的統(tǒng)計也存在誤差,因而也在一定程度上降低了多義詞上下文窗口表示的聚類效果及標記準確性。
5 結束語
針對多義詞詞義消歧的問題,利用人工構建的多義詞詞典,在K-means聚類多義詞語上下文窗口表示的基礎上,訓練獲得多義詞語的向量表示,給出了一種基于多義詞向量表示的詞義消歧方法,對句子中的多義詞語進行詞義消歧。實驗結果表明,詞義消歧方法具備良好實效及操作可行性。后續(xù)工作中,亟待進一步研究的問題主要有:多義詞詞典的持續(xù)完善,語料庫的規(guī)模和質量影響多義詞向量表示的精度,詞義消歧的準確性也依賴中文分詞的粒度和準確性以及詞語上下文窗口的表示方法。
參考文獻
[1] 高雪霞,炎士濤. 基于WordNet詞義消歧的語義檢索研究[J]. 湘潭大學自然科學學報,2017, 39(2):118-121.
[2] 郭鴻奇,李國佳. 一種基于詞語多原型向量表示的句子相似度計算方法[J]. 智能計算機與應用,2018,8(2):38-42.
[3] 楊陟卓. 基于上下文翻譯的有監(jiān)督詞義消歧研究[J]. 計算機科學,2017,44(4):252-255,280.
[4] 張春祥,徐志峰,高雪瑤. 一種半監(jiān)督的漢語詞義消歧方法[J]. 西南交通大學學報,2018,3(2): http://kns.cnki.net/kcms/detail/51.1277.U.20180306.1913.006.html.
[5] 楊安,李素建,李蕓. 基于領域知識和詞向量的詞義消歧方法[J]. 北京大學學報(自然科學版),2017,53(2):204-210.
[6] REISINGER J, MOONEY R J. Multi-prototype vector-space models of word meaning [C] // Proceedings of the 11th Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL-2010). Los Angeles: ACL, 2010:109-117.
[7] HUANG E H, SOCHER R, MANNING C D, et al. Improving word representations via global context and multiple word prototypes [C] //Meeting of the Association for Computational Linguistics. Korea Jeju Island:ACM,2012:873-882.
[8] BENGIO Y, DUCHARME R, VINCENT P, et al. A neural probabilistic language model[J] . Journal of Machine Learning Research, 2003, 3 (6): 1137-1155.