?

基于深度模型的漢字拼寫檢查方法

2024-01-15 09:35哲,曹
關鍵詞:拼寫錯誤語音錯誤

陳 哲,曹 陽

(東南大學 網絡空間安全學院,江蘇 南京 211102)

隨著中國經濟的發展和國際地位的不斷提高,漢語在全世界得到了極大程度的普及,越來越多的人們開始學習漢語,并通過使用漢字進行書面交流。漢語是一門復雜的表意語言,在使用的過程中難免會出現拼寫錯誤,影響使用者的正常表達。與英文這類拼音文字相比,拼音文字的拼寫錯誤更多集中于個別字母的增減或錯用;而漢字這類象形文字除了由語音相似引起的拼寫錯誤之外,還會因為外形的形狀相似而造成使用者的拼寫錯誤。根據Liu 等[1]人的研究,約83%的漢語拼寫錯誤與語音相似性有關,48%的錯誤與視覺相似性有關。這些漢語中語音或視覺上很相似的漢字,語義卻大不相同,使用者的拼寫錯誤將極大改變原本想要表達的句子含義。另外,除了人類書寫會造成拼寫錯誤,現如今應用越來越普遍的自動語音識別、光學字符識別也會造成漢字的拼寫錯誤。因此,對漢語的拼寫進行檢查是有意義的。

漢語拼寫檢查(Chinese spelling check,CSC)是自然語言處理(natural language processing,NLP)中一項檢測和糾正漢語拼寫錯誤的任務,旨在通過使用統計或者深度學習的方法來解決漢語書寫錯誤的問題。盡管最近研究人員在漢語拼寫檢查領域取得了一些進展,但漢語拼寫檢查依舊是一項具有挑戰性的任務。另外,相比英文的拼寫糾錯,漢語拼寫檢查更加注重利用上下文信息之間的關系來進行錯字的識別與修改。

以往的漢語拼寫檢查方法傾向于使用混淆集來查找和過濾候選詞?;煜刹徽_的統計數據構成,它在視覺相似對和語音相似對之間有一個映射。Yu 等[2]建議通過檢索混淆集,然后利用語言模型對其進行過濾,從而產生多個候選;Wang 等[3]使用指針網絡從混淆集中復制類似字符。然而,這些模型只從混淆集中學習一個淺映射,其性能在很大程度上取決于混淆集的質量。而如今隨著漢語在各個領域內的使用,很難找到一個最新的混淆集。另外,以往的研究傾向于使用單種模型來進行拼寫檢查任務,而實際上使用模型組合的方式分別完成檢測和糾正能得到更好的效果。

為解決上述問題,本文提出了一個漢語拼寫檢查模型。該模型由檢測網絡和糾正網絡構成。其中,由雙向長短期記憶網絡(bidirectional long shortterm memory,BiLSTM)結合條件隨機場(conditional random field,CRF)構成的檢測網絡用于檢測視覺錯誤詞與語音錯誤詞。LSTM 是一種循環神經網絡模型,相比普通的循環神經網絡(recurrent neural network,RNN)模型,LSTM 獨特的門機制可以更有效地保存有用信息。利用雙向LSTM 則可以同時從前文和后文獲取信息。CRF 是一種用來捕獲序列潛在特征的機器學習方法,在序列標注問題中有較多應用。將檢測出的拼寫錯誤詞進行掩蓋,輸入到基于BERT(bidirectional encoder representations from transformer)模型構成的糾正網絡中,糾正網絡將結合上下文對掩蓋的詞進行預測,達到糾正拼寫錯誤詞的目的。其中BERT 模型是近些年來最為火熱的NLP預訓練模型,它及各種演變模型在許多NLP 任務中都大放異彩。在測試集上的實驗表明,本文提出的模型得到了先進的結果。

本文的主要貢獻如下:

1)提出一個漢語拼寫檢查模型,該模型能夠不依賴于混淆集,并且利用模型組合的優勢,對句子中的視覺錯誤詞及語音錯誤詞通過檢測模型進行檢測,然后利用糾正模型進行糾正;

