中文文本智能糾錯知多少?
作者|徐婧揚,單位:中國移動智慧家庭運營中心
?Labs 導讀
中文文本糾錯是針對中文文本拼寫錯誤等進行檢測與糾正的一項工作,是自然語言處理的重要應用領域之一。中文文本糾錯的應用場景很多,諸如在搜索引擎,問答/對話系統,輸入法等領域作為一個前置模塊,或作為OCR和ASR檢測的后置模塊,亦或是公文寫作場景,輔助進行公文審閱校對,糾錯的質量對后續的處理非常重要。
Part 01 中文錯別字類型有哪
我們把常見的中文錯別字總結分為三類:
- 拼寫錯誤,由于輸入法,音轉軟件等原因導致的用字/詞錯誤,其主要表現為錯誤使用了同音字,形近字等,也是糾錯領域當前研究比較集中的方向;
- 語法錯誤,該類錯誤主要是由于疏忽或對語言運用不熟悉導致的,如字詞缺失、冗余、亂序等,其錯誤片段相對較大,目前也有一些針對簡單句法錯誤的研究;
- 語義錯誤,該類錯誤可能由于對某些知識不了解或組織語言能力欠缺等導致,要解決該類問題,通常需要引入外部知識、常識等,當前涉及這部分的研究也比較少。
表1
整體處理難度上:拼寫錯誤 < 語法錯誤 < 語義錯誤。
Part 02 智能文本糾錯的框架
文本糾錯常見思路分為兩種:一種是多模型pipeline方法,一種是端到端的方法。
2.1 多模型pipeline方法
把糾錯任務分解為錯誤檢測→候選召回→打分排序三個關鍵步驟,如圖1,每個模型解決具體的特定問題,然后通過Pipeline的方式串聯,得到最后結果。這種方法的優點是方便針對各個步驟進行重點突破和優化,但也存在明顯的缺點是錯誤會逐級傳遞,比如,在檢測模塊識別了非錯別字的位置,那么糾錯模塊針對該位置的糾正也一定是不正確的。
圖1
檢錯模塊
檢錯模塊的主要目標是錯誤識別,識別并定位出文本中的錯誤字/詞位置,若存在則將錯誤向后傳遞。
候選召回
候選召回階段針對檢錯模塊識別到的錯誤點,結合歷史錯誤信息,以及近音、近形等特征形成糾錯候選集合。
糾錯模塊
糾錯模塊主要解決候選集合的排序問題,由于糾錯的正確結果具有唯一性,該模塊的任務是將正確的結果排在第一位。
2.2 端到端的方法
此方法是直接建模原始“錯誤句子”到修正后的“正確句子”的處理過程,一般這個過程類似于機器翻譯任務,如圖2,即將錯誤的句子翻譯成正確的句子,一般使用seq2seq類深度學習模型。該方法優點是避免人工提取特征,減少人工工作量,缺點是無法控制特定問題點優化對整個流程的影響。
圖2 h代表隱藏層,c代表編碼器和解碼器之間的狀態向量
Part 03 智能文本糾錯的一些方案
3.1 多模型pipeline方法
檢錯模塊
(1)基于規則:例如,抽取ngram級別的拼音,構建實體詞與拼音映射詞表,將抽取的拼音映射到實體詞,比較和原詞是否一致。
(2)基于語言模型:利用bert模型的MLM任務,將當前詞用mask符號代替,然后做預測,若真實字不在topk內即為錯。
候選召回
(1)基于規則:近音候選詞召回、字音編輯距離召回。
(2)基于語言模型:利用語言模型等計算錯誤詞可能的topk正確答案。
糾錯模塊
(1)粗排序:通過構造的特征來對候選詞進行粗打分。特征主要包括:語料頻率比值、編輯距離等。
(2)精排序:采用機器學習模型等對候選進行打分,同時在特征工程方面也進行了更精細化地處理。
3.2 端到端的方法
(1)FASPell,愛奇藝發布在EMNLP2019的基于詞的中文糾錯的方法。
(2)Soft-Masked BERT,字節發表在ACL 2020的中文糾錯方法。
(3)MLM-phonetics MLM-phonetics,在soft-masked BERT的基礎上做的優化。
(4)Dynamic Connected Networks,哈工大&訊飛發表在ACL2021的方法。
(5)Transformer-NMT,網易有道NLPCC2018冠軍方案。
(6)ErnieCSC,百度在ACL 2021上提出結合拼音特征的Softmask策略的糾錯方案。
(7)MacBert4csc,MacBERT模型改變網絡結構的中文文本糾錯模型。
圖3 文本糾錯檢錯階段的標注
Part 04 未來方向與挑戰
最后總結一下文本糾錯任務的一些挑戰和未來方向:
當前的兩大方案,pipeline的機制會導致錯誤逐級放大,同時串聯鏈越長則耗時越長。端到端方案當前缺少足夠的標注語料,另外不方便擴展與領域遷移。
文本糾錯后續可探索利用知識圖譜完善整個糾錯任務,或探索融入實體詞糾正到模型中,另外該領域還需積累大量的高質量標注樣本和混淆集資源。?