吳 健 朱小龍 周從華
(江蘇大學計算機科學與通信工程學院 鎮(zhèn)江 212013)
命名實體識別[1~2]是一項基礎且關鍵的任務,其工作是對文本中有特殊意義的詞語進行標注。命名實體識別廣泛應用于問答系統(tǒng)、機器翻譯、信息提取等眾多自然語言處理(Natural Language Processing,NLP)任務。
Rau[3]等于1991 年最早提出了命名實體識別任務,早期命名實體識別任務采用基于詞典與規(guī)則的方式,在此期間,命名實體識別的發(fā)展主要受限于詞典的大小與質(zhì)量?;谝?guī)則的方法主要的缺點在于需要手工制定規(guī)則,并且不能實現(xiàn)領域遷移。傳統(tǒng)的機器學習模型,如隱馬爾可夫模型(Hidden Markov Model,HMM)[4],最大熵(Maximum Entropy,ME)[5]、條件隨機場(Conditional Random Fields,CRF)[6]等將命名實體識別看成序列標注任務?;诮y(tǒng)計的機器學習模型對語料要求較為嚴格,不同的特征選擇與組合對模型的性能影響較大。在深度學習領域,Collobert[7]等首次將神經(jīng)網(wǎng)絡與命名實體結(jié)合,Hammerton[8]等最早將長短時記憶網(wǎng)絡(Long Short Term Memory,LSTM)模型應用于命名實體識別,并取得了良好的效果。Lample[9]等結(jié)合LSTM與CRF對句子進行建模抽取實體。
相比于英文的命名實體識別,由于中文語句的連貫性、詞義多樣性,導致中文命名實體識別邊界更加模糊、識別更加困難。
俞鴻魁[10]等提出了基于隱馬爾可夫的中文命名實體識別,馮元勇[11]等提出了基于改進CRF的中文實體識別算法。
目前命名實體識別的研究偏向于通用領域,由于數(shù)據(jù)特點的原因,通用領域的命名實體識別模型應用于很多專業(yè)領域其識別準確度并不高。例如,在生物醫(yī)學領域,未看到的生物醫(yī)學實體提及的數(shù)量(如疾病名稱、藥品名稱),以及臨床記錄等。其數(shù)據(jù)缺失或數(shù)據(jù)不規(guī)范,導致識別困難,識別準確率不高。在社交媒體領域,易黎[12]等提出基于聯(lián)合模型的中文社交媒體命名識別在微博數(shù)據(jù)集實現(xiàn)了74.63%的名詞實體識別準確率。魏笑[13]等使用部件CNN 在網(wǎng)絡安全數(shù)據(jù)集得到了90%以上的準確率。
其中實體簡寫的問題在很多領域都有涉及,例如在高中升學規(guī)劃領域,自然語言中同一個學?;蛘邔I(yè)名可能存在多個同義簡寫表達。例如計算機科學與技術專業(yè)、南京大學,通常被簡稱為計科、南大等等。其中簡寫問題可以分為截斷簡寫與縮略簡寫兩類,截斷簡寫是指截取實體的某一連續(xù)部分表示實體,例如同濟大學簡稱為同濟;縮略簡寫是指抽取實體的不連續(xù)部分來表示實體,例如哈爾濱工業(yè)大學簡稱為哈工大。
目前命名實體識別應用最廣泛的架構(gòu)分為詞向量層、特征提取層及輸出層。其中詞向量層通常采用word2vec訓練的詞向量,特征提取層廣泛采用統(tǒng)計與深度學習相結(jié)合的雙向長短期神經(jīng)網(wǎng)絡接條件隨機場模型。在實驗中我們發(fā)現(xiàn)對于實體的簡寫識別此模型效果有限,主要原因在于詞向量訓練語料來源于結(jié)構(gòu)化網(wǎng)站的結(jié)構(gòu)化信息,文本表達較為規(guī)范。而簡寫實體由于實體的不完整性,其給定的詞,與待預測的詞與規(guī)范實體訓練的情景不一致,因而將其訓練的詞向量用來表示簡寫實體,會存在概率偏差,因此本文考慮在詞向量的表示上進行改進,從而更好地支持簡寫實體識別。
命名實體識別模型結(jié)構(gòu)如圖1 所示,首先在詞向量層會將語料表示成向量編碼的形式,詞的向量化表達能夠有效減少數(shù)據(jù)的維度,加快運算速度;將向量化表達的文本輸入到特征提取層,由機器學習或深度學習模型對輸入的信息進行特征提??;最后將提取的特征輸入到輸出層進行標簽預測。
圖1 命名實體識別模型結(jié)構(gòu)
圖1 中為word2vec 訓練的詞向量作為詞向量層,雙向長短期記憶網(wǎng)絡接條件隨機場作為特征提取層,經(jīng)過最大化條件概率作為輸出層的命名實體識別模型結(jié)構(gòu)。
Word2vec-BiLSTM-CRF模型主要包括Word2vec訓練的詞向量層,BiLSTM 的特征提取層以及CRF的序列標注。
2.2.1 Word2vec詞向量
由于機器學習的模型都是數(shù)字輸入,向模型直接輸入文本不便于模型對文本之間的關系進行學習。將文本變?yōu)橄蛄勘硎荆?4],可以簡化文本的表達形式,方便文本在計算機模型上進行運算。
早期使用詞袋模型對文本進行向量表示,即每一個單詞對應一個編碼,編碼長度與詞典中單詞個數(shù)相等。詞袋模型的向量維度大小與詞典大小成正相關,向量的稀疏表示造成極大的空間資源浪費,并且獨熱編碼無法度量單詞之間的關系。
Yoshua Bengio 最早于2003 年提出了基于神經(jīng)網(wǎng)絡的方法來訓練詞向量[15],但是限制于機器硬件與方法并未成熟等原因,這些編碼方法并未得到大規(guī)模應用。直到谷歌于2013 年推出了word2vec 詞向量訓練工具[16],其中包括跳字模型(skip-gram)和連續(xù)詞袋模型(continuous bag of words,CBOW),文本的向量表示得以快速發(fā)展。
skip-gram 利用當前詞來預測上下文。由給定的中心詞通過條件概率計算來預測中心詞的上下文(背景詞)。
在CBOW 模型中,則是已知詞w的上下文Context(w),需要預測w,對于給定的詞w就是一個正樣本,其他詞是負樣本,給定一個正樣本(Context(w),w),我們希望最大化訓練文本中每個單詞的概率和g(w)。如圖2 所示,給出待預測詞“濱”,其上下文分別文“哈爾”、“工業(yè)”,我們逐個計算每一個字在其上下文下的條件概率g(w),其公式如下:
其中,單個單詞的概率計算公式為
2.2.2 BILSTM特征提取
LSTM 最早由Sepp Hochreiter 和Jürgen Schmidhuber 于1997 年提出[17],Graves[18]等在2005 年提出了改進的雙向LSTM 模型,由前向LSTM 與后向LSTM組成。LSTM由于其設計的特點,非常適合用于對語音數(shù)據(jù),文本數(shù)據(jù)等時序數(shù)據(jù)的建模。由于序列標注任務需要對上下文進行建模,來理解不同語義下詞語的含義,因此LSTM 在序列標注任務中得到了廣泛應用。
LSTM 主要由記憶單元鏈接組成,單個記憶單元如圖3 所示。單個記憶單元主要組成包括輸入門,遺忘門,輸出門和單元,我們將訓練集的輸入語句用向量表示成L=(x1,…,xm)輸入到LSTM 的門單元,LSTM各門單元計算公式如下:
圖3 單個LSTM記憶單元
其中,σ為激活函數(shù),i,f,o,c分別表示輸入門,遺忘門,輸出門和單元,各門單元向量維度大小與隱藏層向量h維度一致。
2.2.3 CRF序列標注
LSTM在序列標注時認為當前時刻的輸出僅與當前狀態(tài)有關,忽略了當前輸出標簽與上一時刻輸出標簽之間的聯(lián)系,因此無法對標簽轉(zhuǎn)移關系進行建模。
CRF是一種典型的判別式模型,它在觀測序列的基礎上對輸出目標進行建模,重點解決序列標注的問題。對于給定觀察序列的整個標簽序列的聯(lián)合概率,CRF 有一個單指數(shù)模型。因此,不同狀態(tài)下不同特征的權值可以相互交換。因此解決了MEMM(Maximum entropy Markov models)[19]等模型使用前一個狀態(tài)指數(shù)模型導致的標簽偏移問題。將LSTM 的輸出作為CRF 的輸入,CRF 條件概率計算公式如下:
其中,tj(yi+1,yi,x,i)是定義在觀測序列的兩個相鄰標記位置上的轉(zhuǎn)移特征函數(shù),sk(yi,x,i)是定義在觀測序列的標記位置i上的狀態(tài)轉(zhuǎn)移特征函數(shù),tλj和uk為參數(shù),Z為規(guī)范化因子。
利用目前應用最廣泛的基于深度學習的模型將實體向量化表達,經(jīng)長短期神經(jīng)網(wǎng)絡訓練輸入條件隨機場,用于計算各標簽得分的概率分布來進行序列標注,可以在一定程度上緩解輸入錯誤與未出現(xiàn)的實體造成的識別錯誤問題。但在基于BiLSTM-CRF 模型的實體序列標注訓練過程中,實體的狀態(tài)轉(zhuǎn)移概率起著較為重要的作用,簡寫的實體與規(guī)范的實體狀態(tài)轉(zhuǎn)移概率不一致,因此在預測簡化表達的實體時可能會產(chǎn)生錯誤標注。
此模型在解決簡寫實體的序列標注時能力有限,原因在于預訓練的語料來自于百度百科等結(jié)構(gòu)化網(wǎng)站,缺乏簡寫實體的信息,詞向量訓練中不能夠有效模擬簡寫導致訓練的詞向量不能夠有效表示簡寫;在此基礎上提取的特征向量在表示簡寫實體時輸入到特征提取層會出現(xiàn)狀態(tài)轉(zhuǎn)移概率偏差,從而影響序列標注的正確性。我們針對此改進了CBOW 詞向量訓練模型,使得模型能夠模擬簡寫實體的情況,從而使實體的向量表示更貼合實際情況,使得經(jīng)訓練得到的轉(zhuǎn)態(tài)轉(zhuǎn)移概率更符合含有簡寫實體的情況,最終提高命名實體識別準確率。
本文針對簡寫問題的特點,對詞向量的訓練模型進行了改進,在訓練詞向量的過程中使用規(guī)范化詞典來對訓練語料進行標注,對訓練語料添加了標簽信息,將能夠匹配詞典的字標簽信息標為“1”,不能匹配的標簽標為“0”;進一步地我們將標簽為“1”的進行分詞,例如“哈爾濱工業(yè)大學”會被分為(哈爾濱,工業(yè),大學),我們對標簽進行細化,如{(1,1,1),(2,2,2),(3,3)},在訓練過程中我們會對非“0”標簽的上下文進行遮掩操作,從而模擬簡寫的情況。實驗結(jié)果表明,改進的算法模型在命名實體識別任務中,能夠更好地識別簡寫實體,從而取得更高的準確率。
模型結(jié)構(gòu)如圖4 所示。首先我們會將可能存在簡寫的實體e 加入到待匹配的實體庫M,在訓練時,我們首先對輸入語句L={w1,w2,w3,w4…}的每一個字增加flag=0 的初始標簽,訓練時我們將實體與語料進行匹配,i,j分別表示實體在語料中的起始位置與結(jié)束位置,我們定義成功匹配的標簽如下:
圖4 Lexicon-CBOW詞向量模型
為了保證縮略簡寫與截斷簡寫兩種情況的發(fā)生,我們進一步地將實體e=(wi…wi+j)按照詞語分詞再次切分為e=(wi…wi+m,…,wi+n…wi+j),對不同的分詞標簽細分為
在訓練過程中分為兩種情況,第一種為有20%幾率同時抹除“1”之后的同種標簽的字,我們稱之為“全標簽遮掩”;第二種為對各種標簽中部分字遮掩,但每種標簽仍然保留第一步操作,我們定義在一條輸入語句L中兩種遮掩方式互斥。其公式如下:
其中l(wèi)exicon表示實體庫,context(e)表示語料庫中的規(guī)范實體。
本文的實驗語料與數(shù)據(jù)來自于高校官網(wǎng)、百度百科以及升學規(guī)劃團隊提供的家長在高中升學規(guī)劃階段所詢問的問題記錄。問題中在大量簡寫實體,在對數(shù)據(jù)進行整理、清洗、增強之后,我們得到的訓練數(shù)據(jù)與測試數(shù)據(jù)量如表1 所示。 實體類別與各類別實體數(shù)量如圖5 所示。由于領域特殊性,升學規(guī)劃領域?qū)嶓w不存在單字符命名實體,故采用B-I-E-O方法標記,命名實體標簽如表2所示。
表1 訓練數(shù)據(jù)集
表2 命名實體標注方法
圖5 實體數(shù)目
Python版本為3.6.3,Tensorflow版本為1.6.0,本文模型部分實驗參數(shù)設置:詞向量窗口大小為3,詞向量維度為64,全局學習率(learning_rate)為0.002,訓練語料最大長度(sequence_len_pt)為100,BILSTM層dropout值(lstm_dropout_rate)為0.2,BILSTM 與全連接層之間的dropout 值(dropout_rate)為0.5,全連接層正則化率(l2_rate)為0.001。以上參數(shù)設置均為實驗調(diào)參過程得到的最佳結(jié)果。
本文采用正確率P、召回率R 和F1值作為評價指標:
本文的詞向量語料庫來源于高校首頁及陽關高考網(wǎng)。為了測試本文所提方法對簡寫實體識別的有效性,本文設置了詞向量層基于CBOW 模型、Skip-gram 模型與改進的Lexicon-CBOW 詞向量模型作為對比,特征提取層為BiLSTM-CRF。結(jié)果如表3所示,其中下標為P的表示規(guī)范實體,下標為N的表示簡寫實體。
表3 實驗結(jié)果
從實驗結(jié)果可以看出,我們的詞向量模型在簡寫實體的準確率、召回率與F1 值上與基于skip-gram,CBOW模型相比均有大幅提高。證明了Lexicon-CBOW模型在模擬簡寫實際情況上訓練出的詞向量能夠更加貼合簡寫的實際情況,訓練出的詞向量能夠?qū)唽憣嶓w有著更加準確的表示。測試集合用新的簡寫向量表示輸入到特征提取層,特征提出層能夠?qū)W習到更加貼近簡寫實際情況的狀態(tài)轉(zhuǎn)移特征,減少簡寫實體的標注錯誤。
中文命名實體識別應用廣泛,本文提出的在給定詞預測目標詞的基礎上,引入了實體標簽信息的詞向量模型能夠有效提高實體的簡寫識別準確率,將其應用到簡寫較多的領域如高中升學規(guī)劃,以支持例如問答系統(tǒng)、信息提取方面的工作,可以有效提升系統(tǒng)的性能。下一步的工作是進行實體消歧[20],區(qū)分兩個表達完全相同,含義不同的簡寫實體,以更好地支持實體簡寫識別。