Part2文本處理技術(shù):文本數(shù)據(jù)處理、表示挪凑、語(yǔ)言模型

六. 文本處理

一. 文本分析流程與分詞

1. 文本分詞流程

就像其他的領(lǐng)域有自己的經(jīng)典流程一樣孕索,一個(gè)文本分析的項(xiàng)目也有屬于自己的流程。雖然每一個(gè)NLP項(xiàng)目有所不同躏碳,但至于流程來(lái)說(shuō)沒有太多本質(zhì)的區(qū)別搞旭。這里會(huì)涉及到如分詞、停用詞過(guò)濾、文本向量的轉(zhuǎn)化等步驟肄渗。


2. 分詞工具的使用


分詞是所有工作的第一步镇眷,分詞的準(zhǔn)確性直接影響對(duì)后續(xù)任務(wù)的表現(xiàn)。但分詞技術(shù)相對(duì)比較成熟恳啥,也有很多開源的工具可用來(lái)做中文或者對(duì)其他語(yǔ)言的分詞偏灿。在這里丹诀,結(jié)巴分詞算是最經(jīng)典且簡(jiǎn)單的中文分詞工具钝的。下面以結(jié)巴分詞為例來(lái)說(shuō)明如何使用工具來(lái)分詞。


3. 最大匹配算法

是貪心算法铆遭,效率很高硝桩,只能給到局部最優(yōu)解。

前向最大匹配:需要設(shè)置窗口h大小枚荣,需要給定一個(gè)詞庫(kù)碗脊,從前面到后面最大匹配。h取決于詞庫(kù)里的單詞有多長(zhǎng)橄妆,盡量匹配詞庫(kù)里的所有單詞衙伶。

后向最大匹配

雙向最大匹配

匹配算法缺點(diǎn):沒有考慮語(yǔ)義,沒考慮單詞與單詞之間的語(yǔ)義關(guān)系害碾。

算法并不能保證找到的是最好的分詞結(jié)果矢劲。整個(gè)過(guò)程是貪心策略,尋求的是局部最好的選項(xiàng),但從全局來(lái)講未必是最好的。另一方面,由于是貪心策略,所以分詞的效率也很高慌随。

4. 考慮語(yǔ)義的一種分詞方法


前提是給定一個(gè)詞典芬沉,并且給定在語(yǔ)言模型下每個(gè)單詞的概率。概率乘積最大的是最好的分詞阁猜。

看到乘積很多的丸逸,需要將其轉(zhuǎn)化為加法,比如加上log剃袍,因?yàn)槿绻硞€(gè)值小于1黄刚,乘以其他小的數(shù),會(huì)導(dǎo)致計(jì)算機(jī)溢出民效。

維特比算法:看一下維基百科的解釋憔维,維特比算法(Viterbi algorithm)是一種動(dòng)態(tài)規(guī)劃算法。它用于尋找最有可能產(chǎn)生觀測(cè)事件序列的維特比路徑——隱含狀態(tài)序列研铆,特別是在馬爾可夫信息源上下文和隱馬爾可夫模型中埋同。維特比算法就是求所有觀測(cè)序列中的最優(yōu),求所有路徑中最優(yōu)路徑棵红,最容易想到的就是暴力解法凶赁,直接把所有路徑全部計(jì)算出來(lái),然后找出最優(yōu)的。這方法理論上是可行虱肄,但當(dāng)序列很長(zhǎng)時(shí)致板,時(shí)間復(fù)雜夫很高。而且進(jìn)行了大量的重復(fù)計(jì)算咏窿,viterbi算法就是用動(dòng)態(tài)規(guī)劃的方法就減少這些重復(fù)計(jì)算斟或。

viterbi算法是每次記錄到當(dāng)前時(shí)刻,每個(gè)觀察標(biāo)簽的最優(yōu)序列集嵌,假設(shè)在t時(shí)刻已經(jīng)保存了從0到t時(shí)刻的最優(yōu)路徑萝挤,那么t+1時(shí)刻只需要計(jì)算從t到t+1的最優(yōu)就可以了。


