李寶林, 劉宇韜
(成都信息工程大學(xué)物流學(xué)院,四川 成都 610103)
在進(jìn)行中文文本識別時(shí),由于中文文本中每段話的字詞都是緊密相連,缺乏明顯的詞語邊界[1],計(jì)算機(jī)不能直接識別這些連續(xù)的字詞。在自然語言處理(natural language process)[2]中,計(jì)算機(jī)需要將這些詞語從一段話中識別出來,為其添加分隔符[3],這一過程即為中文分詞——將一段連續(xù)的話拆分成若干詞語并按原文順序拼接。然而,隨著語料庫的不斷加深,傳統(tǒng)的識別算法早已無法滿足需求,面對的場景領(lǐng)域多樣、文本的內(nèi)容格式不統(tǒng)一,如何準(zhǔn)確分詞是當(dāng)下一大技術(shù)難點(diǎn)。本文以規(guī)范類文本為研究對象,解決規(guī)范類文本的分詞需求,從相對規(guī)范到絕對規(guī)范,即達(dá)到最終分詞結(jié)果全部為有效信息的目的,將是本文的重點(diǎn)研究內(nèi)容。
中文分詞存在諸多研究難點(diǎn),盡管國家早已頒布信息處理的分詞規(guī)范,但實(shí)際應(yīng)用中很容易受主觀因素影響導(dǎo)致結(jié)果大相徑庭。同時(shí),各種未登錄詞[4](即語料庫中并未收錄或從未訓(xùn)練過的詞)的相繼出現(xiàn),包括網(wǎng)絡(luò)用語、領(lǐng)域術(shù)語、專有名詞等,都會(huì)嚴(yán)重影響分詞的準(zhǔn)確性。在規(guī)范類文本中,其內(nèi)容具有高度規(guī)范性,也就是每個(gè)字詞都是經(jīng)過縝密推敲后定稿,絕不會(huì)出現(xiàn)語氣助詞或多余的修飾詞。因此,其內(nèi)容包括很多組合性專業(yè)名詞和連接助詞,對于現(xiàn)有語料庫而言,這些詞語通常很容易被誤分。如組合詞“邵氏硬度”通常都會(huì)被劃分為“邵氏”和“硬度”兩個(gè)詞語;“擦傷、劃傷”中兩個(gè)詞語的詞性實(shí)則為名詞,但基于大量語料庫的概率情況而言,通常又會(huì)將其判定為動(dòng)詞;“連接嚴(yán)重銹蝕”這樣一類組合拼湊詞為一個(gè)整體,但是計(jì)算機(jī)通常將其劃分3 部分:“連接”“嚴(yán)重”“銹蝕”,這完全背離詞語本意。而劃分詞性是計(jì)算機(jī)實(shí)現(xiàn)分詞的依據(jù),根據(jù)詞的特點(diǎn)(語法、形態(tài)、句意等)將其劃分為不同種類。每一段句子都是由不同種類的詞性按照一定的規(guī)律排列組合而成,通過識別每一個(gè)詞的詞性并對其標(biāo)注,進(jìn)而達(dá)到詞語劃分的目的,也就是確定各詞歸屬類別的過程[5]。通過聯(lián)系上下文關(guān)系,在特定的語境中,采用得體的方法確定詞性,消除語法兼類[6-7]。
常用的詞性標(biāo)注包括4 大類[8]:基于規(guī)則的詞性標(biāo)注方法[9],主要是根據(jù)上下文的詞語聯(lián)系、搭配關(guān)系將自定義規(guī)則寫入確定當(dāng)前詞的詞性,雖然能夠高效利用上下文信息,但隨著語料庫的增加,人力投入不斷增大,且這種規(guī)則的覆蓋面并不廣泛,容易發(fā)生規(guī)則沖突[10],無法應(yīng)用于大部分領(lǐng)域。基于統(tǒng)計(jì)模型的詞性標(biāo)注方法,該方法的核心思路是將一段詞性視作一段序列標(biāo)注問題,判定每一個(gè)詞出現(xiàn)的詞性概率。通過使用具有正確詞性標(biāo)注數(shù)據(jù)的語料庫訓(xùn)練經(jīng)典模型,如HMM(隱馬爾科夫模型)[11]、CRF(條件隨機(jī)場)[12]、ME(最大熵)[13]等,達(dá)到詞性自動(dòng)標(biāo)注的效果,極大減少了人力。不過詞語之間長距離的依賴現(xiàn)象和不確定性并不能很好地解決[14]。基于統(tǒng)計(jì)方法與規(guī)則方法相結(jié)合的詞性標(biāo)注方法[15],將兩種方法結(jié)合并針對性地使用,即篩選根據(jù)統(tǒng)計(jì)方法標(biāo)注的結(jié)果,對詞性標(biāo)注可信度較低的目標(biāo)進(jìn)行規(guī)則匹配,進(jìn)而消除歧義。基于深度學(xué)習(xí)的詞性標(biāo)注方法,同樣也是解決序列標(biāo)注任務(wù),常用方法有LSTM+CRF、BiLSTM+CRF[16]等。
為探尋更加高效的分詞方式和精確的詞語識別率,學(xué)者們不斷探索,實(shí)現(xiàn)算法的改進(jìn)。劉偉等[17]提出一種通過計(jì)算語境相似度檢驗(yàn)中文分詞一致性的方法,該方法依賴詞性和依存句法,利用詞向量進(jìn)行語義編碼,通過實(shí)驗(yàn)發(fā)現(xiàn)能有效提高分詞一致性檢驗(yàn)的準(zhǔn)確率,對人工分詞語料標(biāo)注相關(guān)工作具有一定輔助作用。鳳麗洲等[18]提出一種組合詞迭代的雙向匹配分詞方法,該方法基于N-gram 統(tǒng)計(jì)模型,能有效規(guī)避免長條詞語的分詞準(zhǔn)確率的影響,實(shí)現(xiàn)最優(yōu)分詞序列。Liu J 等[19]通過從字典中隨機(jī)抽取單詞生成偽標(biāo)記數(shù)據(jù)和共享相同的網(wǎng)絡(luò)參數(shù),聯(lián)合訓(xùn)練漢語分詞和詞分類任務(wù)這兩種方法對詞典中的中文進(jìn)行分詞,對訓(xùn)練數(shù)據(jù)不足的情況能顯著提高中文分詞性能。Gan L等[20]通過BERT 研究上下文字符嵌入的影響,提出一種將單詞信息整合到Self-Attention 網(wǎng)絡(luò)中的分詞方法,并通過與BiLSTMs 對比,發(fā)現(xiàn)該模型具有顯著優(yōu)越性。Si H 等[21]利用復(fù)雜網(wǎng)絡(luò)的特點(diǎn)對中文分詞進(jìn)行研究,發(fā)現(xiàn)復(fù)雜網(wǎng)絡(luò)特征算法對解決分詞速度和準(zhǔn)確率的沖突問題具有明顯效果。Yan H 等[22]提出一種基于圖的中文分詞和依存句法分析集成模型,該模型可以在選取更少的特征下?lián)碛懈叩姆衷~效率。
規(guī)范類文本是一種屬于高度規(guī)范的非結(jié)構(gòu)化數(shù)據(jù),與一般的非規(guī)范類文本相比,該文本主要為定量描述,即文本內(nèi)容通常可以直接進(jìn)行實(shí)證分析。以《玻璃幕墻缺陷類型》為例,在“爆邊:長度或?qū)挾炔坏贸^玻璃的厚度”中,明確指出缺陷名稱為“爆邊”,“長度或?qū)挾炔坏贸^玻璃的厚度”則以明確的玻璃厚度范圍限定爆邊的長度與寬度,是一種數(shù)字化描述。而非規(guī)范類文本通常是定性描述,如“某玻璃幕墻質(zhì)量未達(dá)標(biāo)”“某窗戶的裂紋缺陷較大”等沒有明確指標(biāo)的描述通常都為非規(guī)范類文本。在規(guī)范類文本中,盡管文本內(nèi)容相對嚴(yán)謹(jǐn)(即不存在語氣詞、嘆詞等無關(guān)詞),但并非所有內(nèi)容都是關(guān)鍵內(nèi)容。如在“爆邊:長度或?qū)挾炔坏贸^玻璃的厚度”這一文本中,真正有用的詞語僅為“長度”“寬度”“不超過”“玻璃厚度”。同時(shí),在傳統(tǒng)分詞中,很難將“不超過”“不大于”“不允許”以及“玻璃厚度”“點(diǎn)狀缺陷”等詞作為一個(gè)整體進(jìn)行切分,而多數(shù)分詞結(jié)果均以“不/超過”“點(diǎn)狀/缺陷”兩個(gè)部分呈現(xiàn)。針對以上分析,本文提出一種Re-Perceptron-CRF 的分詞方法——通過正則匹配將規(guī)范類文本進(jìn)行內(nèi)容標(biāo)準(zhǔn)化,進(jìn)而提高分詞的精確度,并與經(jīng)典模型進(jìn)行對比實(shí)驗(yàn)。
中文分詞通過將一段文本拆分為一系列詞語后,分別為這些詞語進(jìn)行詞性標(biāo)注工作,通過確定這些詞性才能按照原本順序拼接并重新形成完整的文本[23]。
在中文分詞中需要用到由語音、詞匯、語法構(gòu)成的語言模型。語言模型就是在給定一段句子的條件下,將詞語出現(xiàn)的概率進(jìn)行計(jì)算的模型,而統(tǒng)計(jì)的對象就是人工標(biāo)注而成的語料庫。
主要語言模型有美國語言學(xué)家Chomsky 提出的PSG[2](短語結(jié)構(gòu)語法)模型、統(tǒng)計(jì)語言模型n-gram(n元語法)模型[24]和深度學(xué)習(xí)語言模型NNLM(神經(jīng)網(wǎng)絡(luò)語言模型)[25]。本文主要使用基于統(tǒng)計(jì)語言模型的Viterbi[26]算法和基于深度學(xué)習(xí)語言模型的Perceptron感知機(jī)[27]與CRF 條件隨機(jī)場進(jìn)行實(shí)驗(yàn)。
其中,統(tǒng)計(jì)語言模型n-gram 的意思是,每個(gè)詞語出現(xiàn)的概率僅受該詞語之前的n-1 個(gè)單詞影響。換言之,一元語法模型表示各個(gè)詞語相互獨(dú)立,二元語法表示該詞語出現(xiàn)的概率只取決于自身前一個(gè)詞語影響,以此類推。具體公式:
深度學(xué)習(xí)語言模型則是指利用神經(jīng)網(wǎng)絡(luò)對語言模型進(jìn)行訓(xùn)練,每次得到一個(gè)字符串作為一個(gè)句子出現(xiàn)的概率,每一個(gè)句子本質(zhì)上就是一個(gè)詞向量[28]。
Viterbi 算法本質(zhì)上是使用動(dòng)態(tài)規(guī)劃的方法遞歸求解隱藏狀態(tài)序列,是一種剪枝算法,用于尋找一段觀測序列的維特比路徑(隱含狀態(tài)最優(yōu)路徑),本文目標(biāo)就是對一個(gè)最優(yōu)路線二分類問題進(jìn)行求解。在規(guī)范類文本中,對文本分詞可以采用Viterbi 算法進(jìn)行求解,具體實(shí)現(xiàn)以“脫膠:不允許”為例,具體流程見圖1。

