1. 程式人生 > >基於《知網》的詞彙語義相似度計算(上)(作者:劉群 李素建)

基於《知網》的詞彙語義相似度計算(上)(作者:劉群 李素建)

基於《知網》的詞彙語義相似度計算

劉群 李素建

{liuqun,lisujian}@ict.ac.cn

† 中國科學院計算技術研究所  

‡ 北京大學計算語言學研究所

摘要:

《知網》是一部比較詳盡的語義知識詞典。在基於例項的機器翻譯中,詞語相似度計算是一個重要的環節。不過,由於《知網》中對於一個詞的語義採用的是一種多維的知識表示形式,這給詞語相似度的計算帶來了麻煩。這一點與WordNet和《同義詞詞林》不同。在WordNet和《同義詞詞林》中,所有同類的語義項(WordNetsynset或《同義詞詞林》的詞群)構成一個樹狀結構,要計算語義項之間的距離,只要計算樹狀結構中相應結點的距離即可。而在《知網》中詞語相似度的計算存在以下問題:

1. 每一個詞的語義描述由多個義原組成,例如“暗箱”一詞的語義描述為:part|部件,%tool|用具,body|身,“寫信”一詞的語義描述為:#TakePicture|拍攝write|,ContentProduct=letter|信件;

2. 詞語的語義描述中各個義原並不是平等的,它們之間有著複雜的關係,通過一種專門的知識描述語言來表示。

我們的工作主要包括:

1. 研究《知網》中知識描述語言的語法,瞭解其描述一個詞義所用的多個義原之間的關係,區分其在詞語相似度計算中所起的作用;

2. 提出利用《知網》進行詞語相似度計算的演算法;

3. 通過實驗驗證該演算法的有效性,並與其他演算法進行比較。

關鍵詞:《知網》 詞彙語義相似度計算  自然語言處理

1 引言

在基於例項的機器翻譯中,詞語相似度的計算有著重要的作用。例如要翻譯“張三寫的小說”這個短語,通過語料庫檢索得到譯例:

1)李四寫的小說/the novel written by Li Si

2)去年寫的小說/the novel written last year

通過相似度計算我們發現,“張三”和“李四”都是具體的人,語義上非常相似,而“去年”的語義是時間,和“張三”相似度較低,因此我們選用“李四寫的小說”這個例項進行類比翻譯,就可以得到正確的譯文:

the novel written by Zhang San

如果選用後者作為例項,那麼得到的錯誤譯文將是:

* the novel written Zhang San

通過這個例子可以看出相似度計算在基於例項的機器翻譯中所起的作用。

在基於例項的翻譯中另一個重要的工作是雙語對齊。在雙語對齊過程中要用到兩種語言詞語的相似度計算,這不在本文所考慮的範圍之內。

除了基於例項的機器翻譯之外,詞語相似度計算在資訊檢索、資訊抽取、詞義排歧等領域都有著廣泛的應用。

2 詞語相似度及其計算的方法

2.1 什麼是詞語相似度

什麼是詞語相似度?

我們認為,詞語相似度是一個主觀性相當強的概念。脫離具體的應用去談論詞語相似度,很難得到一個統一的定義。因為詞語之間的關係非常複雜,其相似或差異之處很難用一個簡單的數值來進行度量。從某一角度看非常相似的詞語,從另一個角度看,很可能差異非常大。

不過,在具體的應用中,詞語相似度的含義可能就比較明確了。例如,在基於例項的機器翻譯中,詞語相似度主要用於衡量文字中詞語的可替換程度;而在資訊檢索中,相似度更多的要反映文字或者使用者查詢在意義上的符合程度。

本文的研究主要以基於例項的機器翻譯為背景,因此在本文中我們所理解的詞語相似度就是兩個詞語在不同的上下文中可以互相替換使用而不改變文字的句法語義結構的程度。兩個詞語,如果在不同的上下文中可以互相替換且不改變文字的句法語義結構的可能性越大,二者的相似度就越高,否則相似度就越低。

相似度是一個數值,一般取值範圍在[0,1]之間。一個詞語與其本身的語義相似度為1。如果兩個詞語在任何上下文中都不可替換,那麼其相似度為0

相似度這個概念,涉及到詞語的詞法、句法、語義甚至語用等方方面面的特點。其中,對詞語相似度影響最大的應該是詞的語義。

2.2 詞語相似度與詞語距離

度量兩個詞語關係的另一個重要指標是詞語的距離。

一般而言,詞語距離是一個[0,)之間的實數。

一個詞語與其本身的距離為0

詞語距離與詞語相似度之間有著密切的關係。

兩個詞語的距離越大,其相似度越低;反之,兩個詞語的距離越小,其相似度越大。二者之間可以建立一種簡單的對應關係。這種對應關係需要滿足以下幾個條件:

1)  兩個詞語距離為0時,其相似度為1

2)  兩個詞語距離為無窮大時,其相似度為0

