詞義消歧

**詞義消歧**（；參見）係自然語言處理（教人工智能處理語言）嘅一環，顧名思義係講緊要教電腦消除段字入便嘅詞義歧義：好似粵語、客家話或者英文等嘅自然語言，啲字詞有陣時會出現歧義嘅情況，一隻字詞有多過一個可能嘅詞義，而詞義消歧就係要教人工智能學識撞到歧義嗰陣，同每隻有歧義嘅字詞搵出佢應該係邊個詞義，靠嘅通常都係語境。

譬如喺粵語，**花**一詞做形容詞嗰陣有最少兩個可能嘅詞義：可能係指一樣嘢好多顏色或者好多花紋，又可能係指**有刮痕**；噉想像以下呢句嘢——
:「你幅眼鏡塊鏡片花咗嘅，係咪刮過嚟？」
一個詞義消歧嘅程式，就需要搵出上面句嘢嗰個**花**係指緊多顏色多花紋，定係指緊有刮痕。要做呢個判斷，可以依靠句嘢入面嘅其他字詞，例如係**刮**一詞噉。

截至廿一世紀初，學界有好多方法做詞義消歧，有啲係靠字典，有啲係靠機器學習，當中監督式同非監督式嘅機器學習都有。直至二〇二〇年代初，詞義消歧技術經已相當成熟，睇英文詞義消歧嘅話，啲程式嘅準確度講緊閒閒哋去到 60% 咁高，當中有部份嘅仲可以去到 90% 準確度。

## 技術做法

### 基於知識

要做詞義消歧，可以靠語義網絡或者字典等事先整理好嘅資源。一種可能嘅諗法如下：如果兩隻字詞喺同一份文本或者語句入便，佢哋理應係有一定關係嘅，而呢點會反映喺詞義之上；因此，電腦可以用字典或者語義網絡摷吓，搵出一對對詞義，係最能夠令到同一份文本或者同一句嘢入便啲字詞「語義上相似」嘅。

舉例說明，用返粵語形容詞**花**做例子，形容詞**花**至少可以有兩個詞義：
#多顏色多花紋
#有刮痕
如果一句嘢用**花**嚟描述眼鏡鏡片；眼鏡鏡片係硬、易刮花嘅嘢，但係就好少可會有啲咩顏色可言，所以喺語義上，詞義 2 比較接近**眼鏡鏡片**（同一句句子入便嘅第隻字詞），所以人工智能理解句嘢嗰時，就對**花**採取詞義 2 嚟理解。

要計兩個詞義或者兩隻字詞「語義上有幾相似」，可以考慮吓語義距離嘅概念：語義距離係指兩隻字詞或者兩個詞義之間意思上差幾遠；例如**[[貓]]**同**[[哺乳類]]**語義距離相對近，都係指緊某啲類嘅動物；而**[[貓]]**同**[[火車]]**之間嘅語義距離就可能會遠啲。

### 機器學習

靠機器學習嚟教電腦做詞義消歧，好多時都係假設咗齋靠上下文已經可以提供到足夠嘅資訊，教電腦辨別詞義。

講最簡單直接嗰種做法，詞義消歧可以靠監督式學習：研究者可以搵一大拃語料返嚟，人手噉同每句嘢標返「句嘢用咗邊個詞義」，再叫個例如神經網絡由呢啲數據嗰度學。呢種方法相對簡單直接，但係人手標詞義往往好嘥時間精神。

詞義消歧可以靠非監督式學習。概念上可以用噉嘅做法：原則上，同樣嘅詞義會响類似嘅語境當中出現，所以研究者可以搵一啲方法量度語料入便每句嘢嘅語境係乜，再用聚類分析或者類似嘅做法，教電腦自己將啲語句分類。

亦有啲做法可能係半監督式嘅，即係一部份嘅語料有人手標詞義或者用肯定、簡單嘅法則嚟標，淨低嘅就冇。標好嗰啲語料可以同一個分類器模型做監督式嘅基本訓練，然後就用個分類器嚟標淨低嗰啲語料。最後等到成個數據庫都標好晒，就可以用嚟做監督式學習。

### 表現評估
要評定一個做詞義消歧嘅程式掂唔掂，最直接嘅係睇吓佢有幾準：研究者可以搵一大拃數據返嚟，數據入便每一句句子都有人事先標好晒句嘢入面嘅字詞係咩詞義，跟住叫個程式同呢啲句子做詞義消歧，最後睇吓個程式畀嘅答案同人手標嘅有幾吻合，即係話
:\text{Zeon kok dou} = \frac{\text{Gu ngaam}}{\text{Zung sou}}\,
*\text{Gu ngaam} 係**估啱**咗幾多個個案；
*\text{Zung sou} 係個案嘅**總數**。
當中 \text{zeon kok dou} 係指**準確度**，而呢個數值愈高（愈接近 100%）個程式詞義消歧就愈算係掂。

## 主要應用
喺自然語言處理，詞義消歧相當有用。
### 機器翻譯

