iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

接續昨天 N-gram 的介紹,今天來繼續講講 N-gram~~


The Markov Assumption(馬可夫假設)

昨天有提到,如果要用「所有前文」來預測下一個字(或下一個詞),這樣做會遇到一個大問題:

👉 因為機率要一直相乘,隨著句子變長,數值就會越來越小,小到幾乎是 0,會造成計算的困難。
👉 而且要真的估計「所有前文的組合」的機率,資料量需求會極大,因為語言有無限的創造力,幾乎不可能有完整的語料庫。

因此我們有一個折衷的辦法:

就是 The Markov Assumption(馬可夫假設)。簡單來說,就是假設「下一個字只跟前面幾個字有關」。

例如:

  • Bigram (Bi為2的意思) 模型:預測下一個字只會依賴「前一個字」。
    https://ithelp.ithome.com.tw/upload/images/20250919/20178748lUV7ApWxRa.png

  • Trigram (Tri為3的意思) 模型:預測下一個字依賴「前兩個字」。
    https://ithelp.ithome.com.tw/upload/images/20250919/20178748os5OgLSI1V.png

這樣一來,就不用去看前面整句話,而只需要看有限範圍內的上下文,大大減少了運算與資料的需求。

N-gram 應用與影響

  1. N-gram 的優點 🤩
  • 簡單直觀:只要數出詞組出現的次數就能算機率。
  • 能快速建立語言模型,讓電腦具備「預測下一個字」的能力。
  1. N-gram 的限制 🧐
  • 資料稀疏:如果某個詞組在語料裡沒出現過,那機率就會被判定為 0,會影響預測的結果
  • 需要大量的語料:n 越大,需要的資料量就越龐大。
  • 無法處理長距離、非相鄰字的關係:例如「今天下雨所以我要淋雨」,「淋雨」其實跟前面的「下雨」有關,但 N-gram 很難捕捉這種距離比較遠的關係。
  1. N-gram的應用 🫱🏻
  • 不知道大家有沒有注意到,我們在手機打字的時候,會發現在打完一個字或是一個詞的時候,選字系統會自動跑出可能的下一個字,這就是 N-gram 的一個應用。

以上就是 N-gram 的一些基本介紹。雖然它簡單,但它作為語言模型發展歷程中重要的一塊基石,開啟了語言可以透過機率來建語言模型的想法!

明天就來介紹介紹 TF-IDF ~~

參考資料


上一篇
Day 4 - N-gram (上)
系列文
AI、機器學習以及深度學習的語言學應用5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言