語言模型就是對一句話,判斷它的概率,也就是它存在的合理性
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)
問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...