圖1 Viterbi 詞性確定流程
每一個(gè)漢字對應(yīng)一個(gè)位置t。其中的B、S、M、E 表示每個(gè)漢字的狀態(tài):B(begin)——詞首,M(middle)——詞中,E(end)——詞尾,S(single)——單獨(dú)成詞。
首先輸入本文模型λ 和觀測序列O=(“脫”,“膠”,“:”,“不”,“允”,“許”),輸出目標(biāo)即求得從t0位置起始到t6位置終止整個(gè)過程中,該觀測序列O的最優(yōu)路徑I*=(i1*,i2*,…,i*t),即序列O的對應(yīng)的最佳隱藏狀態(tài)。
根據(jù)Viterbi 算法,進(jìn)行前置變量定義:
定義δ為在位置t狀態(tài)為i的所有單個(gè)路徑(i1,i2,…,il)中的概率最大值:
定義ψ為在時(shí)刻t狀態(tài)為i的所有單個(gè)路徑(i1,i2,…,it-1,it)中概率最大的路徑的第t-1 個(gè)結(jié)點(diǎn):
根據(jù)上述公式,按照以下步驟進(jìn)行算法求解:
(1)確定從t0位置(Input 位置)到t1位置的所有路徑,目前這些路徑都是最優(yōu)備選路徑;
(2)依次選擇起始位置到t1位置的所有路徑,并確定在t1位置到t2位置的所有路徑選擇;
(3)確定從t1到t2位置備選的所有路徑中概率最大者(即δ1值)最大的路徑后,選擇t1位置到t2位置最優(yōu)的路徑,然后根據(jù)將當(dāng)前路徑最終點(diǎn)位作為最大路徑結(jié)點(diǎn)ψ2并將其他路徑選擇舍棄;
(4)重復(fù)(3),確定t1位置所有路徑分別到t2位置上第2 個(gè)點(diǎn)位處的路徑中δ2最大的路徑,并將當(dāng)前路徑最終點(diǎn)位作為最大路徑結(jié)點(diǎn)ψ3,同時(shí)舍棄其他路徑;
(5)來到t2位置,重復(fù)步驟(3)、(4)中的操作,確定t2位置所有路徑分別到t3位置上第1、2 個(gè)點(diǎn)位處的路徑,選擇最優(yōu)路徑,舍棄其他路徑;
(6)遞推,重復(fù)上述操作,直到抵達(dá)t6位置結(jié)束迭代,也就是抵達(dá)句子末尾;
(7)最優(yōu)回溯路徑,求得最優(yōu)路徑I*=(B, E, S,B, M, E),具體路線見圖1 加粗部分。
感知機(jī)算法是一種迭代式的算法:通過在訓(xùn)練集上進(jìn)行多次迭代,每次讀入一個(gè)樣本并進(jìn)行預(yù)測后,將預(yù)測結(jié)果與正確答案對比,計(jì)算誤差,根據(jù)誤差更新模型參數(shù),再次訓(xùn)練,反復(fù)迭代,直到誤差達(dá)到最小為止。
在規(guī)范類文本分詞中,通過使用結(jié)構(gòu)化感知機(jī)進(jìn)行實(shí)驗(yàn),得知相比普通感知機(jī),其對更新參數(shù)的獎(jiǎng)懲機(jī)制與特征函數(shù)的權(quán)重緊密相連,更能提高分詞準(zhǔn)確率,同時(shí)還能調(diào)整學(xué)習(xí)率。以判定“擦傷”詞性為例,具體流程見圖2。

