NLP入門之N元語法模型

在上邊我們知道其實(shí)當(dāng)今的自然語言處理的主流趨勢(shì)是統(tǒng)計(jì)自然語言處理,而統(tǒng)計(jì)自然語言處理的基本目的就是結(jié)合語料庫中的一些數(shù)據(jù)對(duì)于某些未知的數(shù)據(jù)進(jìn)行處理,從而根據(jù)這些數(shù)據(jù)分布得到一些推論,大家想一想,我們?cè)谡Z料庫里發(fā)現(xiàn)”你”和”吃飯了么”這兩個(gè)詞總是存在著一些附著關(guān)系,是不是我們就有預(yù)測(cè)在一些未知的文章中也會(huì)有這樣附著關(guān)系?

在這一篇文章中,我們將會(huì)介紹下n元語法模型和解決因?yàn)閿?shù)據(jù)缺乏的情況下引入的幾種常用的平滑度算法,

1:n元語法模型

n元語法模型的基本的公式可以看作為下面的概率公式P:

這個(gè)公式所表示的含義其實(shí)是在產(chǎn)生第i個(gè)詞的概率是由前邊已經(jīng)產(chǎn)生的從w1到wi-1的這個(gè)詞概率來決定的,在這樣的一個(gè)過程中,我們使用了先前詞,也就是通過用先前詞來去預(yù)測(cè)下一個(gè)將要出現(xiàn)的詞,然后我們根據(jù)大量的文本觀測(cè),我們會(huì)知道這個(gè)詞會(huì)不會(huì)越來越趨向于在這些詞的后面.比如上邊舉例的”你””吃飯了么”,現(xiàn)在假設(shè)我們的文本中有1000句話,現(xiàn)在你吃飯了么出現(xiàn)了20次,這樣的話我們就會(huì)得到相應(yīng)的出現(xiàn)這個(gè)詞的概率P(吃飯了么)=(20/1000)=(1/50).

當(dāng)然,在實(shí)際的任務(wù)中沒有那么多實(shí)際的文本歷史供我們參考,很多時(shí)候出現(xiàn)的詞或者句子我們之前都沒有見過,這樣的話我們以前的經(jīng)驗(yàn)就沒有辦法預(yù)測(cè)了,比如:我們遇到了一個(gè)句子:”你吃飯不吃飯?”,這樣的話就跟”你吃飯了么”在前半部分是一樣,但是后邊卻有一個(gè)不一樣的結(jié)尾.那要怎么解決這個(gè)問題呢?是不是把以前的文本出現(xiàn)過的歷史組合進(jìn)行總結(jié),然后進(jìn)行學(xué)習(xí),對(duì)于預(yù)期將要出現(xiàn)的詞,會(huì)不會(huì)出現(xiàn)一個(gè)合理的預(yù)測(cè)呢?

這樣的組合文本歷史的可能出現(xiàn)的方法就是我們常說的馬爾科夫假設(shè),這個(gè)假設(shè)其實(shí)說的就是上邊所對(duì)應(yīng)的問題,這個(gè)假設(shè)說的其實(shí)就是認(rèn)為接下來要出現(xiàn)的詞是由前邊出現(xiàn)的詞來影響的.如果按照上邊的公式來說,因?yàn)榍斑吺怯蒳-1個(gè)詞語,那么如果我們構(gòu)造一個(gè)模型的話,所有的歷史其實(shí)就是前邊的i-1個(gè)詞,這樣的話我們構(gòu)造的模型就成為(n-1)階馬爾科夫模型,或者說n元語法模型(因?yàn)槲覀円A(yù)測(cè)第n個(gè)詞).

這里要說一下這個(gè)n的取值問題,一般情況下我們是不能把這個(gè)n取值過大的,要是過大的話,肯定會(huì)有很多的等價(jià)類,太多的自由參數(shù)未必是一件好事(其實(shí)把數(shù)據(jù)劃分成多個(gè)等價(jià)類有利有弊,一方面如果我們把數(shù)據(jù)分割成多個(gè)類的話其實(shí)可以讓我們有更多的辨別性,但是要是使用了太多的等價(jià)類,那么對(duì)于每個(gè)類別來說,他的訓(xùn)練數(shù)據(jù)很小,甚至有些部分沒有訓(xùn)練數(shù)據(jù),這樣的話再去做目標(biāo)特征的統(tǒng)計(jì)估計(jì)這時(shí)候就很不準(zhǔn)確了,所以這時(shí)候如何去權(quán)衡,找到一個(gè)合適的類別數(shù),是我們的一個(gè)探索目標(biāo).)那么這時(shí)候我們?cè)偃タ纯磏的取值問題,一般情況下大多數(shù)常用的n的取值是n=2,3,4的情況,這個(gè)時(shí)候分別稱為bigram(二元語法),trigram(三元語法),fourgram(四元語法).

現(xiàn)在假設(shè)一個(gè)說話者的使用詞有20000個(gè),那么參數(shù)的數(shù)量如下圖所示:

從這個(gè)圖上我們看到,到四元語法模型就已經(jīng)擁有非常巨大的參數(shù)了,所以構(gòu)造更多的語法模型顯然是不現(xiàn)實(shí)的.

