mcpField
L
lexaudit

lexaudit

本地服务
github.com/nareyko生产力05 天前更新

关于 lexaudit

lexaudit 是用于审查文章、课程和文档的本地词汇审计 CLI,可发现跨语言借词、误用词和生造词,并按页面优先级生成报告。它只标记问题,不会修改文本,支持 7 种语言且无需联网或 GPU。

主要功能

  1. 01检测借译词、误用词和生造词
  2. 02按问题评分排列页面
  3. 03解释单词被标记的原因
  4. 04支持 7 种语言
  5. 05本地运行且不修改文本

适用场景

  1. 01审查多语言文档中的可疑词汇
  2. 02优先处理问题较多的页面
  3. 03核查拼写检查器容易漏掉的词

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nareyko-lexaudit": {
"command": "uvx",
"args": [
"lexaudit"
]
}
}
}
启动命令uvx lexaudit

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypilexaudit0.3.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

lexaudit

查找文本中奇怪、错误或从其他语言照搬的词语,并告诉你应该先修正哪些页面。

通俗地说

你会撰写或翻译文章、课程或文档。普通拼写检查器会对每个品牌名、缩写和长德语词大呼小叫,却仍会漏掉真正有害的词:从另一种语言照搬过来的词(“仿译词”)、含义用错的真实词(“假朋友词”),或某人杜撰出来的词。

lexaudit 会读取你的文件,忽略无关紧要的内容,并给出一份简短的排序列表:“先看看这个页面。”它能在普通笔记本电脑上约一秒内运行。无需显卡、互联网或账号。

它只会报告问题,绝不会修改你的文本。

不认识的术语?请参阅术语表。
0.3.0 的准备与发布流程:docs/p1-INDEX.md。

  • 语言:英语(en)、德语(de)、西班牙语(es)、波兰语(pl)、俄语(ru)、瑞典语(sv)、乌克兰语(uk)
  • 硬件:仅 CPU
  • 作者:Vadim Nareyko(github.com/nareyko,Arviser Sp. z o.o. 创始人)
  • 许可证:双重许可,MIT 软件包和 AGPL-3.0-or-later 托管 SaaS(详情)

lexaudit 工作原理


30 秒快速试用

pipx run lexaudit audit --path . --locale en --check
# or: uvx lexaudit audit --path . --locale en --check

缺少的拼写词典会自动下载到用户缓存中。无需 GPU,也无需配置文件。退出代码 1 表示仍有已确认的仿译词或杜撰词。

可选辅助命令:lexaudit doctor、lexaudit fetch-dicts、lexaudit init。

检查单个文件或整个项目
# One file or folder, no settings file needed
uv run lexaudit audit --path ./README.md --locale en

# Or create starter settings first, then check everything
uv run lexaudit init
uv run lexaudit audit --locale en
打开报告

报告位于输出文件夹中,每种语言各有一个子文件夹。先查看 queue.md:

| score | unique_suspects | path | top_words |
|---|---|---|---|
| 12.0 | 2 | docs/en/en-04-defect-known-calques.md | orientir surveyness |
| 6.0 | 1 | docs/en/en-05-defect-false-friend.md | denseness |
| 1.6 | 2 | docs/en/en-03-clean-unseen-jargon.md | vinylester haulout |

分数越高,表示“越应该先查看”。top_words 显示了影响分数的词语。

查看某个词为何被标记
uv run lexaudit explain orientir --locale en
word: orientir (normalized: orientir, locale: en)
status: calque (tier: confirmed)
reason: loan-calque-orientir | detectors: calque, hunspell
editorial hint: working rule / ballpark / figures - not orientir
重现我们的测试结果
uv run lexaudit audit --config examples/synthetic-demo/lexaudit.config.yaml

然后打开 tmp/synthetic-demo-out/<language>/queue.md。


效果有多好?如实说明

我们用全部 7 种语言构建了一个包含 42 个页面的测试集:21 个干净的技术页面,以及 21 个植入问题的页面。有些问题为规则所知,有些则是规则从未见过的新词。详情:docs/synthetic-benchmark.md。

