各位小伙伴們大家好,在接下來(lái)的文章中我們將講述一下什么是語(yǔ)言模型,以及語(yǔ)言模型上的應(yīng)用,在完善之后我們將會(huì)簡(jiǎn)單的講解一下語(yǔ)言模型的性能評(píng)估,這三點(diǎn)將是這一篇文章的主要內(nèi)容.
在閱讀這篇文章之前,我希望大家可以已經(jīng)有以下的知識(shí)積累作為基礎(chǔ),像是概率論里的基本概念,比如最大似然估計(jì),貝葉斯分類,貝葉斯決策理論等等,甚至是一些包括信息論的簡(jiǎn)單基本概念,比如信息熵等,并且如果能對(duì)簡(jiǎn)單的形式語(yǔ)言可以理解就更加完美了,話不多說(shuō),馬上開(kāi)始這一篇文章的主要內(nèi)容.
1:為什么我們需要新的方法?
在前幾篇我的關(guān)于形式語(yǔ)言的文章中,我們大致可以理解到形式語(yǔ)言有以下的幾個(gè)缺陷:
1:比如像漢語(yǔ),英語(yǔ)這樣的大型的自然語(yǔ)言系統(tǒng),形式語(yǔ)言就比較難以構(gòu)造精確的文法.
2:形式語(yǔ)言的邏輯規(guī)則太過(guò)于復(fù)雜,實(shí)際上并不符合我們的學(xué)習(xí)語(yǔ)言的習(xí)慣.
3:有一些句子.比如你這句子的文法是正確的,但是實(shí)際上在我們的生活中是不可能發(fā)生的,形式語(yǔ)言是無(wú)法識(shí)別這些句子的.
為了解決這些問(wèn)題,科學(xué)家們?cè)谘芯亢镁昧撕笳业搅诵碌姆较?科學(xué)家們?cè)诨诖罅康难芯恐?發(fā)現(xiàn)基于大量的語(yǔ)料,并且采用統(tǒng)計(jì)學(xué)的手段建立模型,發(fā)現(xiàn)可以很好地去提升語(yǔ)言模型的效率.
這時(shí)候我們不妨想一下為什么統(tǒng)計(jì)方法的出現(xiàn)為自然語(yǔ)言處理提供了方向?
首先,在應(yīng)用統(tǒng)計(jì)方法之前,大規(guī)模的語(yǔ)料庫(kù)的出現(xiàn)為自然語(yǔ)言統(tǒng)計(jì)處理方法的實(shí)現(xiàn)提供了可能(在我看來(lái),這可能也是一個(gè)制約).并且語(yǔ)料庫(kù)里的語(yǔ)言,相對(duì)于形式語(yǔ)言可以更加的符合人類的習(xí)慣,從而更加的發(fā)現(xiàn)語(yǔ)言使用的一般規(guī)律,這樣一來(lái),我們就可以使用機(jī)器學(xué)習(xí)模型來(lái)自動(dòng)的獲取語(yǔ)言的知識(shí),這樣的手段就可以更加的豐富,并且基于機(jī)器的能力,我們甚至可以發(fā)現(xiàn)推測(cè)未知語(yǔ)言的能力.[說(shuō)句題外話,在現(xiàn)在各行各業(yè)的機(jī)器學(xué)習(xí)廣泛應(yīng)用的現(xiàn)在,很多的行業(yè)對(duì)于你本身的業(yè)務(wù)知識(shí)的要求并沒(méi)有那么高,只有在數(shù)據(jù)不夠充足的情況下,我們才更加的需要借助業(yè)務(wù)知識(shí),但是只要有合適的,足夠的海量數(shù)據(jù),我們其實(shí)就可以跑起業(yè)務(wù),直接獲得合適的數(shù)學(xué)模型,從而獲得智慧和知識(shí),從而獲取商業(yè)價(jià)值]
任何的一個(gè)信息的處理系統(tǒng)其實(shí)都是需要大量的數(shù)據(jù)和知識(shí)庫(kù)的支持,在機(jī)器學(xué)習(xí)這樣的以數(shù)據(jù)驅(qū)動(dòng)的學(xué)科中更是如此,語(yǔ)料庫(kù)和語(yǔ)言知識(shí)作為基本的資源盡管在不同的自然語(yǔ)言處理方向上起到了不同的作用,但是實(shí)際上卻是現(xiàn)自然語(yǔ)言的基礎(chǔ)甚至是瓶頸.
2:語(yǔ)言模型
語(yǔ)言模型在自然語(yǔ)言處理中占有著重要的地位,特別是在基于統(tǒng)計(jì)模型的語(yǔ)音識(shí)別,機(jī)器翻譯,分詞和文法分析中都是有這廣泛的應(yīng)用,因?yàn)槲易罱趯W(xué)習(xí)n元語(yǔ)法模型,這個(gè)模型其實(shí)還是比較簡(jiǎn)單的,并且比較直觀,但是如果數(shù)據(jù)缺乏的話就必須要使用平滑算法,那什么是n元語(yǔ)法,那什么樣的平滑算法更加的好用?
1:n元語(yǔ)法:
一個(gè)語(yǔ)言模型的構(gòu)造一般是字符串s的頻率分布P(s),這里的P(s)是指字符串s作為一個(gè)句子出現(xiàn)的頻率,比如你的口頭禪是OK,你可能100句話中會(huì)說(shuō)25句OK,那么我們就可以認(rèn)為P(ok)的概率是1/4,而在”how are you”中出現(xiàn)的概率就為0,因?yàn)檫@樣的句子里很少有人會(huì)摻雜上OK,在這里我們應(yīng)該注意,語(yǔ)言模型和形式語(yǔ)言不同,語(yǔ)言模型與句子是否合乎語(yǔ)法是沒(méi)有什么關(guān)系的,即便是一個(gè)句子完全合乎語(yǔ)法邏輯,但是我們可能會(huì)覺(jué)得很別扭,那么這個(gè)句子出現(xiàn)的概率就是接近為0.
接下來(lái)給出語(yǔ)言模型的定義:
對(duì)于一個(gè)由L個(gè)基元(字,詞,短語(yǔ))組成的句子,S=W1,W2,.....Wn,他的概率計(jì)算公式可以看作為:
在這個(gè)句子中,產(chǎn)生第i個(gè)詞的概率是由已經(jīng)產(chǎn)生的前邊的i-1個(gè)詞來(lái)決定的,一般的我們將前邊的i-1個(gè)詞稱為第i個(gè)詞的歷史.在這樣的計(jì)算方法很容易就暴露出問(wèn)題,如果前邊的詞語(yǔ)歷史的長(zhǎng)度不斷地增加,不同的歷史數(shù)目隨著指數(shù)級(jí)增長(zhǎng),假設(shè)現(xiàn)在的長(zhǎng)度是i-1,那么這樣的詞匯集合大小就會(huì)變成L^i-1個(gè)歷史,但是在這樣的情況下我們就要考慮在所有的L^i-1的情況下產(chǎn)生第i個(gè)詞的概率.舉個(gè)例子:
假設(shè)L=5000,I=3,那么這樣的自由參數(shù)的數(shù)量得是L^i,也就是1250億個(gè),我們一看這個(gè)數(shù)據(jù)就懵逼了,怎么可能從訓(xùn)練數(shù)據(jù)中正確的估計(jì)出這些參數(shù).當(dāng)然我們也不可能采用這樣的笨方法,科學(xué)家們?yōu)榱私鉀Q這個(gè)問(wèn)題,相處了方法,可以將歷史(w1,w2,....wi-1)按照某一個(gè)法則映射到等價(jià)類E(w1,w2,....wi-1)中,現(xiàn)在假設(shè):
這樣一來(lái),這個(gè)自由參數(shù)的數(shù)量也會(huì)大大減少,通常用的一個(gè)方法是將兩個(gè)歷史映射到同一個(gè)等價(jià)類,當(dāng)且僅當(dāng)兩個(gè)歷史最近的n-1的詞相同時(shí),如果E1=E2,呢么就說(shuō)里邊的歷史是相同的.
滿足上述的語(yǔ)言模型就是成為n元語(yǔ)法,但是我們?cè)谑褂脮r(shí)n不應(yīng)該選取的過(guò)大,否則等價(jià)類太多,自由參數(shù)依舊存在,這樣的話其實(shí)和沒(méi)有改進(jìn)沒(méi)有啥區(qū)別,一般情況下我發(fā)現(xiàn)n=3是非常合適的,當(dāng)n=1時(shí),wi是獨(dú)立于歷史的,當(dāng)n=2時(shí),這個(gè)wi只和wi-1有關(guān)系,這樣的話就被稱為一階馬爾科夫鏈,當(dāng)n=3時(shí),其實(shí)跟wi前邊的;兩個(gè)詞有關(guān),這也就是稱為二階馬爾科夫鏈.
就按照三元文法為例:
在之前的介紹中,我們可以認(rèn)為這是一個(gè)詞的概率實(shí)際上只是跟前邊的詞有關(guān),那么就可以有以下的方程:
為了使p(wi|wi-1)對(duì)于i=1有意義,我們需要加一個(gè)句首標(biāo)記,為了使概率之和為1,這就需要加一個(gè)EOS,這樣我們的計(jì)算就是:
為了估計(jì)P(WI|WI-1)的條件概率,我們計(jì)算出wi-1,wi的詞匯出此案的頻率然后進(jìn)行歸一化,公式如下:
這樣用于構(gòu)建語(yǔ)言模型的文本成為訓(xùn)練文本,這樣的n元語(yǔ)法模型,一般用幾百萬(wàn)個(gè)詞來(lái)訓(xùn)練,上邊那個(gè)式子就可以稱為MLE,極大似然估計(jì).
對(duì)于n>2的n元語(yǔ)法模型,條件概率中藥考慮前面的n-1個(gè)詞的概率,為了使n>2成立,我們?nèi)?
請(qǐng)看下面的例子,假設(shè)訓(xùn)練語(yǔ)料S由下面的三個(gè)句子組成:
1:BROWN READ HOLY BIBLE
2:MARK READ A TEXT BOOK
3:HE READ A BOOK BY DAVID
然后用最大似然估計(jì)方法來(lái)計(jì)算概率p(BROWN READ A BOOK)
結(jié)果如下:
因此結(jié)果如下:
這個(gè)句子出現(xiàn)的概率為0.06,這也就是n元文法的一個(gè)簡(jiǎn)單應(yīng)用.
下一篇文章我們將講述下模型的選擇以及模型的性能評(píng)估.