史上最強NLP知識集合:知識結構、發展歷程、導師名單

轉載自 數據簡化DataSimp 
作者 秦隴紀 
郭一璞 編輯 
量子位 報道 | 公衆號 QbitAI

本篇推送包含三篇文章,

《自然語言處理技術發展史十大里程碑》

《語言處理NLP知識結構》

《自然語言處理NLP國內研究方向機構導師》

總共超過20000字,量子位建議先碼再看。

自然語言處理技術發展史十大里程碑

文|秦隴紀,參考|黃昌寧、張小鳳、Sebatian Ruder

自然語言是人類獨有的智慧結晶。

自然語言處理(NaturalLanguage Processing,NLP)是計算機科學領域與人工智能領域中的一個重要方向,旨在研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。用自然語言與計算機進行通信,有着十分重要的實際應用意義,也有着革命性的理論意義。

由於理解自然語言,需要關於外在世界的廣泛知識以及運用操作這些知識的能力,所以自然語言處理,也被視爲解決人工智能完備(AI-complete)的核心問題之一。對自然語言處理的研究也是充滿魅力和挑戰的。

微軟亞洲研究院黃昌寧張小鳳在2013年發表論文,就過去50年以來自然語言處理(NLP)研究領域中的發現和發展要點進行闡述,其中包括兩個事實和三大重要成果。

近年來,自然語言處理的語料庫調查顯示如下兩個事實:

(1)對於句法分析來說,基於單一標記的短語結構規則是不充分的;單個標記的PSG規則不足以進行自然語言描述;

(2)PSG規則在文本語料庫中具有偏差分佈,即PSG規則的總數似乎不能夠涵蓋大型語料庫中發現的語言現象,這不符合語言學家的期望。短語結構規則在真實文本中的分佈呈現嚴重扭曲。換言之,有限數目的短語結構規則不能覆蓋大規模語料中的語法現象。這與原先人們的預期大相徑庭。

NLP技術發展歷程在很大程度上受到以上兩個事實的影響,在該領域中可以稱得上里程碑式的成果有如下三個:

(1)複雜特徵集和合一語法;

(2)語言學研究中的詞彙主義;

(3)語料庫方法和統計語言模型。業內人士普遍認爲,大規模語言知識的開發和自動獲取是NLP技術的瓶頸問題。因此,語料庫建設和統計學習理論將成爲該領域中的關鍵課題。

一、NLP研究傳統問題

自然語言處理(NLP)是計算機科學、信息工程和人工智能的子領域,涉及計算機和人類(自然)語言之間的交互,尤其是編程實現計算機處理和分析大量自然語言數據。自然語言處理的挑戰包括語音識別,自然語言理解和自然語言生成。

信息輸入、檢索、人機對話等需求增多,使自然語言處理(NLP)成爲21世紀初的熱門學科。從50年代機器翻譯和人工智能研究算起,NLP至今有長達半個世紀的歷史了。

近年來這一領域中里程碑式的理論和方法貢獻有如下三個:

(1)複雜特徵集和合一語法;

(2)語言學研究中的詞彙主義;

(3)語料庫方法和統計語言模型。

這三個成果將繼續對語言學、計算語言學和NLP的研究產生深遠影響。爲了理解這些成果的意義,先介紹一下兩個相關事實。

自然語言處理中識別句子句法結構的句法分析的全過程:

(1)把句子中的詞一個一個地切分出來;

(2)查詞典,給句子中的每個詞指派一個合適的詞性(part of speech);

(3)用句法規則把句子裏包含的句法成分,如名詞短語、動詞短語、小句等,逐個地識別出來。

(4)判斷每個短語的句法功能,如主語、謂語、賓語等,及其語義角色,最終得到句子的意義表示,如邏輯語義表達式。

1.1 事實一:語言的結構歧義問題

第一個事實(黃昌寧,張小鳳,2013)是:短語結構語法(PhraseStructure Grammar,簡稱PSG)不能有效地描寫自然語言。

PSG在Chomsky的語言學理論[1]中佔有重要地位,並且在自然語言的句法描寫中擔當着舉足輕重的角色。但是它有一些根本性的弱點,主要表現爲它使用的是像詞類和短語類那樣的單一標記,因此不能有效地指明和解釋自然語言中的結構歧義問題。

讓我們先來看一看漢語中“V+N”組合。假如我們把“打擊,委託,調查”等詞指派爲動詞(V);把“力度,方式,盜版,甲方”等詞視爲名詞(N),而且同意“打擊力度”、“委託方式”是名詞短語(NP),“打擊盜版”、“委託甲方”是動詞短語(VP),那麼就會產生如下兩條有歧義的句法規則:

(1) NP → V N

(2) VP → V N

換句話講,當計算機觀察到文本中相鄰出現的“V+N”詞類序列時,仍不能確定它們組成的究竟是NP還是VP。我們把這樣的歧義叫做“短語類型歧義”。例如:

• 該公司正在招聘[銷售V人員N]NP。

• 地球在不斷[改變V形狀N]VP。

下面再來看“N+V”的組合,也同樣會產生帶有短語類型歧義的規則對,如:

(3) NP → N V 例:市場調查;政治影響。

(4) S → N V 例:價格攀升;局勢穩定。

其中標記S代表小句。

不僅如此,有時當機器觀察到相鄰出現的“N+V”詞類序列時,甚至不能判斷它們是不是在同一個短語中。也就是說,“N+V”詞類序列可能組成名詞短語NP或小句S,也有可能根本就不在同一個短語裏。後面這種歧義稱爲“短語邊界歧義”。下面是兩個相關的例句:

• 中國的[鐵路N建設V]NP發展很快。

• [中國的鐵路N]NP建設V得很快。

前一個例句中,“鐵路建設”組成一個NP;而在後一個例句中,這兩個相鄰的詞卻分屬於兩個不同的短語。這足以說明,基於單一標記的PSG不能充分地描述自然語言中的句法歧義現象。下面讓我們再來看一些這樣的例子。

(5)NP → V N1de N2

(6)VP → V N1de N2

其中de代表結構助詞“的”。例如,“[削蘋果]VP的刀”是NP; 而“削[蘋果的皮]NP”則是VP。這裏既有短語類型歧義,又有短語邊界歧義。比如,“削V蘋果N”這兩個相鄰的詞,可能構成一個VP,也可能分處於兩個相鄰的短語中。

(7)NP → P N1de N2

(8)PP → P N1de N2

規則中P和PP分別表示介詞和介詞短語。例如,“[對上海]PP的印象”是NP; 而“對[上海的學生]NP”則是PP。相鄰詞“對P 上海N”可能組成一個PP,也可能分處於兩個短語中。

(9)NP → NumPN1 de N2

其中NumP 表示數量短語。規則(9)雖然表示的是一個NP,但可分別代表兩種結構意義:

(9a)NumP [N1de N2]NP 如:五個[公司的職員]NP

(9b)[NumPN1]NP de N2 如:[五個公司]NP 的職員

(10)NP → N1 N2N3

規則(10)表示的也是一個NP,但“N1+ N2”先結合,還是“N2 +N3”先結合,會出現兩種不同的結構方式和意義,即:

(10a)[N1 N2]NPN3 如:[現代漢語]NP 詞典

(10b)N1 [N2N3]NP 如:新版[漢語詞典]NP

以上討論的第一個事實說明:

! 由於約束力不夠,單一標記的PSG規則不能充分消解短語類型和短語邊界的歧義。用數學的語言來講,PSG規則是必要的,卻不是充分的。因此機器僅僅根據規則右邊的一個詞類序列來判斷它是不是一個短語,或者是什麼短語,其實都有某種不確定性。

! 採用複雜特徵集和詞彙主義方法來重建自然語言的語法系統,是近二十年來全球語言學界就此作出的最重要的努力。

1.2 事實二:詞頻統計的齊夫律

通過大規模語料的調查,人們發現一種語言的短語規則的分佈也符合所謂的齊夫率(Zipf’s Law)

Zipf是一個統計學家和語言學家。他提出,如果對某個語言單位(不論是英語的字母或詞)進行統計,把這個語言單位在一個語料庫裏出現的頻度(frequency)記作F,而且根據頻度的降序對每個單元指派一個整數的階次(rank) R。結果發現R和F的乘積近似爲一個常數。即

F*R ≈ const (常數)

