NLP模型也有“老師”了!裝上這個(gè)開(kāi)源庫(kù),1毫秒糾正語(yǔ)法錯(cuò)誤
像極了英語(yǔ)老師改作文的亞子
楊凈 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
當(dāng)NLP模型產(chǎn)生了語(yǔ)法錯(cuò)誤,怎么辦?
比如,He wants that you send him an email.
沒(méi)關(guān)系,現(xiàn)在可以像小時(shí)候的英語(yǔ)老師,改作文一樣簡(jiǎn)單。
只要裝上一個(gè)專門糾正語(yǔ)法錯(cuò)誤的庫(kù)就可以,還是毫秒鐘就可揪出來(lái)的那種。
這不,把“that”改成“to”不就可以了嗎~
糾正過(guò)來(lái)就是:
He wants you to send him an email.
(不會(huì)真有人看不出其中的語(yǔ)法錯(cuò)誤吧)
再比如這句。
I can due his homework.
應(yīng)該變成:I can do his homework.
好像這些語(yǔ)法錯(cuò)誤,都有點(diǎn)太過(guò)明顯了。那就來(lái)復(fù)雜一點(diǎn)的。
Thanks for your’s and Lucy’s help.
系統(tǒng)就會(huì)改成:
Thanks for yours and Lucy’s help.
這就是最近一位AI專業(yè)本科生Benjamin Minixhofer,利用假期時(shí)間開(kāi)發(fā)出來(lái)的一款快速糾正語(yǔ)法錯(cuò)誤的庫(kù)NLPRule。
它是由Rust編寫的一個(gè)基于LanguageTool語(yǔ)法規(guī)則的逆向工程。
LanguageTool是一款開(kāi)放源代碼校對(duì)軟件,適用于英語(yǔ),法語(yǔ),德語(yǔ),波蘭語(yǔ),俄語(yǔ)以及20多種其他語(yǔ)言,它可以發(fā)現(xiàn)許多拼寫檢查器無(wú)法檢測(cè)到的錯(cuò)誤。
一經(jīng)發(fā)出,就在Reddit上獲得了200+的熱度。
如何實(shí)現(xiàn)?
NLPRule是將語(yǔ)法規(guī)則與ML模型結(jié)合起來(lái),主要應(yīng)用于NLP的預(yù)處理和NLG的后處理。
在作者看來(lái),使用基于語(yǔ)法規(guī)則的方法有兩大優(yōu)勢(shì)。
一是速度。作者使用第8代英特爾,糾正一個(gè)句子只需要不到1毫秒的時(shí)間。
二是語(yǔ)法錯(cuò)誤的訓(xùn)練數(shù)據(jù)極度稀少,ML模型無(wú)法處理。
比如,就像這句“It is enough for all intensive purposes. ”
就包含了一個(gè)錯(cuò)誤。除非特別說(shuō)明,ML模型基本上不能糾正這個(gè)錯(cuò)誤,因?yàn)樗鼛缀醪粫?huì)出現(xiàn)在其訓(xùn)練數(shù)據(jù)當(dāng)中。
而若是放在其他語(yǔ)言數(shù)據(jù)中,肯定會(huì)比英語(yǔ)更少。
比如,中文。
作者創(chuàng)建這個(gè)庫(kù)的目的在于創(chuàng)建一個(gè)快速、輕量級(jí)的引擎來(lái)運(yùn)行自然語(yǔ)言規(guī)則,無(wú)需依賴JVM(Java虛擬運(yùn)行環(huán)境)速度、內(nèi)存的影響。
目前,這個(gè)庫(kù)支持英語(yǔ)和德語(yǔ)。
具體安裝可分成如下四個(gè)步驟,詳細(xì)可戳文末鏈接。
在GPT-2進(jìn)行文本測(cè)試
接著,作者就嘗試用GPT-2生成的文本來(lái)測(cè)試,結(jié)果產(chǎn)生了大量的改進(jìn)建議。
比如語(yǔ)法錯(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: …h(huán)e Z-machine version (in the standardised format)?is comprised of?32 (in total) >bytes, one per line. …
After: …h(huán)e 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é)合起來(lái),會(huì)不會(huì)生成更好的句子呢?
想要了解更多細(xì)節(jié),吶~傳送門送上!
參考鏈接:
https://www.reddit.com/r/MachineLearning/comments/kzuaie/p_i_made_nlprule_a_library_for_fast_grammatical/
GitHub網(wǎng)址:https://github.com/bminixhofer/nlprule
- 英偉達(dá)最新芯片B30A曝光2025-08-20
- AI應(yīng)用如何落地政企?首先不要卷通用大模型2025-08-12
- 本科必學(xué)Dijkstra算法被超越!清華段然團(tuán)隊(duì)打破圖靈獎(jiǎng)得主證明的普遍最優(yōu)性2025-08-09
- 智能體邁入L4 時(shí)代!納米AI多智能體蜂群,可創(chuàng)作最長(zhǎng)10分鐘AI視頻2025-08-06