圖2 Perceptron 詞性判別獎(jiǎng)懲流程
(1)輸入訓(xùn)練樣本x,同時(shí)定義打分函數(shù)score(x,y)=ω·φ(x,y)。其中,φ(x,y)表示x和y之中的特征,ω表示每個(gè)特征對應(yīng)的權(quán)重,這些特征來源于輸入文本“擦傷”的詞性,即{B,M,E,S},并用這些特征進(jìn)行序列標(biāo)注;
(2)根據(jù)樣本x和對應(yīng)真實(shí)值y,可以得到
(4)如果兩者不同,則對其懲罰,即根據(jù)打分函數(shù)扣除其分值,而后對參數(shù)更新;
(5)重復(fù)(4)中操作,反復(fù)迭代,直到找到最優(yōu)解,并給予獎(jiǎng)勵(lì),結(jié)束訓(xùn)練。
條件隨機(jī)場(conditional random field,CRF)是通過給定觀測序列X=(x1,x2, …,xn-1,xn)和狀態(tài)序列Y=(y1,y2, …,yn-1,yn),進(jìn)而求解條件概率P(Y|X)最優(yōu)的無向圖[29]。
以“中空腔有異物:不允許”為例,展示CRF 在規(guī)范類文本的分詞流程(圖3)。