被觀察的語言單元的階次R與其頻度F成反比關係。詞頻統計方面齊夫律顯示,不管被考察的語料僅僅一本長篇小說,還是一個大規模的語料庫,最常出現的100個詞的出現次數會佔到語料庫總詞次數(tokens)的近一半。

假如語料庫的規模是100萬詞次,那麼其中頻度最高的100個詞的累計出現次數大概是50萬詞次。如果整個語料庫含有5萬詞型(types),那麼其中的一半(也就是2.5萬條左右)在該語料庫中只出現過一次。即使把語料庫的規模加大十倍,變成1000萬詞次,統計規律大體不變。

有趣的是,80年代英國人Sampson對英語語料庫中的PSG規則進行統計,發現它們的分佈同樣是扭曲的,大體表現爲齊夫率。也就是說,一方面經常遇到的語法規則只有幾十條左右,它們的出現頻度非常非常高;另一方面,規則庫中大約一半左右的規則在語料庫中只出現過一次。

隨着語料庫規模的擴大,新的規則仍不斷呈現。Noam Chomsky曾提出過這樣的假設,認爲對一種自然語言來說,其語法規則的數目總是有限的,但據此生成的句子數目卻是無限的。但語料庫調查的結果不是這個樣子。這個發現至少說明,單純依靠語言學家的語感來編寫語法規則不可能勝任大規模真實文本處理的需求,必須尋找可以從語料庫中直接獲取大規模語言知識的新方法。

幾十年來,NLP學界曾發表過許多燦爛成果,有詞法學、語法學、語義學的,有句法分析算法的,還有衆多著名的自然語言應用系統。那麼究竟什麼是對該領域影響最大的、里程碑式的成果呢?

二、NLP十大里程碑

2.1 里程碑一:1985複雜特徵集

複雜特徵集(complex feature set)又叫做多重屬性(multiple features)描寫。語言學裏,這種描寫方法最早出現在語音學中。美國計算語言學家Martin Kay於1985年在“功能合一語法”(FunctionalUnification Grammar,簡稱FUG)新語法理論中,提出“複雜特徵集”(complex feature set)概念。後來被Chomsky學派採用來擴展PSG的描寫能力。

640?wx_fmt=png

 美國計算語言學家Martin Kay

現在在語言學界、計算語言學界,語法系統在詞彙層的描寫中常採用複雜特徵集,利用這些屬性來強化句法規則的約束力。一個複雜特徵集F包含任意多個特徵名fi和特徵值vi對。其形式如:

F = {…, fi=vi, …}, i=1,…,n

特徵值vi既可以是一個簡單的數字或符號,也可以是另外一個複雜特徵集。這種遞歸式的定義使複雜特徵集獲得了強大的表現能力。舉例來說,北京大學俞士汶開發的《現代漢語語法信息詞典》[10],對一個動詞定義了約40項屬性描寫,對一個名詞定義了約27項屬性描寫。

一條含有詞彙和短語屬性約束的句法規則具有如下的一般形式:

: <屬性約束>

: <屬性傳遞>

一般來說,PSG規則包括右部(條件:符號序列的匹配模式)和左部(動作:短語歸併結果)。詞語的“屬性約束”直接來自系統的詞庫,而短語的“屬性約束”則是在自底向上的短語歸併過程中從其構成成分的中心語(head)那裏繼承過來的。在Chomsky的理論中這叫做X-bar理論

X-bar代表某個詞類X所構成的、仍具有該詞類屬性的一個成分。如果X=N,就是一個具有名詞特性的N-bar。當一條PSG規則的右部匹配成功,且“屬性約束”部分得到滿足,這條規則才能被執行。此時,規則左部所命名的的短語被生成,該短語的複雜特徵集通過“屬性傳遞”部分動態生成。

80年代末、90年代初學術界提出了一系列新的語法,如廣義短語結構語法(GPSG)、中心語驅動的短語結構語法(HPSG)、詞彙功能語法(LFG)等等。這些形式語法其實都是在詞彙和短語的複雜特徵集描寫背景下產生的。合一(unification)算法則是針對複雜特徵集的運算而提出來的。“合一”是實現屬性匹配和賦值的一種算法,所以上述這些新語法又統稱爲“基於合一的語法”。

2.2 里程碑二:1966詞彙主義

NLP領域第二個里程碑式貢獻是詞彙主義(lexicalism)。

1966年,韓禮德(Halliday)提出詞彙不是用來填充語法確定的一套“空位”(slots),而是一個獨立的語言學層面;詞彙研究可以作爲對語法理論的補充,卻不是語法理論的一部分,他主張把詞彙從語法研究中獨立地分離出來。

語言學家Hudson宣稱,詞彙主義是當今語言學理論頭號發展傾向。出現原因也同上節兩事實有關。詞彙主義方法不僅提出一種顆粒度更細的語言知識表示形式,而且體現一語言知識遞增式開發和積累的新思路。

首先解釋一個背景矛盾。

一方面,語言學界一向認爲,不劃分詞類就無法講語法,如前面介紹的短語結構語法,語法“不可能”根據個別單獨的詞來寫規則。但是另一方面,人們近來又注意到,任何歸類其實都會丟失個體的某些重要信息。所以從前文提到的第一個事實出發,要想強化語法約束能力,詞彙的描寫應當深入到比詞類更細微的詞語本身上來。

換句話講,語言學呼喚在詞彙層採用顆粒度更小的描寫單元。從本質上來說,詞彙主義傾向反映了語言描寫的主體已經從句法層轉移到了詞彙層;這也就是所謂的“小語法,大詞庫”的思想。下面讓我們來看與詞彙主義有關的一些工作。

2.2.1 詞彙語法學(Lexicon-grammar)

