陳靜雯,馬福民,劉 新,李 娟
(1.江蘇省突發事件預警信息發布中心,江蘇 南京 210008;2.南京財經大學信息工程學院,江蘇 南京,210023)
分詞是自然語言處理技術的基礎性工作,其結果直接影響后續的文本質量控制、本體構建、知識提取、輔助決策和輿情監控等工作。預警信息發布作為國家十三五規劃[1]應急體系建設中的重要一環,文本的正確性校驗及信息分析至關重要。然而,面對預警信息第一時間準確發布、快速發布的需求,預警文本專業術語、組合詞較多的獨特性以及一定規模語料庫的缺失,給面向預警領域的分詞方法帶來了巨大挑戰。如何在提高預警領域分詞效果的同時,兼顧分詞效率成為當前的研究熱點。
根據分詞文本是否涉及特定專業領域,中文分詞問題可以分為兩種類型:通用領域分詞方法和特定領域分詞方法。前者主要采用基于詞典的機械分詞方法或基于統計的分詞方法。機械分詞方法分詞速度快且易于實現,但詞典的構造結構對分詞速度有著直接的影響。為進一步提高分詞算法的效率,Zhou等[2]提出了一種雙字哈希詞典機制,在不提升已有詞典空間復雜度與維護復雜度的情況下,提高了中文分詞的效率。Chen等[3]深入分析最大匹配分詞算法的不足,根據首字詞長遞減原則構造雙字哈希詞典,并設計了相應的快速最大匹配分詞算法,分詞速度大幅提高。機械分詞算法在大多數情況下是合理的,但由于不涉及語法及語義知識,不具備歧義處理能力,容易引發一些切分錯誤。
為彌補機械分詞的不足,基于統計的分詞方法將分詞問題轉化為序列標注問題,將語料庫中漢字的共現頻率作為切分依據,能夠有效處理歧義并識別未登錄詞。常用方法包括條件隨機場、隱馬爾科夫[4-6]以及基于深度學習的長短期記憶神經網絡[7]、卷積神經網絡[8]分詞模型等。然而,當隱藏狀態數為N,預測狀態為NT時,條件隨機場模型和隱馬爾科夫模型的時間復雜度為,計算量較高,神經網絡模型的計算量則更為龐大。
由于通用詞典和通用語料庫的限制,通用分詞方法的領域適應性較差,直接將通用分詞方法應用于專業領域文本,其分詞效果會急劇下降。為此,諸多學者將領域信息引入通用分詞方法,嘗試研究針對特定領域的分詞模型[9-11]。Gong等[12]在馬爾科夫模型的基礎上,構建石油領域術語集,結合領域詞典和互信息校準粗分結果,實現對石油領域術語和組合詞的精確識別,為預警領域分詞提供了思路。Zhang等[13]采用雙向長短期記憶網絡對3774條預警信息文本數據集(約30萬余字)進行訓練,提出了一種針對預警文本的分詞算法。遺憾的是,算法過度依賴統計結果,語料庫的規模限制了分詞效果[3]。不同于石油文本,預警信息是一個非常狹窄的領域,以江蘇省為例,2018年度全年預警共11683條,漢字量不足200萬,且并未完成預警文本的人工語料標注工作,大規模語料庫構建困難重重。因此,文獻[13]的分詞結果在準確率、召回率上都無法滿足預警信息準確校驗的需求(P僅為87%)。針對這一問題,Lan等[14]詳細論證了較小規模語料庫在糾正場景中的可用性,提出了一種領域糾正器框架,第一階段使用通用分詞方法對文本進行粗分,可由任意一種分詞器完成;第二階段引入領域語料,利用LSTM模型構建領域糾正器,獲得了較好的分詞性能和魯棒性。在此基礎上,文獻[15]使用GRU代替LSTM,在一定程度上加快了訓練速度。仍存在的問題是,上述兩種領域糾正器分詞模型在兩個階段分別使用基于統計和神經網絡的分詞方法,在分詞效率上仍無法滿足預警信息第一時間快速發布的需求。
本文以領域糾正器分詞模型為理論基礎,深入探索預警文本特性,將詞頻作為權重信息,對文獻[3]的雙字哈希詞典構造方法進行改進,適用于預警文本的有效詞語排列位置大幅前移,匹配成功率得到極大提高。利用最大匹配分詞算法進行粗分,相對于完全依賴統計結果的領域適應模型[12],分詞效率進一步提高。在領域糾正階段,為彌補LSTM模型[13]在小規模語料庫上應用效果較弱以及單向GRU模型[15]忽略了未來語義信息的缺陷,采用雙向GRU模型提高了算法的領域適應性。對比實驗證明了分詞結果及分詞速度的優越性。
本章將介紹領域糾正器框架(Domain Corrector Frame-work,DCF)及其形式化說明。
領域糾正器框架由兩部分組成:通用分詞過程、領域糾正過程。圖1展示了領域糾正器框架的工作流程。其中,通用分詞過程僅對文本進行初步分詞,可由任意一種分詞器來完成。在獲得初步分詞結果后,領域糾正過程通過由統計模型實現的“糾正器”預測出針對通用分詞結果的糾正動作序列,結合預先定義的糾正邏輯逐字修改分詞結果,最終得到符合特定領域的分詞輸出。