二. 停用詞與詞的標(biāo)準(zhǔn)化

1. 詞的過(guò)濾

在文本處理過(guò)程中根欧,對(duì)于有些詞需要做過(guò)濾怜珍。這些被過(guò)濾掉的單詞可認(rèn)為是對(duì)語(yǔ)義理解幫助不大,或者反而影響語(yǔ)義理解的單詞凤粗。同時(shí)酥泛,過(guò)濾單詞有助于減小詞庫(kù)的大小,進(jìn)而提高訓(xùn)練的效率和減少內(nèi)存空間的使用嫌拣。

去掉停用詞和出現(xiàn)頻率低的詞柔袁,一般要根據(jù)應(yīng)用場(chǎng)景來(lái)判斷。

2. 詞的標(biāo)準(zhǔn)化

stemming? 和? lemmazation

porter stemmer是stemming的非常經(jīng)典的算法异逐,是基于規(guī)則的捶索,背后有大量的語(yǔ)言學(xué)家。

三. 拼寫糾錯(cuò)

1. 拼寫糾錯(cuò)與編輯距離

分為單詞拼寫錯(cuò)誤和語(yǔ)法錯(cuò)誤应役。語(yǔ)法錯(cuò)誤涉及語(yǔ)言模型情组,下面主要先說(shuō)單詞拼寫錯(cuò)誤怎么改。

總結(jié)起來(lái)箩祥,關(guān)于拼寫糾錯(cuò)單詞的一種方法是:

第一步:尋找拼寫錯(cuò)誤的單詞

第二步:尋找跟上面單詞“長(zhǎng)得”最像的院崇,可通過(guò)循環(huán)詞庫(kù),并計(jì)算編輯距離來(lái)獲得袍祖。

第三步:從上述候選集里底瓣,根據(jù)上下文進(jìn)一步做篩選和排序,最終尋找最合適的單詞蕉陋。


2. 循環(huán)詞庫(kù)的問題以及改進(jìn)方法


通過(guò)上述方法捐凭,我們便可以靈活生成編輯距離為某一個(gè)值的單詞,這種做法要比直接循環(huán)詞庫(kù)里的每個(gè)單詞簡(jiǎn)單很多凳鬓,高效很多茁肠。但也可以從結(jié)果中看到,包含了大量的非法單詞缩举。所以我們需要在這些單詞中做進(jìn)一步過(guò)濾垦梆。當(dāng)然過(guò)濾的條件可以很簡(jiǎn)單匹颤,就是來(lái)檢查是否出現(xiàn)在了詞庫(kù)中,如果沒有出現(xiàn)則剔除掉托猩。


最大化P(s|c)*P(c):P(s|c)指的是在給定一個(gè)正確字符串c的情況下印蓖,拼成錯(cuò)誤字符串s的概率。P(c)指的是正確字符串c在詞庫(kù)中出現(xiàn)的概率京腥。

對(duì)于拼寫糾錯(cuò)赦肃,我們來(lái)做簡(jiǎn)單的總結(jié):

第一步:找到拼寫錯(cuò)誤的單詞

第二步:生成跟上述單詞類似的其他單詞,當(dāng)作是候選集

第三步:根據(jù)單詞在上下文中的統(tǒng)計(jì)信息來(lái)排序并選出最好的公浪。

至于拼寫糾錯(cuò)的完整實(shí)現(xiàn)他宛,由于跟語(yǔ)言模型相關(guān),我們將放到下一章來(lái)講解完整的代碼因悲。

七. 文本表示

一. 文本表示基礎(chǔ)

1. 單詞的表示

對(duì)于自然語(yǔ)言處理各類應(yīng)用堕汞,最基礎(chǔ)的任務(wù)為文本表示勺爱。因?yàn)槲覀兌贾酪粋€(gè)文本是不能直接作為模型的輸入的晃琳,所以我們必須要先把文本轉(zhuǎn)換成向量的形式之后,再導(dǎo)入到模型中訓(xùn)練琐鲁。所謂文本的表示卫旱,其實(shí)就是研究如何把文本表示成向量或者矩陣的形式

