劉凡平 陳 慧 沈振雷 吳業(yè)儉
(上海二三四五網(wǎng)絡(luò)科技有限公司 上海 201203)
新詞是指隨著時(shí)代和網(wǎng)絡(luò)新媒體的發(fā)展,在某一時(shí)間段內(nèi)或者某一時(shí)間點(diǎn)以來(lái)[1]首次通過各種途徑產(chǎn)生的、具有新形勢(shì)、新意義和新用法[2-3]的詞語(yǔ),他們從未被任何詞典收錄,屬于未登錄詞,比如“隨申碼”“奧利給”和“佛系”等。根據(jù)中國(guó)語(yǔ)言文字工作委員會(huì)統(tǒng)計(jì),自改革開放以來(lái),中國(guó)平均每年產(chǎn)生800多個(gè)新詞語(yǔ)[4-5]。新詞的出現(xiàn)給輸入法的詞庫(kù)收錄和中文分詞等工作帶來(lái)了巨大的挑戰(zhàn)。輸入法詞庫(kù)的覆蓋率是輸入法強(qiáng)弱的關(guān)鍵指標(biāo)之一[6],因此對(duì)最新出現(xiàn)的新詞,更快、更精準(zhǔn)地收錄對(duì)輸入法來(lái)說(shuō)至關(guān)重要。此外,對(duì)于中文分詞來(lái)說(shuō),新詞的出現(xiàn)使得自動(dòng)分詞準(zhǔn)確率嚴(yán)重下降,研究顯示,60%的分詞錯(cuò)誤是由新詞導(dǎo)致的[7]。因此對(duì)于新詞的有效識(shí)別,對(duì)自然語(yǔ)言領(lǐng)域的研究具有重要的意義[8]。
目前新詞發(fā)現(xiàn)的方法主要分為三類:(1) 基于規(guī)則的新詞發(fā)現(xiàn)方法。例如通過詞語(yǔ)出現(xiàn)的規(guī)律建立規(guī)則,判斷是否為新詞,鄭家恒等[9]在2002年使用構(gòu)詞法識(shí)別網(wǎng)絡(luò)新詞,取得了較高的準(zhǔn)確率;姜如霞等[10]在2019年使用基于規(guī)則和N-Gram算法生成新詞候選詞,并用左右熵的方式進(jìn)行擴(kuò)展和過濾來(lái)識(shí)別新詞。(2) 基于統(tǒng)計(jì)的新詞發(fā)現(xiàn)方法,例如通過條件隨機(jī)場(chǎng)(CRF)、信息熵等統(tǒng)計(jì)分析算法挖掘潛在的新詞。陳飛等[11]使用CRF對(duì)文本輸入序列進(jìn)行標(biāo)注,將新詞發(fā)現(xiàn)問題轉(zhuǎn)化為預(yù)測(cè)已分詞詞語(yǔ)邊界是否為新詞邊界的問題,取得了較好的效果。(3) 基于規(guī)則和統(tǒng)計(jì)結(jié)合的新詞發(fā)現(xiàn)方法,通過規(guī)則和統(tǒng)計(jì)方法的相互彌補(bǔ),提升新詞發(fā)現(xiàn)的效果。周霜霜等[12]提出了一種融合人工啟發(fā)式規(guī)則、C/NC-value改進(jìn)算法和條件隨機(jī)場(chǎng)(CRF)模型的微博新詞抽取方法,有效提高了微博新詞的F1值。顯然,以上方法都存在明顯缺陷?;谝?guī)則的方式,雖然針對(duì)特定領(lǐng)域可以達(dá)到很高的準(zhǔn)確率,但在新詞發(fā)現(xiàn)的可擴(kuò)展性、靈活性上存在很大弊端,甚至需要大量的人工參與總結(jié)規(guī)則,領(lǐng)域適應(yīng)能力弱;基于統(tǒng)計(jì)的方式通過獲得的語(yǔ)料,分析詞頻、左右鄰接熵等統(tǒng)計(jì)特征判定新詞成詞的概率,雖然具有較強(qiáng)的領(lǐng)域適應(yīng)能力和可移植性,但是面臨需要大規(guī)模語(yǔ)料庫(kù)和數(shù)據(jù)稀疏[13]等問題。
另外,受當(dāng)前新詞發(fā)現(xiàn)研究方法可移植性差、需要大量人工規(guī)則或語(yǔ)料的限制,目前新詞發(fā)現(xiàn)的研究主要集中在解決某特定問題的新詞識(shí)別任務(wù)(人名、地名、翻譯縮寫等命名體的識(shí)別)以及某幾個(gè)特定領(lǐng)域術(shù)語(yǔ)(如軍事、財(cái)經(jīng)等領(lǐng)域)的自動(dòng)提取[11]。例如,韓春燕等[14]使用條件隨機(jī)場(chǎng)對(duì)微博語(yǔ)料進(jìn)行命名體的識(shí)別,由于缺乏大量語(yǔ)料,采用半監(jiān)督學(xué)習(xí)框架訓(xùn)練模型提高了微博語(yǔ)料中命名體識(shí)別的效果;段宇鋒等[17]在2015年對(duì)植物專業(yè)領(lǐng)域的新詞自動(dòng)化識(shí)別進(jìn)行了探索等。然而有很多新詞,比如“逗鵝冤”“奧利給”“藍(lán)瘦香菇”等詞語(yǔ),不屬于任何明確的特定領(lǐng)域且只在特定語(yǔ)境和情境下有效。對(duì)于這類屬于開放領(lǐng)域的詞語(yǔ),目前大部分的新詞發(fā)現(xiàn)方法顯然不太適用。然而不僅僅局限于某個(gè)或某幾個(gè)領(lǐng)域的、面對(duì)開放領(lǐng)域的新詞發(fā)現(xiàn)算法和當(dāng)前有領(lǐng)域限制的新詞發(fā)現(xiàn)算法相比還比較缺乏。
綜上所述,目前新詞識(shí)別算法仍然面臨不同領(lǐng)域可移植性能弱、需要大量人工參與和建設(shè)大規(guī)模語(yǔ)料庫(kù)、開放性領(lǐng)域新詞識(shí)別算法匱乏等問題。針對(duì)這些問題,本文在BERT預(yù)訓(xùn)練模型的基礎(chǔ)上進(jìn)行微調(diào),將詞語(yǔ)和上下文輸入模型進(jìn)行訓(xùn)練,使得模型具有識(shí)別該詞語(yǔ)在上下文中是否成詞的能力。BERT預(yù)訓(xùn)練模型的訓(xùn)練語(yǔ)料由維基百科等大規(guī)模語(yǔ)料構(gòu)成,因此對(duì)于開放性領(lǐng)域的文本,預(yù)訓(xùn)練模型也擁有很好的表示能力,這使得該模型對(duì)于不同領(lǐng)域的新詞具有很好的識(shí)別能力,解決了傳統(tǒng)新詞識(shí)別方法需要大規(guī)模語(yǔ)料和不同領(lǐng)域移植能力弱的缺點(diǎn);同時(shí),訓(xùn)練獲得的分類器自動(dòng)判定字符串是否成詞,解決了規(guī)則法需要人工制定大量規(guī)則的缺陷。
BERT模型是Google公司AI團(tuán)隊(duì)[16]在2018年發(fā)布的一款新型語(yǔ)言模型。該模型性能卓越,在包括閱讀理解任務(wù)在內(nèi)的11種不同的NLP任務(wù)中創(chuàng)造出最佳成績(jī),其中在機(jī)器閱讀理解頂級(jí)水平測(cè)試中的表現(xiàn)全面超越人類,為NLP帶來(lái)了里程碑式的改變。如圖1所示,相比于其他語(yǔ)言模型如ELMO、GPT等使用淺層雙向或單向的網(wǎng)絡(luò)結(jié)構(gòu),BERT模型采用表義能力更強(qiáng)的深度雙向Transformer網(wǎng)絡(luò)結(jié)構(gòu)來(lái)預(yù)訓(xùn)練語(yǔ)言模型。深度雙向的編碼器更有利于融合字左右兩側(cè)的上下文,對(duì)于句意的理解更強(qiáng)。
圖1 BERT預(yù)訓(xùn)練模型結(jié)構(gòu)圖
BERT模型的主要?jiǎng)?chuàng)新點(diǎn)在于語(yǔ)言模型的預(yù)訓(xùn)練方式上,它使用了Masked LM和Next Sentence Prediction兩個(gè)任務(wù)來(lái)訓(xùn)練模型,以分別捕捉詞語(yǔ)和句子級(jí)別的表征。在Masked LM任務(wù)中,訓(xùn)練方式為按照一定百分比隨機(jī)屏蔽句子中的token,然后預(yù)測(cè)被屏蔽的token來(lái)使得模型具有很好的詞語(yǔ)級(jí)別的表征和理解能力;而在Next Sentence Prediction任務(wù)中,將兩個(gè)句子A和B分別輸入模型,通過有監(jiān)督的方式來(lái)訓(xùn)練模型,讓模型判斷B句是否是A句的下一個(gè)句子,即A句和B句的關(guān)系,這讓模型具有了理解句子之間關(guān)系的能力。在本文新詞識(shí)別的任務(wù)中,模仿BERT預(yù)訓(xùn)練模型Next Sentence Prediction任務(wù)的訓(xùn)練方式,將詞語(yǔ)和詞語(yǔ)所在的上下文分別輸入模型,讓模型學(xué)習(xí)到該詞語(yǔ)與其上下文之間的關(guān)系。通過有監(jiān)督的學(xué)習(xí)讓模型充分理解到該字串在下一句中是否成詞,從而來(lái)幫助實(shí)現(xiàn)新詞發(fā)現(xiàn)任務(wù)。
本文在BERT預(yù)訓(xùn)練模型的基礎(chǔ)上進(jìn)行了fine-tune,將正例及上下文和負(fù)例及上下文輸入模型進(jìn)行訓(xùn)練,使得模型具有識(shí)別該詞語(yǔ)在上下文中是否成詞的能力。實(shí)驗(yàn)中,樣本分為兩部分:正例和負(fù)例。正例是一個(gè)正常詞語(yǔ)及其上下文組成的文本的特征向量,例如“秘書室[SEP]音樂會(huì)由東吳秘書室主辦”;負(fù)例為一個(gè)非正常詞語(yǔ)及其上下文的特征向量,例如“以發(fā)揮[SEP]以發(fā)揮樂曲的細(xì)微變化”。然后對(duì)正例標(biāo)記為[0,1],負(fù)例標(biāo)記為[1,0]。
對(duì)于中文語(yǔ)料,BERT模型使用單個(gè)字符作為輸入的原子字符。本文加載谷歌2018年公開的BERT預(yù)訓(xùn)練模型作為字向量表,該模型采用了12層的雙向Transformer,隱藏層神經(jīng)元節(jié)點(diǎn)數(shù)為768即隱向量大小為768維,每層的muliti-head為12。通過查詢?cè)撟窒蛄勘韺⑤斎胛谋局械拿總€(gè)字轉(zhuǎn)化為768維向量作為模型的輸入,完成將高維語(yǔ)義空間的自然語(yǔ)言轉(zhuǎn)化成低維空間的embedding。同時(shí),將BERT預(yù)訓(xùn)練模型的參數(shù)作為模型的初始化參數(shù),經(jīng)過模型學(xué)習(xí)得到輸入文本融合上下文語(yǔ)義信息后的表征。此外,模型輸入除了字向量(token embeddings)外還包括位置向量(position embeddings)和區(qū)分上下句的分段向量(segment embeddings)。在BERT預(yù)測(cè)下一句的任務(wù)中,句子對(duì)中的兩個(gè)句子擁有不同的segment embedding,將它們進(jìn)行簡(jiǎn)單的相加后一起后送入到模型中。如圖2所示,本文模仿這種做法將詞語(yǔ)及其上下文分配不同的segment embedding,拼接后送入模型進(jìn)行訓(xùn)練。
圖2 句表征結(jié)構(gòu)圖
本文將新詞識(shí)別任務(wù)轉(zhuǎn)化成NLP的常見任務(wù):分類任務(wù)。首先,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,構(gòu)造正負(fù)樣本輸入模型進(jìn)行訓(xùn)練,獲得可以識(shí)別該字串在其上下文中是否是詞語(yǔ)的二分類器;然后,將測(cè)試文本輸入模型進(jìn)行預(yù)測(cè),并將模型預(yù)測(cè)為正的詞語(yǔ)保存為詞語(yǔ)的初始版本;最后,對(duì)模型預(yù)測(cè)為正的詞語(yǔ)進(jìn)行標(biāo)準(zhǔn)詞庫(kù)和篇頻過濾,得到新詞。其中鑒定詞語(yǔ)的過程采用有監(jiān)督的學(xué)習(xí)方式,模仿BERT預(yù)訓(xùn)練模型Next Sentence Prediction的訓(xùn)練方式,將預(yù)測(cè)字串在上下文中是否成詞轉(zhuǎn)化為二分類問題來(lái)解決。本實(shí)驗(yàn)加載Google在2018年公開的中文預(yù)訓(xùn)練模型(BERT-base,Chinese)進(jìn)行微調(diào)訓(xùn)練分類器,采用交叉熵式(1)作為損失函數(shù)。通過反向傳播算法調(diào)節(jié)模型參數(shù),最終使得模型具備詞語(yǔ)判別的能力。
(1)
式中:y為真實(shí)值;y′為模型的估計(jì)值;N為樣本數(shù)。
如圖3所示,本文將字串和對(duì)應(yīng)的上下文編碼輸入BERT模型。
圖3 模型的訓(xùn)練
圖3中,w1,w2,…,wn表示需要被判別是否成詞的token字串,s1,s2,…,sn表示該字串所在的上下文句子,[SEP]表示分割字串和上下文句子的分隔符。經(jīng)過BERT的編碼之后,采用第一個(gè)token(即[CLS])的最后一個(gè)隱藏狀態(tài)的輸出作為整個(gè)句子的表示。拿到句子的輸出后做一個(gè)簡(jiǎn)單的線性變換,最后通過一個(gè)Softmax層,經(jīng)過式(2)的變換,將線性層的隱向量轉(zhuǎn)化成0到1之間的表示,即該字串在上下文中是否是一個(gè)真實(shí)的詞語(yǔ)的概率,j為1到k的自然數(shù)。
(2)
本文的實(shí)驗(yàn)由主實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)構(gòu)成。主實(shí)驗(yàn)方法為本文提出的基于BERT的新詞識(shí)別方法,對(duì)比實(shí)驗(yàn)為基于互信息和左右熵的新詞發(fā)現(xiàn)算法和基于條件隨機(jī)場(chǎng)的新詞發(fā)現(xiàn)方法。基于互信息和左右熵的新詞發(fā)現(xiàn)算法主要將分過詞的文字使用N-Gram算法將文字分割為一個(gè)個(gè)字符片段,即候選詞。然后,根據(jù)成詞規(guī)律計(jì)算候選詞的凝固程度(互信息)和自由程度(左右熵)來(lái)判斷該候選詞是否是一個(gè)詞語(yǔ)。基于條件隨機(jī)場(chǎng)的方法則利用條件隨機(jī)場(chǎng)(Condition Random Field,CRF)可對(duì)輸入進(jìn)行標(biāo)注的特點(diǎn),首先對(duì)輸入的句子進(jìn)行分詞,將新詞發(fā)現(xiàn)轉(zhuǎn)化為序列標(biāo)注問題,再將分好詞的句子進(jìn)行新詞的抽取。
由于缺乏公開權(quán)威的分詞和新詞發(fā)現(xiàn)數(shù)據(jù)集,本文采用《人民日?qǐng)?bào)》提供的人工標(biāo)注的分詞和詞性標(biāo)注語(yǔ)料,總計(jì)52 454條。將語(yǔ)料按照9∶1劃分為訓(xùn)練集和驗(yàn)證集用于模型的訓(xùn)練和驗(yàn)證。為了驗(yàn)證三個(gè)模型在不同領(lǐng)域的文本上的泛化性能,即模型的可遷移能力,本文的測(cè)試集持續(xù)搜集每日由包括百度、新浪微博、知乎、搜狐新聞和Bilibili在內(nèi)的多個(gè)網(wǎng)站熱搜榜文章,并對(duì)當(dāng)日搜集到的語(yǔ)料進(jìn)行一次新詞識(shí)別和搜集。該行為是持續(xù)行為,并非一次性行為。這些文章來(lái)源于娛樂、財(cái)經(jīng)、社會(huì)和文化等不同領(lǐng)域,擁有不同的文本風(fēng)格。另外,測(cè)試集采用最新熱搜榜的語(yǔ)料,擁有較高的時(shí)效性,對(duì)于模型是否真的可以發(fā)現(xiàn)優(yōu)質(zhì)的新詞可以更好判別。
本文采用的算法指標(biāo)有精準(zhǔn)率P(precision)、召回率R(recall)和F1值(F1-measure)。由于沒有權(quán)威公開的數(shù)據(jù)集,且中文分詞方法也并不唯一,例如,“云南省科協(xié)”可以看作是一個(gè)詞,也可以分為“云南省”和“科協(xié)”兩個(gè)詞。不同的算法給出的分詞方案雖然可能不統(tǒng)一,但是可能都是正確的。因此將三個(gè)算法識(shí)別出的正確結(jié)果的合集看作是要召回的結(jié)果,如圖4所示。
圖4 模型評(píng)價(jià)方法圖
圖4中A、B和C分別表示三個(gè)算法識(shí)別為新詞的集合,其中A′、B′和C′則表示各自對(duì)應(yīng)的正確結(jié)果,f(X)表示集合X的元素個(gè)數(shù)。那么以A算法為例,其精準(zhǔn)率、召回率和F1值的計(jì)算公式為:
(3)
(4)
(5)
3.2.1 主實(shí)驗(yàn)訓(xùn)練數(shù)據(jù)集的構(gòu)造
本文的數(shù)據(jù)使用《人民日?qǐng)?bào)》提供的中文分詞語(yǔ)料庫(kù)進(jìn)行構(gòu)造。正樣本由分詞數(shù)據(jù)庫(kù)內(nèi)長(zhǎng)度大于等于兩個(gè)中文字符的詞語(yǔ)及其上下文組成,格式如:“秘書室[SEP]音樂會(huì)由東吳秘書室主辦”,負(fù)樣本的詞語(yǔ)由不定個(gè)數(shù)的不成詞的字串組成,負(fù)樣本則由負(fù)樣本詞語(yǔ)及其上下文組成,格式如:“以發(fā)揮[SEP]以發(fā)揮樂曲的細(xì)微變化”。其中“[SEP]”為BERT字典中的分隔符,將詞語(yǔ)和上下文分割開來(lái)。詞語(yǔ)的最大長(zhǎng)度為8個(gè)字符。構(gòu)造的訓(xùn)練集和驗(yàn)證集的樣本數(shù)如表1所示。其中訓(xùn)練集的正負(fù)樣本比約為1∶20,驗(yàn)證集的正負(fù)樣本比約為1∶38。
表1 正負(fù)樣本數(shù)目表
3.2.2 主實(shí)驗(yàn)流程
圖5為本文的實(shí)驗(yàn)流程。首先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理并構(gòu)造正負(fù)樣本,將詞語(yǔ)和上下文同時(shí)輸入模型進(jìn)行訓(xùn)練,得到在驗(yàn)證集上精度很高的詞語(yǔ)分類器并保存。
圖5 實(shí)驗(yàn)流程圖
然后如表2所示,使用滑動(dòng)窗口的模式對(duì)爬取的熱搜榜語(yǔ)料進(jìn)行子串分割等預(yù)處理,生成若干長(zhǎng)度小于等于5的候選詞,構(gòu)造測(cè)試集。
表2 測(cè)試樣例表
表3 詞語(yǔ)成詞概率表
(6)
3.2.3 主實(shí)驗(yàn)結(jié)果及分析
表4為分類模型在驗(yàn)證集上的精準(zhǔn)率、召回率、F1值和準(zhǔn)確率情況。由表可知,模型對(duì)于負(fù)樣本的識(shí)別能力很強(qiáng),各項(xiàng)指標(biāo)都基本接近1。模型對(duì)于正樣本的識(shí)別能力也非常好,精準(zhǔn)率達(dá)到了0.93,召回率達(dá)到了0.88,效果符合預(yù)期。最后將測(cè)試集數(shù)據(jù)輸入模型進(jìn)行預(yù)測(cè),經(jīng)過標(biāo)準(zhǔn)舊詞庫(kù)過濾之后,模型發(fā)現(xiàn)新詞1 184個(gè)。經(jīng)校驗(yàn),其中1 142個(gè)詞語(yǔ)識(shí)別正確,模型精準(zhǔn)率為0.962。
表4 驗(yàn)證集上各實(shí)驗(yàn)指標(biāo)表
3.2.4 模型在開放領(lǐng)域真實(shí)最新語(yǔ)料中的表現(xiàn)
為了驗(yàn)證該模型在最新真實(shí)數(shù)據(jù)上的泛化能力,本文收集了各門戶網(wǎng)站近7日的新聞和熱搜榜數(shù)據(jù)文本數(shù)據(jù),其中文本類型包括娛樂、財(cái)經(jīng)和社會(huì)等領(lǐng)域。將該文本數(shù)據(jù)集模型輸入模型。表5為每日文本數(shù)目、發(fā)現(xiàn)新詞數(shù)目和人工校驗(yàn)準(zhǔn)確率表。由表5可知,模型在近一周的新詞發(fā)現(xiàn)均值為79個(gè)(包含未登錄詞),人工校驗(yàn)準(zhǔn)確率為0.95,因此模型在不同領(lǐng)域上具有較強(qiáng)的泛化能力,克服了基于規(guī)則的新詞發(fā)現(xiàn)算法的領(lǐng)域針對(duì)性強(qiáng)、難移植的缺憾。
表5 模型的泛化表現(xiàn)
其中輸出的新詞樣例如表6所示,對(duì)于不同領(lǐng)域的文本,模型對(duì)新詞的識(shí)別比較準(zhǔn)確,確實(shí)發(fā)現(xiàn)了一系列最近比較火,且目前詞庫(kù)尚未收錄的詞語(yǔ),如“三不三報(bào)”“封控”等具有明顯疫情背景的詞語(yǔ)以及最近在媒體中經(jīng)常提及的人名如“喬治弗洛伊德”等,由此可見,該模型在實(shí)際生產(chǎn)生活中具有很強(qiáng)的現(xiàn)實(shí)意義。
表6 新詞發(fā)現(xiàn)結(jié)果樣例表
本文中的對(duì)比實(shí)驗(yàn)主要采用基于互信息和左右熵的新詞發(fā)現(xiàn)方法和基于條件隨機(jī)場(chǎng)的新詞發(fā)現(xiàn)方法。在相同的數(shù)據(jù)集上,使用這兩個(gè)方法來(lái)實(shí)現(xiàn)新詞發(fā)現(xiàn)任務(wù)。最后通過計(jì)算各算法的精準(zhǔn)率、召回率和F1值來(lái)比較各算法性能。
3.3.1 基于互信息和左右熵的新詞發(fā)現(xiàn)
基于互信息和左右熵的新詞發(fā)現(xiàn)方法主要是通過計(jì)算候選詞的內(nèi)部凝固度和邊界自由度來(lái)確定該字串是否為一個(gè)詞語(yǔ)[17-18]。內(nèi)部凝固度用來(lái)衡量該詞語(yǔ)搭配是否合理,詞內(nèi)部凝固度越大,表明漢字結(jié)合越緊密,它們構(gòu)成詞語(yǔ)的可能性越大。比如在一句話“蜘蛛坐在網(wǎng)上等獵物”中,“蜘蛛”“獵物”等的凝固度就很大,“蛛坐”“在網(wǎng)”等詞的凝固度就很小,因此“蜘蛛”比“蛛坐”更有可能是一個(gè)詞語(yǔ)。互信息通常用來(lái)表示兩個(gè)信號(hào)之間的依賴程度,在這里用互信息來(lái)表示詞語(yǔ)內(nèi)部的凝固程度?;バ畔⒌亩x為式(7)所示,其中p(x)表示x在語(yǔ)料里單獨(dú)出現(xiàn)的概率,p(y)表示y在語(yǔ)料里單獨(dú)出現(xiàn)的概率,p(x,y)表示x、y在語(yǔ)料里一起出現(xiàn)的概率。
(7)
邊界自由度則用來(lái)衡量一個(gè)候選詞左右相鄰字的豐富程度,邊界自由度越大,該候選詞越有可能是一個(gè)詞語(yǔ)。比如對(duì)于“杯子”和“輩子”這兩個(gè)字串?!氨印弊笥铱梢约拥南噜徸志捅取拜呑印币S富得多,即“杯子”擁有更大的邊界自由度。因此,“杯子”就比“輩子”更有可能是一個(gè)詞語(yǔ)。使用候選詞的左右信息熵來(lái)衡量邊界自由度的大小。左信息熵指候選詞與它左相鄰集合的信息熵之和,左信息熵越大表明候選詞的左鄰接詞越豐富,那么該候選詞是一個(gè)詞語(yǔ)左邊界的可能性就越大,右信息熵同理。左右信息熵的公式如式(8)、式(9)所示。其中,式(8)中sl是候選詞w的左鄰接字的集合,p(wl|w)是候選詞w出現(xiàn)的情況下其左鄰接字是wl的條件概率。式(9)同理。
(8)
(9)
如圖6所示,本實(shí)驗(yàn)中基于互信息的新詞發(fā)現(xiàn)方法采用文獻(xiàn)[18]中的方法,算法流程主要包括語(yǔ)料的預(yù)處理散串的分析、根據(jù)互信息對(duì)候選詞進(jìn)行過濾、根據(jù)候選詞的左右熵確定詞語(yǔ)邊界等步驟。首先將語(yǔ)料進(jìn)行分詞后,將散串進(jìn)行Bi-Gram的組合,計(jì)算字串組合的互信息,若互信息大于閾值則將該字串視為候選詞,然后計(jì)算候選詞的左右信息熵,根據(jù)計(jì)算結(jié)果進(jìn)行過濾或擴(kuò)展,最后得到新詞。本文將測(cè)試數(shù)據(jù)按圖6的步驟進(jìn)行新詞抽取,其中字符長(zhǎng)度閾值為5,互信息閾值為5,交叉熵閾值為0.07,經(jīng)過標(biāo)準(zhǔn)舊詞庫(kù)過濾后,共輸出詞語(yǔ)909個(gè),正確的有629個(gè),精準(zhǔn)率為0.692,低于本文主實(shí)驗(yàn)的精確率。
圖6 基于互信息和左右熵的算法
3.3.2 基于條件隨機(jī)場(chǎng)的新詞發(fā)現(xiàn)
基于條件隨機(jī)場(chǎng)的新詞發(fā)現(xiàn)算法是利用CRF對(duì)輸入文本進(jìn)行序列標(biāo)注,從而達(dá)到分詞的效果,Xue[19]最早在2003年時(shí)將序列標(biāo)注方法應(yīng)用于中文分詞,并且對(duì)于未登錄詞取得了較好的召回率。本文借鑒文獻(xiàn)[20]用于命名體識(shí)別的網(wǎng)絡(luò)結(jié)構(gòu)用于分詞任務(wù)。將《人民日?qǐng)?bào)》(2014)的人工標(biāo)注語(yǔ)料進(jìn)行分詞標(biāo)記后輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到分詞器。目前主流的分詞標(biāo)記方法有三種,如表7所示。本文采用4-Tag的標(biāo)記方式。其中“S”表示單獨(dú)的一個(gè)字,“B”表示詞語(yǔ)的開頭,“M”表示詞語(yǔ)的中間,“E”表示詞語(yǔ)的結(jié)尾,例如對(duì)于分好詞的句子“昆明|的|氣候|四季如春|”,那么對(duì)應(yīng)的4-Tag標(biāo)記為“BESBEBMME”。
表7 3種常用標(biāo)記方法
模型結(jié)構(gòu)如圖7所示,首先將文本使用word2vec預(yù)訓(xùn)練模型對(duì)字進(jìn)行嵌入,每個(gè)字的特征為300維;得到字嵌入之后,將字嵌入輸入到雙向LSTM中;輸出層接CRF使模型能夠同時(shí)考慮過去和未來(lái)的特征,并學(xué)習(xí)到狀態(tài)轉(zhuǎn)移矩陣使輸出標(biāo)簽(tag)時(shí)的選擇前后相互關(guān)聯(lián)[21]。將測(cè)試文本輸入模型,得到被分詞的句子后的詞語(yǔ)序列,提取長(zhǎng)度大于1的詞語(yǔ),經(jīng)過標(biāo)準(zhǔn)舊詞庫(kù)的過濾后,共輸出詞語(yǔ)1 742個(gè),經(jīng)過校驗(yàn),正確的個(gè)數(shù)為1 300個(gè),精準(zhǔn)率為0.746,遠(yuǎn)低于本文的BERT模型的精準(zhǔn)率。
整合三個(gè)算法在開放領(lǐng)域測(cè)試集上的結(jié)果,統(tǒng)計(jì)結(jié)果如表8所示。由表8可知,三個(gè)算法共找出的正確詞語(yǔ)的個(gè)數(shù)為3 071個(gè)。由于基于CRF的新詞識(shí)別方法是基于分詞模式的,因此貢獻(xiàn)了最多的詞語(yǔ)數(shù)量,而基于互信息和左右熵的方法過濾依賴于詞頻的統(tǒng)計(jì),因此貢獻(xiàn)了最少的新詞量。三個(gè)算法共同發(fā)現(xiàn)的詞語(yǔ)共123個(gè),人工校驗(yàn)準(zhǔn)確率為100%,其中命名體為84個(gè)。
表8 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)
將三個(gè)算法的并集看作需要召回的結(jié)果,計(jì)算召回率和F1值,結(jié)果如圖8所示。BERT算法的精準(zhǔn)率遠(yuǎn)高于其他兩個(gè)算法,同時(shí)擁有最高的F1值。這表明,對(duì)于開放領(lǐng)域的語(yǔ)料,本文提出的算法擁有更好的新詞識(shí)別能力。
圖8 各算法指標(biāo)比較
命名體識(shí)別(Named Entity Recognition,NER)是指識(shí)別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等,在本文中還包括電視劇名、電影名、熱點(diǎn)事件名和游戲裝備名等[22]。命名體的識(shí)別不僅是分詞和新詞識(shí)別的一個(gè)重要環(huán)節(jié),同時(shí)也在句法分析、機(jī)器翻譯、信息檢索和自動(dòng)問答等領(lǐng)域有直接的應(yīng)用[23]。為了驗(yàn)證三個(gè)算法對(duì)于命名體的識(shí)別能力,本文還對(duì)新詞集中各算法對(duì)命名體的召回情況做了統(tǒng)計(jì),結(jié)果如圖9所示。由圖9可知,在CRF擁有最大新詞貢獻(xiàn)量的情況下,BERT對(duì)命名體的識(shí)別依然保持最高的召回率。
圖9 命名實(shí)體識(shí)別的召回率比較
針對(duì)目前新詞識(shí)別領(lǐng)域算法存在的移植性能弱、需要大量人工參與規(guī)則定制、需要大量語(yǔ)料以及數(shù)據(jù)稀疏等問題,本文提出了基于預(yù)訓(xùn)練語(yǔ)言模型(BERT)的開放性領(lǐng)域新詞識(shí)別方法。該方法利用BERT模型對(duì)于句內(nèi)上下文和句間聯(lián)系的超強(qiáng)理解能力,將詞語(yǔ)和上下文輸入模型,將新詞識(shí)別任務(wù)轉(zhuǎn)化為分類任務(wù)來(lái)完成新詞的識(shí)別。經(jīng)實(shí)驗(yàn)證明,與基于互信息和左右熵的新詞發(fā)現(xiàn)方法和基于CFR的新詞發(fā)現(xiàn)方法相比,本文提出的基于BERT的新詞識(shí)別方法在開放性領(lǐng)域的數(shù)據(jù)集上擁有更高的精準(zhǔn)率和F1值。與此同時(shí),BERT對(duì)于命名體的識(shí)別也擁有最高的召回率,實(shí)驗(yàn)驗(yàn)證了本文算法的有效性。但是,由于用戶在書寫文檔時(shí)存在輸入法誤操作、錯(cuò)別字等各種情況的發(fā)生,這類風(fēng)險(xiǎn)詞并不屬于新詞,但目前算法只是通過篇頻過濾的手段對(duì)其進(jìn)行初步過濾,并沒有做更精細(xì)的工作,日后對(duì)于這類風(fēng)險(xiǎn)詞的標(biāo)注應(yīng)該成為工作的重點(diǎn)。