你在網上查找某資料,找來找去只找到一個 PDF 文檔可用,但是打開后發現這個 PDF 里都是掃描的圖片,其實你需要的是文檔中的文字,你還要引用相關內容到自己的文稿中,這時候可以使用一些將圖片中的文字識別出來并轉換為“真文字”的工具。
這樣的場景想必你不會陌生,這其實是一個典型的 OCR(光學字符識別)技術使用場景。
目前 OCR 識別的結果遠遠達不到完美,如何提高對文字的識別準確率一直以來都是一個難題,特別是在面對復雜程調遠高于英文的中文時,如果能在識別基礎上對文本進行進一步檢錯糾錯,那將更進一步方便我們的生活。
近期愛奇藝開源的 FASPell 項目或許能為此助力。在11月 3-7 日舉辦的計算語言學和自然語言處理領域頂級國際會議 EMNLP-IJCNLP上,愛奇藝發表了一篇關于中文檢查方案的論文:FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradigm。
論文提出了一種可以通用于人類書寫的文本或前邊提到的 OCR 識別結果的方案,具體可以應用在諸如即時通訊消息、文案編輯與視頻文本識別等多種需要進行文本糾錯的場景中。
同時愛奇藝開源了相關數據與代碼程序,根據介紹,這個稱為“FASPell”的項目是一個簡繁體中文拼寫檢查工具,它可以輕松完成對任何一種中文文本的拼寫檢查,包括簡體中文文本、繁體中文文本、人工輸入錯誤與OCR 結果等,同時它還擁有目前同類型工具最先進的性能(錯誤檢出率與糾錯率)。
愛奇藝介紹該方案已經達到 SOTA,即“State Of The Art”,這是一個用于描述機器學習中取得某個任務上當前最優效果的模型,例如在圖像分類任務上,當某個模型在常用的數據集(如 ImageNet)上取得當前最優的性能表現時,就說它達到了 SOTA。
FASPell 具體是怎樣達到 SOTA 的?我們就相關問題采訪了項目負責人洪煜中。
Q:FASPell 范式帶來的突破似乎有“計算更快、結構更簡單”等,具體介紹并分析一下它們,比如“更快地計算”,那么具體有多快呢;“結構更加簡單”,具體結構是怎樣的,相比其它系統的設計簡單在哪里?
洪煜中:FASPell 糾錯相較于之前的 SOTA 模型的速度在不同測試數據上證明快 1.5-3 倍,其中最快具體為 177 毫秒每 30 字符的句子。
例如,下表為 FASPell 和 Wang 等人 2018 年提出的模型在三個不同測試集上速度的詳細對比結果(單位:ms/句):
結構上,以往的 SOTA 模型擁有復雜檢測流程、多類特征提取、大量語言學規則與多重過濾邏輯,而 FASPell 僅包含一個去噪自動編碼器與解碼器,因此簡單了很多。
例如,以下為中科院 Zhang 等人 2015 年提出的模型結構,包含非常復雜的候選項生成流程、繁瑣的過濾步驟和對語言學規則的依賴:
Q:達到這樣優勢的原因是設計了去噪自動編碼(DAE)與解碼器,具體介紹一下這兩個技術,以及它們的實現原理。
洪煜中:去噪自動編碼器技術本身已有 10 年歷史,但是從未應用在中文拼寫檢查的技術當中,我們的 DAE+解碼器的范式,替代了中文拼寫檢查過去一直使用的困惑集+過濾的范式。
DAE 部分在 FASPell 中由近期火熱的 BERT 預訓練技術中使用的掩碼語言模型(MLM)來實現,它可以為每一個待檢測文本中的原始字符生成一組候選替換字符以及它們在語境上的合適度。解碼器是我們完全自主設計的高精確保召回的過濾裝置 CSD,它可以利用候選字符的語境合適度和原始字符的相似度來從候選字符中過濾出正確字符。
具體來講講 CSD 過程,在訓練階段,利用訓練集文本通過 MLM 輸出的矩陣,逐行繪制語境把握度-字符相似度散點圖,確定能將 FP(False Positive,假陽性:預測為正,實際為負)和 TP(True Positive,真陽性:預測為正,實際也為正)分開的最佳分界曲線。
推理階段,逐行根據分界線過濾掉 FP 得到 TP 結果,然后將每行的結果取并集得到最終替換結果。
以上圖為例,句子首先通過 fine-tune(微調)訓練好的 MLM 模型,得到的候選字符矩陣通過 CSD 進行解碼過濾,第一行候選項中只有“主”字沒有被 CSD 過濾掉,第二行只有“著”字未被過濾掉,其它行候選項均被分界線過濾清除,得到最終輸出結果,即“苦”字被替換為為“著”,“豐”被替換為“主”。
CSD 中使用的量化的字符相似度也是此次 FASPell 提出的,相比過去提出的字符相似度量化方法,FASPell 更加精準。我們在字形上采用 Unicode 標準的 IDS 表征,它可以準確描述漢字中的各個筆畫和它們的布局形式,這使得即使是相同筆畫和筆畫順序的的漢字之間也擁有不為 1 的相似度(例如“田”與“由”,“午”與“牛”)。相比之下,過去基于純筆畫或者五筆、倉頡編碼的計算方法則粗糙很多。
在字音上使用了所有的 CJK 語言(中日韓統一表意文字)中的漢字發音,盡管我們只是對中文文本檢錯糾錯,但是實驗證明考慮諸如粵語、日語音讀、韓語與越南語的漢字發音對提高拼寫檢查的性能是有幫助的,而過去的方法均只考慮了普通話拼音。
Q:可以簡單理解為新的范式要識別一個中文主要通過分析“字形”和“字音”兩方面的結合嗎?
洪煜中:以往的范式也會利用字音和字形的信息,但是是通過困惑集(字音字形相似的漢字聚類的集合)來實現的。新的范式可以讓 FASPell 在解碼器部分使用我們自主設計的字音字形相似度的量化方法。這種量化方法相較于過去的方法更加精細,在字形上充分考慮了漢字的筆畫和布局結構,在字音上考慮了漢字在 CJK 語言中的發音。這種量化方法可以單獨應用在其它的技術領域,因此我們在開源的代碼中,也單獨將漢字字符相似度計算的腳本提供了出來。
Q:怎么理解這種新范式與以往常用范式的具體區別?
洪煜中:以往的范式將利用困惑集給出待檢測文本的每個原始字符的候選替換字符,然后利用多種特征或者語言學規則從中過濾正確字符。
這種舊的范式使得模型只能在資源很匱乏的中文拼寫檢查數據上訓練,因此容易出現過擬合(模型對未知樣本的預測表現一般)的情況;另外,由于困惑集通常給一個字符提供 20-30 個候選字符,因此從中進行過濾使得模型速度緩慢,而且,相同漢字在任何位置的候選字符也都是固定不變的,而直覺上我們都知道在不同場境和語境下相同漢字會出現的錯別字是不一定相同的,因此模型缺少靈活性、通用性。
我們新的范式由于 DAE 可以在大量自然的文本上進行預訓練,中文拼寫檢查數據僅用于 fine-tune 訓練,因此有效避免了過擬合的問題。而且,由于候選字符是由 DAE 即時生成的針對語境、場景最佳的候選字符,我們將每個原始字符的候選字符控制在僅 4 個從而得以提高速度,同時靈活性、通用性也得到了保證。
Q:新方案達到 SOTA,具體測試情況如何呢?相比上一個 SOTA 方案的進步有多少?
洪煜中:具體在檢查的準確性上,字符級別的檢錯精確率為 76.2%,檢錯召回率 67.1%,糾錯精確率 73.5%,召回率 64.8%,也就是說使用 FASPell 方案,10 個錯誤檢測/糾正中大約 7 個是正確的,并且可以成功檢測/糾正 10 個錯誤中的 6 個。
相較于之前的 Wang 等人(2018)的 SOTA 方案,我們的精確率高約 10 個百分點;較于 Zhang 等人(2015)的方案,我們的召回率高約 6 個百分點;較于 Zhao 等人(2017)的方案,精確率高約 4 個百分點,召回率高約 13 個百分點。
下述表格描述了 FASPell在 SIGHAN15(中文文本標注規范)測試集上的性能。
句子級性能為:
字符級性能為:
Q:項目驅動因素是什么?是開發中的需要還是其它?介紹一下項目背景吧。
洪煜中:驅動因素來源于兩條路徑,一是實際業務中確實有相關的需求,希望能夠進一步提升 OCR 以及 ASR(語音識別)的效果,從而進一步優化相關業務的用戶體驗;另一方面源于,愛奇藝 AI 團隊對于困難技術執著的研發精神,當確定這個技術的價值后,會勇于試錯和創新,把技術做到更好。通過技術以及實際業務的雙驅動,會更好的推動創新算法的自主研發。此次算法的創新來源于團隊年輕而優秀的算法工程師,是一個充滿創新和活力的團隊。
Q:把論文的實現與相關數據開源,接下來具體有怎樣的研發與開源計劃?
洪煜中:我們希望能夠通過自己的力量推動整個相關算法領域的共同進步,希望能夠有更多人關注并推動相關技術的發展。后續也會針對更加有挑戰性的糾錯內容進行研發,例如信息丟失嚴重的文本的糾錯,希望通過這些困難技術的研發可以提升整體 AI 服務的效果。
項目地址:https://github.com/iqiyi/FASPell
論文地址:https://www.aclweb.org/anthology/D19-5522.pdf
采訪嘉賓介紹:
洪煜中,愛奇藝研發工程師,畢業于日本早稻田大學 NLP/MT 專業工學碩士,研究專攻領域為文本分類、文本糾錯與自然語言處理基礎算法等,為愛奇藝視頻質量分析相關任務提供算法支持。(編輯部的故事)
責任編輯:Rex_07