2)本文所提出的模型在SIGHAN-2015 測試數據集上的評價指標結果比現有的漢語拼寫檢查方法表現更好。

論文結構安排如下:第1 節介紹漢語拼寫檢查的相關工作;第2 節介紹本文所提出的漢語拼寫檢查模型結構;第3 節介紹實驗相關設置;第4 節介紹實驗的結果和分析;第5 部分對全文工作進行總結。

1 相關工作

許多研究者對漢語拼寫檢查任務已進行了大量研究。早些年研究者利用N 元語言模型來做漢語拼寫檢查任務。Xie 等[4]提出一種基于二元和三元語言模型,以及漢語分詞的方法;Jin 等[5]使用了一種混合方法來進行漢語拼寫糾正。他們集成了3 種模型,包括N 元語言模型、基于拼音的語言模型和基于聲調的語言模型,用來提高漢語拼寫錯誤檢查系統的性能。

還有的方法將漢語拼寫檢查視為序列生成問題或序列標記問題。Wang 等[3]引入復制機制以生成糾正序列;Bao 等[6]通過基于塊的生成模型統一了單字符和多字符糾正。

隨著預訓練模型(pre-trained models,PTM)在機器翻譯領域大放異彩,研究者們開始將預訓練模型引入到CSC 任務中。具體做法為引入掩蔽語言模型(masked language model,MLM)作 為預訓 練任務,根據上下文條件預測拼寫錯誤的詞并對其進行糾正?;贛LM 可以將混淆集應用于狹窄的搜索空間,以預測正確的字。Cheng 等[7]通過混淆集構建了一個圖表,以幫助最終預測;Nguyen 等[8]提出了一個適應性混淆集,但其訓練過程不是端到端的;Li等[9]采用一種混淆集引導的掩蔽策略來對掩蔽語言模型進行訓練。

最近,一些拼寫檢查方法還利用了語音特征和視覺特征。Liu 等[10]使用門控循環單位(gated recurrent unit,GRU)[11]將拼音序列和漢字筆畫序列編碼為額外特征;Xu 等[12]對字符的圖片進行編碼以獲得視覺特征;Li 等[13]利用圖卷積神經網絡引入拼音和部首信息作為語音和視覺特征;Yin 等[14]采用K 近鄰模型結合語音、圖形、上下文信息進行拼寫糾錯。

不同于以往研究者只使用序列標注模型或者預訓練模型,本文在總結前人工作經驗的基礎上,同時使用了這兩種模型,并結合模型特點分配檢測和糾正任務,從而發揮出不同模型各自的優勢,以得到更好的效果。具體來說,本文使用BiLSTM +CRF 的結構構成檢測模型,來檢測句子中的拼寫錯誤,并對錯誤詞做特殊處理;使用預訓練模型BERT作為糾正模型,來糾正檢測出的錯誤詞。

另外,本文還在模型中結合了漢字的語音和視覺特征來提升效果。下文將在第2 節介紹提出的模型。

2 拼寫檢查模型

本文將在這一部分介紹提出的漢語拼寫檢測模型。模型由檢測網絡和糾正網絡組成,并融入了漢字的視覺特征和語音特征。

2.1 整體模型結構

整體的拼寫檢查模型結構如圖1 所示。不同于只利用序列標注模型或者預訓練模型的現有方法,本文提出的方法同時使用了兩種模型:1)利用序列標注模型進行錯詞檢測;2)使用BERT[15]模型進行錯詞糾正。這種方式可以更大程度發揮模型優勢,以達到更好的效果。

圖1 本文提出的拼寫檢查模型結構示意圖Fig.1 Structure of spell checking model

模型工作流程如下:

1)將待檢查句子輸入模型進行輸入嵌入(input embedding);

2)輸入嵌入通過檢測網絡進行檢測,若未檢測出錯誤詞,則直接輸出結果,否則對錯誤詞進行掩蓋嵌入處理;

