本文介绍了Datalab公司的Marker和OCR模型在文档解析与文本提取方面的技术应用。Marker可将PDF、DOCX、PPTX、图像等文件转换为Markdown或JSON格式,能够格式化表格、数学公式和代码,提取图像,并在传递JSON Schema时拉取特定字段。OCR可从图像和文档中检测九十种语言的文本,并返回阅读顺序和表格网格。
Marker模型基于开源项目Marker(某代码托管平台29k星标),OCR基于Surya(19k星标)。
运行Marker
import replicate
output = replicate.run(
"datalab-to/marker",
input={
"file": open("report.pdf", "rb"),
"mode": "balanced", # fast / balanced / accurate
"include_metadata": True, # 返回页面级JSON元数据
},
)
print(output["markdown"][:400])运行OCR
import replicate
output = replicate.run(
"datalab-to/ocr",
input={
"file": open("receipt.jpg", "rb"),
"visualize": True, # 返回带有红色多边形框选文本的输入图像
"return_pages": True, # 返回布局数据
},
)
print(output["text"][:200])上述模型兼具快速与准确,优于Tesseract等成熟工具,处理时间短。Marker每页处理约0.18秒,批量处理时可达每秒120页。
结构化提取
Marker的一个强大功能是结构化提取。例如,从发票中提取特定字段:
import json
import replicate
schema = {
"type": "object",
"properties": {
"vendor": {"type": "string"},
"invoice_number": {"type": "string"},
"date": {"type": "string"},
"total": {"type": "number"}
}
}
output = replicate.run(
"datalab-to/marker",
input={
"file": "https://multimedia-example-files.replicate.dev/replicator-invoice.1page.pdf",
"page_schema": json.dumps(schema),
}
)
structured_data = json.loads(output["extraction_schema_json"])
print(structured_data)性能
使用olmOCR-Bench基准(包含1,403个PDF文件,7,010个单元测试用例)评估Marker性能,该基准测试OCR系统将PDF文档准确转换为Markdown格式并保留关键文本和结构信息的能力。
Marker在所有测试模型中表现优异,包括GPT-4o、Deepseek OCR、Mistral OCR和olmOCR。
(性能对比表格略,原文包含详细数据)
定价
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。