【英國大學生閒來無事神開發】裝上這個資料庫,揪出 NLP 模型語法錯誤 1 毫秒都不用!

【我們為什麼挑選這篇文章】語法糾錯(Grammatical Error Correction, GEC)是自然語言處理領域中一個關鍵項目,生成相關模型需要大量的語料來進行訓練,然而目前語法糾錯相關語料資源相當匱乏,只有幾十萬句的規模,因此當前如何解決資料匱乏是語法糾錯的一大研究重點。(責任編輯:賴佩萱)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處

作者:量子位

當 NLP 模型產生了語法錯誤,怎麼辦?

比如,He wants that you send him an email.

沒關係,現在可以像小時候的英語老師,改作文一樣簡單。

只要裝上一個專門糾正語法錯誤的庫就可以,還是毫秒鐘就可揪出來的那種。

這不,把「that」改成「to」不就可以了嗎~

糾正過來就是:He wants you to send him an email.

(不會真有人看不出其中的語法錯誤吧)

再比如這句。

I can due his homework.

應該變成:I can do his homework.

好像這些語法錯誤,都有點太過明顯了。

那就來複雜一點的。

Thanks for your’s and Lucy’s help.

系統就會改成:Thanks for yours and Lucy’s help.

放假閒來無事,AI 大學生開發了可糾正語法錯誤的資料庫

這就是最近一位 AI 專業本科生 Benjamin Minixhofer,利用假期時間開發出來的一款快速糾正語法錯誤的庫 NLPRule。

它是由 Rust 編寫的一個基於 LanguageTool 語法規則的逆向工程。

LanguageTool 是一款開放源代碼校對軟體,適用於英語,法語,德語,波蘭語,俄語以及 20 多種其他語言,它可以發現許多拼寫檢查器無法檢測到的錯誤。

一經發出,就在 Reddit 上獲得了 200+ 的熱度。

怎麼做到的?

NLPRule 是將語法規則與 ML 模型結合起來,主要應用於 NLP 的預處理和 NLG 的後處理。

在作者看來,使用基於語法規則的方法有兩大優勢。

一是速度。作者使用第 8 代英特爾,糾正一個句子只需要不到 1 毫秒的時間。

二是語法錯誤的訓練數據極度稀少,ML 模型無法處理。

比如,就像這句「It is enough for all intensive purposes.」

就包含了一個錯誤。除非特別說明,ML 模型基本上不能糾正這個錯誤,因為它幾乎不會出現在其訓練數據當中。

而若是放在其他語言數據中,肯定會比英語更少。

比如,中文。

作者創建這個庫的目的在於 創建一個快速、輕量級的引擎來運行自然語言規則,無需依賴 JVM(Java 虛擬運行環境)速度、內存的影響

目前,這個庫支持英語和德語。

具體安裝可分成如下四個步驟,詳細可戳文末連結。

在 GPT-2 進行文本測試會發生什麼事?

接著,作者就嘗試用 GPT-2 生成的文本來測試,結果產生了大量的改進建議。

比如語法錯誤。

Before: …t out, as a condition of its being operated. Each lock keeper should ensure >that all locks are operated and tha…

After: …t out, as a condition of its being operated. Each lockkeeper should ensure that all locks are operated and tha…

Message: This noun is normally spelled as one word .

Type: grammar

再比如拼寫錯誤。

Before: …he Z-machine version (in the standardised format) is comprised of 32 (in total) >bytes, one per line. …

After: …he Z-machine version (in the standardised format) comprises 32 (in total) bytes, one per line. …

Message: Did you mean comprises or consists of or is composed of?

Type: misspelling

一經發出,不少網友直呼:Fantastic!

也有網友想到,如果跟 BERT 或者其他 Transformer 模型結合起來,會不會生成更好的句子呢?

想要了解更多細節,吶~傳送門送上!

參考連結

reddit》、《GitHub

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈NLP 模型也有“老師”了!裝上這個開源庫,1 毫秒糾正語法錯誤 〉;首圖來源:unsplash。)

你可能會有興趣


點關鍵字看更多相關文章: