# 中文错别字扫描工具实测：开源全灭，LLM 是正解

给 860 篇博客文章做全量错别字扫描时，实测了三类方案：pycorrector+kenlm（统计模型）、pycorrector+MacBERT（深度模型）、DeepSeek API 直扫。结论明确：开源纠错工具为输入法/OCR 场景设计，对博客文本误报率极高；LLM 是唯一靠谱的路线，误报率 <10% 且能抓语义级错误。

## 背景

博客 860 篇（中文散文 + 技术文混杂，人名/书名/英文术语多），想找一个现成的中文错别字修复工具批量扫描。需求：低误报、能处理中英混杂、能批量跑。

## 实测结果

### pycorrector + kenlm（2019 统计模型）

- 部署：需要编译 kenlm，Python 3.13 编译失败（`_PyGC_FINALIZED` 等 C API 被移除），换 3.11 解决
- 首次运行下载 2.9GB 中文语言模型
- 结果：10 篇样本命中 3 篇，7 处命中全是假阳性（微信→威信、人名全报错）
- 词表是 2019 年的，连「微信」都不认识

### pycorrector + MacBERT（macbert4csc-base-chinese）

- 400MB 模型，从 HF 下载（国内用 hf-mirror 或走代理）
- 结果：基础错字（因该→应该）能抓，但博客真实文本误报率 80%+
- 假阳性：网络→路、技术栈→户、阿尔吉侬→依、业余→馀
- 阈值 0.7→0.95 几乎无改善（误报置信度极高）
- 训练语料是输入法/OCR 错误，词表里没有当代词汇

### DeepSeek API 直扫

- 8 workers 并发，860 篇 18.8 分钟跑完，成本几块钱
- 190/860 篇有命中，322 处，抽检误报率 <10%
- 能抓语义级错误（自立更生→自力更生、搏弈→博弈、美名其曰→美其名曰）
- 能抓系统性高频错字（登陆×10、公匙×10、密匙×5）

## 批量替换的坑

「想往→向往」规则误伤 4 处：不想往家里打电话、想往上钻营、想往哪里走、想往深刻了说——全是「想往X」动词结构，不是「向往」。全量回退重跑，仅保留人工确认的 1 处（音乐剧的想往所在）。

教训：批量替换规则必须人工复核上下文，尤其是同音词（想往/向往、翅果/吃过——翅果还是植物学术语）。确定性强的规则（登陆→登录、公匙→公钥）可以全量，歧义规则只能精确替换。

## 结论

1. 开源中文纠错工具（pycorrector 系）服务输入法/OCR 场景，不适合博客校对
2. LLM 校对质量碾压，成本极低（860 篇几块钱）
3. 批量替换前必须人工抽检，同音词规则最危险
4. deepseek-v4-flash 是 reasoning 模型，max_tokens 设太小会返回空 content（思考链截断），不要设 max_tokens 或设大

## 参考

[shibing624/pycorrector - GitHub](https://github.com/shibing624/pycorrector)


相关：[[use-prettier|use-prettier]]
