【文档智能 RAG】RAG增强之路-智能文档解析关键技术难点及PDF解析工具PDFlux

前言

在私域知识问答和企业知识工程领域,结合Retrieval-Augmented Generation(RAG)模型和大型语言模型(LLM)已成为主流方法。然而,企业中存在着大量的PDF文件,PDF解析的低准确性显著影响了基于专业知识的问答效果,因此,这些文件的有效解析对RAG模型的构建至关重要。上篇文章(【文档智能 & RAG】RAG增强之路:增强PDF解析并结构化技术路线方案及思路)主要讨论了开源的PDF解析技术,而本文将先探讨下RAG落地时常见的问题及文档解析在RAG的重要性智能文档解析关键技术,然后重点介绍闭源的PDF文件解析服务——PDFlux

检索增强生成(RAG)的工作流

一、RAG系统落地时的常见问题

  1. 文档内容解析错误:在解析PDF文件时,可能会遇到内容错误识别或格式错误的问题,导致信息丢失或错误。

  2. 分块(Chunking)丢失语义信息:在将文档分割成小块以适应模型输入时,可能会破坏原文的语义连贯性,影响信息的完整性。

  3. 目标内容召回问题:在检索阶段,有时难以准确地找到与查询相关的文档部分,导致召回率不高。

  4. 召回结果排序困难:即使成功召回相关内容,如何根据相关性对结果进行排序也是一个挑战。

  5. 答案生成幻觉:在生成答案时,模型可能会产生与原始文档不完全一致或偏离主题的回答,这种现象被称为“幻觉”。

在RAG的预处理阶段,文档解析的准确性是至关重要的。如果文档解析不准确,这将直接影响到后续的检索和生成阶段,导致整个RAG系统的性能下降。以下是文档解析不准确可能带来的具体问题及其影响:

  • 内容识别错误:如果文档中的文本、图像或格式被错误识别,将导致原始信息的丢失或错误。例如:(1)表格数据可能被错误地解析为普通文本,表格的行列关系混乱等,导致表格数值类问题无法进行精准的回答。(2)图像中的文字(OCR)被错误识别。

  • 格式丢失:PDF文件中可能包含各种格式,如加粗、斜体、下划线等,这些格式在解析过程中可能会丢失,影响对文档结构和重要性的理解

  • 布局信息丢失:PDF文件的布局信息,如页面布局、段落、标题层级等,在解析过程中可能会丢失,这会影响对文档结构的把握,进而影响分块(chunks)。为了适应模型的输入要求,文档需要被分割成小块。如果分块策略不当,可能会导致语义信息的丢失,影响模型对文档内容的理解。

  • 编码问题:PDF文件可能包含多种字符编码、水印等,一些pdf解析工具不能正确处理这些编码,可能会导致乱码或字符显示不正确

  • 文档复杂性:复杂的文档结构,如多栏布局、阅读顺序恢复、混合文本和图像等,可能会给解析带来额外的挑战,增加解析错误的风险。

因此,对于C端文档问答的RAG系统应用产品,迫切的需要对文档进行精准解析。理想情况下,PDF 解析器应具备以下关键特征:

  • 文档结构识别:能够灵活地将页面划分为不同类型的内容块,如段落、表格和图表。这确保了划分的文本块是完整和独立的语义单元
  • 在复杂文档布局中保持鲁棒性:即使是在文档页面布局复杂的情况下也能保证解析效果,如多列页面、无边框表格甚至合并单元格的表格

二、智能文档解析关键技术难点

在介绍PDFlux之前,再次简要介绍下智能文档解析中的关键技术(核心难点):

2.1 文档版式分析

版面分析指的是对图片形式的文档(扫描件)进行区域划分,通过bounding box定位其中的关键区域,如:文字、标题、表格、图片等,通常采用一些CV目标检测模型进行版式分析,如:参数量大的有:DINO等基于transformer的目标检测模型;参数量小的有MaskRCNN、YOLO系列等。

难点具体表现如下:

  • 文档版式场景多样:版面元素布局丰富多样,元素之间层叠遮盖等。
  • 文档版式复杂:单栏、双栏、三栏等。
    上述内容都给文档版式分析带来困难,从数据标注标签体系定义、到版式分析模型训练优化都面临着巨大的挑战。

2.2 文档树构建

PDFlux构建的文档树示例