圖1 領域糾正器框架流程圖
領域糾正器框架不依賴于構建通用分詞器時使用的語料資源和建模方法,大大降低了對訓練資源的要求。其形式化說明如下所述。
給定一個字符輸入序列xc=c1,c2,…,cn,經過通用分詞過程輸出原始的分詞結果,并將其轉換為分詞標簽序列ys=ls1,ls2,…,lsn,其中ls∈LS,Ls={B,N},B代表詞首字,N代表詞中字或者詞尾部。如分詞結果“江蘇省/氣象臺/發布/寒潮/藍色/預警/信號”對應的分詞標簽序列為“B,N,N,B,N,N,B,N,B,N,B,N,B,N,B,N”。
通用分詞過程結束后,xc和ys同時被送入稱之為“糾正器”的糾正模塊,以預測糾正標簽序列yC=lC1,lC2,…,lCn,其中lC∈LC,LC={U,LI,D} ,表示糾正動作的類型,U表示無需糾正,I表示插入字前空格,D表示刪除字前空格。例如對文本“我市區域空氣質量”的通用分詞結果為“我市區/域/空氣/質量”,準確分詞結果應為“我市/區域/空氣/質量”,則期望的糾正序列為“U,U,I,D,U,U,U,U”,可由CRF、LSTM等模型實現。
文獻[13]利用已有合法預警文本數據集和開放域通用公開數據集進行建模,設計了一種基于Bi-LSTM-CRF的預警信息分詞算法,是目前針對預警文本分詞效果最好的一種算法,分詞準確率達到0.87、召回率達到0.89。由于沒有進一步探究預警文本獨有的特點,分詞算法在準確率和召回率上仍有提高的空間。此外,該算法的高準確率建立在龐大建模數據集的基礎上,分詞速度較慢,距離預警信息第一時間快速發布的需求仍有差距。引入領域糾正器思想,在一定程度上解決了上述問題。
深入分析近五年的預警信息文本可以發現其存在如下特點:1)本文由通用詞匯及預警領域詞匯組成,通用詞匯占比較大;2)易產生歧義的部分通常伴有領域詞匯,如2.2節的“區域空氣質量”;3)預警發布相關法律規定對預警信息文本從內容及形式上作出了限制,因此,相當程度上的通用詞語在預警文本中不會出現,如人民日報語料庫收錄的“歷史”、“人民”、“科技大學”等。
考慮預警信息文本特點并兼顧算法效率,利用機械分詞算法作為通用分詞器對預警本文進行快速粗分較為合適。在3.2節提出了一種基于權重的雙字哈希詞典構造方法,進一步提高粗分效率。領域糾正階段,將近五年發布的預警文本作為語料庫進行建模,語料庫的領域針對性對提高分詞準確率幫助較高;使用運算效率較高的雙向GRU模型進行建模,分詞速度進一步提高。
詞典結構對機械分詞算法的效率有著舉足輕重的影響。由3.1節的分析可知,通用詞典中大部分詞語并不會在預警文本中出現,遍歷整個詞典的匹配機制嚴重影響切分速度。但考慮到防災減災事業的發展及政策變更可能會產生相對于歷史預警文本的未登錄詞,縮減通用詞典詞量并不合適。為在一定程度上提高通用分詞階段的分詞效率,設計了一種基于權重的字典構造方法。通過對已有合法預警本文的詞頻統計(出現次數總計),將詞頻作為權重信息,在雙字哈希的基礎上,標注詞典正文的權重信息,按權重逆序排列,大幅度減少匹配次數。詞典結構如圖2所示。

圖2 基于權重的詞典結構

