王燕鳳
(西北民族大學(xué),甘肅 蘭州)
隨著“互聯(lián)網(wǎng)+”時代的到來,數(shù)字辦公成為主流,數(shù)字圖書也越來越多,在這一背景下文本自動校對的需求越來越迫切,中文文本自動校對逐漸成為熱門研究課題。目前常用的文本自動校對系統(tǒng)大多存在算法復(fù)雜、工作量大、耗費時間多等弊端,實用性較差。本研究設(shè)計了一種基于自然語言處理的文本自動校對系統(tǒng),并對其應(yīng)用效果進行了實驗分析。
1.1.1 語料庫的構(gòu)建
該系統(tǒng)字詞校對功能的實現(xiàn)方式是檢查相鄰的字與字之間、字與詞之間、詞與詞之間是否存在錯誤。本研究統(tǒng)計了2020 年1-12 月份《人民日報》中的文章,共計377 萬字,整理成一個18.5 M的語料庫。通過分詞和詞性標注處理,從字詞組合特點、詞性等方面綜合分析系統(tǒng)進行自動化文本校對處理時的規(guī)律特點。實際上,使用大數(shù)據(jù)技術(shù)進行數(shù)據(jù)自動分析、整合,建立語料庫后,應(yīng)定期根據(jù)人們用詞習(xí)慣來更新語料庫的內(nèi)容,提升自動校對的準確度。
1.1.2 基于接續(xù)關(guān)系的查錯
本研究根據(jù)字詞間的二元接續(xù)關(guān)系檢查目標字串附近字詞的相鄰關(guān)系。假設(shè)有一個字串為A1A2…Ai-1AiAi+1…An,如果需要判斷Ai(這里Ai為單個漢字或詞語)與相連字詞間的關(guān)系,根據(jù)語言學(xué)中的”二元模型”理論,只需要檢查Ai-1和Ai,以及Ai和Ai+1的關(guān)系即可。在一個包含了海量字詞的語料庫中,假設(shè)從Ai-1到Ai的轉(zhuǎn)移概率為P(Ai/Ai-1),并且P 滿足一定的閾值限定,則認為Ai-1和Ai存在二元接續(xù)關(guān)系。在文本自動校對系統(tǒng)的應(yīng)用中,要想判斷Ai是否出錯,可以先判斷Ai-1和Ai是否接續(xù)。如果接續(xù),則Ai沒有出現(xiàn)錯誤,完成本次查錯;如果不接續(xù),還需要繼續(xù)判斷Ai和Ai+1是否接續(xù)。如果兩者也不接續(xù),可以認定Ai出現(xiàn)錯誤[1]。
基于語法成分的查錯策略如下:首先利用規(guī)則庫中的規(guī)則處理被檢查的句子,成功識別出該句子中的主語、謂語等成分塊;然后按照“從下往上”的順序,依次進行短語、短句的結(jié)構(gòu)糾錯校對。此時,斷句所使用的標點符號、空格,都可能影響自動校對系統(tǒng)的準確性,需要引起重視。文本自動校對系統(tǒng)在語法查錯時,需要提前進行句子的預(yù)處理,進行相關(guān)短句的串聯(lián)和捆綁,從而起到提高識別精度、保證分析結(jié)果正確的效果[2]。對于句子中的不同成分(如主語、謂語、賓語、補語等),采取的識別和檢查策略各有不同,這里以謂語為例,識別和檢查算法如下:
1.3.1 建立依存關(guān)系
本系統(tǒng)采用基于實例的語義查錯,具體方法為:確定待校對的句子后,首先對該句子的組成結(jié)構(gòu)展開分析。收集網(wǎng)絡(luò)系統(tǒng)中相關(guān)的句子案例,組成一個集合n。分別計算集合n 中每一個實例與待校對句子的相似度,并挑選出相似度最高的實例i。將i 與待校對句子進行對比,即可得出查錯結(jié)果。該方法雖然操作起來比較簡單,但是由于集合n 中的實例數(shù)量較多,語義相似度計算的工作量大。為了減輕相似度計算的工作量,本研究提出了一種基于依存關(guān)系的解決辦法。根據(jù)語義依存語法,詞之間的關(guān)系是有方向的,根據(jù)兩者之間方向的不同,可以建立起支配與被支配的關(guān)系,這種關(guān)系就是依存關(guān)系。其中,支配詞又叫做中心詞,可以表現(xiàn)它所在短語的主要語法、語義特征[3]。
1.3.2 句子相似度計算
語義相似度計算是語義查錯的關(guān)鍵,利用依存關(guān)系進行相似度計算時,只需要考慮那些有效搭配(全句核心詞和直接依存于其有效詞組成的搭配)之間的相似程度。通常情況下,句子中的有效詞主要是動詞、名詞和形容詞?,F(xiàn)在以2 個例句為例,介紹計算方法。
例句1:事發(fā)后,傷員被及時送往就近醫(yī)院救治。
例句2:晚上七時左右,所有傷員被送到了醫(yī)院。
根據(jù)語義依存關(guān)系構(gòu)建兩個例句的依存樹,見圖1。
根據(jù)圖1 可知,在例句1 中,“送往”是關(guān)鍵詞,搭配結(jié)構(gòu)是:送往__傷員、送往__醫(yī)院、送往__救治;例句2 中,“送到”是關(guān)鍵詞,搭配結(jié)構(gòu)是:送到__傷員、送到__醫(yī)院。這樣一來,只需要計算兩者之間的相似程度即可,從而簡化了相似度計算的工作量,并且對提高校對結(jié)果的精確度也有一定幫助。相似度計算公式為:
圖1 例句1 和例句2 的依存樹
結(jié)合表1 的權(quán)重定義,例句1 和例句2 的相似度為:
表1 搭配匹配權(quán)重的設(shè)計
根據(jù)相似度結(jié)果,將待檢測句子與相似度最高的句子進行對比,即可判斷是否存在語義錯誤,從而完成語義校對。
1.4.1 構(gòu)造易混淆詞典
不同于上文介紹的字詞查錯和語法查錯,文本自動校對分為2 方面的內(nèi)容,即查錯和糾錯。糾錯是根據(jù)查找出來的錯誤,提出相應(yīng)的改正策略。針對常規(guī)糾錯方法存在的弊端,本研究在設(shè)計文本自動校對系統(tǒng)的糾錯模塊時,吸取了上述方法各自的優(yōu)勢,提出了一種新的糾錯方法。首先,綜合考慮了中文文本中常見錯誤的類型,以及每種錯誤的特征,完成有關(guān)詞典內(nèi)容的收集,作為系統(tǒng)自動識別錯誤用詞的參照物。一旦發(fā)現(xiàn)文本錯誤,應(yīng)結(jié)合同現(xiàn)概率表,選出一些可替換的詞匯作為糾錯建議。如果無法產(chǎn)生糾錯建議,則采用人工添加的方式,將糾錯建議和對應(yīng)的錯誤字串一同添加到易混淆詞典中,使得易混淆詞典具備了自學(xué)能力。這樣就可以不斷的豐富詞庫中的易混淆詞,從而讓文本自動校對系統(tǒng)的糾錯能力得到持續(xù)提升[4]。易混淆詞典的自學(xué)習(xí)原理見圖2。
圖2 易混淆詞典的自學(xué)習(xí)原理
1.4.2 糾錯算法編程
現(xiàn)階段,文本自動校對系統(tǒng)可以對一些字詞級錯誤給出相應(yīng)的糾錯建議,但是對于語法錯誤、語義錯誤則很難給出準確的糾錯建議。因此,本研究使用了糾錯產(chǎn)生算法對除字詞級錯誤以外的其他錯誤類型進行糾錯。以例句3“我們認為可疑延長時間?!睘槔?,“可疑延長”是文本自動校對系統(tǒng)查找出的錯誤字。糾錯產(chǎn)生算法的編程思路如下:
本研究設(shè)計的文本自動校對系統(tǒng)由校對預(yù)處理模塊、查錯模塊(包括字詞級查錯、語法級查錯、語義級查錯3 部分)和校對糾錯模塊組成。其功能實現(xiàn)流程為:
步驟1:輸入或打開一個文本,按照順序讀入單句,并進行文本的預(yù)處理。采取雙向模式匹配法,依托預(yù)選設(shè)定好的詞庫,識別漢字文本的組成結(jié)構(gòu),確定詞組的詞性。
步驟2:構(gòu)造字頻向量、二元詞性同現(xiàn)頻率表,得到查錯知識庫。利用該系統(tǒng)的查錯模塊,識別詞組之間的連接順序、連接方式是否存在錯誤,完成基礎(chǔ)糾錯任務(wù)。另外,通過對句子中成分是否完整進行分析,精準識別語法錯誤,這需要選用依存文法對語義錯誤進行查錯。
步驟3:借助于易混淆詞典、同現(xiàn)概率表,對上一步中查找出來的錯誤進行定位,并生產(chǎn)相應(yīng)的糾錯建議,完成糾錯。
步驟4:糾錯完畢后,執(zhí)行一個判斷程序“文本處理是否結(jié)束?”如果有未處理的文本,則返回步驟1,繼續(xù)讀入尚未處理的文本,并重復(fù)上述步驟;如果文本處理完畢,則由系統(tǒng)自動生成語料文本,并在人機交互界面上顯示處理結(jié)果,文本自動校對程序結(jié)束[5]。
從某雜志的127 篇文章中,挑選出185 個正確句子,以及180 個存在錯誤的句子,其中有50 個字詞級錯誤句子、110 個語法級錯誤句子和20 個語義級錯誤句子。部分病句如下:
(1)他是本地一家知名企業(yè)的總載。(“載”為錯別字,應(yīng)為“裁”)
(2)本縣蘋果的品種非常多,這里無法一一例舉。(“例舉”應(yīng)為“列舉”)
(3)德國總理授予法院獲得簽發(fā)“禁止未成年人進入酒吧證”的權(quán)力。(多字,應(yīng)刪除“獲得”)
將其放到同一個文本中,輸入本研究設(shè)計的文本自動校對系統(tǒng)。為保證系統(tǒng)校對結(jié)果的客觀性和直觀性,本次實驗中引入了以下參數(shù):
(1)召回率=正確發(fā)現(xiàn)句子數(shù)/實際錯誤句子數(shù)×100%。
(2)誤報率=(發(fā)現(xiàn)錯誤句子數(shù)- 正確發(fā)現(xiàn)句子數(shù))/ 發(fā)現(xiàn)錯誤句子數(shù)×100%。
(3)查準率=1- 誤報率。
文本自動校對結(jié)果見表2。
表2 測試結(jié)果
結(jié)合表2 數(shù)據(jù)可知,本研究設(shè)計的文本自動校對系統(tǒng)具有較高的召回率和查準率,基本上能夠維持在70%以上。其中,該系統(tǒng)對于文本中語法級錯誤句子的召回率和查準率最高,分別達到了89.1%、89.2%。
本研究設(shè)計的文本自動校對系統(tǒng)可以實現(xiàn)字詞查錯、語法查錯、語義查錯,并且能夠?qū)Σ檎页鰜淼奈谋惧e誤,提出相應(yīng)的糾正建議。從實驗結(jié)果來看,該系統(tǒng)對常見文本錯誤的查準率和召回率均達到了70%以上,表明本研究設(shè)計的文本自動校對系統(tǒng)可以快速、準確地完成對目標文本的錯誤查找。下一步,還需要繼續(xù)擴充語料庫,并且不斷優(yōu)化語料庫的語言規(guī)律,從而使文本自動校對系統(tǒng)更廣泛地適用于不同領(lǐng)域、不同風(fēng)格的文章。