法國巴黎大學Gross教授60年代創立研究中心LADL(http://www.ladl.jussieu.fr/),提出了詞彙語法的概念。

• 把12,000個主要動詞分成50個子類。

• 每個動詞都有一個特定的論元集。

• 每一類動詞都有一個特定的矩陣, 其中每個動詞都用400個不同句式來逐一描寫(“+”代表可進入該句式;“-”表示不能)。

• 已開發英、法、德、西等歐洲語言的大規模描寫。

• INTEX是一個適用於大規模語料分析的工具,已先後被世界五十多個研究中心採用。

2.2.2 框架語義學(Frame Semantics)

Fillmore是格語法(Case Grammar)創始人,前幾年主持美國自然科學基金的一個名爲框架語義學的項目(http://www.icsi.berkeley.edu/~framenet)。該項目從WordNet上選取了2000個動詞,從中得到75個語義框架。例如,動詞”categorize”的框架被定義爲:

一個人(Cognizer)把某個對象(Item)視爲某個類(Category)。

同原先的格框架相比,原來一般化的動作主體被具體化爲認知者Cognizer,動作客體被具體化爲事物Item,並根據特定體動詞的性質增加了一個作爲分類結果的語義角色Category。

項目組還從英國國家語料庫中挑出50,000個相關句子,通過人工給每個句子標註了相應的語義角色。例句:

Kimcategorized the book as fiction.

(Cog) (Itm)(Cat)

2.2.3 WordNet

WordNet(http://www.cogsci.princeton.edu:80/~wn/)是一個描寫英語詞彙層語義關係的詞庫,1990年由普林斯頓大學Miller開發。至今有很多版本,全部公佈在因特網上,供研究人員自由下載。

歐洲有一個Euro-WordNet,以類似的格式來表現各種歐洲語言的詞彙層語義關係。WordNet刻意描寫的是詞語之間的各種語義關係,如同義關係(synonymy)、反義關係(antonymy)、上下位關係(hyponymy),部分-整體關係(part-of)等等。

這種詞彙語義學又叫做關係語義學,這一學派同傳統的語義場理論和和語義屬性描寫理論相比,其最大的優勢在於第一次在一種語言的整個詞彙表上實現了詞彙層的語義描寫。這是其他學派從來沒有做到的。其他理論迄今僅僅停留在教科書或某些學術論文中,從來就沒有得到工程規模的應用。下面是WordNet的概況:

• 95,600條實詞詞型(動詞、名詞、形容詞)

• 被劃分成70,100個同義詞集(synsets)

2.2.4 知網網(How-Net)

知網是董振東和董強設計的一個漢語語義知識網(http://www.keenage.com),訪問只有主頁。

• 自下而上地依據概念對漢語實詞進行了窮盡的分類。

• 15,000個動詞被劃分成810類。

• 定義了300個名詞類,100個形容詞類。

• 全部概念用400個語義元語來定義。

知網特點是既有WordNet所描寫的同一類詞間語義關係(如:同義、反義、上下位、部分-整體等),又描寫不同類詞之間的論旨關係和語義角色。

2.2.5 MindNet

MindNet是微軟研究院NLP組設計的詞彙語義網(http://research.microsoft.com/nlp/),用三元組(triple)作爲全部知識的表示基元。一個三元組由兩個節點和一條連接邊組成。每個節點代表一個概念,連接兩個概念節點的邊表示概念之間的語義依存關係。全部三元組通過句法分析器自動獲取。

具體通過對兩部英語詞典(Longman Dictionaryof Contemporary English,AmericanHeritage Dictionary)和一部百科全書(Encarta)中的全部句子進行分析,獲得每個句子的邏輯語義表示(logical form,簡稱LF)。

而LF本來就是由三元組構成的,如(W1, V-Obj,W2)表示:W1是一個動詞,W2是其賓語中的中心詞,因此W2從屬於W1,它們之間的關係是V-Obj。比如(play, V-Obj,basketball)便是一個具體的三元組。又如(W1, H-Mod,W2),W1代表一個偏正短語中的中心詞(head word),W2是其修飾語(modifier),因此W2從屬於W1,它們之間的關係是H-Mod。

這種資源是完全自動做出來的,所得三元組不可能沒有錯誤。但是那些出現頻度很高的三元組一般來說正確。MindNet已經應用到像語法檢查、句法結構排歧、詞義排歧、機器翻譯等許多場合。

2.3 里程碑三:1976統計語言模型

第三大貢獻是語料庫方法,或叫統計語言模型。

首先成功利用數學方法解決自然語言處理問題的是語音和語言處理大師弗雷德·賈里尼克(Fred Jelinek)。1968年始在IBM研究中心兼職1974年全職加入,他領導一批傑出科學家利用大型計算機處理人類語言問題,學術休假(SabbaticalLeave)時(約1972-1976年間)提出統計語言模型。

1990s李開復用統計語言模型把997個詞的語音識別問題簡化成了20詞識別問題,實現了有史以來第一次大詞彙量非特定人連續語言的識別。常用統計語言模型,包括N元文法模型(N-gram Model)、隱馬爾科夫模型(Hidden MarkovModel,簡稱HMM)、最大熵模型(MaximumEntropy Model)等。

640?wx_fmt=png

 美國工程院院士Frederick Jelinek

如果用變量W代表一個文本中順序排列的n個詞,即W = w1w2…wn,則統計語言模型的任務是給出任意一個詞序列W在文本中出現的概率P(W)

利用概率的乘積公式,P(W)可展開爲:

P(W) =P(w1)P(w2/w1)P(w3/ w1 w2)…P(wn/w1 w2…wn-1) (1)

式中P(w1)表示第一個詞w1的出現概率,P(w2/w1)表示在w1出現的情況下第二個詞w2出現的條件概率,依此類推。

不難看出,爲了預測詞wn的出現概率,必須已知它前面所有詞的出現概率。從計算上來看,這太複雜了。如果近似認爲任意一個詞wi的出現概率只同它緊鄰的前一個詞有關,那麼計算就得以大大簡化。這就是所謂的二元模型(bigram),由(1)式得:

P(W) ≈ P(w1)∏i=2,…,nP(wi/ wi-1 ) (2)

式中∏i=2,…,nP(wi/ wi-1 )表示多個概率的連乘。

需要着重指出的是:這些概率參數都可以通過大規模語料庫來估值。比如二元概率

P(wi/ wi-1) ≈count(wi-1 wi) / count(wi-1) (3)

式中count(…)表示一個特定詞序列在整個語料庫中出現的累計次數。若語料庫的總詞次數爲N,則任意詞wi在該語料庫中的出現概率可估計如下:

P(wi) ≈count(wi) / N (4)

同理,如果近似認爲任意詞wi的出現只同它緊鄰前兩個詞有關,就得到一個三元模型(trigram):

P(W) ≈P(w1)P(w2/w1) ∏i=3,…,nP(wi/wi-2 w-1 ) (5)

統計語言模型的方法有點像天氣預報。用來估計概率參數的大規模語料庫好比是一個地區歷年積累起來的氣象記錄,而用三元模型來做天氣預報,就像是根據前兩天的天氣情況來預測當天的天氣。天氣預報當然不可能百分之百正確。這也算是概率統計方法的一個特點。

2.3.1 語音識別

語音識別作爲計算機漢字鍵盤輸入的一種圖代方式,越來越受到信息界人士的青睞。所謂聽寫機就是這樣的商品。據報道中國的移動電話用戶已超過一億,隨着移動電話和個人數字助理(PDA)的普及,尤其是當這些隨身攜帶的器件都可以無線上網的時候,廣大用戶更迫切期望通過語音識別或手寫板而不是小鍵盤來輸入簡短的文字信息。

其實,語音識別任務可視爲計算以下條件概率的極大值問題:

W*= argmaxWP(W/speech signal)

= argmaxWP(speech signal/W) P(W) / P(speech signal)

= argmaxWP(speech signal/W) P(W) (6)

式中數學符號argmaxW表示對不同的候選詞序列W計算條件概率P(W/speech signal)的值,從而使W*成爲其中條件概率值最大的那個詞序列,這也就是計算機選定的識別結果。換句話講,通過式(6)的計算,計算機找到了最適合當前輸入語音信號speech signal的詞串W。

式(6)第二行是利用貝葉斯定律轉寫的結果,因爲條件概率P(speech signal/W)比較容易估值。公式的分母P(speech signa)對給定的語音信號是一個常數,不影響極大值的計算,故可以從公式中刪除。在第三行所示的結果中,P(W)就是前面所講得統計語言模型,一般採用式(5)所示的三元模型;P(speechsignal/W)叫做聲學模型

講到這兒,細心的讀者可能已經明白,漢語拼音輸入法中的拼音-漢字轉換任務其實也是用同樣方法實現的,而且兩者所用的漢語語言模型(即二元或三元模型)是同一個模型。

據筆者所知,目前市場上的聽寫機產品和微軟拼音輸入法(3.0版)都是用詞的三元模型實現的,幾乎完全不用句法-語義分析手段。爲什麼會出現這樣的局面呢?這是優勝劣汰的客觀規律所決定的。可比的評測結果表明,用三元模型實現的拼音-漢字轉換系統,其出錯率比其它產品減少約50%。

2.3.2 詞性標註

一個詞庫中大約14%的詞型具有不只一個詞性。而在一個語料庫中,佔總詞次數約30%的詞具有不止一個詞性。所以對一個文本中的每一個詞進行詞性標註,就是通過上下文的約束,實現詞性歧義的消解。歷史上曾經先後出現過兩個自動詞性標註系統。一個採用上下文相關的規則,叫做TAGGIT(1971),另一個應用詞類的二元模型,叫做CLAWS(1987)。

兩個系統都分別對100萬詞次的英語非受限文本實施了詞性標註。結果顯示,採用統計語言模型的CLAWS系統的標註正確率大大高於基於規則方法的TAGGIT系統。請看下錶的對比:

640?wx_fmt=png

令C和W分別代表詞類標記序列和詞序列,則詞性標註問題可視爲計算以下條件概率的極大值:

C*= argmaxCP(C/W)

= argmaxCP(W/C)P(C) / P(W)

≈ argmaxC∏i=1,…,nP(wi/ci )P(ci /ci-1 ) (7)

式中P(C/W)是已知輸入詞序列W的情況下,出現詞類標記序列C的條件概率。數學符號argmaxC表示通過考察不同的候選詞類標記序列C,來尋找使條件概率取最大值的那個詞類標記序列C*。後者應當就是對W的詞性標註結果。

公式第二行是利用貝葉斯定律轉寫的結果,由於分母P(W)對給定的W是一個常數,不影響極大值的計算,可以從公式中刪除。接着對公式進行近似。首先,引入獨立性假設,認爲任意一個詞wi的出現概率近似只同當前詞的詞類標記ci有關,而與周圍(上下文)的詞類標記無關。於是詞彙概率可計算如下:

P(W/C) ≈∏i=1,…,n P(wi/ci ) (8)

其次,採用二元假設,即近似認爲任意一個詞類標記ci的出現概率只同它緊鄰的前一個詞類標記ci-1有關。有

P(C) ≈ P(c1)∏i=2,…,n P(ci /ci-1 ) (9)

P(ci /ci-1 )是詞類標記的轉移概率,也叫做基於詞類的二元模型。

上述這兩個概率參數都可以通過帶詞性標記的語料庫來分別估計:

P(wi/ci ) ≈count(wi,ci) / count(ci) (10)

P(ci /ci-1 ) ≈count(ci-1ci) / count(ci-1) (11)

據文獻報道,採用統計語言模型方法漢語和英語的次性標註正確率都可以達到96%左右[6]。

2.3.3 介詞短語PP的依附歧義

英語中介詞短語究竟依附於前面的名詞還是前面的動詞,是句法分析中常見的結構歧義問題。下例用語料庫方法來解決這個問題,以及這種方法究竟能達到多高的正確率。

例句:Pierre Vinken,61 years old, joined the board as a nonexecutive director.

令A=1表示名詞依附,A=0爲動詞依附,則上述例句的PP依附問題可表爲:

(A=0,V=joined, N1=board, P=as, N2=director)

令V, N1, N2分別代表句中動詞短語、賓語短語、介賓短語的中心詞,並在一個帶有句法標註的語料庫(又稱樹庫)中統計如下四元組的概率Pr:

Pr = (A=1 /V=v, N1=n1, P=p, N2=n2) (10)

對輸入句子進行PP 依附判斷的算法如下:

若Pr = (1 / v, n1, p, n2) ≥ 0.5,

則判定PP依附於n1,

否則判定PP依附於v。

Collins和Brooks實驗使用的語料庫是賓夕法尼亞大學標註的華爾街日報(WSJ)樹庫,包括:訓練集20,801個四元組,測試集3,097個四元組。他們對PP依附自動判定精度的上下限作了如下分析:

一律視爲名詞依附(即A≡1) 59.0%

只考慮介詞p的最常見附加72.2%

三位專家只根據四個中心詞判斷88.2%

三位專家根據全句判斷93.2%

很明顯,自動判斷精確率的下限是72.2%,因爲機器不會比只考慮句中介詞p的最常見依附做得更差了;上限是88.2%,因爲機器不可能比三位專家根據四個中心詞作出的判斷更高明。

論文報告,在被測試的3,097個四元組中,系統正確判斷的四元組爲2,606個,因此平均精確率爲84.1%。這與上面提到的上限值88.2%相比,應該說是相當不錯的結果。

傳統三大技術里程碑小結

語言學家在不論是複雜特徵集和合一語法,還是詞彙主義方法,都是原先所謂的理性主義框架下做出的重大貢獻。詞彙主義方法提出了一種顆粒度更細的語言知識表示形式,而且體現了一種語言知識遞增式開發和積累的新思路,值得特別推崇。

尤其值得重視的是,在衆多詞彙資源的開發過程中,語料庫和統計學習方法發揮了很大的作用。這是經驗主義方法和理性主義方法相互融合的可喜開端,也是國內知名語言學者馮志偉等人認可的研究範式。

語料庫方法和統計語言模型,國內同行中實際上存在不同評價。有種觀點認爲NLP必須建立在語言理解基礎上,他們不大相信統計語言模型在語音識別、詞性標註、信息檢索等應用領域中所取得的進展。這些爭論不能澄清,是因爲同行間缺少統一評測。有評測纔會有鑑別。

評判某方法優劣應公開、公平、相互可比的評測標準,而非研究員設計“自評”。黃昌寧、張小鳳2013年論文表示,語料庫方法和統計語言模型是當前自然語言處理技術的主流,其實用價值已在很多應用系統中得到充分證實。統計語言模型研究在結構化對象的統計建模方面,仍有廣闊發展空間。

自然語言處理領域業界知名博主Sebatian Ruder在2018年文章從神經網絡技術角度,總結NLP領域近15年重大進展、8大里程碑事件,提及很多神經網絡模型。這些模型建立在同一時期非神經網絡技術之上,如上述三大里程碑。下面接着看後續NLP技術的發展。

2.4 里程碑四:2001神經語言模型(Neural language models)

語言模型解決的是在給定已出現詞語的文本中,預測下一個單詞的任務。這是最簡單的語言處理任務,有許多具體實際應用,如智能鍵盤、電子郵件回覆建議等。語言模型歷史由來已久,經典方法基於n-grams模型(利用前面n個詞語預測下一個單詞),並利用平滑操作處理不可見的n-grams。

第一個神經語言模型,前饋神經網絡(feed-forward neural network),是Bengio等人於2001年提出的。模型以某詞語之前出現的n個詞語作爲輸入向量,也就是現在大家說的詞嵌入(word embeddings)向量。這些詞嵌入在級聯後進入一個隱藏層,該層的輸出然後通過一個softmax層。如圖3所示。

640?wx_fmt=png

 前饋神經網絡語言模型

而現在構建語言模型的前饋神經網絡,已被循環神經網絡(RNNs)和長短期記憶神經網絡(LSTMs)取代。

雖然後來提出許多新模型在經典LSTM上進行了擴展,但它仍然是強有力的基礎模型。甚至Bengio等人的經典前饋神經網絡在某些設定下也和更復雜的模型效果相當,因爲這些任務只需要考慮鄰近的詞語。理解這些語言模型究竟捕捉了哪些信息,也是當今一個活躍的研究領域。

語言模型的建立是一種無監督學習(unsupervisedlearning),Yann LeCun稱之爲預測學習(predictivelearning),是獲得世界如何運作常識的先決條件。

關於語言模型最引人注目的是,儘管它很簡單,但卻與後文許多核心進展息息相關。反過來,這也意味着NLP領域許多重要進展都可以簡化爲某種形式的語言模型構建。但要實現對自然語言真正意義上的理解,僅僅從原始文本中進行學習是不夠的,我們需要新的方法和模型。

2.5 里程碑五:2008多任務學習(Multi-task learning)

多任務學習是在多個任務下訓練的模型之間共享參數的方法,在神經網絡中通過捆綁不同層的權重輕鬆實現。多任務學習思想1993年Rich Caruana首次提出,並應用於道路追蹤和肺炎預測。多任務學習鼓勵模型學習對多個任務有效的表徵描述。這對於學習一般的、低級的描述形式、集中模型的注意力或在訓練數據有限的環境中特別有用。

多任務學習2008年被Collobert和Weston等人首次在自然語言處理領域應用於神經網絡。在他們的模型中,詞嵌入矩陣被兩個在不同任務下訓練的模型共享,如圖4所示。

640?wx_fmt=png

 詞嵌入矩陣共享

共享的詞嵌入矩陣使模型可以相互協作,共享矩陣中的低層級信息,而詞嵌入矩陣往往構成了模型中需要訓練的絕大部分參數。

Collobert和Weston發表於2008年的論文,影響遠遠超過了它在多任務學習中的應用。它開創的諸如預訓練詞嵌入和使用卷積神經網絡處理文本的方法,在接下來的幾年被廣泛應用。他們也因此獲得2018年機器學習國際會議(ICML)的test-of-time獎。

如今,多任務學習在自然語言處理領域廣泛使用,而利用現有或“人工”任務已經成爲NLP指令庫中的一個有用工具。

雖然參數的共享是預先定義好的,但在優化的過程中卻可以學習不同的共享模式。當模型越來越多地在多個任務上進行測評以評估其泛化能力時,多任務學習就變得愈加重要,近年來也涌現出更多針對多任務學習的評估基準。

2.6 里程碑六:2013詞嵌入

稀疏向量對文本進行表示的詞袋模型,在自然語言處理領域有很長曆史。而用稠密的向量對詞語進行描述,也就是詞嵌入,則在2001年首次出現。2013年Mikolov等人工作主要創新之處在於,通過去除隱藏層和近似計算目標使詞嵌入模型的訓練更爲高效。

儘管這些改變本質上十分簡單,但它們與高效的word2vec(wordto vector用來產生詞向量的相關模型)組合在一起,使得大規模的詞嵌入模型訓練成爲可能。

Word2vec有兩種不同的實現方法:CBOW(continuousbag-of-words)和skip-gram。它們在預測目標上有所不同:一個是根據周圍的詞語預測中心詞語,另一個則恰恰相反。如圖5所示。

640?wx_fmt=png

 CBOW和skip-gram架構

雖然這些嵌入與使用前饋神經網絡學習的嵌入在概念上沒有區別,但是在一個非常大語料庫上的訓練使它們能夠獲取諸如性別、動詞時態和國際事務等單詞之間的特定關係。如下圖 4 所示。

640?wx_fmt=png

 word2vec捕獲的聯繫

這些關係和它們背後的意義激起了人們對詞嵌入的興趣,許多研究都在關注這些線性關係的來源。然而,使詞嵌入成爲目前自然語言處理領域中流砥柱的,是將預訓練的詞嵌入矩陣用於初始化可以提高大量下游任務性能的事實。

雖然word2vec捕捉到的關係具有直觀且幾乎不可思議的特性,但後來的研究表明,word2vec本身並沒有什麼特殊之處:詞嵌入也可以通過矩陣分解來學習,經過適當的調試,經典的矩陣分解方法SVD和LSA都可以獲得相似的結果。從那時起,大量的工作開始探索詞嵌入的不同方面。儘管有很多發展,word2vec仍是目前應用最爲廣泛的選擇。

Word2vec應用範圍也超出了詞語級別:帶有負採樣的skip-gram——一個基於上下文學習詞嵌入的方便目標,已經被用於學習句子的表徵。它甚至超越了自然語言處理的範圍,被應用於網絡和生物序列等領域。

一個激動人心的研究方向是在同一空間中構建不同語言的詞嵌入模型,以達到(零樣本)跨語言轉換的目的。通過無監督學習構建這樣的映射變得越來越有希望(至少對於相似的語言來說),這也爲語料資源較少的語言和無監督機器翻譯的應用程序創造可能。

2.7 里程碑七:2013RNN/CNN用於NLP的神經網絡

2013和2014年是自然語言處理領域神經網絡時代的開始。其中三種類型的神經網絡應用最爲廣泛:循環神經網絡(recurrentneural networks)、卷積神經網絡(convolutionalneural networks)和結構遞歸神經網絡(recursiveneural networks)。

循環神經網絡是NLP領域處理動態輸入序列最自然的選擇。Vanilla循環神經網絡很快被經典的長短期記憶網絡(long-shorttermmemory networks,LSTM)代替,該模型能更好地解決梯度消失和梯度爆炸問題。

在2013年之前,人們仍認爲循環神經網絡很難訓練,直到Ilya Sutskever博士的論文改變了循環神經網絡這一名聲。雙向的長短期記憶記憶網絡通常被用於同時處理出現在左側和右側的文本內容。LSTM 結構如圖7所示。

640?wx_fmt=png

 LSTM網絡

應用於文本的卷積神經網絡只在兩個維度上進行操作,卷積層只需要在時序維度上移動即可。圖8展示了應用於自然語言處理的卷積神經網絡的典型結構。

640?wx_fmt=png

 卷積神經網絡

與循環神經網絡相比,卷積神經網絡的一個優點是具有更好的並行性。

因爲卷積操作中每個時間步的狀態只依賴於局部上下文,而不是循環神經網絡中那樣依賴於所有過去的狀態。卷積神經網絡可以使用更大的卷積層涵蓋更廣泛的上下文內容。卷積神經網絡也可以和長短期記憶網絡進行組合和堆疊,還可以用來加速長短期記憶網絡的訓練。

循環神經網絡和卷積神經網絡都將語言視爲一個序列。但從語言學的角度來看,語言是具有層級結構的:詞語組成高階的短語和小句,它們本身可以根據一定的產生規則遞歸地組合。這激發了利用結構遞歸神經網絡,以樹形結構取代序列來表示語言的想法,如圖9所示。

640?wx_fmt=png

 結構遞歸神經網絡

結構遞歸神經網絡自下而上構建序列的表示,與從左至右或從右至左對序列進行處理的循環神經網絡形成鮮明的對比。樹中的每個節點是通過子節點的表徵計算得到的。一個樹也可以視爲在循環神經網絡上施加不同的處理順序,所以長短期記憶網絡則可以很容易地被擴展爲一棵樹。

不只是循環神經網絡和長短期記憶網絡可以擴展到使用層次結構,詞嵌入也可以在語法語境中學習,語言模型可以基於句法堆棧生成詞彙,圖形卷積神經網絡可以樹狀結構運行。

2.8 里程碑八:2014序列到序列模型(Sequence-to-sequencemodels)

2014年,Sutskever等人提出序列到序列學習,即使用神經網絡將一個序列映射到另一個序列的一般化框架。在這個框架中,一個作爲編碼器的神經網絡對句子符號進行處理,並將其壓縮成向量表示;然後,一個作爲解碼器的神經網絡根據編碼器的狀態逐個預測輸出符號,並將前一個預測得到的輸出符號作爲預測下一個輸出符號的輸入。如圖10所示。

640?wx_fmt=png

 序列到序列模型

機器翻譯是這一框架的殺手級應用。2016年,谷歌宣佈他們將用神經機器翻譯模型取代基於短語的整句機器翻譯模型。谷歌大腦負責人Jeff Dean表示,這意味着用500行神經網絡模型代碼取代50萬行基於短語的機器翻譯代碼。

由於其靈活性,該框架在自然語言生成任務上被廣泛應用,其編碼器和解碼器分別由不同的模型來擔任。更重要的是,解碼器不僅可以適用於序列,在任意表示上均可以應用。比如基於圖片生成描述(如圖11)、基於表格生成文本、根據源代碼改變生成描述,以及衆多其他應用。

640?wx_fmt=png

 基於圖像生成標題(Vinyalset al., 2015)

序列到序列的學習甚至可以應用到自然語言處理領域常見的結構化預測任務中,也就是輸出具有特定的結構。爲簡單起見,輸出就像選區解析一樣被線性化(如圖12)。在給定足夠多訓練數據用於語法解析的情況下,神經網絡已經被證明具有產生線性輸出和識別命名實體的能力。

640?wx_fmt=png

 線性化選區解析樹(Vinyalset al., 2015)

序列的編碼器和解碼器通常都是基於循環神經網絡,但也可以使用其他模型。新的結構主要都從機器翻譯的工作中誕生,它已經成了序列到序列模型的培養基。近期提出的模型有深度長短期記憶網絡、卷積編碼器、Transformer(一個基於自注意力機制的全新神經網絡架構)以及長短期記憶依賴網絡和的 Transformer 結合體等。

2.9 里程碑九:2015注意力機制和基於記憶的神經網絡

注意力機制是神經網絡機器翻譯(NMT)的核心創新之一,也是使神經網絡機器翻譯優於經典的基於短語的機器翻譯的關鍵。序列到序列學習的主要瓶頸是,需要將源序列的全部內容壓縮爲固定大小的向量。注意力機制通過讓解碼器回顧源序列的隱藏狀態,以此爲解碼器提供加權平均值的輸入來緩解這一問題,如圖13所示。

640?wx_fmt=jpeg

 注意力機制

之後,各種形式的注意力機制涌現而出。注意力機制被廣泛接受,在各種需要根據輸入的特定部分做出決策的任務上都有潛在的應用。它已經被應用於句法分析、閱讀理解、單樣本學習等任務中。它的輸入甚至不需要是一個序列,而可以包含其他表示,比如圖像的描述(圖14)。

注意力機制一個有用的附帶作用是它通過注意力權重來檢測輸入的哪一部分與特定的輸出相關,從而提供了一種罕見的雖然還是比較淺層次的,對模型內部運作機制的窺探。

640?wx_fmt=png

 圖像描述模型中的視覺注意力機制指示在生成”飛盤”時所關注的內容

注意力機制不僅僅侷限於輸入序列。自注意力機制可用來觀察句子或文檔中周圍的單詞,獲得包含更多上下文信息的詞語表示。多層的自注意力機制是神經機器翻譯前沿模型Transformer的核心。

注意力機制可以視爲模糊記憶的一種形式,其記憶的內容包括模型之前的隱藏狀態,由模型選擇從記憶中檢索哪些內容。與此同時,更多具有明確記憶單元的模型被提出。

他們有很多不同的變化形式,比如神經圖靈機(NeuralTuring Machines)、記憶網絡(MemoryNetwork)、端到端的記憶網絡(End-to-endMemory Newtorks)、動態記憶網絡(DynamicMemoryNetworks)、神經可微計算機(NeuralDifferentiable Computer)、循環實體網絡(RecurrentEntityNetwork)。

記憶的存取通常與注意力機制相似,基於與當前狀態且可以讀取和寫入。這些模型之間的差異體現在它們如何實現和利用存儲模塊。

比如說,端到端的記憶網絡對輸入進行多次處理並更新內存,以實行多次推理。神經圖靈機也有一個基於位置的尋址方式,使它們可以學習簡單的計算機程序,比如排序。

基於記憶的模型通常用於需要長時間保留信息的任務中,例如語言模型構建和閱讀理解。記憶模塊的概念非常通用,知識庫和表格都可以作爲記憶模塊,記憶模塊也可以基於輸入的全部或部分內容進行填充。

2.10里程碑十:2018預訓練語言模型

預訓練的詞嵌入與上下文無關,僅用於初始化模型中的第一層。近幾個月以來,許多有監督的任務被用來預訓練神經網絡。相比之下,語言模型只需要未標記的文本,因此其訓練可以擴展到數十億單詞的語料、新的領域、新的語言。預訓練的語言模型於 2015年被首次提出,但直到最近它才被證明在大量不同類型的任務中均十分有效。語言模型嵌入可以作爲目標模型中的特徵,或者根據具體任務進行調整。如下圖所示,語言模型嵌入爲許多任務的效果帶來了巨大的改進。

640?wx_fmt=png

 改進的語言模型嵌入

使用預訓練的語言模型可以在數據量十分少的情況下有效學習。由於語言模型的訓練只需要無標籤的數據,因此他們對於數據稀缺的低資源語言特別有利。

2018年10月,谷歌AI語言組發佈BERT語言模型預訓練,已被證明可有效改進許多自然語言處理任務(Dai and Le, 2015; Peters et al., 2017, 2018; Radford etal., 2018; Howard and Ruder, 2018)。

這些任務包括句子級任務,如自然語言推理inference(Bowman et al., 2015; Williams et al., 2018)和釋義paraphrasing(Dolan and Brockett, 2005),旨在通過整體分析來預測句子之間的關係;以及詞塊級任務,如命名實體識別(Tjong KimSang and De Meulder, 2003)和SQuAD問題回答(Rajpurkar et al., 2016),其中模型需要在詞塊級別生成細粒度輸出。

近年七大技術里程碑小結

除了上述七大技術里程碑,一些其他進展雖不如上面提到的那樣流行,但仍產生了廣泛的影響。

基於字符的描述(Character-based representations),在字符層級上使用卷積神經網絡和長短期記憶網絡,以獲得一個基於字符的詞語描述,目前已經相當常見了,特別是對於那些語言形態豐富的語種或那些形態信息十分重要、包含許多未知單詞的任務。據目前所知,基於字符的描述最初用於序列標註,現在,基於字符的描述方法,減輕了必須以增加計算成本爲代價建立固定詞彙表的問題,並使完全基於字符的機器翻譯的應用成爲可能。

對抗學習(Adversarial learning),在機器學習領域已經取得了廣泛應用,在自然語言處理領域也被應用於不同的任務中。對抗樣例的應用也日益廣泛,他們不僅僅是探測模型弱點的工具,更能使模型更具魯棒性(robust)。(虛擬的)對抗性訓練,也就是最壞情況的擾動,和域對抗性損失(domain-adversariallosses)都是可以使模型更具魯棒性的有效正則化方式。生成對抗網絡(GANs)目前在自然語言生成任務上還不太有效,但在匹配分佈上十分有用。

強化學習(Reinforcement learning),在具有時間依賴性任務上證明有效,比如在訓練期間選擇數據和對話建模。在機器翻譯和概括任務中,強化學習可以有效地直接優化“紅色”和“藍色”這樣不可微的度量,不必去優化像交叉熵這樣的代理損失函數。同樣,逆向強化學習(inversereinforcement learning)在類似視頻故事描述這樣的獎勵機制非常複雜且難以具體化的任務中,也非常有用。

自然語言處理NLP知識結構

文|秦隴紀,數據簡化DataSimp

自然語言處理(計算機語言學、自然語言理解)涉及:字處理,詞處理,語句處理,篇章處理詞處理分詞、詞性標註、實體識別、詞義消歧語句處理句法分析(SyntacticAnalysis)、語義分析(SenmanticAnalysis)等。其中,重點有:

1.句法語義分析:分詞,詞性標記,命名實體識別。

2.信息抽取

3.文本挖掘:文本聚類,情感分析。基於統計。

4.機器翻譯:基於規則,基於統計,基於神經網絡。

5.信息檢索

6.問答系統

7.對話系統建議…本文總結的自然語言處理歷史、模型、知識體系結構內容,涉及NLP的語言理論、算法和工程實踐各方面,內容繁雜。參考黃志洪老師自然語言處理課程、宗成慶老師《統計自然語言處理》,鄭捷2017年電子工業出版社出版的圖書《NLP漢語自然語言處理原理與實踐》,以及國外著名NLP書籍的英文資料、漢譯版資料。

一、NLP知識結構概述

1)自然語言處理:利用計算機爲工具,對書面實行或者口頭形式進行各種各樣的處理和加工的技術,是研究人與人交際中以及人與計算機交際中的演員問題的一門學科,是人工智能的主要內容。

2)自然語言處理是研究語言能力和語言應用的模型,建立計算機(算法)框架來實現這樣的語言模型,並完善、評測、最終用於設計各種實用系統。

3)研究問題(主要):

信息檢索
機器翻譯
文檔分類
問答系統
信息過濾
自動文摘
信息抽取
文本挖掘
輿情分析
機器寫作
語音識別

研究模式:自然語言場景問題,數學算法,算法如何應用到解決這些問題,預料訓練,相關實際應用

自然語言的困難

場景的困難:語言的多樣性、多變性、歧義性

學習的困難:艱難的數學模型(hmm,crf,EM,深度學習等)

語料的困難:什麼的語料?語料的作用?如何獲取語料?

二、NLP知識十大結構

2.1形式語言與自動機

語言:按照一定規律構成的句子或者字符串的有限或者無限的集合。

描述語言的三種途徑:

窮舉法
文法(產生式系統)描述
自動機

自然語言不是人爲設計而是自然進化的,形式語言比如:運算符號、化學分子式、編程語言

形式語言理論朱啊喲研究的是內部結構模式這類語言的純粹的語法領域,從語言學而來,作爲一種理解自然語言的句法規律,在計算機科學中,形式語言通常作爲定義編程和語法結構的基礎

形式語言與自動機基礎知識:

集合論
圖論

自動機的應用:

1,單詞自動查錯糾正
2,詞性消歧(什麼是詞性?什麼的詞性標註?爲什麼需要標註?如何標註?)

形式語言的缺陷:

1、對於像漢語,英語這樣的大型自然語言系統,難以構造精確的文法
2、不符合人類學習語言的習慣
3、有些句子語法正確,但在語義上卻不可能,形式語言無法排出這些句子
4、解決方向:基於大量語料,採用統計學手段建立模型

2.2 語言模型

1)語言模型(重要):通過語料計算某個句子出現的概率(概率表示),常用的有2-元模型,3-元模型

2)語言模型應用:

語音識別歧義消除例如,給定拼音串:ta shi yan yan jiu saun fa de

可能的漢字串:踏實菸酒算法的他是研究酸法的他是研究算法的,顯然,最後一句才符合。

3)語言模型的啓示:

1、開啓自然語言處理的統計方法

2、統計方法的一般步驟:

收集大量語料

對語料進行統計分析,得出知識

針對場景建立算法模型

解釋和應用結果

4)語言模型性能評價,包括評價目標,評價的難點,常用指標(交叉熵,困惑度)

5)數據平滑:

數據平滑的概念,爲什麼需要平滑

平滑的方法,加一法,加法平滑法,古德-圖靈法,J-M法,Katz平滑法等

6)語言模型的缺陷:

語料來自不同的領域,而語言模型對文本類型、主題等十分敏感

n與相鄰的n-1個詞相關,假設不是很成立。

2.3概率圖模型

生成模型與判別模型,貝葉斯網絡,馬爾科夫鏈與隱馬爾科夫模型(HMM)

1)概率圖模型概述(什麼的概率圖模型,參考清華大學教材《概率圖模型》)

2)馬爾科夫過程(定義,理解)

3)隱馬爾科夫過程(定義,理解)

HMM的三個基本問題(定義,解法,應用)

注:第一個問題,涉及最大似然估計法,第二個問題涉及EM算法,第三個問題涉及維特比算法,內容很多,要重點理解,(參考書李航《統計學習方法》,網上博客,筆者github)

