—course notes for nlp by michael collins, columbia university
學習筆記
1.1引言
這一章的主要目的是從一些例句中抽出語言模型
下面是定義- v
是所有單詞的集合 - x
1x2.
..xn
表示乙個句子; xi
∈v;x
n 是乙個終止符號—st
op
語言模型的定義
乙個語言模型包含乙個有限集合
v ,乙個函式p(
x1,x
2...
xn)於是
1.對於任意
...x
n>∈v+
,p(x
1,x2
...x
n)≥0
2. ∑
...x
n>∈v+
p(x1
,x2,
...x
n)=1
於是 p
(x1,
x2,.
..xn
) 是乙個句子在 v
+ 中的聯合分布率
1.2馬爾科夫模型
1.2.1 定長句子的馬爾科夫模型
我們的目的是求出p(
x1=x
1,x2
=x2,
...,
xn=x
n)的聯合分布率
ps:xi
是變數,
可取任何
在v中的
xi
但是對於x1
...x
n 有|v
|n種可能的序列,所以要列出|v
|n是不現實的,所以我們需要乙個更實用的方法:
一層的馬爾科夫模型: p(
x1=x
1,x2
=x2,
...,
xn=x
n) =
p(x1
=x1∏
ni=2
p(xi
=xi|
x1=x
1,..
.,xi
−1=x
i−1)
=p(x1=x
1∏ni
=2p(
xi=x
i|xi
−1=x
i−1)
1.2.2變長句子的馬爾科夫模型
上一節討論了定長句子的模型,但是顯然大多數應用中句子是變長的,所以這一節我們介紹最通用的語言模型方法。
方法很簡單:使乙個序列中 xn
總是等於終止符st
op,舉例來說,對於二階馬爾科夫模型: p(
x1=x
1,x2
=x2,
...,
xn=x
n) =
∏ni=
1p(x
i=xi
|xi−
2=xi
−2,x
i−1=
xi−1
) 計算方法如下:
1. 初始化 i=
1,x0
=x−1
=∗2. 從 p(
xi=x
i|xi
−2=x
i−2,
xi−1
=xi−
1)的分布中生成xi
3. 如果xi
=sto
p ,則返回序列x1
...x
i ,否則 i=
i+1 ,繼續步驟2
這樣我們就有可以生成任何長度序列的模型了
1.3 三元語言模型
我們將關注三元語言模型,討論它的最大似然引數估計,最後討論三元語言模型的缺點。
1.3.1 基本定義
在馬爾科夫模型中,我們模型化每個句子為n個任意變數x1
,...
,x2 組成的序列,xn
是終止符
stop
在二元馬爾科夫模型中
—————句子 x1
...x
2 的概率是—————————- p(
x1=x
1,x2
=x2,
...,
xn=x
n) =
∏ni=
1p(x
i=xi
|xi−
2=xi
−2,x
i−1=
xi−1
) 其中假設 x0
=x−1
=∗.
又假設 p(
xi=x
i|xi
−2=x
i−2,
xi−1
=xi−
1)=q
(xi|
xi−2
,xi−
1)其中對任意(u
,v,w
) , q(
w|u,
v)是此模型的引數
於是我們的模型的形式改變如下: p(
x1..
.xn)
=∏ni
=1q(
xi|x
i−2,
xi−1
) 舉例來說,如何計算三元模型 th
e do
g ba
rks
stop
p(
the
dog
bark
s st
op )
=q(the|
∗,∗)
×q(d
og|∗
,the
)×q(
bark
s|th
e,do
g)×q
(sto
p|do
g,ba
rks)
) 對於任何u,
v 有 ∑w
∈v⋃s
topq
(w|u
,v)=
1 但是,想象如果語料庫中有10000個單詞,那麼這個模型就有
100003=
1012
,顯然這是非常大的
1.3.2 最大似然估計
我們首先最一般的方法入手來估計引數–最大似然估計法。我們將會看到這些估計值是有缺陷的,但是我們仍然展示為什麼這些引數在實際中非常有效。
首先,假設c(
u;,v
,w) 是三元模型(u
,v,w
) 的次數,同樣的 定義c(
u,v)
是二元模型(u
,v) 的語料中出現的次數,對於任意w,
u,v 定義 q(
w|u,
v)=c
(u,v
,w)u
,v
這樣我們對p(
barks
|the
, do
g ) 的引數估計就變成了p(
bark
s|th
e,do
g)=c
(the
,dog
,bar
ks)c
(the
,dog
) (表示barks在 the dog 出現的情況下 的概率的計算方法是 the dog barks 出現的次數比上 the dog 出現的次數?)
但是這樣就會有兩個問題:
我們使用一組不存在於訓練語料庫中的句子x(
1),x
(2),
...,
x(m)
每個句子x(
i),i
∈1...
m 都由單詞 x(
i)1,
...,
x(i)
n 組成
對於乙個測試句子,我們能通過語言模型衡量其概率p(
x(i)
) 乙個普通的衡量方法就是語言模型分給所有測試句子的概率,也就是 ∏m
i=1p
(x(i
))
C語言第一課
一 c基礎 進製的轉換 進製,進製機制 常見的有二進位制 八進位制 十進位制 十六進製制 例 二進位制 0101010 八進位制 0235 十進位制 9 十六進製制 0x8a 注 十六進製制後面的10 16由a,b,c,d,e,f代替 進製的區分 八進位制前面會加 0 十六進製制後面會加 0x 進製...
C語言第一課
開始的第乙個程式是乙個最簡單的程式,也就是最經典的hello world程式,它的功能為列印出hello world。程式的內容非常簡單,也是c語言編寫程式的基本結構框架。機構的電腦是基於虛擬機器的,其程式設計是gcc的。1.建立hello.c檔案 vim hello.c2.編寫hello worl...
c語言第一課
c語言第一課 型別 不僅定義了資料元素的內容,還定義了這類資料上可以進行的運算。編譯 執行程式 程式原始檔命名約定 cc cxx cpp cp及.c 從命令列執行編譯器 cc test1.cc 其中cc是編譯器程式的名字。編譯器生成乙個可執行檔案。windows系統將會生成可執行檔案 prog1.e...