小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

統(tǒng)計自然語言處理的基礎(chǔ)學(xué)習(xí)之一

 dinghj 2013-11-26

1. NLP的一些基本概念和問題

計算機如何處理自然語言?

理性主義:其實就是純粹使用規(guī)則的方法處理自然語言,并認為這些語言規(guī)則天生就存在人的基因中。在計算機中重現(xiàn)這些規(guī)則,就能學(xué)會人的語言處理能力。

經(jīng)驗主義:認為人有感知和學(xué)習(xí)能力,通過概括、模式識別、聯(lián)想等能力,來學(xué)習(xí)到自然語言的結(jié)構(gòu)。


哲學(xué)上的問題,類似于起源之類,就先別考慮的。


統(tǒng)計方法在NLP中的地位是什么?

統(tǒng)計方法是解決NLP問題的方法之一。


問題:

一個句子是否合乎語法?是或否,這就是句子的二值問題

如何處理語言中的歧義問題?這個是NLP的難點。歧義范圍包括詞義、詞類別、句法結(jié)構(gòu)、語義范疇。


NLP學(xué)習(xí)和練習(xí)的首要條件是什么?

建立起要解決問題和獲取語料庫。

關(guān)于語料庫,《統(tǒng)計NLP基礎(chǔ)》書里給出了幾個重要的語料庫和URL.


NLP在統(tǒng)計上的一些基本問題:

一篇文章中有多少單詞?

有多少個不同的單詞?

每個單詞出現(xiàn)頻率是多少? “詞頻”

這些基本統(tǒng)計方法的意義是什么?


什么是Zipf法則?

最小精力付出原理:用最小的力氣,做最多的事。

詞頻現(xiàn)象符合雙曲分布。而不是線性或者高斯分布

詞頻與詞的長度成反比。(這個可以用huffman編碼原理理解,是歷史演化的規(guī)律)

實詞趨向于在相鄰的位置出現(xiàn),有點聚集的意思。


2. NLP的概率論基礎(chǔ)

傳統(tǒng)概率論概念:

概率空間

條件概率、獨立性

乘法定律

貝葉斯定理:這個是很多處理方法的核心。簡單實用

隨機變量、隨機分布、均值(期望)、方差

聯(lián)合分布、條件分布

二項分布(離散的)、正態(tài)分布(連續(xù)的)

-----------------------

貝葉斯統(tǒng)計:

假設(shè)先驗知識不是一成不變的,可以通過不斷的實驗,來尋找證據(jù)來更新這些先驗知識。更新方法就是貝葉斯定理。

如質(zhì)地均勻的硬幣,正面向上的概率是0.5. 即先獲取一個近似的先驗分布,是P(u) = 6m(1-m)

在實驗結(jié)果s的影響和更新下:

P(u|s) = p(s|u) * p(u) / p(s)

p(s)為先驗概率。若10次實驗、8次正面、2次反面,則更新后的先驗概率就為0.75. 這樣描述太粗糙了,需要仔細地看專業(yè)書來推理。


貝葉斯決策定理:

即MAP,極大后驗概率決策。

由先驗概率、先驗概率條件下各情況發(fā)生的實際情況(如次數(shù)統(tǒng)計),計算出各實際情況下先驗概率的更新。

并選擇最大的MAP的條件進行決策。


概率論部分 是基礎(chǔ),需要精心的學(xué)習(xí)一下相關(guān)概念。


3. NLP的信息論基礎(chǔ)

與其緊密相關(guān)的概念有:

概率密度函數(shù)

熵的定義 求和 -p(x) log(p(x)).

它的意義:熵與編碼長度的關(guān)系,用較少比特傳輸頻率高的字符。利用熵理論,來確定 “求解不確定性的問題”所需多少資源。

熵與概率的關(guān)系緊密相連。


聯(lián)合熵、條件熵

互信息:計算兩個隨機變量之間共有信息之間的度量。

噪聲信道模型:信道容量、輸入、輸出、互信息取最大值、系統(tǒng)的概率分布。

香農(nóng)信息論的意義:1. 定義了信息容量,使信道的傳輸速率有了一個上界;2.設(shè)計適當?shù)木幋a能信道的傳輸速率最優(yōu)

基于概率進行傳輸(翻譯)。

K-L距離

交叉熵


2和3的概念在專業(yè)的書里面寫的很詳細,我在另外一篇blog里也總結(jié)過了,這里只列些緊要的東西。

http://blog.csdn.net/viewcode/article/details/8819361

http://blog.csdn.net/viewcode/article/details/8820272

http://blog.csdn.net/viewcode/article/details/9042187


4. 語言學(xué)基礎(chǔ)概念

詞性、詞法:名詞、代詞、動詞、形容詞、副詞、連詞...
短語結(jié)構(gòu):名短、動短、介詞短語、副詞短語、形容詞短語

語義、語用

這些個都是比較專業(yè)的語言學(xué)知識。
現(xiàn)在自己能知道的,就是中學(xué)時學(xué)的英語的那點詞法、語法,有的勉強能理解。