文本的最小單元為單詞围段,其次為短語(yǔ)顾翼、句子、或者段落奈泪。我們需要懂得如何把這些表示成向量的形式适贸。其中,單詞的表示法是最基礎(chǔ)的涝桅。另外拜姿,對(duì)于句子或者更長(zhǎng)的文本來(lái)說(shuō),它們的表示依賴于單詞的表示法冯遂。 在這里想說(shuō)的一點(diǎn)是蕊肥,單詞的表示法不止一種,比如有獨(dú)熱編碼的表示法蛤肌,詞向量的表示法等等壁却。

2. 句子的表示

知道了如何表示一個(gè)單詞之后,我們很自然地就可以得到如何表示一個(gè)句子了裸准。一個(gè)句子由多個(gè)單詞來(lái)組成展东,那實(shí)際上記錄一下哪些單詞出現(xiàn),哪些單詞沒有出現(xiàn)就可以了炒俱。當(dāng)然盐肃,很多時(shí)候我們也需要記錄一個(gè)單詞所出現(xiàn)的次數(shù)卦停。

3. tf-idf向量

所以,如果只記錄單詞的個(gè)數(shù)也是不夠的恼蓬,我們還需要考慮單詞的權(quán)重惊完,也可以認(rèn)為是質(zhì)量。這有點(diǎn)類似于处硬,一個(gè)人有很多朋友不代表這個(gè)人有多厲害小槐,還需要社交的質(zhì)量,其實(shí)是同一個(gè)道理荷辕。 那如何把這種所謂的“質(zhì)量”引入到表示中呢?答案是tf-idf凿跳。


tf-idf的應(yīng)用非常廣泛,即便放在當(dāng)前疮方,也是表示文本的最核心的技術(shù)之一控嗜。 之前我們講過(guò)什么是基準(zhǔn),那tf-idf是文本表示領(lǐng)域的最有效的基準(zhǔn)骡显。很多時(shí)候疆栏,基于深度學(xué)習(xí)的文本表示也未必要優(yōu)于tf-idf的表示。

二. 文本相似度

1. 計(jì)算歐式距離

如何計(jì)算兩個(gè)文本之間的相似度?這個(gè)問題實(shí)際上可以認(rèn)為是計(jì)算兩個(gè)向量之間的相似度惫谤。因?yàn)橥ㄟ^(guò)上一節(jié)的內(nèi)容已經(jīng)知道了如何把文本轉(zhuǎn)換成向量壁顶。 所以本節(jié)所涉及到的相似度計(jì)算公式適合任何向量化的場(chǎng)景,不僅僅局限于文本之間的相似度溜歪。有兩種常見的相似度計(jì)算方法若专,分別為基于歐式距離的計(jì)算,另外一種方式為基于余弦相似度的計(jì)算蝴猪。

距離越大调衰,相似度越小自阱;距離越小嚎莉,相似度越大。

向量之間的相似度實(shí)際上要考慮到向量的方向,因?yàn)橄蛄孔钪匾奶匦詾樗姆较蛐远馈H绻麅蓚€(gè)向量相似,那也需要它倆的方向也比較相似萝喘。然而,計(jì)算歐式距離的過(guò)程并沒有把方向考慮進(jìn)去,這是歐式距離的最大的問題。

2. 計(jì)算余弦相似度

為了彌補(bǔ)歐式距離所存在的問題琼懊,我們不得不要提出另外一種相似度計(jì)算方法阁簸,這就是最著名的方法-余弦相似度。通過(guò)余弦相似度事實(shí)上我們計(jì)算的是兩個(gè)向量之間的夾角大小哼丈。兩個(gè)向量的方向上越一致就說(shuō)明它倆的相似度就越高启妹。


余弦相似度計(jì)算的直接是相似度,結(jié)果越小醉旦,相似度越腥拿住桨啃;結(jié)果越大,相似度越大檬输。