3)將經過掩蓋處理的嵌入輸入到糾正網絡中進行修改,將得到的輸出與輸入嵌入進行殘差連接作為模型的輸出。使用殘差連接可以緩解深度模型由于層數過多而導致的梯度消失問題。

2.2 輸入表示

在將漢字的表示輸進模型之前需要對輸入的漢字做嵌入。本文采用類似BERT 模型的嵌入方式對輸入的漢字進行嵌入,如圖2 所示。具體來說,字符嵌入包含了每個漢字的信息;段嵌入用以記錄段落信息;位置嵌入記錄不同漢字的位置。除此之外,本文在嵌入中增加了筆畫嵌入及語音嵌入。筆畫嵌入包含了每個漢字的筆畫信息,用以記錄視覺特征;而語音嵌入包含了每個漢字的拼音信息,用以記錄語音特征。

2.3 檢測網絡

檢測網絡旨在檢測出句子中拼寫錯誤的字。本文提出使用BiLSTM[16]結合CRF 的方式構成檢測網絡。條件隨機場CRF 是一種無向圖模型,它結合了最大熵模型和隱馬爾科夫模型的特點,常用于標注或分析序列資料。由于CRF 可以彌補循環神經網絡無法捕獲序列潛在轉移關系的不足,使得BiLSTM +CRF 的結構在命名實體識別、語法檢錯等領域中有較多應用。鑒于任務的相似性,本文使用類似語法檢錯的方式對拼寫錯誤的字進行檢測。分別給句子中的正常字、語音錯誤字、視覺錯誤字賦予不同的標簽,如圖3 所示。通過檢測網絡可以給不同的字打上不同的標簽:圖中達(撻)為視覺錯誤字,標簽為R;高(糕)為語音錯誤字,標簽為V;其他正確字標簽為O。

圖3 漢字標簽示例Fig.3 Chinese character label example

訓練檢測網絡模型能夠找到句子中不同類別的拼寫錯誤。檢測網絡模型如圖4 所示。具體來說,將經過嵌入后的字符Ei(i=1,2,…,n)輸入到BiLSTM 網絡中,將前向輸出與后向輸出拼接后得到的結果Ti(i=1,2,…,n)輸入到CRF 層中,CRF 層將根據Ti的特征及不同Ti之間的轉移關系計算出最佳的組合標簽序列,以此作為檢測模型的輸出。

圖4 檢測網絡Fig.4 Detection network

在送入糾正網絡之前,需要對找出的錯誤字進行掩蓋(mask)處理。由于錯字在視覺上或者語音上與正確字相似,因此,它與正確字之間存在一定的聯系。為此本文對找出的錯字進行軟掩蓋(soft mask)[17]處理

其中:θ 為軟掩蓋參數;Ei表示錯誤字的嵌入表示,i=1,2,…,n;EM表示掩蓋標志的嵌入表示。本文中θ取0.5。對于正確的字,不對其做掩蓋處理。

2.4 糾正網絡

糾正網絡旨在結合全局上下文對掩蓋后的字進行預測,以達到糾錯的目的。糾正網絡主體為BERT 模型,模型架構如圖5 所示,圖中Ei(i=1,2,…,N)表示嵌入表示,Trm 表 示transformeer 模型。BERT 由雙向transformer[18]的編碼器構成,基于注意力機制的架構使得BERT 擺脫傳統語言模型的束縛,可以同時利用上下文的信息進行預測。另外,糾正網絡利用上下文預測掩蓋詞的任務與BERT 的MLM(mask language model)預訓練任務是契合的,因此選用BERT 模型作為糾正網絡是合理的。糾正網絡接收經過掩蓋處理后的嵌入,輸出經模型修改后的結果。

圖5 BERT 模型架構圖Fig.5 BERT model architecture

2.5 預訓練任務與損失函數

為了使模型能夠達到拼寫檢查的目的,本文設計了錯誤詞檢測-修改預訓練任務。錯誤詞檢測-修改任務旨在預測句子中錯誤詞的位置,并將該詞進行糾正,以此來訓練模型的檢查效果。對訓練集中的錯詞按照視覺錯誤與語音錯誤進行分類。本文將正確的句子表示為