2.4 馬爾科夫網,最大熵模型,條件隨機場(CRF)

1)HMM的三個基本問題的參數估計與計算

2)什麼是熵

3)EM算法(應用十分廣泛,好好理解)

4)HMM的應用

5)層次化馬爾科夫模型與馬爾科夫網絡

提出原因,HMM存在兩個問題

6)最大熵馬爾科夫模型

優點:與HMM相比,允許使用特徵刻畫觀察序列,訓練高效

缺點:存在標記偏置問題

7)條件隨機場及其應用(概念,模型過程,與HMM關係)

參數估計方法(GIS算法,改進IIS算法)

CRF基本問題:特徵選取(特徵模板)、概率計算、參數訓練、解碼(維特比)

應用場景:

詞性標註類問題(現在一般用RNN+CRF)

中文分詞(發展過程,經典算法,瞭解開源工具jieba分詞)

中文人名,地名識別

8)CRF++

2.5 命名實體識別,詞性標註,內容挖掘、語義分析與篇章分析(大量用到前面的算法)

1)命名實體識別問題

相關概率,定義

相關任務類型

方法(基於規程->基於大規模語料庫)

2)未登錄詞的解決方法(搜索引擎,基於語料)

3)CRF解決命名實體識別(NER)流程總結:

訓練階段:確定特徵模板,不同場景(人名,地名等)所使用的特徵模板不同,對現有語料進行分詞,在分詞結果基礎上進行詞性標註(可能手工),NER對應的標註問題是基於詞的,然後訓練CRF模型,得到對應權值參數值

