吳 健 朱小龍 周從華
(江蘇大學(xué)計算機(jī)科學(xué)與通信工程學(xué)院 鎮(zhèn)江 212013)
命名實體識別[1~2]是一項基礎(chǔ)且關(guān)鍵的任務(wù),其工作是對文本中有特殊意義的詞語進(jìn)行標(biāo)注。命名實體識別廣泛應(yīng)用于問答系統(tǒng)、機(jī)器翻譯、信息提取等眾多自然語言處理(Natural Language Processing,NLP)任務(wù)。
Rau[3]等于1991 年最早提出了命名實體識別任務(wù),早期命名實體識別任務(wù)采用基于詞典與規(guī)則的方式,在此期間,命名實體識別的發(fā)展主要受限于詞典的大小與質(zhì)量?;谝?guī)則的方法主要的缺點在于需要手工制定規(guī)則,并且不能實現(xiàn)領(lǐng)域遷移。傳統(tǒng)的機(jī)器學(xué)習(xí)模型,如隱馬爾可夫模型(Hidden Markov Model,HMM)[4],最大熵(Maximum Entropy,ME)[5]、條件隨機(jī)場(Conditional Random Fields,CRF)[6]等將命名實體識別看成序列標(biāo)注任務(wù)。基于統(tǒng)計的機(jī)器學(xué)習(xí)模型對語料要求較為嚴(yán)格,不同的特征選擇與組合對模型的性能影響較大。在深度學(xué)習(xí)領(lǐng)域,Collobert[7]等首次將神經(jīng)網(wǎng)絡(luò)與命名實體結(jié)合,Hammerton[8]等最早將長短時記憶網(wǎng)絡(luò)(Long Short Term Memory,LSTM)模型應(yīng)用于命名實體識別,并取得了良好的效果。Lample[9]等結(jié)合LSTM與CRF對句子進(jìn)行建模抽取實體。
相比于英文的命名實體識別,由于中文語句的連貫性、詞義多樣性,導(dǎo)致中文命名實體識別邊界更加模糊、識別更加困難。
俞鴻魁[10]等提出了基于隱馬爾可夫的中文命名實體識別,馮元勇[11]等提出了基于改進(jìn)CRF的中文實體識別算法。
目前命名實體識別的研究偏向于通用領(lǐng)域,由于數(shù)據(jù)特點的原因,通用領(lǐng)域的命名實體識別模型應(yīng)用于很多專業(yè)領(lǐng)域其識別準(zhǔn)確度并不高。例如,在生物醫(yī)學(xué)領(lǐng)域,未看到的生物醫(yī)學(xué)實體提及的數(shù)量(如疾病名稱、藥品名稱),以及臨床記錄等。其數(shù)據(jù)缺失或數(shù)據(jù)不規(guī)范,導(dǎo)致識別困難,識別準(zhǔn)確率不高。在社交媒體領(lǐng)域,易黎[12]等提出基于聯(lián)合模型的中文社交媒體命名識別在微博數(shù)據(jù)集實現(xiàn)了74.63%的名詞實體識別準(zhǔn)確率。魏笑[13]等使用部件CNN 在網(wǎng)絡(luò)安全數(shù)據(jù)集得到了90%以上的準(zhǔn)確率。
其中實體簡寫的問題在很多領(lǐng)域都有涉及,例如在高中升學(xué)規(guī)劃領(lǐng)域,自然語言中同一個學(xué)校或者專業(yè)名可能存在多個同義簡寫表達(dá)。例如計算機(jī)科學(xué)與技術(shù)專業(yè)、南京大學(xué),通常被簡稱為計科、南大等等。其中簡寫問題可以分為截斷簡寫與縮略簡寫兩類,截斷簡寫是指截取實體的某一連續(xù)部分表示實體,例如同濟(jì)大學(xué)簡稱為同濟(jì);縮略簡寫是指抽取實體的不連續(xù)部分來表示實體,例如哈爾濱工業(yè)大學(xué)簡稱為哈工大。
目前命名實體識別應(yīng)用最廣泛的架構(gòu)分為詞向量層、特征提取層及輸出層。其中詞向量層通常采用word2vec訓(xùn)練的詞向量,特征提取層廣泛采用統(tǒng)計與深度學(xué)習(xí)相結(jié)合的雙向長短期神經(jīng)網(wǎng)絡(luò)接條件隨機(jī)場模型。在實驗中我們發(fā)現(xiàn)對于實體的簡寫識別此模型效果有限,主要原因在于詞向量訓(xùn)練語料來源于結(jié)構(gòu)化網(wǎng)站的結(jié)構(gòu)化信息,文本表達(dá)較為規(guī)范。而簡寫實體由于實體的不完整性,其給定的詞,與待預(yù)測的詞與規(guī)范實體訓(xùn)練的情景不一致,因而將其訓(xùn)練的詞向量用來表示簡寫實體,會存在概率偏差,因此本文考慮在詞向量的表示上進(jìn)行改進(jìn),從而更好地支持簡寫實體識別。
命名實體識別模型結(jié)構(gòu)如圖1 所示,首先在詞向量層會將語料表示成向量編碼的形式,詞的向量化表達(dá)能夠有效減少數(shù)據(jù)的維度,加快運(yùn)算速度;將向量化表達(dá)的文本輸入到特征提取層,由機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型對輸入的信息進(jìn)行特征提??;最后將提取的特征輸入到輸出層進(jìn)行標(biāo)簽預(yù)測。