基准测试结果

配置前 2 名中有问题的页面前 3 名中有问题的页面Recall@2Recall@3MAP(0 到 1,越高越好)找到的已知问题找到的全新新词植入问题总计干净页面误报数 / 每 1k 个词元耗时
A. 普通拼写检查器0.0%23.8%0.0%23.8%0.3890.0% (0/26)0.0% (0/7)0.0% (0/33)81.20.48 s
B. 加上你的词表7.1%23.8%4.8%23.8%0.4210.0% (0/26)0.0% (0/7)0.0% (0/33)47.10.56 s
C. 完整版 lexaudit100.0%100.0%66.7%100.0%1.000100.0% (26/26)100.0% (7/7)100.0% (33/33)47.12.97 s

这意味着:

  • 每种语言中,有已知问题的页面都会排在前面。普通拼写检查器则会把干净页面排在前面。
  • 已知规则问题:100.0%(26/26)。未见过的单次出现新词(Zipf + 字符 n-gram / 词缀粘合):100.0%(7/7)。植入问题总计(实际占比):100.0%(33/33)。
  • 每种语言恰有 3 个有问题的页面时,如果前 2 个位置都是问题页面,Recall@2 为 66.7%(Precision@2 = 100.0%)。Precision@3 / Recall@3 均为 100.0%(单次出现的杜撰词排名高于反复出现的领域术语)。
  • 干净页面误报:每 1000 个词元中有 47.1 个独特的标记词(36 个独特误报 / 764 个词元)。
  • 在页面中反复出现(或位于 H1/标题中)的领域术语会标记为 domain-term-candidate,在排名中的权重几乎为零,并列在“建议添加到术语表”之下。

文档

从 docs/README.md 开始。

指南你将了解
术语表用通俗语言解释每个术语
基准测试逐步了解这项 42 页测试
架构输入什么,输出什么
流水线每个词都要通过的关卡
CLI 参考所有命令
Agent 工作流从报告到修复页面
评分与指标页面评分方式

词语分类阶梯


更多命令

# Re-rank pages, filter by source (docs, academy, model_pack)
uv run lexaudit rank --locale ru --mode weighted --sources=docs

# Add every page that contains a known bad word to your to-do list
uv run lexaudit expand-needle --needle orientir --locale all \
  --write-queue /abs/path/to/rewrite-queue.md

# Optional: ask a language model for a second opinion (your own endpoint)
uv run lexaudit label --locale ru --top-pages 20 --top-words 50 --tiers likely,weak --profile cpu

# Compare two runs
uv run lexaudit diff --baseline .../report.json --current .../report.json --out /tmp/diff.json

贡献者须知

设置与检查:

uv sync --extra dev
uv run ruff check . && uv run ruff format --check .
uv run mypy --strict src/
uv run pytest
uv run python scripts/crap_report.py
uv run mutmut run && uv run python scripts/check_mutation_score.py --min-percent 80
uv build

测试层:单元测试与集成测试(分支覆盖率不低于 80%)、7 种语言的基准测试、基于属性的模糊测试(Hypothesis)、黄金回归测试(只读检查你的文件)、JSON Schema 契约、复杂度关卡(CRAP)、变异测试(杀死率不低于 80%)。

docs/images 中的图片由代码生成:运行 python scripts/render_diagrams.py(需要 Inkscape 和 Pillow)。切勿手动编辑 JPG 文件。

许可证

内容许可证
PyPI / 此仓库的代码(CLI、库、YAML 规则、包)MIT — 根据 MIT 许可,可用于产品和私有 SaaS
计划中的未来托管式多租户网络服务(本项目未提供)政策文本:AGPL-3.0-or-later — 不是 MIT wheel 的第二份许可证
基准测试语料库和获取的拼写词典LICENSE-THIRD-PARTY.md + 上游 *.license.txt

完整条款:docs/licensing.md。添加规则:docs/contributing-rules.md。

起源与作者

由 Vadim Nareyko (github.com/nareyko) 创建并维护。项目源自对 FairHelm 多语言课程和百科全书的审查。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。