自然語言處理(NLP)學習筆記(二) NLP技術

2021-06-25 13:20:26 字數 2891 閱讀 8330

nlp

此為第二部分,漫談nlp相關技術。

說到nlp的相關技術,因為是要教會計算機理解人類語言嘛,所以先弄清楚語言在大腦中是怎麼產生的是很有必要的。歸納來說,目前人們認為語言在大腦中形成有下面兩種看法。

其一就是從理性主義的角度出發,認為人類的語言能力就好像是我們生來就會吃飯一樣是天生具備的。這派觀點的代表人物毫無疑問可以認為是喬姆斯基大神(如果您還不知道他是做什麼的,請google之)和他的生成語言學理論。喬大神認為,不管你現在或者將來要說的是哪一種語言,你和別人一樣生來就具備了和其他人一樣的語言能力。就好象我們現在所使用的電腦,打電腦一出場,bios就已經存在於晶元上了。同樣,打我們生出來,我們腦中就已經存在著了一套抽象的語言知識。這套抽象的語言知識賦予了你後期能夠學會各種各樣具體語言的能力。歸納來說,理性主義認為語言是由抽象的語言知識(或者說語言規則)所構成的。因此,從這個角度出發,如果我們能夠從理論上找到存在於人類腦中的這套語言知識,然後把它教給計算機,那麼就可以實現讓計算機和人一樣理解自然語言的目的。

而另一派觀點則從經驗主義的角度出發,認為所謂的先天的語言知識那完全是扯淡,如果存在的話那為啥吭哧了半天還弄不出乙個好的結果呢(對於這個效率的問題,其實人喬大神也說過,要想完全把人類內在的語言知識給形式化,那基本上是不可能的)。除此之外,觀察每個小孩子語言習得的過程,很多小孩子在學會使用這種語言的時候首先接觸到的並不是一套形式化的語法規則,而是聽多了、說多了,自然也就學會了。從這個事實出發,經驗派認為,人們之所以能夠學會、理解一種語言,是因為我生活在這種語言的環境中,聽到的語言都在我的腦中轉化為了語言片段,而這些語言片段在我下次使用它們的時候將作為模板和材料來構建出新的句子。比如說吧,你之前聽你附近的人說過下面的三個句子:

小狗吃蘋果。

桃子很好吃。

小貓和小狗都是動物。 ok

,從這三個句子中,你至少能夠知道,「桃子」和「蘋果」是一類東西,而「小貓」和「小狗」是一類東西。那麼,現在你看到一直你認為是「小貓」的生物在吃乙個你認為是「桃子」的東西,如果你想想別人描述這個現象,你就可以在你大腦中搜尋了,就好象搭積木一樣,你首先找到了「圖紙」——「小狗吃蘋果」貌似和這個情況很像;然後你找到了「材料」——「小貓」、「桃子」,貌似它們可以描述你看到的那兩個東西;然後,你就可以把「材料」用在「圖紙」中,通過替換「圖紙」中原有的「材料」來構建出新的句子——「小貓吃桃子」。

以上就是從理性主義和經驗主義兩種角度出發對自然語言的成因作出的解釋。相應的,應用在nlp中,我們也就得到了兩種nlp技術——理性主義的規則方法、經驗主義的統計方法。

所謂理性主義的經驗方法,就像上面我們已經提到的,就是通過語言學家的努力,總結出一套形式化的語言知識規則來應用於計算機,從而讓計算機能夠像人一樣根據這些知識來理解自然語言。舉個最簡單的利用語言知識規則來進行語言理解的例子。

首先呢,我們認為語言知識中有下面三條規則:

sp -> np vp

,np -> n,

vp -> v n.

其中,sp指句子,np指名詞短語,vp指動詞短語,n指名詞,v指動詞。上面三條規則表示的意義就是:乙個名詞短語加乙個動詞短語可以構成乙個句子,乙個名詞構成乙個名詞短語,而乙個動詞加乙個名詞可以構成乙個動詞短語。

除了有上面的三條規則外,我們還需要有一些語言知識,也就是說,那些詞是動詞,那些詞是名詞。比如說上文的例子吧,其中「小貓、小狗、桃子、蘋果」都是名詞,而「吃」是動詞。因此,有了這些,我們可以很容易的得到「小貓吃蘋果、小狗吃桃子」等句子。而對計算機來說,有了這些規則就可以很輕鬆的生成出我們想要的句子了,而且也可以通過規則對乙個句子進行句法分析從而進行句子的理解。