三. 詞向量基礎(chǔ)

1. 計(jì)算單詞之間的相似度

我們一直在討論如何計(jì)算兩個(gè)文本之間的相似度照瘾,但至今還沒有討論過(guò)如何計(jì)算兩個(gè)單詞之間的相似度。單詞作為文本的最基本的要素丧慈,如何表示單詞的含義以及兩個(gè)單詞之間的相似度也極其重要析命。我們一起來(lái)了解一下在獨(dú)熱編碼的基礎(chǔ)下,如何計(jì)算兩個(gè)單詞之間的相似度逃默。

顯然是鹃愤,通過(guò)歐式距離或者余弦相似度是沒有辦法算出單詞之間的相似度,因?yàn)椴还芪覀冊(cè)趺从?jì)算完域,倆倆之間的結(jié)果都是一樣的软吐。那問題到底處在哪兒呢?答案是,一開始的獨(dú)熱編碼的表示!既然獨(dú)熱編碼表示不支持計(jì)算兩個(gè)單詞之間的相似度吟税,我們需要想另外一種單詞的表示法了凹耙,這就自然引出詞向量的概念。 除了不能計(jì)算相似度乌妙,獨(dú)熱編碼也存在稀疏性的問題使兔。


2. 詞向量基礎(chǔ)

詞向量是分布式表示。詞向量的最終目的是用向量來(lái)表示單詞的含義藤韵。

如果單詞用獨(dú)熱編碼,后續(xù)的句子要用tf-idf或count vector來(lái)表示熊经;如果單詞用了詞向量來(lái)表示泽艘,后續(xù)的句子也要沿用這個(gè)路線,比詞向量訓(xùn)練了300維镐依,句子也要是300維或者200維(匹涮?)。這是兩套不同的編碼方式槐壳。想結(jié)合也可以然低。

我們可以看到在分布式表示方法下,兩個(gè)單詞之間的相似度是可以算出來(lái)的务唐。當(dāng)然雳攘,效果取決于詞向量的質(zhì)量。所以枫笛,接下來(lái)的話題是如何得出這些詞向量?在這一章節(jié)吨灭,我們只做簡(jiǎn)單的介紹,具體詳細(xì)的方法論貫穿之后的很多的章節(jié)中刑巧。

語(yǔ)料庫(kù)-模型-詞向量喧兄。模型是黑盒子(Bert, ELMO, Glove, SkipGram etc.)无畔。

如何評(píng)價(jià)一個(gè)詞向量?簡(jiǎn)單的方法是做詞向量的可視化。

語(yǔ)義上比較相似的單詞聚集在了一起吠冤,這其實(shí)變相地說(shuō)明浑彰,詞向量在某種意義上表達(dá)出了一個(gè)單詞的含義。為了可視化詞向量而使用的降維技術(shù)通常包括?https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html?)拯辙,也是一種常用的降維算法闸昨。

3. 句子向量

假如我們手里已經(jīng)有了訓(xùn)練好的詞向量,那如何通過(guò)這些詞向量來(lái)表示一個(gè)完整的文本呢薄风,或者一個(gè)句子呢?有一種最簡(jiǎn)單且常用的方法饵较,就是做平均!

有了文本表示之后,我們就可以開始對(duì)文本做建模了遭赂,比如計(jì)算兩個(gè)文本之間的相似度循诉,或者對(duì)某個(gè)文本做分類。在這里我們來(lái)做個(gè)簡(jiǎn)單的小結(jié):

單詞的獨(dú)熱編碼和分布式表示是兩種完全不一樣的編碼方式

這兩種不同的編碼方式是目前文本表示的兩個(gè)方向撇他,有些時(shí)候傳統(tǒng)的獨(dú)熱編碼的方式可能更適合茄猫,有些時(shí)候分布式表示法更適合,具體還是要通過(guò)測(cè)試來(lái)獲得結(jié)論

獨(dú)熱編碼的最大的問題是不能表示一個(gè)單詞的含義

