首页 > 其他分享 >【转载】大模型时代的PDF解析工具

【转载】大模型时代的PDF解析工具

时间:2024-03-30 09:01:13浏览次数:20  
标签:中文 解析 模型 2022 PDF 工具 转载

本文来自博客园,作者:叶伟民,转载请注明原文链接:https://www.cnblogs.com/adalovelacer/p/18092208/pdf-tools-for-large-language-model






去年(2023年)是大模型爆发元年。但是大模型具有两个缺点:缺失私有领域知识和幻觉。缺失私有领域知识是指大模型训练时并没有企业私有数据/知识,所以无法正确回答相关问题。并且在这种情况下,大模型会一本正经地胡说八道(即幻觉),给出错误的回答。


那么如何解决这两个缺点?目前主要有两种方法,微调和RAG。微调是指使用企业私有数据/知识基于现有大模型训练出一个新的模型,然后我们使用这个新的模型来回答用户问题。RAG是检索增强生成(Retrieval-Augmented Generation)的缩写,是指在用户提问时系统后台根据用户问题检索相关数据/知识,然后将所检索到的相关数据/知识加上用户问题一起交给大模型处理。


我们可以看到,无论是哪种方法,将企业私有数据/知识传给大模型都是位于整个流程的上游,这个阶段的任何失误都会直接影响到整个流程的下游,最终影响整个问答的准确率。
为了让读者更形象地了解这个环节,本文将以一份上市公司年报PDF为例进行讲解。
本文选择了恒生电子(600570)2022年的年度报告(修订版)做为示例,大家可以在巨潮资讯搜索下载这份PDF文件。


使用传统PDF解析工具解析PDF

首先我们使用传统的PDF解析工具解析PDF。

传统的PDF解析库相当地多,我们就不一一罗列和分析了。这里我们仅以目前最流行的大模型框架LangChain所支持的其中一个解析库PyPDF为例。

我们使用LangChain并选择PyPDFLoader来读取文件“恒生电子:恒生电子股份有限公司2022年年度报告(修订版).PDF”


from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("example_data/恒生电子:恒生电子股份有限公司2022年年度报告(修订版).PDF")
pages = loader.load_and_split()

存在的问题

我们发现通过PyPDFLoader读取的结果存在很多问题,这里仅以PDF第6页和第7页的“七、近三年主要会计数据和财务指标”为例:

image

通过PyPDFLoader读取的结果为(为节省篇幅,这里去除了所有空白换行符):

七、 近三年主要会计数据和财务指标
(一) 主要会计数据
单位:元 币种:人民币
主要会计数据 2022年 2021年
本期比上年 同期增减
(%)
2020年
营业收入 6,502,387,143.49 5,496,578,624.88 18.30 4,172,645,156.56
归属于上市公司股东的 净利润 1,091,088,379.58 1,463,538,930.14 -25.45 1,321,735,522.48
归属于上市公司股东的 扣除非经常性损益的净 利润
1,144,419,161.05 946,569,672.55 20.90 733,590,924.61
经营活动产生的现金流 1,138,192,779.96 956,789,306.14 18.96 1,397,902,270.41
2022 年年度报告
**7** /
**211** 量净额
2022年末 2021年末
本期末比上 年同期末增
减(%)
2020年末
归属于上市公司股东的 净资产 6,811,761,050.50 5,695,031,051.05 19.61 4,554,029,323.59
总资产 13,004,578,298.67 12,079,908,312.76 7.65 9,971,144,688.34

我们可以发现以下问题:

  1. PDF换页导致表格行头被断开:第四行的行头“经营活动产生的现金流量净额”被断成两截,生生加入了“1,138,192,779.96 956,789,306.14 18.96 1,397,902,270.41 2022 年年度报告 7 /211 ”一长串内容。我们可以看到,这一段内容中,干扰信息比正常信息还要多一两倍。遇到这种问题,再强大的大模型都无法正确处理!
  2. 丢失表格列头信息:表格最后几行数据完全无法与表格列头建立关系。从而导致大模型无法识别这些数据所代表的意义。
    除了PyPDFLoader之外,其它传统的PDF解析工具的处理结果也差不多。
    计算机科学与信息通信技术领域有一句习语:垃圾进,垃圾出 ( Garbage in, garbage out ,缩写GIGO )。我们可以看到,在这个示例中,因为传统PDF解析工具的局限性,生生地把精华处理成垃圾喂给了大模型,大模型自然而然地只能给出垃圾给用户了。那么,我们如何解决这些问题呢?

