記 LanguageTool 使用 | Using Languagetool
英文單詞記憶不濟的我,苦於 Chrome 上的拼寫檢查不穩定。可能在多語言環境下, chrome 沒 匹配對文本語言。後來我在谷歌網上應用搜到 Grammar and Spell Checker - LanguageTool,接着發現其服務本基於一個開源項目LanguageTool:
LanguageTool is an Open Source proofreading software for English, French, German, Polish, Russian, and more than 20 other languages. It finds many errors that a simple spell checker cannot detect... LanguageTool comes with its own embedded HTTP/HTTPS server so you can send a text to LanguageTool via HTTP and get the detected errors back as JSON.
在個人服務器上運行 LanguageTool,能提供免費版里缺失的功能,還能保護隱私。 同時社區提供了 Chrome, LibreOffice, Google Docs 對應的插件,應該也能找到 VIM,TexMacs 的插件。基本覆蓋了我書寫場景。 我沒有安裝 LanguageTool 到本地,而放在 VPS 的上。只要維護一個服務端,就能同時在 Chromebook, Fedora, Windows 上用。按照官方 Wiki 描述安裝:
1. 下載服務端程序
1 | wget https://languagetool.org/download/LanguageTool-stable.zip |
2. 測試、運行服務端程序
1 | unzip LanguageTool*.zip |
在本地測試服務端是否響應: 1
curl --data "language=en-US&text=a simple test" http://your_server_ip:8081/v2/check
至此,已經實現 LanguageTool 基本功能。但用 Systemd 管理和添加 ngram 能讓它更省心、好用。
An n-gram is a contiguous sequence of n items from a text, like a girl (2-gram) or a tall girl (3-gram). Once you have a large amount of these n-grams with their number of occurrences, you can use this to detect errors in texts.
從官網下載 ngram-data,
解壓到某文件夾/.../ngrams
,再添加參數
--languageModel "/.../ngrams"
指定 ngrams
所在文件夾啓動即可。
3. 用 Systemd 管理、維護
總不能一開開着 ssh 窗口運行命令,最好就用 Systemd. 新建
/usr/lib/systemd/system/lt.service
.(Tested on Debian 10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[Unit]
Description=LanguageTool Service
After=network.target
[Service]
Type=simple
User=user_name # recomend non-root user
Restart=on-failure
RestartSec=5s
WorkingDirectory=/home/user_name/LanguageTool-4.8
ExecStart=java -Xmx1000M -cp /home/hf/LanguageTool-4.8/languagetool-server.jar org.languagetool.server.HTTPServer --port 8081 --public --allow-origin "*" --languageModel "/home/hf/ngrams"
# -Xmx1000M is used to limit memory 1000M
[Install]
WantedBy=multi-user.target
啓動,並設開機啓動。 1
2systemctl enable lt.service
systemctl start lt.service
4. 插件使用
現在只試了 Chrome 和 Google Docs 插件。只需在插件設置里選擇、填寫服務端地址和端口。 接下來會試着用在 VIM, Texmacs 上,再改用 https 通信。