詞向量的質(zhì)量取決于詞向量訓(xùn)練模型困肩,不同的模型所給出的結(jié)果是不一樣的

九. 詞向量技術(shù)

目標(biāo):掌握SkipGram

一. 詞向量基礎(chǔ)

1. 單詞的表示


2. 從獨(dú)熱編碼到分布式表示

通常情況下,詞庫(kù)里的單詞越多,詞向量的長(zhǎng)度可以長(zhǎng)一些划纽。這有點(diǎn)類似于,當(dāng)我們有很多特征的時(shí)候,可以讓模型包含更多參數(shù)一樣。另外,詞向量的長(zhǎng)度跟效果并沒有正向關(guān)系,很長(zhǎng)的詞向量反而會(huì)導(dǎo)致過(guò)擬合現(xiàn)象锌畸。


理解一下這里的“可以表示含義”:這個(gè)是任何詞向量訓(xùn)練的目標(biāo)勇劣,即這個(gè)詞向量是真正表示這個(gè)單詞的意義的,可視化之后可以明顯看出意思相近的單詞是聚在一堆的潭枣。

3. 詞向量的訓(xùn)練

詞向量是訓(xùn)練出來(lái)的比默。所以,我們可以認(rèn)為盆犁,中間有一個(gè)模型可以幫助我們訓(xùn)練出每個(gè)單詞的向量命咐。這個(gè)模型到底是什么呢?這個(gè)黑盒子就是我們即將要解開的秘密。詞向量技術(shù)也是帶動(dòng)NLP發(fā)展的最有利的催化器谐岁,自從2013年提出word2vec開始醋奠,之后整個(gè)NLP領(lǐng)域有了飛躍式的發(fā)展。如果說(shuō)伊佃,ImageNet是CV領(lǐng)域的催化劑窜司,那么word2vec有著同樣的重要性。

那到底這個(gè)黑盒子里是什么呢?在具體剖析詞向量模型之前锭魔,我們先看一下如何用一些模型來(lái)訓(xùn)練出詞向量例证。也就是給定一個(gè)語(yǔ)料庫(kù),它的輸出長(zhǎng)得是怎樣的迷捧。輸入是一個(gè)很長(zhǎng)的文章txt文件也叫語(yǔ)料庫(kù)织咧,輸出就是每個(gè)單詞的詞向量胀葱,中間是用于訓(xùn)練詞向量的模型,這個(gè)模型很多包括skipgram笙蒙,cbow等抵屿。

到目前為止我們簡(jiǎn)單地了解了詞向量以及它的訓(xùn)練是怎樣的。在這里做個(gè)簡(jiǎn)單的總結(jié):

詞向量可以認(rèn)為在某種程度上代表單詞的含義

詞向量是需要訓(xùn)練出來(lái)的捅位,也就是提前要設(shè)計(jì)好詞向量訓(xùn)練模型

詞向量技術(shù)極大推動(dòng)了NLP領(lǐng)域的發(fā)展

二. SkipGram模型詳解:重點(diǎn)難點(diǎn)

1. 訓(xùn)練詞向量的核心思想

詞向量模型其實(shí)很多轧葛,包括大家所熟悉的BERT等。每一種詞向量艇搀,它的目標(biāo)和作用是不一樣的尿扯,我們?cè)诤罄m(xù)的章節(jié)中會(huì)一一做介紹。但不管怎么樣焰雕,這些模型都享有著共同的核心思想衷笋。等我們深入理解了這個(gè)思想,便可以更容易理解模型為什么會(huì)這么設(shè)計(jì)矩屁,而且甚至將來(lái)也可以提出自己的模型辟宗。

首先說(shuō)明一點(diǎn),詞向量的學(xué)習(xí)通常是無(wú)監(jiān)督學(xué)習(xí)吝秕,也就是不需要標(biāo)注好的文本泊脐。那對(duì)于這樣的無(wú)監(jiān)督學(xué)習(xí),我們應(yīng)該如何合理地設(shè)計(jì)目標(biāo)函數(shù)并學(xué)出詞向量呢?