圖3 CRF 分詞獎(jiǎng)懲流程
(1)采用CRF 對規(guī)范類文本分詞是一種序列化算法(sequence labeling algorithm),觀測序列X即為待分詞串,狀態(tài)序列Y就是對應(yīng)的詞性,并且X和Y兩個(gè)序列等長,此時(shí)應(yīng)將其視作線性鏈(linear chain)條件隨機(jī)場,即滿足馬爾可夫性[30]:
(2)觀測序列X即X={“中”,“空”,“腔”,“有”,“異”,“物”:,“不”,“允”,“許”},狀態(tài)序列同樣為{B,M,E,S},并根據(jù)上述給定序列X和Y以及所求解概率P(Y|X),有如下形式:
(3)Z(x)為歸一化函數(shù):
并且,tk和sl為特征函數(shù),λk和ul為對應(yīng)的權(quán)重值。
(4)通過對特征函數(shù)的所有權(quán)重值進(jìn)行訓(xùn)練,遍歷出X={“中”,“空”,“腔”,“有”,“異”,“物”:,“不”,“允”,“許”}中所有可能出現(xiàn)的序列,并對其中所有錯(cuò)誤的狀態(tài)序列進(jìn)行懲罰,不斷更新模型參數(shù)。
與Perceptron 相比,CRF 在特征函數(shù)、權(quán)重向量、打分函數(shù)預(yù)測算法以及結(jié)構(gòu)化學(xué)習(xí)上完全相同,其區(qū)別只在于Perceptron 每次只使用一個(gè)訓(xùn)練實(shí)例,而CRF 則考慮整個(gè)數(shù)據(jù)集。換言之,Perceptron 會(huì)懲罰最嚴(yán)重的錯(cuò)誤情況,而CRF 使所有錯(cuò)誤情況均攤承受懲罰。
該規(guī)范類文本存在部分定性描述,容易影響分詞結(jié)果,但經(jīng)過對文本的研究,發(fā)現(xiàn)多數(shù)文本可以歸為不同類別。因此,本文提出一種基于Re-Perceptron-CRF的組合分詞算法,首先將初始規(guī)范類文本按照規(guī)則進(jìn)行分類,對分類后的文本進(jìn)行依存句法分析[31],根據(jù)分析結(jié)果采取正則表達(dá)式[32]匹配換行符、空格、轉(zhuǎn)義符號等文本,從而減少無用字詞(的、得等無意義字)和標(biāo)點(diǎn)符號等無效字符串對分詞效果的影響,以及將部分詞語進(jìn)行合并,再根據(jù)處理后的文本將Perceptron和CRF 進(jìn)行融合匹配,即同時(shí)執(zhí)行兩種算法,返回兩種算法各自的最優(yōu)結(jié)果。
在對文本修正的過程中,發(fā)現(xiàn)規(guī)范類文本多數(shù)為組合詞語,而在對這些組合詞語進(jìn)行識別時(shí)很容易將其切分為兩組詞語。因此,該算法通過對比Perceptron和CRF 的分詞情況,優(yōu)先返回各自詞數(shù)更長匹配的結(jié)果。具體流程見圖4。