做機器翻譯嗰陣，詞義消歧可以用嚟幫手選詞。舉例説明，想像以下嘅英文句子：
:**I need change.**
依家要將句嘢譯做粵文。當中 **change** 一詞，譯做粵語可以係**改變**，但又有可能係指**唱錢**唱返嚟嘅銀仔。齋靠呢句嘢，譯者難以決定要點譯，於是佢就睇吓句嘢身處咩語境，想像以下呢兩種語境：
#句嘢打前嗰個段落，講嘢嘅人喺度講緊佢發覺自己做人方式唔掂，想作出改變。
#講嘢嘅人响便利店買嘢，正喺度同收銀員面對面對話。
喺情況 1 下，**change** 比較大機會要譯做**改變**，而喺情況 2 下，隻字詞就較大機會要譯做**唱返嚟嘅銀仔**。由此可見，機器翻譯必然會用到詞義消歧功能。

### 資訊處理

資訊提取係指由一個資訊系統度攞自己需要用嘅資源嚟用，而資訊抽取就係指由一份文本度搵出想要嘅資訊。例如有個人喺搜尋器嗰度打咗若干隻關鍵字，摷自己想要嘅網頁，呢個過程係資訊提取，而假如部電腦仲識得由呢啲網頁嘅文字嗰度抽取出（例如）搵緊嘅貨品價錢係幾多，噉個系統就算係做埋資訊抽取。

資訊提取同資訊抽取亦都成日用到詞義消歧。試諗吓依家有位用家開咗 Google 搜尋器摷嘢，淨係入咗**衰退**一詞，佢有可能係想搵醫療方面嘅內容（例如記憶力衰退）但又有可能係想搵經濟學內容（試想經濟衰退）。如果用咗詞義消歧，就可以幫搜尋器更有效噉幫用家搵料。除此之外，一部搜尋器要搵「呢份文本，似唔似係用家想要嘅嘢」嗰陣就要用資訊抽取，例如用家入咗 **drug** 可以係想摷藥物，但係英文 **drug** 又可以係指毒品，如果搜尋器唔識分，就可能會出現種情況，用家明明想摷藥物，但係搜尋器就畀埋晒啲宣傳反毒品資訊嘅網頁佢睇。

## 困難之處

事實表明，詞義消歧並唔易整，就算到咗二〇一〇年代初，詞義消歧演算法嘅表現好多時都好參差，原因有好多：
*詞義概念問題：詞義呢個概念喺語義學（語言學下其中一個學科，專研究語言點表達意思）上就有爭議性：啲人思考詞義，好多時都係諗住每隻字詞都會有若干個「可能意思」每個算係一個詞義，而且個個詞義都可以清楚分得開；但係事實表明呢種諗法並唔正確，字詞嘅意思可以視乎語境而有無數咁多嘅變化，而實證研究亦發現，如果搵多過一個人嚟評估啲句子入便嘅字詞詞義係乜，唔同評估者之間嘅同意度可以得嗰 85% 咁低。可以睇吓語義學上有關同義詞以及一詞多義等概念嘅爭論。
*唔同工作，要用嘅詞義庫可以唔同：舉例說明，要做英到粵機翻，有必要考慮到英文 **mouse** 可以係指老鼠，但又可以譯做**[[踎士]]**或者**[[滑鼠]]**，而相比之下，假如目標語言係好似英文噉，將**老鼠**同**踎士**當做同一隻字詞嘅，佢哋之間嘅翻譯程式就可以忽略呢個詞義差異。
*詞性標注問題：喺某啲語言（例如英文）當中，一隻字詞好多時攞嚟做名詞又得，攞嚟做動詞又得，而做名詞定動詞可以有唔同嘅「可能詞義」集，因此詞義消歧就有可能要配合詞性標注嚟用，但係截至廿一世紀初，詞性標注都仲未做得完美。
... 等等。

## 簡史

詞義消歧呢家嘢，早喺一九四〇年代經已有人喺度講，可以算係運算語言學最古老嘅問題之一。當時有人喺度嘗試整機器翻譯，用一啲原始（講緊基於規則）嘅方法嚟教電腦做翻譯。美國數學家沃倫·韋弗喺一九四九年撰文，用運算嘅角度嚟談論詞義消歧呢個問題。當時嘅研究者話咁快就意識到，詞義分歧係幾咁難以用基於規則嘅做法達到，當中甚至仲有研究者揚言，話詞義消歧一定要模擬人腦有關「世界係點運作」嘅知識，所以冇可能靠電子電腦做到。

到咗一九九〇年代，人工智能研究者開始放棄基於規則嘅系統，採用以統計為基礎嘅人工智能做法，萌生「用機器學習教電腦做詞義消歧」噉嘅諗法，及後仲有研究者嘗試結合知識型嘅做法（好似係語義網絡）於是現時嘅詞義消歧技術，就開始成形。

## 睇埋
*語用
*句子切割
*詞義歸納
*句法歧義
*約限語言

## 註釋

## 引咗

## 拎

* 詞義消歧，學者百科
* 詞義消歧教學，Rada Mihalcea and Ted Pedersen (2005)