愛奇藝開源 SOTA 高性能中文拼寫檢查工具 FASPell

2020-12-14 IT之家

你在網上查找某資料,找來找去只找到一個 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 專業工學碩士,研究專攻領域為文本分類、文本糾錯與自然語言處理基礎算法等,為愛奇藝視頻質量分析相關任務提供算法支持。

相關焦點

  • 愛奇藝開源SOTA高性能中文拼寫檢查工具FASPell
    目前 OCR 識別的結果遠遠達不到完美,如何提高對文字的識別準確率一直以來都是一個難題,特別是在面對複雜程調遠高於英文的中文時,如果能在識別基礎上對文本進行進一步檢錯糾錯,那將更進一步方便我們的生活。近期愛奇藝開源的 FASPell 項目或許能為此助力。
  • 愛奇藝發布 FASPell: 產學界最強的簡繁中文拼寫檢查工具
    雷鋒網 AI 科技評論按:自1990年代初期開展了一些開拓性工作以來,關於檢測和糾正中文文本中的拼寫錯誤的研究已過很長時間。然而,儘管在大多數研究中拼寫錯誤已被簡化為替換錯誤以及最近多個公開任務的努力,中文拼寫檢查仍然是一項困難的任務。
  • Edge 83引入全新拼寫檢查功能Windows Spellcheck 替代現有Hunspell
    微軟今天詳細介紹了改進後的拼寫檢查功能,並已經在最新發布的Edge 83穩定版中發布。這項新功能稱之為Windows Spellcheck,替代了Edge瀏覽器中現有的Hunspell拼寫檢查體驗。下面是Hunspell Spellcheck和Windows Spellcheck的對比分析。該拼寫檢查功能在Edge新版中默認啟用,Windows的首選語言設置將在瀏覽器中自動繼承。您可以導航到 edge://settings/languages 頁面,以便配置所有在您輸入時將被拼寫檢查的語言。
  • Notes多種語言文字拼寫檢查
    雖然我知道,很少有人會使用到Notes中的拼寫檢查功能,但畢竟還有人用,非但如此,我們今天還打算玩一個更厲害點的,即多語言文字拼寫檢查切換。比如在中文Notes環境中,寫郵件時檢查中文錯別字和英文拼寫錯誤。有人說,默認沒這個功能嗎?
  • 工具丨三款世界語拼寫和語法檢查工具
    更讓人痛不欲生的是,在再三檢查無誤後,結果文章發出來了才被人指出,「童鞋,你忘記加賓格啦」、「童鞋,你的形容詞上怎麼沒加複數j」。其實,我們如果善用某些工具,完全可以避免這些錯誤。今天呢,小編就給大家來介紹下三款鮮為人知的世界語拼寫檢查工具。Esperantilo是一款比較古老的開源世界語軟體,大概我在最初接觸世界語的時候就已經存在了。
  • 微軟為所有Chromium瀏覽器帶來了新的Windows Spellcheck
    Microsoft 在Windows 8.1上引入了新的拼寫檢查器,並為所有Chromium瀏覽器提供了更新的拼寫檢查器,它改進了此功能並帶來了一些增強。這名Redmond巨人與Chromium項目中的Google工程師合作,將Windows Spellchecker API引入了這些瀏覽器。
  • 「spell trouble」可不是指「拼寫問題」!
    大家好,今天我們那分享一個非常有用且地道的表達——spell trouble, 這個短語的含義不是指「拼寫問題」,其正確的含義是:spell trouble 預示著麻煩 The latest opinion
  • word2007基礎入門知識第5課 拼寫與語法檢查
    Word2007的拼寫和語法檢查功能,不但能對英文單詞進行拼寫及語法檢查,而且還可以對中文進行拼寫及語法檢查。點擊「工具」菜單——選擇「拼寫和語法」功能拼寫和語法檢查功能大大減少了輸入文本的錯誤率我們在輸入文章的時候,有些英文單詞和中文單詞。文字下面會自動加上紅色的,或者是綠色的波浪線。紅色波浪線代表拼寫錯誤,綠色波浪線代表語法錯誤。當出現英文拼寫錯誤時。在有紅色波浪線的單詞上,單擊滑鼠的右鍵會彈出一個快捷菜單。在菜單的最上面,Word2007。
  • NOUNPLUS:一款英語語法拼寫檢測工具
    每寫一個句子,都想從文獻找個相似的句子套用,為了不犯低級的拼寫錯誤,強迫症似的想把每個單詞都在詞典中查一遍……唉,說多了都是淚! 不說了,今天給大家推薦一個免費的語法拼寫在線檢測工具: NOUNPLUS。網址是https://www.nounplus.net/,點擊連結打開後,它的頁面這樣子的:
  • 中文在線擬聯手愛奇藝成立中文奇蹟 發力IP影視化
    來源:中國證券報·中證網中證網訊 (記者 於蒙蒙)中文在線(300364)5月20日晚發布公告,公司擬聯合旗下原影視製作團隊與愛奇藝共同成立中文奇蹟影視公司,由原中文在線執行總裁戴和忠出任中文奇蹟CEO。
  • Word中自定義Spellchecker的三種方法
    辛辛苦苦寫好的essay如果因為一些無意的拼寫錯誤而影響了分數,真的是要捶胸頓足了。Microsoft Word中的拼寫檢查器(Spellchecker)是一個很實用的工具(雖然它並不能取代人工proofreading),你一定很熟悉那些在文檔裡出現的紅色小浪線吧。
  • 愛奇藝的 "資料庫" 選型到底有多牛?
    TiDB,愛奇藝的 TiDB 實踐會有另外的具體介紹;Couchbase,這個在愛奇藝用得比較多,但國內網際網路公司用得比較少,接下來的部分會詳細說明;其他,比如 MongoDB、圖資料庫、自研 KV 資料庫 HiKV 等;大數據分析相關系統,比如 Hive、Impala 等等。可以看到愛奇藝的資料庫種類還是很多的,這會造成業務開發的同學可能不太清楚在他的業務場景下應該選用哪種資料庫系統。
  • 推薦 | 中文文本標註工具Chinese-Annotator(內附多個開源文本標註工具)
    序列標註問題如中文分詞、命名實體識別,分類問題如關係識別、情感分析、意圖分析等,均需要標註數據進行模型訓練。深度學習大行其道的今天,基於深度學習的 NLP 模型更是數據饑渴。本文分享一個中文文本標註工具Chinese-Annotator。
  • 排名前十的開源安全項目 - OSCHINA - 中文開源技術交流社區
    搜尋安全相關的開源軟體最好的地方顯然是 GitHub。你可以使用該網站上的搜索功能來找到這些有用的工具,但是有一個地方可以讓你找到那些安全方面最流行的項目,那就是 GitHub 的展示區,可能知道它的人不多。
  • 資源 | Python中文分詞工具大合集
    首先介紹之前測試過的8款中文分詞工具,這幾款工具可以直接在AINLP公眾號後臺在線測試,嚴格的說,它們不完全是純粹的中文分詞工具,例如SnowNLP, Thulac, HanLP,LTP,CoreNLP都是很全面的(中文)自然語言處理工具。
  • 英國小學就開始訓練的內容——英語寫作拼寫檢查時的注意點
    當你辛辛苦苦寫了一篇文章,並且經歷各種審稿修改最終被接收了,你肯定希望將來有很多人讀你的文章引用你的文章,此時你最不希望看到的是自己見刊的論文檢查出來錯誤吧。我這裡分享兩點我自己在做檢查時的注意點。首先第一點,注意全篇拼寫一致。
  • [開源推薦]高性能Web框架Zend Framework
    Zend Framework (ZF)是用 PHP 5.3及更高版本來開發 Web 程序和服務的開源框架。ZF用100% 面向對象編碼實現。 ZF的組件結構獨一無二,每個組件幾乎不依靠其他組件。這樣的鬆耦合結構可以讓開發者獨立使用組件。 我們常稱此為 「use-at-will」設計。
  • GitHub 上的十一款熱門開源安全工具 - OSCHINA - 中文開源技術...
    作為廣為人知的Linus定律,當討論開源模式在安全方面的優勢時,開放代碼能夠提高項目漏洞檢測效率的理論也被IT專業人士們所普遍接受。惡意軟體分析、滲透測試、計算機取證——GitHub託管著一系列引人注目的安全工具、足以應對各類規模下計算環境的實際需求。
  • 愛奇藝開源 Qigsaw,基於 Android App Bundle 的動態化框架
    近日愛奇藝宣布開源基於Android App Bundle的動態化框架 Qigsaw。
  • 十大開源Web應用安全測試工具
    ·幫助提高產品的安全性和保質期·在開發初期識別並修復各種安全問題·評估當前狀態下的穩定性·避免性能不一致·避免失去客戶信任·避免以安全漏洞的形式丟失重要信息·防止身份不明的用戶盜竊信息·從意外故障中恢復·節省解決安全問題所需的額外費用目前市場上有很多免費、付費和開源工具可用來檢查