我们来围绕文档智能这个方向,一个是10种PDF解析工具+6种不同文档类别的测试分析,这个有好落地,能够给出一些具有参考意义的工具。
另一个是关于图表跟知识图谱的结合,ChartKG,其中对于知识图谱的设计、图表要素的抽取以及下游应用的设计,都很有想法,读下来都不错,会有收获。
供大家一起参考并思考。
一、10种PDF解析工具+6种不同文档类别的测试分析
再看看pdf文档的解析工具综述,也是目前大家谈的重点,《A Comparative Study of PDF Parsing Tools Across Diverse Document Categories》,https://arxiv.org/abs/2410.09871,这个工作评估和比较10种流行的PDF解析工具在6种不同文档类别上的表现,这些工具包括PyPDF、pdfminer.six、PyMuPDF、pdfplumber、pypdfium2、Unstructured、Tabula、Camelot以及基于深度学习的工具Nougat和Table Transformer(TATR)。研究使用了DocLayNet数据集,该数据集包含了超过80,000个手动标注的文档,涵盖了金融报告、手册、科学文章、法律和法规、专利和政府招标等类别。
可以看看一些有趣的结论:
1、对比的现有工具
工具包括PyPDF、pdfminer.six、PyMuPDF、pdfplumber、pypdfium2、Unstructured、Tabula、Camelot
以下是10个PDF解析工具的地址:
1)PyPDF: PyPDF是一个纯Python库,能够拆分、合并、裁剪和转换PDF文件的页面。它还可以从PDF中检索文本和元数据:https://github.com/py-pdf/pypdf
2) pdfminer.six: pdfminer.six是一个基于PDFMiner项目的增强版,用于从PDF文档中提取文本和结构信息:https://github.com/pdfminer/pdfminer.six
3) PyMuPDF: PyMuPDF提供Python绑定到MuPDF库,用于处理PDF和其他格式的文档:https://github.com/pymupdf/PyMuPDF
4)pdfplumber: pdfplumber是一个基于pdfminer的工具,可以提取PDF中的文本和表格:https://github.com/jsvine/pdfplumber
5)pypdfium2: pypdfium2是一个绑定到PDFium库的工具,能够提取文本和图像:https://github.com/pypdfium2-team/pypdfium2
6) Unstructured: Unstructured是一个Python库,用于从图像和文本文档中提取数据:https://github.com/Unstructured-IO/unstructured
7)Tabula: Tabula是一个工具,用于从PDF文件中提取表格数据:https://github.com/tabulapdf/tabula
8) Camelot: Camelot是一个Python库,专门用于从PDF文件中提取表格:https://github.com/camelot-dev/camelot
9)Nougat: Nougat是一个基于Transformer模型的工具,可以处理PDF文档并将它们转换为MultiMarkdown格式:https://github.com/facebookresearch/nougat
10)Table Transformer (TATR): TATR是一个基于Transformer的模型,专门用于表格检测:https://github.com/bobSmock/pubTables
2、相关数据集
从PDF中提取信息的常用数据集,详细说明了各种类型的基准真实元素(GTE),包括参考文献(R)、带有布局细节的全文(FT)和表格(T)。这些基准真实元素是通过使用XML或LaTeX文件自动生成的,或者通过人工干预手动生成的。
3、评估结论
以下是不同PDF解析工具的对比结论,可参考,
首先,文本提取能力方面,PyMuPDF和pypdfium在金融、法律、手册和招标类别的文档中表现较好,但在科学和专利类别的文档中所有工具都遇到了挑战。 对于科学文档,基于学习的Nougat工具在文本提取方面表现更优,尤其是在处理包含复杂数学公式的文档时。
其二,表格检测能力方面,TATR(Table Transformer)在金融、专利、法律和科学类别中表现出色,而在手册和招标类别中,PyMuPDF和Camelot表现更好。规则基础的解析工具在表格检测方面表现不佳,尤其是在面对复杂或非标准表格布局时。
其三,规则基础与学习基础方法方面,规则基础方法(如PyMuPDF和pdfplumber)在处理结构相对简单的文档时表现良好,但在处理科学和专利文档时,学习基础方法(如Nougat和TATR)由于其能够处理更复杂的布局和结构,表现更优。
其四,特定类别的挑战方面,科学文档中的数学公式和专利文档中的图像或图表对规则基础解析工具来说是一个挑战,这些工具通常无法准确提取这些元素。基于学习的方法能够更好地处理这些复杂的元素,但可能需要更多的计算资源和训练数据。
其五,在评估指标选择方面,可以使用F1分数、BLEU分数和局部对齐分数等多种评估指标来全面评估文本提取的质量,这些指标考虑了词序、单词识别、段落对齐和表格识别等多个因素。
最后,在工具的适用性方面,选择合适的工具需要考虑文档类型和特定任务的需求。例如,对于需要保持文档结构的任务,可能会优先选择BLEU分数高的工具,如PyMuPDF。对于需要全面信息捕获的任务,可能会选择召回率更高的工具。
二、知识图谱遇见Chart图表的有趣工作
读到一个有趣的工作,《ChartKG: A Knowledge-Graph-Based Representation for Chart Images》,https://arxiv.org/abs/2410.09761,介绍了一个名为ChartKG的知识图谱表示方法,用于建模图表图像中的实体和关系。
ChartKG通过定义四种类型的实体和三种类型的关系,有效地表示了可视化中的语义信息。为了实现这种表示,还开发了一个名为chart-to-KG转换的框架,该框架整合了ResNet、YOLOv5、OCR和基于规则的方法,将基于位图的可视化转换为知识图谱。
先看成品: 四种类型图表的知识图谱表示示例。(a) 条形图;(b) 折线图;© 饼图;(d) 散点图,如下
接着,来看几个有趣的点:
1、基于ChartKG的示例应用,能用来做什么
主要有两个:语义感知的图表检索(Semantic-aware Chart Retrieval)和图表问题回答(Chart Question Answering)。
1)语义感知的图表检索(Semantic-aware Chart Retrieval)
旨在提供一种图表检索方法,能够根据用户的偏好和需求,从大量的图表中检索出符合特定语义要求的图表。
具体实现上, 用户首先根据需要输入图表的类型、关键实体以及实体之间的关系。系统根据用户的输入,通过条件过滤来检索图表。具体步骤在于,用户以特定的句子格式指定图表类型、关键实体和实体间的关系。系统根据指定的图表类型过滤数据集,然后通过变量字典匹配用户输入的变量和变量名,进一步缩小目标图表的范围,最后,在满足上述条件的图表知识图中匹配编码关系,最终筛选出符合用户要求的图表。
2)图表问题回答(Chart Question Answering)
旨在通过ChartKG增强视觉问题回答(VQA)任务,使其能够更准确地回答关于图表的问题。
如图4. ChartKG驱动的图表检索的示例结果。(a) 展示了数据变量检索的结果,其中突出显示了满足查询要求的关键词。(b) 描述了结合数据变量和视觉洞察检索的结果,并在图表下方显示了相关的实体和关系。
在具体实现上,利用ChartKG的知识结构,设计了三个问题模板,分别针对数据比较、视觉编码查询和视觉洞察推理。过图基检索和推理,执行知识图谱中的问答过程。具体步骤包括:通过匹配关键词确定问题的类型,然后利用知识图谱匹配问题中的关键词,定位必要的实体。最后 ,根据问题类型对应的搜索规则进行知识搜索,并应用推理规则找到答案。
2、再看知识图谱是怎么做的
ChartKG的构建是一个将图表图像转换成知识图谱表示的过程。这个过程涉及到多个步骤,包括图表分类、图表解析和知识图谱构建,将图表图像中的视觉元素和语义信息转换为结构化的知识图谱,为后续的图表分析和理解任务提供语义信息和可解释性。
如图1所示,将图表图像转换为所提出的知识图谱表示的框架概述。首先使用卷积神经网络(CNN)检测输入图像以进行图表分类。然后,引入对象识别和光学字符识别(OCR)来解析图表,并开发了一种基于规则的方法来构建图表图像的最终知识图谱。
1)图表分类(Chart Classification),确定输入图表图像的类型,如条形图、折线图、饼图和散点图等。在实现上,使用预训练的深度学习模型ResNet50对图表进行分类。
2)图表解析(Chart Parsing),从图表中提取视觉元素和文本信息,在实现上,结合对象识别和光学字符识别(OCR)技术。
具体的,在对象识别上 ,使用YOLOv5模型检测图表中的元素,如条形、线条、颜色标记和文本等。针对不同类型的图表,训练不同的对象检测模型以提高可扩展性。
然后进行光学字符识别(OCR): 使用Tesseract OCR引擎从图表中提取文本信息,如标题、轴标签等。最后进行图形标记解析: 根据不同类型图表的特点,解析图形标记(如条形图的条形、折线图的线段、饼图的扇区和散点图的点)的颜色、大小和位置等信息。
3)知识图谱构建(Knowledge Graph Construction),将解析出的图表元素和关系构建成知识图谱
在实现上,线进行实体分类(Entity Classification): 将解析出的图表元素归类为不同的实体类型,如视觉元素(VE)、视觉元素属性值(VEPV)、数据变量(DV)、数据变量值(DVV)和视觉洞察(VI),如图2所示,
然后进行关系构建(Relationship Construction): 定义并构建实体之间的关系,包括视觉属性对应关系、数据变量对应关系、视觉编码映射和视觉洞察对应关系。
这个关系包括视觉属性对应关系: 连接视觉元素与其属性值,如条形的高度或颜色;数据变量对应关系: 连接数据变量与其值,如“年份”变量与“2011”值;视觉编码映射: 表示数据变量或其值如何被编码为视觉元素的属性,如条形的高度表示数据值;视觉洞察对应关系: 表示数据变量和值之间的视觉洞察,如趋势或比较。
这个工作很有趣,想法很不错,是个结合的工作,但是也存在一些问题,尤其是戏落地过程中,图表到知识图谱的转换框架中,使用了不同的技术进行图表分类、对象识别和光学字符识别(OCR),这些存在着经典的piepline级联错误传播问题,并且为了做这个,其实还蛮耗费硬件资源的。
总结
本文主要介绍了两个工作,还是围绕文档智能这个方向,一个是10种PDF解析工具+6种不同文档类别的测试分析,这个有好落地,能够给出一些具有参考意义的工具。
另一个是关于图表跟知识图谱的结合,ChartKG,其中对于知识图谱的设计、图表要素的抽取以及下游应用的设计,都很有想法,读下来都不错,但跟落地还是两码事。
多思考,多看,批判性的看问题,总会有所收获。大家一起加油
参考文献
1、https://arxiv.org/abs/2410.09871
2、https://arxiv.org/abs/2410.09761
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