LanguageTool

LanguageTool是一套自由及开放源代码的、風格及拼寫檢查软件，其所有功能都可供下載。
LanguageTool採取了，其網站跟其专有的姊妹計劃LanguageTool Plus相關連，而這個專有的姊妹計劃在英語及德語的錯誤偵測方面有所改進，以及在長篇文本的修改更容易。

LanguageTool由Daniel Naber在2003年創建，原來用於他的學位論文，以Python語言編寫。
，LanguageTool支援31種語言，均由志願工作者維護，通常都是那種語言的母語使用者。程式的偵錯模式採用模式匹配，利用自建的錯誤匹配規則來測試例文。
對於未支援的語言，網站亦提供有一個簡單的（聲稱三分鐘的）簡介，以協助使用者去開發其語言的工具。

核心應用程序本身是免費和開源，可以下載以供離線使用。有些語言的規則以「N元语法」數據來建立，這些數據很大，需要顯著的計算能力和輸入速度以逹到額外的偵錯能力。因此，LanguageTool 也作為在伺服器上處理「N元语法」數據的 Web 服務提供者。LanguageTool Plus 還使用「N元语法」作為其免費增值業務模型的一部分。

LanguageTool的web服務可以通過使用网页浏览器存取网络应用程序的接口，又或通過專用的客戶端插件在下列各軟體中調用：Microsoft Office、LibreOffice、Apache OpenOffice、Vim、Emacs、Firefox瀏覽器、Mozilla Thunderbird及Google Chrome。其網頁客戶端亦可集成到網站上。免費翻譯系統OmegaT中內置了一個基於 LanguageTool 的語法、拼寫和样式檢查插件。

技術 
LanguageTool的技術並不檢查句子在文法上是否正確，而只是檢查有沒有包含常見的錯誤。因此，事實上我們可以編造出一句文法上錯誤，但又被LanguageTool接納的句子。句式偵錯是透過比對一系列以XML編寫的規則，並配合以Java編寫的應用程式來執行。這些基於XML的規則可以透過一個網上表格來填寫。較近期的发展依赖于大型的n-gram库，在人工神经网络的帮助下为改善拼写错误提供建议。

離線使用 
當獨立版的LanguageTool在已安裝了Java、用作伺服器的電腦上解壓縮，可透過下列命令列來運行檢查程式的伺服軟件：

 java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8081 --allow-origin "*"

成功執行後，可在瀏覽器上執行下列命令來測試：

 http://localhost:8081/v2/check?language=en-US&text=my+text
 {"software":{"name":"LanguageTool","version":"4.6","buildDate":"2019-06-26 07:28","apiVersion":1,"premium":false,"premiumHint":"You might be missing errors only the Premium version can find. Contact us at support<at>languagetoolplus.com.","status":""},"warnings":{"incompleteResults":false},"language":{"name":"English (US)","code":"en-US","detectedLanguage":{"name":"English (US)","code":"en-US","confidence":0.6561856}},"matches":[{"message":"This sentence does not start with an uppercase letter","shortMessage":"","replacements":[{"value":"My"}],"offset":0,"length":2,"context":{"text":"my text","offset":0,"length":2},"sentence":"my text","type":{"typeName":"Other"},"rule":{"id":"UPPERCASE_SENTENCE_START","description":"Checks that a sentence starts with an uppercase letter","issueType":"typographical","category":{"id":"CASING","name":"Capitalization"}},"ignoreForIncompleteSentence":true,"contextForSureMatch":-1}]}
 http://localhost:8081/v2/check?language=zh&text=我的文字
 {"software":{"name":"LanguageTool","version":"4.6","buildDate":"2019-06-26 07:28","apiVersion":1,"premium":false,"premiumHint":"You might be missing errors only the Premium version can find. Contact us at support<at>languagetoolplus.com.","status":""},"warnings":{"incompleteResults":false},"language":{"name":"Chinese","code":"zh-CN","detectedLanguage":{"name":"Chinese","code":"zh-CN","confidence":0.51967704}},"matches":[]}

利用程式執行後丟出來的JSON資料，使用者可以設計出自訂的文法檢查插件。

參看 

 自然语言处理
 Grammarly
 
 自动校正

參考資料

外部連結
 

自由跨平台軟體
使用LGPL许可证的软件
非自由Firefox附加组件
用Java編程的自由軟體
文法檢查程式
自由拼寫檢查程式
Google Chrome扩展