圖4 Re-Perceptron-CRF 算法流程
實(shí)驗(yàn)數(shù)據(jù)節(jié)選自《玻璃幕墻缺陷類型》,該文本為對玻璃幕墻中常見的缺陷類型及其詳情描述。在玻璃幕墻中存在多種規(guī)范,該文本即是記錄缺陷名稱及其表現(xiàn)情況和判定依據(jù)。例如,判定某幕墻存在劃傷缺陷的依據(jù)為:
(1)當(dāng)劃傷寬度≤0.1 mm且長度≤100 mm時(shí),每平方米面積內(nèi)允許存在4 條劃傷處;
(2)當(dāng)劃傷寬度為(0.1, 0.5)mm 且長度≤100 mm時(shí),每平方米面積內(nèi)允許存在3 條劃傷處。
根據(jù)建模流程和文本描述情況,原文本可按照如下方式進(jìn)行分類。
(1)d-f:defect-forbid ,缺陷不允許,對于某類缺陷明令禁止存在,文本格式為:“缺陷:不允許”。共2638個(gè)詞數(shù);
(2)t-d:text-description,文本描述,對各種尺寸要求或其他規(guī)格的單一描述,為一個(gè)單句。共1356 個(gè)詞數(shù);
(3)c-t-d:condition-text-description,條件文本描述,對相同場景不同條件下,某一尺寸要求或其他規(guī)格的規(guī)范描述,為一個(gè)長句。共3162 個(gè)詞數(shù);
(4)m-t-d:multiple-text-description,多項(xiàng)文本描述,對不同場景下,某一尺寸要求或其他規(guī)格的規(guī)范描述,為一個(gè)長句。共13918 個(gè)詞數(shù);
缺陷描述分類情況見表1。

