n gram語言模型

2021-10-03 11:22:34 字數 1323 閱讀 1291

語言模型就是對一句話,判斷它的概率,也就是它存在的合理性

n-gram分為傳統n-gram模型,神經網路n-gram模型

傳統n-gram(即統計n-gram)

一句話的概率就是它所有單詞的聯合概率

p (s

)=p(

w1,w

2,..

.,wm

)p(s)=p(w_1,w_2,...,w_m)

p(s)=p

(w1​

,w2​

,...

,wm​

),m為句子中的單詞數量,

根據鏈式概率,則:p(s

)=p(

w1)p

(w2∣

w1)p

(w3∣

w1,w

2),.

..,p

(wm∣

w1,w

2,..

.,wm

−1))

p(s)=p(w_1)p(w_2|w_1)p(w_3|w_1,w_2),...,p(w_m|w_1,w_2,...,w_))

p(s)=p

(w1​

)p(w

2​∣w

1​)p

(w3​

∣w1​

,w2​

),..

.,p(

wm​∣

w1​,

w2​,

...,

wm−1

​)),這個概率公式特別長,所以

根據馬爾可夫鏈的性質,也就是乙個單詞的概率只與它前邊的n個單詞有關,此時p(s

)=∑t

=1m(

p(wt

)∣p(

wt−n

,wt−

n+1,

...,

wt−1

))

)p(s)=\sum_^(p(w_t)|p(w_,w_,...,w_)))

p(s)=∑

t=1m

​(p(

wt​)

∣p(w

t−n​

,wt−

n+1​

,...

,wt−

1​))

)。那具體怎麼做呢,給出乙個例子:

該例子來自於n-gram(知乎)

神經網路n-gram

一共3層,forward為:

輸入層為n個word的詞向量,經過linear產生hidden層,再經過softmax產生輸出層,output為語料庫中所有單詞的**概率

引數更新還是神經網路的bp,因為有產生的**y和實際的y,根據損失函式:交叉熵可以更新引數

N Gram語言模型

wikipedia上有關n gram的定義 n gram是一種統計語言模型,用來根據前 n 1 個item來 第n個item。在應用層面,這些item可以是音素 語音識別應用 字元 輸入法應用 詞 分詞應用 或鹼基對 基因資訊 一般來講,可以從大規模文字或音訊語料庫生成n gram模型。習慣上,1 ...

語言模型(N Gram)

問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...

語言模型(N Gram)

問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...