通过版式分析得到版面元素的类别信息后,需要通过后处理方式建立起文档的层次结构关系,即:文档树

难点具体表现:需要通过规则引擎和深度语义模型算法的联合方式构建起文档树。

2.3 阅读顺序还原

阅读顺序例子

通过版式分析后,能够输出版面元素的bounding box,如何准确的恢复出符合人类阅读顺序的文档内容也是尤为重要。

常见技术路径有:基于规则的方法(xy-cut等)、基于深度学习的方法(Layoutreader等)

难点体现在:与版式分析难点相同。

2.4 表格还原

PDFlux表格还原示例

pdf表格元素中,常见的表格类型包含:有线表、无线表、跨页表格、合并单元格、密集表格及表格中单元格中含有复杂元素(如:特殊字符、公式等)。如何有效的进行解析非常具有挑战性。

常见技术路径:表格结构识别(如:DeepDeSRT等)、表格内容OCR等。

三、PDFlux

PDFlux是一个基于深度学习模型的PDF解析器,经过超过一千万个文档页面的训练。通过识别和区分文档中的所有视觉元素,如文本、表格、图像、图表等,并保留它们的空间关系。它包括以下步骤:

  1. OCR 进行文字定位和识别;
  2. 物理文档对象检测;
  3. 跨列和跨页调整;
  4. 阅读顺序确定;
  5. 表格结构识别;
  6. 文档逻辑结构识别。

网页端文档版式分析识别效果

通过以上步骤,PDFlux解析器最终以 json 、 html 、word、markdwon 格式提供解析结果。

PDFlux api解析pdf文件输出格式

效果展示:

原始pdf

解析后的html格式结果

解析后的json格式方便索引
PDFlux解析细节

word格式结果

比较惊喜的是不但可以有效的合并单元格格式,还能够识别出单元格中填充的高亮数值颜色。此外,通过word格式可以看到,PDFlux可以清楚的识别出pdf文件的目录层级结构,并有效的恢复原始文档的阅读顺序,这对RAG系统预处理阶段文本边界划分有着积极的意义。

目录层级结构

markdown格式结果

值得一提的是,由于 Markdown 格式不能表示合并单元格,在 Markdown 格式中将合并单元格中的全部文本放入每个原始单元格中。如图所示,文本“观察期”重复了 7 次,表示该合并单元格合并了 7 个原始单元格。

PDFlux将pdf解析成结构化的形式后,可以构建类似文档树结构(如:RAPTOR等),增强RAG系统的效果,结构化文档树有以下优势:

  • 结构化信息保留:Markdown作为一种轻量级标记语言,能够很好地保留文本的结构信息,如标题、段落、列表和表格等。这使得RAG系统能够更容易地理解和处理文档的结构。

  • 改善检索质量:当文档以结构化的方式呈现时,RAG系统中的检索组件可以更准确地定位到相关信息。例如,如果用户查询与特定表格相关的问题,系统可以快速检索到整个表格及其标题,而不仅仅是表格的一部分。

  • 增强上下文理解:文档树提供了文档内容的层次结构,有助于RAG系统中的语言模型更好地理解上下文。这对于生成准确和相关的答案至关重要。

  • 提高信息检索的精度:构建文档树可以帮助系统更精确地定位信息,减少错误检索或信息片段的不完整检索,从而提高整体的检索精度。

  • 优化生成答案的过程:在RAG系统中,生成答案通常依赖于检索到的内容与用户查询的结合。文档树提供了一种清晰的方式,使得语言模型能够更有效地结合检索到的信息和上下文,生成更准确和全面的答案。

  • 支撑复杂查询:对于需要综合多个部分信息的复杂查询,文档树使得RAG系统能够更好地识别和整合来自文档不同部分的信息,以生成综合的答案。

四、PDFlux增强RAG实验

基于PDFlux,其构建了一个基于大模型的问答工具ChatDOC,并且构建了一份评估数据集。数据集收集了 800 个手动生成的问题。经过仔细筛选后,删除了低质量的问题,得到了 302 个可用于评估的问题。这些问题分为两类。

数据集中的问题被分类为提取信息类和综合分析类,采用不同的评测方法

4.1 提取信息类问题的结果

提取信息类问题的结果如表 3 所示。在 86 个提取信息类问题中,ChatDOC 在 42 个案例中表现优于 Baseline 模型,有 36 例与 Baseline 模型表现持平,仅有 8 例表现不如 Baseline 模型。