識別過程:將待識別文檔分詞,然後送入CRF模型進行識別計算(維特比算法),得到標註序列,然後根據標註劃分出命名實體

4)詞性標註(理解含義,意義)及其一致性檢查方法(位置屬性向量,詞性標註序列向量,聚類或者分類算法)

2.6句法分析

1)句法分析理解以及意義

1、句法結構分析

完全句法分析
淺層分析

2、依存關係分析

2)句法分析方法

1、基於規則的句法結構分析
2、基於統計的語法結構分析

2.7 文本分類,情感分析

1)文本分類,文本排重

文本分類:在預定義的分類體系下,根據文本的特徵,將給定的文本與一個或者多個類別相關聯

典型應用:垃圾郵件判定,網頁自動分類

2)文本表示,特徵選取與權重計算,詞向量

文本特徵選擇常用方法:

1、基於本文頻率的特徵提取法

2、信息增量法

3、X2(卡方)統計量

4、互信息法

3)分類器設計

SVM,貝葉斯,決策樹等

4)分類器性能評測

1、召回率

2、正確率

3、F1值

5)主題模型(LDA)與PLSA

LDA模型十分強大,基於貝葉斯改進了PLSA,可以提取出本章的主題詞和關鍵詞,建模過程複雜,難以理解。

6)情感分析