3)  兩個詞語的距離越大,其相似度越小(單調下降)。

對於兩個詞語W1和W2,我們記其相似度為Sim(W1,W2),其詞語距離為Dis(W1,W2),那麼我們可以定義一個滿足以上條件的簡單的轉換關係:

         …… (1)

其中α是一個可調節的引數。α的含義是:當相似度為0.5時的詞語距離值。

這種轉換關係並不是唯一的,我們這裡只是給出了其中的一種可能。

在很多情況下,直接計算詞語的相似度比較困難,通常可以先計算詞語的距離,然後再轉換成詞語的相似度。所以在本文後面的有些章節,我們只談論詞語的距離,而沒有提及詞語的相似度,讀者應該知道這二者是可以互相轉換的。

2.3 詞語相似度與詞語相關性

度量兩個詞語關係的另一個重要指標是詞語的相關性。

詞語相關性反映的是兩個詞語互相關聯的程度。可以用這兩個詞語在同一個語境中共現的可能性來衡量。

詞語相關性也是一個[0,1]之間的實數。

詞語相關性和詞語相似性是兩個不同的概念。例如“醫生”和“疾病”兩個詞語,其相似性非常低,而相關性卻很高。可以這麼認為,詞語相似性反映的是詞語之間的聚合特點,而詞語相關性反映的是詞語之間的組合特點。

同時,詞語相關性和詞語相似性又有著密切的聯絡。如果兩個詞語非常相似,那麼這兩個詞語與其他詞語的相關性也會非常接近。反之,如果兩個詞語與其他詞語的相關性特點很接近,那麼這兩個詞一般相似程度也很高。

2.4 詞語相似度的計算方法

詞語距離有兩類常見的計算方法,一種是根據某種世界知識(Ontology)來計算,一種利用大規模的語料庫進行統計。

根據世界知識(Ontology)計算詞語語義距離的方法,一般是利用一部同義詞詞典(Thesaurus)。一般同義詞詞典都是將所有的片語織在一棵或幾棵樹狀的層次結構中。我們知道,在一棵樹形圖中,任何兩個結點之間有且只有一條路徑。於是,這條路徑的長度就可以作為這兩個概念的語義距離的一種度量。

1 《同義詞詞林》語義分類樹形圖

王斌(1999)採用這種方法利用《同義詞詞林》來計算漢語詞語之間的相似度(如圖1所示)。有些研究者考慮的情況更復雜。Agirre & Rigau (1995)在利用Wordnet計算詞語的語義相似度時,除了結點間的路徑長度外,還考慮到了其他一些因素。例如:

1)  概念層次樹的深度:路徑長度相同的兩個結點,如果位於概念層次的越底層,其語義距離較大;比如說:“動物”和“植物”、“哺乳動物”和“爬行動物”,這兩對概念間的路徑長度都是2,但前一對詞處於語義樹的較高層,因此認為其語義距離較大,後一對詞處於語義樹的較低層,其語義距離更小;

2)  概念層次樹的區域密度:路徑長度相同的兩個結點,如果位於概念層次樹中高密度區域,其語義距離應大於位於低密度區域。由於Wordnet中概念描述的粗細程度不均,例如動植物分類的描述及其詳盡,而有些區域的概念描述又比較粗疏,所以加入了概念層次樹區域密度對語義距離的影響。

另一種詞語相似度的計算方法是大規模的語料來統計。例如,利用詞語的相關性來計算詞語的相似度。事先選擇一組特徵詞,然後計算這一組特徵詞與每一個詞的相關性(一般用這組詞在實際的大規模語料中在該詞的上下文中出現的頻率來度量),於是,對於每一個詞都可以得到一個相關性的特徵詞向量,然後利用這些向量之間的相似度(一般用向量的夾角餘弦來計算)作為這兩個詞的相似度。這種做法的假設是,凡是語義相近的詞,他們的上下文也應該相似。李涓子(1999)利用這種思想來實現語義的自動排歧;魯鬆(2001)研究瞭如何如何利用詞語的相關性來計算詞語的相似度。Dagan(1999)使用了更為複雜的概率模型來計算詞語的距離。

這兩種方法各有特點。基於世界知識的方法簡單有效,也比較直觀、易於理解,但這種方法得到的結果受人的主觀意識影響較大,有時並不能準確反映客觀事實。另外,這種方法比較準確地反映了詞語之間語義方面的相似性和差異,而對於詞語之間的句法和語用特點考慮得比較少。基於語料庫的方法比較客觀,綜合反映了詞語在句法、語義、語用等方面的相似性和差異。但是,這種方法比較依賴於訓練所用的語料庫,計算量大,計算方法複雜,另外,受資料稀疏和資料噪聲的干擾較大,有時會出現明顯的錯誤。

本文主要研究基於《知網(Hownet)》的詞語相似度計算方法,這是一種基於世界知識的方法。