语言后处理与置信度
本节目标
在不“悄悄改写证据”的前提下做字符规范化、领域规则和置信度分流。
原文、规范化文本与业务值
应把三个层次分开:
raw_text:引擎原始输出,用于复现和比较。normalized_text:按公开规则做 Unicode、空白或标点规范化。parsed_value:把文本解释成日期、金额、编号等业务值。
Unicode 规范化用于处理“视觉接近但编码序列不同”的字符。NFC/NFKC 的选择会改变兼容字符,不能无条件对姓名、代码或公式使用 NFKC。规则要有版本,并保留变更轨迹。
有边界的后处理
字典、正则和上下文可以修复常见混淆,但必须满足:
- 规则适用于明确字段,例如发票号码,而非任意正文。
- 保留原始值和变更原因。
- 对多个候选不自动猜测,进入人工复核。
- 用独立验证集衡量“修对”与“改错”的净收益。
例如编号字段规定只含大写字母和数字,可把低置信度 O/0 标为候选;若没有字段约束,则不应自动替换。
如何理解置信度
置信度通常是模型内部得分,不保证经过概率校准。阈值应按文档类型和风险设置:关键金额可能要求更高阈值,一般正文可允许抽样检查。可组合:
复核分数 = 低置信度 + 关键字段失败 + 版面异常 + 随机抽样只复核低分样本会漏掉“高置信度地认错”,随机抽样能估计这类错误。
练习与自测
- 给
raw_text="128.00"设计规范化记录,注明规则版本。 - 解释为什么不能把模型分数
0.98直接描述为“98% 正确率”。 - 设计一个兼顾关键字段与普通正文的复核策略。
下一步与参考
下一步学习 评测、错误分析与人工复核。参考 Unicode Normalization Forms(UAX #15,Unicode 17.0.0,Revision 57) 与 Tesseract 字典/模式建议(获取日期:2026-07-22)。