什么是命名實體識別(NER)?
命名實體識別(NER)是自然語言處理(NLP)中的基本任務之一。NLP的一般流程如下:
句法分析是NLP任務的核心,NER是句法分析的基礎。NER任務用于識別文本中的人名(PER)、地名(LOC)等具有特定意義的實體。非實體用O來表示。我們以人名來舉例:
王 B-PER
文 I-PER
和 O
小 B-PER
麗 I-PER
結 O
婚 O
了。 O
(IOB是塊標記的一種表示。B-表示開始,I-表示內部,O-表示外部)
首先明確的是NER是個分類任務,具體稱為序列標注任務,即文本中不同的實體對應不同的標簽,人名-PER,地名-LOC,等等,相似的序列標注任務還有詞性標注、語義角色標注。傳統的解決此類問題的方法,包括:(1)基于規則的方法。根據語言學上預定義的規則。但是由于語言結構本身的不確定性,規則的制定上難度較大。(2)基于統計學的方法。利用統計學找出文本中存在的規律。主要有隱馬爾可夫(HMM)、條件隨機場(CRF)模型和Viterbi算法。文末會簡要介紹比較流行的CRF模型。(3)神經網絡。深度學習(多層神經網絡)這么流行,當然不會放過nlp,之前我的一篇帖子(《深度學習在機器翻譯中的應用》)里提到過循環神經網絡(RNN)及其變種LSTM。因為文本的上下文依賴性,LSTM這種能夠存儲上下文信息的序列模型是較好的選擇(本文側重于CRF,LSTM的基本知識可參考《深度學習在機器翻譯中的應用》)。
LSTM+CRF模型
語言文本的特殊之處在于其具有一定的結構,主謂賓定狀補,狀語后置,非限制性定語從句等等。這些結構的存在代表著每個單詞的前后是有著一定的詞性限制的。比如:
我現在回家 //這是常見的(主+狀+謂+賓)結構的句子
我今天家 //這樣的文本就不能稱為一個句子,少了必要的語法結構
LSTM網絡是整體思路同樣是先對給定的訓練樣本進行學習,確定模型中的參數,再利用該模型對測試樣本進行預測得到最后的輸出。由于測試輸出的準確性現階段達不到100%,這就意味著,肯定存在一部分錯誤的輸出,這些輸出里很可能就包含類似于上述第二句話這種不符合語法規則的文本。因此,這就是為什么要將CRF模型引入進來的原因。條件隨機場(CRF)是一種統計方法。其用于文本序列標注的優點就是上文所說的對于輸出變量可以進行約束,使其符合一定的語法規則。常見的神經網絡對訓練樣本的學習,只考慮訓練樣本的輸入,并不考慮訓練樣本的輸出之間的關系。
LSTM+CRF 網絡
LSTM 網絡可以看作是一個多分類問題,給定B、I、O等標簽作為訓練輸出,”john goes to school”等句子作為輸入,根據網絡模型計算的概率大小確定句子中的每個單詞屬于哪個標簽(類別),概率最大的即為該單詞最后所屬的標簽(類別),標簽與標簽之間是獨立的。LSTM+CRF則是在分類問題的基礎上,加上輸出之間的約束關系。比如”B”標簽之后還是”B”,這種不符合語法規則的情況,通過CRF機制是可以排除的。目前,tensorflow 已支持LSTM+CRF的配置。(LSTM+CRF是深度學習中比較經典的模型,當前還有LSTM+cnn+CRF等其他的經過優化的模型)。
附:條件隨機場(CRF)原理
要完全搞懂CRF的原理,可以參考李航的《統計學習方法》的第11章。這里作簡要說明。CRF的基礎是馬爾可夫隨機場,或者稱為概率無向圖。
延伸
概率無向圖:用無向圖表示隨機變量的概率分布。
上圖就是滿足局部馬爾可夫性的概率無向圖。每個結點都代表著一個隨機變量,邊代表著隨機變量之間的關系。
局部馬爾可夫性:P(Yu|Yv)=P(Yu|Yv,Yw)簡單理解,因為Yu和Yw之間沒有邊連接,則在給定隨機變量Yv條件下的Yu的概率,跟多加了一個Yw無關。
CRF的理解
CRF可以理解為在給定隨機變量X的條件下,隨機變量Y的馬爾可夫隨機場。其中,線性鏈CRF(一種特殊的CRF)可以用于序列標注問題。CRF模型在訓練時,給定訓練序列樣本集(X,Y),通過極大似然估計、梯度下降等方法確定CRF模型的參數;預測時,給定輸入序列X,根據模型,求出P(Y|X)最大的序列y(這里注意,LSTM輸出的是一個個獨立的類別,CRF輸出的是最優的類別序列,也就是CRF全局的優化要更好一些)。
線性鏈條件隨機場(可以比較一下與上面LSTM+CRF網絡圖的區別與聯系)
為何CRF可以表示輸出序列內各元素(Y1,Y2,…,Yi,Yi+1)之間的聯系?這里就是要聯系到馬爾可夫性。這也就是為什么CRF的基礎是馬爾可夫隨機場。CRF如何求解P(Y|X),有具體的數學公式,這里就不詳細列出了。
-
深度學習
+關注
關注
73文章
5493瀏覽量
120999 -
自然語言
+關注
關注
1文章
287瀏覽量
13334 -
nlp
+關注
關注
1文章
487瀏覽量
22015
原文標題:干貨 | 深度學習在NLP的命名實體識別中(NER)的應用
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論