企业 PDF 很少只是连续文字:表格、扫描页、双栏排版、图表和脚注经常同时出现。Cohere 发布的 Parse 5 面向这类复杂场景,使用一个 23 亿参数的多模态基础模型,将视觉丰富的 PDF 转换为 Markdown,并同时返回内容对应的 bounding box 坐标。
这意味着文档解析的结果不再只有一段文本,还可以回答“这条数据在原始页面的什么位置”。对于发票、合同、财报、保险单和合规材料,这种视觉定位能力直接关系到审核、追溯和人工校验的效率。
Parse 5 解决的不是普通 OCR 问题
传统 OCR 通常关注字符识别:把页面上的像素转换成文字。但企业文档中的信息价值往往依赖布局。表格的行列关系、标题与正文的层级、图注与图表的对应关系,都会影响最终抽取结果。
Parse 5 的定位更接近“多模态文档理解”:
- 将复杂 PDF 内容转换为 Markdown,保留较适合下游处理的结构。
- 为识别出的内容提供 bounding box 坐标,用于视觉 grounding。
- 同时处理文字、版面和页面视觉信息,而不只是逐行读取字符。
- 面向企业文档场景评估,在超过 2,000 个企业页面上进行测试,关键性能指标平均得分为 79.2。
这里的 79.2 应当理解为综合评测结果,而不是所有文档、所有字段都能达到的准确率。实际效果仍会受到扫描质量、语言、表格复杂度和字段定义影响。
Bounding box 让抽取结果可以被复核
假设系统从合同中抽取出付款期限 30 days。只有文本值时,下游程序很难判断它来自正文、脚注还是另一张表。若结果同时包含页面编号和坐标,应用就可以:
- 在 PDF 阅读器中高亮原始证据。
- 让审核人员一键跳转到字段来源。
- 保存字段与原文位置之间的审计关系。
- 在低置信度场景下,把局部页面截图交给人工确认。
这类设计对企业工作流尤其重要。结构化数据用于搜索、统计和自动化,坐标信息则保留了“为什么系统这样判断”的证据链。
一个可改造的解析结果处理脚本
下面的示例假设 Parse 5 或内部网关返回 JSON,字段包含 Markdown 文本和带坐标的元素。接口字段并非本文来源公布的固定 SDK 格式,因此示例只展示一种可以落地的适配层;接入真实服务时,请按实际响应修改 extract_elements。
将下面内容保存为 parse_result.py,运行 python parse_result.py sample.json。它会筛选出指定类型的字段,并输出适合保存到数据库的结构化记录。
import json
import sys
from pathlib import Path
def extract_elements(payload):
# 假设响应中的 elements 具有 page、text、bbox、type 字段。
elements = payload.get('elements', [])
records = []
for item in elements:
text = str(item.get('text', '')).strip()
bbox = item.get('bbox')
page = item.get('page')
if not text or not isinstance(bbox, list) or len(bbox) != 4:
continue
records.append({
'page': page,
'type': item.get('type', 'unknown'),
'text': text,
'bbox': bbox,
})
return records
def main():
if len(sys.argv) != 2:
raise SystemExit('usage: python parse_result.py result.json')
payload = json.loads(Path(sys.argv[1]).read_text(encoding='utf-8'))
markdown = payload.get('markdown', '')
records = extract_elements(payload)
print(json.dumps({
'markdown_chars': len(markdown),
'grounded_fields': records,
}, ensure_ascii=False, indent=2))
if __name__ == '__main__':
main()
可以配套使用这样的输入文件:
{
"markdown": "# Invoice\\n\\nTotal: $120.00",
"elements": [
{"page": 1, "type": "total", "text": "$120.00", "bbox": [420, 680, 540, 710]}
]
}
生产环境中建议额外保存文档哈希、模型版本、页尺寸、字段置信度和原始响应。坐标必须明确单位和原点方向,否则前端高亮时容易出现偏移;如果 PDF 页面经过旋转或裁剪,也需要在渲染坐标与 PDF 坐标之间做转换。
采用时要关注的边界
Parse 5 的多模态能力可以减少复杂文档解析中的规则数量,但它不会消除数据治理问题。上线前应准备一小批真实文档,按文档类型和字段分别评估,而不是只看一个总体分数。
建议重点检查:
- 扫描 PDF、原生 PDF 和混合 PDF 的差异。
- 表格跨页、合并单元格和页眉页脚的处理方式。
- 关键金额、日期、账号等字段的错抽风险。
- Markdown 结构是否足够稳定,能否被后续解析器消费。
- bounding box 是否能准确映射回原始页面。
- 敏感合同和财务材料是否满足数据驻留、访问控制与日志要求。
一个务实的落地路径是先把 Parse 5 用在“机器预填充加人工复核”的流程中,再根据字段级评估结果扩大自动化范围。对高风险字段保留原文位置和人工确认记录,通常比单纯追求更高的平均准确率更有价值。