這是一系列自然語言處理的介紹,本文不會涉及公式推導,主要是一些演算法思想的隨筆記錄。
適用人群:自然語言處理初學者,轉ai的開發人員。
程式語言:python
參考書籍:《數學之美》
參考教程:
《機器讀心術之自然語言處理》
對於像漢語,英語這樣的大型自然語言系統,難以構造精確的文法;
不符合人類學習語言的習慣;
有些句子語法正確(符合文法),但在語義上卻不可能,形式語言無法排出這些句子。
解決方向:基於大量語料,採用統計學手段建立模型。
統計語言模型( statistical language model),是今天所有自然語言處理的基礎,並且廣泛應用於機器翻譯、語音識別、印刷體或手寫體識別、拼寫糾錯、漢字輸入和文獻查詢。
乙個句子是否合理,就看它的可能性大小如何。至於可能性就用概率來衡量。
古德-圖靈估計
古德-圖靈估計可以解決n元語法模型(n-gram)中的資料的稀疏問題。主要的思想是把非零的n元語法的概率降低勻給一些低概率n元語法,以修改最大似然估計與真實概率之間的偏離。
如果訓練語料和模型應用的領域相脫節,那麼模型的效果往往會大打折扣;
訓練資料通常是越多越好;
在1、2情況下(訓練資料和應用資料一致並且訓練量足夠大的情況下),訓練語料的噪音高低也會對模型的效果產生一定的影響,因此,在訓練之前有時需要對訓練資料進行預處理。在成本不高的情況下,有必要對訓練資料進行過濾。
語言模型評價指標perplexity
語言模型的效能通常用交叉熵和**複雜度(perplexity)**來衡量。交叉熵的意義是用該模型對文字識別的難度,或者從壓縮的角度來看,每個詞平均要用幾個位來編碼。複雜度的意義是用該模型表示這一文字平均的分支數,其倒數可視為每個詞的平均概率。平滑是指對沒觀察到的n元組合賦予乙個概率值,以保證詞序列總能通過語言模型得到乙個概率值。
NLP01 NLP基礎 語言模型
本次學習是根據貪心科技的李文哲老師的語言模型課程所整理的相關筆記,並加上自己的理解。內容包括 語言模型的介紹 chain rule 以及馬爾可夫假設 unigram,bigram,ngram 估計語言模型的概率 評估語言模型 perplexity add one 平滑,add k平滑 interpo...
NLP 2 語言模型
馬爾科夫假設 markov assumption 乙個詞出現的概率僅依賴於它前面的乙個或幾個詞。一元語言模型 unigram 即樸素貝葉斯假設。三元語言模型 trigram 考慮乙個詞對前兩個詞的依賴關係。關於給句子加開始符與結束符的問題 加開始符應該相應地加上結束符,至於為什麼,現在還不是很理解。...
NLP基礎筆記4 語言模型
首先放一張基於language model的nlp主要模型演算法梳理框圖。nlp語言模型可分為傳統語言模型與神經語言模型。簡言之,語言模型就是給句子 詞序列 分配乙個概率。這個概率表示這句話 合理程度 舉個例子 你兒子在我手上,快點把打過來。prob 0.80 這樣乙個句子,非常 通順 就得到乙個很...