在法律尽调场景下,OCR 的核心使命是 “结构化解析(Parsing)”。 我们不仅要让机器把字读出来,还要让机器理解 “什么是许可项目”,“什么是禁止项目”,“什么是高风险项目”。
1. 痛点:为什么通用的 OCR 搞不定“经营范围”?
营业执照上的“经营范围”通常是一个 多行文本块(Multi-line Text Block)。 通用 OCR 往往会犯以下错误:
- 行序混乱:把第一行的后半段和第二行的前半段拼错了,导致语义断裂。
- 符号丢失:漏掉了关键的 分号(;) 或 括号()。在法律文本中,分号代表业务的分割,括号代表限制条件,丢了就是重大事故。
- 截断:因为文本太长,超过了字段限制,导致最后几行没识别出来。
2. 工程方案:从“OCR 原始文本”到“结构化列表”
我们的目标是将非结构化的长文本,转化为 Excel 或数据库里的 List<String>。
第一步:高精度长文本 OCR (Long-Text OCR)
- 模型选型:必须使用支持 CRNN (卷积循环神经网络) 或 SVTR 的模型,它们对长序列文本的连贯性保持得更好。
- 行合并算法:
- 不要简单地按
\n换行。 - 逻辑:如果上一行结尾不是“;”或“。”,且下一行开头不是空格,说明这句话没说完,必须强制合并成一行。
- 不要简单地按
第二步:基于标点的 NLP 切分 (Segmentation) 中国企业的经营范围写法是有 国标(GB/T 4754) 规范的。
- 核心分隔符:中文分号(;)。这是分割不同业务类型的铁律。
- 切分逻辑:
- 结果:原本 500 字的一段话,被切分成了一个包含 15 个业务项的数组。
3. 风险挖掘:建立“红/黄/绿”灯机制
拿到了数组,我们就可以进行 风险关键词匹配。这比人工看要准得多。
建立风险词库 (Risk Dictionary):
- 红灯(绝对禁止/高危):
危险化学品、烟花爆竹、易制毒、放射性。 - 黄灯(需特许/强监管):
互联网金融、小额贷款、P2P、征信、医疗器械、食品经营。 - 绿灯(一般项目):
技术咨询、软件开发、日用百货。
否定词逻辑(Negative Lookahead): 这是最容易误判的地方。
- 场景:某公司经营范围写着:“投资管理(不含金融、证券、期货业务)”。
- OCR 逻辑:如果简单匹配“金融”,会误报为黄灯。
- 修正逻辑:
- 在匹配关键词之前,先检测该短句中是否存在 否定前缀:
不含、除、不得、非。 if ("金融" in item) AND ("不含" not in item)-> Hit Risk。
- 在匹配关键词之前,先检测该短句中是否存在 否定前缀:
4. 进阶应用:许可项目 vs 一般项目
2020 年后的新版营业执照,明确将经营范围分成了 [许可项目] 和 [一般项目] 两大类。 这对尽调非常有价值:[许可项目] 意味着你需要去查它有没有对应的 许可证(License)。
结构化解析方案:
- 正则提取: 利用正则表达式定位
【许可项目】和【一般项目】这两个锚点。 - 分块解析:
- 提取
【许可项目】后面的内容 -> 提示律师:“请核查该公司是否持有《食品经营许可证》或《危化品经营许可证》”。 - 提取
【一般项目】后面的内容 -> 提示律师:“无需特殊资质,合规风险较低”。
- 提取
5. 输出交付物:给律师的“风险透视镜”
最终,系统展示给律师或分析师的,不应该是一张图,也不应该是一段字,而是一个 “体检报告”。
- 原始图片:(支持点击放大,用于核对)
- OCR 识别原文:(高亮风险词)
- 结构化风险表:
6. 总结
在法律尽职调查中,营业执照 OCR 的价值不在于“识别”,而在于 “理解”。
通过 OCR 长文本优化 + NLP 语义分割 + 风险词库逻辑,我们将原本需要资深律师花费 10 分钟逐字阅读的工作,变成了机器 1 秒钟完成的自动化筛查。
这不仅极大提升了尽调效率,更重要的是,机器不会因为眼花而漏掉那个致命的“危险化学品”。