标签 文档解析 下的文章

一、引言:为什么选择TextIn与Coze搭建财报机器人?

面对季度、年度财报堆叠如山的PDF文档,技术团队如何快速、准确地将其中复杂的表格数据转化为结构化信息?本文将介绍一种高效实践方案:利用TextIn的智能文档解析能力,结合Coze的自动化工作流编排,快速构建一个能够处理多格式财报、抽取关键表格的自动化流程。

1.1 财报文档的典型难点

财报处理长期存在几大核心难点:

1.表格结构复杂:资产负债表、利润表等核心表格常存在跨页、续表情况,且合并报表与母公司报表两套体系并存,单元格合并频繁,对程序的结构化识别构成首要挑战。

2.文档格式多样:资料库中通常是电子PDF与扫描件图像混合共存,要求解决方案同时具备强大的文本解析与OCR版面分析能力。

3.手工处理成本高昂:三大表及附注的手动复制、粘贴、核对工作极其耗时,且容易出错,难以满足及时性、准确性要求。

1.2 TextIn+Coze方案的核心价值

本方案采用清晰的分工架构,将复杂问题模块化:

TextIn xParse引擎负责“读懂”文档:其强大的版面分析与表格识别技术,能统一处理电子PDF与扫描件,将混乱的原始文档转换为包含完整表格结构、段落标题的清晰JSON数据,为下游提取提供高质量的结构化输入。
Coze工作流负责“串联”自动化流程:可自动化编排“文件上传→调用TextIn解析→定位并抽取目标表格→输出至数据库/Excel”的完整管道。
Coze Bot 提供交互层:可构建一个对话机器人,不仅支持触发自动化流程,更能基于抽取出的数据,提供报表摘要、关键指标对比、甚至问答解释,让数据结果可直接被业务人员使用。

这种组合将专业的文档解析、灵活的业务逻辑编排与友好的交互界面相结合,使开发者能聚焦于核心的抽取规则,快速搭建从原始文档到业务可用数据的端到端流水线。

二、方案应用速览

工作流:

图片

输出结果:

图片

三、架构设计

3.1 总体链路

用户上传财报 → Coze触发工作流 → xParse → 代码节点抽取 → 输出结构化tables


图片

开始节点:接收用户上传的财报文件(File)。
TextIn插件节点:将财报解析为结构化JSON,核心使用result.detail(包含paragraph/table/image等元素)以及result.markdown。
代码节点:仅遍历detail,通过“表标题 → 后续表格”方式抽取三大表,并统一输出为tables{balanceSheet,incomeStatement,cashFlow}。
结束节点:将tables / debug / markdown输出给Bot,用于展示与后续问答分析。

3.2 数据结构约定