包含錯誤漢字的句子表示為

其中:rj表示視覺錯誤詞;vi表示語音錯誤詞。記錄錯誤詞位置信息為p=[j,i],sc對應的標簽信息為

其中,R,V 分別表示視覺錯誤標簽與語音錯誤標簽。檢測-修改任務通過訓練模型,得到錯句sc的正確標簽序列pos,并利用pos 糾正rj,vi為tj,ti。

最后,分別計算檢測網絡和糾正網絡的損失,如式(2)與式(3)所示。

檢測網絡的損失函數為

其中:xi表示CRF 中第i 條路徑狀態分數與轉移分數之和,共有mn條路徑;n 為序列長度;m 為標簽種類數。檢測網絡損失函數Lossd表示為真實路徑分數占總路徑分數的比重的負數,即真實路徑分數占比越高,損失函數越小。

糾正網絡的損失函數為

其中:S 表示正確句子樣本;Sc表示錯誤句子樣本表示被掩蓋的詞經過糾正網絡糾正后得到的結果;Θ 表示模型參數。修改網絡損失函數為句子中所有字的交叉熵損失和。計算得到最終的損失函數

其中,0 <λ <1。

3 實驗設置

本節將介紹實驗使用的訓練數據集與測試數據集,以及漢語拼寫檢查的評價標準。同時對所使用模型的超參數進行介紹。

3.1 數據集與基線

采用CLP-2014 數 據集[19],SIGHAN-2013 數 據集[20]和SIGHAN-2015 訓練數據集[21]作為本文的訓練數據。訓練數據中一共有8 538 個句子,其中有897 個句子沒有錯誤,7 641 個句子有一處或多處錯誤。

采用SIGHAN-2015CSC 測試數據集作為測試數據。測試數據中一共有1 100 個句子,其中有550個句子沒有錯誤,550 個句子有一處或多處錯誤。CLP 和SIGHAN 等數據集是漢語拼寫檢查任務常用的數據集,在許多研究中都得到了使用[7-10,12-14,22]。

選取Han 等[23]的模型作為本文的基線模型(baseline model)。Han 等人基于雙向LSTM 構造拼寫檢查模型,同時將漢字的視覺特征和語音特征與模型相結合。他們的模型是漢字拼寫檢查任務中具有代表性的結構,并在SIGHAN-2015 測試集上取得了較好的效果。我們采用文獻[23]所給的參數重建了他們的模型,并采用了本文所用的訓練集數據,獲得了在個別指標上超過原文實驗數據的結果。

為了證明提出模型結構的有效性,本文選用BERT 做為消融實驗的模型。BERT 作為近些年最火熱的預訓練模型,在許多自然語言處理任務中都取得了突出的結果。其使用的MLM 語言模型非常適用于漢字拼寫檢查任務。我們同樣在BERT 中加入了漢字的視覺特征和語音特征。

3.2 評價標準

本文將用于判斷拼寫檢查正確性的標準分為兩個部分:一個檢測正確度;另一個糾正正確度。對于檢測正確度,給定句子中所有錯誤字符的位置都應與標準完全相同;對于糾正正確度,錯誤字符更改后的結果應與正確句子中的字符完全相同。兩個正確度都將從假陽性率(false positive rate,FPR)、準確率(accurate rate)、精確率(precision rate)、召回率(recall rate)和F1 分數(F1-score)的角度進行評判。5 種標準計算方式如下:

其中,TP、FP、FN、TN 分別表示真正例、假正例、假負例和真負例。本文從句子級維度進行正負例的定義,即正例表示不含錯誤漢字的句子,負例表示包含錯誤漢字的句子。假陽性率表示所有判定為負例樣本中假正例的比例;準確率表示所有判定正確的樣本占總樣本的比例;精確率表示真正例的樣本占判定為正例的樣本的比例;召回率表示真正例占實際正例樣本的比例;F1 分數則同時兼顧了精確率和召回率。這些評價指標將從不同的角度對模型的檢測和糾正性能進行評估,從而得到一個全面的評價結果。

