SlideShare a Scribd company logo
1 of 39
Download to read offline
Language Modeling
語言模型
By Mark Chang
語言模型?
● 什麼是語言模型?
● 語言模型如何產生?
● 實作語言模型的應用
什麼是語言模型?
https://www.ptt.cc/bbs/StupidClown/M.1423419065.A.AF8.html
輸入一個字: 「祭」
哪個字串看起來比較「正常」?
A. 祭隀梜鍖毝捁
B. 祭自兀人己止
C. 祭自己止兀人
D. 祭止兀自己人
什麼是語言模型?
• 語言模型是藉由一個機率分布的模型,將機率指派
給字詞所組成的字串。
• Ex:
– P(“ ”祭隀梜鍖毝捁 ) = 10-200
– P(“ ”祭自兀人己止 ) = 10-50
– P(“ ”祭自己止兀人 ) = 10-40
– P(“ ”祭止兀自己人 ) = 10-10
語言模型還有什麼用?
● 語音輸入:
– 既只誤識字幾人 -> 祭止兀是自己人
● 機器翻譯:
– Taiwan president Ma Ying-jeou flew to Singapore on Tuesday
→ 台灣總統馬英九飛到新加坡在週二
→ 台灣總統馬英九於週二飛往新加坡
● 資訊檢索:
– 罷免
→ 選舉罷免法、罷免立委、 ...
語言模型怎麼產生?
語言模型
語言模型
句子 機率
語料庫
訓練
如何把機率指派給字串?
字串的機率,跟個別單字在在語料庫中的
使用頻率有關
祭隀梜鍖毝捁 VS 祭自兀人己止
鍖、梜:低頻字 自、人:高頻字
Uni-gram
國民黨立委
蔡正元被網
友暱稱為祭
止兀 ...
國 民 黨 立
委 蔡 正 元
被 網 友 暱
稱 為 祭 止
兀 ...
語料庫
uni-gram
祭: 9670
止: 52982
…....
Uni-gram Modeling
● P(w1, w2, w3, w4, ..., wn)
= P(w1) * P(w2) * P(w3) * … * P(wn)
● Ex: P( 祭 , 止 , 兀 , 自 , 己 , 人 )
= P( 祭 ) * P( 止 ) * P( 兀 ) * … * P( 人 )
● 假設所有的單字出現的機率都是獨立事件,跟前面
一個字有關。
Uni-gram Modeling
● 用 uni-gram 估計 P(w1) 機率值:
P(w1) = C(w1) / C(all words)
● EX:
P( 祭 ) ≈ C( 祭 ) / 語料庫的總字數
實作 1-1 :初始化
● 載入套件
● 載入語料庫
實作 1-2 :產生 Uni-gram
● 將文句「祭止兀自己人」切成 uni-gram
● 將語料庫切成 uni-gram ,並作頻率統計
● 查詢「祭」的頻率
實作 1-3 : Uni-gram Modeling
● 計算 P( 梜 ) 、 P( 祭 )
● 計算 P( 祭隀梜鍖毝捁 ) 、 P( 祭自己止兀
人 ) 、 P( 祭止兀自己人 )
如何把機率指派給字串?
字串的機率,跟某個字是否常出現在某個
字的後面有關。
祭自兀人己止 VS 祭自己止兀人
兀較常出現在止
後面
兀很少出現在自
後面
Bi-gram
國民黨立委
蔡正元被網
友暱稱為祭
止兀 ...
國民 民黨 黨立
立委 委蔡 蔡正
正元 元被 被網
網友 友暱 暱稱
稱為 為祭 祭止
止兀 ...
語料庫
bi-gram
祭止: 872
止兀: 2354
…....
Bi-gram
● P(w1, w2, w3, w4, ..., wn)
= P(w1) * P(w2 | w1) * P(w3 | w2) * …
* P(wn |wn-1)
● Ex: P( 祭 , 止 , 兀 , 自 , 己 , 人 )
= P( 祭 ) * P( 止 | 祭 ) * P( 兀 | 止 ) * …
* P( 人 | 己 )
● 假設所有的字出現的機率都只跟前面一個字有關。
Bi-gram
● 用 bi-gram 估計 P(w2 | w1) 的機率值:
P(w2 | w1)
= P(w1, w2) / P(w1)
≈ C(w1, w2) / C(w1)
● EX:
P( 止 | 祭 ) = C( 祭 , 止 ) / C( 祭 )
實作 1-4 :產生 Bi-gram
● 將文句「祭止兀自己人」切成 bi-gram
● 將語料庫切成 bi-gram ,並作頻率統計
● 查詢「止兀」的頻率
實作 1-5 : Bi-gram Modeling
● 計算 P( 兀 | 自 ) 、 P( 兀 | 止 )
● 計算 P( 祭自兀人己止 ) 、 P( 祭自己止兀人 ) 、 P
( 祭止兀自己人 )
如何把機率指派給字串?
字串的機率,跟某個字是否常出現在某兩
個字的後面有關。
祭自己止兀人 VS 祭止兀自己人
兀較常出現在祭
止後面
人較少出現在止
兀後面
Tri-gram
國民黨立委
蔡正元被網
友暱稱為祭
止兀 ...
國民黨 民黨立
黨立委 立委蔡
委蔡正 蔡正元
正元被 元被網
被網友 網友暱
友暱稱 暱稱為
稱為祭 為祭止
祭止兀 ...
語料庫 uni-gram
祭止兀: 870
…....
Tri-gram
● P(w1, w2, w3, w4, ..., wn)
= P(w1) * P(w2 | w1) * P(w3 | w2, w1) * …
* P(wn |wn-1,wn-2)
● Ex: P( 祭 , 止 , 兀 , 自 , 己 , 人 )
=P( 祭 ) * P( 止 | 祭 ) * P( 兀 | 祭 , 止 ) * …
* P( 人 | 自 , 己 )
● 假設所有的字出現的機率都只跟前面兩個字有關,
與其他字無關。
Tri-gram
● 用 tri-gram 估計 P(w3 | w1,w2) 的機率值:
P(w3 | w1, w2)
= P(w1, w2, w3) / P(w1, w2)
≈ C(w1, w2, w3) / C(w1, w2)
● EX:
P( 兀 | 祭 , 止 ) = C( 祭 , 止 , 兀 ) / C( 祭 , 止 )
實作 1-6 :產生 Tri-gram
● 將文句「祭止兀自己人」切成 tri-gram
● 將語料庫切成 tri-gram ,並作頻率統計
● 查詢「祭止兀」的頻率
實作 1-7 : Tri-gram Modeling
● 計算 P( 兀 | 自、己 ) 、 P( 兀 | 祭、止 )
● 分別用 Bi-gram 和 Tri-gram 算 P( 祭止兀自己
人 ) ,比較其差異
實際上,
每個字跟前面所有的字都可能有關 ...
● P(w1,w2,w3,w4,...,wn)
= P(w1) * P(w2 | w1) * P(w3 | w1, w2) * …
* P(wn | w1, w2, ....wn-1)
● Ex: P( 祭 , 止 , 兀 , 自 , 己 , 人 )
=P( 祭 ) * P( 止 | 祭 ) * P( 兀 | 祭 , 止 ) * …
* P( 人 | 祭 , 止 ,..., 己 )
如果使用了 4-gram 和 5-gram ??
● 字與字的組合會太多種,維度爆炸
– Uni-gram: 四千種
– Bi-gram: 十萬種
– Tri-gram: 五十萬種
…..
如果使用了 4-gram 和 5-gram ??
● 在語料庫中沒出現的,則求出來的機率是 0 :
– C(止, 兀, 好, 帥) = 0
– P(止, 兀, 好, 帥)
= P(止) * ...* P(帥 |止, 兀, 好)
= P(止) * ...* C(止, 兀, 好, 帥) / C(止, 兀, 好)
= 0
若用 tri-gram 或 bi-gram
也得出 0 怎麼辦?
● Smoothing
● Interpolation
Add-One Smoothing :
● P'(w2 | w1) = ( C(w1, w2)+1 ) / ( C(w1) + C(V) )
– V 是 uni-gram 的種類數量
● P'(w3 | w1, w2)
= ( C(w1,w2,w3)+1 ) / ( C(w1, w2) + C(V) )
– V 是 bi-gram 的種類數量
Interpolation
● P'(w2 |w1) = x* P(w2) + y* P(w2 | w1)
– where x+y = 1
● P'(w3 |w2,w1)
= x* P(w3) + y* P(w3 | w2) + z* P(w3 | w2, w1)
– where x+y+z = 1
實作 1-8 : Add-One Smoothing
●
計算 P'( 止 | 兀 ) 和 P'( 兀 | 止 )
● 比較 P'( 兀 | 止 ) 和 P( 兀 | 止 ) 的差異
實作 1-9 : Interpolation
●
計算 P'( 止 | 兀 ) 和 P'( 兀 | 止 )
● 比較 P'( 兀 | 止 ) 和 P( 兀 | 止 ) 的差異
應用:輸入法自動選字
● 給定第一個字「自」,自動產生後面兩個字。
求 w2,w3 使以下機率為最大值。
● P(w2,w3 |w1= 自 )
=P(w1,w2,w3) / P(w1= 自 )
=P(w1)*P(w2|w1= 自 )*P(w3 |w2,w1= 自 ) / P(w1= 自 )
=P(w2|w1= 自 )*P(w3 |w2,w1= 自 )
實作 1-10 :輸入法推薦選字
● 輸入一個字,自動選出後面要接的兩個字
進階版:藏頭詩自動產生器
● http://www.meetup.com/Taiwan-R/events/22041
0044/
  勘 探 字 文 型 模 率 機
  騷 花 水 賦 宛 四 譬 石
  人 如 深 詩 轉 五 如 泉
  多 夢 處 成 清 十 今 聲
  病 不 不 絲 江 五 年 落
  來 見 用 竹 漢 湖 前 花
  不 說 武 林 主 水 路 開