表1 缺陷描述分類說明
通過為數(shù)據(jù)集各詞進(jìn)行{B,E,M,S}詞性標(biāo)注,進(jìn)而對比各算法分詞結(jié)果、評估算法優(yōu)劣,并得出相應(yīng)結(jié)論,主要流程如下:
(1)使用傳統(tǒng)算法Viterbi、Perceptron、CRF 進(jìn)行詞性標(biāo)注分詞實(shí)驗(yàn);
(2)構(gòu)建組合算法Re-Perceptron-CRF,首先對文本分類,并對文本進(jìn)行依存句法分析,根據(jù)分析結(jié)果通過正則匹配進(jìn)行文本內(nèi)容標(biāo)準(zhǔn)化后通過Perceptron 與CRF 的雙向算法,返回各自的最優(yōu)結(jié)果;
(3)對上述算法進(jìn)行結(jié)果統(tǒng)計(jì),包括計(jì)算分詞時(shí)間、整理分詞結(jié)果和歧義詞切分情況;
(4)使用評估指標(biāo)P、R、F1、R(oov)、R(iv)綜合評估所有算法性能,對比算法優(yōu)劣并分析。
3.3.1 依存句法分析
依存句法結(jié)構(gòu)本質(zhì)上是反映詞對之間的關(guān)聯(lián),表示一個(gè)詞對另一個(gè)詞的支配關(guān)系[33]。句法分析則表示根據(jù)指定語法,對文本中含有的句法單位及其之間的依存關(guān)系進(jìn)行自動(dòng)識別[34]。
將基于Python3.7 的編程環(huán)境,通過PyhanLP 模塊包進(jìn)行依存句法分析,并以“爆邊:長度或?qū)挾炔坏贸^玻璃的厚度”為例展示。分析結(jié)果見圖5 ~7。

圖5 語言學(xué)結(jié)構(gòu)圖

圖6 句法分析樹

圖7 語義分析節(jié)點(diǎn)圖
根據(jù)分析結(jié)果,該語句中關(guān)聯(lián)詞及關(guān)聯(lián)方向分別為:“爆→邊”“寬度→長度”“寬度→或”“爆→超過”“超過→寬度”“超過→不得”“玻璃→的”“厚度→玻璃”“超過→厚度”。句中各詞間的依賴關(guān)系一目了然,但存在部分詞語切分有誤的情況,因此需要對文本進(jìn)行修正。
3.3.2 分詞情況
按照依存句法分析結(jié)果,確定各詞語之間的依存關(guān)系(依存結(jié)構(gòu)特征、依存詞語特征等),采用正則表達(dá)式統(tǒng)一將文本進(jìn)行標(biāo)準(zhǔn)化處理,包括標(biāo)點(diǎn)符號、無用字的停用等。根據(jù)標(biāo)準(zhǔn)化的結(jié)果,選取每個(gè)類別下具有代表性的分詞結(jié)果進(jìn)行展示。通過使用Viterbi、Perceptron 感知機(jī)、CRF 條件隨機(jī)場、Re-Perceptron-CRF 進(jìn)行分詞,分別進(jìn)行效果對比,并選擇所有分詞結(jié)果中具有代表性的分詞效果與正確分詞結(jié)果進(jìn)行對比展示,具體結(jié)果見表2 ~3。

表2 分詞效果對比1

