陳浩
摘要:詞義消歧仍然是自然語言處理中一個重大的挑戰(zhàn),在自然語言處理的一開始,詞義消歧就被認為是自然語言處理的中心任務之一。這篇文章提出了一種無導詞義消歧的方法,該方法采用二階context構造上下文向量,使用k-means算法進行聚類,最后通過計算相似度來進行詞義的排歧.實驗是在抽取術語的基礎上進行的,在多個漢語高頻多義詞的兩組測試中取得了平均準確率82.67%和84.55%的較好的效果。
關鍵詞:詞義消歧;Hownet;二階context,k-means聚類
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2015)10-0067-02
1 概述
在自然語言里有些詞語在不同的語言環(huán)境中有不同的語義,我們把它稱為多義詞,多義詞的存在給自然語言的很多問題帶來麻煩[1]. 由于多義詞的頻繁出現(xiàn),給自然語言處理中的很多領域,比如機器翻譯,自動文摘等造成困難。詞義消歧的好壞已經(jīng)關系到自然語言中的很多問題,成為自然語言處理的重要的關注點。
20世紀90年代以前,人工智能的方法被廣泛應用于詞義的消歧[2]。人工智能的方法需要人工的設計一些規(guī)則,使詞語消歧的開銷增大,覆蓋面變小。到了20世紀90年代,出現(xiàn)了大規(guī)模的語料庫,并且很多語料庫是標注過的,從而使詞義消歧進入一個新的時期,準確率也有所提高。Wilks和Lesk在1998年[3]提出了一種詞義排歧的方法,它是根據(jù)義項和上下文的匹配程度,如果不能找到合適的匹配程度的上下文,則無法進行詞義排歧。1998年,語言學家Yarowsky[4]通過在大規(guī)模語料庫尋找凸顯詞,利用義類詞典來進行排歧。文獻[5]提出向量空間模型的方法,把多義詞的上下文放到一個向量空間中去,通過比較它們的相似度來確定多義詞的確切詞義,在向量空間模型中,多義詞被看作一個空間中的向量。
本文是一種基于知網(wǎng)的無指導詞義消歧的方法,它具有如下幾個特點:
1)通過聚類的方法來對多義詞的上下文進行分類。
2)為了從上下文中獲得更多的信息,采用了二階上下文的方法
3)通過確定k值來,用k-means方法進行聚類,提高聚類的效果。
2 基于知網(wǎng)的無指導學習方法
我們提出了一種詞義的消除歧義的方法,使用二階上下文的方法把多義詞的上下文向量化,目的是要確定多義詞在詞典中的概念定義。這種方法可以由機器自動完成的。
2.1 使用知網(wǎng)進行詞義消歧。
[6]知網(wǎng)是用來描述漢語或英語所代表的概念屬性之間的關系的一個數(shù)據(jù)庫,在對多義詞進行消歧中,我們主要應用其中的知識字典。.
2.1.1知識字典的記錄模式
在知識字典里,每條記錄都包含四項內(nèi)容,這四條記錄用來描述詞語的概念,在這四條記錄里,詞語用W_X表示,詞語例子用E _X表示,詞語詞性用G_X表示,概念定義用DEF表示,我們通過詞義消歧來確定某個多詞義在具體的語境中是第幾個DEF。
2.1.2 知網(wǎng)中的義項結構
比如對于多義詞沽,在知網(wǎng)中的描述是這樣的,其中No是032339,G_C是v,W_E是Sell,其義項是sell|賣,commercial|商,對于No是032340,W_C是沽,G_C是v,W_E是buy,其義項是buy|買,commercial|商。這是多義詞沽在知網(wǎng)中的2個義項,一個是賣,一個是買,我們可以確定在具體某個語境中是哪個義項。
每個多義詞都有一個同義詞的集合,而同義詞集合中的詞義也可能有幾個意思,我們用k-means的方法對其進行聚類,這樣我們只要找出其中平均距離最小的一個類就可以了,而距離最小的那個類中的上下文應該就是正確的上下文了,這些上下文的集合就是這個同義詞的上下文。
2.2 k-means聚類方法在二階上下文的應用
K-means聚類算法[7]是數(shù)據(jù)挖掘領域經(jīng)常使用的一種聚類方法,其特點是比較簡單而且收斂速度快。在使用K-means聚類時,我們首先面臨的一個問題是把上下文表示成數(shù)學上可處理的形式,我們采用二階上下文的方法來把多義詞進行向量化。
我們可以首先采用文獻[8]的方法進行術語抽取,抽取了術語以后我們引入一個參數(shù)n來測試出現(xiàn)次數(shù)多的詞語,把出現(xiàn)次數(shù)多的詞語作為特征詞,在一個上下文中至少抽取出一個詞語,如果有多個特征詞出現(xiàn),則把這些向量相加。
在一個大的數(shù)據(jù)庫中查找包含多義詞“包袱”的文本,然后構造部分二階上下文,每個上下文的詞語都是一個向量,然后把這些向量相加就是這個義項的向量。
接著我們用采用k-means的方法進行聚類,其中k表示最后聚成的類數(shù)。如何確定最終聚成的類數(shù)k呢?我們開始設k=n,但是也許有些義項在上下文中并不會出現(xiàn),于是我們采用一種給k打分的方法來確定 k,對于k=2,3…n的每一個數(shù)值,計算距離,然后確定距離最近的一個就是最好的k的值。
通過這種方法可以確定一個k值,我們以多義詞“包袱”為例,在近500個文本中有48個上下文,k的確定方法見下表1。
2.3 計算相似度
我們可以用距離計算公式來計算上下文和義項的距離,距離比較近的就是相似度高的,也就是我們要找的義項。向量空間中的一個點用來表示一個上下文的內(nèi)容,相鄰間距離近的就是那個義項。
3 實驗結果
3.1 本實驗以知網(wǎng)為數(shù)據(jù)庫
算法步驟:
[步驟1:從語料庫中找個n個句子,每個句子里都包含多義詞l.
步驟2:對n個句子進行聚類,使用k-means方法聚類
步驟3: 對于每個多義詞l找出它的m個上下文,然后構造二階上下文的同義詞集合,
這個義項就用這個同義詞集合來表示。
步驟4: 計算每個義項和步驟2中用k-means方法聚成的類進行距離計算,距離比較近的就是我們所要找的義項。\&]
3.2 實驗2
我們以詞林作為詞典,這樣在步驟3時,需要找出詞林中的幾個具體的義項,然后對于其中的每一個義項構造同義詞集合,再構造二階上下文,那么每個義項的同義詞集合構造的上下文就代表這個義項,具體數(shù)據(jù)見下表2。
通過比較,發(fā)現(xiàn)使用現(xiàn)在的方法在詞義消歧上有比較好的效果,在準確率上有一定程度的提高。
4結論[9]
在本文中,我們在一個語料庫中選取若干個含有多義詞的語句,我們認為和多義詞的上下文相似的上下文的義項就是正確的義項[10].
通過實驗[11],我們發(fā)現(xiàn)我們提出的方法具有可行性,下一步可以從以下幾個方面繼續(xù)進行研究:
1) 選擇更好的特征詞,對于提高聚類的效果有很大的幫助。
2) 選擇其他的聚類方法來提高聚類的效果。
3)可以選取標注好的語料庫來檢驗詞義消歧的效果。
參考文獻:
[1] 魯松,白碩,黃雄,等.基于向量空間模型的有導詞義消歧[J].計算機研究與發(fā)展,2001,38(6): 662-667.
[2] 黃昌寧,李涓子.詞義排歧的一種語言模型[J].語言文字應用,2000(3):85-90.
[3] Nancy Ide,Jean Veronis.Computational linguistics: special issue on word sense disambiguation[J].Computational Linguistics,1998,24(1):1-42.
[4] Yarowsky,David.word-sense disambiguation using statistical models of Rigets categories trained on large corpora[C].Proceedings of COLING-92,Nantes,F(xiàn)rance,1992
[5] 魯松,白碩,黃雄.基于向量空間模型中義項詞語的無導詞義消歧[J].軟件學報,2009,13(6):1082-1089.
[6] 董振東,董強知網(wǎng)[EB/OL].http://keenage.com.
[7] 行小帥,潘進,焦李成.基于免疫規(guī)劃的K-means聚類算法[J]計算機學報,2003,26(5):605-610.
[8] Patrick Pantel,Dekang Lin.A Statistical Corpus-Based Term Extractor[C].Canadian Conference.on.AI,2001:36-46.
[9] Word sense Disambiguation Improves Statistical Machine Translation[C].proceeding of the 48th Annual Meeting of the Association for Computational Linguistics,2010.
[10] Chiang D. Hierachiacal phrase-based translation To appear [C] .Computational Linguistics,2007,33.
[11] Roberto Navigli and Mirella Lapata 2007 Graph connectivity measures for unsupervised word sense disambiguation [C]. proceeding of the 20th International Joint Conference on Artificial Intelligence.