使用大模型时代的PDF解析工具

既然传统的PDF解析工具跟不上时代的发展,那么我们就使用大模型时代的PDF解析工具。
截至目前为止,大模型时代的PDF解析工具有两类:

  1. 原生支持英文,对中文支持尚待改进的:Marker、nougat(Facebook)、Layoutlmv3(Microsoft)、DocLayNet(IBM)、ByT5(Google)
  2. 原生支持中文,并以中文大模型为试验对象的:Vary、PDF4AI.cn
    这里以Marker(https://github.com/VikParuchuri/marker)为代表简单描述一下第一类工具。Marker的原理是将PDF解析成Markdown喂给大模型。因为Markdown可以保留表格的结构信息,所以能够解决前面示例中的问题。
    然而很遗憾的是,Marker目前尚未支持中文,所以无法用于本文中的示例。不过大模型时代技术发展迅速(LangChain几乎每天更新一个版本),Marker才诞生三个月就已经更新多个版本,相信很快就会支持中文了。
    至于nougat、Layoutlmv3、DocLayNet、ByT5都是类似于Marker的工具,因为篇幅原因,这里就不过多描述了。
    这些工具有些明确表示目前不支持中文,有些虽然支持中文,但是实际效果可能不能满足读者们的预期。
    既然以上工具对中文支持不友好,那么有没有支持中文的类似工具呢?旷视推出了Vary。
    Vary是以中文大模型(阿里巴巴的通义千问Qwen)为试验对象的,并且优先和原生支持中文,从Vary的官网可以看到,Vary的Demo都是先展示中文再展示英文的。
    Vary的官网是https://varybase.github.io/ , 比较奇怪的是,虽然各大自媒体号说这是旷视推出的模型,然而这个官网并没有表现出这一点。同时Vary推出没多久,目前改进空间还很大,笔者将持续关注。
    另一个工具是PDF4AI.cn(https://www.pdf4ai.cn)。PDF4AI.cn的原理与Marker、Vary是一样的,都是将PDF解析成Markdown喂给大模型。
    PDF4AI.cn分为免费版和专业版。截止目前为止,PDF4AI.cn的免费版未能解决以上示例中的问题。
    PDF4AI.cn专业版可以解决以上示例中的问题。以下是PDF4AI.cn专业版的处理结果(为节省篇幅,这里去除了所有空白换行符):
七、 近三年主要会计数据和财务指标
(一) 主要会计数据
单位:元 币种:人民币  
| 主要会计数据 | 2022年 | 2021年 | 本期比上年同期增减 (%) | 2020年 |
| ------ | ----- | ----- | -------------- | ----- |
| 营业收入 | 6,502,387,143.49 | 5,496,578,624.88 | 18.30 | 4,172,645,156.56 |
| 归属于上市公司股东的净利润 | 1,091,088,379.58 | 1,463,538,930.14 | -25.45 | 1,321,735,522.48 |
| 归属于上市公司股东的扣除非经常性损益的净利润 | 1,144,419,161.05 | 946,569,672.55 | 20.90 | 733,590,924.61 |
| 经营活动产生的现金流量净额 | 1,138,192,779.96 | 956,789,306.14 | 18.96 | 1,397,902,270.41 |
| 归属于上市公司股东的净资产 | 6,811,761,050.50 | 5,695,031,051.05  | 19.61 | 4,554,029,323.59 |
| 总资产 | 13,004,578,298.67 | 12,079,908,312.76  | 7.65  | 9,971,144,688.34 |

熟悉Markdown的朋友们可以看出,以上处理结果将PDF里面的表格转换为Markdown里面的表格。
为了让不熟悉Markdown的朋友们有一个直观的认识,笔者使用Markdown编辑工具将以上结果可视化一下:

image

现在我们可以清晰地看到,表格信息被完整保留,从而解决了以上示例中的问题。

总结

与传统的PDF解析工具相比,大模型时代的PDF解析工具将PDF解析成Markdown,从而保留一些结构化的信息(例如表格和图片),再喂给大模型,从而避免把精华处理成垃圾,避免垃圾进,垃圾出。
去年(2023年)大模型才爆发,因此这些大模型时代的PDF解析工具都是新生产物,有很多地方尚待改进,不过它们也更新迅速,感兴趣的读者可以持续关注。





标签:中文,解析,模型,2022,PDF,工具,转载
From: https://www.cnblogs.com/devilmaycry812839668/p/18105006

相关文章

  • Linux内核驱动编程的一道陷阱题(转载)
    本篇转载于:https://blog.csdn.net/yhb1047818384/article/details/84073838 原文如下:------看过一道linux内核驱动编程的题目,我觉得有点价值。题目很简单,凭记忆整理了下,代码如下:#include<linux/init.h>#include<linux/module.h>#include<linux/delay.h>#include<l......
  • 【C语言】运算符优先级全面解析
    目录前言运算符优先级概述运算符分类与优先级列表运算符优先级的实际应用示例1:乘法和加法的优先级示例2:使用括号改变运算顺序示例3:赋值运算符的优先级示例4:逻辑运算符的优先级总结前言    C语言作为编程世界中的一颗常青树,其精确的语法规则和运算符优先级......
  • 【零基础C语言】预处理解析
     预定义符号 c语言中设置一些预定的符号,我们可以直接使用//列:__FILE__//进⾏编译的源⽂件__LINE__//⽂件当前的⾏号__DATE__//⽂件被编译的⽇期__TIME__//⽂件被编译的时间__STDC__//如果编译器遵循ANSIC,其值为1,否则未定义 /续行符号intmain(){ printf......
  • 2024年03月CCF-GESP编程能力等级认证C++编程八级真题解析
    本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题为丰富食堂菜谱,炒菜部进行头脑风暴。肉类有鸡肉、牛肉、羊肉、猪肉4种,切法有肉排、肉块、肉末3种,配菜有圆白菜、油菜、豆腐3种,辣度有......
  • 2024年03月CCF-GESP编程能力等级认证C++编程七级真题解析
    本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题下列关于排序的说法,正确的是()。A.冒泡排序是最快的排序算法之一。B.快速排序通常是不稳定的。C.最差情况,N个元素做归并排序......
  • 深入解析Java继承机制:面向对象编程的核心探究【Java面试题】
    作为一名对技术充满热情的学习者,我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代,我远非专家,而是一位不断追求进步的旅行者。通过这篇博客,我想分享我在某个领域的学习经验,与大家共同探讨、共同成长。请大家以开放的心态阅读,相信你们也会在这段知识之......
  • 转载:记录一下python setDaemon相关
    前言使用Python都不会错过线程这个知识,但是每次谈到线程,大家都下意识说GIL全局锁,但其实除了这个老生常谈的话题,还有很多有价值的东西可以探索的,譬如:setDaemon()。线程的使用与存在的问题我们会写这样的代码来启动多线程:importtimeimportthreadingdeftest():......
  • WPF中使用PDF模板实现PDF导出和预览-来自GPT4
    在C#和WPF项目中实现加载不同的PDF模板、查看报告和导出PDF文件的功能,可以通过以下步骤完成:1.选择PDF库首先,选择一个合适的.NETPDF库。有许多库可以帮助你处理PDF文件,包括但不限于:iTextSharp:一个功能强大的和灵活的库,适用于创建和修改PDF文件。它是iText的一个.NET端口。......
  • 如何给PDF文件加密?
    PDF作为一种常用的文档格式,本身具有很好的稳定性以及兼容性,被广泛应用于学习以及生活当中。然而,这也意味着PDF文件的安全性成为了一个不可忽视的问题。因此,进行PDF加密操作变得至关重要。那么有那些好用的pdf加密的工具呢?1、nitropdf.com这是一款功能强大的PDF编辑软件,你可以使......
  • pdf文件压缩后不清晰?那是方法没选对!
    分享或存储PDF文件时,如何文件过大怎么办?那么肯定是先对其进行压缩。但有些压缩工具在减小文件大小的同时,文件的清晰度也变了,导致PDF文件变得模糊。有那些简单的方法和工具,可以在压缩PDF文件后依然保持清晰度?在进行PDF压缩时,选择一款高质量的压缩工具至关重要。以下几款工具在压缩......