講者聯絡方式:
Mark Chang
Github : http://github.com/ckmarkoh
Blog : http://cpmarkchang.logdown.com
email : ckmarkoh at gmail.com

More Related Content

Viewers also liked

Chinese Words Segmentation Tutorial
Chinese Words Segmentation Tutorial Chinese Words Segmentation Tutorial
Chinese Words Segmentation Tutorial Mark Chang
 
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)羅左欣
 
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...Svetlin Nakov
 
八字裡五行的基本概念
八字裡五行的基本概念八字裡五行的基本概念
八字裡五行的基本概念Chien Lee
 
05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇darrenj888
 
04康健錦囊_第二章_人體復原工程
04康健錦囊_第二章_人體復原工程04康健錦囊_第二章_人體復原工程
04康健錦囊_第二章_人體復原工程darrenj888
 
聖訓(Hadith)
聖訓(Hadith)聖訓(Hadith)
聖訓(Hadith)Chien Lee
 
01康健錦囊 第一章 人體使用手冊
01康健錦囊 第一章 人體使用手冊01康健錦囊 第一章 人體使用手冊
01康健錦囊 第一章 人體使用手冊darrenj888
 
2014王擎天博士易經研究班
2014王擎天博士易經研究班2014王擎天博士易經研究班
2014王擎天博士易經研究班silkbook
 
