iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
AI & Data

AI、機器學習以及深度學習的語言學應用系列 第 11

Day 11 - Lesk Algorithm:讓我們來一起消除歧義

  • 分享至 

  • xImage
  •  

每個語言當中的某些單字存在「歧義」(ambiguity),也就是同一個單字有不同的意思,有些意思的本質相似,但是有些定義卻幾乎沒有任何關聯。

舉個經典的例子:

英文當中的 bank 可以是「銀行」也可以是「河岸」,因此如果我們這邊有一句話:

I went to the bank yesterday.

這邊的 bank 到底是指銀行還是河岸呢?

對於電腦來說,這就是一個需要解決的難題,而這項任務叫做 Word Sense Disambiguation (WSD,詞義消歧)


WSD 是什麼?

Word Sense Disambiguation (WSD) 的任務就是,在特定語境中,判斷一個詞的正確意思,可以想一下其實我們人類聽到一個歧義字的時候,也是需要靠語境來去判斷該詞的意思。

這個問題在自然語言處理(NLP)裡非常重要,因為詞的意義不同會直接影響到像是機器翻譯(Machine Translation)、資訊檢索(Information Retrieval)跟問答系統(Question Answering)。

WSD 主要可以分為三類:

  1. Knowledge-based:利用像是字典之類的知識庫

  2. Supervised:需要有標註好的語料來訓練模型

  3. Unsupervised:不需要事先進行人工標記,機器透過關聯性去歸類、找出潛在規則與套路、形成集群

在 knowledge-based 方法裡,有一個經典又直觀的演算法,就是今天要介紹的 Lesk Algorithm。


Lesk Algorithm 是什麼?

  • 這個演算法是一種dictionary-based的方法
  • 概念出自於:文本的單字都是相互關聯的,而這種關聯性以及文字情境是可以從字的「定義」抽取、推斷出來的,而字除了關鍵字之外,也包括周圍附近的單字
  • Lesk 演算法的目的是消除單字之間的歧義,而這些單字通常是「出現在同一個phrase或是句子裡」,因此當兩個單字的定義有很高的重疊性時,我們就會使用這個演算法來分辨意思

Lesk Algorithm 怎麼運作

步驟如下:

  1. 選定目標詞(要消除歧義的詞)

  2. 找出上下文(context window,例如周圍 2~3 個單字)

  3. 查字典的定義:列出目標詞與上下文單字的所有定義

  4. 計算重疊:比對不同定義之間的詞彙重疊程度

  5. 選出最佳定義:重疊度最高的定義就是預測的詞義

例子

假設我們的目標詞是 court 這個詞,上下文是 basketball court。

若想消除歧義,知道court的意思,先列出court的所有意思:

  1. a place where trials and other legal cases happen, or the people present in such a place, especially the officials and those deciding if someone is guilty(法庭)
  2. an area drawn out on the ground that is used for playing sports such as tennis and basketball (球場)
  3. ...

接著列出basketball的意思:

  1. a game played by two teams...(籃球比賽)
  2. the ball used in the game of basketball (籃球)

**從重疊最多的定義,就可以知道這邊的court指的不是法庭,而是球場
**
定義來源:Cambridge Dictionary


好處

  • 簡單好操作,可以應用在許多不同的情境下
  • 不依賴大量語料文本,因為他只取周圍的單字,而非看整體文本
  • 不依賴句法結構,但是可以跟part-of-speech tagger一起應用,因為雖然part-of-speech tagger無法消除歧義,但可以辨別詞性

壞處

  • 最大的壞處便是他的表現力,Lesk演算法的準確率並不理想,定義重疊不一定足以分辨詞義
  • 儘管意思相關聯,但是可能字典定義並沒有重疊,抑或是重疊的部分一樣數量
  • 無法得知context window應該多大

小結

Lesk Algorithm 基本上是透過上下文(語境)來消除詞義歧義的一種 knowledge-based 方法。雖然它的準確率並不完美,容易受限於字典定義的重疊度與 context window 的大小,但它的概念讓我們清楚看到語境在理解詞義中的重要性!


上一篇
Day 10 - Word2Vec
下一篇
Day 12 - Decision Tree(決策樹)
系列文
AI、機器學習以及深度學習的語言學應用12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言