袁野 朱榮釗
摘 ?要:稅務公文作為社會政治的產(chǎn)物,具有鮮明的政治性。而撰制公文是一項嚴肅的工作,必須保持準確、嚴肅的文體特點。為減輕撰制者和審核者的負擔,該實驗針對稅務系統(tǒng),利用基于BERT-BiLSTM-CRF的序列標注模型和BERT掩碼語言模型的特點,對公文句子中常見的單個字錯誤進行了檢錯、糾錯實驗。準確率、召回率和F1值相比傳統(tǒng)的糾錯方法有著明顯的提升。結果表明,基于BERT-BiLSTM-CRF的序列標注模型和BERT掩碼語言模型在稅務公文檢錯糾錯應用中具有較大價值。
關鍵詞:稅務公文;BERT掩碼語言模型;BERT-BiLSTM-CRF;序列標注
中圖分類號:TP391.1 ? ? 文獻標識碼:A 文章編號:2096-4706(2020)13-0019-03
Abstract:As a product of social politics,tax official documents have a distinct political nature. Writing official documents is a serious work,and it must maintain accurate and serious style characteristics. In order to reduce the burden of writers and reviewers,this experiment is aimed at the tax system and uses the advantages of the BERT-BiLSTM-CRF-based sequence labeling and BERT mask language model to detect and correct single word errors in official document sentences. Compared with traditional error correction methods,the accuracy rate,recall rate and F1 value are significantly improved. The results show that the BERT-BiLSTM-CRF-based sequence labeling and BERT mask language model have great value in the error detection and correction of tax administrative documents.
Keywords:tax administrative documents;BERT mask language model;BERT-BiLSTM-CRF;sequence labeling
0 ?引 ?言
隨著對外開放規(guī)模的擴大和社會主義市場經(jīng)濟的發(fā)展,稅收在國民經(jīng)濟中的地位和作用日益增強。稅務單位為了加強對稅務工作的管理,稅務公文的數(shù)量規(guī)模有了較大的增長。一份稅務公文的形成需要經(jīng)過多個環(huán)節(jié),主要包括構思準備、撰寫、修改、定稿、清樣的打印、清樣的校對以及最后的定版印刷等。這些環(huán)節(jié)中,每一項都很重要。其中在公文成型過程中反復的修改和校對工作更是重中之重,是把好質量關的有效手段,也是避免產(chǎn)生紕漏的有效措施。
從稅務公文起草到定版印刷過程中,總是會因為各種疏忽出現(xiàn)這樣或那樣的錯誤。如快速打字過程中會出現(xiàn)的錯字、多余字、缺漏字等以及錯誤隱藏較深的同音異義字(“實事求是”寫成“實是求是”以及“的”“地”“得”等字的不當使用)等,這些錯誤在降低了公文質量的同時,也影響到了稅務公文所面向群體對政策地理解,從而在某種程度上影響了發(fā)文單位的權威性和公信力。因此針對稅務工作人員在寫作過程中的修改檢查和公文打印前的校對這兩個環(huán)節(jié),本文提出了用自然語言處理技術中的文本糾錯來輔助完成上述任務的方法。該方法能夠讓計算機自動分析文本中的語義信息并對句子中常見冗余,少字,錯字,字序顛倒[1]等錯誤加以糾正,從而幫助工作人員及時發(fā)現(xiàn)文本錯誤并改正,提高工作效率。
1 ?相關研究
常見的文本檢錯方法大致可以分為三類,基于規(guī)則的方法、基于統(tǒng)計的方法和基于深度學習的方法?;谝?guī)則的方法通常依賴于切詞工具和足夠大的混淆字典;基于統(tǒng)計的方法,通常使用N-gram得出每個字或詞的條件概率,計算句子的困惑度,判斷句子是否錯誤。也使用統(tǒng)計機器翻譯把檢錯與糾錯過程當作機器翻譯任務,在檢錯的同時,給出修改建議;基于深度學習的方法常用的技術則有以RNN和Self-Attention為基礎的深度語言模型等。
近年來,已有大量的深度語言模型用于中文文本糾錯,在NLPCC 2018的shared task2上,有道團隊把錯誤分為低級錯誤和高級錯誤,低級錯誤使用相識字音表和N-gram解決,高級錯誤使用字級、詞級Transfomer加以解決,最后再用統(tǒng)計語言模型對候選句子進行通順度檢查,選擇困惑度最低的句子完成句子的檢錯、糾錯任務。阿里團隊則采用了smt+BeamSearch與Encoder-Decoder(各2層LSTM)+Attention的方法,生成候選句子并結合最小編輯距離和語言模型評分挑選最終結果[2]。
2 ?基于BERT的檢錯糾錯模型
傳統(tǒng)詞向量方法如word2vec,glove等單層神經(jīng)網(wǎng)絡為基礎的語言模型,不能很好的結合上下文,且一個字或一個詞只能用同一詞向量表示,在一詞多義的情況下無法進行建模,模型深度不夠,不能有效提取出語法、語義特征;而ELMo雖然解決了一詞多義的問題和模型深度問題[3],但由于BiLSTM不能百分之百解決梯度消失或爆炸的問題,在捕捉長程依賴的方面依然存在問題。
BERT則完全摒棄了時序語言模型的結構[4],采用了多層Transfomer的結構,能夠從較深的網(wǎng)絡中提取出足夠的特征,也能夠通過Self-Attention機制和位置編碼的方式有效的考慮到上下文信息和字的位置信息,即使是在相同的字不同意思的情況下,也能夠充分考慮以上因素得出不同且有效的向量編碼。
本模型針對稅務公文中常見的錯誤,將糾錯過程分兩個階段,檢錯階段與糾錯階段,檢錯階段是基于BERT-BiLSTM- CRF的序列標注模型,用以標注出句子中的出錯位置。糾錯階段是基于BERT掩碼語言模型,用以預測出錯位置的字符,從而完成糾錯功能。
2.1 ?檢錯階段
檢錯階段分別訓練了4個針對不同單個字錯誤類型(冗余、少字、錯字、字序顛倒)的序列標注模型,序列標注模型第一層為谷歌預訓練好的BERT模型,用以提取句子的深層語義信息并輸出詞向量(X);第二層為BiLSTM。由于BERT中的Self-Attention機制削弱了序列消息,因此用BiLSTM接收BERT傳過來的詞向量信息,并為之后的輸出增加前向和后向的序列信息(H);第三層為CRF,用來考慮標簽間的依賴關系,為預測的標簽添加一些約束來保證預測標簽的合法性(P)。序列標注模型如圖1所示,圖中O為正確字符的標注,W為錯誤字符的標注。
2.2 ?糾錯階段
通過序列標注模型預測出句子每個字所對應的標簽后,針對冗余錯誤,直接刪除被標注成冗余的字;字序顛倒的錯誤,將帶有標注成字序顛倒的字調換過來即可;少字和錯字則在對應的標注少字和錯字的位置增加和替換“[MASK]”標簽后,輸入BERT掩碼語言模型,通過該模型預測,得到對應位置的字,從而完成糾錯。冗余和少字糾錯過程如圖2所示。
3 ?實驗語料及標注方式
考慮到稅務公文的常見出錯特點,作者在搜集的稅務公文正文語料中,隨機選取了各類單字錯誤的語料共4 000條,其中2/3作為訓練集,1/3作為測試集,另外推理時測試集還加入了相同數(shù)量的正確句子。針對冗余、少字、錯字、字序錯誤不同錯誤類型,錯誤示例與標注方式如表1所示。
4 ?實驗經(jīng)過
本文模型建立在Tensorflow框架上,BERT模型加載的是谷歌訓練好的chinese_L-12_H-768_A-12檢查點。訓練階段只對序列標注中的BiLSTM-CRF層進行參數(shù)調優(yōu)。在預測階段,將每一個測試集的句子分別由4個序列標注模型獨立預測,并按如下公式來判斷句子是否出錯。
其中,n為序列標注模型數(shù)量,Wn為每個模型預測對應的權重,Mn為每個模型對句子的判斷,正確為1,錯誤為0。如果Score大于0.5則判斷句子是正確的,否則,則判定句子是錯誤的。
之后對預測為錯誤的句子,按上述糾錯階段的方法進行糾錯,得到4個糾錯后的句子以及錯字和少字預測結果各5個候選句子,再計算每個句子的困惑度,將句子困惑度最小的句子作為最后預測結果。
5 ?評價標準及實驗結果
本實驗檢錯糾錯的評價指標有精確率(P)、召回率(R)、和F1值。具體計算公式為:
其中,Tp為錯誤句子被模型指出或糾正正確的數(shù)量,F(xiàn)n為錯誤句子被預測成正確句子的數(shù)量,F(xiàn)p為模型認為句子有錯但判斷錯誤的數(shù)量,包括兩種情況:(1)句子正確,模型認為有錯;(2)句子有錯,但模型預測的錯誤與句子實際錯誤不同。
在本實驗構建的數(shù)據(jù)集下將GitHub上比較熱門的開源文本檢錯項目Pycorrector作為比較[5],從表2和表3的實驗結果可以看出,本文模型與Pycorrector項目相比在準確率、召回率、F1值結果上均有提高,相比Pycorrector本模型在檢錯方面的準確率提高了4.12%,召回率提高了8.09%。主要原因為,相比Pycorrector中的以統(tǒng)計語言模型為主的檢錯,本模型采用了更加細粒度的檢錯方案,針對不同錯誤類型訓練了不同的小模型,且訓練過程只針對標注模型BiLSTM-CRF部分,對數(shù)據(jù)量要求相比Pycorrector較少。在糾錯方面準確率和召回率相比Pycorrector分別提升了6.08%和11.54%,原因在于BERT掩碼語言模型在序列標注模型給出錯誤位置的基礎上能很好的預測出候選項并給出正確結果。
6 ?結 ?論
本文以BERT模型為基礎,建立了具有稅務公文文本特點的檢錯糾錯模型,實現(xiàn)了在稅務公文領域的自動檢錯糾錯。雖然本模型能在很大程度上幫助稅務工作人員提高工作效率,但是在本模型的自動檢錯和糾錯工作中,仍然有許多能夠提高的地方。如在檢錯時,會有將人名,地名識別為錯誤的情況,在訓練檢錯的序列標注模型時可以將命名實體識別的功能一并訓練,并在文本中將人名地名指出,這樣一方面能給相關工作人員提供某種便利,另一方面也能避免檢錯模型的將部分帶有人名,地名的句子誤認為是錯誤句子。在糾錯方面,則可以加入一些規(guī)則和統(tǒng)計模型為糾錯結果生成更多的候選項,從而提高預測的準確程度。
參考文獻:
[1] 王虹,張仰森.基于詞性預測的中文文本自動查錯研究 [J].貴州師范大學學報(自然科學版),2001(2):72-75.
[2] ZHAO Y Y,JIANG N,SUN W W,et al. Overview of the NLPCC 2018 Shared Task:Grammatical Error Correction [C]//NLPCC 2018:Natural Language Processing and Chinese Computing.Cham:Springer,2018:439-445.
[3] PETERS M E,NEUMANN M,IYYER M,et al. Deep contextualized word representations [J/OL].arXiv:1802.05365v2 [cs.CL].(2018-03-22).https://arxiv.org/abs/1802.05365v2.
[4] DEVLIN J,CHANG M W,LEE K,et al. Bert:pre-training of deep bidirectional transformers for language understanding [J/OL].arXiv:1810.04805v2 [cs.CL].(2019-05-24).https://arxiv.org/abs/1810.04805v2.
[5] shibing624(xuming). Pycorrector [EB/OL].(2019-08-19).https://github.com/shibing624/pycorrector.
作者簡介:袁野(1995.12—),男,漢族,湖北荊州人,碩士研究生在讀,主要研究方向:自然語言處理;通訊作者:朱榮釗(1981.03—),男,土家族,湖北恩施人,中級實驗師,理學碩士,主要研究方向:系統(tǒng)分析與集成、人工智能。