TextIn xParse - 插件节点的输出(result.detail / result.markdown等,详情见TextIn xParse API文档:https://docs.textin.com/xparse/parse-getjson

Response
├─ code                               # 接口状态码
├─ message                            # 状态信息
└─ result
   ├─ markdown                         # 文档级 Markdown
   └─ detail[]                         # 元素明细数组(只处理 type=table)
      └─ (仅当 item.type == "table" 时关注)
         ├─ type                        # 固定为 "table"(表格块)
         ├─ sub_type                    # "bordered"(有线) / "borderless"(无线)
         ├─ page_id                     # 表格所在页(续表拼接用)
         ├─ paragraph_id                # 表格元素ID(续表拼接用)
         ├─ rows                        # 表格行数
         ├─ cols                        # 表格列数
         ├─ text                        # 表格整体文本(md/html;展示用,抽字段优先 cells)
         ├─ continue?                   # 是否跨页/跨段续表(可选字段)
         └─ cells[]                     # 单元格数组(抽取字段核心)
            ├─ row                       # 行号(从0开始)
            ├─ col                       # 列号(从0开始)
            ├─ row_span?                 # 行合并跨度(默认1)
            ├─ col_span?                 # 列合并跨度(默认1)
            └─ text                      # 单元格文本(字段值通常从这里拿)

TextIn的返回结果中对表格块(type=table)的两种常见数据形态(务必兼容)

形态 A:HTML/Markdown 表格(最常见于工作流插件输出)


    抽取方式:解析text→ 转二维矩阵(headers/rows)
    item.text内包含<table>...</table>(或Markdown table)
    item.type == "table"


形态 B:单元格数组cells(部分接口/参数下提供)

    item.cells[]存在,包含row/col/text等
    抽取方式:优先用cells拼matrix(更结构化),不存在再回退到解析tex






财务三大表抽取 - 代码节点的输出示例(tables)
tables.balanceSheet / incomeStatement / cashFlow均为数组,设计理由如下:

同一份财报可能包含“合并 + 母公司”两套表;
或者出现“(续)”导致一张表被拆成多段;
因此用数组承载多张/多段表更稳妥,业务侧可按title/page_id再做合并与筛选。

tables

{
    "balanceSheet": [
        {
            "headers": [
                "项 目",
                "附注",
                "2025 年6 月30 日",
                "2024 年12 月31 日"
            ],
            "page_id": [
                2
            ],
            "rows": [
                [
                    "流动资产:",
                    "",
                    "-",
                    "-"
                ],
            ],
            "title": "合并资产负债表"
        },
 
 
    ],
    "incomeStatement": [
        {
            "headers": [
                "项 目",
                "附注",
                "2025 年1-6 月",
                "2024 年1-6 月"
            ],
            "page_id": [
                4
            ],
            "rows": [
                [
                    "一、营业总收入",
                    "",
                    "88,095,798,091.41",
                    "85,336,441,428.97"
                ],
            ],
            "title": "母公司利润表"
        }
    ],
    "cashFlow": [
        {
            "headers": [
                "项 目",
                "附注",
                "2025 年1-6 月",
                "2024 年1-6 月"
            ],
            "page_id": [
                5
            ],
            "rows": [
                [
                    "一、经营活动产生的现金流量;",
                    "",
                    "-",
                    "-"
                ],
            ],
            "title": "母公司现金流量表"
        }
    ]
}

Debug

"debug": {
  "detailLen": 823,
  "titleCandidates": 6,
  "hitTitles": [
    {"idx": 120, "page_id": 2, "title": "合并资产负债表"},
    {"idx": 260, "page_id": 4, "title": "母公司利润表"}
  ],
  "picked": [
    {"titleIdx": 120, "tableIdx": 125, "tableType": "balanceSheet"},
    {"titleIdx": 260, "tableIdx": 268, "tableType": "incomeStatement"}
  ],
  "tableBlocks": 12
}

3.3 关键设计点(财报专属)

标题命中策略(table_title + 关键词)
标题长度阈值(>20 跳过):避免长文档中出现“包含关键词的长句”被误判为表标题,从而误抽无关表格。
只认sub_type=table_title:优先使用版面分析识别到的“表格标题”元素,减少正文段落(header/text)误命中概率。

const TITLE_PATTERNS = {
  balanceSheet: ["资产负债表", "合并资产负债表", "母公司资产负债表"],
  incomeStatement: ["利润表", "合并利润表", "母公司利润表", "损益表", "收益表"],
  cashFlow: ["现金流量表", "合并现金流量表", "母公司现金流量表", "现金流量"],
};

function normalizeTitle(s) {
  return String(s || "")
    .replace(/\*\*/g, "")
    .replace(/[\s ]/g, "")
    .replace(/[《》]/g, "");
}
function matchType(norm) {
  for (const [k, kws] of Object.entries(TITLE_PATTERNS)) {
    if (kws.some(kw => norm.includes(kw))) return k;
  }
  return null;
}

function extractFromDetail(detail) {
  const tables = { balanceSheet: [], incomeStatement: [], cashFlow: [] };
  const debug = { hitTitles: [], picked: [], tableBlocks: 0, titleCandidates: 0 };

  for (let i = 0; i < detail.length; i++) {
    const item = detail[i];
    if (!item || typeof item !== "object") continue;

    const rawTitle = String(item.text || "");
    const title = normalizeTitle(rawTitle);

    // ✅ 简单校验:标题长度太长跳过
    if (title.length > 20) continue;

    // ✅ 查询TextIn接口返回数据中的表格标题,避免正文误命中
    if (String(item.sub_type || "").toLowerCase() !== "table_title") continue;

    const ttype = matchType(title);
    if (!ttype) continue;

四、准备工作

TextIn 开发者信息(x-ti-app-id / secret_code)

图片

在TextIn控制台(https://www.textin.com/)「开发者信息」中获取x-ti-app-id与x-ti-secret-code(下文统称 app_id/secret_code)。
建议在Coze工作流里把鉴权参数作为开始节点输入传入(便于不同环境切换),或在团队内部用变量/密钥管理统一配置。

五、工作流搭建

5.1 创建工作流

工作流命名、描述、版本说明
图片

5.2 开始节点配置

Input类型:File(接收上传文件)

图片

5.3 添加 xParse插件节点

输入映射:file → Input.file
鉴权配置:x_ti_app_id / x_ti_secret_code
输出字段说明:result.detail / result.markdown 等,输出重点使用:ParseX.result(作为代码节点输入),其中result.detail是抽表主数据源。


图片

5.4 添加代码节点(核心)

输入变量配置 (选择ParseX.result)

图片

代码职责:遍历detail→找table_title→找后续table→HTML转二维矩阵→输出 tables(代码节点源码附在文章最末尾)

图片

输出结构:tables{balanceSheet,incomeStatement,cashFlow} +debug

5.5 结束节点输出

输出给Agent:tables / markdown / debug

六、不止于抽取:更多自动化扩展方向

财报抽取机器人是一个高效的起点,接下来,基于TextIn提供的精准结构化数据与Coze灵活的工作流,还可以轻松延伸出更多智能化的数据处理能力:

续表自动合并:财报中经常存在大型表格跨页,可在工作流中添加逻辑节点,按title相同且表头一致合并 rows,并合并 page_id,彻底解决数据割裂问题。
表内锚点词校验:为确保抽取表格的完整性与正确性,可设计自动校验规则。例如,检查资产负债表中是否同时存在“流动资产”/“资产总计”科目;验证利润表是否包含“营业收入”/“净利润”;确认现金流量表是否包含“经营活动”。这一步能有效拦截因解析页面错误或文档版本差异导致的重大数据缺失。
结构化导出至Excel:将最终整理的tables列表,通过添加代码节点或Coze插件,转换为更通用的CSV或XLSX格式文件。这能让财务、业务部门的同事无缝接手,直接在Excel环境中进行后续分析与可视化。
实现智能多期对比:将工作流升级为可接收两份财报,分别提取后,系统能根据标准化的会计科目名称自动对齐数据,计算关键项目的同比、环比变化,并可由集成的LLM输出差异分析简报。

通过TextIn与Coze的组合,我们完成了从杂乱文档到结构化数据,再到可交互、可扩展的业务工具的完整路径,构建了一个可靠、可重复、且持续进化的数据流水线。无论是应对合规检查,还是满足定期的经营分析,这个财报机器人都能成为你技术工具箱中一个反应迅速、值得信赖的数字化助手。
现在,是时候告别手动处理的繁琐与不确定,让你的数据工作流真正“智能”起来。

七、附:代码节点源码

下载链接:https://dllf.textin.com/download/2026/CustomService/财报提取-coze代码节点源码.js

以往扫描仪在办公室中的角色颇为单一:将纸质文件变成电子图片,任务便告完成。然而,在人工智能技术蓬勃发展的今天,扫描仪正在经历一场深刻的进化。新一代智能扫描仪不再只是简单的格式转换工具,而是成为了能够理解、分析和处理非结构化文档内容的“智能脑”。通过集成光学字符识别(OCR)、自然语言处理(NLP)和计算机视觉技术,智能扫描仪不仅能“看见”文档,更能“看懂”文档。

这个转变的背后,是一个重要的事实支撑:根据行业研究,企业中超过80%的有价值信息以非结构化数据的形式存在——包括合同、报告、邮件、发票等各类文档。这些信息若能被有效挖掘和利用,将为企业决策和创新提供强大动力。智能扫描仪的进化,正是开启这座信息宝库的关键钥匙。

二、智能扫描仪的三大核心能力突破

1. 精准识别与转换

现代智能扫描仪搭载的高精度OCR技术已经相当成熟,不仅能准确识别印刷体文字,对手写体、特殊字体也有很好的识别能力。多语言混合文档、复杂排版(如多栏、图文混排)的识别准确率已超过98%。更重要的是,智能扫描仪能够保持原始文档的格式、字体和布局,生成可直接编辑的Word、Excel等格式文件,而非简单的图片或PDF。

2. 结构理解与智能分类

智能扫描仪能够理解文档的逻辑结构,自动识别标题、副标题、段落、表格、图表、页眉页脚等元素。基于内容分析,系统还能对文档类型进行智能分类——自动区分发票、合同、简历、报告等不同类型的文档,并应用相应的处理策略。例如,面对一份采购合同,系统会重点关注金额、交货日期、违约责任等关键条款;而处理学术论文时,则会聚焦研究方法、数据结果和结论部分。

3. 内容解析与知识提取

这是智能扫描仪最具革命性的能力突破。通过深度学习算法,系统能够:

  • 语义理解:超越文字表面,把握文本的深层含义和意图。例如,不仅能识别“甲方应在30日内付款”这句话中的每个字,更能理解这是一项付款义务,涉及特定主体、时间限制和具体行为。
  • 关系网络构建:分析不同文档间的内在联系,构建跨文档的知识图谱。比如,将多份相关合同、邮件和会议记录关联起来,形成完整的项目视图。
  • 模式识别与异常检测:在海量文档中发现规律和异常。例如,在财务报表中自动识别异常波动,在质检报告中标记不合格项目。

三、深度解析:非结构化数据的价值解锁

1. 什么是非结构化数据?

非结构化数据指那些没有预定义数据模型或组织形式的信息,包括文本文件、电子邮件、社交媒体帖子、图像、视频等。在企业环境中,最常见的非结构化数据是各类业务文档:

  • 合同与协议:条款复杂,专业性强
  • 财务报告:数据密集,关联性强
  • 客户反馈:形式多样,情感丰富
  • 会议记录:口语化强,重点分散
  • 研究论文:专业术语多,逻辑严密

传统处理方式主要依赖人工阅读、摘录和整理,效率低、成本高、一致性差,且难以进行大规模分析。

2. 智能解析的四层突破

智能扫描技术通过四个层次的解析,破解非结构化数据处理难题:

第一层:语义理解

系统能够理解文本的上下文关系、情感倾向和真实意图。例如,在客户投诉信中,不仅能提取投诉内容,还能分析客户的失望程度和核心诉求。

第二层:实体提取

自动识别和提取文档中的关键信息实体,如人名、组织名、日期、金额、产品名称等。这些实体信息可直接导入数据库或业务系统,实现数据自动化。

第三层:逻辑分析

理解文档内部的逻辑关系。例如,在法律文件中,识别“如果...那么...”的条件关系;在调查报告中,理解数据与结论之间的支撑关系。

第四层:知识图谱

将分散在不同文档中的信息关联起来,构建企业知识网络。比如,将客户信息、订单记录、服务反馈等关联分析,形成完整的客户视图。

3. 行业应用价值

金融行业:智能扫描系统可自动审查贷款申请材料,提取关键财务数据,评估信用风险,处理时间从数小时缩短至几分钟。

医疗健康:将纸质病历、检查报告数字化并结构化,建立可搜索的患者健康档案,辅助医生诊断和治疗决策。

法律服务:快速分析大量法律文件和案例,提取相关法条、判例要点和关键事实,大幅提高案件准备效率。

教育科研:智能解析学术文献,提取研究问题、方法、数据和结论,帮助研究人员快速了解领域动态。

四、ComPDF AI:智能文档解析的实践典范

1. 产品定位与技术优势

ComPDF AI是一款面向企业级应用的智能文档处理平台,集成了先进的OCR、自然语言处理和深度学习技术。其核心优势在于“一体化”和“智能化”:不仅支持从扫描到解析的全流程处理,更能深入理解文档内容,将非结构化数据转化为结构化知识。

平台采用多格式统一解析引擎,无论是扫描件、PDF、Word、Excel还是图片格式,都能提供一致的高质量解析结果,真正实现全格式文档的智能化处理。

2. 核心功能详解

智能版面分析ComPDF AI能够精准识别复杂文档的版面结构,包括多栏排版、表格、图表、文本框等元素。无论是传统的报纸式排版还是现代的创意设计,系统都能准确还原文档的逻辑结构,为后续的内容解析奠定基础。

深度内容解析:基于预训练的大语言模型和行业知识库,ComPDF AI能够理解文档的语义层次。例如,在技术白皮书中,区分技术原理、应用场景和竞争优势;在年度报告中,识别财务数据、业务分析和未来展望。这种深度理解能力,使系统能够提取真正有价值的信息,而非简单的关键词匹配。

交互式处理:用户可以通过自然语言与文档进行对话。例如,输入“找出合同中所有关于知识产权的条款”或“汇总2023年各季度销售数据”,ComPDF AI能够准确理解查询意图,并在文档中找到相应信息,以结构化形式呈现结果。这种交互方式大大降低了使用门槛,使非技术人员也能轻松进行复杂文档分析。

批量自动化处理:针对企业级应用场景,ComPDF AI支持大规模文档的批量处理。用户可以建立自动化处理流水线,设置规则和模板,系统将自动完成文档的解析、分类和信息提取。例如,财务部门可以设置发票处理流程,系统自动识别发票类型、提取金额和供应商信息,并导入财务系统。

3. 应用场景展示

企业法务场景:某跨国公司使用ComPDF AI处理全球分支机构的合同审查。系统自动识别合同类型(采购、销售、雇佣等),提取关键条款(价格、交付期限、违约责任等),并标记潜在风险点。法务团队审查重点合同的时间从平均4小时缩短至30分钟,效率提升超过85%。

财务部门应用:一家大型零售企业将ComPDF AI集成到财务流程中,自动化处理每月数千张供应商发票。系统不仅提取发票基本信息,还自动验证发票真伪、匹配采购订单,并将数据直接导入ERP系统。人工核对工作量减少70%,错误率降低90%以上。

研究机构案例:某政策研究机构利用ComPDF AI分析大量政策文件和研究报告。系统自动提取政策要点、实施措施和影响评估,帮助研究人员快速把握政策脉络。文献调研时间减少60%,让研究人员能够更专注于深度分析和创新思考。

五、智能扫描仪的具体应用场景

1. 办公室自动化

智能归档与检索:传统文档管理依赖人工标注和分类,检索困难。智能扫描仪自动识别文档内容,提取关键词和摘要,实现精准的全文检索。例如,需要查找三年前某个项目的会议记录,只需输入相关关键词,系统即可快速定位。

会议记录处理:扫描纸质会议记录或直接处理电子笔记,系统自动识别发言人、讨论主题、决策事项和待办任务,生成结构化会议纪要,并同步到项目管理工具中。

2. 专业领域深化应用

财务税务:自动处理各类发票、收据和报税单据,提取关键数据(金额、税率、日期等),验证税务信息,并直接导入会计软件。每年报税季,这一功能可节省大量时间和精力。

人力资源:智能解析求职者简历,提取教育背景、工作经历、技能证书等信息,与职位要求自动匹配,生成候选人评估报告。招聘人员可以快速筛选合适人选,提高招聘效率和质量。

客户服务:分析客户来信、在线反馈和调查问卷,自动识别客户情感(满意、中性、不满),提取核心问题和建议,分类汇总后转交相关部门处理。帮助企业及时了解客户需求,改进产品和服务。

知识管理:将企业内部的各类文档(技术手册、产品说明、案例研究等)数字化并结构化,构建企业知识库。员工可以通过自然语言查询获取所需知识,促进知识共享和创新。

3. 个人效率提升

学习笔记管理:学生和研究人员可以扫描纸质笔记和参考资料,系统自动识别重点内容、公式图表和参考文献,建立个人知识库。复习和写作时,能够快速查找相关资料。

个人文档整理:处理个人证件、保单、合同等重要文件,系统自动分类存储,并设置提醒(如保险续保、证件到期等)。需要时可通过手机快速检索和查看,实现个人文档的智能化管理。

六、实施路径:如何部署智能扫描解决方案

1. 技术准备要点

硬件选择:根据文档处理量选择合适规格的扫描仪。对于大批量处理,建议选择自动进纸、双面扫描的高端型号;对于日常办公,普通平板扫描仪即可满足需求。同时考虑与现有办公设备的兼容性。

系统集成:智能扫描解决方案需要与企业的文档管理系统、业务系统(如ERP、CRM)集成。选择支持标准API接口的解决方案,确保数据能够顺畅流转。云部署方案可以降低初期投入,快速上线使用。

2. 流程改造建议

制定数字化标准:统一文档扫描的质量标准(分辨率、格式等)、命名规范和存储结构。建立文档分类体系,确保后续处理的效率和一致性。

优化工作流程:重新设计文档处理流程,减少人工干预环节。例如,将扫描、识别、分类、归档设置为自动化流程;建立异常处理机制,对无法自动处理的文档进行人工复核。

培训与推广:对员工进行系统培训,使其掌握智能扫描工具的使用方法。通过试点项目展示应用效果,逐步推广到全公司。建立使用反馈机制,持续优化系统配置和流程设计。

3. 数据安全与合规

隐私保护机制:确保扫描和解析过程中个人隐私数据的安全。采用数据加密传输和存储,设置访问权限控制。对于敏感文档,提供本地化处理选项,避免数据外泄风险。

行业合规性:不同行业对文档处理有特定合规要求。例如,医疗行业需符合HIPAA标准,金融行业需满足数据保存和审计要求。选择解决方案时,确保其符合相关行业规范和法律法规。

七、未来展望:智能扫描技术的发展趋势

1. 技术融合方向

多模态AI整合:未来的智能扫描仪将整合文本、图像、语音等多种信息处理能力。例如,不仅解析文档文字,还能分析其中的图表数据;结合语音识别技术,处理会议录音和访谈记录,形成完整的会议档案。

边缘计算与云协同:部分处理任务将在扫描设备本地完成(边缘计算),减少数据传输延迟,提高响应速度;复杂分析任务则交由云端处理,利用更强大的计算资源。这种协同模式平衡了效率与能力的需求。

2. 功能演进预测

预测性文档分析:系统不仅能解析已有文档内容,还能基于历史数据预测未来趋势。例如,分析历年销售合同,预测下季度销售情况;审查项目文档,识别潜在风险和延误可能。

实时协作处理:支持多人同时处理同一份文档,实时共享解析结果和批注意见。无论团队成员身在何处,都能高效协作完成文档审查和分析任务。

行业深度定制:针对特定行业的专业需求,提供高度定制化的解析模型和知识库。例如,为律师事务所定制的法律文档分析系统,为医院定制的病历处理方案,为科研机构定制的文献分析工具。

3. 生态建设

深度系统集成:智能扫描技术将与企业各类业务系统深度集成,成为企业数字基础设施的一部分。从简单的数据输入工具,演变为支持决策的智能分析平台。

开放开发者生态:提供丰富的API接口和开发工具包,支持第三方开发者创建定制化应用。构建应用商店生态,满足不同用户的个性化需求。

八、结论:智能扫描仪——企业数字化转型的关键拼图

智能扫描仪正在从企业的“成本中心”转变为“价值创造者”。传统文档处理需要投入大量人力资源,却难以产生直接价值;而智能扫描仪通过自动化处理和深度分析,释放非结构化数据的潜力,直接支持业务决策和创新。

这一转变的核心,在于智能扫描仪成为了非结构化数据价值释放的杠杆点。它连接了纸质世界与数字世界,物理文档与数据系统,将散落在各处的信息碎片整合成可用的知识资产。

Mistral 近日发布了其光学字符识别(optical character recognition,OCR)模型的最新版本,Mistral OCR 3,该版本专注于在多种文档类型上实现更高的精度,包括手写笔记、表单、低质量扫描件以及结构复杂的表格。

 

据 Mistral 表示,OCR 3 相较于前一代产品是一次重大的飞跃。在基于真实客户文档工作流的内部评估中,新模型在整体表现上以 74%的胜率超越了 Mistral OCR 2,尤其在表单、手写内容和含大量表格的文档上优势更为显著。这些基准测试采用模糊匹配(fuzzy-match)指标与人工标注的真实结果进行比对,旨在反映实际业务场景,而非理想化的合成数据。

图片来源:Mistral 博客

 

从技术角度看,Mistral OCR 3 不仅能够提取文本,还能识别并保留嵌入的图像,同时完整保留原始文档的结构信息。它的输出格式为 Markdown,其中表格通过 HTML 标签(如 rowspan 和 colspan)重建,使下游系统不仅能获取纯文本,还能保留布局语义。这一特性使其非常适合需要结构化 JSON、可搜索档案的管道,或集成到智能体(agentic)和检索增强系统(RAG)中。

 

在以往通常依赖人工复核的场景中,该模型也展现出显著的进步。它能够高效处理手写内容,包括连笔的笔记和批注。在表单解析方面,对标签、复选框及混合输入项的识别更加准确。此外,OCR 3 对扫描档案中常见的倾斜、压缩伪影、低分辨率以及背景噪点等问题具备更强的健壮性。

 

早期用户特别强调了其性能提升和多语言方面的支持能力。ICT 安全负责人兼 AI 安全专家 Patrick Jacobs评论说:

在速度方面,真的令人印象深刻,而且它处理荷兰语毫无压力。

 

得益于准确率的大幅提升,Mistral OCR 3 的生产部署正在快速扩展。Techseria 创始人兼首席顾问 Niraj Bhatt分享了其实际应用的变化:

我们一直在生产环境中使用 Mistral OCR 处理销售和采购发票,实现 ERP 系统的零人工数据录入。现在 v3 在表单和手写内容上准确率提升了 74%,终于让我们能够将覆盖范围扩展到送货单、水电账单以及过去只能靠人工处理的遗留档案。

 

在定价方面,Mistral OCR 3 的标准费率为每 1000 页 2 美元;若使用 Batch API,成本可降至每 1000 页 1 美元,使其成为许多企业级 OCR 系统的高性价比替代方案。开发者可通过 API 直接集成模型(标识符为 mistral-ocr-2512),非技术用户则可通过拖放式的 Document AI Playground 界面轻松使用。

 

对于具有严格数据治理要求的组织,Mistral 提供了私有化的部署选项,确保 OCR 工作负载完全运行在客户可控的基础设施内。

 

如今,Mistral OCR 3 已经可以使用了,并完全向后兼容 OCR 2。

 

原文链接:

Mistral Releases OCR 3 With Improved Accuracy on Handwritten and Structured Documents

项目最开始的目的是为了在私有环境给非开发人员使用,提高工作效率。按最开始官方版本的UI界面复刻的,打造更适合企业内部使用的版本。

[bsgit user="lpdswing"]mineru-web[/bsgit]

项目简介

MinerU Web 是一个现代化的文档智能处理平台,基于先进的 AI 技术,提供文档解析、信息提取和智能分析功能。本项目采用前后端分离架构,结合容器化技术,为用户提供高效、可靠的文档处理解决方案。

界面展示

Mineru-web,为mineru打造的ui界面1
Mineru-web,为mineru打造的ui界面2
Mineru-web,为mineru打造的ui界面3

前言

前阵子看到paddle发布SOTA的OCR模型,预览效果很nb,但看很少人去尝试使用。刚好公司有一些书籍类型的pdf(含公式,图片,表格等),内容双栏显示。使用场景够复杂了吧,也是日常会遇到的情况。于是就开始折腾部署PaddleOCR-VL模型。

配置

  • RTX6000(46G显存)
  • Windows11(配置wsl,Ubuntu-22.04)
  • python==3.12
  • 确保wsl内的CUDA 版本必须大于或等于 12.6(nvidia-smi查看)

开始操作

所有流程都在wsl中操作,包括python虚拟环境创建包安装等。我使用非Docker的方式安装
1.创建虚拟环境
conda create -n paddleocr python==3.12
2.安装paddle包

# 以下命令安装 CUDA 12.6 版本的 PaddlePaddle,对于其他 CUDA 版本以及 CPU 版本,请参考 https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/develop/install/pip/linux-pip.html
python -m pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/

连续使用以下命令即可

python -m pip install -U "paddleocr[doc-parser]"
python -m pip install https://paddle-whl.bj.bcebos.com/nightly/cu126/safetensors/safetensors-0.6.2.dev0-cp38-abi3-linux_x86_64.whl

3.python代码(单个pdf文档)

from pathlib import Path
from paddleocr import PaddleOCRVL

input_file = "./your_pdf_file.pdf"
output_path = Path("./output")

pipeline = PaddleOCRVL()
output = pipeline.predict(input=input_file)

markdown_list = []
markdown_images = []

for res in output:
    md_info = res.markdown
    markdown_list.append(md_info)
    markdown_images.append(md_info.get("markdown_images", {}))

markdown_texts = pipeline.concatenate_markdown_pages(markdown_list)

mkd_file_path = output_path / f"{Path(input_file).stem}.md"
mkd_file_path.parent.mkdir(parents=True, exist_ok=True)

with open(mkd_file_path, "w", encoding="utf-8") as f:
    f.write(markdown_texts)

for item in markdown_images:
    if item:
        for path, image in item.items():
            file_path = output_path / path
            file_path.parent.mkdir(parents=True, exist_ok=True)
            image.save(file_path)

4.完成到这部就可以运行了,第一次使用会下载模型比较慢。可能之前安装依赖中断过几次的原因,运行代码报错缺失系统依赖,错误日志丢ai解决即可。
我使用的文档是书中截取的三页内容,并非全书。消耗显存5.9G左右

效果

效果图
可以看到即使两栏内容,paddleocr也能很好的识别连接,公式使用latex,图表这里不知道为什么没识别成表格(官方演示效果)但还是完整保留下来了。有部分公式格式异常,导致公式没有正常渲染。后面写了脚本把二十多个pdf都进行ocr,占用显存44.5G。

结论

目前看效果已经非常好了,个人还没有做多模态检索,所以图片数据不是很重要,但确实已经很好的保留书籍的完整结构。这种文档结构识别再进行ocr的架构(类似于工作流)应该是未来OCR的方向了。

参考连接:使用教程 - PaddleOCR 文档