語言模型是天然語言處理中的重要技術,其描述的是一段話的流暢度,給定一個一個長度爲 T 的詞的序列w一、w二、.....、wt,語言模型將計算該序列的機率:性能
語言模型可用於提高語音識別和機器翻譯的性能。例如,在機器翻譯中,若是對英文 「 you go first 」 逐詞翻譯成中文的話,可能獲得 「 你先走 」 、「 你走先 」 等排列方式的文本序列。若是語言模型判斷 「 你先走 」 的機率比較大,咱們就把 「 you go first 」翻譯成 「 你先走 」。 或者在語音識別中,給定一段 「 廚房中裏食油用完了 」 的語音,有可能會輸出 「 廚房裏食油用完了 」 和 「 廚房裏石油用完了 」 這兩個讀音徹底同樣的文本序列,若是前者的機率大於後者,咱們就取機率大的那句話。翻譯
假設序列w一、w二、.....、wt中的每一個詞是依次生成的,咱們有:blog
爲了計算語言模型,咱們須要計算語言模型的機率,以及一個詞在給定前幾個詞的狀況下的條件機率,即語言模型參數。假設訓練數據集爲一個大型文本語料庫,詞的機率能夠經過該詞在訓練數據集中的相對詞頻來計算,例如,P(w1)能夠計算爲w1在訓練數據集中的詞頻與訓練數據集的總詞數之比。所以,一個詞在給定前幾個詞的狀況下的條件機率也能夠經過訓練數據集中的相對詞頻來計算。語法
當序列長度增長是,計算和存儲多個詞共同出現的機率的複雜度會成指數級增長。n元語法經過馬爾可夫假設簡化了語言模型的計算。這裏的馬爾科夫假設是指一個詞的出現只與前面 n 個詞相關,即隱馬爾可夫鏈,咱們能夠將語言模型改寫爲:im
例如長度爲 4 的序列w一、w二、w三、w4 在一元語法、二元語法和三元語法中的機率分別爲:技術