[自然語言]術語筆記_語言模型N-gram(看前N-1個token,來預測下一個詞)、Corpus(語料庫)



https://books.google.com/ngrams/graph?content=*&year_start=1800&year_end=2022&corpus=zh&smoothing=3

上圖為Google Books的語料庫可發現 的這個字頻率出現最高


Language Model (語言模型)
如果說我們有一個由m個詞組成的序列(也就是一個句子),我們希望計算句子的概率。
根據鍊式規則,可得:
p(w₁, w₂, …, wₘ) = p(w₁) * p(w₂ | w₁) * p(w₃ | w₁, w₂) … * p(wₘ | w₁, …, wₘ₋₁)
根據馬可夫鏈假設可得
p(w₁, w₂, …, wₘ) = p(wᵢ | wᵢ₋ₙ₊₁, …, wᵢ₋₁)

Corpus/Corpora(語料庫)
語料庫是一個由真實文字或音訊組成並整理成資料集的結構化文本數據集。是自然語言處理(NLP)系統的基礎。
它可以包含從報紙、小說、食譜、廣播節目到電視節目、電影以及推文等各類內容。




N-gram模型(看前N-1個token,來預測下一個詞)
  • 是一種LM(Language Model),語言模型是一個根據機率判別的模型,其輸入是一句話(單詞的有順序性序列),輸出也就是這一句話的機率,也就是這些單詞的聯合機率(joint probability)。
  • 常應用在「錯字修正」、「選字推薦」等。
  • 以n-1個字來做input,預測之後應該output捨麼字。比方4-gram model就會用前3個字來預測第4個字output為何?


比方以Google Books語料庫N-gram推測 滷肉 下一個字機率最大是出現 "飯"



N-gram模型定義(等號左側就為句子出現的合理性機率)
當 n=1 時,一個一元模型(Unigram)為,每個單詞出現機率連乘的機率,只看自己:

當 n=2 時,一個二元模型(Bigram)為,前一個單詞條件下再去計算第二個單詞的機率:
當 n=3 時,一個三元模型(Trigram)為,看前2個單詞去預測下一個單詞的機率:
N-gram的N愈大愈好嗎?
當N值較大:對字詞的約束性更高,具有更高的辨識力,複雜度較高。
當N值較小:字詞在文本出現的次數較多,更可靠的統計結果,但對字詞的約束性較小。


N-gram model 缺點
無法明白前後文理解,尤其是越遠的文字越難理解得到。因此到後期衍生出LSTM(Long-short term memory)這類神經網路模型,更強大的點在於能取得Long Period資訊。



Ref:
傳統的語言模型:ch2 N Gram 的序列魔法1 語言的積木:從 1 gram 到 N gram 的猜詞遊
傳統的語言模型:ch3 N Gram 的序列魔法2 N gram 如何計算、Google Books Ngra
語料庫 (Corpus / Corpora)
3 1 Introduction to N grams 8 41
自然語言處理1:自然語言處理概論、N-gram 語言模型及其應用
【自然语言处理】:n-gram模型深度理解
NLP's quantum leap: from N-grams to GPT-4 

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義

鼎新ERP_會計系統_總帳管理_財務參數設定_傳票處理