5. 如何證實一個二元組是短語搭配?

首先是固定短語搭配識別,二元組:
1)最簡單的方法: 統(tǒng)計兩個單詞一起出現(xiàn)的次數(shù)/頻率。這個會有很多功能詞組合(如of the)的干擾,效果并不好。
2)利用詞性過濾器:如形容詞+名詞、名詞+名詞、形容詞+形容詞+名詞等。效果會很好。
觀點:利用簡單的統(tǒng)計技術(shù)+語言學(xué)知識(特征) 是很有用途的。

非固定詞語搭配, 如knock on the door, knock his door, knock on the metal door.
對于這種非固定距離的搭配,采用的方法是 取一個搭配窗口,窗口中每個詞對都作為候選的搭配詞對,然后統(tǒng)計頻率。這樣會稍微擴大了一下計算量。
對于高頻候選對,還可以統(tǒng)計其距離的均值和方差。距離均值和偏差是兩個詞之間的分布的重要特征。
若存在的是高偏差,那么這種搭配距離不固定,可能不是很有吸引力,而低偏差的搭配,說明詞對的距離基本恒定,這個是一個很有意思的特征。

6. 如何對檢測出的“詞對”進行檢驗?

問題描述:應(yīng)用5中的方法,檢測出一個高頻詞對,并且是低偏差的。如 new 和companies,這個是可能的,它們并不是詞對,僅僅是偶然同時出現(xiàn)在一個區(qū)域。
如何對這種詞對進行假設(shè)檢驗?
若詞w1,w2是完全獨立產(chǎn)生的,那么P(w1, w2) = P(w1) * P(w2)
一般采用t分布,對均值進行假設(shè)檢驗。
低于a=0.005的置信水平的假設(shè),即t 值小于 2.56,是會被拒絕的。

t分布也可以用來檢測兩個相近意義的詞之間的差別。如strong和powerful的差別

t分布的假設(shè)前提:所有分布都服從正態(tài)分布。

其他檢驗方法:
卡方分布
似然比分布

7. 兩個詞之間的互信息如何度量?

兩個詞同時互現(xiàn)的互信息為 I (x, y)= log [ p(x, y) / p(x)p(y) ] = log [p(x|y) / p(x)] = log[p(y|x) / p(y)]

它 表明了兩個詞語之間有多大的聯(lián)系。 若 x, y不相關(guān),則 I(x, y)= log 1 = 0; 若x,y相關(guān),則x,y完全相關(guān)時,p(x)=p(y), 則 I(x,y)= log [1 / p(x)].


8. 什么是shannon游戲? n元語法模型?

經(jīng)典的語言建模問題,采用統(tǒng)計的方法,根據(jù)當前詞來預(yù)測下一個詞,可以用來拼寫糾錯,手寫識別,機器翻譯等等,也可以用于語義消岐和概率句法分析。

n元語法模型:
單詞預(yù)測可以用下面的概率方程來表示
P(wn | w1 w2...wn-1),利用前面已經(jīng)出現(xiàn)的n-1個詞,來預(yù)測第n個詞,這個就是n-1階的馬爾可夫模型,或叫n元語法模型。

n元語法模型的數(shù)量:
若一共有N個詞,那么 窮舉n個詞組合的詞表約有 N^(n-1) * (N-1) 個
2階,3階,4階語言模型還是有可能的,目前而言5階的語法模型就太大了。google的機器翻譯語言模型目前應(yīng)該是4階的。

如何減小詞表?
一個方法就是減小n的值,但n減小后,其推斷能力也會受到影響。
另外一個方法就是使用詞干化方法,刪除詞語的變形結(jié)尾,或使用語義類聚類的方法,構(gòu)造等價類,減少詞表的規(guī)模。
除了詞匯,還應(yīng)該考慮句子的結(jié)構(gòu),才能獲取更好的結(jié)果。

9. 如何對n元語法模型進行統(tǒng)計估計?

繼續(xù)使用概率的方式,求解P(wn | w1 w2...wn-1)
P(wn | w1 w2...wn-1) = P(w1 w2...wn) / P(w1 w2...wn-1)

1)最大似然估計
P(w1 w2...wn) = C(w1 w2 ... wn) / N, C是n元組出現(xiàn)的頻率,而N是訓(xùn)練實例的個數(shù)。
這個是最大似然估計的推導(dǎo)結(jié)果。
但最大似然估計有時不太適合NLP統(tǒng)計推理,因為數(shù)據(jù)稀疏的原因,數(shù)據(jù)不足就無法獲取完整的概率分布。

采樣訓(xùn)練數(shù)據(jù)不足,也可以用折扣的方法來彌補,即采用平滑的方法,將少量概率分配到?jīng)]有看到的事件上去。

