姜 濤,陸 陽,2,張 潔,洪 建
1(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥 230601)2(安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,合肥 2306013(安徽醫(yī)科大學(xué)第一附屬醫(yī)院 信息中心,合肥 230022)
在中文自然語言處理領(lǐng)域中,對文本進(jìn)行分詞通常是第一步.由于中文中沒有明顯的界限符,所以在英文中不存在的分詞問題在中文中卻是很重要的一步.而歧義詞和未登錄詞(out-of-vocabulary,簡稱OOV)是影響分詞準(zhǔn)確率的重要因素.Bakeoff 數(shù)據(jù)上的估算結(jié)果表明,未登錄詞造成的分詞精度失落至少比歧義詞大5倍[1].然而隨著科技的迅猛發(fā)展,新的未登錄詞和未登錄詞的變體層出不窮,依靠人力去構(gòu)建詞庫費(fèi)時(shí)費(fèi)力,因而使用某些方法讓計(jì)算機(jī)自動(dòng)從文本中挖掘出新詞成為一項(xiàng)重要的課題.
目前主流的未登錄詞識別的方法是根據(jù)詞的外部特征進(jìn)行識別.Huang等在文獻(xiàn)[2]中提出了一種基于互信息和鄰接熵進(jìn)行新詞識別的方法,這種方法通用性強(qiáng)、使用簡單,但容易產(chǎn)生大量的垃圾詞串,需要人工進(jìn)行標(biāo)記.解決這個(gè)問題常用的方法是對語料進(jìn)行預(yù)分詞[3,4].使用有監(jiān)督算法進(jìn)行預(yù)分詞準(zhǔn)確率較高,但需要大量的標(biāo)注語料,代價(jià)較大.使用通用的分詞工具,由于領(lǐng)域的變化不可避免的帶來訓(xùn)練語料中未曾出現(xiàn)的專有詞匯,使得領(lǐng)域適應(yīng)性較差,造成預(yù)分詞性能的下降[5],最終影響新詞識別的準(zhǔn)確率.
針對上述問題,本文在新詞識別算法[2]的基礎(chǔ)上提出了一種改進(jìn)算法.首先對語料進(jìn)行無監(jiān)督預(yù)分詞,然后根據(jù)詞頻、互信息和鄰接熵等詞的特征對候選詞組進(jìn)行過濾,最終得到新詞.在實(shí)驗(yàn)部分將本文提出方法和Huang等提出的baseline方法、使用ICTCLAS進(jìn)行預(yù)分詞的方法進(jìn)行對比.實(shí)驗(yàn)表明在多領(lǐng)域的語料上進(jìn)行新詞識別,我們使用無監(jiān)督預(yù)分詞方法的準(zhǔn)確率和領(lǐng)域適應(yīng)性均超過ICTCLAS.
目前新詞識別主要有兩類方法,一類是基于規(guī)則識別新詞,另一類是基于統(tǒng)計(jì)識別新詞.前者是通過語言構(gòu)詞學(xué)的原理,配合語義信息和詞性信息來構(gòu)造規(guī)則進(jìn)行匹配.這種方法準(zhǔn)確率高、針對性強(qiáng),但基于規(guī)則僅僅適用于特定領(lǐng)域,并且維護(hù)十分困難.基于統(tǒng)計(jì)的方法是通過提取詞的特征信息進(jìn)行統(tǒng)計(jì),再根據(jù)不同的特征進(jìn)行新詞識別.相比較基于規(guī)則的方法,基于統(tǒng)計(jì)更加靈活,在各領(lǐng)域都有較好的適用性.其中統(tǒng)計(jì)的方法又可以分為有監(jiān)督的方法和無監(jiān)督的方法.有監(jiān)督的方法通常基于大規(guī)模語料,將新詞識別問題轉(zhuǎn)化成詞的分類或者標(biāo)注問題,利用最大熵模型、條件隨機(jī)場等對標(biāo)記進(jìn)行解碼,然后獲取詞邊界,進(jìn)而分詞得到新詞[6].有監(jiān)督的方法準(zhǔn)確率高,產(chǎn)生的垃圾串少,但需要對語料進(jìn)行大批量的標(biāo)注處理.無監(jiān)督的方法主要是計(jì)算詞的統(tǒng)計(jì)量特征,然后對候選詞進(jìn)行篩選,最后得到新詞詞表.常用的統(tǒng)計(jì)量有詞頻、詞性、文檔頻率、互信息、鄰接熵等.
陳飛等[7]基于條件隨機(jī)場將新詞識別問題轉(zhuǎn)化為預(yù)測詞邊界的問題,并歸納了許多詞邊界的特征,在開放語料上取得了較好的效果.杜麗萍等[3]提出一種改進(jìn)算法PMIk,在貼吧語料上獲得了精確率和召回率的提升.李文坤等[8]提出了一種鄰接熵?cái)U(kuò)展的方法,并在COAE2014提供的語料上取得了較好的效果.張華平等[9]將有監(jiān)督和無監(jiān)督的方法結(jié)合起來,使用基于條件隨機(jī)場的字標(biāo)注模型進(jìn)行候選詞提取,然后進(jìn)行命名實(shí)體過濾,最后結(jié)合詞的一些特征進(jìn)行新詞發(fā)現(xiàn),其效果在開放領(lǐng)域預(yù)料上得到了驗(yàn)證.張婧等[10]在傳統(tǒng)的詞特征的基礎(chǔ)上加入了詞向量作為新的特征,并以此改進(jìn)了一種無監(jiān)督的新詞識別方法.在當(dāng)前高質(zhì)量的標(biāo)注語料的缺失的背景下,無監(jiān)督方法相比較有監(jiān)督方法,無需大規(guī)模標(biāo)注語料的支持,能適用于各個(gè)領(lǐng)域,更具有實(shí)際意義.
統(tǒng)計(jì)語言模型(Statistical Language Model)是基于統(tǒng)計(jì)的方法來描述詞、句子、文檔等語法單元的概率模型,能夠衡量出詞、句子等是否符合人類日常語言表達(dá).一般來說,語言模型的實(shí)質(zhì)都是將句子的概率分解為各個(gè)單詞的條件概率的乘積[11].
使用w1,w2,…wn來表示一個(gè)句子中的各個(gè)詞,那么該句子S出現(xiàn)的概率如公式(1)中所示.
(1)
其中n表示句子中包含的詞的數(shù)量,p(wi)表示第i個(gè)詞wi出現(xiàn)的概率,p(wi|w1,w2,…,wi-1)表示在第1個(gè)詞到第i-1個(gè)詞出現(xiàn)的前提下,第i個(gè)詞出現(xiàn)的概率.可見計(jì)算一個(gè)詞wi出現(xiàn)的概率依賴于前面的i-1個(gè)詞出現(xiàn)的概率,而計(jì)算所有的條件概率并不現(xiàn)實(shí).數(shù)學(xué)家馬爾可夫提出了著名的齊次馬爾科夫假設(shè),認(rèn)為詞wi出現(xiàn)的概率只與前一個(gè)詞wi-1相關(guān),并由此衍生出N元模型(N-gram Model)[12].
N元模型滿足N-1階的馬爾可夫假設(shè),即認(rèn)為詞wi出現(xiàn)的概率與前面的N-1個(gè)詞相關(guān),而與更前面的詞無關(guān),其具體描述如公式(2)所示:
p(wi|w1,…,wi-1)=p(wi|wi-N+1,…,wi-1)
(2)
本式中N的選取決定了模型的精度和復(fù)雜性,N值越大,對詞語之間依賴關(guān)系的描述越準(zhǔn)確,但同時(shí)計(jì)算復(fù)雜度也越高.
互信息(Mutual Information,簡稱MI)的概念最早出自信息論,粗略的來說是一種度量形式,用來表示詞與詞之間的聯(lián)系.文獻(xiàn)[13]中指出互信息是二元組p(w1,w2)的概率和兩個(gè)單獨(dú)詞的概率乘積p(w1)p(w2)的似然對數(shù)比,如公式(3)所示:
(3)
其中p(x),p(y)表示字或者詞x,y在語料中出現(xiàn)的概率,p(x,y)表示x,y在語料中共同出現(xiàn)的概率.互信息被引入到自然語言處理領(lǐng)域常被用于新詞識別、消歧等,常常在新詞識別領(lǐng)域也被稱之為內(nèi)部凝聚力,是用來衡量兩個(gè)字或詞的組合能否構(gòu)成一個(gè)新詞.MI越大表示x,y成詞的概率越高,MI等于零的時(shí)候表示x,y是相互獨(dú)立分布的,當(dāng)MI小于零的時(shí)候表示x,y是互不相關(guān)分布的.
雖然互信息能夠很好的表示詞的內(nèi)部凝聚度,并且計(jì)算也較為方便,但在文本量較小時(shí)詞匯更接近多項(xiàng)式分布而不是正態(tài)分布[14],因而多數(shù)統(tǒng)計(jì)方法會(huì)過高地估計(jì)低頻詞之間的相關(guān)性.杜麗萍等[3]將K次互信息(PMIk)的方法用于新詞識別領(lǐng)域.K次互信息的定義如公式(4)所示.
(4)
其中p(x),p(y)分別為字串x,y的概率,p(x,y)表示字串x和y組合在一起的聯(lián)合概率.特別的,當(dāng)k=1時(shí)即等同于傳統(tǒng)的互信息的求法.并且當(dāng)k越大時(shí),準(zhǔn)確率也越高,當(dāng)k≥3時(shí)基本上可以克服互信息方法的缺點(diǎn).
鄰接熵可以用來尋找詞的邊界.它是衡量一個(gè)文本片段的左鄰接字集合和右鄰接字集合的隨機(jī)程度,鄰接熵值越大表示隨機(jī)程度越高,即該字符片段成詞可能性更高,鄰接熵值越小表示隨機(jī)程度越低,即該字符片段和鄰接的詞共同構(gòu)成詞語的可能性更高,而單獨(dú)成詞的可能性更低.通常計(jì)算鄰接熵是通過計(jì)算其左右鄰接字的信息熵得出的.
信息熵是信息論中的一個(gè)基本概念,是由香農(nóng)在1948年提出的,用來解決信息的量化度量問題.其計(jì)算方式如公式(5)所示.
(5)
信息熵越大,其所攜帶的信息也就越大,隨機(jī)變量的不確定性也就越高,熵值越小,其確定性越高,當(dāng)熵為0時(shí),則可以準(zhǔn)確預(yù)測隨機(jī)變量.對于一個(gè)詞來說其存在左右鄰接集合,通過計(jì)算該候選詞組在語料庫中的所有左右鄰接字集合的信息熵,即可以得到左右鄰接熵.具體計(jì)算如公式(6)所示.
(6)
其中w表示候選詞,Hl(w),Hr(w)分別表示左右鄰接熵,Sl,Sr表示該候選詞在語料庫中的所有左右鄰接字集合.
本文提出的方法首先使用四元模型進(jìn)行預(yù)分詞,而后進(jìn)行命名實(shí)體識別對候選詞進(jìn)行過濾,再加入詞頻、互信息、鄰接熵等特征并通過參數(shù)搜索尋找最優(yōu)超參數(shù)進(jìn)一步過濾候選詞,其中互信息采用的是改進(jìn)后的PMIk算法并取k=3計(jì)算3次互信息.具體算法步驟如下:
1) 語料預(yù)處理.
2) 進(jìn)行命名實(shí)體識別,構(gòu)建實(shí)體詞表.
3) 使用四元模型結(jié)合實(shí)體詞表進(jìn)行無監(jiān)督預(yù)分詞,獲得候選詞表.
4) 統(tǒng)計(jì)詞表中所有詞的詞頻、3次互信息、鄰接熵.
5) 隨機(jī)選取部分樣本點(diǎn),進(jìn)行參數(shù)搜索,得到最優(yōu)的參數(shù)組合.
圖1 算法流程圖Fig.1 Algorithm flow chart
6) 根據(jù)詞頻閾值過濾掉詞頻較小的候選詞.
7) 根據(jù)互信息閾值過濾掉互信息較低的候選詞.
8) 根據(jù)鄰接熵閾值過濾掉鄰接熵值較低的候選詞.
9) 最終得到新詞詞表.
算法流程如圖1所示.
基于N元模型的無監(jiān)督中文分詞,實(shí)際上是將分詞問題轉(zhuǎn)化為一種字粒度的標(biāo)注問題[15].例如取4-gram時(shí),使用四個(gè)標(biāo)記符T1,T2,T3,T4分別表示某個(gè)詞的第一個(gè)字、第二個(gè)字、第三個(gè)字和剩余部分,此時(shí)對于“自然語言處理”這個(gè)詞即可以將其標(biāo)記為[T1,T2,T3,T4,T4,T4].在這種對字進(jìn)行標(biāo)注的情況下,對于字ck來說,分別計(jì)算其為某個(gè)標(biāo)記的概率,如公式(7)所示.
(7)
其中k表示當(dāng)前時(shí)刻,ck-i(1≤i 語料中存在大量的人名、地名以及機(jī)構(gòu)名等實(shí)體,識別出這些實(shí)體既可以減少新詞識別過程中統(tǒng)計(jì)量的計(jì)算,也可以提高預(yù)分詞的準(zhǔn)確率. 目前主流的命名實(shí)體識別方法是使用Bi-LSTM結(jié)合條件隨機(jī)場(CRF)進(jìn)行識別,常見的詞向量一般選取的是Word2vec、Glove等.谷歌提出預(yù)訓(xùn)練模型BERT,更容易提取深層次的語義關(guān)系,故而本文使用BERT結(jié)合Bi-LSTM和CRF的方法進(jìn)行識別,構(gòu)建實(shí)體詞表.實(shí)驗(yàn)中使用開放的人民日報(bào)語料進(jìn)行訓(xùn)練,并最終在測試集上對于人名(PER)和地名(LOC)和機(jī)構(gòu)組織名(ORG)等實(shí)體的識別的F1值分別達(dá)到了96.48%、93.61%和88.76%. 在以互信息和鄰接熵等作為主要特征的新詞識別方法中,多處需要設(shè)定閾值,這些超參數(shù)的設(shè)定對最終結(jié)果影響較大,需要進(jìn)行搜索以尋找最優(yōu)的參數(shù).其中超參數(shù)主要包含詞頻的閾值、互信息的閾值、鄰接熵的閾值.本文中主要使用網(wǎng)格搜索方法進(jìn)行參數(shù)調(diào)優(yōu).首先將所有候選詞的詞頻、互信息和鄰接熵計(jì)算出來并保存,然后根據(jù)各特征對評價(jià)指標(biāo)的影響選取合適的區(qū)間,構(gòu)成多維網(wǎng)格空間,進(jìn)行搜索. 網(wǎng)格搜索法是指定參數(shù)值的一種窮舉搜索方法,通過將估計(jì)函數(shù)的參數(shù)通過交叉驗(yàn)證的方法進(jìn)行優(yōu)化來得到最優(yōu)的學(xué)習(xí)算法.但當(dāng)參數(shù)較多,構(gòu)成的維度空間十分龐大,使得模型訓(xùn)練時(shí)間過長.而對于本文的方法,各統(tǒng)計(jì)值是預(yù)先計(jì)算好的,并不用重復(fù)計(jì)算,只需指定參數(shù)范圍,進(jìn)行過濾驗(yàn)證即可,故使用網(wǎng)格搜索結(jié)果準(zhǔn)確且速度較快,可適用于本文所提的方法. 語料分別是80M新浪微博語料、80M搜狗新聞?wù)Z料、80M電子病歷語料以及80M豆瓣多輪對話語料[16]. 新浪微博語料為2018年6月到9月期間產(chǎn)生的共計(jì)41W條微博,平均文本長度大約在90個(gè)字符. 搜狗新聞?wù)Z料為2012年6月到7月期間國內(nèi)、國際、體育、社會(huì)、娛樂等18個(gè)頻道產(chǎn)生的新聞數(shù)據(jù),取其中新聞的正文部分,共計(jì)22萬條數(shù)據(jù),平均文本長度約為210個(gè)字符. 電子病歷語料為某醫(yī)院生產(chǎn)環(huán)境下主訴和現(xiàn)病史構(gòu)成的語料,其中主訴長度約為20個(gè)字符,現(xiàn)病史長度約為100個(gè)字符,共計(jì)70萬份電子病歷. 豆瓣多輪對話語料是公開的語料,語料已完全分詞,平均文本長度約為81個(gè)字符,語料共計(jì)52萬條對話記錄. 精確率(Precision)是指識別出的新詞中TP所占的比率,其計(jì)算方式如公式(8)所示. (8) 其中TP(True Positives)為所有正樣本中被正確識別為正樣本的數(shù)量,F(xiàn)P(False Positives)是指負(fù)樣本被錯(cuò)誤的識別為正樣本的數(shù)量. 召回率(Recall)是指在所有的正樣本樣例中,被正確識別的正樣本所占的比例,具體計(jì)算如公式(9)所示. (9) 其中TP(True Positives)為所有正樣本中被正確識別為正樣本的數(shù)量,F(xiàn)N(False Negatives)是指正樣本被錯(cuò)誤的識別為負(fù)樣本的數(shù)量. F1值是精確率和召回率的加權(quán)平均,計(jì)算方式如公式(10)所示. (10) 其中P和R分別指的是精確率和召回率. 準(zhǔn)確率(Accuracy)是指在測試的結(jié)果詞語集合中,標(biāo)注為正例的個(gè)數(shù)與標(biāo)注集詞語總個(gè)數(shù)的比值,如公式(11)所示. (11) 其中Tw表示詞w被標(biāo)注為正例的個(gè)數(shù),F(xiàn)w表示詞w被標(biāo)注為負(fù)例的個(gè)數(shù). 實(shí)驗(yàn)中需要重點(diǎn)對閾值超參數(shù)進(jìn)行搜索,其中包含詞頻閾值、互信息閾值、鄰接熵閾值.首先分析各特征對評價(jià)指標(biāo)的影響,如圖2-圖4所示.然后選取合適的區(qū)間和步長,構(gòu)成多維的網(wǎng)格空間,進(jìn)而進(jìn)行搜索.其中搜索中的評價(jià)指標(biāo)為F1值.本次實(shí)驗(yàn)中選取了頻次范圍為(5,20),互信息范圍為(5.0,15.0),鄰接熵范圍為(1.0,3.0),共構(gòu)成20000組參數(shù)進(jìn)行實(shí)驗(yàn),最終最優(yōu)參數(shù)組合為:頻次閾值為5,互信息閾值為5.6,鄰接熵閾值為1.4,搜索速度為326組/秒. 圖2 頻次閾值對新詞識別結(jié)果的影響Fig.2 Influence of frequency thresholdon new word recognition results 圖3 互信息閾值對新詞識別結(jié)果的影響Fig.3 Influence of mutual informationthreshold on new word recognition results 圖4 鄰接熵閾值對新詞識別結(jié)果的影響Fig.4 Influence of branch entropythreshold on new word recognition results 首先在豆瓣語料上進(jìn)行新詞識別結(jié)果分析,然后對比不同的語料規(guī)模對結(jié)果的影響.最后在四個(gè)不同領(lǐng)域的語料上衡量不同方法的領(lǐng)域適應(yīng)性.實(shí)驗(yàn)中我們分別將本文提出的方法和Huang提出的baseline方法、使用ICTCLAS進(jìn)行預(yù)分詞的方法在進(jìn)行對比.首先在15萬條豆瓣語料上的對比結(jié)果如表1所示. 表1 豆瓣語料上的新詞識別結(jié)果 精確率/%召回率/%F1值/%Baseline22.264.433.1ICTCLAS+ Baseline63.543.151.3N-gram+ Baseline63.947.954.8NER+N-gram+Baseline62.851.356.4 Baseline:Huang等在文獻(xiàn)[2]中提出的使用詞頻、互信息和鄰接熵進(jìn)行新詞識別的方法. ICTCLAS+Baseline:基于ICTCLAS分詞工具進(jìn)行預(yù)分詞后再使用Baseline的方法進(jìn)行新詞登錄. N-gram+Baseline:使用無監(jiān)督的方法進(jìn)行預(yù)分詞,然后在此基礎(chǔ)上使用Baseline方法進(jìn)行新詞登錄. NER+N-gram+Baseline:在上一組的基礎(chǔ)上結(jié)合命名實(shí)體識別進(jìn)行新詞登錄. 數(shù)據(jù)顯示,Baseline的方法經(jīng)過預(yù)分詞后精確率和F1值均有非常大的提升.本文的方法比ICTCLAS進(jìn)行預(yù)分詞F1值提高3.5%.在此基礎(chǔ)上,結(jié)合命名實(shí)體識別的方法F1值提高4.7%.說明了這種無監(jiān)督的方法在新詞登錄過程中的可行性,同時(shí)也說明了本文所提的新詞登錄的方法是有效的. 此外,為了衡量語料規(guī)模對結(jié)果的影響,我們改變了語料的大小進(jìn)行了對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示.通過實(shí)驗(yàn)結(jié)果可以看出,語料規(guī)模從1萬條到15萬條F1值增長較為明顯,15萬條到30萬條F1值趨于平穩(wěn). 圖5 語料的規(guī)模對新詞識別結(jié)果的影響Fig.5 Influence of different size of the corpus on new word recognition results 同時(shí)為了衡量本文的方法在多領(lǐng)域、大規(guī)模語料上的可行性,將本文方法和ICTCLAS預(yù)分詞方法進(jìn)行對比,測試語料為5.1節(jié)中所述的四個(gè)領(lǐng)域的語料,語料規(guī)模為80M文本,在同一組參數(shù)下(頻次閾值為52、互信息閾值為3.1、鄰接熵閾值為2.2),按照排序取前10%候選詞的準(zhǔn)確率(Accuracy)進(jìn)行對比結(jié)果對比如表2所示. 表2 四個(gè)語料上的新詞識別結(jié)果 微博語料搜狗新聞電子病歷豆瓣對話ICTCLAS84.7%80.3%68.8%86.8%N-gram88.3%80.5%85.9%91.9% 對比結(jié)果可以發(fā)現(xiàn)在大規(guī)模語料上本文的方法準(zhǔn)確率更高,尤其在電子病歷這種專業(yè)領(lǐng)域的語料上差異更加明顯,可見本文所提方法在領(lǐng)域適應(yīng)性上更強(qiáng). 最終識別到的新詞包含了各領(lǐng)域的術(shù)語以及人名、地名等命名實(shí)體.表3中列舉了本文方法在四個(gè)語料上識別的典型新詞. 表3 新詞示例 語料 新詞舉例微博語料吃雞、齊劉海、倫家、萬達(dá)廣場、官博、給力搜狗新聞人民網(wǎng)、座談會(huì)、總冠軍、農(nóng)產(chǎn)品、扶貧、新一代電子病歷患者、治療、就診、咳嗽、淋巴結(jié)、惡心、診斷豆瓣對話上班族、眼線筆、實(shí)體店、非誠勿擾、攝影師 本文將一種無監(jiān)督的預(yù)分詞方法應(yīng)用在新詞識別中,在15萬豆瓣語料上對比分詞工具ICTCLAS預(yù)分詞的方法,本文所提方法F1值更高.另外在多領(lǐng)域語料進(jìn)行實(shí)驗(yàn),可以看出這種方法具有較強(qiáng)的領(lǐng)域適應(yīng)性.本文還結(jié)合了一些命名實(shí)體識別的方法使得命名實(shí)體可以被更好的識別.同時(shí)本文還將網(wǎng)格搜索的方法應(yīng)用在新詞識別中,尋找到最優(yōu)的參數(shù),獲得一種最優(yōu)的效果.這種無監(jiān)督的新詞識別方法,在無需很大的代價(jià)的情況下即可構(gòu)建領(lǐng)域詞庫,我們只需要優(yōu)化語言模型的質(zhì)量即可,如需要考慮語義也可使用神經(jīng)網(wǎng)絡(luò)語言模型來進(jìn)行處理,在實(shí)際應(yīng)用方面具有較大的可行性.4.3 命名實(shí)體識別
4.4 參數(shù)搜索
5 實(shí) 驗(yàn)
5.1 實(shí)驗(yàn)數(shù)據(jù)
5.2 評價(jià)指標(biāo)
5.3 實(shí)驗(yàn)參數(shù)設(shè)置及調(diào)節(jié)
5.4 實(shí)驗(yàn)設(shè)計(jì)及結(jié)果分析
Table 1 New word recognition results on Doubancorpus
Table 2 New word recognition results on four corpora5.5 新詞識別結(jié)果
Table 3 New word examples6 總 結(jié)