首页 > 其他分享 >大模型RAG应用开发之PDF解析工具对比

大模型RAG应用开发之PDF解析工具对比

时间:2024-08-27 22:26:01浏览次数:8  
标签:RAG github 表格 https PDF 解析 com

一 汇总

类型 名称 地址 OCR 提取表格内容 保留文本顺序 提取图片 保存成md格式 其他特性
传统PDF解析库 pymupdf https://github.com/pymupdf/PyMuPDF ✔️ ✔️ ✔️ ● 表格提取
● 自定义字体
传统PDF解析库 pdfminer https://github.com/pdfminer/pdfminer.six ✔️ ● 版面分析
传统PDF解析库 pdfplumber https://github.com/jsvine/pdfplumber ✔️ ● 表格提取,但存在丢失列的问题
传统PDF解析库 pypdf2 https://github.com/py-pdf/pypdf ✔️ ● pdf合并与拆分
● 添加水印
基于模型的PDF解析一体库 llama-parse https://github.com/run-llama/llama_parse ✔️ ✔️ ✔️ ✔️ ✔️ ● 付费API每天有免费额度
基于模型的PDF解析一体库 open-parse https://github.com/Filimoa/open-parse ✔️ ✔️ ✔️ ✔️ ● 文本支持保存markdown和html格式
●内置表格模型,可自由选择
●表格带markdown格式
基于模型的PDF解析一体库 deepdoc https://github.com/infiniflow/ragflow/tree/main/deepdoc ✔️ ✔️ ✔️ ✔️ ● 支持版面分析
●表格带html格式
基于模型的PDF解析一体库 MinerU https://github.com/opendatalab/MinerU/tree/master ✔️ ✔️ ✔️ ✔️ ✔️ ● 文本带markdown格式
● 解析保留中间过程,可用于二次调优
● 表格提取非常慢,目前效果一般

二 总结

  • 非扫描件无OCR要求直接使用pymupdf(fitz)即可,能正确保留双列布局的文本顺序,同时能提取表格和图片,而且表格是以List的格式保留。
  • 其余几个传统的PDF解析库倾向于对pdf进行编辑,比如添加水印,增加或者删除页面等。
  • llama-parse 中文文档效果不好,而且还是通过API使用,但是每天有固定的免费额度,可以用于处理扫描件。
  • deepdocMinerU是近期开源项目中比较强大的RAG解析工具。deepdoc优势点在于表格效果较好,亲测无边框的表格有大多数效果仍可圈可点,并且保留为html格式,因此允许合并单元格;MinerU优势在于识别的文本带有markdown格式,因此用于RAG切分文档中可以省去不少功夫。

标签:RAG,github,表格,https,PDF,解析,com
From: https://www.cnblogs.com/deeplearningmachine/p/18383664

相关文章

  • 字符串函数 (总篇章,全面解析)
    文章目录1.strlen函数函数的使用:strlen的模拟实现:分法1计数法:方法2递归法:分法3指针法:2.strcpy函数strcpy的使用:strcpy的模拟实现:3.strcat函数strcat函数的使用:strcat函数的模拟现实:4.strcmp函数strcmp函数的使用:strcmp函数的模拟实现:5.strncpy函数6.strncat函数7.s......
  • Android开发 - IInterface 接口 Binder 机制跨进程通信 (IPC)解析
    什么是IInterfaceIInterface一个接口,用于跨进程通信(IPC)。有时需要让一个应用程序与另一个应用程序或服务进行通信。这些应用程序可能运行在不同的进程中,使用Binder机制来实现这种通信,而IInterface就是Binder机制的一部分简单来说,IInterface是一个基础接口,它为跨......
  • 5 大场景上手通义灵码企业知识库 RAG
    大家好,我是通义灵码,你的智能编程助手!最近我又升级啦,智能问答功能全面升级至Qwen2,新版本在各个方面的性能和准确性都得到了显著提升。此外,行间代码补全效果也全面优化,多种编程语言生成性能及准确性大幅提升,如前端、Java、Go、Python、C++ 等。此外,灵码新增代码提交信息(CommitMes......
  • 5 大场景上手通义灵码企业知识库 RAG
    大家好,我是通义灵码,你的智能编程助手!最近我又升级啦,智能问答功能全面升级至Qwen2,新版本在各个方面的性能和准确性都得到了显著提升。此外,行间代码补全效果也全面优化,多种编程语言生成性能及准确性大幅提升,如前端、Java、Go、Python、C++ 等。此外,灵码新增代码提交信息(CommitMes......
  • 深度剖析:医疗行业财务报表的核心要素与解析策略
    在当今医疗行业中,财务报表分析扮演着至关重要的角色。医疗机构需要通过对财务数据的准确分析来做出关键决策,管理资源,改善效率,并确保最终提供高质量的医疗服务。本文将深入探讨医疗行业中财务报表分析的重要性、关键指标和分析方法,帮助大家更好地理解和了解财务报表在医疗行业中......
  • Android开发 - Application 基础类全局的应用级状态管理解析
    Application是什么Application是一个基础类,用于全局的应用级状态管理。它在应用程序启动时被创建,并在应用程序关闭时销毁。Application对象的生命周期与应用程序的生命周期一致,因此它非常适合用来保存全局的应用状态信息或初始化全局资源Application的主要作用全局状态管......
  • 声明式开发(N个中间件硬解析)
    我刚入行的时候,就看到第一篇文章概述里那种描述,就觉得编程好难啊,要学那么多东西.光是技术的名字都那么一长串,b站上看那些大佬跟相声说贯口似的说着那些技术名字.要理解各种中间件,第一步,我们得破除一个恐惧,就是技术那么多,怎么学得完的恐惧.怎么破.我的角度是一个词: ......
  • uniapp 在线预览pdf 或者 文件
    页面代码:<template><view><web-view:src="fileUrl"></web-view></view></template><script>exportdefault{data(){return{fileUrl:"&quo......
  • 深度解析:视频监控系统部署前的技术选型与需求分析
    视频监控系统在日常生活与企业运营中扮演着至关重要的角色,广泛应用于办公室、工地、写字楼、库房及工厂等场所。为确保系统部署的精准与高效,以下是在选型评估前必须掌握的几项关键信息:一、摄像头布局与数量数量规划:基于监控区域的具体需求,结合建筑物图纸或现场勘查,初步确定摄像......
  • Android开发 - synchronized 关键字控制多个线程对共享资源的访问解析
    什么是synchronizedsynchronized一个关键字,用于实现线程同步。其主要作用是控制多个线程对共享资源的访问,确保被synchronized修饰的代码块或方法同一时间只有一个线程可以执行,从而避免数据不一致的问题为什么需要synchronized在多线程编程中,多个线程可能同时访问和修改......