要分配多少概率到?jīng)]有看到的事件上去哪?
2)Laplace法則,又稱加1法
P(w1 w2...wn) = [C(w1 w2 ... wn) + 1] / (N+B)
這個方法的依據(jù)就貝葉斯估計,每個n元組都有相同的可能性,這個是假設(shè)的前提(?這個需要后續(xù)的理解)
方法缺點:依賴于詞表的大小,對于大詞表上的稀疏數(shù)據(jù)集,Laplace法則將太多的數(shù)據(jù)轉(zhuǎn)移到未知事件上。

3)LidStone法則
Laplace平滑法則,缺點比較明顯,其改進就是,將加1改為一個較小的值lamda。
P(w1 w2...wn) = [C(w1 w2 ... wn) + lamda] / (N+B*lamda)

常用的lamda值是0.5. 這個值是可以看做是最大似然估計和統(tǒng)一的先驗概率論之間的線性插值。
這種方法的缺點: 需要猜想一個合理的lamda值,而且在低頻情況下,這種方法在最大似然估計上的概率與經(jīng)驗分布不太相符。


4)什么是留存估計?

就是一個數(shù)據(jù)集,一部分用來訓(xùn)練,另外一部分留存的數(shù)據(jù)用來驗證。

在訓(xùn)練的數(shù)據(jù)上進行驗證是不正確的。

在不同的數(shù)據(jù)集上進行測試是必要的。

在訓(xùn)練數(shù)據(jù)上,交叉熵的值要比真實文本的熵低。


可以使用留存的數(shù)據(jù)來計算 轉(zhuǎn)移的概率有多大。


5)交叉驗證
相對于留存估計法,交叉驗證是更有效率的,即訓(xùn)練數(shù)據(jù)的每一部分既作為訓(xùn)練數(shù)據(jù),又作為留存驗證數(shù)據(jù)。
缺點: 這種方法對低頻仍然不太適用,它在較小語料庫上,會導(dǎo)致對未知事件概率的估計偏高。

6)Good-Turing估計、古德-圖靈估計法(兩個人)
是一種平滑算法:
即將每個類別發(fā)生的頻率r,變?yōu)?r* = (r+1) * n(r+1) / nr, n(r+1)是訓(xùn)練語料中發(fā)生r+1次 N元組的個數(shù),nr是訓(xùn)練語料中發(fā)生r次的N元組的個數(shù)。即調(diào)整后,每個類別的發(fā)生頻率是由相鄰兩個類別決定。
而其概率也變?yōu)?Pr = r* / N, 這里的大N是語料庫中種類個數(shù)。



從1到無窮大,所有發(fā)生的概率之和是小于1的。而剩余這部分概率就 n1 / N, 可以作為分配給未知事件的概率。

7) 常用的組合方法有哪些?
在多種模型獲取不同的結(jié)果時,可以采用組合模型的方法,來獲取更好的結(jié)果。
常用的方法有:
線性插值法
Katz退避法:對于頻度小于某閾值的詞,降低其頻度,頻度越小,下降就越多。這樣未看見的詞也會有一定的頻率

10. 什么是語義消岐?有哪些處理算法?

語義有歧義,主要是因為歧義詞在不同的語境有不同的含義。消岐的任務(wù)就是根據(jù)上下文環(huán)境確定一個歧義詞的確切含義。
1)一些常用概念:
語義消岐的方法一般分為兩類:
有監(jiān)督方法: 一般是指分類任務(wù),可以推斷出分類函數(shù)的形態(tài)。但其需要標注好的語料,標注的工作比較麻煩。
無監(jiān)督方法: 一般是指聚類任務(wù)。

偽詞:合并兩個或多個自然詞來創(chuàng)建一個偽詞,用于測試數(shù)據(jù)。人工構(gòu)建含有歧義的文本。

算法的上下界:不同的歧義詞,區(qū)分難度不同,應(yīng)該區(qū)別對待,制定不同的區(qū)分標準。上界一般是指人工的區(qū)分度,而下界是指最簡單算法的區(qū)分度。

2) 有監(jiān)督消岐
有監(jiān)督學(xué)習(xí)算法有很多種,而NLP中最常用的兩個理論是 貝葉斯分類 和 信息論。

貝葉斯分類:
MAP, 最大化后驗概率。計算一個詞的后驗概率時,需要兩個條件:
一是統(tǒng)計出 這個詞在每種語義中出現(xiàn)的概率Sk。
二是統(tǒng)計出 這個詞在每種語義中被正確分類的概率c|Sk

然后就可以計算出 這個詞 是處于哪種語義中的概率。
其算法偽代碼如下:



基于信息論的算法:
Flip-Flop算法,用于處理兩個語義的情況。
待詳細補充。
偽代碼如下:



3)基于詞典或類義辭典的消岐

利用詞典的解釋來確定其語義

4) 無監(jiān)督消岐
采用EM算法將有歧義詞的上下文聚類到很多組中。

這塊需要多熟悉點其他的東西才好消化。

后面對以上概念和算法,可以用natural language processing with python來實踐一下。
http://blog.csdn.net/viewcode/article/details/10542007

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多