1. 程式人生 > >概率語言模型 Probabilistic Language Modeling (二) --- 模型估計演算法介紹

概率語言模型 Probabilistic Language Modeling (二) --- 模型估計演算法介紹

1. 緣由–資料稀疏問題

假設k泛指某一事件,N(k)表示事件k觀察到的頻數,極大似然法使用相對頻數作為對事件k的概率估計為p(k)=N(k)N,在語言模型中,訓練語料中大量的事件N(k)=0,這顯然沒有反映真實情況,這種零值的概率估計會導致語言模型演算法的失敗。

2. 解決方法–平滑

給“零概率和低概率的N元語法”指派非零概率。平滑分為打折和回退,打折是指將某個非零n元語法的計數降下來,把這部分概率量指派給那些訓練語料庫中出現次數為零或很低的事件。回退指用根據n-1元語法計數來建立n元語法模型。
注:資料平滑技術是構造高魯棒性語言模型的重要手段,且資料平滑的效果與訓練語料庫的規模有關。訓練語料庫規模越小,資料平滑的效果越顯著;訓練語料庫規模越大,資料平滑的效果越不顯著,甚至可以忽略不計。
根據對稱性原理,事件除了出現次數之外不應具有細節特徵,即所有具有相同計數r=N(k)的事件k(事件出現的次數稱為事件的計數)應當具有相同的概率估計值,這些計數相同的事件稱為計數等價,將它們組成的一個等價類記為計數等價類G

r。對於計數為r的計數等價類,定義nr為等價類中成員的個數,pr為等價類中事件的概率,R是最大可能出現的計數次數。

3. 演算法介紹

a) Add-one(Laplace) Smoothing(加一平滑法,又稱拉普拉斯定律),核心思想是保證每個n-gram在訓練語料中至少出現1次,即Just add one to all the counts:
Add 1 estimate:

PAdd1(wi|wi1)=c(wi1,wi)+1c(wi1)+V
對比之前的MLE方法:
PMLE(wi|wi1)=c(wi1,wi)c(wi1)

b) Good-Turing Smoothing(圖靈估計),主要思想是對模型中用觀察計數較高的n元語法數進行打折估計,將折扣後獲得的剩餘量攤給那些具有零計數或者較低計數的n元語法,即利用頻率的類別資訊對頻率進行平滑。對一個任何出現r

次的n元語法,都假設其出現了r,其表示式為:

r=(r+1)nr+1nrpr=rN
在Good-Turing估計中,對於非零的頻率事件概率總和為:
r>0nrpr=1n1N
所以共有n1N的概率剩餘量將會分配給r=0的未見事件。
缺點:(1) 無法保證概率估計的“有序性”,即出現次數多的事件的概率大於出現次數少的事件的概率。(2) prrN不能很好地近似,好的估計應當保證prrN。 (3) 不能實現高階模型和低階模型的結合
優點:是其它平滑技術的基礎
適用範圍:對0<r<6的小計數事件進行估計

c) Jelinek-Mercer (Linear Interpolation) Smoothing, 即線性插值平滑,其主要思想是利用低元的n-gram對高元的n-gram進行線性插值來彌補高元資料稀疏的問題,表示式為:

pinterp(wi|wi1in+1)=λi1in+1pML(wi|wi1in+1)+(1λi1in+1)pinterp(wi|wi1in+2)
該模型的缺點是引數估計比較困難。
另外, Witten-Bell打折法可以認為是Jelinek-Mercer平滑的一個例項。

c) Katz Smoothing,通過加入高階模型和低階模型的結合,擴充套件了Good-Turing。Katz認為,並非所有的計數都使用打折估計得到的c是可靠的,而是對較大的計數是可靠的(對於某個閾值k,c>k)。在這個思想的指導下,估計公式為:

Pbo(wiwin+

相關推薦

概率語言模型 Probabilistic Language Modeling () --- 模型估計演算法介紹

1. 緣由–資料稀疏問題 假設k泛指某一事件,N(k)表示事件k觀察到的頻數,極大似然法使用相對頻數作為對事件k的概率估計為p(k)=N(k)N,在語言模型中,訓練語料中大量的事件N(k)=0,這顯然沒有反映真實情況,這種零值的概率估計會導致語言模型演算法的失

概率語言模型 Probabilistic Language Modeling (三) --- 訓練工具彙總

傳統演算法 1) BerkeleyLM 是用java寫的,號稱跟KenLM差不多,記憶體比srilm小 https://github.com/adampauls/berkeleylm 2)MITLM (The MIT Language Modeling toolkit) 引

斯坦福大學自然語言處理第四課 語言模型Language Modeling)筆記

一、課程介紹 斯坦福大學於2012年3月在Coursera啟動了線上自然語言處理課程,由NLP領域大牛Dan Jurafsky 和 Chirs Manning教授授課:https://class.coursera.org/nlp/ 以下是本課程的學習筆記,以課程PPT/

stanford nlp第四課“語言模型Language Modeling)”

一、課程介紹 斯坦福大學於2012年3月在Coursera啟動了線上自然語言處理課程,由NLP領域大牛Dan Jurafsky 和 Chirs Manning教授授課:https://class.coursera.org/nlp/ 以下是本課程的學習筆記,以課程PPT

