語言模型
某句子的概率可理解為 p(s) = p(w1, w2, … wn)
該聯合概率分布就是語言模型
語言模型就是用來計算乙個句子的概率的模型
克服詞袋沒考慮詞序的問題
場景
馬爾可夫假設
先將聯合概率分布拆分成條件概率的連乘(貝葉斯定理)
p(x_1, x_2, … x_n) = p(x_1| )p(x_1) p(x_2|x_1) p(x_3|x_1, x_2) … p(x_n|x_1, x_2, …, x_) p(| w_n )
其中 、 分別表示句子的首尾特殊標記
條件概率
p(b|a):a 條件下 b 發生的概率。 從乙個大的空間進入到乙個子空間(切片), 計算在子空間中的佔比
p(b|a) = p(a, b) / p(a)
在這些條件概率裡, 每乙個詞的概率需要考慮它前面的所有詞. 而實際上, 相隔太遠的兩個詞關聯很弱
馬爾可夫假設是指,假定每個詞出現的概率只跟它前面的少數幾個詞有關
如 二階馬爾科夫假設只考慮前面兩個詞,相應的語言模型是三元模型
引入了馬爾可夫假設的語言模型,也可以叫做馬爾可夫模型
它的基本思想是將文字裡面的內容按照詞進行大小為n的滑動視窗操作, 形成了長度是n的詞片段序列
n元模型
一元(unigram)
p(w_n)
二元(bi-gram)
p(w_n | w_n-1)
三元(tri-gram)
p(w_n | w_n-2, w_n-1)
常需要基於觀察樣本進行引數估計
自然想到極大似然估計
p(w_n | w_n-2, w_n-1) = count(w_n, w_n-2, w_n-1) / count(w_n-2, w_n-1)
當 n 從 3 開始繼續增加時,語言模型的效果提公升不顯著,但資源耗費增加得很快
因此在實踐中我們很少使用4-gram或者5-gram
模型平滑
p(w_n | w_n-2, w_n-1) = count(w_n, w_n-2, w_n-1) / count(w_n-2, w_n-1)
依賴於樣本是否出現(樣本不出現,並不能說明真的不存在)
因樣本原因,大部分 p(w_n | w_n-2, w_n-1) 算出來為 0
原理在必要的時候退化到低階的模型,即一元、二元模型
策略對所有非零概率打折,勻出一小部分概率給未出現的詞串
低階與高階的線性插值
N Gram語言模型
wikipedia上有關n gram的定義 n gram是一種統計語言模型,用來根據前 n 1 個item來 第n個item。在應用層面,這些item可以是音素 語音識別應用 字元 輸入法應用 詞 分詞應用 或鹼基對 基因資訊 一般來講,可以從大規模文字或音訊語料庫生成n gram模型。習慣上,1 ...
語言模型(N Gram)
問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...
語言模型(N Gram)
問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...