languagetool
开源语法检查利器,25+语言支持,即时发现普通拼写检查器无法检测的语法与风格错误
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源语法检查利器,25+语言支持,即时发现普通拼写检查器无法检测的语法与风格错误
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你花半小时精心撰写一封商务邮件,发出去的那一刻信心满满——然而收件人回了一句:"I think you meant 'its' instead of 'it's' in the second paragraph." 那一刻,所有的专业形象瞬间打了折扣。拼写错误可以用手机输入法纠正,但语法陷阱——那些看起来正确、实则暗藏问题的表达——却往往藏在暗处,等着在关键时刻给你"惊喜"。
LanguageTool 正是为解决这个痛点而生。它不是简单的拼写检查器,而是一款跨语言、开放源码的语法与风格校对工具,支持英语、德语、法语、西班牙语、葡萄牙语、荷兰语、乌克兰语等 25+ 种语言,能发现普通拼写检查器根本无法检测的错误类型。

图1:LanguageTool 开源社区组织头像
LanguageTool 的故事始于 2005 年,由德国开发者 Daniel Naber 发起,至今已有超过 20 年的持续迭代。2025 年 3 月,团队发布了 6.6 版本,同时宣布从传统版本号发布模式转向每日快照(Daily Snapshot)构建,让用户可以随时获取最新检测规则。这种敏捷的发布策略体现了项目对社区反馈的重视程度——每一条规则背后,都可能是一位语言学爱好者的贡献。
项目采用 LGPL 2.1 开源许可,核心引擎(languagetool-core)可被其他软件自由集成和再分发。正是这种开放策略,让 LanguageTool 成为众多办公软件、浏览器插件和在线编辑器的底层引擎。如今,它不仅是个人写作者的秘密武器,也被嵌入到 LibreOffice 扩展、浏览器插件、HTTP API 服务等多种形态中,服务全球数百万用户。
如果把 LanguageTool 想象成一位语言老师,它的"大脑"由以下几部分构成:
规则引擎(Rule Engine) 是核心。这个引擎加载了数千条人工编写的语法规则,每条规则都对应一类特定的错误模式——主谓不一致、时态混用、可数/不可数名词误用、介词搭配错误等。与纯统计的拼写检查不同,这些规则经过精心设计,能够理解上下文的语义,从而避免误报。
语言模块(Language Modules) 是 LanguageTool 支持多语言的关键。每个语言都有独立的模块目录(位于 languagetool-language-modules/ 下),包含该语言的规则集、词典和词性标注器。例如英语模块(/en)积累了最丰富的规则,而小语种如乌克兰语也在 2025-2026 年间持续得到更新。
词性标注器(Part-of-Speech Tagger) 为规则匹配提供语法层面的上下文信息。它能将句子中的每个词标注为名词、动词、形容词等词性,帮助规则引擎更准确地判断某个用法是否符合语法规范。这一步也是规则编写者最难处理的部分——语言的歧义性让自动标注充满挑战。
从技术实现看,LanguageTool 是一个纯 Java 项目,使用 Maven 作为构建系统。仓库采用多模块(multi-module)Maven 结构,各模块职责清晰:
java -jar languagetool-commandline.jar -l en file.txt 即可对文件进行校对。项目使用 Java 17 作为最低版本要求,这意味着它能充分利用现代 JVM 特性。项目维护者同时提供了社区贡献的 Dockerfile 方案(meyay/languagetool、erikvl87/languagetool),通过 Docker 运行 Server 版本也相当方便。

图2:LanguageTool 官方 Logo
以下这些错误,是 LanguageTool 相对于普通拼写检查器的"代差优势":
语法级错误:主谓不一致("He don't like" 应为 "He doesn't like")、时态混用("Yesterday I go to the store")、定冠词遗漏等。
风格建议:过长的句子(建议拆分)、被动语态过多、重复用词("very very" → "extremely")等风格层面的优化建议,帮助文本更流畅。
语义混淆词:如 affect/effect、its/it's、than/then、their/there/they're 等,这类错误即使语法正确也常被忽略。
特定语言规则:例如德语的名词化倾向(Nominalstil)、法语中的赘词检测、西班牙语的 Ser vs Estar 用法区分等。
方式一:下载独立 JAR(推荐新手)
从 languagetool.org/download 下载 languagetool-standalone.jar,双击运行或执行:
java -jar languagetool-standalone.jar
启动后会自动打开本地图形界面,输入文本即可校对。内存不足时加 -Xmx4096M 参数调整堆大小。
方式二:命令行校对
下载 languagetool-commandline.jar:
java -jar languagetool-commandline.jar -l en-US document.txt
-l 参数指定语言代码,支持 en-US、de-DE、fr、es 等。
方式三:Docker 部署 HTTP 服务
社区维护的 Docker 镜像(推荐用于生产环境):
docker run -d -p 8010:8010 erikvl87/languagetool
# 然后调用 API
curl -X POST http://localhost:8010/v2/check -H "Content-Type: application/json" -d '{"language": "en-US", "text": "Hello, wrld!"}'
方式四:Maven 源码构建
git clone https://github.com/languagetool-org/languagetool.git
cd languagetool
mvn clean package -DskipTests
# 构建产物在各子模块的 target/ 目录
LanguageTool Server 版本提供了完整的 REST API,可以通过 HTTP 请求集成到任何应用中。项目官网 languagetool.org 本身也基于这个 API 运行,为全球用户提供在线校对服务。
开发者还可以通过 languagetool-http-client 模块在自己的 Java 代码中直接调用核心 API,无需启动独立服务进程。此外,通过 languagetool-dev 模块,开发者可以添加自定义规则、参与规则贡献,社区每年都会收到大量来自语言学爱好者提交的规则 PR。
优势:
局限:
当 ChatGPT 能够润色文章甚至写完整报告时,有人会问:语法检查工具还有价值吗?
答案藏在两个维度里:速度与专注。LanguageTool 的检查是即时的——上传文本、三秒反馈、没有"思考过程"的等待。更重要的是,它是一种确定性工具:给出的每一条建议,背后都有明确的规则依据,不会出现 LLM 那种"一本正经胡说八道"的风险。在正式文档、专业出版、合规审查等需要可解释性的场景中,这种确定性至关重要。
实际上,LanguageTool 也在拥抱 AI 时代。2025-2026 年,项目持续更新乌克兰语模块、扩展英语规则集,并在 CHANGES 日志中记录了多次规则增强——这些都是社区驱动、语言学导向的精细化迭代,而非简单的 AI 生成。
对于任何需要高质量英文写作的开发者、研究者或内容创作者,LanguageTool 仍然是工具箱中不可或缺的一员:轻量、快速、可靠、免费。