Word Sense Disambiguation※

 

ambiguity 指的是可做兩種或多種解釋,或是意思不明確。很多字都可以有不只一種的意思,像英文中watch可以當手錶也可以當注意,word sense disambiguation (WSD:詞義消歧)就是要做在翻譯的時候要如何決定這個字在文章中的意思到底是本身所含這麼多意思中的哪一個。

WSD在自然語言處理方面早就成為一個獨立的研究領域,並且有超過40年了歷史。所以在這方面被提出的改善方法,已經有很多了。以下是根據時間的演進(也大概是方法的大方向)來介紹有名的演算法:

 

§ EARLY APPROACHEbased on manually created rules

1):( wilks1972 )加強選擇限制( selectional constraints)

每種詞都有某些詞是能一起用或是不能一起用的,有名的例子”colorless ideas sleep furiously”。文法很對但是語意不通。’colorless’後面通常都加實質的物體;什麼可以跟sleep接?有生命的東西才會跟sleep接,這些就叫選擇限制。所以EX: the adder drank from the pool. adder 一個是計算機的意思,可以分為machine這一類;另一個是蛇的意思可以分為animate這類。因為要配合’喝’這個詞,所以要選有生命的animate這類。

2): ( small 1980 )Word expert system

small的想法是:單字比文法重要,所以應該要著重在語意上。每一個字都應該要有一個專家系統,包含文法訊息、辭典的訊息等等的。目標是提供完整的語意解析。缺點是要建立的資料量太大了

由於以上的兩種方法需要一個很大的詞典,需要手動的一個消岐資訊。之後的發展希望由利用1.已存在的詞典和用統計的方法及2.讓機器自己學習來改善這些問題

 

§  dictionary-based approaches

 

3):( lesk1986 ) 一個詞跟鄰近的詞應該要有一些共同的資訊。

引起他動機的是 pine cone這個詞。pine 在字典裡有兩個主要解釋:’kind of evergreen tree with needle-shaped leaves’和’waste away through sorrow or illness’;而cone則主要有3個意思’solid body which narrows at a point’’something of this shape whether solid or hollow’’fruit of certain evergreen tree’。而他們的定義中共同的有evergreen和 tree ,所以應該要選有在定義上有交集的意思。

4):

合併不同層次的知識,包含構詞、句法、語意、搭配詞、字之間的關聯、選擇限制。需要一個功能強大的辭典、搭配詞、觀念上的繼承。每個字的每個不同的意思,都在不同層次上給他一個分數,再把這些分數加總起來找最高的那個。

WAY6: 配合local collocation。不一定要是諺語,比較像片語的感覺;像’in’’the’’of’各自不相關,但是in the interest of就有利用的意思。還有配合主-動、動-受、形-名之類的關係。

5):

比較從心理學和認知的角度出發。跟人的常識(領域廣)有關。看到the astronomer married the star和the director married the star。前者的star讓人瞬間想到的會是天空中的星體,但是後者想到的就是明星。但是動詞MARRY要配合的應該是人,所以要選明星這個意思。

6): flip-flop演算法

find random partition P = {P1P2} of translation of {t1………tm}

while ( there is a significant improvement ) do {

-- find partition Q={Q1Q2} of indicators {x1………xm} that maximizes I(P ; Q);

-- find partition P={P1P2} of indicators {t1………tm} that maximizes I(P ; Q);

}

mutual information : I( X ; Y ) = Σ(x屬於X)Σ(y屬於Y)p( x , y) log(p( x , y )/p(x)p(y));

mutual information 在這個演算法中會嚴格遞增,所以當不在出現大幅度的改進時就可以停止了。

假如我們想根據受詞來翻譯prendre這個字而且有 {t1, …, tm}={take, make, rise, speak} {x1, …, xn}={mesure, note, exemple, décision, parole},   prendre 可以翻譯成take當受詞是mesure, note, exemple; 否則可以當成 make, rise, or speak.

--Suppose the initial partition is P1={take, rise} and P2={make, speak}.

--Then choose partition of Q of indicator values that maximizes I(P;Q), say Q1={mesure, note, exemple} and Q2={décision, parole} (selected if the division gives us the most information for distinguishing translations in P1 from translations in P2).

-- prendre la parole isnot translated as rise to speak when it should be; repartition as P1={take} and P2={rise, make, speak}, and Q as previously.  This is always correct for take sense

--To distinguish among the others, we would have to consider more than two senses.

 

§  isambiguation using thesauri

7):Thesaurus-based Disambiguation

利用同義詞詞典( Roget’s Thesaurus )和Grolier’s Encyclopaedia。字的意思在Roget’s中被分類,總共有1000多個領域。先為每個類別收集文章,從這些文章中找出屬於這個類別的字的發生。抽出附近的100個字。然後幫這些字訂一個加權(weight)。之後把出現在同樣文章中同類別的字的weight加總起來看哪個類別的最高,利用類別來決定字的意思。用WordNet的成果可能會更好。

用在測試12個多義字上的正確率高達90%。

 

§  disambiguation based on unsupervised machine learning with corpora

 

8):

one sense per discourse 一個詞通常只會以一個意思在一篇文章中出現。(不過,也許說是one domain per discourse會更好)