05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇darrenj888
 
易經(1018)
易經(1018)易經(1018)
易經(1018)silkbook
 
伊斯蘭參考書目
伊斯蘭參考書目伊斯蘭參考書目
伊斯蘭參考書目Chien Lee
 
佛陀法教的要訣在於調伏自心
佛陀法教的要訣在於調伏自心佛陀法教的要訣在於調伏自心
佛陀法教的要訣在於調伏自心Gloria091959
 
易經(1003)
易經(1003)易經(1003)
易經(1003)silkbook
 
以夢作為修行的對境 還是方法1
以夢作為修行的對境 還是方法1以夢作為修行的對境 還是方法1
以夢作為修行的對境 還是方法1Chien Lee
 
2011 06-18 漪芳-淺談三焦經與心包經
2011 06-18 漪芳-淺談三焦經與心包經2011 06-18 漪芳-淺談三焦經與心包經
2011 06-18 漪芳-淺談三焦經與心包經yangmarissa
 
煙供法- (積聚福德資糧)
煙供法-  (積聚福德資糧)煙供法-  (積聚福德資糧)
煙供法- (積聚福德資糧)Gloria091959
 
八字簡介
八字簡介八字簡介
八字簡介Chien Lee
 
系統健康科學入門
系統健康科學入門系統健康科學入門
系統健康科學入門萬福 李
 

Viewers also liked (20)

Chinese Words Segmentation Tutorial
Chinese Words Segmentation Tutorial Chinese Words Segmentation Tutorial
Chinese Words Segmentation Tutorial
 
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
 
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...
Svetlin Nakov - ArtsSemNet: From Bilingual Dictionary to Bilingual Semantic N...
 