表3 分詞效果對比2
顯而易見,Viterbi 分詞的結(jié)果最多切分為二分詞,誤差極大;對于領(lǐng)域名詞“爆邊”而言,Viterbi 和Perceptron 無法將其正確識別并切分,而CRF 則能夠正確識別;但對于“不大于”而言,Perceptron 比起CRF 又能成功識別出來;Re-Perceptron-CRF 成功將Perceptron和CRF 的分詞結(jié)果綜合,返回兩者之中一方更為準(zhǔn)確的結(jié)果,同時(shí)在正則表達(dá)式的修正下,也成功識別出部分組合名詞和連接詞。
3.3.3 歧義詞切分
在所使用的規(guī)范類文本中,同樣像大多數(shù)文本一樣存在歧義詞,如“膜厚度”可能劃分為“膜厚/度”或“膜/厚度”,實(shí)則“膜厚度”這是一個(gè)整體。Re-Perceptron-CRF 會(huì)根據(jù)詞語上下文中相關(guān)信息進(jìn)行判斷,通過特征權(quán)重對歧義詞進(jìn)行切分。實(shí)驗(yàn)文本中共計(jì)21074 個(gè)詞數(shù),其中歧義詞占到8396 個(gè)。該文本下的歧義詞數(shù)以及各算法下的歧義詞切分情況見表4。

表4 歧義詞處理結(jié)果
3.3.4 分詞速度對比
將4 種方法的分詞速度進(jìn)行對比,結(jié)果見圖8。

圖8 分詞速度對比
從圖8 可知,Viterbi 算法的速度在對d-f 類文本進(jìn)行處理時(shí)的速度相對較慢,對其他類文本的處理速度基本和另外3 種算法持平。此外,各算法速度雖然不具有顯著差異,但是Re-Perceptron-CRF 的分詞速度明顯略勝一籌。
評價(jià)模型好壞的指標(biāo)通常采用準(zhǔn)確率P、召回率R和F1值來進(jìn)行評估,此外再引入Roov和Riv進(jìn)行對比。Roov和Riv分別表示未登錄詞(out of vocabulary)的召回率和登錄詞(in vocabulary)的召回率。
上述指標(biāo)的計(jì)算公式如下:
實(shí)驗(yàn)數(shù)據(jù)集共645 份待分詞樣本,根據(jù)上述公式得出各算法指標(biāo)對比見圖9 ~13。

圖9 算法準(zhǔn)確率對比

圖10 算法召回率對比

圖11 算法F1 值對比

圖12 算法未登錄詞召回率對比

圖13 算法登錄詞召回率對比
根據(jù)表2 ~3 的分詞效果對比以及圖9 ~13 的評估結(jié)果對比可知:對于同一數(shù)據(jù)集,盡管CRF 的整體P值和R值都相對較高,并且也正確識別出“膜厚度”一詞,但對于“不大于”這類詞并沒有完全正確切割,相反Perceptron 在該類詞語的表現(xiàn)相對優(yōu)越。并且,與Viterbi 相比,Perceptron 與CRF 在未登錄詞的召回率上表現(xiàn)大幅提升;同時(shí),在引入正則表達(dá)式進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化匹配后,雖然部分整體詞(如分格深度、分格總長度)仍然分成了兩組詞語,但“玻璃厚度”這類組合詞語能夠正確識別,整體結(jié)果比起傳統(tǒng)算法有明顯的提高。
通過使用Viterbi、Perceptron、CRF 和Re-Perceptron-CRF 4 種算法對規(guī)范類文本中語句進(jìn)行分詞,發(fā)現(xiàn)Re-Perceptron-CRF 的準(zhǔn)確率和召回率有明顯提高,并能夠有效識別領(lǐng)域內(nèi)專有名詞和部分組合詞,同時(shí)分詞速度也略微提升。但正則表達(dá)式匹配規(guī)則僅適用當(dāng)前場景,故該方法針對的范圍有限。其中,有一個(gè)現(xiàn)象引起注意:Viterbi 算法在處理d-f 類文本時(shí),所花費(fèi)時(shí)間幾乎是其他類文本的120 多倍,而d-f 類文本的文本數(shù)量其實(shí)是最少的。在后續(xù)的研究中,可能會(huì)重點(diǎn)關(guān)注這一問題。總而言之,后續(xù)研究方向?qū)⒓性谝韵? 個(gè)方面:如何將該領(lǐng)域規(guī)范類文本正則匹配規(guī)則應(yīng)用于更多規(guī)范類文本;如果提高組合詞語和專有名詞的劃分精確度,提高消除歧義的準(zhǔn)確度;能否在分詞處理速度上做更多的優(yōu)化。