十大PDF解析工具总结
PDF解析对于包括文档分类、信息提取和检索在内的多种自然语言处理任务至关重要,尤其是RAG的背景下。尽管存在各种PDF解析工具,但它们在不同文档类型中的有效性仍缺乏充分研究,尤其是超出学术文档范畴。通过使用DocLayNet数据集, 比较10款流行的PDF解析工具在6种文档类别中的表现 ,以填补这一空白。这些工具包括PyPDF、pdfminer.six、PyMuPDF、pdfplumber、pypdflum2、Unstructured、Tabula、Camelot以及基于深度学习的工具Nougat和Table Transformer(TATR)。
对于基于深度学习的相关技术方法,笔者在前期介绍了完整的技术链路,可以参考《 文档智能专栏(点击跳转) 》
对于 对pdf解析质量要求不高并且要求速度比较快的场景,基于规则引擎的相关pdf parser工具可以依旧满足相关业务场景 ,那么该如何选择pdf解析工具呢?
pdf解析的挑战 :
- 复杂性:PDF解析面临多个挑战,包括单词识别、词序保持、段落完整性以及表格提取等。这些挑战要求解析工具能够准确地识别和处理文档中的各种元素。
- 技术需求:PDF解析方法可以分为基于规则的方法和基于深度学习的方法。基于规则的方法通常在计算效率和部署速度上具有优势,而基于学习的方法在处理复杂文档时表现出色。
本文通过比较10种流行的PDF解析工具在6种不同文档类别上的表现,提供对工具性能的全面评估。供参考。
评估方法
常见公开评测数据集
评测数据集
DocLayNet 是一个包含约80,000个文档页面的大型数据集,文档被标注为11种不同的元素(如脚注、公式、列表项、页脚、页眉、图片、节头、表格、文本和标题)。这些文档分为六个不同的类别:财务报告、手册、科学文章、法律法规、专利和政府招标。
类别分布情况
文档主要用英语标注(95%),少量用德语(2.5%)、法语(1%)和日语(1%)。为了确保标注的高质量和可靠性,大约7,059个文档进行了双重标注,1,591个文档进行了三重标注。
评估指标
并使用多种评估指标进行比较,包括F1分数、BLEU分数和局部对齐分数。
在文档中,评估策略特别关注于文本提取的质量,尤其是当涉及到复杂的文档结构和内容时。以下是如何结合具体的公式和评估指标来详细讲解评估策略:
文本提取的评估策略
1.Levenshtein 相似性
2.F1 分数
3.BLEU 分数
4.局部对齐分数
局部对齐分数用于评估文本提取的整体质量,特别是在处理复杂布局和段落结构时。局部对齐通过寻找两个字符串中最相似的子串来实现,使用匹配得分、不匹配和间隙惩罚来计算相似性。
表格检测评价指标
使用交并比(IoU)来比较解析器提取的表格与GT表格的相似性。如果解析器不提供边界框信息,则使用Jaccard系数计算检测的精确度和召回率。
评测工具
工具名称 | 功能 | 技术 | 输出格式 | 特点 |
---|---|---|---|---|
PyPDF | ||||
提取文本、图像和元数据 | ||||
基于规则 (RB) | ||||
TXT | ||||
成熟的纯 Python 库,处理多种 PDF 操作 | ||||
pdfminer.six | ||||
提取文本、图像、目录、字体大小 | ||||
基于规则 | ||||
TXT、HTML、hOCR、JPG | ||||
多功能,支持 CJK 语言和垂直书写 | ||||
PDFPlumber | ||||
提取文本和表格 | ||||
基于规则 (基于 pdfminer) | ||||
TXT、HTML、hOCR、JPG | ||||
提供可视化调试工具,提取过程便捷 | ||||
PyMuPDF | ||||
提取文本、表格和图像 | ||||
基于规则 (MuPDF),可选 OCR | ||||
TXT、HTML、SVG、JSON | ||||
Python 绑定,处理复杂文档布局 | ||||
pypdfium2 | ||||
提取文本 | ||||
基于规则 | ||||
TXT | ||||
轻量级库,专注文本提取 | ||||
Unstructured | ||||
预处理和摄取图像及文本文档 | ||||
基于规则,支持 OCR | ||||
TXT | ||||
支持元素级文本和表格提取 | ||||
Tabula | ||||
提取表格 | ||||
基于规则 | ||||
DataFrame、CSV、JSON | ||||
Python 包装器,使用 tabula-java | ||||
Camelot | ||||
提取表格 | ||||
基于规则 | ||||
DataFrame、CSV、JSON、HTML | ||||
灵活配置,支持流模式和格子模式 | ||||
Nougat | ||||
提取文本 | ||||
基于 Transformer | ||||
Markdown | ||||
深度学习模型,专为学术文档训练 | ||||
Table Transformer (TATR) | ||||
检测表格 | ||||
基于 Transformer | ||||
图像 | ||||
对象检测模型,训练于 PubTables-1M 等 | ||||
评测结论
6中文档类别中对PDF解析库进行了全面比较
- 文本提取结论 在财务、招标、法律法规和手册类别中,大多数工具表现较好,PyMuPDF和pypdfium在这些类别中表现尤为突出。在科学和专利类别中,所有工具的表现均有所下降。PyMuPDF和pypdfium在专利类别中表现相对较好,但科学类别仍然是一个挑战。Nougat作为一个基于视觉变换器的模型,在科学文档的文本提取中表现出色。Nougat在科学文档中表现优于所有基于规则的工具。
- 表格检测结论 评估了四种基于规则的PDF表格提取工具(Camelot、pdfplumber、PyMuPDF、Tabula)和一个基于Transformer的模型(TATR)在表格检测任务中的表现。规则工具在特定文档类型中表现良好,但在其他类别中表现不佳。Camelot在政府招标类别中表现最佳,Tabula在手册、科学和专利类别中表现较好。TATR在所有类别中表现出较高的召回率和一致性。在科学、财务和招标类别中,TATR的召回率较高,显示出其在处理复杂表格结构时的优势。
总结
其实,全文看下来,这个评测的粒度还是比较粗的,但是其中的对于基于规则的pdf parser工具结论还是值得看一看的。在具体的业务场景中,选择合适的解析工具需要考虑文档类型和具体任务的需求。
参考文献:A Comparative Study of PDF Parsing Tools Across Diverse Document Categories,https://arxiv.org/pdf/2410.09871v2
关于我:余俊晖,主要研究方向为自然语言处理、大语言模型、文档智能。曾获CCF、Kaggle、ICPR、CCL、CAIL等国内外近二十项AI算法竞赛/评测冠亚季军。发表SCI、顶会等文章多篇,专利数项。