0返十、自然語言處理--NLP
0.1 數(shù)字、文本椭微、語言
"數(shù)字洞坑、文字和自然語言處理一樣,都是信息的載體蝇率,數(shù)字與語言的產(chǎn)生都是為了同一個(gè)目的----記錄和傳播信息迟杂。"
--《數(shù)學(xué)之美》
文字只是信息的載體,而非信息本身本慕,那么不用文字排拷,而用其它的載體(比如word2vec形式的詞向量)是否一樣可以儲存同樣意義的信息呢?這個(gè)答案是肯定的间狂,這也是現(xiàn)在通信技術(shù)的基礎(chǔ)攻泼,如果想讓計(jì)算機(jī)來處理我們的人類語言、文本數(shù)據(jù)鉴象,首要的就是換一種數(shù)據(jù)的載體(表示形式)---數(shù)值化。
任何一種語言都是一種對信息進(jìn)行編碼的方式何鸡,而語言的語法規(guī)則就是編解碼的算法纺弊,這就是語言的數(shù)學(xué)本質(zhì)。
0.2 什么是自然語言處理骡男?
自然語言處理NLP (Natural Language Processing)是研究人與計(jì)算機(jī)交互的語言問題的一門學(xué)科淆游,自然語言處理的關(guān)鍵是要讓計(jì)算機(jī)“理解”自然語言,是人工智能(AI)的一個(gè)核心子領(lǐng)域之一隔盛。
自然語言處理=文本處理+機(jī)器學(xué)習(xí)犹菱。自然語言處理技術(shù)主要是讓機(jī)器理解人類的語言的一門領(lǐng)域。在自然語言處理技術(shù)中吮炕,大量使用了編譯原理相關(guān)的技術(shù)腊脱,例如詞法分析,語法分析等等龙亲,除此之外陕凹,在理解這個(gè)層面,則使用了語義理解鳄炉,機(jī)器學(xué)習(xí)等技術(shù)杜耙。作為唯一由人類自身創(chuàng)造的符號,自然語言處理一直是機(jī)器學(xué)習(xí)界不斷研究的方向拂盯。按照百度機(jī)器學(xué)習(xí)專家余凱的說法“聽與看佑女,說白了就是阿貓和阿狗都會的,而只有語言才是人類獨(dú)有的”。如何利用機(jī)器學(xué)習(xí)技術(shù)進(jìn)行自然語言的的深度理解团驱,一直是工業(yè)和學(xué)術(shù)界關(guān)注的焦點(diǎn)摸吠。
1、語言模型
宏觀上:語言模型是根據(jù)語言客觀事實(shí)而進(jìn)行的語言抽象數(shù)學(xué)建模店茶,是一種對應(yīng)關(guān)系蜕便。語言模型與語言客觀事實(shí)之間的關(guān)系,如同數(shù)學(xué)上的抽象直線與具體直線之間的關(guān)系贩幻。
簡單說轿腺,語言模型就是用來計(jì)算一個(gè)句子的概率的模型。
利用語言模型丛楚,可以確定哪個(gè)詞序列的可能性更大族壳,或者給定若干個(gè)詞,可以預(yù)測下一個(gè)最可能出現(xiàn)的詞語趣些。
按照語言模型的演進(jìn)歷史仿荆,大體可分為三類:文法型語言模型、統(tǒng)計(jì)語言模型坏平、神經(jīng)概率語言模型拢操。
下面偷個(gè)懶,哈哈舶替,直接從我做論文分享時(shí)的做的PPT里粘貼出來:
n-gram語言模型的應(yīng)用非常廣泛令境,最早期的應(yīng)用是語音識別、機(jī)器翻譯等問題顾瞪。哈爾濱工業(yè)大學(xué)王曉龍教授最早將其應(yīng)用到音字轉(zhuǎn)換問題舔庶,提出了“語句級拼音輸入法”,后來該技術(shù)轉(zhuǎn)讓給微軟陈醒,也就是后來的微軟拼音輸入法惕橙。從windows95開始,系統(tǒng)就會自動安裝該輸入法钉跷,并在以后更高版本的windows中和Office辦公軟件都會集成最新的微軟拼音輸入法弥鹦。n年之后,各個(gè)輸入法的新秀(如搜狗和谷歌)也都采用了n-gram技術(shù)尘应。
基于神經(jīng)網(wǎng)絡(luò)的語言模型
Bengio 在 2003 年提出的神經(jīng)概率語言模型(Neural Probabilistic Language Model, NPLM)是影響較大的基于神經(jīng)網(wǎng)絡(luò)的語言模型1惶凝。其模型思想其實(shí)和 N-gram 語言模型還是同出一源,即基于 N-1 階馬爾可夫假設(shè)犬钢,認(rèn)為句子中某個(gè)詞是由其前面的 N-1 個(gè)詞決定的苍鲜。模型使用的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。
這個(gè)模型將 N-1 個(gè)詞的表示拼接起來作為輸入玷犹,然后去預(yù)測下一個(gè)詞最有可能是哪個(gè)混滔。輸出層會是一個(gè)很大的向量,每一維的值就是每一個(gè)可能的詞的條件概率,這樣要計(jì)算一個(gè)句子的概率也就沒問題了坯屿。
**這樣基于神經(jīng)網(wǎng)絡(luò)的語言模型有什么好處呢油湖? **
- N-gram 需要顯式存儲每個(gè) N-gram 的內(nèi)容和概率,于是模型體積會隨著語料的擴(kuò)充而膨脹领跛,但 NPLM 沒有這個(gè)問題乏德。
- N-gram 需要應(yīng)用各種平滑方法來解決零概率問題,但 NPLM 不存在這個(gè)問題吠昭,即使是語料中沒出現(xiàn)的 N-gram 喊括,依然能給出非 0 的概率值。
- 模型中會學(xué)習(xí)一個(gè)固定長度的向量來表示一個(gè)詞矢棚,且向量中各維度的值都是連續(xù)實(shí)值而非離散的 0/1 郑什,此即詞向量「Word Embedding」的較早形式。
2蒲肋、文末總結(jié)
理解各種語言模型蘑拯,是理解計(jì)算機(jī)如何處理語言、文本等信息的基礎(chǔ)兜粘,在NPLM模型中申窘,我們也提到了詞向量,這里后續(xù)深度學(xué)習(xí)技術(shù)能夠應(yīng)用到自然語言處理中來的一個(gè)重要的理論基礎(chǔ)孔轴,在學(xué)習(xí)深度學(xué)習(xí)在NLP中大展神威之前我們首先需要系統(tǒng)的了解詞向量的由來以及常用的表示形式偶洋,還有一個(gè)非常重要的獲取詞向量的工具---word2vec,它的理論來源可以理解為是作者Tomas Mikolov對NLPM模型的延伸拓展距糖。
有時(shí)間的話,我會繼續(xù)從詞向量-->word2vec-->doc2vec-->文本分類-->......的流程繼續(xù)往下寫牵寺,這也是我入門NLP時(shí)的學(xué)習(xí)路線悍引。