藉助計算機幫助用戶快速獲取,整理和分析相關評論信息,對帶有感情色彩的主觀文本進行分析,處理和歸納例如,評論自動分析,水軍識別。

某種意義上看,情感分析也是一種特殊的分類問題

7)應用案例

2.8信息檢索,搜索引擎及其原理

1)信息檢索起源於圖書館資料查詢檢索,引入計算機技術後,從單純的文本查詢擴展到包含圖片,音視頻等多媒體信息檢索,檢索對象由數據庫擴展到互聯網。

1、點對點檢索

2、精確匹配模型與相關匹配模型

3、檢索系統關鍵技術:標引,相關度計算

2)常見模型:布爾模型,向量空間模型,概率模型

3)常用技術:倒排索引,隱語義分析(LDA等)

4)評測指標

2.9 自動文摘與信息抽取,機器翻譯,問答系統

1)統計機器翻譯的的思路,過程,難點,以及解決

2)問答系統

基本組成:問題分析,信息檢索,答案抽取
類型:基於問題-答案,基於自由文本
典型的解決思路

3)自動文摘的意義,常用方法

4)信息抽取模型(LDA等)

2.10深度學習在自然語言中的應用

1)單詞表示,比如詞向量的訓練(wordvoc)

2)自動寫文本

寫新聞等

3)機器翻譯

4)基於CNN、RNN的文本分類

5)深度學習與CRF結合用於詞性標註

三、中文NLP知識目錄

選自鄭捷2017年電子工業出版社出版的圖書《NLP漢語自然語言處理原理與實踐》。

第1章 中文語言的機器處理 1

1.1 歷史回顧 2
1.1.1 從科幻到現實 2
1.1.2 早期的探索 3
1.1.3 規則派還是統計派 3
1.1.4 從機器學習到認知計算 5

1.2 現代自然語言系統簡介 6
1.2.1 NLP流程與開源框架 6
1.2.2 哈工大NLP平臺及其演示環境 9
1.2.3 StanfordNLP團隊及其演示環境 11
1.2.4 NLTK開發環境 13

1.3 整合中文分詞模塊 16
1.3.1 安裝Ltp Python組件 17
1.3.2 使用Ltp 3.3進行中文分詞 18
1.3.3 使用結巴分詞模塊 20

1.4 整合詞性標註模塊 22
1.4.1 Ltp 3.3詞性標註 23
1.4.2 安裝StanfordNLP並編寫Python接口類 24
1.4.3 執行Stanford詞性標註 28

1.5 整合命名實體識別模塊 29
1.5.1 Ltp 3.3命名實體識別 29
1.5.2 Stanford命名實體識別 30

1.6 整合句法解析模塊 32
1.6.1 Ltp 3.3句法依存樹 33
1.6.2 StanfordParser類 35
1.6.3 Stanford短語結構樹 36
1.6.4 Stanford依存句法樹 37

1.7 整合語義角色標註模塊 38

1.8 結語 40

第2章 漢語語言學研究回顧 42

2.1 文字符號的起源 42
2.1.1 從記事談起 43
2.1.2 古文字的形成 47

2.2 六書及其他 48
2.2.1 象形 48
2.2.2 指事 50
2.2.3 會意 51
2.2.4 形聲 53
2.2.5 轉註 54
2.2.6 假借 55

2.3 字形的流變 56
2.3.1 筆與墨的形成與變革 56
2.3.2 隸變的方式 58
2.3.3 漢字的符號化與結構 61

2.4 漢語的發展 67
2.4.1 完整語義的基本形式——句子 68
2.4.2 語言的初始形態與文言文 71
2.4.3 白話文與複音詞 73
2.4.4 白話文與句法研究 78

2.5 三個平面中的語義研究 80
2.5.1 詞彙與本體論 81
2.5.2 格語法及其框架 84

2.6 結語 86

第3章 詞彙與分詞技術 88

3.1 中文分詞 89
3.1.1 什麼是詞與分詞規範 90
3.1.2 兩種分詞標準 93
3.1.3 歧義、機械分詞、語言模型 94
3.1.4 詞彙的構成與未登錄詞 97

3.2 系統總體流程與詞典結構 98
3.2.1 概述 98
3.2.2 中文分詞流程 99
3.2.3 分詞詞典結構 103
3.2.4 命名實體的詞典結構 105
3.2.5 詞典的存儲結構 108

3.3 算法部分源碼解析 111
3.3.1 系統配置 112
3.3.2 Main方法與例句 113
3.3.3 句子切分 113
3.3.4 分詞流程 117
3.3.5 一元詞網 118
3.3.6 二元詞圖 125
3.3.7 NShort算法原理 130
3.3.8 後處理規則集 136
3.3.9 命名實體識別 137
3.3.10 細分階段與最短路徑 140

3.4 結語 142

第4章 NLP中的概率圖模型 143

4.1 概率論回顧 143
4.1.1 多元概率論的幾個基本概念 144
4.1.2 貝葉斯與樸素貝葉斯算法 146
4.1.3 文本分類 148
4.1.4 文本分類的實現 151

4.2 信息熵 154
4.2.1 信息量與信息熵 154
4.2.2 互信息、聯合熵、條件熵 156
4.2.3 交叉熵和KL散度 158
4.2.4 信息熵的NLP的意義 159

4.3 NLP與概率圖模型 160
4.3.1 概率圖模型的幾個基本問題 161
4.3.2 產生式模型和判別式模型 162
4.3.3 統計語言模型與NLP算法設計 164
4.3.4 極大似然估計 167

4.4 隱馬爾科夫模型簡介 169
4.4.1 馬爾科夫鏈 169
4.4.2 隱馬爾科夫模型 170
4.4.3 HMMs的一個實例 171
4.4.4 Viterbi算法的實現 176