ChatDOC 和 Baseline 模型的比较结果
评分的分布情况详见下图。在分布表中,ChatDOC 得分高于 Baseline 模型(ChatDOC 胜出)的情况表示在左下角,而 Baseline 模型得分较高的情况表示在右上角。

提取信息类问题的评分分数分布表

值得注意的是,大多数有明确胜负结果的样本位于左下角部分,这表明了 ChatDOC 的优势。令人印象深刻的是,ChatDOC 在近一半的案例中获得满分(10 分),总计 40 个。

4.2 综合分析类问题的结果

综合分析类问题的结果如前表所示。在 216 个综合分析类问题中,ChatDOC 在 101 个案例中表现优于 Baseline 模型,有 79 例与 Baseline 模型表现持平,仅有 36 例表现不如 Baseline 模型。

综合分析类问题的评分分数分布表

如图,这些问题的分数分布表显示,左下角的分数集中程度更高。这表明 ChatDOC 的表现经常优于 Baseline 模型。

值得注意的是,ChatDOC 的大多数检索结果得分在 8.5 到 9.5 之间,表明其检索质量很高。

总结

通过对PDFlux的体验,可以得出结论,除了RAG系统内部提升检索准确率和提高基础生成大模型的能力之外,精确的处理PDF文件,对提升RAG系统的性能至关重要。

参考文献

  • https://www.pdflux.com(如果有需要,可以直接向其申请试用PDFlux API)
  • Revolutionizing Retrieval-Augmented Generation with Enhanced PDF Structure Recognition,https://arxiv.org/pdf/2401.12599
  • https://mp.weixin.qq.com/s/JJHlJsWEqFG77LdzhvzDNw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/711106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git配置3 - 一个git仓库同时push到多个代码托管平台

1. 应用场景2. 单个代码托管平台时3. 多个代码托管平台时 3.1. 在github上创建一个项目3.2. 添加远端仓库关联3.3. 查看关联的远端仓库3.4. 推送代码到github 1. 应用场景 场景一: 你有一个开源的项目,你希望托管到多个开源代码托管平台。比如github…

springer 在线投稿编译踩坑

springer投稿,在线编译踩坑总结 注意: 有的期刊需要双栏,而预定义的模板中可能为单栏,需要增加iicol选项。 例如: \documentclass[sn-mathphys-num]{sn-jnl}% —>\documentclass[sn-mathphys-num, iicol]{sn-jnl}…

关于BERT和embedding

embedding到一个低维向量,但是需要回到onehot高维表示,所以大部分填词游戏最后都需要加上一个MLP接头。 word2vec如此简单的结构,学习到的是embedding 基于计数的统计方法和word2vec融合就形成了glove词嵌入模型 总结:通过各种…

新版嘎嘎快充互联互通系统配置文档

宝塔环境配置 登录宝塔账号,安装nginx、mysql5.7、php7.2、supervisor、redisphp安装扩展: 1)安装swooleloader72 将嘎嘎官方提供的swoole_loader_72_nts.so文件上传到 /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718…

openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写

文章目录 openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写300.1 概述300.2 使用指导300.2.1 前提条件300.2.2 使用方法示例300.3 获取帮助300.4 命令参考300.5 常见问题处理openGauss学习笔记-300 openGauss AI特性-AI…

数智教育创新如何向未来?腾讯云与你探索革新之路

引言 随着科技革命的快速发展,掀起教育领域的变革,新理念、新技术、新模式、新应用正不断涌现,正塑造着教育的未来形态。未来科技还将如何赋能教育创新? 5月31日,由腾讯云TVP 与西安电子科技大学联合举办的「数智教育的…

618洗地机全网热门推荐,跟着买错不了

步入酷热夏天,家中的清洁工作也迎来了新的挑战。天气炎热,细菌、异味滋生的困扰让日常打扫变得不再轻松,这时一台高性能的洗地机就成了提升生活品质的必备良品。不同于洗地机的技术与类别繁多,洗地机虽原理不复杂,但在…

JProfiler 性能分析案列——dump.hprof 堆内存快照文件分析排查内存溢出

在 windows 环境下实现。 一、配置 JVM 参数 配置两个 JVM 参数: -XX:HeapDumpOnOutOfMemoryError,配置这个参数,会在发生内存溢出时 dump 生成内存快照文件(xxx.hprof)-XX:HeapDumpPathF:\logs,指定生成…

