文档智能:大模型时代的 OCR、票据识别与信息抽取
财务每天要录入大量发票,法务要从合同里提取关键条款,客服要核对用户上传的证件照片。这类“从文档中读出信息并结构化”的工作,统称为文档智能。传统 OCR 解决了“把图片变成文字”的问题,而大模型的加入,让“理解文档并抽取所需字段”变得更加灵活。 但在准确率要求极高的场景中,两者往往需要配合使用。
传统 OCR 流水线
传统方案通常包括以下步骤:
- 图像预处理:矫正倾斜、去除噪点、增强对比度;
- 文字检测:找出图像中的文字区域;
- 文字识别:把每个区域的图像转换为文字;
- 版面分析:识别标题、段落、表格、印章等区域;
- 字段抽取:根据模板或规则,从识别结果中提取“发票号码”“金额”等字段。
优点是成熟稳定、速度快、成本低、可以本地部署,对于格式固定的票据准确率很高。缺点是每种新格式都要配置模板或训练模型,面对格式多变的文档维护成本高。
视觉大模型方案
直接把文档图片交给视觉语言模型,用自然语言说明需要抽取哪些字段,要求以 JSON 格式输出。
- 优点:无需为每种格式配置模板,对版式变化适应性强;能理解语义,比如判断哪个日期是“签订日期”、哪个是“生效日期”;能处理手写批注、复杂排版等传统方案的难点。
- 缺点:单次成本和延迟更高;对细小文字、模糊图像可能识别错误;偶尔会“补全”图片中实际没有的内容,这是最需要警惕的问题。
视觉模型的能力边界可参考视觉语言模型能看懂什么。
组合方案:取长补短
在实践中,组合使用往往效果最好:
- OCR 负责读字,大模型负责理解:先用 OCR 得到带位置信息的文字,再把文字(必要时连同图片)交给大模型做字段抽取和语义判断。这样既利用了 OCR 在字符识别上的精确性,又利用了大模型的理解能力;
- 按文档类型分流:格式固定、量大的票据走传统流水线,格式多变、量小的文档走大模型;
- 交叉校验:两种方式各自抽取关键字段,结果一致直接通过,不一致转人工。
典型场景实践
发票与票据
关键字段包括号码、日期、金额、税额、购销方信息。可以利用字段之间的逻辑关系做自动校验,例如金额加税额是否等于价税合计,大写金额与小写金额是否一致。
合同
重点不是逐字识别,而是定位和理解关键条款:合同主体、金额、期限、违约责任、争议解决方式等。长合同需要先做版面分析和分段,再逐段抽取,相关思路见 PDF 与表格解析的坑。
证件
识别姓名、证件号码等字段,并利用校验规则(如证件号码的校验位)做自动核验。证件涉及个人敏感信息,需要严格遵守数据保护要求,参见企业使用大模型的数据隐私指南。
报表
表格结构还原是难点,需要保留行列关系和合并单元格信息,并对数值做汇总校验。
准确率与人工复核
文档识别的结果常常直接进入财务、合同管理等业务系统,错误代价高。建议:
- 字段级置信度:对每个字段给出置信度,低于阈值的转人工复核;
- 规则校验:格式、范围、逻辑关系、与业务系统中已有数据的比对;
- 复核界面友好:在复核界面中同时展示原图对应区域和识别结果,方便快速核对;
- 持续统计:按字段统计错误率,针对性改进。
小结
传统 OCR 精确高效,适合格式固定的大批量文档;视觉大模型灵活智能,适合格式多变、需要语义理解的场景。组合使用、按类型分流、配合规则校验和人工复核,才能在效率与准确率之间取得平衡。