NLP第一課 語言模型

2021-07-23 04:30:29 字數 4155 閱讀 5154

—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...