八字裡五行的基本概念
八字裡五行的基本概念八字裡五行的基本概念
八字裡五行的基本概念
 
05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇
 
04康健錦囊_第二章_人體復原工程
04康健錦囊_第二章_人體復原工程04康健錦囊_第二章_人體復原工程
04康健錦囊_第二章_人體復原工程
 
聖訓(Hadith)
聖訓(Hadith)聖訓(Hadith)
聖訓(Hadith)
 
01康健錦囊 第一章 人體使用手冊
01康健錦囊 第一章 人體使用手冊01康健錦囊 第一章 人體使用手冊
01康健錦囊 第一章 人體使用手冊
 
2014王擎天博士易經研究班
2014王擎天博士易經研究班2014王擎天博士易經研究班
2014王擎天博士易經研究班
 
05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇05康健錦囊_第三章_飲食篇
05康健錦囊_第三章_飲食篇
 
易經(1018)
易經(1018)易經(1018)
易經(1018)
 
伊斯蘭參考書目
伊斯蘭參考書目伊斯蘭參考書目
伊斯蘭參考書目
 
轉化六根
轉化六根轉化六根
轉化六根
 
佛陀法教的要訣在於調伏自心
佛陀法教的要訣在於調伏自心佛陀法教的要訣在於調伏自心
佛陀法教的要訣在於調伏自心
 
易經(1003)
易經(1003)易經(1003)
易經(1003)
 
以夢作為修行的對境 還是方法1
以夢作為修行的對境 還是方法1以夢作為修行的對境 還是方法1
以夢作為修行的對境 還是方法1
 
2011 06-18 漪芳-淺談三焦經與心包經
2011 06-18 漪芳-淺談三焦經與心包經2011 06-18 漪芳-淺談三焦經與心包經
2011 06-18 漪芳-淺談三焦經與心包經
 
煙供法- (積聚福德資糧)
煙供法-  (積聚福德資糧)煙供法-  (積聚福德資糧)
煙供法- (積聚福德資糧)
 
八字簡介
八字簡介八字簡介
八字簡介
 
系統健康科學入門
系統健康科學入門系統健康科學入門
系統健康科學入門
 

More from Mark Chang

Modeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationModeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationMark Chang
 
Modeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationModeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationMark Chang
 
Information in the Weights
Information in the WeightsInformation in the Weights
Information in the WeightsMark Chang
 
Information in the Weights
Information in the WeightsInformation in the Weights
Information in the WeightsMark Chang
 
PAC Bayesian for Deep Learning
PAC Bayesian for Deep LearningPAC Bayesian for Deep Learning
PAC Bayesian for Deep LearningMark Chang
 
PAC-Bayesian Bound for Deep Learning
PAC-Bayesian Bound for Deep LearningPAC-Bayesian Bound for Deep Learning
PAC-Bayesian Bound for Deep LearningMark Chang
 
Domain Adaptation
Domain AdaptationDomain Adaptation
Domain AdaptationMark Chang
 
NTU ML TENSORFLOW
NTU ML TENSORFLOWNTU ML TENSORFLOW
NTU ML TENSORFLOWMark Chang
 
NTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsNTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsMark Chang
 
Generative Adversarial Networks
Generative Adversarial NetworksGenerative Adversarial Networks
Generative Adversarial NetworksMark Chang
 
Applied Deep Learning 11/03 Convolutional Neural Networks
Applied Deep Learning 11/03 Convolutional Neural NetworksApplied Deep Learning 11/03 Convolutional Neural Networks
Applied Deep Learning 11/03 Convolutional Neural NetworksMark Chang
 
The Genome Assembly Problem
The Genome Assembly ProblemThe Genome Assembly Problem
The Genome Assembly ProblemMark Chang
 
DRAW: Deep Recurrent Attentive Writer
DRAW: Deep Recurrent Attentive WriterDRAW: Deep Recurrent Attentive Writer
DRAW: Deep Recurrent Attentive WriterMark Chang
 
淺談深度學習
淺談深度學習淺談深度學習
淺談深度學習Mark Chang
 
Variational Autoencoder
Variational AutoencoderVariational Autoencoder
Variational AutoencoderMark Chang
 