3.3 模型超參數設置

在檢測模型中,輸入嵌入的維度為512 維,并使用隱藏層為256 維的兩層雙向LSTM 模型;在糾正模型中,使用隱藏層維度為512,層數為12 的BERT 模型。另外,用作消融實驗的BERT 模型使用了同樣的超參數。本文使用Adam 算法[24]作為優化算法來訓練模型,學習率為0.000 1,批次大小設置為32。

4 實驗結果分析

實驗結果如表1 和表2 所示。其中表1 表示檢測正確度的結果,表2 表示糾正正確度的結果。表中基線模型(baseline model)表示Han 等人提出的模型;model 表示不添加額外特征的本文提出的拼寫檢查模型;model+strokes 表示模型只添加視覺特征;model+voice 表示模型只添加語音特征;model+strokes+voice 表示模型同時添加視覺特征和語音特征。實驗結果表明:在模型不額外添加特征及只添加視覺特征的情況下,本文提出的模型在測試集上的表現相比基線并無明顯優勢;在模型只添加語音特征的情況下,檢測正確度與糾正正確度上的表現均優于基線;在模型同時添加了語音和形狀特征的情況下,檢測與糾正正確度上的各項評價均優于基線;且相比模型只添加語音特征的情況,同時添加語音和視覺特征可以小幅提高模型在測試集上檢測與糾正正確度的表現。在本實驗中,視覺特征對模型檢測和糾正能力的提升效果有限,我們認為這與視覺特征的表示方式有關,將筆畫順序作為嵌入的方式并不能很好地反映漢字的視覺特征。另外,本文在訓練過程中采用較小規模的訓練集,相比基線模型獲得了一定程度的性能提升。在提升訓練集規模的前提下,本文提出的模型憑借結構優勢及大參數量能夠展現出更大的潛力和更好的效果。

表1 檢測正確度的實驗結果Tab.1 Experimental results for detecting correctness

表2 糾正正確度的實驗結果Tab.2 Experimental results for correcting correctness

實驗還通過與BERT 模型的對比展現本文方法的有效性。與同樣添加了語音特征和視覺特征的BERT 模型相比,本文的方法在檢測正確度和糾正正確度上的表現都更為出色,證明了本文模型在結構上的優越性。

表3 給出了一些實驗中模型預測的結果示例。這些具體的例子也說明了本文方法的有效性和實用性。

表3 模型預測結果示例Tab.3 Examples of model predictions

5 結論

本文提出了一種漢語拼寫檢查模型。文中提出的模型結合了漢字的視覺特征和語音特征,并利用BiLSTM+CRF 模型構成檢測網絡進行錯誤詞檢測,利用BERT 模型構成糾正網絡對檢測到的錯誤字進行修改。在SIGHAN-2015 CSC 測試集上,本文提出的方法相比現有的方法和BERT 模型在評價指標上得到了更好的結果。另外,相比視覺特征,語音特征對拼寫檢查效果的提升在本文實驗中更為有效。

對于未來的工作可在以下兩方面進行深入的研究:1)視覺特征的提升效果有限或許與視覺特征的表示方式有關,改進表示方式可以進一步提升拼寫檢查任務的效果。2)遷移學習在漢語拼寫檢查中使用。通過使用遷移學習可以提高原始語料庫和人工語料庫的接近度,從而提高模型的可用性。

猜你喜歡
拼寫錯誤語音錯誤
在錯誤中成長
魔力語音
基于MATLAB的語音信號處理
基于MQ3與MP3的價廉物美的酒駕語音提醒器
對方正在輸入……
農村小學三年級英語單詞拼寫錯誤現象原因探析和改進策略
初中生英語詞匯學習策略探究
從2017年6月四級翻譯閱卷看段落翻譯中的詞匯錯誤類型
由wrong錯拼成worry引發的行動研究
不犯同樣錯誤
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合