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