4.5 最大熵模型 179
4.5.1 從詞性標註談起 179
4.5.2 特徵和約束 181
4.5.3 最大熵原理 183
4.5.4 公式推導 185
4.5.5 對偶問題的極大似然估計 186
4.5.6 GIS實現 188

4.6 條件隨機場模型 193
4.6.1 隨機場 193
4.6.2 無向圖的團(Clique)與因子分解 194
4.6.3 線性鏈條件隨機場 195
4.6.4 CRF的概率計算 198
4.6.5 CRF的參數學習 199
4.6.6 CRF預測標籤 200

4.7 結語 201

第5章 詞性、語塊與命名實體識別 202

5.1 漢語詞性標註 203
5.1.1 漢語的詞性 203
5.1.2 賓州樹庫的詞性標註規範 205
5.1.3stanfordNLP標註詞性 210
5.1.4 訓練模型文件 213

5.2 語義組塊標註 219
5.2.1 語義組塊的種類 220
5.2.2 細說NP 221
5.2.3 細說VP 223
5.2.4 其他語義塊 227
5.2.5 語義塊的抽取 229
5.2.6 CRF的使用 232

5.3 命名實體識別 240
5.3.1 命名實體 241
5.3.2 分詞架構與專名詞典 243
5.3.3 算法的策略——詞典與統計相結合 245
5.3.4 算法的策略——層疊式架構 252

5.4 結語 259

第6章 句法理論與自動分析 260

6.1 轉換生成語法 261
6.1.1 喬姆斯基的語言觀 261
6.1.2 短語結構文法 263
6.1.3 漢語句類 269
6.1.4 謂詞論元與空範疇 274
6.1.5 輕動詞分析理論 279
6.1.6 NLTK操作句法樹 280

6.2 依存句法理論 283
6.2.1 配價理論 283
6.2.2 配價詞典 285
6.2.3 依存理論概述 287
6.2.4 Ltp依存分析介紹 290
6.2.5 Stanford依存轉換、解析 293

6.3 PCFG短語結構句法分析 298
6.3.1 PCFG短語結構 298
6.3.2 內向算法和外向算法 301
6.3.3 Viterbi算法 303
6.3.4 參數估計 304
6.3.5 Stanford的PCFG算法訓練 305

6.4 結語 310

第7章 建設語言資源庫 311

7.1 語料庫概述 311
7.1.1 語料庫的簡史 312
7.1.2 語言資源庫的分類 314
7.1.3 語料庫的設計實例:國家語委語料庫 315
7.1.4 語料庫的層次加工 321

7.2 語法語料庫 323
7.2.1 中文分詞語料庫 323
7.2.2 中文分詞的測評 326
7.2.3 賓州大學CTB簡介 327

7.3 語義知識庫 333
7.3.1 知識庫與HowNet簡介 333
7.3.2 發掘義原 334
7.3.3 語義角色 336
7.3.4 分類原則與事件分類 344
7.3.5 實體分類 347
7.3.6 屬性與分類 352
7.3.7 相似度計算與實例 353

7.4 語義網與百科知識庫 360
7.4.1 語義網理論介紹 360
7.4.2 維基百科知識庫 364
7.4.3 DBpedia抽取原理 365

7.5 結語 368

第8章 語義與認知 370

8.1 回顧現代語義學 371
8.1.1 語義三角論 371
8.1.2 語義場論 373
8.1.3 基於邏輯的語義學 376

8.2 認知語言學概述 377
8.2.1 象似性原理 379
8.2.2 順序象似性 380
8.2.3 距離象似性 380
8.2.4 重疊象似性 381

8.3 意象圖式的構成 383
8.3.1 主觀性與焦點 383
8.3.2 範疇化:概念的認知 385
8.3.3 主體與背景 390
8.3.4 意象圖式 392
8.3.5 社交中的圖式 396
8.3.6 完形:壓縮與省略 398

8.4 隱喻與轉喻 401
8.4.1 隱喻的結構 402
8.4.2 隱喻的認知本質 403
8.4.3 隱喻計算的系統架構 405
8.4.4 隱喻計算的實現 408

8.5 構式語法 412
8.5.1 構式的概念 413
8.5.2 句法與構式 415
8.5.3 構式知識庫 417

8.6 結語 420

第9章 NLP中的深度學習 422

9.1 神經網絡回顧 422
9.1.1 神經網絡框架 423
9.1.2 梯度下降法推導 425
9.1.3 梯度下降法的實現 427
9.1.4 BP神經網絡介紹和推導 430

9.2 Word2Vec簡介 433
9.2.1 詞向量及其表達 434
9.2.2 Word2Vec的算法原理 436
9.2.3 訓練詞向量 439
9.2.4 大規模上下位關係的自動識別 443

9.3 NLP與RNN 448
9.3.1Simple-RNN 449
9.3.2 LSTM原理 454
9.3.3 LSTM的Python實現 460

9.4 深度學習框架與應用 467
9.4.1 Keras框架介紹 467
9.4.2 Keras序列標註 471
9.4.3 依存句法的算法原理 478
9.4.4 Stanford依存解析的訓練過程 483

9.5 結語 488

第10章 語義計算的架構 490

10.1 句子的語義和語法預處理 490
10.1.1 長句切分和融合 491
10.1.2 共指消解 496

10.2 語義角色 502
10.2.1 謂詞論元與語義角色 502
10.2.2PropBank簡介 505
10.2.3 CPB中的特殊句式 506
10.2.4 名詞性謂詞的語義角色 509
10.2.5PropBank展開 512

10.3 句子的語義解析 517
10.3.1 語義依存 517
10.3.2 完整架構 524
10.3.3 實體關係抽取 527

10.4 結語 531 [29]

自然語言處理NLP國內研究方向機構導師

文|中文信息協會《中文信息處理髮展報告2016》,數據簡化DataSimp

文字語言VS數字信息

數字、文字和自然語言一樣,都是信息的載體,他們之間原本有着天然的聯繫。語言和數學的產生都是爲了交流,從文字、數字和語言的發展歷史,可以瞭解到語言、文字和數字有着內在的聯繫。自然語言處理NLP主要涉及三種文本,自由文本結構化文本半結構化文本

自然語言理解Natural Language Understanding(NLU),實現人機間自然語言通信,意味着要使計算機既能理解自然語言文本的意義,也能以自然語言文本表達給定的意圖、思想等。自然語言生成NLG,是人工或機器生成語言。

斯坦福自然語言處理NLP工具資料收集、斯坦福分詞、Stanford中文實體識別,最早做自然語言處理的網址https://nlp.stanford.edu/software/segmenter.shtml。

哈爾濱工業大學智能技術與自然語言處理研究室(IntelligentTechnology & Natural Language Processing Lab, ITNLPLab)是國內較早從事自然語言處理和語言智能技術的研究室。

除了新興的文本數據簡化領域:秦隴紀(數據簡化技術中心籌),自然語言處理NaturalLanguage Processing領域主要包括基礎研究和應用研究。

基礎研究

詞法與句法分析:李正華、陳文亮、張民(蘇州大學)
語義分析:周國棟、李軍輝(蘇州大學)
篇章分析:王厚峯、李素建(北京大學)
語言認知模型:王少楠,宗成慶(中科院自動化研究所)
語言表示與深度學習:黃萱菁、邱錫鵬(復旦大學)
知識圖譜與計算:李涓子、候磊(清華大學)

應用研究

文本分類與聚類:塗存超,劉知遠(清華大學)
信息抽取:孫樂、韓先培(中國科學院軟件研究所)
情感分析:黃民烈(清華大學)
自動文摘:萬小軍、姚金戈(北京大學)
信息檢索:劉奕羣、馬少平(清華大學)
信息推薦與過濾:王斌(中科院信工所),魯驍(國家計算機網絡應急中心)
自動問答:趙軍、劉康,何世柱(中科院自動化研究所)
機器翻譯:張家俊、宗成慶(中科院自動化研究所)
社會媒體處理:劉挺、丁效(哈爾濱工業大學)
語音技術:說話人識別——鄭方(清華大學),王仁宇(江蘇師範大學)
語音合成——陶建華(中科院自動化研究所)
語音識別——王東(清華大學)
文字識別:劉成林(中科院自動化研究所)
多模態信息處理:陳曉鷗(北京大學)
醫療健康信息處理:陳清財、湯步洲(哈爾濱工業大學)
少數民族語言信息處理:吾守爾•斯拉木(新疆大學)

—  —

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章