2. SkipGram的目標(biāo)函數(shù)

具體來(lái)學(xué)習(xí)一下SkipGram模型烁峭。它是一個(gè)非常著名的詞向量訓(xùn)練模型容客。它的核心思想是通過(guò)中心詞來(lái)預(yù)測(cè)它周圍的單詞。也就是說(shuō)则剃,如果我們的詞向量訓(xùn)練比較到位耘柱,則這方面的預(yù)測(cè)能力會(huì)更強(qiáng)。實(shí)際上棍现,這就是我們需要構(gòu)建的目標(biāo)函數(shù)。

仔細(xì)看镜遣!這遍沒看懂己肮??悲关?

3.?SkipGram的負(fù)采樣

得到了SkipGram目標(biāo)函數(shù)之后谎僻,發(fā)現(xiàn)了這個(gè)目標(biāo)函數(shù)其實(shí)不好優(yōu)化。所以需要換一種方式去優(yōu)化寓辱,其中比較流行的方法是使用負(fù)采樣艘绍。從名字中也可以猜到,這個(gè)方法用到了采樣的做法秫筏。接下來(lái)我們從另外一個(gè)角度來(lái)推導(dǎo)SkipGram的目標(biāo)函數(shù)诱鞠。


當(dāng)我們有了目標(biāo)函數(shù)之后挎挖,剩下的過(guò)程無(wú)非就是優(yōu)化并尋找最優(yōu)參數(shù)了。實(shí)際上航夺,通過(guò)優(yōu)化最終得出來(lái)的最優(yōu)參數(shù)就是訓(xùn)練出來(lái)的詞向量蕉朵。優(yōu)化方法可采用梯度下降法或者隨機(jī)梯度下降法。

推導(dǎo)沒看懂阳掐?始衅?

三. 其他詞向量技術(shù)

SkipGram是訓(xùn)練詞向量的其中一種方式,但并不是唯一的方法缭保。實(shí)際上汛闸,從第一次提出word2vec開始,學(xué)者們已經(jīng)提出了各種各樣的訓(xùn)練方式艺骂。每個(gè)方法論的側(cè)重點(diǎn)诸老、目標(biāo)是有所不同的。

1.?矩陣分解法

在推薦領(lǐng)域用的比較好彻亲。


矩陣分解作為全局方法也有它的優(yōu)點(diǎn)和缺點(diǎn)孕锄。一個(gè)最大的缺點(diǎn)是每次分解依賴于整個(gè)矩陣,這就導(dǎo)致假如有些個(gè)別文本改變了苞尝,按理來(lái)講是需要重新訓(xùn)練的畸肆,但優(yōu)點(diǎn)是學(xué)習(xí)過(guò)程包含了全局的信息。相反宙址,對(duì)于SkipGram模型轴脐,由于訓(xùn)練發(fā)生在局部,所以訓(xùn)練起來(lái)效率高抡砂,且能夠很好把握局部的文本特征大咱,但問題是它并不能從全局的視角掌握語(yǔ)料庫(kù)的特點(diǎn)。

所以注益,接下來(lái)的問題是能否把各自的都優(yōu)點(diǎn)發(fā)揮出來(lái)?答案是設(shè)計(jì)一個(gè)融合矩陣分解和SkipGram模型的方法碴巾,這個(gè)答案其實(shí)是Glove模型。

2.?Glove向量


3.?高斯詞嵌入

帶有方差和標(biāo)準(zhǔn)差丑搔,可以看出來(lái)學(xué)出的詞向量的置信度高還是低厦瓢,即是否靠譜。


4.?詞向量總結(jié)

到此為止講完了SkipGram啤月。在最后煮仇,我來(lái)給大家總結(jié)一下:

詞向量技術(shù)的目的是通過(guò)向量來(lái)表示一個(gè)單詞的語(yǔ)義。

SkipGram是流行的一種詞向量學(xué)習(xí)技術(shù)谎仲。

SkipGram通過(guò)中心詞來(lái)預(yù)測(cè)它周圍的單詞浙垫。