深度學習語言模型的通俗講解(Deep Learning for Language Modeling

感想 這是臺灣大學Speech Processing and Machine Learning Laboratory的李巨集毅 (Hung-yi Lee)的次課的內容,他的課有大量生動的例子,把原理也剖析得很清楚,感興趣的同學可以去看看,這裡是我對它的一次課的筆記,我覺得

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之(作者簡介)

AR aca rtu href beijing cert school start ica Brief Introduction of the AuthorChief Architect at 2Wave Technology Inc. (a startup company

神經概率語言模型

統計語言建模的目標是學習語言中單詞序列的聯合概率函式。由於 the curse of dimensionality,這本質上是困難的:測試模型的單詞序列可能與訓練期間看到的所有單詞序列不同。一種基於n-gram的傳統的但非常成功的方法是,通過連線訓練集中看到的非常短的重疊序列來獲得泛化。我們建議通過學習詞的分

概率語言模型分詞方法

4.6  概率語言模型的分詞方法 從統計思想的角度來看,分詞問題的輸入是一個字串C=C1,C2,……,Cn,輸出是一個詞串S=W1,W2,……,Wm,其中m<=n。對於一個特定的字串C,會有多個切分方案S對應,分詞的任務就是在這些S中找出概率最大的一個切分方案,也就是

MIT自然語言處理第三講:概率語言模型(第四、五、六部分)

MIT自然語言處理第三講:概率語言模型(第四部分) 自然語言處理:概率語言模型 Natural Language Processing: Probabilistic Language Modeling 作者:Regina Barzilay(MIT,EECS Dep

概率語言模型及其變形系列(2)-LDA及Gibbs Sampling

本系列博文介紹常見概率語言模型及其變形模型,主要總結PLSA、LDA及LDA的變形模型及引數Inference方法。初步計劃內容如下第三篇:LDA變形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等第四篇:基於變形L

ASP.NET MVC Model之模型綁定

數據包 set count 效果 模型 shtml 獲得 tex turn Asp.net mvc中的模型綁定,或許大家經常用,但是具體說他是怎麽一回事,可能還是會有些陌生,那麽,本文就帶你理解模型綁定。為了理解模型綁定,本文會先給出其定義,然後對通過比,來得出使用模型綁定

ios初識UITableView及簡單用法(模型數據)

ati ins int class test tab 所有 super viewdata // // ViewController.m // ZQRTableViewTest // // Created by zzqqrr on 17/8/24. // Copy

C語言復習:內存模型

com 一個 函數調用模型 ++ white hit 運行 技術分享 空間 函數調用模型 基本原理 實際上就是不斷的從一個內存跳到另一個內存。 函數調用變量傳遞分析 一個主程序有n函數組成,c++編譯器會建立有幾個堆區?有幾個棧區? 答:一個程序只有一個堆區

C語言的內存四區模型和函數調用模型

堆區 函數傳遞 字符串 賦值 上進 自動 比較 代碼區 靜態區 首先是操作系統將代碼程序加載到內存中 然後將內存分為4個區 棧區,程序的局部變量區,函數傳遞的參數,由編譯器自動進行內存資源的釋放。 堆區,動態內存申請,如果不手動釋放內存,則這塊內存不會進行析構。 全局區,靜

自然語言處理--LDA主題聚類模型

src 隨機 pos 一個 改變 筆記 整體 應該 定性 LDA模型算法簡介: 算法 的輸入是一個文檔的集合D={d1, d2, d3, ... , dn},同時還需要聚類的類別數量m;然後會算法會將每一篇文檔 di 在 所有Topic上的一個概率值p;這樣每篇

語音識別系統語言模型的訓練和聲學模型的改進

10個 ext 個數 靜音 介紹 準備 上下 詞匯表 數據 一、訓練語言模型 詞與詞之間存在著合乎句法與否的約束,語言模型就是用來表示這些約束的,它可以提供字與字之間的上下文信息和語義信息。N-gram模型,即對訓練音頻文件所對應的文本文件進行統計,提取不同字

當asp.net core偶遇docker一(模型驗證和Rabbitmq

上一篇我們說到構建了一個Rabbitmq容器 現在我們說說如何在一個悄悄傳輸訊息到佇列 我們現在設計一個Rabbitmq傳送訊息部分的模組 先設計一個遠端傳送的介面 public interface IRemoteSend { void Send<TEnti

WebGL模型拾取——射線法

urn ali tle memory () del date 模式 proto   這篇文章是對射線法raycaster的補充,上一篇文章主要講的是raycaster射線法拾取模型的原理,而這篇文章著重講使用射線法要註意的地方。首先我們來看下圖。   我來解釋一下上圖中的

ROS URDF(): 控制URDF機械臂模型運動:解決URDF模型不隨joint_states運動問題

繼上篇文章ROS: URDF自定義robot model -----解決WARN:No tf data. Actual error: Fixed Frame [base_link] does not exist,繼續研究URDF,利用joint_state_publisher 控制URDF機

Java 記憶體模型的基礎()——重排序

一、資料依賴性 如果兩個操作訪問同一個變數,且兩個操作中有一個為寫操作,此時這兩個操作就存在資料依賴性。資料依賴分為以下三種情況: 名稱 程式碼示例 說   明 寫後讀 a = 1; b =