返回学习地图
llmPhase C · 第 21

3.4 多模态与格式处理

PDF/Word/Excel/图片/音频/视频:非结构化数据如何喂给AI

5 个章节·按类别展开/折叠
知识

为什么需要多模态处理?

真实世界的数据不只有文本。PDF合同、Excel报表、PPT演示、产品图片、客服录音、监控视频——企业80%的数据是非结构化的。AI如果不能处理这些数据,就无法真正融入工作流。

多模态AI的目标:让模型能同时理解文本、图像、音频、视频,并在它们之间建立关联。例如:“这张图表显示Q3销售额下降,请分析原因并给出建议”——模型需要同时理解图表(图像)和文字指令(文本)。

常见格式与处理方法:

格式挑战处理方法工具
PDF复杂排版、表格、图片混合OCR + 版面分析 + 结构化提取PyMuPDF, pdfplumber, Marker
Word样式复杂、修订记录、批注提取纯文本 + 保留标题层级python-docx, mammoth
Excel多sheet、公式、图表转CSV/JSON + 保留公式pandas, openpyxl
图片分辨率、格式多样、内容复杂OCR + 视觉理解模型PaddleOCR, GPT-4V
音频方言、噪音、多说话人语音识别(ASR) + 说话人分离Whisper, FunASR
视频时序信息、关键帧、字幕抽帧 + 关键帧理解 + ASRffmpeg, Video-LLaMA
代码

代码实战:PDF解析与结构化

代码

代码实战:图片理解与OCR

实例

例子:构建文档处理Pipeline

实例

场景:构建一个企业知识库,支持PDF/Word/Excel/图片上传。

Pipeline设计:

上传文件 → 格式检测 → 解析 → 结构化 → Embedding → 存入向量库

1. 格式检测:根据文件扩展名和MIME类型判断
   .pdf → PDF解析器
   .docx → Word解析器
   .xlsx → Excel解析器
   .jpg/.png → 图片解析器

2. 解析:
   PDF: Marker → Markdown
   Word: python-docx → 纯文本 + 标题层级
   Excel: pandas → CSV/JSON
   图片: PaddleOCR → 文字 + GPT-4V → 图片描述

3. 结构化:
   提取标题、段落、表格、图片说明
   为每段生成摘要

4. Embedding:
   文本用text-embedding-3-small
   图片描述也用文本Embedding

5. 存入向量库:
   Chroma / Milvus / Pinecone

6. 检索增强:
   用户提问 → 检索相关文档片段 → LLM回答

性能指标:

指标目标优化方法
解析准确率>95%多解析器对比,选最优结果
处理速度<1秒/页并行处理、缓存、预处理
存储成本Embedding压缩、去重
检索准确率>90%混合检索、重排序
练习

练习:多模态处理

练习

Q1:为什么PDF是最难处理的格式之一?解析扫描版PDF和文本版PDF有什么区别?

Q2:OCR和视觉理解模型(如GPT-4V)有什么区别?什么时候用OCR,什么时候用视觉理解?

Q3:处理Excel文件时,如何保留公式和多个sheet的关系?

Q4:为什么需要把非结构化数据转换成结构化数据(如Markdown、JSON)再存入向量库?

Q5:设计一个处理医疗报告(PDF+图片)的Pipeline。需要考虑哪些特殊因素?

查看答案

A1:PDF是固定版式格式,不像Word有结构化标记。解析扫描版PDF需要OCR(先识别文字),解析文本版PDF直接提取文字。扫描版更慢、更贵、准确率更低。

A2:OCR只提取文字,快、便宜、精确。视觉理解模型能理解图片内容(如识别图表趋势、场景描述),慢、贵、更全面。发票、合同用OCR;图表分析、场景理解用视觉模型。

A3:用openpyxl读取Excel时,可以保存公式字符串(非计算结果),保留sheet名称和关系。需要计算时,可用pandas读取计算后的值,或xlwings调用Excel引擎计算。

A4:非结构化数据(如PDF混合格式)无法直接Embedding。转换成结构化数据后,可以:1.统一格式便于检索;2.保留标题层级便于上下文;3.提取关键信息(表格、公式)便于理解;4.去重和分块。

A5:特殊因素:1.隐私合规(HIPAA等,数据脱敏);2.医学术语识别(专业OCR模型);3.手写文字(医生手写处方);4.图片标注(X光、CT需要专业模型分析);5.结构化提取(提取诊断、用药、剂量等关键字段);6.审计追踪(谁访问了什么数据)。