圖1 命名實體識別模型結(jié)構(gòu)
圖1 中為word2vec 訓(xùn)練的詞向量作為詞向量層,雙向長短期記憶網(wǎng)絡(luò)接條件隨機(jī)場作為特征提取層,經(jīng)過最大化條件概率作為輸出層的命名實體識別模型結(jié)構(gòu)。
Word2vec-BiLSTM-CRF模型主要包括Word2vec訓(xùn)練的詞向量層,BiLSTM 的特征提取層以及CRF的序列標(biāo)注。
2.2.1 Word2vec詞向量
由于機(jī)器學(xué)習(xí)的模型都是數(shù)字輸入,向模型直接輸入文本不便于模型對文本之間的關(guān)系進(jìn)行學(xué)習(xí)。將文本變?yōu)橄蛄勘硎荆?4],可以簡化文本的表達(dá)形式,方便文本在計算機(jī)模型上進(jìn)行運(yùn)算。
早期使用詞袋模型對文本進(jìn)行向量表示,即每一個單詞對應(yīng)一個編碼,編碼長度與詞典中單詞個數(shù)相等。詞袋模型的向量維度大小與詞典大小成正相關(guān),向量的稀疏表示造成極大的空間資源浪費,并且獨熱編碼無法度量單詞之間的關(guān)系。
Yoshua Bengio 最早于2003 年提出了基于神經(jīng)網(wǎng)絡(luò)的方法來訓(xùn)練詞向量[15],但是限制于機(jī)器硬件與方法并未成熟等原因,這些編碼方法并未得到大規(guī)模應(yīng)用。直到谷歌于2013 年推出了word2vec 詞向量訓(xùn)練工具[16],其中包括跳字模型(skip-gram)和連續(xù)詞袋模型(continuous bag of words,CBOW),文本的向量表示得以快速發(fā)展。
skip-gram 利用當(dāng)前詞來預(yù)測上下文。由給定的中心詞通過條件概率計算來預(yù)測中心詞的上下文(背景詞)。
在CBOW 模型中,則是已知詞w的上下文Context(w),需要預(yù)測w,對于給定的詞w就是一個正樣本,其他詞是負(fù)樣本,給定一個正樣本(Context(w),w),我們希望最大化訓(xùn)練文本中每個單詞的概率和g(w)。如圖2 所示,給出待預(yù)測詞“濱”,其上下文分別文“哈爾”、“工業(yè)”,我們逐個計算每一個字在其上下文下的條件概率g(w),其公式如下:
其中,單個單詞的概率計算公式為
2.2.2 BILSTM特征提取
LSTM 最早由Sepp Hochreiter 和Jürgen Schmidhuber 于1997 年提出[17],Graves[18]等在2005 年提出了改進(jìn)的雙向LSTM 模型,由前向LSTM 與后向LSTM組成。LSTM由于其設(shè)計的特點,非常適合用于對語音數(shù)據(jù),文本數(shù)據(jù)等時序數(shù)據(jù)的建模。由于序列標(biāo)注任務(wù)需要對上下文進(jìn)行建模,來理解不同語義下詞語的含義,因此LSTM 在序列標(biāo)注任務(wù)中得到了廣泛應(yīng)用。
LSTM 主要由記憶單元鏈接組成,單個記憶單元如圖3 所示。單個記憶單元主要組成包括輸入門,遺忘門,輸出門和單元,我們將訓(xùn)練集的輸入語句用向量表示成L=(x1,…,xm)輸入到LSTM 的門單元,LSTM各門單元計算公式如下:

圖3 單個LSTM記憶單元
其中,σ為激活函數(shù),i,f,o,c分別表示輸入門,遺忘門,輸出門和單元,各門單元向量維度大小與隱藏層向量h維度一致。
2.2.3 CRF序列標(biāo)注
LSTM在序列標(biāo)注時認(rèn)為當(dāng)前時刻的輸出僅與當(dāng)前狀態(tài)有關(guān),忽略了當(dāng)前輸出標(biāo)簽與上一時刻輸出標(biāo)簽之間的聯(lián)系,因此無法對標(biāo)簽轉(zhuǎn)移關(guān)系進(jìn)行建模。
CRF是一種典型的判別式模型,它在觀測序列的基礎(chǔ)上對輸出目標(biāo)進(jìn)行建模,重點解決序列標(biāo)注的問題。對于給定觀察序列的整個標(biāo)簽序列的聯(lián)合概率,CRF 有一個單指數(shù)模型。因此,不同狀態(tài)下不同特征的權(quán)值可以相互交換。因此解決了MEMM(Maximum entropy Markov models)[19]等模型使用前一個狀態(tài)指數(shù)模型導(dǎo)致的標(biāo)簽偏移問題。將LSTM 的輸出作為CRF 的輸入,CRF 條件概率計算公式如下:
其中,tj(yi+1,yi,x,i)是定義在觀測序列的兩個相鄰標(biāo)記位置上的轉(zhuǎn)移特征函數(shù),sk(yi,x,i)是定義在觀測序列的標(biāo)記位置i上的狀態(tài)轉(zhuǎn)移特征函數(shù),tλj和uk為參數(shù),Z為規(guī)范化因子。
利用目前應(yīng)用最廣泛的基于深度學(xué)習(xí)的模型將實體向量化表達(dá),經(jīng)長短期神經(jīng)網(wǎng)絡(luò)訓(xùn)練輸入條件隨機(jī)場,用于計算各標(biāo)簽得分的概率分布來進(jìn)行序列標(biāo)注,可以在一定程度上緩解輸入錯誤與未出現(xiàn)的實體造成的識別錯誤問題。但在基于BiLSTM-CRF 模型的實體序列標(biāo)注訓(xùn)練過程中,實體的狀態(tài)轉(zhuǎn)移概率起著較為重要的作用,簡寫的實體與規(guī)范的實體狀態(tài)轉(zhuǎn)移概率不一致,因此在預(yù)測簡化表達(dá)的實體時可能會產(chǎn)生錯誤標(biāo)注。
此模型在解決簡寫實體的序列標(biāo)注時能力有限,原因在于預(yù)訓(xùn)練的語料來自于百度百科等結(jié)構(gòu)化網(wǎng)站,缺乏簡寫實體的信息,詞向量訓(xùn)練中不能夠有效模擬簡寫導(dǎo)致訓(xùn)練的詞向量不能夠有效表示簡寫;在此基礎(chǔ)上提取的特征向量在表示簡寫實體時輸入到特征提取層會出現(xiàn)狀態(tài)轉(zhuǎn)移概率偏差,從而影響序列標(biāo)注的正確性。我們針對此改進(jìn)了CBOW 詞向量訓(xùn)練模型,使得模型能夠模擬簡寫實體的情況,從而使實體的向量表示更貼合實際情況,使得經(jīng)訓(xùn)練得到的轉(zhuǎn)態(tài)轉(zhuǎn)移概率更符合含有簡寫實體的情況,最終提高命名實體識別準(zhǔn)確率。
本文針對簡寫問題的特點,對詞向量的訓(xùn)練模型進(jìn)行了改進(jìn),在訓(xùn)練詞向量的過程中使用規(guī)范化詞典來對訓(xùn)練語料進(jìn)行標(biāo)注,對訓(xùn)練語料添加了標(biāo)簽信息,將能夠匹配詞典的字標(biāo)簽信息標(biāo)為“1”,不能匹配的標(biāo)簽標(biāo)為“0”;進(jìn)一步地我們將標(biāo)簽為“1”的進(jìn)行分詞,例如“哈爾濱工業(yè)大學(xué)”會被分為(哈爾濱,工業(yè),大學(xué)),我們對標(biāo)簽進(jìn)行細(xì)化,如{(1,1,1),(2,2,2),(3,3)},在訓(xùn)練過程中我們會對非“0”標(biāo)簽的上下文進(jìn)行遮掩操作,從而模擬簡寫的情況。實驗結(jié)果表明,改進(jìn)的算法模型在命名實體識別任務(wù)中,能夠更好地識別簡寫實體,從而取得更高的準(zhǔn)確率。
模型結(jié)構(gòu)如圖4 所示。首先我們會將可能存在簡寫的實體e 加入到待匹配的實體庫M,在訓(xùn)練時,我們首先對輸入語句L={w1,w2,w3,w4…}的每一個字增加flag=0 的初始標(biāo)簽,訓(xùn)練時我們將實體與語料進(jìn)行匹配,i,j分別表示實體在語料中的起始位置與結(jié)束位置,我們定義成功匹配的標(biāo)簽如下:

圖4 Lexicon-CBOW詞向量模型
為了保證縮略簡寫與截斷簡寫兩種情況的發(fā)生,我們進(jìn)一步地將實體e=(wi…wi+j)按照詞語分詞再次切分為e=(wi…wi+m,…,wi+n…wi+j),對不同的分詞標(biāo)簽細(xì)分為
在訓(xùn)練過程中分為兩種情況,第一種為有20%幾率同時抹除“1”之后的同種標(biāo)簽的字,我們稱之為“全標(biāo)簽遮掩”;第二種為對各種標(biāo)簽中部分字遮掩,但每種標(biāo)簽仍然保留第一步操作,我們定義在一條輸入語句L中兩種遮掩方式互斥。其公式如下:
其中l(wèi)exicon表示實體庫,context(e)表示語料庫中的規(guī)范實體。
本文的實驗語料與數(shù)據(jù)來自于高校官網(wǎng)、百度百科以及升學(xué)規(guī)劃團(tuán)隊提供的家長在高中升學(xué)規(guī)劃階段所詢問的問題記錄。問題中在大量簡寫實體,在對數(shù)據(jù)進(jìn)行整理、清洗、增強(qiáng)之后,我們得到的訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)量如表1 所示。 實體類別與各類別實體數(shù)量如圖5 所示。由于領(lǐng)域特殊性,升學(xué)規(guī)劃領(lǐng)域?qū)嶓w不存在單字符命名實體,故采用B-I-E-O方法標(biāo)記,命名實體標(biāo)簽如表2所示。

表1 訓(xùn)練數(shù)據(jù)集

表2 命名實體標(biāo)注方法

圖5 實體數(shù)目
Python版本為3.6.3,Tensorflow版本為1.6.0,本文模型部分實驗參數(shù)設(shè)置:詞向量窗口大小為3,詞向量維度為64,全局學(xué)習(xí)率(learning_rate)為0.002,訓(xùn)練語料最大長度(sequence_len_pt)為100,BILSTM層dropout值(lstm_dropout_rate)為0.2,BILSTM 與全連接層之間的dropout 值(dropout_rate)為0.5,全連接層正則化率(l2_rate)為0.001。以上參數(shù)設(shè)置均為實驗調(diào)參過程得到的最佳結(jié)果。
本文采用正確率P、召回率R 和F1值作為評價指標(biāo):
本文的詞向量語料庫來源于高校首頁及陽關(guān)高考網(wǎng)。為了測試本文所提方法對簡寫實體識別的有效性,本文設(shè)置了詞向量層基于CBOW 模型、Skip-gram 模型與改進(jìn)的Lexicon-CBOW 詞向量模型作為對比,特征提取層為BiLSTM-CRF。結(jié)果如表3所示,其中下標(biāo)為P的表示規(guī)范實體,下標(biāo)為N的表示簡寫實體。

表3 實驗結(jié)果
從實驗結(jié)果可以看出,我們的詞向量模型在簡寫實體的準(zhǔn)確率、召回率與F1 值上與基于skip-gram,CBOW模型相比均有大幅提高。證明了Lexicon-CBOW模型在模擬簡寫實際情況上訓(xùn)練出的詞向量能夠更加貼合簡寫的實際情況,訓(xùn)練出的詞向量能夠?qū)唽憣嶓w有著更加準(zhǔn)確的表示。測試集合用新的簡寫向量表示輸入到特征提取層,特征提出層能夠?qū)W習(xí)到更加貼近簡寫實際情況的狀態(tài)轉(zhuǎn)移特征,減少簡寫實體的標(biāo)注錯誤。
中文命名實體識別應(yīng)用廣泛,本文提出的在給定詞預(yù)測目標(biāo)詞的基礎(chǔ)上,引入了實體標(biāo)簽信息的詞向量模型能夠有效提高實體的簡寫識別準(zhǔn)確率,將其應(yīng)用到簡寫較多的領(lǐng)域如高中升學(xué)規(guī)劃,以支持例如問答系統(tǒng)、信息提取方面的工作,可以有效提升系統(tǒng)的性能。下一步的工作是進(jìn)行實體消歧[20],區(qū)分兩個表達(dá)完全相同,含義不同的簡寫實體,以更好地支持實體簡寫識別。