[自然語言]術語筆記_語言模型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)系統的基礎。 它可以包含從報紙、小說、食譜、廣播節目到電視節目、電影以及推文等各類內容。 https://botpenguin.com/glossary/corpus 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值...