大模型数据预处理——关于复杂文档在大模型应用中的解决方案

 复杂文档的处理是人工智能应用的基础,但同时也是一个门槛。



在这里先思考一个问题,哪种文档格式最复杂?


以我们经常使用的文档为例,不同系统下有不同格式的文档;不论是文本,图片,还是视频都有很多种格式;但要说比较复杂的还是文本类文档。


因为文本类文档中包含着多种其它格式的文档;以作者个人为例,我认为最复杂的文档就是常用的word/pdf这种格式。


原因就在于这种格式的文档就像一张白纸,我们可以在上面写画任何我们想要的东西;而其它格式的文档多多少少都会有一些固定的格式,而固定的格式就意味着数据是有格式的,而现在的计算机系统中,最复杂的不是格式化数据而是非格式化数据。





复杂文档的处理




作者目前主要从事的是RAG方面的应用,而RAG除了高效检索之外,另一个比较复杂的方面就是前期各种文档的处理。


比如说word,excel,markdown,html等等;而其中比较棘手的主要就是word和pdf。


原因就在于word和pdf中的文档格式比较复杂,因为它不仅仅只有纯文本,里面同时还存在图片和表格和结构图。




特别是一些流程图,架构图,甚至很多内容都是截图放在里面;在这种情况下,直接交给大模型处理是一件非常困难的事;特别是一些大模型只是纯文本模型,无法处理这种复杂的数据格式。


因此,一种比较常见的做法就是使用OCR技术,把word/pdf等文档中的图片识别成文字进行处理。


但说句实话,效果真的不咋地;比如说图片中如果是文本数据倒还好,如果是一些非文本数据,OCR识别也没太大作用。


而如果是一些流程图或架构图这种,识别出来也没太大意义,原因就在于识别出来的数据失去了原有的逻辑关系。



所以,面对这种问题应该怎么解决?


说句实话,受限于技术问题,面对这种问题目前业界并没有什么特别好的处理办法,只能尽可能的保证文档的完整性和连贯性。


面对这种问题一般有两个解决思路,第一使用一些工具对文档进行预处理,比如把文档中文字,图片和表格分别提取出来;以保证分割数据的完整性。


常见的是不同语音提供的一些工具包,比如场景的python提供的各种文档处理工具。




核心做法


将 Word / PPT / PDF 等不同类型的文档,统一转成 HTML 或者 Markdown 格式。

基于统一后的格式,从文档中分离出 文本内容、图片(含图表截图)、表格。

对拆分出来的图片和表格做进一步的 OCR / 表格解析等处理,将其转换为文本(或结构化数据),最后与原有的文本合并或建立关联。


优点


保留文档内容结构:因为先转为 HTML 或 Markdown,可以较好地保留文档的层级结构、段落、样式等。

灵活处理:可以针对文字、图片、表格分别采取适合的处理方式。例如:

文本直接拿来做 NLP 预处理;

图片和图表用专门的 OCR 或结构化表格提取工具。

精细度较高:文字和图表一分为二,可以更精细地进行后续处理,便于标注、检索或微调(Finetune / RAG)。


缺点


开发成本相对较高:要编写或调用各种解析、转换脚本(doc -> html,pdf -> html 等),还要对拆出来的图片、表格做分别提取。

依赖工具链:对于 PPT 等复杂文档,直接转 HTML/Markdown 可能并非一帆风顺,需依赖商业或开源工具,可能会遇到兼容性问题。

图片+表格的后处理:对图表进行 OCR 或表格解析,需要依赖额外的处理模块,处理效果也取决于 OCR / 表格解析工具的准确率。




适用场景


需要保留文档原有的层级结构、目录、章节等信息,并对文本和图表进行精细化处理的场景。

数据源多样(Word、PPT、PDF、扫描件),且对最终提取精度要求较高。

团队可以投入一些时间精力,编写、整合比较完整的抽取工具链。



第二种就是使用更先进的多模态模型,多模态模型能够同时处理多种不同的数据格式;并且能够尽可能的保证不同格式数据之间的相关性。


通过多模态模型对复杂文档数据进行抽取,然后再进行下一步的加工处理。


总之,复杂格式数据的处理是一项技术难度大,处理流程复杂的工程;但核心要点只有一个,那就是尽可能的保证文档数据的完整性,这里包括数据的完整和语义的完整。






(文:AI探索时代)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往