做 RAG(检索增强生成)的小伙伴肯定深有体会:模型再强,如果喂进去的 PDF 数据是一团乱麻,检索出来的结果就是灾难。尤其是面对动辄几千页的设备配置手册、MIB 清单、技术协议,普通的 PDF 提取脚本要么丢了表格,要么断了句子,要么没了上下文。
为了彻底解决“数据清洗”这第一公里,我开发并开源了 Universal Doc Parser。
🚩 为什么你需要它?
在处理复杂的 PDF/Word 文档时,它不只是简单的 extract_text,而是具备了**“结构化思维”**:
- 🔍 智能结构侦察: 它会自动通过算法判断文档是属于“目录树型”、“正则序列型”(如清单文档)还是“视觉排版型”。无需你手动指定,它会自动匹配最优解析引擎。
- 📊 表格结构化重构(完美版特性) : PDF 里的参数表、对照表最容易变成乱码。本工具能自动识别表格并转换为 Markdown 格式 嵌入正文,完美保留参数与缺省值的对应关系。
- 🧠 语义修复与断句合并: 自动修复排版导致的连字符(con-figuration)和伪换行,确保向量模型(Embedding)能够捕捉到完整的语义。
- 🔗 自动上下文注入: 它会在每一个分块头部注入全路径标题(如:
配置 > 接口 > 以太网 > 配置步骤),彻底解决 RAG 检索后“只知其然不知其所以然”的上下文缺失问题。 -
🛠️ 技术实现路径
- 引擎分发:基于
pypdf处理目录树,pdfplumber处理字号与表格,python-docx处理样式。 - 输出多样性:支持
Excel,JSON,Word,PDF四种格式导出,适配各种向量入库需求。 - 去厂商化设计:代码逻辑完全抽象,专注于文档本身的排版逻辑,隐私安全,通用性极强。
-
🚀 开源地址
既然是好工具,自然要和大家分享。代码已经在 GitHub 开源,欢迎点个 Star 支持一下!
👉 GitHub 地址:github.com/Li-Ser/Univ…
🌈 写在最后
目前这套工具已经在我自己的 RAG 项目中稳定跑了很久,处理效率大幅提升。如果你也在为 PDF 里的表格、乱码、标题层级头疼,不妨试试它。
欢迎在评论区交流你在 RAG 数据清洗时遇到的那些坑!