一、Statistical?Language?Model
在自然語(yǔ)言處理中的一個(gè)基本問(wèn)題:如何計(jì)算一段文本序列在某種語(yǔ)言下出現(xiàn)的概率?之所為稱其為一個(gè)基本問(wèn)題,是因?yàn)樗诤芏郚LP任務(wù)中都扮演著重要的角色。例如,"我經(jīng)常會(huì)去圖書(shū)館____",預(yù)測(cè)該句后面的詞。我們會(huì)通過(guò)已有的語(yǔ)料或上下文,來(lái)統(tǒng)計(jì)預(yù)測(cè)這句話可以填某個(gè)詞的概率。將概率最大的作為預(yù)測(cè)結(jié)果返回。再比如機(jī)器翻譯中,‘I like Tom so much.’ ===>{‘我’,‘喜歡’,‘湯姆’,‘非?!瘆?將這個(gè)集合里的字詞排列組合成句子,然后用語(yǔ)言模型去計(jì)算形成句子的概率大小。概率越大,說(shuō)明翻譯越順暢,越好,就作為最終的答案返回。
統(tǒng)計(jì)語(yǔ)言模型給出了這一類(lèi)問(wèn)題的一個(gè)基本解決框架。對(duì)于一段文本序列

它的概率可以表示為:

即將序列的聯(lián)合概率轉(zhuǎn)化為一系列條件概率的乘積。問(wèn)題變成了如何去預(yù)測(cè)這些給定previous words下的條件概率:

由于其巨大的參數(shù)空間,這樣一個(gè)原始的模型在實(shí)際中并沒(méi)有什么用。我們更多的是采用其簡(jiǎn)化版本——Ngram模型:

常見(jiàn)的如bigram模型(N=2)和trigram模型(N=3)。事實(shí)上,由于模型復(fù)雜度和預(yù)測(cè)精度的限制,我們很少會(huì)考慮N>3的模型。
我們可以用最大似然法去求解Ngram模型的參數(shù)——等價(jià)于去統(tǒng)計(jì)每個(gè)Ngram的條件詞頻。
為了避免統(tǒng)計(jì)中出現(xiàn)的零概率問(wèn)題,針對(duì)于Ngram模型有很多處理的小技巧。
二、N-Gram語(yǔ)言模型
n-gram語(yǔ)言模型的思想,可以追溯到信息論大師香農(nóng)的研究工作,他提出一個(gè)問(wèn)題:給定一串字母,如“for ex”,下一個(gè)最大可能性出現(xiàn)的字母是什么?從訓(xùn)練語(yǔ)料數(shù)據(jù)中,我們可以通過(guò)極大似然估計(jì)的方法,得到N個(gè)概率分布:是a的概率是0.4,是b的概率是0.0001,是c的概率是…,當(dāng)然,別忘記約束條件:所有的N個(gè)概率分布的總和為1.
n-gram模型概率公式推導(dǎo)。根據(jù)條件概率和乘法公式:

得到?

拿一個(gè)應(yīng)用來(lái)講,假設(shè)T是由詞序列A1,A2,A3,…An組成的,那么P(T)=P(A1A2A3…An)=P(A1)P(A2|A1)P(A3|A1A2)…P(An|A1A2…An-1)?
如果直接這么計(jì)算,是有很大困難的,需要引入馬爾科夫假設(shè),即:一個(gè)item的出現(xiàn)概率,只與其前m個(gè)items有關(guān),當(dāng)m=0時(shí),就是unigram,m=1時(shí),是bigram模型。
因此,P(T)可以求得,例如,當(dāng)利用bigram模型時(shí),P(T)=P(A1)P(A2|A1)P(A3|A2)…P(An|An-1)?
而P(An|An-1)條件概率可以通過(guò)極大似然估計(jì)求得,等于Count(An-1,An)/Count(An-1)。
三、n-gram的數(shù)據(jù)長(zhǎng)相
·著名的google books Ngram Viewer,它的n-gram數(shù)據(jù)格式是這樣的:
circumvallate? ? ?1978? ? ? ? 335? ? ? ?91
circumvallate? ? ?1979? ? ? ? ?261? ? ? 91
代表了一個(gè)1-gram的數(shù)據(jù)片段,第一行的意思是,“circumvallate”這個(gè)單詞在1978年出現(xiàn)335次,存在91本書(shū)中。這些元數(shù)據(jù),除了頻率335次是必須的,其他的元數(shù)據(jù)(例如,還有詞性等)可以根據(jù)應(yīng)用需求來(lái)定。下面是一個(gè)5-gram數(shù)據(jù)片段:
analysis is often described as 1991 1 1 1
當(dāng)然,也可以是其他形式,例如,HanLP的n-gram模型是bigram:
—@北冰洋 2
—@盧森堡 1
—@周日 1
—@因特網(wǎng) 1
每一行代表,兩個(gè)相鄰單詞共同出現(xiàn)時(shí)的頻率(相對(duì)于背后的語(yǔ)料庫(kù))。
四、n-gram的用處
·文化研究 ·分詞算法 ·語(yǔ)音識(shí)別 ·輸入法 ·機(jī)器翻譯
文化研究:n-gram模型看起來(lái)比較枯燥和冰冷,但實(shí)際上,google books ngram項(xiàng)目,催生了一門(mén)新學(xué)科(Culturomics)的成立,通過(guò)數(shù)字化的文本,來(lái)研究人類(lèi)行為和文化趨勢(shì)??刹榭粗跎系?a target="_blank" rel="nofollow">詳細(xì)介紹,?!犊梢暬磥?lái)》這本書(shū)也有詳細(xì)介紹。還有TED上的視頻《what_we_learned_from_5_million_books》,十分精彩。
輸入法:大家每天都在使用的東西,請(qǐng)看:輸入“tashiyanjiushengwude”,可能的輸出有:
它實(shí)驗(yàn)救生無(wú)得
他實(shí)驗(yàn)就生物的
他是研究圣物的
他是研究生物的
究竟哪個(gè)是輸入者最想表達(dá)的意思,這背后的技術(shù)就要用到n-gram語(yǔ)言模型了。item就是每一個(gè)拼音對(duì)應(yīng)的可能的字。還記得智能ABC嗎?據(jù)說(shuō)是運(yùn)用n-gram的鼻祖了。?不過(guò)搜狗輸入法后來(lái)居上,它采用更先進(jìn)的云計(jì)算技術(shù)(n-gram模型的數(shù)據(jù)量可是相當(dāng)之大,后面會(huì)說(shuō)到) 。
做概率統(tǒng)計(jì)的都知道,語(yǔ)料庫(kù)的規(guī)模越大,做出的n-gram對(duì)統(tǒng)計(jì)語(yǔ)言模型才更有用。n-gram,無(wú)論是存儲(chǔ)還是檢索,對(duì)技術(shù)都是極大的挑戰(zhàn)。?
主要參考文章:
【1】N-Gram語(yǔ)言模型? 原文更精彩