在上一篇文章中,成功搭建起一套纯本地数据处理服务。该服务以 API 形式呈现,内部各项任务均可便捷调用。
昨天,我们分享了方案一,将文本、图像、表格分开处理;而今天带来的方案二则另辟蹊径 —— 采用 OCR 技术对所有格式的数据进行统一提取。
这一方法有效解决了文本与图案结果的匹配难题,大幅提升数据处理效率。
在深入讲解操作步骤前,先为大家展示实际提取效果。精心准备了 4 种企业内部常见的数据类型进行测试:
#A 不规则合并的表格
表格结构复杂,合并单元格情况频繁;
#B 带干扰的手写体
存在背景噪点等干扰因素的手写文字;
#C 规则表格的手写体
规整表格内的手写内容;
#D 文本 + 表格 + 图像的 PDF
多种元素混合的综合型文件 。
从实际提取结果来看,整体表现十分出色。其背后的 “功臣” 是 PaddleOCR,这项技术具备诸多强大特性:
智能版面分析
可对图片、PDF 等格式文档进行深度解析,精准划分文字、标题、表格、图片、公式等区域;
表格处理专家
支持通用中英文表格检测,能对表格区域进行结构化识别,并将结果输出为 Excel 文件;
多模态信息抽取
支持基于多模态的关键信息抽取(KIE)任务,涵盖语义实体识别(SER)和关系抽取(RE);
版面复原功能
可将处理后的内容恢复为与原始图像布局一致的 Word 或 PDF 文件;
灵活部署方式
支持自定义训练,提供 Python whl 包调用等多种推理部署方式,操作简单便捷;
广泛语言适配
在 OCR 功能上,适配中英等 80 多种语言,满足多样化需求。
一、环境搭建及准备
本次实践对环境有一定要求,具体如下:
还未搭建 AI 环境的小伙伴,强烈推荐参考【点击】手把手安装 AI 必备环境教程,完成基础环境搭建。环境搭建完成后,按以下步骤操作:
创建 conda 环境
打开终端,执行命令conda create --name ocr python=3.10,指定环境名称为 “ocr”,Python 版本为 3.10 。
激活 conda 环境
输入conda activate ocr,切换至新建的环境。
进入代码路径
使用cd命令进入存放代码的目录(注意:路径中不能包含中文,否则可能引发错误),例如cd /ocr/day2。
安装依赖
本次实践所需环境已打包,执行conda env create -f environment.yml,系统将自动安装所有依赖。由于是 GPU 版本,建议确保本地环境与示例环境一致。这套系统对资源要求不高,即便显卡性能一般也能正常运行。
二、下载实践代码及素材
为大家准备了三大实用资源:
#A 素材与结果包
包含所有实践素材及对应处理结果;
#B 安装指引
涵盖 GPU 和 CPU 环境的详细安装指南;
#C 代码案例
四个由浅入深的代码示例,助你逐步掌握核心技术 。
运行代码时,程序将实现三大实用功能:
智能跳过重复文件
已处理过的文件不会重复处理,节省资源;
规范输出路径
处理后的文件将输出至指定文件夹,若文件夹不存在则自动新建;
任务统计
处理完成后,自动统计任务耗时及处理概览。
实际运行效果如下:
稍后,我们将深入剖析这些功能的实现原理。
三、运行代码与核心代码解析
现在,环境与代码均已准备就绪,执行python step4.py即可运行程序。运行过程中,为大家梳理了几处核心代码:
指定 OCR 模型
选择中文模型,从日志可知使用的是最新版本。
重复文件处理逻辑
通过检查文本文件是否存在,判断文件是否已处理,避免重复操作。
字符串拼接
将 OCR 识别的文本按坐标拼接,消除不连贯和空格,形成有效内容。
耗时计算
统计文件处理情况和总耗时,便于调试与结果分析。
本次实践内容干货满满,掌握这些技能,相信大家在数据处理工作中能更得心应手。赶紧动手实践,完成学习打卡吧!
领取专属 10元无门槛券
私享最新 技术干货