NLP模型也有“老師”了!裝上這個(gè)開源庫,1毫秒糾正語法錯(cuò)誤
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
當(dāng)NLP模型產(chǎn)生了語法錯(cuò)誤,怎么辦?
比如,He wants that you send him an email.
沒關(guān)系,現(xiàn)在可以像小時(shí)候的英語老師,改作文一樣簡單。
只要裝上一個(gè)專門糾正語法錯(cuò)誤的庫就可以,還是毫秒鐘就可揪出來的那種。
這不,把“that”改成“to”不就可以了嗎~
糾正過來就是:
He wants you to send him an email.
(不會真有人看不出其中的語法錯(cuò)誤吧)
再比如這句。
I can due his homework.
應(yīng)該變成:I can do his homework.

好像這些語法錯(cuò)誤,都有點(diǎn)太過明顯了。那就來復(fù)雜一點(diǎn)的。
Thanks for your’s and Lucy’s help.
系統(tǒng)就會改成:
Thanks for yours and Lucy’s help.

這就是最近一位AI專業(yè)本科生Benjamin Minixhofer,利用假期時(shí)間開發(fā)出來的一款快速糾正語法錯(cuò)誤的庫NLPRule。
它是由Rust編寫的一個(gè)基于LanguageTool語法規(guī)則的逆向工程。
LanguageTool是一款開放源代碼校對軟件,適用于英語,法語,德語,波蘭語,俄語以及20多種其他語言,它可以發(fā)現(xiàn)許多拼寫檢查器無法檢測到的錯(cuò)誤。
一經(jīng)發(fā)出,就在Reddit上獲得了200+的熱度。

如何實(shí)現(xiàn)?
NLPRule是將語法規(guī)則與ML模型結(jié)合起來,主要應(yīng)用于NLP的預(yù)處理和NLG的后處理。
在作者看來,使用基于語法規(guī)則的方法有兩大優(yōu)勢。
一是速度。作者使用第8代英特爾,糾正一個(gè)句子只需要不到1毫秒的時(shí)間。
二是語法錯(cuò)誤的訓(xùn)練數(shù)據(jù)極度稀少,ML模型無法處理。
比如,就像這句“It is enough for all intensive purposes. ”
就包含了一個(gè)錯(cuò)誤。除非特別說明,ML模型基本上不能糾正這個(gè)錯(cuò)誤,因?yàn)樗鼛缀醪粫霈F(xiàn)在其訓(xùn)練數(shù)據(jù)當(dāng)中。
而若是放在其他語言數(shù)據(jù)中,肯定會比英語更少。
比如,中文。
作者創(chuàng)建這個(gè)庫的目的在于創(chuàng)建一個(gè)快速、輕量級的引擎來運(yùn)行自然語言規(guī)則,無需依賴JVM(Java虛擬運(yùn)行環(huán)境)速度、內(nèi)存的影響。
目前,這個(gè)庫支持英語和德語。

具體安裝可分成如下四個(gè)步驟,詳細(xì)可戳文末鏈接。

在GPT-2進(jìn)行文本測試
接著,作者就嘗試用GPT-2生成的文本來測試,結(jié)果產(chǎn)生了大量的改進(jìn)建議。

比如語法錯(cuò)誤。
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

再比如拼寫錯(cuò)誤。
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

一經(jīng)發(fā)出,不少網(wǎng)友直呼:Fantastic!

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

想要了解更多細(xì)節(jié),吶~傳送門送上!



























