N-gram

出自維基百科,自由嘅百科全書

N-gram電腦科學上係指一串符號當中嘅一連 n 個符號:想像有串 100 個符號(LLLRLRRRLL...),一個 3-gram 演算法會考慮每串連續三個符號係乜嘢樣(LLL, LLR, LRL...;123, 234, 345...),再按打前嗰兩個符號嘅規律計算下一個符號最有可能係乜,例:打前嗰兩個符號係 LL,而根據已有數據,已知兩個符號係 LL,下一個符號最有可能會係乜[1]

概論[編輯]

N-gram 嘅諗頭基於一個簡單嘅事實:

語言文字本質上就係一串串嘅符號,包括字母標點符號空格呀噉。

N-gram 係 NLP 最簡單嘅做法之一,一串 n-gram 指一串符號當中嘅一連 n 咁多個符號:例如想像有串 100 隻字符LLLRLRRRLL...,一個 3-gram 嘅演算法會考慮每串連續三個符號係乜嘢樣-LLL, LLR, LRL...,再按打前嗰兩個符號嘅規律計算下一個符號最有可能係乜;例如想像家陣手上串英文字係噉嘅樣[2][3]

I am fascinated by artificial intelligence.

喺呢段字入面,如果打前兩個字符係 fa,跟住嗰個符號係 s 嘅機率係 100% -喺串字入面,fa 出現咗一次,而喺嗰次當中跟尾嗰個字符係 s,所以如果淨係考慮上面段字嘅 3-gram 嘅話,「fa 後面係 s」嘅機率係 100%。現實應用嘅 n-gram 會用大量語料數據嚟做類似噉嘅估計,計出一隻語言啲字符之間嘅統計關係。精確啲講,即係話一個 n-gram 模型定義上會用[1]

[註 1]

嘅數值預測 ,計算

N-gram 好基本,有好多進階嘅 NLP 應用都係 n-gram 完全搞唔掂嘅。不過齋靠 n-gram 經已可以做到語言辨認(language identification)等比較簡單嘅 NLP 工作:想像家陣設計者攞住每隻已知嘅語言-英文、德文法文... 呀噉,同每隻呢啲語言都搵語料數據同佢建立咗個 3-gram 模型,知道啲 嘅數值,佢跟住就可以計[4]

用日常用語講,佢做嘅嘢係要攞英文嘅 3-gram 模型,計吓「如果呢段文字係英文,會出段噉嘅字符嘅機率」,然後攞德文嘅 3-gram 模型,計吓「如果呢段文字係德文,會出段噉嘅字符嘅機率」... 如此類推,跟住就(例如)揀「出到呢段字符嘅機率」最大嗰隻語言,最後做到辨認手上段字係咩語言[4]

概念[編輯]

  • 等級 N-gram(hierarchical N-gram):指個演算法包含幾個唔同嘅 N-gram 演算法[5]
 有若干個 N-gram 演算法;
 有某啲機制決定幾時用邊個演算法。
  • 窗大細(window size):泛指一個會「睇一串時間上先後嘅數據」嘅演算法所睇嘅一串數據有幾長;例如一個用 N-gram 做法嘅演算法可能係會睇之前嗰 50 個符號做判斷,噉呢個演算法嘅窗大細就係 50。一個 ML 演算法嘅表現同佢嘅窗大細好多時唔係單純嘅正比或者反比[6]
  • 困惑度(perplexity,):「每隻字嘅困惑度」係 N-gram 上成日攞嚟評估一個 n-gram 模型「有幾掂」嘅做法;困惑度反映一個概率分佈「有幾能夠預測個樣本」,一個離散概率分佈 嘅困惑度計法如下-
    ,當中
    係個概率分佈嘅資訊熵[7]。詳情可以睇資訊熵

註釋[編輯]

  1. 即係話 n-gram 係馬可夫鏈嘅一種。

睇埋[編輯]

[編輯]

  1. 1.0 1.1 Millington, I. (2019). AI for Games. CRC Press. p. 582 - 584.
  2. Brown, P. F., Desouza, P. V., Mercer, R. L., Pietra, V. J. D., & Lai, J. C. (1992). Class-based n-gram models of natural language. Computational linguistics, 18(4), 467-479.
  3. Jurafsky, D., & Martin, J. H. (2021). Speech and Language Processing. Stanford University. Ch. 3.
  4. 4.0 4.1 Russell, S., & Norvig, P. (2002). Artificial intelligence: a Modern Approach. Pearson. Ch. 2.
  5. Millington, I. (2019). AI for Games. CRC Press. p. 588 - 589.
  6. Millington, I. (2019). AI for Games. CRC Press. p. 586 - 587.
  7. Brown, Peter F.; 等 (March 1992). "An Estimate of an Upper Bound for the Entropy of English" (PDF). Computational Linguistics. 18 (1). 喺2007-02-07搵到.