? ? ? ? 命名實體識別(Named EntitiesRecognition兜粘,NER)是自然語言處理的一個基礎(chǔ)任務(wù)申窘。其目的是識別語料中人名、地名孔轴、組織機構(gòu)名等命名實體
由于命名實體數(shù)量不斷增加剃法,通常不可能在詞典中窮盡列出,且其構(gòu)成方法具有各自的一些規(guī)律性路鹰,因而玄窝,通常把對這些詞的識別從詞匯形態(tài)處理(如漢語切分)任務(wù)中獨立處理牵寺,稱為命名實體識別。
命名實體識別技術(shù)是信息抽取恩脂、信息檢索帽氓、機器翻譯、問答系統(tǒng)等多種自然語言處理技術(shù)必不可少的組成部分俩块。
常見的命名實體識別方法綜述
命名實體是命名實體識別的研究主體黎休,一般包括三大類(實體類、時間類和數(shù)字類)和七小類(人名玉凯、地名势腮、機構(gòu)名、時間漫仆、日期捎拯、貨幣和百分比)命名實體。評判一個命名實體是否被正確識別包括兩個方面:實體的邊界是否正確和實體的類型是否標注正確盲厌。
命名實體識別的主要技術(shù)方法分為:基于規(guī)則和詞典的方法署照、基于統(tǒng)計的方法、二者混合的方法等吗浩。
1.基于規(guī)則和詞典的方法建芙。
基于規(guī)則的方法多采用語言學專家手工構(gòu)造規(guī)則模板,選用特征包括統(tǒng)計信息懂扼、標點符號禁荸、關(guān)鍵字、指示詞和方向詞阀湿、位置詞(如尾字)赶熟、中心詞等方法,以模式和字符串相匹配為主要手段陷嘴,這類系統(tǒng)大多依賴于知識庫和詞典的建立映砖。基于規(guī)則和詞典的方法是命名實體識別中最早使用的方法罩旋,一般而言啊央,當提取的規(guī)則能比較精確地反映語言現(xiàn)象時,基于規(guī)則的方法性能要優(yōu)于基于統(tǒng)計的方法涨醋。但是這些規(guī)則往往依賴于具體語言瓜饥、領(lǐng)域和文本風格,編制過程耗時且難以涵蓋所有的語言現(xiàn)象浴骂,特別容易產(chǎn)生錯誤乓土,系統(tǒng)可移植性不好,對于不同的系統(tǒng)需要語言學專家重新書寫規(guī)則∪に眨基于規(guī)則的方法的另外一個缺點是代價太大狡相,存在系統(tǒng)建設(shè)周期長、移植性差而且需要建立不同領(lǐng)域知識庫作為輔助以提高系統(tǒng)識別能力等問題食磕。
2.基于統(tǒng)計的方法尽棕。
基于統(tǒng)計機器學習的方法主要包括隱馬爾可夫模型(HiddenMarkovMode,HMM)彬伦、最大熵(MaxmiumEntropy滔悉,ME)、支持向量機(Support VectorMachine单绑,SVM)回官、條件隨機場(ConditionalRandom Fields,CRF)等搂橙。
在基于統(tǒng)計的這四種學習方法中歉提,最大熵模型結(jié)構(gòu)緊湊,具有較好的通用性区转,主要缺點是訓練時間長復(fù)雜性高苔巨,有時甚至導致訓練代價難以承受,另外由于需要明確的歸一化計算蜗帜,導致開銷比較大恋拷。而條件隨機場為命名實體識別提供了一個特征靈活资厉、全局最優(yōu)的標注框架厅缺,但同時存在收斂速度慢、訓練時間長的問題宴偿。一般說來湘捎,最大熵和支持向量機在正確率上要比隱馬爾可夫模型高一些,但隱馬爾可夫模型在訓練和識別時的速度要快一些窄刘,主要是由于在利用 Viterbi 算法求解命名實體類別序列時的效率較高窥妇。隱馬爾可夫模型更適用于一些對實時性有要求以及像信息檢索這樣需要處理大量文本的應(yīng)用,如短文本命名實體識別娩践。
基于統(tǒng)計的方法對特征選取的要求較高活翩,需要從文本中選擇對該項任務(wù)有影響的各種特征,并將這些特征加入到特征向量中翻伺。依據(jù)特定命名實體識別所面臨的主要困難和所表現(xiàn)出的特性材泄,考慮選擇能有效反映該類實體特性的特征集合。主要做法是通過對訓練語料所包含的語言信息進行統(tǒng)計和分析吨岭,從訓練語料中挖掘出特征拉宗。有關(guān)特征可以分為具體的單詞特征、上下文特征、詞典及詞性特征旦事、停用詞特征魁巩、核心詞特征以及語義特征等。
基于統(tǒng)計的方法對語料庫的依賴也比較大姐浮,而可以用來建設(shè)和評估命名實體識別系統(tǒng)的大規(guī)模通用語料庫又比較少谷遂。
3.混合方法。
自然語言處理并不完全是一個隨機過程卖鲤,單獨使用基于統(tǒng)計的方法使狀態(tài)搜索空間非常龐大埋凯,必須借助規(guī)則知識提前進行過濾修剪處理。目前幾乎沒有單純使用統(tǒng)計模型而不使用規(guī)則知識的命名實體識別系統(tǒng)扫尖,在很多情況下是使用混合方法:
統(tǒng)計學習方法之間或內(nèi)部層疊融合白对。
規(guī)則、詞典和機器學習方法之間的融合换怖,其核心是融合方法技術(shù)甩恼。在基于統(tǒng)計的學習方法中引入部分規(guī)則,將機器學習和人工知識結(jié)合起來沉颂。
將各類模型条摸、算法結(jié)合起來,將前一級模型的結(jié)果作為下一級的訓練數(shù)據(jù)铸屉,并用這些訓練數(shù)據(jù)對模型進行訓練钉蒲,得到下一級模型。
命名實體識別的一般流程
如下圖所示彻坛,一般的命名實體流程主要分為四個步驟:
對需要進行提取的文本語料進行分詞顷啼;
獲取需要識別的領(lǐng)域標簽,并對分詞結(jié)果進行標簽標注昌屉;
對標簽標注的分詞進行抽雀泼伞;
將抽取的分詞組成需要的領(lǐng)域的命名實體间驮。
統(tǒng)計學習的方法
隱馬爾可夫模型(Hidden Markov Model躬厌,HMM)
隱馬爾可夫模型描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態(tài)隨機序列,再由各個狀態(tài)生成一個觀測而產(chǎn)生觀測隨機序列的過程(李航 統(tǒng)計學習方法)竞帽。隱馬爾可夫模型由初始狀態(tài)分布扛施,狀態(tài)轉(zhuǎn)移概率矩陣以及觀測概率矩陣所確定。
上面的定義太過學術(shù)看不懂沒關(guān)系屹篓,我們只需要知道疙渣,NER本質(zhì)上可以看成是一種序列標注問題(預(yù)測每個字的BIOES標記),在使用HMM解決NER這種序列標注問題的時候抱虐,我們所能觀測到的是字組成的序列(觀測序列)昌阿,觀測不到的是每個字對應(yīng)的標注(狀態(tài)序列)。
對應(yīng)的,HMM的三個要素可以解釋為懦冰,初始狀態(tài)分布就是每一個標注作為句子第一個字的標注的概率灶轰,狀態(tài)轉(zhuǎn)移概率矩陣就是由某一個標注轉(zhuǎn)移到下一個標注的概率(設(shè)狀態(tài)轉(zhuǎn)移矩陣為?
?,那么若前一個詞的標注為?
?刷钢,則下一個詞的標注為?
?的概率為?
?)笋颤,觀測概率矩陣就是指在某個標注下,生成某個詞的概率内地。根據(jù)HMM的三個要素伴澄,我們可以定義如下的HMM模型:
具體參照?https://www.cnblogs.com/fulcra/p/11065474.html
條件隨機場(Conditional Random Field, CRF)
上面講的HMM模型中存在兩個假設(shè),一是輸出觀察值之間嚴格獨立阱缓,二是狀態(tài)轉(zhuǎn)移過程中當前狀態(tài)只與前一狀態(tài)有關(guān)非凌。也就是說,在命名實體識別的場景下荆针,HMM認為觀測到的句子中的每個字都是相互獨立的敞嗡,而且當前時刻的標注只與前一時刻的標注相關(guān)。但實際上航背,命名實體識別往往需要更多的特征喉悴,比如詞性,詞的上下文等等玖媚,同時當前時刻的標注應(yīng)該與前一時刻以及后一時刻的標注都相關(guān)聯(lián)箕肃。由于這兩個假設(shè)的存在,顯然HMM模型在解決命名實體識別的問題上是存在缺陷的今魔。
而條件隨機場就沒有這種問題勺像,它通過引入自定義的特征函數(shù),不僅可以表達觀測之間的依賴涡贱,還可表示當前觀測與前后多個狀態(tài)之間的復(fù)雜依賴咏删,可以有效克服HMM模型面臨的問題惹想。
下面是條件隨機場的數(shù)學形式(如果覺得不好理解问词。也可以直接跳到代碼部分):
為了建立一個條件隨機場,我們首先要定義一個特征函數(shù)集嘀粱,該函數(shù)集內(nèi)的每個特征函數(shù)都以標注序列作為輸入激挪,提取的特征作為輸出。
具體參考http://www.reibang.com/p/55755fc649b1
深度學習的方法
Bi-LSTM
除了以上兩種基于概率圖模型的方法锋叨,LSTM也常常被用來解決序列標注問題垄分。和HMM、CRF不同的是娃磺,LSTM是依靠神經(jīng)網(wǎng)絡(luò)超強的非線性擬合能力薄湿,在訓練時將樣本通過高維空間中的復(fù)雜非線性變換,學習到從樣本到標注的函數(shù),之后使用這個函數(shù)為指定的樣本預(yù)測每個token的標注豺瘤。下方就是使用雙向LSTM(雙向能夠更好的捕捉序列之間的依賴關(guān)系)進行序列標注的示意圖:
LSTM比起CRF模型最大的好處就是簡單粗暴吆倦,不需要做繁雜的特征工程,直接訓練即可坐求,同時比起HMM蚕泽,LSTM的準確率也比較高。
Bi-LSTM+CRF
簡單的LSTM的優(yōu)點是能夠通過雙向的設(shè)置學習到觀測序列(輸入的字)之間的依賴桥嗤,在訓練過程中须妻,LSTM能夠根據(jù)目標(比如識別實體)自動提取觀測序列的特征,但是缺點是無法學習到狀態(tài)序列(輸出的標注)之間的關(guān)系泛领,要知道荒吏,在命名實體識別任務(wù)中,標注之間是有一定的關(guān)系的渊鞋,比如B類標注(表示某實體的開頭)后面不會再接一個B類標注司倚,所以LSTM在解決NER這類序列標注任務(wù)時,雖然可以省去很繁雜的特征工程篓像,但是也存在無法學習到標注上下文的缺點动知。
相反,CRF的優(yōu)點就是能對隱含狀態(tài)建模员辩,學習狀態(tài)序列的特點盒粮,但它的缺點是需要手動提取序列特征。所以一般的做法是奠滑,在LSTM后面再加一層CRF丹皱,以獲得兩者的優(yōu)點。
下面是給Bi-LSTM加一層CRF的代碼實現(xiàn):