SkipGram原始的目標(biāo)函數(shù)很難優(yōu)化,所以采用負(fù)采樣的方式來(lái)解決。

除了SkipGram還有很多不同的學(xué)習(xí)詞向量的方式夹姥。

另外杉武,我們還需要留意一點(diǎn):對(duì)于任意一個(gè)單詞,SkipGram佃声,矩陣分解艺智,Glove等模型均學(xué)出對(duì)應(yīng)的一個(gè)詞向量。那這又有什么問題呢?

由于一個(gè)單詞在不同的上下文中所表達(dá)的含義可能不一樣,所以只學(xué)出對(duì)應(yīng)的一個(gè)向量是不夠的圾亏。


四. 論文解讀

SkipGram不僅僅可以學(xué)習(xí)詞向量十拣,也可以應(yīng)用推薦系統(tǒng)中。

十. 語(yǔ)言模型

一. 語(yǔ)言模型基礎(chǔ)

1. 什么是語(yǔ)言模型?

語(yǔ)言模型最主要的作用是保證文本的語(yǔ)法結(jié)構(gòu)志鹃,得到通順的語(yǔ)句夭问。語(yǔ)言模型是一種概率統(tǒng)計(jì)的方法,已經(jīng)訓(xùn)練好的語(yǔ)言模型可以對(duì)任何一個(gè)文本給出概率曹铃,概率越高說(shuō)明語(yǔ)法上越通順缰趋。通過(guò)比較兩句話在同一個(gè)語(yǔ)言模型上的概率,我們就可以得出哪一句話更通順一些陕见。

2.??計(jì)算語(yǔ)言模型的概率


上述的條件概率是從語(yǔ)料庫(kù)中統(tǒng)計(jì)出來(lái)的,而且語(yǔ)言模型本身是無(wú)監(jiān)督學(xué)習(xí),不需要數(shù)據(jù)標(biāo)簽秘血。

3. 馬爾可夫假設(shè)

當(dāng)條件為較長(zhǎng)的一段話時(shí),一模一樣的語(yǔ)句出現(xiàn)在語(yǔ)料庫(kù)中的概率會(huì)非常小评甜,很多時(shí)候?yàn)?灰粮,造成了稀疏性,就失去了統(tǒng)計(jì)的意義忍坷。那如何解決此問題呢?答案是做一些近似!

二. 語(yǔ)言模型訓(xùn)練

1.?不同的語(yǔ)言模型

根據(jù)不同的馬爾科夫假設(shè)(1階粘舟、2階、3階佩研。柑肴。。)旬薯,我們可以得到不同種類的語(yǔ)言模型晰骑。如,一階馬爾科夫假設(shè)下的語(yǔ)言模型為bi-gram绊序, 二階馬爾科夫假設(shè)下的模型為tri-gram些侍,以此類推。另外政模,假如前后單詞之間不存在任何的依賴關(guān)系,得到的語(yǔ)言模型為unigram蚂会。


缺點(diǎn):不考慮單詞的順序



2. 語(yǔ)言模型的訓(xùn)練

做一個(gè)簡(jiǎn)單的總結(jié):

語(yǔ)言模型的概率值可基于語(yǔ)料庫(kù)來(lái)統(tǒng)計(jì)淋样。

根據(jù)使用的馬爾科夫假設(shè)的不同,可以把語(yǔ)言模型分為unigram胁住, bigram趁猴, trigram刊咳, ngram。儡司。娱挨。

當(dāng)考慮多個(gè)單詞的時(shí)候,條件概率往往變得稀疏捕犬,導(dǎo)致大部分都變成0跷坝。

3. 語(yǔ)言模型的評(píng)估

假如訓(xùn)練好了語(yǔ)言模型断医,我們應(yīng)該如何判斷語(yǔ)言模型的好壞呢?比如手里有兩個(gè)不同的語(yǔ)言模型敷扫,如何判斷哪個(gè)更好?為了回答此問題买猖,首先需要一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)汰瘫,也就是如何評(píng)估一個(gè)語(yǔ)言模型的好壞垄琐,并且結(jié)果是能夠量化的!