one sense per collocation 在附近的詞會提供與本身強烈而且穩定的線索。

想法:選擇在那邊文章中最強搭配詞的特徵,而且只用這個特徵來消岐,

特徵就是這個比例:P(sk1|f)/P(sk2|f), 跟著搭配詞f一起出現的sense sk1 除以和跟著搭配詞一起出現的sense sk2  選一個特徵最強的來移除需要合併不同的來源。

ALGORITHM:

part -- Initialization

for all senses sk of wdo

      Fk =  the set of collocations in sk’s dictionary definition

end

for all senses sk of wdo

      Ek =ψ

end

-- Fk contains the characteristic collocations of sk, which is initialized using the dictionary definition of sk or from another source.

-- Ek is the set of the contexts of the ambiguous word w that are currently assigned to sk, which is initially empty.

part -- One sense per collocation

while (at least one Ek changed during the last iteration) do

      for all senses sk of wdo

          Ek =  {ci | $fm : fmÎci Ù fmÎFk}

end

      for all senses sk of wdo

          Fk =  {fm | "n¹k  P(sk| fm)/ P(sn| fm) >a}

end

end

 

part -- One sense per discourse

for all documents dmdo

      determine the majority sense sk of w in dm

      assign all occurrences of w in dm sense sk

end

這個和bayesian algorithm同為目前實驗出來,做WSD比其他好的方法。

 

9):透過概率計算來消岐

反映在前一種標記的條件下後一種標記出現的概率。主要的想法是 例如:對句子Henry likes stews。其中Henry是名詞短語,只有NP一種標記 ; likes和stews 都可以是名詞複數或動詞第三人稱單數,所以有兩種可能NNS和VBZ。所以這三種詞可以有四種詞類搭配方式,然後算出每種標記和相鄰標記同時出現的頻率。用這些頻率的乘積除以所有出現的總數當做這種搭配方式的概率。

- NP+NNS+NNS =  17 * 5 * 135 = 11475

- NP+NNS+VBZ =  17 * 1 * 37 = 629

- NP+VBZ+NNS =  7 * 28 * 135 = 26460

- NP+VBZ+VBZ = 7 * 0* 37 = 0

      26460 / (11475 + 629 + 26460 + 0) = 69%是這其中最高的,所以用這個確定這一句應該是NP+VBZ+NNS。

既然可以利用機率的計算確定多義詞在某種組合中的詞類屬性,那也可以透過這種方法來做部分的消岐。

 

WORDNET簡介

傳統的詞典信息與現在計算機技術以及心理語言學的研究成果所結合的一個產物。一般的詞典都是按照字母順序排列,但是根據心理語言學及認知科學的發展,心理語言學家們漸漸認識到詞彙在大腦中的儲存方式,除了像現存字典所有的訊息以外,還有連著一些意義有關聯的詞,但是這樣的訊息在一般詞典內是被分散的。

因此從1985年起,普林斯頓大學承擔起開發一部詞典數據庫的任務,就是WordNet,希望能提供一個與傳統的線上辭典緊密結合的輔助工具。最大的特色是打算用概念而不只是依照傳統字母順序查字典,根據詞義而不是詞型來組織詞彙訊息。目前WordNet有95600個不同詞型,組成70100個同義詞的集合。但是只提供open words的資訊,包含動詞、名詞、形容詞、副詞;介係詞、代名詞之類的function words,也就是不太容易改變的詞類,不在他們打算做的範圍內。

WordNet中有下列詞之間的關係:

1.     同義關係: 在WordNet中最重要的關係,利用矩陣的方法,可以列出多義詞和同義詞。

2.     反義關係: 不好決定的關係,例如說:高興的反義不一定是生氣。

3.     上下位關係: 或是子集,或ISA關係( an x is a kind of y ) ; 上下位關係通常有某種限制,且是一種不對稱的關係,而且通常只有唯一個上層,因而產生一種層次語義結構。下位詞繼承了他的上位詞,更一般化概念的所有性質並且增加屬性,以區別本身及上位詞和該上位詞的其他下位詞。例如:”楓樹”繼承了上層”樹”的屬性,但有”可用於製作糖漿的樹液”的特性區別於其他樹。這種方法為WordNet中的名詞提供一種核心的組織原理。

4.     部分關係:  an x is a part of y

而目前除了WORDNET之外還有微軟的MindNet,歐洲有基於WordNet的EurowordNet,日本有電子辭書研究所的日語及英語概念辭典,還有美國High Performance KB等。中國的則是知網(HowNet):主要包括中英雙語、中文簡體、中文繁體知識辭典;概念的主要特徵、次要特徵;動態角色屬性;詞類表;反義、對義關係表等等。

WordNet  http://wordnet.princeton.edu/

HowNet  http://www.keenage.com

 

心得:常常在聊天的時候,我會不經意的想起"為什麼我能了解這句話?"。儘管沒辦法找出一個真正的解答,存在自己本身內部的知識必定是佔了很大的一個因素。不管怎麼做,編撰好的字典、訊息非常詳盡的字典,在這個部份都是非常重要的。除了利用字典外,也可以從探討人類如何學會一個語言的過程來著手,

將他們結合,我覺得會是很有趣的一個現象,而不只是光靠統計出來的數字。

 

∼ the end∼