TensorFlow 深度學習快速上手班--深度學習
 TensorFlow 深度學習快速上手班--深度學習 TensorFlow 深度學習快速上手班--深度學習
TensorFlow 深度學習快速上手班--深度學習Mark Chang
 
TensorFlow 深度學習快速上手班--電腦視覺應用
TensorFlow 深度學習快速上手班--電腦視覺應用TensorFlow 深度學習快速上手班--電腦視覺應用
TensorFlow 深度學習快速上手班--電腦視覺應用Mark Chang
 
TensorFlow 深度學習快速上手班--自然語言處理應用
TensorFlow 深度學習快速上手班--自然語言處理應用TensorFlow 深度學習快速上手班--自然語言處理應用
TensorFlow 深度學習快速上手班--自然語言處理應用Mark Chang
 
TensorFlow 深度學習快速上手班--機器學習
TensorFlow 深度學習快速上手班--機器學習TensorFlow 深度學習快速上手班--機器學習
TensorFlow 深度學習快速上手班--機器學習Mark Chang
 
Computational Linguistics week 10
 Computational Linguistics week 10 Computational Linguistics week 10
Computational Linguistics week 10Mark Chang
 

More from Mark Chang (20)

Modeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationModeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential Equation
 
Modeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential EquationModeling the Dynamics of SGD by Stochastic Differential Equation
Modeling the Dynamics of SGD by Stochastic Differential Equation
 
Information in the Weights
Information in the WeightsInformation in the Weights
Information in the Weights
 
Information in the Weights
Information in the WeightsInformation in the Weights
Information in the Weights
 
PAC Bayesian for Deep Learning
PAC Bayesian for Deep LearningPAC Bayesian for Deep Learning
PAC Bayesian for Deep Learning
 
PAC-Bayesian Bound for Deep Learning
PAC-Bayesian Bound for Deep LearningPAC-Bayesian Bound for Deep Learning
PAC-Bayesian Bound for Deep Learning
 
Domain Adaptation
Domain AdaptationDomain Adaptation
Domain Adaptation
 
NTU ML TENSORFLOW
NTU ML TENSORFLOWNTU ML TENSORFLOW
NTU ML TENSORFLOW
 
NTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANsNTHU AI Reading Group: Improved Training of Wasserstein GANs
NTHU AI Reading Group: Improved Training of Wasserstein GANs
 
Generative Adversarial Networks
Generative Adversarial NetworksGenerative Adversarial Networks
Generative Adversarial Networks
 
Applied Deep Learning 11/03 Convolutional Neural Networks
Applied Deep Learning 11/03 Convolutional Neural NetworksApplied Deep Learning 11/03 Convolutional Neural Networks
Applied Deep Learning 11/03 Convolutional Neural Networks
 
The Genome Assembly Problem
The Genome Assembly ProblemThe Genome Assembly Problem
The Genome Assembly Problem
 
DRAW: Deep Recurrent Attentive Writer
DRAW: Deep Recurrent Attentive WriterDRAW: Deep Recurrent Attentive Writer
DRAW: Deep Recurrent Attentive Writer
 
淺談深度學習
淺談深度學習淺談深度學習
淺談深度學習
 
Variational Autoencoder
Variational AutoencoderVariational Autoencoder
Variational Autoencoder
 
TensorFlow 深度學習快速上手班--深度學習
 TensorFlow 深度學習快速上手班--深度學習 TensorFlow 深度學習快速上手班--深度學習
TensorFlow 深度學習快速上手班--深度學習
 
TensorFlow 深度學習快速上手班--電腦視覺應用
TensorFlow 深度學習快速上手班--電腦視覺應用TensorFlow 深度學習快速上手班--電腦視覺應用
TensorFlow 深度學習快速上手班--電腦視覺應用
 
TensorFlow 深度學習快速上手班--自然語言處理應用
TensorFlow 深度學習快速上手班--自然語言處理應用TensorFlow 深度學習快速上手班--自然語言處理應用
TensorFlow 深度學習快速上手班--自然語言處理應用
 
TensorFlow 深度學習快速上手班--機器學習
TensorFlow 深度學習快速上手班--機器學習TensorFlow 深度學習快速上手班--機器學習
TensorFlow 深度學習快速上手班--機器學習
 
Computational Linguistics week 10
 Computational Linguistics week 10 Computational Linguistics week 10
Computational Linguistics week 10
 

Language Modeling Tutorial