type
status
date
slug
summary
tags
category
icon
password
RAG 非常依赖片段质量,从Raw Data 到向量的链路还没有见到一个在算法与工程都比较好的想法
记录一下使用过的 PDF 解析库
解析工具 | ragflow | gptpdf | omniparse | QAnything | MinerU | OCRmyPDF(未测试) |
地址 | ||||||
简介 | OCR(文字识别) 使用的 paddle OCR。
Layout(版面分析)和
TSR(表格结构识别 )是自己训练的模型。
模型文件见:‣ | 1. 通过传统 pdf 解析包PyMuPDF,对 pdf 的每一页提取图像/图形非文本区域(包括标准图片、表格、矢量图形等),并对非文本区域用红框标出,最后将每一页标记好的页面存为一张图片。
2.将标记好的每页图片请求GPT-4o,要求其输出为 Markdown 格式,要求图片保留,其他文字变为文本
3. 尝试过本地部署开源多模态大模型(MiniCPM-Llama3-V-2_5 ),大多数情况解析较好,但是细节上存在问题。对扫描件容易幻觉。 | 工程和 UI 以及部署比较友好,开箱即用,GPU显存占用为5G,开发者正在适配OCR中文能力 | 两套处理流程:
1.标准处理
使用PyMuPDF模块(fitz),加载 PDF文件。
将加载的PDF文件中的每一页,转成图片。
通过PaddleOCR将图片识别成文本,输出到一个文本文件。
使用unstructured库的partition_text处理该文本文件。
2.强力模型(‣)
利用PDF 解析相关模型,只能处理标准PDF,不能对扫描件进行解析,但是对标准格式pdf解析效果较好。
但是后面会添加进去,详见: | 使用的 Tesseract OCR 引擎,可以识别多国语言。
单纯的PDF OCR工具, | |
优点 | 通用 | 综合解析出来的质量较高,可以达到SOTA | 完全独立出来的文件解析功能,接口完整,支持单独 部署 | 对标准PDF 处理较好,处理好的数据经过markdown 转换成json,会保留text 信息,便于清洗 | 中间结果丰富,解析效果不错 | ㅤ |
缺点 | 按照固定的chunk长度进行切段,不好清洗并且每个chunk信息不明确 | 十分依赖多模态大模型的能力,处理时间较长 | OCR 对中文不友好 | ㅤ | 显存占用10G,处理时间较长 | ㅤ |
目前在用 MinerU,中间结果丰富,解析质量比较高,问题是解析太慢了,占显存也比较多,模型部署多线程解析是个难题
- 作者:SimonSun
- 链接:https://simons-blog-eight.vercel.app//article/rag-2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。