当前位置: 首页 > article >正文

大模型数据采集和预处理:把所有数据格式,word、excel、ppt、jpg、pdf、表格等转为数据

大模型数据采集和预处理:把所有数据格式,word、excel、ppt、jpg、pdf、表格等转为数据

    • 文本/图片/表格,分别提取处理
    • 工具选择
    • 不同格式文件,使用不同工具处理
      • 1. 确认目标
      • 2. 分析过程(目标-手段分析法)
      • 3. 实现步骤
      • 4. 代码封装
      • 效果展示
      • 金手指
    • 训练 OCR,提升识别准确率

 


数据采集和预处理:文档格式统一化、图表数据结构化、文本化处理。

 


文本/图片/表格,分别提取处理

在这里插入图片描述
核心做法

  1. 将 Word / PPT / PDF 等不同类型的文档,统一转成 HTML 或者 Markdown 格式。
  2. 基于统一后的格式,从文档中分离出 文本内容图片(含图表截图)表格
  3. 对拆分出来的图片和表格做进一步的 OCR / 表格解析等处理,将其转换为文本(或结构化数据),最后与原有的文本合并或建立关联。

优点

  1. 保留文档内容结构:因为先转为 HTML 或 Markdown,可以较好地保留文档的层级结构、段落、样式等。
  2. 灵活处理:可以针对文字、图片、表格分别采取适合的处理方式。例如:
    • 文本直接拿来做 NLP 预处理;
    • 图片和图表用专门的 OCR 或结构化表格提取工具。
  3. 精细度较高:文字和图表一分为二,可以更精细地进行后续处理,便于标注、检索或微调(Finetune / RAG)。

缺点

  1. 开发成本相对较高:要编写或调用各种解析、转换脚本(doc -> html,pdf -> html 等),还要对拆出来的图片、表格做分别提取。
  2. 依赖工具链:对于 PPT 等复杂文档,直接转 HTML/Markdown 可能并非一帆风顺,需依赖商业或开源工具,可能会遇到兼容性问题。
  3. 图片+表格的后处理:对图表进行 OCR 或表格解析,需要依赖额外的处理模块,处理效果也取决于 OCR / 表格解析工具的准确率。

适用场景

  • 需要保留文档原有的层级结构、目录、章节等信息,并对文本和图表进行精细化处理的场景。
  • 数据源多样(Word、PPT、PDF、扫描件),且对最终提取精度要求较高。
  • 团队可以投入一些时间精力,编写、整合比较完整的抽取工具链。

 


工具选择

链接:https://lightpdf.cn/api-pricing

如果数量不大,一个月会员 30 块就够了。

如果很大,就需要 API,89 块可以识别 500 张图。

识别效果,还可以,有格式保留:

在这里插入图片描述
识别后:

一、最常用的快捷键:
F5刷新	DELETE射除	TAB改变焦点
CTRL.C复制	CTRL+X剪切	CTRL+V粘贴
CTRL"全选	CTRL+Z撤精	CTRL+S 碗
ALT+F4关闭	CTRL+Y恢复	ALT+TAB 切换
CTRL+F5强制刷新	CTRL+W关闭	CTRL+F杳找
SHIFT+DELETE永久剧除	CTRL+ALT+DEL任务管理	SHIFT+TAB反向切换
CTRL♦空格中英文*!入切换	CTRL+Shrtt输入法切换	CTRL+ESC开始菜单
CTRL.ALT.ZQQ快速提取 消息	CTRL+ALT+AQQ破图工具	CTRL+ENTERQQ 发消息
【窗口】+D显示桌面	【限口】+R打开“运行	r窗口】+L解暮候定
[«11] *E打开“我的电脑”	【窗口】+F搜索文件或文件 夹	[«□] “AB项H切换
cmd…(MD命令提示符

也可以自己部署 Github 的开源项目:

  • https://github.com/Unstructured-IO/unstructured

我发现这个 Unstructured 开源项目,准确率比 付费 OCR 还要高。

Unstructured-IO:

  1. 更像是一个文档处理的全功能工具箱:
    • 可以处理多种格式文档(PDF、Word、Excel、HTML等)
    • 内部集成了多种处理能力(包括但不限于OCR)
    • 提供统一的API接口
  2. 主要优势是:
    • 部署简单(Docker一键部署)
    • API调用方便
    • 处理格式全面
  3. 适用场景:
    • 企业内部搭建统一的文档处理服务
    • 需要处理多种格式混合的场景
    • 对部署和维护要求不高的场景

 


不同格式文件,使用不同工具处理

1. 确认目标

主要目标:如何将不同格式的企业文档(Word/Excel/PPT等)高效转换为适用于RAG或模型微调的结构化数据集?

2. 分析过程(目标-手段分析法)

  1. 如何处理多种格式文档?
    • 问题:如何统一处理不同格式的文件?

    • 解决手段:使用智能分类系统,自动识别文件类型并选择相应处理流程

    • 具体实现:

# 文件处理配置参数
parsing_output = my_lib.add_files(
    temp_dir,                   # 临时目录路径,存放待处理的文件
    chunk_size=400,             # 文本块的目标大小(tokens),用于分割长文本
    max_chunk_size=600,         # 文本块的最大大小限制,防止块过大
    smart_chunking=1,           # 启用智能分块,会在自然断句处分割文本
    get_tables=True,            # 是否提取文档中的表格
    get_images=True             # 是否提取文档中的图片
)

对提取的内容(包括文本、表格、图像)及其元数据进行整合,生成一个结构化的 JSON 格式。这个 JSON 文件包含了诸如文本内容、文档源、创建日期、修改日期等信息。

该 JSON 格式可以存储丰富的文档信息,便于后续的检索和生成任务。
  1. 如何处理文档中的不同类型内容?
    • 问题:如何提取和处理文本、表格、图片等不同内容?
    • 解决手段:
      • 文本:智能分块(400-600 tokens)
      • 表格:转换为CSV格式
      • 图片:使用OCR技术提取文本
    • 具体实现:
文档格式分类:

文本(如 Word):直接提取文本内容。
表格(如 Excel):提取表格数据并存储为 CSV 格式。
图像(如 PPT):使用 OCR(光学字符识别)提取图像中的文本。

文档的处理方式根据内容类型分类,文本部分直接提取,表格部分转换为 CSV 格式,图像部分使用 OCR 技术提取文本。

对文本进行智能化分块,以便适应模型的输入限制。例如,将每个块限制为 400-600 个 tokens。


# 表格处理
extracted_tables = Query(lib).export_all_tables(output_fp=lib.output_path)
     
# OCR处理
lib.run_ocr_on_images(add_to_library=True, chunk_size=400, min_size=10)

OCR 用于从图片中提取文本。在处理图像时,会设置一些参数,例如:最小尺寸、实时进度显示等,以确保 OCR 过程的高效性和精度。
  1. 如何保证数据的结构化和关联性?
    • 问题:如何将不同来源的内容整合为统一格式?
    • 解决手段:使用JSON格式存储,包含完整元数据
    • 具体实现:
# JSON输出数据结构
{
    "block_ID": 0,                    // 文本块唯一ID  
    "doc_ID": 1,                      // 文档ID
    "content_type": "text",           // 内容类型
    "file_type": "docx",             // 文件类型
    "text_search": "实际文本内容...",  // 文本内容
    "external_files": "",            // 关联文件
    "header_text": "",               // 标题文本
    "modified_date": "",             // 修改日期
    "created_date": ""               // 创建日期
}
  1. 如何准备训练数据集?
    • 问题:如何将处理后的数据转换为训练集?
    • 解决手段:自动分割训练/测试/验证集
    • 具体实现:
ds = Datasets(
   library=lib,                   # 输入的文档库实例,包含所有处理后的文档数据
   testing_split=0.10,            # 测试集占比10%,用于评估模型性能
   validation_split=0.10,         # 验证集占比10%,用于模型调优,防止过拟合
   ds_id_mode="random_number"     # 使用随机数作为数据集样本ID的生成方式
)

3. 实现步骤

  1. 环境准备:

    • Python 3.10
    • conda环境
    • 必要依赖安装
  2. 数据处理流程:

    • 文档解压与预处理
    • 内容智能分类
    • 分类处理(文本/表格/图片)
    • JSON格式整合
    • 数据集生成
  3. 数据集创建:

    • 设置分割比例(80/10/10)
    • 设置token限制(100-500)
    • 生成最终数据集

4. 代码封装

效果展示

  • 输入:各种格式的企业文档(Word/Excel/PPT)
  • 过程:自动化处理流程,无需人工干预
  • 方法:智能分类 + 专项处理 + 数据整合
  • 结果:结构化的JSON格式数据集
  • 数字:
    • 文本块大小:400-600 tokens
    • 训练集分割:80/10/10
    • 最小token数:100
    • 最大token数:500

金手指

这个系统的金手指是"智能化处理机制":

  1. 智能分类:自动识别文档类型和内容类型
  2. 专门处理:针对不同类型内容使用最适合的处理方法
  3. 统一输出:所有处理结果都转换为统一的JSON格式

应用案例:

  1. 企业财报自动化处理
  2. 产品文档库建设
  3. 技术文档管理系统
  4. 企业知识库建设
  5. 多语言文档处理

这个框架可以帮助任何需要将非结构化文档转换为结构化数据的场景,特别适合企业级应用。

 


训练 OCR,提升识别准确率

如果是特殊的医疗表格、艺术字体、手写公式,基本上要自己 OCR 模型(YOLOX)训练。

 



http://www.kler.cn/a/467129.html

相关文章:

  • 如何使用脚手架工具开始,快速搭建一个 Express 项目的基础架构
  • Spring AOP原理详解-Spring官方原版
  • HTML5 SSE
  • GESP真题 | 2024年12月1级-编程题2《奇数和偶数》及答案(Python版)
  • QML自定义进度条和单选按钮的样式
  • Wend看源码-Java-fork/Join并行执行任务框架学习
  • 高清监控视频的管理与展示:从摄像头到平台的联接过程
  • 呼叫中心中间件实现IVR进入排队,判断排队超时播放提示音
  • Git快速入门(一)·Git软件的安装以及GitHubDesktop客户端的安装
  • 装饰器模式详解
  • clickhouse Cannot execute replicated DDL query, maximum retries exceeded报错解决
  • Android 14.0 系统限制上网系列之iptables用IOemNetd实现app上网黑名单的实现
  • 行为模式4.观察者模式------消息推送
  • LangChain+博查搜索API轻松实现实时信息搜索
  • 【每日学点鸿蒙知识】ASON工具、自定义tabbar、musl、Text异常截断等
  • 【C语言】可移植性陷阱与缺陷(五): 移位运算符
  • 初学stm32 --- 存储器类型
  • 文献阅读 250104-Overconfidence in climate overshoot
  • 文件上传漏洞利用与绕过姿势总结
  • 【大模型】ChatGPT 数据分析与处理使用详解
  • SQL 基础教程 - SQL SELECT 语句
  • 部署项目添加工程名的步骤
  • 哈希算法详解及案例应用
  • Jurgen提出的Highway Networks:LSTM时间维方法应用到深度维
  • Java:缓存:LinkedHashMap实现Lru
  • 【C++】开源:Armadillo数值计算库配置与使用