劉小安,彭 濤
1.北京聯(lián)合大學(xué) 智慧城市學(xué)院,北京100101
2.北京聯(lián)合大學(xué) 機(jī)器人學(xué)院,北京100101
命名實(shí)體識別(Named Entity Recognition,NER)是自然語言處理(Natural Language Processing,NLP)的一項(xiàng)基礎(chǔ)任務(wù),它的重要作用是從文本中準(zhǔn)確識別出人名、地名、機(jī)構(gòu)名、時間、貨幣等信息[1]。命名實(shí)體識別是很多語義理解應(yīng)用的基礎(chǔ),可以為上層應(yīng)用提供實(shí)用、有效的文本信息。在問答系統(tǒng)中,常常會遇到需要回答某個人名、地點(diǎn)、機(jī)構(gòu)以及其他實(shí)體的事實(shí)型問題,常規(guī)分詞結(jié)果并不能滿足需要,因此將命名實(shí)體識別技術(shù)應(yīng)用其中將對問題文本做出更準(zhǔn)確的理解[2-4]。在自動文摘任務(wù)中,文本中的命名實(shí)體通常包含重要的信息內(nèi)容,因此對文本進(jìn)行命名實(shí)體識別,進(jìn)一步篩選出重要實(shí)體形成文本摘要將獲得更好效果[5-6]。
現(xiàn)有研究主要集中于通用領(lǐng)域人名、地點(diǎn)、機(jī)構(gòu)名的實(shí)體識別,已經(jīng)取得了較好的效果[7-10]。在旅游領(lǐng)域,旅游景點(diǎn)是旅游過程中的重要組成部分,對于旅游景點(diǎn)的識別也很重要,它直接影響旅游領(lǐng)域問答系統(tǒng)的答案獲取和旅游文本中的信息抽取。目前對于中文旅游景點(diǎn)命名實(shí)體識別的研究主要采用基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法。郭劍毅等人[11]提出一種基于層級條件隨機(jī)場的方法,該方法相對于隱含馬爾可夫模型(Hidden Markov Model,HMM)F1值提高了15個百分點(diǎn)。但是該方法主要依賴于特征模板,而特征模板的構(gòu)建是一個非常費(fèi)力的過程。此外引入了較多的外部信息(如指界詞),這些外部詞典數(shù)量巨大,難以全部收錄,當(dāng)詞典中的指界詞成為景點(diǎn)實(shí)體的一部分時,將導(dǎo)致識別錯誤。
中文旅游景點(diǎn)的識別難點(diǎn)在于:
(1)景點(diǎn)實(shí)體數(shù)量巨大,不能枚舉,也難以全部收錄到詞典中。經(jīng)不完全統(tǒng)計(jì),北京大大小小的旅游景點(diǎn)數(shù)量就有6 000多個。這里指的景點(diǎn)包含了嵌套景點(diǎn),如“恭王府”中的“多福軒”,在本文中也視為獨(dú)立的景點(diǎn)實(shí)體。
(2)景點(diǎn)實(shí)體名稱豐富多樣,沒有嚴(yán)格的規(guī)律可以遵循。如北京雁棲湖有一個小景點(diǎn)名稱為“牽手”;頤和園有一個小景點(diǎn)名稱為“湖山真意”。
(3)經(jīng)常采用縮寫形式。如“故宮博物院”在實(shí)際旅游文本中常用“故宮”,“天壇公園”在實(shí)際文本中常用“天壇”。
本文在現(xiàn)有研究的基礎(chǔ)上,提出一種基于CNNBiLSTM-CRF網(wǎng)絡(luò)模型的中文景點(diǎn)識別方法。該方法避免了人工特征的構(gòu)建,實(shí)現(xiàn)了“端到端”中文景點(diǎn)實(shí)體識別,并且在測試集上達(dá)到了93.9%的F1值。
目前命名實(shí)體識別已經(jīng)得到了國內(nèi)外學(xué)者的廣泛研究。在中文命名實(shí)體識別方面,命名實(shí)體識別的主要方法分為:基于規(guī)則的方法、基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。早期的命名實(shí)體識別研究主要采用基于規(guī)則的方法。張小衡等人[12]從語言學(xué)的角度總結(jié)規(guī)則,對中文機(jī)構(gòu)名進(jìn)行識別分析;張艷麗等人[13]基于經(jīng)驗(yàn)對文本數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析來總結(jié)規(guī)則,對中文機(jī)構(gòu)名進(jìn)行實(shí)體識別;Zhang等人[14]利用基于記憶學(xué)習(xí)(Memory Based Learning,MBL)的算法獲取規(guī)則,用于抽取命名實(shí)體和它們之間的關(guān)系?;谝?guī)則的方法多采用語言學(xué)專家根據(jù)經(jīng)驗(yàn)和對數(shù)據(jù)的分析手工構(gòu)造規(guī)則模板,或者是通過啟發(fā)式算法獲取模板,這類方法在某些語言學(xué)規(guī)律性較強(qiáng)的命名實(shí)體識別任務(wù)下,往往能夠表現(xiàn)出較高的準(zhǔn)確率。但是這些規(guī)則往往依賴于具體語言、領(lǐng)域、文本格式,編制過程耗時且容易產(chǎn)生錯誤,并且需要富有經(jīng)驗(yàn)的語言學(xué)家才能完成[15]。
相比而言,基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法主要利用人工標(biāo)注的語料進(jìn)行訓(xùn)練,標(biāo)注語料時不需要廣博的計(jì)算語言學(xué)知識,并且可以在較短時間內(nèi)完成。這類方法將命名實(shí)體識別任務(wù)規(guī)約為序列標(biāo)注任務(wù)?;诮y(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法主要包括:隱含馬爾可夫模型、最大熵(Maximum Entropy,ME)、支持向量機(jī)(Support Vector Machine,SVM)、條件隨機(jī)場(Conditional Random Field,CRF)等。廖先桃等人[16]采用HMM模型進(jìn)行中文命名實(shí)體識別,在北大富士通語料上達(dá)到了85.28%的F1值;李麗雙等人[17]使用SVM模型進(jìn)行中文地名識別;孫麗萍等人利用CRF對企業(yè)簡稱進(jìn)行命名實(shí)體識別。在這類方法中,研究者針對不同的問題提出大量的人工特征,包括詞特征、邊界特征、上下文特征、常用命名實(shí)體字符特征等。實(shí)驗(yàn)表明,這些特征和基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的結(jié)合在相關(guān)的中文命名實(shí)體識別任務(wù)上能夠取得較好的識別效果。但是該類方法很大程度上依賴于人工特征的設(shè)計(jì),并且有些特征難以清晰地通過機(jī)器語言表達(dá)和實(shí)現(xiàn),與此同時,人工特征在提高模型性能的同時也使得模型的泛化能力降低。
近年來,深度神經(jīng)網(wǎng)絡(luò)模型不斷發(fā)展,涌現(xiàn)出海量的深度神經(jīng)網(wǎng)絡(luò)模型,并在圖像識別、語音識別等任務(wù)上取得了巨大突破。這類模型最大的特點(diǎn)在于大幅減少了人工特征,實(shí)現(xiàn)了模型“端到端”的學(xué)習(xí)。張海楠等人[18]提出一種基于字、詞向量相結(jié)合的深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行中文命名實(shí)體識別,在1998年《人民日報(bào)》語料上機(jī)構(gòu)名識別達(dá)到了91.06%的F1值。模型主要對輸入文本進(jìn)行了字粒度和詞粒度的向量化表示,通過字詞結(jié)合的方式提升全聯(lián)接神經(jīng)網(wǎng)絡(luò)的實(shí)體識別效果。該模型雖然在文本的特征表示上進(jìn)行了優(yōu)化,但是沒有充分利用文本的上下文信息。王蕾等人提出一種基于神經(jīng)網(wǎng)絡(luò)片段的中文命名實(shí)體識別方法,通過引入離散特征與稠密向量結(jié)合的方式來充分表示文本的局部特征信息,在MSRA語料上達(dá)到了90.44%的F1值。朱丹浩等人[9]提出一種漢字級別循環(huán)神經(jīng)網(wǎng)絡(luò)方法來進(jìn)行命名實(shí)體識別,在1998年《人民日報(bào)》語料上達(dá)到了88.69%的F1值。該模型通過雙向長短記憶神經(jīng)網(wǎng)絡(luò)(Bidirectional Long Short Term Memory,BiLSTM),充分利用片段級上下文信息,并通過對模型輸入層和輸出層的改進(jìn)來提高模型效果,但是該模型在輸出層的改進(jìn)沒有進(jìn)一步考慮輸出序列的上下文信息,并對輸出標(biāo)注進(jìn)行全局約束,容易出現(xiàn)標(biāo)注不合法的情況。
本文在上述研究的基礎(chǔ)上,提出一種基于CNNBiLSTM-CRF的網(wǎng)絡(luò)模型。首先使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)結(jié)構(gòu)對文本字符級的信息進(jìn)行編碼,對景點(diǎn)實(shí)體的局部特征信息進(jìn)行表示學(xué)習(xí),然后將局部抽象特征信息作為BiLSTM的輸入,進(jìn)一步通過BiLSTM來充分學(xué)習(xí)文本的上下文信息,而在BiLSTM模型的輸出層,采用鏈?zhǔn)紺RF對模型標(biāo)簽之間的關(guān)系進(jìn)行學(xué)習(xí)和約束,最終輸出景點(diǎn)命名實(shí)體識別結(jié)果。經(jīng)實(shí)驗(yàn)對比,該模型在本文構(gòu)建的中文景點(diǎn)數(shù)據(jù)集中,不需要加入任何人工特征,能達(dá)到較好的效果,F(xiàn)1值為93.9%。
本文提出的基于CNN-BiLSTM-CRF的模型結(jié)構(gòu)如圖1所示。該模型主要包含四部分:字向量矩陣、CNN、BiLSTM、CRF。模型首先通過字粒度的詞袋模型將輸入的字序列轉(zhuǎn)換成對應(yīng)字的ID序列;然后通過Skip-Gram模型[19]將輸入ID序列轉(zhuǎn)換為字向量矩陣;進(jìn)一步通過CNN來對輸入文本的局部特征進(jìn)行抽象化抽取和表示;接著通過BiLSTM充分學(xué)習(xí)文本的上下文特征信息;最后使用CRF來輸出一個全局最優(yōu)的標(biāo)記序列。
圖1 CNN-BiLSTM-CRF模型
卷積神經(jīng)網(wǎng)絡(luò)是一種可以實(shí)現(xiàn)“端到端”學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型,該模型通過局部接收域、權(quán)重共享和降采樣三大特點(diǎn),能夠?qū)崿F(xiàn)對輸入數(shù)據(jù)的特征學(xué)習(xí)和特征表示。Kim[20]使用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行文本分類,取得了較好的效果;Ma[21]、Chiu[22]等人使用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行通用命名實(shí)體識別,并在公開英文命名實(shí)體識別數(shù)據(jù)集上取得較好效果。卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)在于能夠?qū)植窟B續(xù)的突出特征進(jìn)行很好的捕捉和特征表示,并通過多層卷積將多個局部特征進(jìn)行組合以獲得更為抽象的高層表示。而在中文旅游文本中,旅游景點(diǎn)實(shí)體也是處于文本的局部,并且一個實(shí)體是由連續(xù)的字組成(單字實(shí)體除外),具備局部連續(xù)的特點(diǎn)。此外有些中文旅游景點(diǎn)實(shí)體是由多個獨(dú)立實(shí)體組合而成(如“故宮博物院”),具備局部組合的特點(diǎn)。因此本文使用卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)來對文本中實(shí)體的特征信息進(jìn)行學(xué)習(xí)和表示,為上層網(wǎng)絡(luò)提供更為有效的局部信息。本文使用的卷積神經(jīng)網(wǎng)絡(luò)與Chiu所用網(wǎng)絡(luò)基本相似(如圖1中CNN部分所示),而不同點(diǎn)在于,為了盡可能減少額外的輸入和先驗(yàn)知識,實(shí)現(xiàn)“端到端”的學(xué)習(xí)模型,本文僅采用字符向量矩陣作為網(wǎng)絡(luò)模型的輸入;此外,采用ReLU[23]函數(shù)作為激活函數(shù),以提高模型收斂速度。
其中,為了解決由于文本長度不一致而導(dǎo)致的輸入字向量矩陣不一致問題,本文以通過統(tǒng)計(jì)方法獲得數(shù)據(jù)的文本長度分布,并在此基礎(chǔ)上選擇合適的文本長度,為不夠文本最大長度的文本末尾補(bǔ)充占位符使得輸入矩陣大小一致;在池化層中,本文采用最大池化(Max Pooling)方法進(jìn)行下采樣,從而獲得更加抽象的文本特征,并且在一定程度上防止模型過擬合。
雙向長短記憶網(wǎng)絡(luò)(BiLSTM)[24]是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Nerual Network,RNN)的一個變種模型,該模型能夠有效地克服傳統(tǒng)RNN在長距離依賴下所帶來的梯度爆炸和梯度消失問題[25]。此外,該模型相對于長短記憶神經(jīng)網(wǎng)絡(luò)(Long Short Term Memory,LSTM),能夠充分利用輸入序列的上下文信息,從而更多挖掘序列中的隱含特征,提升模型整體效果。雙向LSTM的基本思想即通過前向、后向LSTM兩個隱藏層來分別獲取輸入序列的前向和后向信息,并在最后通過結(jié)合形成輸出。在命名實(shí)體識別任務(wù)中,通過對張小衡、張艷麗等人基于規(guī)則的方法進(jìn)行分析可以發(fā)現(xiàn),實(shí)體前向、后向所包含的文本信息(如“去”“逛”“參觀”“游玩”等)能夠?yàn)閷?shí)體的識別帶來有效的特征信息。因此本文使用BiLSTM來對上下文的有效信息進(jìn)行學(xué)習(xí),以達(dá)到更好的模型效果。本文使用的BiLSTM模型主要結(jié)構(gòu)LSTM單元(如圖2所示)可形式化表示如式(1)~式(6)所示。
圖2 LSTM單元結(jié)構(gòu)
其中,xt是當(dāng)前時刻的輸入;it、ft、ot分別是輸入門、遺忘門、輸出門函數(shù);ct、ht表示當(dāng)前時刻的隱狀態(tài);⊙表示點(diǎn)乘運(yùn)算;σ表示sigmoid激活函數(shù);tanh表示雙曲正切激活函數(shù);ht-1、ct-1分別代表上一時刻的兩部分隱狀態(tài);Wf、Wi、Wc、Wo表示模型權(quán)重矩陣;bf、bi、bc、bo表示模型偏置向量。
條件隨機(jī)場(CRF)是用來標(biāo)注和劃分序列結(jié)構(gòu)數(shù)據(jù)的概率化模型結(jié)構(gòu)。該模型能夠考慮到標(biāo)簽之間的關(guān)系以輸出識別序列的全局最優(yōu)序列。本文使用的是鏈?zhǔn)紺RF,對于給定的文本字序列X={x1,x2,…,xn}(n表示字符序號),定義矩陣B表示輸入字序列X時模型BiLSTM層的輸出結(jié)果,其維度為N×K(N表示句子字符個數(shù),K表示識別標(biāo)簽個數(shù)),得到給定某一個字序列X,某一個預(yù)測序列y={y1,y2,…,yn}與X的聯(lián)合概率如式(7)所示。其中,A是狀態(tài)轉(zhuǎn)移矩陣。進(jìn)一步可得到,給定文本字序列X的條件下,產(chǎn)生標(biāo)記序列y的條件概率如式(8)所示。
對于鏈?zhǔn)紺RF的訓(xùn)練過程,本文使用極大似然估計(jì)作為代價函數(shù);在預(yù)測過程中,輸出條件概率最大的預(yù)測序列。在本文實(shí)驗(yàn)中,采用維特比算法(Viterbi algorithm)來快速獲得全局最優(yōu)序列。
由于目前還沒有公認(rèn)度較高的旅游領(lǐng)域文本預(yù)料,本文從旅游相關(guān)網(wǎng)站上爬取了8 900余篇北京旅行游記文本作為初始未標(biāo)注數(shù)據(jù),經(jīng)過去除空白行、空格、非文本相關(guān)內(nèi)容等預(yù)處理操作,得到旅游領(lǐng)域文本34萬余條句子。同時通過高德地圖旅游景點(diǎn)數(shù)據(jù)和旅游網(wǎng)站檢索構(gòu)造了北京旅游景點(diǎn)詞典,經(jīng)過去重和人工審核后,得到有效景點(diǎn)詞8 000余個。本文通過詞典對旅游文本進(jìn)行自動化標(biāo)注,標(biāo)注樣例如表1所示,并構(gòu)建模型訓(xùn)練集和測試集,具體數(shù)據(jù)情況如表2所示。
表1 旅游文本標(biāo)注樣例
表2 訓(xùn)練集和測試集數(shù)據(jù)情況
為了驗(yàn)證訓(xùn)練集和測試集的可靠性,本文從自動化標(biāo)注的數(shù)據(jù)集中隨機(jī)抽取3組數(shù)據(jù),每組數(shù)據(jù)20 000條句子。經(jīng)過專家人工審核,得到平均標(biāo)注準(zhǔn)確率約為97%,具體如表3所示。
表3 訓(xùn)練集和測試集數(shù)據(jù)情況
本文采用命名實(shí)體識別常用的評價指標(biāo),即準(zhǔn)確率(Precision,P)、召回率(Recall,R)和F1測度值(F1-score,F(xiàn)1),如式(9)~式(11)所示。
為了驗(yàn)證本文提出的模型結(jié)構(gòu)的有效性,設(shè)計(jì)了3組對比實(shí)驗(yàn),分別與LSTM模型、BiLSTM模型、BiLSTM+CRF模型進(jìn)行對比。訓(xùn)練過程中均使用本文構(gòu)建的全量訓(xùn)練集進(jìn)行模型訓(xùn)練,模型輸入為經(jīng)過統(tǒng)一處理得到的文本字符向量矩陣,經(jīng)實(shí)驗(yàn)分析后指定每一個字的向量維度為256。實(shí)驗(yàn)過程受限篇幅不做贅述。訓(xùn)練過程中所涉及到的模型參數(shù)均和本文提出的模型所使用的參數(shù)一致,實(shí)驗(yàn)結(jié)果如表4所示。
表4 模型有效性驗(yàn)證對比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果顯示,BiLSTM模型在各評價指標(biāo)上相比于LSTM模型有較大幅度的提升。通過對LSTM模型預(yù)測錯誤的結(jié)果進(jìn)行分析發(fā)現(xiàn),LSTM模型識別錯誤主要是丟失實(shí)體開頭一兩個字,導(dǎo)致實(shí)體本身不完整,使得識別錯誤。比如“這個是蘇州街”中的“蘇州街”,模型預(yù)測為“州街”;“順貞門乃內(nèi)延通往神武門之重要通道”中的“順貞門”“神武門”,模型預(yù)測為“貞門”“武門”。其主要原因在于LSTM相對于BiLSTM,不能夠更加充分地學(xué)習(xí)到文本的上下文信息。相比于BiLSTM模型,BiLSTM+CRF模型在準(zhǔn)確率上提高了2.51個百分點(diǎn),在召回率和F1值上也分別有一定的提升。由于CRF本質(zhì)上是給定觀測序列和標(biāo)識序列的轉(zhuǎn)移矩陣,該模型充分利用相鄰標(biāo)簽關(guān)系,輸出全局最優(yōu)序列。對模型預(yù)測錯誤的結(jié)果進(jìn)行對比發(fā)現(xiàn),相對于BiLSTM將各個標(biāo)簽視為相對獨(dú)立進(jìn)行計(jì)算,CRF模型很少出現(xiàn)將一個完整實(shí)體拆分成兩部分非實(shí)體詞的情況(如“夜幕中的國家大劇院”中的“國家大劇院”,模型識別為“國家”“劇院”兩個實(shí)體),能夠更為準(zhǔn)確地識別實(shí)體。本文提出的模型相比于BiLSTM+CRF模型,在召回率上提高了近1個百分點(diǎn),并且準(zhǔn)確率和F1值也得到了一定的提升,表明CNN能夠進(jìn)一步抽取文本的局部有效特征,提升模型的識別效果。
為了進(jìn)一步驗(yàn)證本文模型的識別效果,本文設(shè)計(jì)了4組對比實(shí)驗(yàn)。由于現(xiàn)有研究對于中文旅游景點(diǎn)命名實(shí)體識別的研究較少,本文選擇了主流的兩組基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法和兩組基于深度學(xué)習(xí)的方法進(jìn)行對比實(shí)驗(yàn):廖先桃等人[16]提出的基于HMM模型的方法;郭劍毅等人[11]提出的基于層級條件隨機(jī)場的方法;Lample等人[26]提出的基于BiLSTM+CRF的方法;Chiu等人[22]提出的基于CNN+BiLSTM的方法。實(shí)驗(yàn)結(jié)果如表5所示。
表5 相關(guān)工作對比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,基于深度學(xué)習(xí)方法的模型效果要優(yōu)于基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法。在基于深度學(xué)習(xí)的方法中,Lample等人的方法通過BiLSTM+CRF模型,充分學(xué)習(xí)訓(xùn)練文本的上下文特征信息,得到了94.76%的準(zhǔn)確率和91.96%的召回率。而本文模型在該模型的基礎(chǔ)上,準(zhǔn)確率提高了0.27%,召回率提高了0.84%。因?yàn)楸疚脑贐iLSTM之前采用CNN對文本的局部特征信息進(jìn)行建模和學(xué)習(xí),除了利用上下文信息之外,也充分利用景點(diǎn)實(shí)體自身的局部特征信息。Chiu等人的方法充分學(xué)習(xí)文本的局部信息,因此在召回率上相對于Lample的方法提高了約1個百分點(diǎn)。而本文模型既考慮文本的上下文信息,又關(guān)注于文本的局部特征信息,在準(zhǔn)確率上,相對于該模型提高了1.46%。此外,本文通過鏈?zhǔn)紺RF模型對輸出序列的上下文信息進(jìn)行全局約束,減少模型輸出標(biāo)注不合法的情況。從上述對比實(shí)驗(yàn)可以看出,本文提出的模型不用加入任何人工特征,取得了最好的實(shí)驗(yàn)效果。
本文針對中文旅游景點(diǎn)實(shí)體識別的特點(diǎn)和難點(diǎn),提出一種基于CNN-BiLSTM-CRF的網(wǎng)絡(luò)模型。實(shí)驗(yàn)結(jié)果表明,該模型在未使用人工特征的情況下,取得了較好的效果。該模型通過卷積神經(jīng)網(wǎng)絡(luò)來對文本的局部信息特征進(jìn)行抽象化抽取和表示,使得模型在召回率上得到一定的提升;同時,通過BiLSTM充分學(xué)習(xí)訓(xùn)練文本的上下文信息;在輸出結(jié)果上,使用鏈?zhǔn)紺RF來輸出全局最優(yōu)的標(biāo)記序列,提高了模型的準(zhǔn)確率,進(jìn)而達(dá)到最高的F1值。下一步工作可以考慮將Attention機(jī)制[27]加入到當(dāng)前模型,也可以進(jìn)一步探索將最新的語言表示模型——雙向編碼器表示模型(Bidirectional Encoder Representations from Transformers,BERT)[28]嵌入到字粒度向量矩陣中,進(jìn)一步提高實(shí)體識別效果。