2:構(gòu)建n元語法模型

1;通常構(gòu)建模型的第一步是處理語料

首先我們需要對(duì)語料進(jìn)行處理,因?yàn)楦鶕?jù)n元語法要求,一個(gè)詞的概率只跟前邊的詞的概率有關(guān),因?yàn)橐顾械母怕手蜑?,因此我們要在句首和句尾加上一個(gè)句首標(biāo)記和句尾標(biāo)記,這樣的話我們就可以計(jì)算,下邊舉一個(gè)例子:

p(I Love You)

在這樣處理完句子之后,如果我們得到了一個(gè)確定的語料庫,如果現(xiàn)在一個(gè)詞出現(xiàn)了10次,比如:”good”后面有8次跟著”morning”,1次”boy”,一次”girl”,那么估計(jì)下一個(gè)詞,我們會(huì)出現(xiàn)哪一種概率呢?

其實(shí)我們可以考慮使用相對(duì)概率來估計(jì):

P(morning)=0.8

P(girl)=0.1

P(boy)=0.1

P(other)=0(other不屬于上述三個(gè)詞匯)

這樣歸類之后,去給這些數(shù)據(jù)計(jì)算他們的概率了,再去歸一化,這樣就可以計(jì)算出來:

在這里我們?nèi)ビ肅(w1.......wn)來表示n元語法在給定文本中出現(xiàn)的次數(shù),這樣的話我們就有下邊的計(jì)算公式:

像這樣的估計(jì)的處理方式,我們叫做p(wn|w1.........wn-1)的最大似然估計(jì)(MLF)

之所以稱為最大似然估計(jì),是因?yàn)樗x擇的參數(shù)相對(duì)于訓(xùn)練數(shù)據(jù)給出了最高的概率(滿足了正常隨機(jī)約束),但是其實(shí)我在上網(wǎng)搜這個(gè)問題的時(shí)候,很多人說MLF是不太適合自然語言處理的,因?yàn)楸旧砦覀兊恼Z料庫規(guī)模會(huì)很大,我們的數(shù)據(jù)會(huì)很稀疏,并且像上邊那樣的常用詞概率這么高的情況是非常理想的狀態(tài),大部分詞都是不常用的,那么這樣就會(huì)出現(xiàn)一個(gè)問題,如果一個(gè)n元組正好在判別時(shí)沒有了訓(xùn)練語料出現(xiàn)時(shí),這時(shí)候的概率就會(huì)很差,就跟上邊的詞,good后邊還可以跟很多的詞,但是最大似然估計(jì)并不會(huì)認(rèn)為會(huì)有其他的詞跟在這個(gè)good后邊.

那么應(yīng)該怎么去解決這個(gè)問題,這個(gè)時(shí)候我們就會(huì)想應(yīng)該要有一種更好的估計(jì)方法,要是能夠判別出在訓(xùn)練數(shù)據(jù)中沒有出現(xiàn)的事件,并且能夠給出一定的概率,這時(shí)候一些研究者給出了更好方法:

如果可以通過稍微減少已經(jīng)觀察到的事件概率的大小,并且可以把少量的概率分配到?jīng)]有看到過的事件上,這時(shí)候每件事件都會(huì)發(fā)生并且可能有效的工作,這個(gè)就是我們常說的折扣法,折扣的過程就叫做平滑(這難道是因?yàn)闆]有0值分布會(huì)比有0值分布更平滑?)

那么我們應(yīng)該如何進(jìn)行平滑,平滑的常用方式有幾種,在下一篇文章中我們將講述下幾種常用的數(shù)據(jù)平滑方法.

初學(xué)NLP,不足之處請(qǐng)各位多多批評(píng)指正,在此謝過!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市放刨,隨后出現(xiàn)的幾起案子工秩,更是在濱河造成了極大的恐慌,老刑警劉巖进统,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件助币,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡螟碎,警方通過查閱死者的電腦和手機(jī)眉菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掉分,“玉大人俭缓,你說我怎么就攤上這事∷止” “怎么了华坦?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)不从。 經(jīng)常有香客問我惜姐,道長(zhǎng),這世上最難降的妖魔是什么椿息? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任载弄,我火速辦了婚禮耘拇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宇攻。我一直安慰自己惫叛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布逞刷。 她就那樣靜靜地躺著嘉涌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夸浅。 梳的紋絲不亂的頭發(fā)上仑最,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音帆喇,去河邊找鬼警医。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坯钦,可吹牛的內(nèi)容都是我干的预皇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼婉刀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吟温!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起突颊,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤鲁豪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后律秃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爬橡,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年棒动,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糙申。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡迁客,死狀恐怖郭宝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掷漱,我是刑警寧澤粘室,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站卜范,受9級(jí)特大地震影響衔统,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一锦爵、第九天 我趴在偏房一處隱蔽的房頂上張望舱殿。 院中可真熱鬧,春花似錦险掀、人聲如沸沪袭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冈绊。三九已至,卻和暖如春埠啃,著一層夾襖步出監(jiān)牢的瞬間死宣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工碴开, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毅该,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓潦牛,卻偏偏與公主長(zhǎng)得像眶掌,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罢绽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容