缺點(diǎn):耗時(shí)長(zhǎng)和成本

困惑度(Perplexity)越小越好物喷。


四. 語(yǔ)言模型的平滑

1.?不同的平滑方法

平滑對(duì)于語(yǔ)言模型至關(guān)重要慕购,假如沒有平滑操作震桶,很多概率都會(huì)變成0蜡吧。


2.?Add-one Smoothing

Add-one平滑其實(shí)也稱之為L(zhǎng)aplace平滑毫蚓,在樸素貝葉斯等模型中也會(huì)經(jīng)常用到。這種方法簡(jiǎn)單且有效昔善,不需要任何的訓(xùn)練過(guò)程元潘。


3.?Add-K Smoothing

Add-one平滑可看作是add-k平滑的特例,也就是當(dāng)K=1時(shí)就變成了Add-one平滑耀鸦。這里的K可以理解為是超參數(shù)柬批,可以試著去調(diào)節(jié)從而獲得比較好的K值。


4.??Interpolation



以上是比較常見的幾個(gè)平滑的方法袖订。當(dāng)然氮帐,除了這些,還有很多平滑的操作可供使用洛姑,感興趣的朋友們可以在網(wǎng)上搜一下如Good-turning smoothing平滑等上沐。對(duì)于本章做一個(gè)總結(jié):

語(yǔ)言模型可用來(lái)判斷語(yǔ)法的準(zhǔn)確性以及語(yǔ)句的通順與否。

當(dāng)任務(wù)中涉及到文本生成時(shí)楞艾,語(yǔ)言模型扮演著關(guān)鍵的角色参咙。

語(yǔ)言模型中的概率是基于語(yǔ)料庫(kù)統(tǒng)計(jì)出來(lái)的,這個(gè)過(guò)程也可以理解為是訓(xùn)練過(guò)程硫眯。

根據(jù)馬爾科夫假設(shè)的不同蕴侧,語(yǔ)言模型可分為unigram, bigram两入, trigram净宵。。。择葡。

在估算語(yǔ)言模型概率時(shí)紧武,需要用到平滑操作。

Add-one平滑是最簡(jiǎn)單且有效的平滑操作敏储,廣泛用在各類機(jī)器學(xué)習(xí)模型中阻星。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市已添,隨后出現(xiàn)的幾起案子妥箕,更是在濱河造成了極大的恐慌,老刑警劉巖酝碳,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矾踱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疏哗,警方通過(guò)查閱死者的電腦和手機(jī)呛讲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)返奉,“玉大人贝搁,你說(shuō)我怎么就攤上這事⊙科” “怎么了雷逆?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)污尉。 經(jīng)常有香客問我膀哲,道長(zhǎng),這世上最難降的妖魔是什么被碗? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任某宪,我火速辦了婚禮,結(jié)果婚禮上锐朴,老公的妹妹穿的比我還像新娘兴喂。我一直安慰自己,他們只是感情好焚志,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布衣迷。 她就那樣靜靜地躺著,像睡著了一般酱酬。 火紅的嫁衣襯著肌膚如雪壶谒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天膳沽,我揣著相機(jī)與錄音佃迄,去河邊找鬼泼差。 笑死,一個(gè)胖子當(dāng)著我的面吹牛呵俏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滔灶,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼普碎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了录平?” 一聲冷哼從身側(cè)響起麻车,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斗这,沒想到半個(gè)月后动猬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡表箭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年赁咙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片免钻。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彼水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出极舔,到底是詐尸還是另有隱情凤覆,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布拆魏,位于F島的核電站盯桦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渤刃。R本人自食惡果不足惜拥峦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溪掀。 院中可真熱鬧事镣,春花似錦、人聲如沸揪胃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喊递。三九已至随闪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骚勘,已是汗流浹背铐伴。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工撮奏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人当宴。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓畜吊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親户矢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玲献,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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