文獻[13]將已有合法預警數據和開放域通用公開數據集作為輸入,通過LSTM-CRF模型訓練預警分詞模型。預警語料庫的規模不足導致領域適應性較弱,復雜的神經網絡結構則導致模型耗時較長。文獻[15]使用結構較為簡單的GRU-CRF模型構造領域糾正器,在加快訓練速度的時候減少了模型過度擬合的可能性,在小規模語料庫上的應用效果相對LSTM-CRF模型較優。然而,單向GRU模型僅攜帶過去的語義信息,并未考慮到未來語義對分詞結果的影響。針對規模較小的預警語料庫,本文采用雙向GRU-CRF模型,充分利用預警語義信息的同時兼顧模型構建效率。
3.3.1 Embedding層
該層由兩種不同的Embedding組成:漢字Embedding和分詞標簽Embedding,分別記為Ec∈R|D|×dc以及El∈R|Ls|×dl,其中|D|表示漢字字典的大小。一個漢字字符cl或一個分詞標簽lSt的前向數值向量為vLct和vLlt,逆序輸入的漢字Embedding和分詞標簽Embedding得到后向數值向量為vRct和vRlt。使用四詞位標簽集Ls={B,M,E,S},其中,B,M,E,S分別表示詞首字、詞中字、詞尾字和單字詞。
3.3.2 輸入層
在輸入層對詞向量和標簽向量進行兩次拼接。第一步將時刻前向向量vLct和vLlt,后向向量vRct和vRlt拼接為前向詞-標簽向量vLclt和后向詞-標簽向量vRclt。第二步將上下文窗口[t-k1,t+k2]中的k1+k2+1個向量拼接成前向GRUL、后向RGRUR和最終的輸入向量vinput,即
vLclt=[vLct,vLlt],vRclt=[vRct,vRlt]
GRUL=[vLclt-k1,vLclt-k1+1,…,vLclt-k2-1,vLclt-k2]
GRUR=[vRclt-k1,vRclt-k1+1,…,vRclt-k2-1,vRclt-k2]
vinput={[vLclt-k1,vRclt-k1],[vLclt-k1+1,vRclt-k1+1],…
3.3.3 隱藏層
隱藏層分別從序列的首端和尾端運行,某一時刻的輸出同時考慮過去和未來的上下文信息,在序列標注的任務上表現的更加優秀。GRU單元通過更新門和重置門來控制信息流動,計算過程如下:
更新門
zt=σ(Wz·[st-1,vinput])
重置門
rt=σ(Wr·[st-1,vinput])
狀態更新


3.3.4 CRF層
CRF層可推斷糾正序列的最優標記,進一步提高分詞正確率。隱藏表征向量序列h經過線性映射后可得到一元勢函數φnn(yCt,X)。而二元勢函數可由矩陣A∈R|LC|×|LC|來表達,Ai,j表示從糾正標簽i轉移到標簽j的分值。對于給定的糾正序列yC,其由輸入決定的條件概率計算如下



算法1 快速預警信息分詞算法(FCWS_ WI)
輸入:字符串x=c1c2…cn,c表示一個單字
輸出:分詞結果S=s1s2…sm,s表示一個詞
1) 對輸入的字符串,采用權重哈希雙子詞典及相應的最大匹配分詞算法,計算得到通用分詞階段的粗分結果M=m1m2…mp。



算法工作流程如圖3所示。

圖3 FCWS_ WI算法工作流程
為滿足預警信息第一時間準確發布的需求,本文提出了一種基于預警領域知識的權重哈希雙字詞典,通過減少通用分詞過程的匹配次數降低分詞算法計算量;構建已有合法預警文本語料庫,提出了一種基于雙向GRU-CRF的預警領域糾正器模型,從快速性、準確性兩方面對現有的面向預警領域的分詞方法進行了優化。實驗階段將從上述兩方面分別開展。
本文算法FCWS_WI,在通用分詞階段構造了適用于預警文本的領域詞典,匹配計算量大幅度縮減;為提高領域適應性,在領域糾正階段,針對性的采用已有合法預警文本作為語料庫,相對于文獻[13]的Bi-LSTM-CRF_WI算法語料庫規模較小,神經網絡訓練速度較快,進一步提高到了算法效率。
本節首先對比不同領域詞典下的粗分效果,再對現有領域分詞算法的計算時間進行對比。
實驗選用江蘇省2013年至2018年合法預警信息文本作為語料庫,記為DB1,構建本文權重哈希雙字詞典,將2019年合法預警信息文本作為測試數據,記為DB2。以上數據集均通過江蘇省氣象局預報員進行語義校準。數據集特征如表1所示。

表1 數據集
為證明本文引入權重信息構造詞典的領域優勢,實驗將對比三種哈希結構詞典:雙字哈希(記為Dic_Hash)、字長雙字哈希(記為Dic_ HashLen)以及本文提出的權重雙字哈希(記為Dic_HashWei)的粗分效率。三種詞典分詞結果示例如表2所示,平均計算時間見圖4。

表2 三種詞典結果分詞結果示例