04.VisionMaster 机器视觉找圆工具

VisionMaster 机器视觉找圆工具 定义 先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量 注意:找圆工具 最好和【位置修正】模块一起使用。具体可以看下面的示例。 参数说明: 扇环半径:圆环ROI的内外圆半径 边缘类型&a…

C51学习归纳13 --- AD/DA转换

AD/DA转换实现了计算机和模拟信号的连接,扩展了计算机的应用场景,为模拟信号数字化提供了底层支持。 AD转换通常是多个输入通道,使用多路选择器连接到AD开关,实现AD多路复用的目的,提高利用率。 AD/DA转换可以使用串口…

Python也能“零延迟“通信吗?ZeroMQ带你开启高速模式!

目录 1、零基础入门ZeroMQ 🚀 1.1 ZeroMQ简介与安装 1.2 基础概念:Socket类型详解 1.3 实战演练:Hello World示例 2、深入浅出消息模式 🔌 2.1 请求-应答模式( REQ/REP ) 2.2 发布-订阅模式( PUB/SUB ) 2.3 推送-拉取模式( PUSH/PULL ) 3、Python实战ZeroM…

这个网站有点意思,可做SPRINGBOOT的启动图

在 SpringBoot 项目的 resources 目录下新建一个 banner.txt 文本文件,然后将启动 Banner 粘贴到此文本文件中,启动项目,即可在控制台展示对应的内容信息。 下面这个工具很好用,收藏精哦

太阳光模拟器辐照不均匀性对涂层材料测试的影响

太阳光模拟器辐照不均匀性对涂层材料测试的影响 太阳光模拟器的辐照不均匀性对涂层材料的测试结果有显著影响。具体来说,辐照不均匀性可能导致以下几个方面的问题: 光谱分布不均匀 如果太阳光模拟器的光谱分布不均匀,那么模拟出的光谱与实际…

VirtualBox配置双网卡实现宿主机和虚拟机相互访问以及虚拟机外网访问

目录 一:背景 二:实现 三:总结 一:背景 在VirtualBox中配置虚拟机以实现本地主机远程登录、访问外网以及虚拟机之间的相互访问,是一种常见的虚拟化实践,适用于多种场景,如开发、测试和远程工…

iSlide软件下载附加详细安装教程

​iSlide 是一款基于 PPT 的插件工具,包含 52 个设计辅助功能,9 大在线资源库,超 50 万专业 PPT 模板/素材 支持 macOS 和 Windows 系统(兼容 Office 和 WPS)。 可以对一组元素(文本框,图形&…

二进制中的相反数

相反数的本质 相反数的本质是两数相加等于 0,1 加上 1 的相反数-1 永远等于 0。 二进制中取相反数的公式 对于二进制运算来说减法是通过加上一个负数实现的,所以想要达成两数相加等于 0 的情况一定是通过溢出来实现。两数相加等于 0 可以带入为 1111…

Vue部分文件说明

1.eslintignore文件 Eslint会忽略的文件 # Eslint 会忽略的文件.DS_Store node_modules dist dist-ssr *.local .npmrc 2.gitignore # Git 会忽略的文件.DS_Store node_modules dist dist-ssr .eslintcache# Local env files *.local# Logs logs *.log npm-debug.log* yarn-de…

亚马逊测评自养号误区解析

大家都知道亚马逊的评价对产品listing曝光和流量是有很大影响,但是亚马逊的评价又不是那么容易获取的,再加上亚马逊平台风控的不断严苛,所以卖家们想尽办法打造爆款listing是每个亚马逊卖家共同的目标,尤其是当旺季到来时&#xf…

观光车司机N2精选考试题库(附答案)

一、判断题 1、在使用手电钻、电砂轮等手持电动工具时,为保证安全,应该装设漏电保护器。(√) 2、碳弧气刨的方法设备工具简单.操作使用安全。(√) 3、事故调查组有权向有关单位和个人了解与事故有关的情况。()(√) 4、发射药(动力药)是能产生发射和推进效应的烟火药,有粒状、粉…

element-plus的el-space标签的使用

el-space标签可以很方便的设置标签间距和分隔符&#xff0c;对齐方式&#xff0c;是否拆行等属性。 <script setup lang"ts"> import { onMounted, ref } from vue;const sizeref(30)</script><template><el-space wrap :size"size"…