摘要
用戶通過鍵盤或者語音輸入文字的時候,會遇到大量的錯誤,這些錯誤給用 戶的使用帶來了不便。而隨著智慧型手機的普及,用戶越來越多的使用觸屏來進行 文字的輸入,這使得問題進一步嚴重。深度學習近來在自然語言處理領域獲得了 廣泛運用,seq2seq 模型在諸多自然語言處理任務,如詞性標註、語義依存分析、 機器翻譯等,均取得了顯著的成績。本文首先對中文糾錯任務進行詳細的梳理, 包括錯誤的來源、目前的處理方法、相關的公開競賽、數據源等;第二,由於缺 少大規模公開的數據集,本文涉及顯示人工構造大規模糾錯數據集的算法;第三, 本文將深度學子中的 seq2seq 模型引入,處理中文糾錯任務,在基本的模型基礎 上引入 attention 機制(包括諸多變種)以及多任務學習的理念,嘗試多種組合, 並最終在構造數據集上 GLEU 評分達到了 0.75。
關鍵詞
語義識別;大數據;深度學習;中文糾錯;sequence to sequence learning;多任務學習
一、問題定義
用戶輸入一個中文句子,模型自動發現並改正句子中存在的問題。如「實現 供應與發展」句子中的「供應」改為「共贏」。
二、項目背景
根據目標用戶、錯誤來源的不同,糾錯系統可以分為多種類型,下面進行詳 細的闡述。
1. 目標用戶
糾錯有兩個主要的目標用戶群體:非母語學習者以及母語使用者。 所謂非母語學習者,指的是……。針對非母語學習者,有兩個代表性的公開比賽,分別是 CoNLL 以及 SIGHAN Bake-off。CoNLL 比賽任務在 2013[1]以及 2014[2] 年的時候針對英文的語法糾錯任務展開。CoNLL 2013 限定了錯誤的類型,包括 冠詞、介詞、名詞單複數、動詞形式以及主謂一致等;CoNLL 2014 則直接處理所 有的錯誤。SIGHAN Bake-off 2014[3]、2015[4]均針對母語非漢語的學習者,但是 一個問題在於並沒有涉及到語序問題,只考慮了拼寫錯誤。
針對母語使用者,英文的比賽有一些,而中文則較少,SIGHAN 2013[5]比賽是 其中一個。該比賽使用的數據來源於臺灣中學生的作文文本,過濾其他類型的錯 誤而只保留拼寫錯誤,拼寫錯誤具體而言有兩種:讀音相似導致的錯誤以及字型 相似導致的錯誤。本文認為,這樣的過濾處理是合理的。根據調研報告[6],中文 母語使用者寫作所犯錯誤中,76%的錯誤由讀音相似而引起的,46%的錯誤由於字 型相似引起的(兩種錯誤有重疊)。在用戶手寫的文章中,也發現了類似的現象。
2. 錯誤來源
根據錯誤的來源,可以將糾錯劃分為兩大類:輸入法端的糾錯以及文本端的糾錯。當然這兩類並沒有非常嚴格的界限。 輸入方法主要包含手寫輸入、拼音輸入、字型輸入以及語音輸入。由於手寫輸入同本項目關聯不大,故而並未專門針對此進行調研;拼音輸入法端的糾錯做了 很多,比較代表性的有 CHIME[9],該方法可以自動發現並改正用戶輸入的「錯誤 拼音」,使用的主要方法是信道模型以及基於 trie 樹的相似拼音匹配;字型輸入 法端的糾錯同拼音比較類似,因為字型輸入也是有一套編碼的,如倉頡編碼、五 筆編碼,拼音本身也是可以理解為一種編碼的;基於語音的糾錯,目前並沒有成熟的方法,而語音輸入具備的很多優點使得其有更大的可能性成為未來的主流輸入法,但是如何系統性的處理語音輸入糾錯則需要進一步開展研究。 輸入法端糾錯難以使用完整的上下文信息,因為用戶可能同時在幾個任務上進行輸入,如聊天的同時寫文檔。文本糾錯則可以獲得更全的上下文信息,故而 語言模型、統計機器翻譯模型等等均可以獲得更好的使用。
根據 SIGHAN Bake-off 2013 比賽的報告,參賽者使用了包括語言模型、分類模型(邏輯回歸以及 SVM)、統計機器翻譯模型、基於拼音字型的糾錯模型、規則等。
3. 可用資源
除了各個比賽提供的少量數據以及個參賽者根據自己模型選擇使用的數據外,
如下數據也可以應用於文本糾錯。非常遺憾的是這些數據都是非中文的。
a) Cambridge Learner Corpus (CLC)[10]。該數據集包含了將近 200 萬句對,是 非英語母語使用者參加英語考試的資料。數據的價值極高,然而該數據並不 對外開放。
b) FCE 。該數據集主要屬於 CLC 的一部分,包含了 30,995 句對語言學家人工標 注的 80 類錯誤,該數據可公開下載,但是數據規模較小。
c) Lang-8 Learner Corpora[11]。該數據包含了 59,455 個用戶撰寫的 334,379 個 多語言頁面,並經過校對,該數據可經過申請後獲取。
三、項目思考
相對於英文糾錯任務,中文糾錯有自己的特性。比如中文不存在「錯字」,無 論是拼音輸入、字型輸入、語音輸入、手寫輸入均返回正確的字。
根據調研結果,中文的母語使用者的錯誤集中在由於拼音導致的拼寫錯誤以 及由於字型導致的拼寫錯誤,而語序等其他錯誤類型則很少出現。研表究明,漢 字序順並不定一影響閱讀。比如,讀者在閱讀前一句話的時候並不一定可以注意 到其中存在的語序問題。故本項目應最先處理拼寫錯誤。
根據艾媒諮詢發布《2015-2016 年中國手機輸入法年度研究報告》,72.5%的 手機用戶使用拼音輸入法,僅有 8.3%的手機用戶使用字型輸入法。
綜上,本項目優先處理由於拼音導致的拼寫錯誤。
相比較於輸入法端的糾錯,基於文本的糾錯可以更為方便的獲取上下文信息,這為文本糾錯提供了更大的空間;此外,文本是用戶通過輸入法輸入的,故而文本端的糾錯不應同輸入法端的糾錯重疊太多,畢竟許多錯誤已經在輸入法端經過處理了。故而文本端的糾錯應更多的基於上下文信息,而不是簡單的字音字形。 在如何利用上下文信息上,SIGHAN Bake-off 2013 參賽隊伍提供了很好的範例,我們發現,基於統計機器翻譯模型的方法取得了不錯的效果,一些隊伍的具 體做法是先通過語言模型等判斷出出錯詞語的位置,再利用統計機器翻譯模型來 做詞語的「翻譯」,這樣做並沒有充分使用句子的語意信息。獲取上下文語意信 息的一種比較好的方式是通過 RNN 來學習,故而本項目選用 seq2seq 框架(兩組 RNN 分別構成 encoder 和 decoder,作為 encoder 的 RNN 學習句子語意表示)來 進行處理。此外,項目缺少可靠的數據來源,中文領域可利用的糾錯數據有限,如何有 效的構造大量訓練數據也成了本項目的一個關注點。
四、項目實驗
本節主要從三個部分來進行闡述,實驗數據準備、實驗模型以及實驗結果與 分析。
1. 實驗數據準備
實驗缺少大量的中文糾錯數據,故而只能通過構造的方式來獲取。 基於之前的分析,在構造數據的時候只引入因拼音相似導致的拼寫錯誤。而考慮到輸入法端(如 CHIME)已經處理了比較明顯的拼音錯誤,故而在數據構造 的時候主要考慮同音替換和模糊音替換兩種類型的錯誤。此外,考慮到拼音輸入 往往按照詞語來輸入的特點,所有的替換均基於詞語來進行。具體的構造步驟如下:
1) 基於哈工大社會計算與信息檢索研究中心研發的語言技術平臺(LTP)對 規範文本,如新華社新聞語料進行分詞,此外將語料中的數字串統一替 換為「<DIGIT>」且將不常見詞語替換為「_UNK」;
2) 基於逗號和句號將句子切割為更短的句子,切割後詞語個數超過 30 的句 子將會被丟棄;這樣做是因為真實環境中子句長度很少會超過 30 個詞 語,且句子長度過長對於 RNN 的性能會產生影響。
3) 對句子中每個詞語隨機執行同音替換和模糊音替換,確保每個詞語可能 被替換的概率相同,且每個句子最多有 4 處被替換;
如此獲得 20,000,000 句對的訓練語料,5,000,000 句對的開發語料以及 6,000句對的測試語料。
2. 實驗模型
RNN 由一系列相同的網絡構成(圖 1 中的長方形表示一個網絡),上一個詞語的向量表示作為計算下一個網絡的輸入,如此循環。整個句子每個詞軍計算完成, 便得到了一個句子的語意向量。
Seq2seq 模型使用 RNN(此時被稱為 encoder)將輸入句子表示為一個向量, 再使用另一個 RNN(此時被稱為 decoder)解碼這個向量獲取輸出。如在英漢機 器翻譯任務中,先使用 encoder RNN 處理英文句子獲取語意向量,將該向量作為 decoder RNN 的初始輸入,按順序解碼每個英文單詞獲取中文。
為了充分獲取上下文的語意信息,初始模型在基本 seq2seq 模型的基礎上增 加了 bi-direction 以及 attention 機制。初始模型見圖 2。
在初始模型的基礎上,考慮到糾錯任務中前後兩個詞語的 attention 值之間存 在比較強的關聯。如 decoder 中第一個詞語 attend 到 encoder 中第一個詞語,則 decoder 中第二個詞語「應該」attend 到 encoder 中的第二個詞語。基於此,借鑑 Jan Chorowski[7]的工作,引入 localized attention 的做法,詳細見圖 3。
分析具體的數據,我們發現在許多情況下原先正確的詞語經過 decoder 的操 作生成錯誤的詞語,於是我們考慮引入一個新的任務來幫助判斷某個詞語是否需 要進行 decode,即 multitask。在具體的做法上有兩種,分別為 multitask1 和 multitask2,模型見圖一。Multitask1 中新增的任務與原先的模型公用一個 encoder, 在 decoder 端並無直接關聯;在 multitask2 中,新任務的 decoder 結果作為初始 任務 decoder 輸入的一部分。
3. 實驗結果與分析
為了合理的評價模型的性能,需要有一套評價標準。除了基本的 F1 值之外,我們還計算了 F0.5 值,此外,結合基於翻譯模型的糾錯任務,進過調研,採用 GLUE[8] score 來作為模型的性能指標。GLUE 標準在 BLUE 標準的基礎上增加對糾 錯任務的針對性處理,實驗結果表明 GLUE 標準最接近人的判斷。
共進行六組實驗,實驗基於 google 公司發布的 TensorFlow[12]開發,實驗結果 見表 1:
實驗結果表明,localized attention 以及 multitask 機制均有助於系統性能的提升,而二者結合起來可以進一步提升系統的性能。目前去的最優性能的模型是在初始模型的基礎上增加 localized attention 機制以及 multitask2 機制。 下面是一些典型的輸出結果,每組數據第一句為正確的句子,第二句為輸入的句子,第三句為模型輸出的句子。
1) 兩 國 不僅 邊界 線 長 。
兩 國 不進 辯結 線 長 。
兩 國 不僅 邊界 線 長 。
2) 由於 塔利班 揚言 要 破壞 此 次 選舉 。
遊寓 塔利班 狼煙 要 破壞 此 次 選舉 。
由於 塔利班 _UNK 要 破壞 此 次 選舉 。
3) 由於 中國 上海 和 香港 等 亞洲 地區 其他 主要 股市 走低 。 遊寓 忠國 上海 和 香港 等 亞洲 地區 其他 主窯 故史 走低 。 由於 中國 上海 和 香港 等 亞洲 地區 其他 主要 股市 走低 。
4) 在 與 韓國隊 的 金牌 爭奪戰 中 。 在 與 韓國隊 的 金牌 爭奪戰 中 。 在 與 韓國隊 的 金牌 金牌 中 。
注意到在第四組的數據中,模型將「金牌 爭奪戰」輸出成了「金牌 金牌」, 這是由於 localized attention 機制導致的。
五、參考文獻
1. Kao, Ting-Hui, Yu-Wei Chang, Hsun-Wen Chiu, Tzu-Hsi Yen, Joanne Boisson, Jian-Cheng Wu, and Jason S. Chang. "CoNLL-2013 Shared Task: Grammatical Error Correction NTHU System Description." In CoNLL Shared Task, pp. 20-25. 2013.
2. Ng, Hwee Tou, Siew Mei Wu, Ted Briscoe, Christian Hadiwinoto, Raymond Hendy Susanto, and Christopher Bryant. "The CoNLL-2014 Shared Task on Grammatical Error Correction." In CoNLL Shared Task, pp. 1-14. 2014.
3. Yu, Liang-Chih, Lung-Hao Lee, Yuen-Hsien Tseng, and Hsin-Hsi Chen. "Overview of SIGHAN
2014 Bake-off for Chinese spelling check." In Proceedings of the 3rd CIPSSIGHAN Joint
Conference on Chinese Language Processing (CLP』14), pp. 126-132. 2014.
4. Tseng, Yuen-Hsien, Lung-Hao Lee, Li-Ping Chang, and Hsin-Hsi Chen. "Introduction to SIGHAN
2015 Bake-off for Chinese Spelling Check." ACL-IJCNLP 2015 (2015): 32.
5. Wu, Shih-Hung, Chao-Lin Liu, and Lung-Hao Lee. "Chinese spelling check evaluation at SIGHAN Bake-off 2013." In Proceedings of the 7th SIGHAN Workshop on Chinese Language Processing, pp. 35-42. 2013.
6. Liu, C-L., M-H. Lai, K-W. Tien, Y-H. Chuang, S-H. Wu, and C-Y. Lee. "Visually and phonologically
similar characters in incorrect Chinese words: Analyses, identification, and applications." ACM Transactions on Asian Language Information Processing (TALIP) 10, no. 2 (2011): 10.
7. Chorowski, Jan K., Dzmitry Bahdanau, Dmitriy Serdyuk, Kyunghyun Cho, and Yoshua Bengio.
"Attention-based models for speech recognition." In Advances in Neural Information
Processing Systems, pp. 577-585. 2015.
8. Mutton, Andrew, Mark Dras, Stephen Wan, and Robert Dale. "GLEU: Automatic evaluation of sentence-level fluency." In ACL, vol. 7, pp. 344-351. 2007.
9. Zheng, Yabin, Chen Li, and Maosong Sun. "Chime: An efficient error-tolerant chinese pinyin input method." In IJCAI, vol. 11, pp. 2551-2556. 2011.
10. Nicholls, Diane. "The Cambridge Learner Corpus: Error coding and analysis for lexicography and ELT." In Proceedings of the Corpus Linguistics 2003 conference, vol. 16, pp. 572-581. 2003.
11. Mizumoto, Tomoya, Mamoru Komachi, Masaaki Nagata, and Yuji Matsumoto. "Mining Revision
Log of Language Learning SNS for Automated Japanese Error Correction of Second Language
Learners." In IJCNLP, pp. 147-155. 2011.
12. Abadi, Mart?n, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S.
Corrado et al. "Tensorflow: Large-scale machine learning on heterogeneous distributed systems." arXiv preprint arXiv:1603.04467 (2016).
(責編:溫靜、趙光霞)