學(xué)習(xí)路線參考:
https://blog.51cto.com/u_15298598/3121189
https://github.com/Ailln/nlp-roadmap
https://juejin.cn/post/7113066539053482021
https://zhuanlan.zhihu.com/p/100567371
https://cloud.tencent.com/developer/article/1884740
本節(jié)學(xué)習(xí)使用工具&閱讀文章:
https://looperxx.github.io/CS224n-2019-01-Introduction%20and%20Word%20Vectors/#word2vec-introduction
https://cloud.tencent.com/developer/article/1884740
https://zhuanlan.zhihu.com/p/65190736
https://zhuanlan.zhihu.com/p/202518583
https://zhuanlan.zhihu.com/p/88362664
https://hillzhang1999.gitee.io/2020/04/04/nlp-zi-xue-bi-ji-tiao-jian-sui-ji-chang-mo-xing/
-
自然語言處理概述
自然語言處理(Natural Language Processing, NLP)研究能實(shí)現(xiàn)人與計算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。
-
自然語言處理包括多方面和步驟疾瓮,基本有認(rèn)知、理解、生成等部分。
- 自然語言理解(NLU):是讓電腦把輸入的語言變成有意思的符號和關(guān)系骗村,然后根據(jù)目的再處理。常見應(yīng)用有分詞类少、詞性標(biāo)注叙身、句法分析、文本分類硫狞、信息檢索信轿、信息抽取、文字校對等残吩。
- 自然語言生成(NLG):是把計算機(jī)數(shù)據(jù)轉(zhuǎn)化為自然語言财忽。常見應(yīng)用有機(jī)器翻譯、問答系統(tǒng)等泣侮。
-
自然語言處理的四大任務(wù)
-
序列標(biāo)注
序列到序列的任務(wù)即彪。在序列標(biāo)注中,我們想對一個序列的每一個元素標(biāo)注一個標(biāo)簽。一般來說隶校,一個序列指的是一個句子漏益,而一個元素指的是句子中的一個詞。具體任務(wù)有分詞深胳、詞性標(biāo)注绰疤、命名實(shí)體標(biāo)注、詞意角色標(biāo)注等舞终。
-
文本分類
序列到類別的任務(wù)轻庆,最常見的是情感分類任務(wù),使用LSTM后接Softmax輸出分類結(jié)果敛劝。
-
句子關(guān)系判斷
判斷兩句話的關(guān)系余爆,比如問答系統(tǒng)中判斷一個問題和一個答案是否匹配,語義相似度匹配中判斷兩句話是否表達(dá)同一個意思等夸盟。
-
文本生成
通常是直接面向普通用戶的系統(tǒng)任務(wù)蛾方。例如機(jī)器翻譯、自動文本摘要上陕、閱讀理解转捕、語音識別、對話系統(tǒng)唆垃、問答系統(tǒng)等五芝。
-
自然語言處理的一般流程:獲取語料、文本預(yù)處理辕万、特征工程枢步、特征選擇、模型訓(xùn)練渐尿、模型評估醉途、上線應(yīng)用。
-
-
中文文本預(yù)處理概述
文本預(yù)處理是自然語言處理中必不可少的一環(huán)砖茸,且選擇什么樣的文本預(yù)處理方法隘擎、處理結(jié)果如何都會對下游的工作效果產(chǎn)生非常大的影響。中文文本預(yù)處理主要有以下幾個環(huán)節(jié):語料清洗凉夯、分詞货葬、詞性標(biāo)注、去停用詞劲够。
-
語料清洗
去除噪音數(shù)據(jù)震桶,僅保留有用數(shù)據(jù)。通常是刪去一些標(biāo)點(diǎn)符號征绎、亂碼等蹲姐,使用正則表達(dá)式就能夠取得很好的效果。
-
分詞
分詞是中文文本預(yù)處理中特有的問題,因?yàn)橹形牟幌裼⒄Z天然地有空格作為分界符〔穸眨現(xiàn)在的分詞方法大概可以分為三個類別:基于字符串匹配的分詞方法忙厌、基于統(tǒng)計的分詞方法和基于理解的分詞方法。
-
基于字符串匹配的分詞方法
又稱機(jī)械分詞方法江咳,它是按照一定的掃描方式將待分詞的句子中的詞條與語料庫中的詞進(jìn)行匹配慰毅,然后返回相應(yīng)的結(jié)果。
- 正向最大匹配法(從左到右):定義滑動窗口的長度
扎阶,首先取出句子的前
個字符,判斷是否存在于詞庫中婶芭。如果存在东臀,則返回第一個分詞,滑動窗口向后滑動
個位置犀农;如果不存在惰赋,滑動窗口縮小1,判斷前兩個字符是否存在于詞庫呵哨,如果存在赁濒,則返回這個分詞,滑動窗口向后滑動
孟害;不存在則繼續(xù)縮小滑動窗口拒炎,直至將整個句子遍歷完。
- 逆向最大匹配法(從右到左):與正向相同挨务,不同的是從末尾開始遍歷击你。
- 雙向最大匹配算法:進(jìn)行一次正向,再進(jìn)行一次逆向谎柄。
- 正向最大匹配法(從左到右):定義滑動窗口的長度
-
基于統(tǒng)計的分詞方法
在給定大量已經(jīng)分詞的文本的前提下丁侄,利用統(tǒng)計機(jī)器學(xué)習(xí)模型學(xué)習(xí)詞語切分的規(guī)律(稱為訓(xùn)練),從而實(shí)現(xiàn)對未知文本的切分朝巫『枰。基于統(tǒng)計的分詞方法從一定程度上可以考慮到語義問題,得到最好的分詞結(jié)果劈猿,主要的統(tǒng)計模型有:N元文法模型(N-gram)拙吉,隱馬爾可夫模型(Hidden Markov Model ,HMM)揪荣,最大熵模型(ME)庐镐,條件隨機(jī)場模型(Conditional Random Fields,CRF)等变逃。
-
基于理解的分詞方法
通過讓計算機(jī)模擬人對句子的理解必逆,達(dá)到識別詞的效果。其基本思想就是在分詞的同時進(jìn)行句法、語義分析名眉,利用句法信息和語義信息來處理歧義現(xiàn)象粟矿。
-
-
詞性標(biāo)注
在分好詞的基礎(chǔ)上,給每個詞打上詞類標(biāo)簽损拢。
-
去停用詞
建立好停用詞庫之后陌粹,在分好詞的文本基礎(chǔ)上很容易就能夠進(jìn)行停用詞的去除。
-
-
基于統(tǒng)計的中文文本分詞方法
-
最大概率分詞方法
最基本的統(tǒng)計分詞方法福压。一個待分割的字符串有多種分詞結(jié)果掏秩,最大概率分詞的原則是將其中概率最大的那個作為該字符串的分詞結(jié)果。這種分詞方法通常結(jié)合多種機(jī)械分詞方法來進(jìn)行荆姆。
-
最大熵模型(ME)
最大熵模型屬于對數(shù)線性模型蒙幻,在給定訓(xùn)練數(shù)據(jù)的條件下,對模型進(jìn)行極大似然估計或正則化極大似然估計胆筒。
-
N元文法模型(N-Gram)
基于馬爾科夫假設(shè)提出的模型邮破。
- 馬爾科夫假設(shè):一個詞的出現(xiàn)僅與它之前的若干個詞有關(guān)。
N元語法模型的基本的公式可以看作為概率公式P:
如果一個詞的出現(xiàn)僅依賴于它前面出現(xiàn)的一個詞仆救,那么我們就稱之為 Bi-gram抒和;如果一個詞的出現(xiàn)僅依賴于它前面出現(xiàn)的兩個詞,那么我們就稱之為 Tri-gram彤蔽。在此基礎(chǔ)上使用極大似然估計計算條件概率摧莽。
-
隱馬爾可夫模型(HMM)
- 齊次馬爾科夫性假設(shè):假設(shè)隱藏的馬爾科夫鏈在任意時刻t的狀態(tài)只依賴于其前一時刻的狀態(tài),與其他時刻的狀態(tài)及觀測無關(guān)顿痪,也與時刻t無關(guān)
- 觀測獨(dú)立性假設(shè):假設(shè)任意時刻的觀測只依賴于該時刻的馬爾科夫鏈的狀態(tài)范嘱,與其他觀測即狀態(tài)無關(guān)
給定隱馬爾可夫模型
丑蛤,其中
為初始狀態(tài)概率,
為狀態(tài)轉(zhuǎn)移概率撕阎,
為觀測概率(
表示在任意時刻 t受裹,若狀態(tài)為
,則觀測值
被獲取的概率)虏束。一旦一個系統(tǒng)可以作為 HMM 被描述棉饶,就可以用來解決三個基本問題。
- 評估:給定 HMM镇匀,求某個觀察序列的概率照藻。
- 解碼:給定 HMM,以及某個觀察序列汗侵,求得狀態(tài)序列幸缕。
- 學(xué)習(xí):給定觀察序列群发,得到一個HMM。
為了解決分詞問題发乔,可以建立以下的HMM:
- 狀態(tài)集合:{B:分詞詞首熟妓;M:分詞詞中;E:分詞詞尾栏尚;S:單個詞分詞}
- 觀測值:一個字就是一個觀測值起愈。
- 觀測序列:一句話。
- 初始狀態(tài)概率译仗、狀態(tài)轉(zhuǎn)移概率和觀測概率可以基于以上定義從數(shù)據(jù)集中計算得出抬虽。
分詞問題就是給定一句話(觀察序列),獲取分詞結(jié)果(狀態(tài)序列)纵菌,可以轉(zhuǎn)化為解碼問題阐污。對于解碼問題,使用維特比算法求解产艾。
-
條件隨機(jī)場模型(CRF)
條件隨機(jī)場模型是隱馬爾可夫模型和對數(shù)線性模型的結(jié)合。
- 可以看作是分類模型Log-Linear Model加入了HMM中的轉(zhuǎn)移特征(齊次馬爾可夫假設(shè))從而轉(zhuǎn)變成為的結(jié)構(gòu)化分類模型滑绒,從而可以進(jìn)行Seq2Seq的標(biāo)注闷堡。也就是說,對于樣本的預(yù)測不再是相互獨(dú)立的疑故,對于某個樣本的預(yù)測需要考慮前面或者后面樣本預(yù)測的結(jié)果杠览。
- 也可以看作是生成模型HMM中引入了Log-Linear Model中的自定義特征函數(shù),把它變成了一個判別模型纵势,解決了HMM的輸出獨(dú)立性假設(shè)問題和有限元馬爾可夫假設(shè)問題踱阿, 不僅可以表達(dá)觀測之間的依賴,還可表示當(dāng)前觀測與前后多個狀態(tài)之間的復(fù)雜依賴钦铁。
-