圖4 不同樣本數量三種結構詞典平均分詞時間
由表2的分詞結果及圖4的平均分詞時間可知,三種詞典的不同構造方式,并不改變詞語在詞典中的相對位置,詞語長度信息和權重信息的引入旨在縮小有效匹配范圍,加快分詞速度,對分詞結果不構成任何影響。如圖4所示,本文所提出的Dic_HashWei詞典結構對分詞效率有著較大的貢獻,計算時間明顯快于采用Dic_ Hash和Dic_ HashLen兩種詞典結構。由于缺乏領域知識,基于Dic_ Hash和Dic_ HashLen兩種詞典的分詞算法在每一次匹配時都需遍歷整個詞典(概率),而基于Dic_HashFre的分詞算法在每一次匹配時都有極大的概率在小規模的搜索范圍內匹配到目標詞語,隨著數據集樣本數量的增加,后者的計算時間大幅下降,在搜索的快速性方面具有明顯的優勢。
在此基礎上,對比本文算法FCWS_WI與通用分詞算法MTE-CRFs[4]以及領域分詞算法:現有預警分詞算法Bi-LSTM-CRF_WI[13]、石油領域分詞算法HMM_O[12]、文獻[15]中的領域糾正器算法(記為:DCF-GRU)在算計效率上的表現。實驗結果如圖5所示。

圖5 不同樣本數量五種分詞算法平均計算時間
圖5的結果表明,由機械分詞算法、權重哈希雙字詞典和雙向GRU-CRF模型建立的分詞算法FCWS_WI能夠快速的得到預警文本的分詞結果。在樣本數量為22242時,領域分詞算法HMM_O、DCF-GRU、Bi-LSTM-CRF_WI平均分詞時間接近本文FCWS_WI算法的5倍、8倍和13倍。更進一步的,即使是相對領域分詞算法計算較為簡單通用分詞算法MTE-CRFs,其計算時間也是本文算法的2倍。相較而言,本文FCWS_WI分詞算法更好的滿足了預警信息第一時間發布的需求。
4.2.1 評價指標
文本使用準確率、召回率和F值評價分詞算法性能。其中,準確率是分詞正確的單詞數與分詞結果總數的比率,衡量分詞結果的查準率;召回率是分詞正確的單詞數與實際單詞總數的比率,衡量的是分詞結果的查全率。取值在0到1之間,越接近1準確率或召回率越高,具體定義如下:


4.2.2 預警領域分詞結果
實驗中用DB1訓練分詞模型,DB2作為測試數據,分別對比算法Bi-LSTM-CRF_WI、HMM_O以及本文算法FCWS_WI的分詞效果。部分分詞結果如表3所示。

表3 五種中文分詞算法分詞結果
在該段預警文本中,含有“大到暴雨”、“大暴雨”、“強降水”、“部分地區”等預警常用詞語常用詞匯和“將出現”、等歧義短語,紅色標注錯誤分詞結果。通用分詞算法MTE-CRFs未考慮預警領域語義,對比領域分詞算法分詞能力較差。同時使用通用語料庫和領域語料庫訓練模型的Bi-LSTM-CRF_WI算法、HMM_ O算法以及未考慮未來語義的DCF-GRU算法,在預警文本的切分上仍存在偏差。反觀本文FCWS_WI算法,由于在訓練模型時僅使用預警領域語料,領域適應性較強,上述詞語均被有效識別并切分。三種算法的準確率、召回率和F值如表4所列。

表4 準確率、召回率及F值對比(單位:100%)
本文算法準確率、召回率及F值的結果都高于Bi-LSTM-CRF_WI算法和HMM_O算法,且都高于90%,進一步說明了本文算法在分詞效果上的優越性。
作為國家應急體系的重要工作之一,預警信息的第一時間快速發布,對預警領域分詞算法的效率和準確性作出了較高的要求。將領域糾正器模型作為理論基礎,分析預警文本特性,提出了一種針對預警信息的領域分詞模型。①引入權重信息構建哈希雙字詞典,在保證切分結果不變的前提下大幅度縮減匹配計算量,粗分效率提高可達6倍。② 僅采用已有合法預警文本構建領域語料庫,選用小規模語料庫應用效果較優的GRU模型進行建模,結構較為簡單,分詞速度相對于現有領域分詞器提高了5-13倍。③考慮到未來語義信息對分詞結果的影響,構建雙向GRU-CRF模型,進一步提高領域適應性,在準確率、召回率和F值方面較現有分詞算法提高5.06%、2.78%和3.9%。下一步工作是研究如何從領域語料中進一步提取語義信息,提高未登錄詞的處理能力。