Harper 文法檢查實測:本機毫秒級抓錯字,兩種錯它不吭聲

Harper 是 Automattic 收編的開源離線英文文法檢查器,引擎跑在本機、文字不出門。本機實測短文 1.7 毫秒完成檢查,官網編輯器打字全程零外傳請求;十二個埋好的錯抓到十個,但主謂一致隔了片語、可數名詞單複數這兩類它靜默放過。只支援英文,中英混合文件只檢查英文片段,方言選錯會把正確拼字誤標成錯。

用 AI 摘要這篇文章:

寫英文信、英文報告的時候,把整段文字交給雲端校對工具檢查,是很多人不做第二想的事。代價也明白:字句要先送出門,才有辦法被檢查。Harper 走的是另一條路。它是一套免費開源的英文文法檢查器,整個檢查引擎用 Rust 寫成、編譯成 WebAssembly,跑在你自己的機器上,文字從頭到尾不出門。網頁版、瀏覽器擴充、命令列接的都是同一顆引擎,用的是同一套判斷邏輯。專案在 2024 年 11 月被 WordPress 背後的 Automattic 收下,創辦人 Elijah Potter 加入團隊繼續開發,以小說《梅岡城故事》作者 Harper Lee 的名字為它命名,授權採 Apache-2.0,截至 2026 年 9 月已累積約一萬五千顆星。

我這次把它的引擎裝到本機實際跑了一輪:一段埋了十二個錯的英文短文,它標出十個,平均花 1.7 毫秒;剩下兩個錯,它一個字都沒提。這篇文章要談的就是這個結果的兩面。速度與隱私的承諾經得起檢驗,而它真正的邊界藏在規則覆蓋裡,先講實測,再講你裝了之後會遇到什麼。

十二個埋好的錯,它安靜標出十個

我把 Harper 發佈在 npm 上的套件 harper.js 裝起來跑,這顆就是官網網頁版同一款 WebAssembly 引擎。測試的文章是我自己編的五句英文,裡面埋了台灣使用者常見的錯:拼字、時態、同音詞誤用、縮寫所有格、大小寫、比較級重疊、連接詞誤用、絕對詞修飾,再加上主謂一致與名詞單複數,加起來十二個。

結果它抓到十個,而且抓得有憑有據。recieve 和 dont 被歸為拼字問題,附上修正建議;whether 被指出該用講天氣的 weather;then 被提醒比較句該用 than;more better 標成冗贅;very unique 被說 unique 是絕對詞,建議單獨用或換更準的形容詞;Their going 被問是不是 they’re;句中的 i 被要求大寫;to tired 指出該用 too;I have went 指出完成式該接 gone。每一則都有分類(Spelling、Word Choice、Redundancy、Capitalization 等)與一句解釋,介面照分類列點,讀起來像一位話不多的編輯在頁邊畫線。

Harper 官網編輯器示範畫面,英文句子中的錯字以多色底線標記,右側問題面板照拼字與文法等分類列點Pin
官網編輯器對示範短文畫底線,右側面板把問題照分類列點(圖:writewithharper.com)

真正的重點是那兩個靜默的錯。Each of them were long,它沒反應;He recieve three email this morning,它只抓前面的拼字錯 recieve,email 該用複數這件事它略過。我於是補了幾句再測:He don’t know、She have a car、I has finished 這類簡單的主謂不一致,它全都抓,分類就叫 Agreement,說明文字也講得出道理。但只要主語和動詞之間隔了一個片語,像 the list of items are,或換成 There is many reasons 這種存在句,它就安靜了。可數名詞的單複數則完全沒有規則。這是規則式引擎的典型長相:規則一條條寫死,抓到的都講得出原因,但覆蓋是清單式的,清單外的結構它不猜。

對使用者的意義很直接。它當免費的第一道校對稱職,拼字、用詞、標點這類明確的錯反應快又少誤報;但你不能把最後一讀也交給它。主謂一致牽涉到片語結構的判斷、名詞單複數這種英文老毛病,它目前幫不上忙,寄出去前自己再讀一遍仍是必要的。好消息是規則是攤開的:引擎內建八百多條規則,每一條都可以在設定裡單獨關掉,被某條規則煩到的人有得選,這點比黑箱模型透明。對自動化場景也有意義,檢查結果是確定性的,同一段文字每次跑出同樣的結果,不會因為模型今天的狀態不同而改變建議。

速度的實測口徑:短文 1.7 毫秒,五千字也不到 30 毫秒

官方對速度的說法是十毫秒內給出建議。實測數字比這個更好看,也要看口徑。二百多字元的短文,重複測十次平均 1.7 毫秒;把同一段文字重複二十來倍擴成約五千七百字元的文件,平均落在 29 毫秒上下。開啟引擎的第一次要花約半秒載入 WebAssembly,之後就常駐。也就是說,十毫秒級的承諾在句子與段落的口徑下成立,整份長文件則隨篇幅線性增加,但即使在接近六千字的文件上也停在一眨眼的範圍。這個速度真正的用途是讓檢查跟得上打字:你敲完一個字,畫面上的底線就同步更新,不用等伺服器回應。

官方在倉庫裡自己列了一張對照表:Harper 10 毫秒、LanguageTool 650 毫秒、Grammarly 4000 毫秒。這張表是作者自報的數字,不是獨立測試,看看就好;但量級差異符合架構的預期,檢查發生在本機,沒有網路往返,速度上限取決於你的機器而不是對方伺服器當天的負載。Automattic 收購當時的公告也用了同一類說法,二十毫秒內給建議、不到某款線上工具的百分之一,同樣屬於賣方口徑。另外一個常被引用的數字是記憶體用量不到 LanguageTool 的五十分之一,這我沒有量,持平地說就是官方宣稱。

順帶一提版本:倉庫的最新版是 2026 年 9 月 1 日發佈的 2.9.1,npm 上的 harper.js 我裝到的是 2.7.0,兩條發佈線有時間差,本文的實測數字都出自 2.7.0。

隱私不是承諾,是結構:網頁版打字全程零請求

雲端校對工具的原理,本質上就是把你的文字送到伺服器處理,隱私靠的是對方的政策與自律。合約、報價、履歷這類不適合出門的內容,政策再完善也得先過送出門這一關。Harper 的隱私主張是結構性的:引擎在瀏覽器裡跑完所有檢查,官方明說沒有雲端往返、沒有遙測、迴圈裡沒有語言模型;文字不出門,自然也輪不到被拿去訓練。

這種主張可以觀察驗證。我在它的官網編輯器裡輸入整段文字,同時盯著瀏覽器的網路請求紀錄:頁面載入階段的請求跑完之後,打字全程沒有再發出任何一個會把文字送出去的請求。字沒有出門,這件事在網頁版是看得到的。原始碼以 Apache-2.0 整套公開,想深究的人可以自己讀。

對照著看更清楚。Grammarly 與 LanguageTool 的雲端服務都要把文字送出去才開始工作;LanguageTool 雖然也能自架,但 Harper 的開發者把它當反面教材:要應付龐大的語言模型與資料集,自架門檻不低。Harper 的取捨是只做英文、用輕量規則換取隱私與速度,這個取捨的邊界下一節會談。

中文文件能不能貼?方言要不要選?

Harper 只支援英文,官方文件寫得明白,核心雖然設計成可以擴充其他語言,目前就是英文一種。台灣使用者的實際情境多半是中英混合:整段中文裡夾幾句英文。我拿一段「這份 report 已經 submit 給主管」這類混合文字實測,它只對英文片段反應,把 double check 標成該連字、把 went 抓出來,中文部分完全略過。引擎另外提供一個 isolateEnglish 選項,開了之後抓取範圍的判定會改變,連英文句首大寫這種細節都多抓到一處。這裡有個混合文件才有的小現象:同一處的小寫 we,預設模式下沒有被提醒,開了 isolateEnglish 之後反而被要求大寫,因為中文被剝離之後,它成了英文段落的第一個字。兩種模式對句子從哪裡開始的認定不同,混合文件檢查出現差異時可以先想到這裡。實務上的建議很簡單,要認真檢查的英文段落就單獨貼,混合文件只想順手掃過英文錯字時再整段丟。把中文文件裡的英文句子直接貼進去檢查是可行的,但別期待它對中文有任何意見。

方言要選對。它內建美式、英式、澳式、加拿大式、印度式五種英文,預設是美式。我用 colour、analyse、centre、realised 四個字實測:美式模式下四個全標錯,加拿大式標出兩個,英式、澳式、印度式全部放行。這對台灣使用者是有感的設定。多數人學的是美式英文,但如果客戶在倫敦,郵件裡的 colour 與 analyse 就是正確拼字,套美式規則會被一路畫線誤導;反過來寫給美國客戶時選美式,這些英式拼字才會被提醒。方言在引擎裡是參數等級的設定。

從瀏覽器到全系統:五萬人裝的擴充,與編輯器裡的語言伺服器

Harper 的安裝形式比想像中廣。最輕的是官網的網頁編輯器,打開貼字就用,什麼都不用裝。網頁版本身就做得像個完整產品:內建一段官方的示範短文,錯字畫上各種顏色的底線,右側的問題面板把二十來個錯照拼字、錯字、文法、用詞、風格、大小寫、冗贅、重複分好類,點開每一則都有一句解釋。第一次接觸的人光玩這段示範文,就能對它的判斷風格有底,比說明文件快得多。想讓它在所有網頁的文字框裡工作的,Chrome 線上應用程式商店的擴充功能截至 2026 年 9 月累積約五萬名使用者、平均評分 4.2,Firefox 的附加元件也有四千多名使用者、評分相近。寫程式的人這邊熱鬧:Visual Studio Code 有官方擴充,Neovim、Helix、Emacs、Zed 走語言伺服器協定接同一顆引擎,Obsidian 的官方外掛在另一個倉庫維護,功能是把筆記裡的問題標出來。從每個版本的下載統計看,被抓最多的正是語言伺服器的安裝檔,這個專案的使用者重心明顯偏向開發者與重度文字工作者。最重的是桌面版,macOS 與 Windows 都有安裝檔,官方定位是全系統層級,任何應用程式的文字框都能檢查;Automattic 自己的生態也有對應,官方文件列了 WordPress 區塊編輯器的整合。開發者還可以直接用 npm 的 harper.js 或命令列版本,把文法檢查嵌進自己的流程。這些形式背後用同一套規則集,規則在引擎層管理。剛剛提到的 Obsidian 外掛,到 2026 年 9 月有一百五十多顆星、更新持續到八月,屬於整個生態裡較活躍的一環。

writewithharper.com 首頁,標題寫著尊重隱私的免費文法檢查器,下方為內建示範編輯器與問題面板Pin
官網首頁與內建的示範編輯器,不用安裝就能試(圖:writewithharper.com)

維護狀態是它敢用的另一半理由。六月以來已經發了五個版,大約兩到六週一個版本,倉庫提交持續到 2026 年 9 月初,背後又有 Automattic 這家商業公司養著創辦人,與一般個人嗜好專案的棄坑風險不同等級。對照我們介紹過的 英文日常 App 這類把英文練習包成服務的工具,Harper 是把英文校對做成一顆開放引擎,誰都可以接。

判斷:免費的第一道校對可以交給它,最後一讀留給自己

整理成決策。你在意隱私、不想把字句送上雲端,或者只是不想為了偶爾寫英文而訂閱付費服務,Harper 值得裝:免費、開源、夠快、檢查結果可解釋,規則不喜歡可以關。你的需求是全面的潤稿與改寫建議,它目前給不了:複雜結構的主謂一致、名詞單複數這些它靜默放過,需要 AI 協助重寫句子的場景,另外找 TinyWow 的 AI 寫作工具 這類服務比較對題。你的文件以中文為主,它只幫得上其中英文句子的部分。至於打字一直被選錯字干擾的人,問題多半出在輸入法而不是文法,先看 微軟注音亂選字的解法 再談加裝工具。

想試的人,第一步建議直接開官網的網頁編輯器,貼一段自己最近寫過的英文進去,看它標出什麼、安靜跳過什麼。那半分鐘會比任何介紹文章都準確地告訴你,它和你的寫作習慣合不合。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1165

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...