AI语法检查器:LanguageTool + 本地LLM私密写作
云语法检查器会存储你的草稿。靠谱的替代是两层:LanguageTool 管确定性规则错误,本地 LLM 管语气和重构建议,全部留在自己磁盘上。
AI语法检查器:LanguageTool + 本地LLM私密写作
在线语法检查器的商业模式,决定了它必须读你的文本。你粘贴进去的合同草稿、还没发表的文章、内部报告,都经过它的服务器。条款里通常允许"为改进服务处理内容",这句授权足够让在意隐私的人不舒服。
替代方案不是找一个更讲道德的云服务,而是把检查拆成两层放在本地:规则引擎管确定性错误,语言模型管风格判断。
一、为什么必须分两层
一层做不完这件事,原因是两类错误的性质完全不同。
| 错误类型 | 例子 | 适合谁 |
|---|---|---|
| 确定性错误 | 主谓不一致、搭配错误、标点误用、重复词 | 规则引擎 |
| 风格判断 | 这句太啰嗦、这段逻辑跳跃、语气过硬 | 语言模型 |
| 术语一致 | 全文"用户"和"客户"混用 | 规则引擎(自定义词表) |
| 重构建议 | 被动句改主动、长句拆短 | 语言模型 |
规则引擎的强项是"确定",它不会发明一条不存在的规则;弱点是不会看上下文,遇到故意打破规则的修辞就误报。语言模型正相反:能读懂意图,但会一本正经地给出不存在的修改理由。
把二者当队友而不是互相替代,误报和漏报同时下降。
二、第一层:LanguageTool 本地跑
LanguageTool 是开源语法检查器,支持二十多种语言,核心版可以完全离线运行。两种部署方式:
方式 A:桌面应用。下载后本地运行,界面里粘贴文本即可,最省事,适合偶尔用。
方式 B:本地 HTTP 服务。适合集成进自己的脚本或编辑器。
# 下载语言包与服务器 jar 后
java -jar languagetool-server.jar --port 8081 --allow-origin
调用:
curl -s --data-urlencode "text=这是一句有错别字的句字。" \
--data "language=zh-CN" http://127.0.0.1:8081/v2/check
返回的 JSON 里,每条 matches 带 offset、length、message、replacements,直接可以用来做替换建议。
中文检查要单独装中文规则包,默认发行版对中文的覆盖比英文弱,这点要有预期:它抓错别字和标点很准,抓句式问题不行。
三、第二层:本地模型管风格
用 Ollama 起一个本地模型,把规则引擎标出的问题,连同"规则抓不到的部分"一起交给它。
ollama pull qwen2.5:7b-instruct
提示词的关键是约束范围。不加约束的模型会把整段重写一遍,你拿到的是一篇不像自己写的东西。
你是文字编辑。只做三件事:
1. 指出句子过长(超过40字)的位置,并给出拆分建议
2. 指出语气过于生硬或过于客套的句子
3. 指出前后不一致的用词(同一概念用了不同说法)
不要改写全文,不要替换作者的措辞习惯。
输出格式:每条一行,"原文片段 → 问题 → 建议",最多10条。
"不要改写全文"这句必须写。模型默认倾向于"帮你写得更好",而好编辑的标准是保留作者的声音。
四、一条脚本串起来
import requests, json
def check(text: str) -> dict:
r = requests.post("http://127.0.0.1:8081/v2/check",
data={"text": text, "language": "zh-CN"}, timeout=20)
rule_hits = r.json().get("matches", [])
prompt = BUILD_PROMPT.format(text=text)
s = requests.post("http://127.0.0.1:11434/api/generate",
json={"model": "qwen2.5:7b-instruct", "prompt": prompt,
"stream": False}, timeout=180)
return {"rules": rule_hits, "style": s.json().get("response", "")}
审稿时的用法:先看规则命中,能机改的直接改;再看风格建议,逐条判断要不要接受。全部本地,不联网。
五、怎么判断值不值得换
三个维度自测:
- 你的文本敏感吗?合同、未发表稿件、内部战略文档,只要有一类,本地就值得。
- 你写英文还是中文?英文场景 LanguageTool 覆盖很成熟,中文场景规则层较弱,模型层的比重会更大。
- 你能接受多少误报?规则引擎误报低但漏报多,模型相反。两个一起用,你仍然要人工过一遍。
成本对照很简单:云服务是订阅费换省心;本地方案是零订阅费、一次性配置时间、加一点电费。
常见问题
Q:本地模型的中文润色能力够吗? A:七到十四B的开源中文模型,做句子级的问题指出已经够用;整篇重写的质量还比不上顶级闭源模型。这也是为什么方案设计成"提建议"而不是"代写"。
Q:LanguageTool 中文规则太少怎么办? A:可以自己加规则。它对自定义词表和正则规则支持不错,把常犯的错误(行业术语误写、固定搭配)写成规则,比等官方更新快。
Q:需要什么硬件? A:七B模型量化后在普通消费级显卡或十六G内存的机器上能跑,速度够审稿用。纯CPU也能跑,就是等得久一点。
Q:能接进 Word 或编辑器吗? A:LanguageTool 有浏览器扩展和编辑器插件,可以指向本地服务地址。语言模型的建议目前多半要自己写脚本串,或者用支持自定义端点的写作工具。
注:LanguageTool 的端口、参数与中文规则覆盖随版本变化,具体以官方文档为准。
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。