嗯,從上面的例子來看,這個方法挺好,它給出了我們想要的句子。但是在上篇筆記中我們也提到過,自然語言由於自身的靈活性以及二義性,對它進行類似的形式化處理是一件很頭疼的事情。不說其他的,還是上面我們所提到的三條規則以及已知的這幾個名詞和動詞,除了可以生成上面很好的句子外,還能夠生成諸如「蘋果吃小貓、桃子吃小狗」等這種無理取鬧、寫在卷子上只能被老師扣分的句子。所以要很完美地對我們的自然語言進行形式化描述,借孔子老人家的話說就是「路漫漫其修遠兮,吾將上下而求索」……

說了理性主義的規則方法,我們再來說說經驗主義的統計方法。所謂經驗主義方法,首先就是得有經驗,然後你才能有方法。因此在nlp中,這種研究方法在很大程度上依賴於語料庫,而語料庫也就是語言使用的經驗。在分析或者生成新句子的時候,也是根據這些已有的材料來進行。只說理論等於沒說,我們還是來看例子。

就說我們經常使用的拼音輸入法吧。它所依賴的技術其實就是經驗主義的統計方法。比如,我們還是輸入拼音串兒「yishishiweiyiju」。

首先呢,根據現代漢語的拼音規則,可以將這個串兒分為「yi shi shi wei yi ju」這六個音節,其中每乙個音節對應乙個漢字(對於xian這種的特例,也就是多一種可能性,這裡不再多說了)。

然後,就要開始在詞庫中進行尋找了,尋找著每乙個音節或每兩個音節所對應的可能的漢字,把它們從語料庫中全都找出來,這也就是提取材料的過程。比如說,通過查詢雙音節的對應,我們可以得到「意識 實時 示威 偎依 移居」、「儀式 事實 侍衛 位移 依據」、「遺失 實施 市委 唯一 一舉」等可能的組合情況。當然這裡我們只是列舉出了可能情況的很小一部分。

最後,所要做的工作就是在這些可能的結果中找到準確的答案。這個工作同樣是依賴於語料來做的。經驗主義認為,最準確的答案也就是在實際語料中出現最多的組合。因此,通過計算上面各個單位間的聯合概率等概率統計的方法,最終得到在實際語料中最可能出現的組合,也就是程式認為最準確的組合。

好了,上面我們通過例子對兩種方法做了簡要的介紹。或許您也已經看出來了,這兩種方法雖然各有道理,但也各有難處。首先是規則方法,它的最大難處就是語言知識構建起來比較頭疼,乙個句子分析系統幾千條規則有時還不能保證50%的準確率。而相對來說,概率方法就不用費神去做這些理論工作了,利用概率方法,你唯一要做的就是建乙個概率模型,然後找乙個符合條件的條件,剩下的事兒就交給程式進行計算吧。雖然這樣說來概率方法要簡單一些,但是概率方法嚴重依賴於用於訓練的語料庫的規模以及概率模型的好壞。因此,找到乙個好的概率模型以及蒐集整理更多語料建立更大的語料庫也是讓經驗主義者們最頭疼的事兒。

NLP自然語言處理

第1部分自然語言處理入門 1.1自然語言處理入門.mp4 第2部分hmm和crf 1.1crf模型簡介.mp4 1.1hmm模型介紹.mp4 1.2文字處理的基本方法 part1.mp4 2.1新聞主題分類任務 第4步 part2.mp4 第43部分rnn 1.1rnn模型小結.mp4 1.1rnn...

NLP自然語言處理

老實來講這課我一頭霧水滿腦袋問號 import numpy as np from collections import counter counttime 0 def seperate filename totalnum 0 郵件的總數 global counttime i 0 file open ...

筆記 自然語言處理NLP 概論

from 人文學院開設課程 1.2 nlp的方法 特點和規律 自然語言處理的研究始於機器翻譯。在語料庫建設方面 在語言知識庫的構建方面 這些工程的開發為語義知識體系的構建進行了有益的探索。計算語言學學會 association of computational linguistics,acl 出版的...