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

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


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


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


核心做法

  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 张图。

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

识别后:

c 复制代码
一、最常用的快捷键:
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 的开源项目:

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

Unstructured-IO:

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

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

1. 确认目标

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

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

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

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

    • 具体实现:

python 复制代码
# 文件处理配置参数
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技术提取文本
    • 具体实现:
python 复制代码
文档格式分类:

文本(如 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格式存储,包含完整元数据
    • 具体实现:
python 复制代码
# 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. 如何准备训练数据集?
    • 问题:如何将处理后的数据转换为训练集?
    • 解决手段:自动分割训练/测试/验证集
    • 具体实现:
python 复制代码
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)训练。


相关推荐
Nicolecocol2 小时前
解决word桌面图标空白
word
杜大哥16 小时前
wps版excel中如何快速生成倒序序号?
excel·wps
_Feliz16 小时前
vue2实现excel文件预览
vue.js·elementui·excel
Ma_si21 小时前
在 Python 中合并多个 Word 文档
开发语言·python·word
中小企业实战军师刘孙亮1 天前
如何制作一份好的年终总结PPT?-中小企实战运营和营销工作室博客
职场和发展·新媒体运营·powerpoint·创业创新·需求分析·学习方法·业界资讯
剑盾云安全专家1 天前
AI生成PPT,效率与创意的双重升级
人工智能·科技·aigc·powerpoint·软件
码农丁丁1 天前
[python3]Excel解析库-xlutils
开发语言·python·excel
fillwang1 天前
Python实现Excel行列转换
开发语言·python·excel
yanweijie03171 天前
Excel-vlookup 函数使用
excel
Garnet crow7632 天前
卸载wps后word图标没有变成白纸恢复
经验分享·word·wps