0

AI大模型工程师

四分卫
11天前 9

获课:xingkeit.top/17392/


文档解析的真相,你花在格式上的时间比理解内容还多

刚开始做RAG项目的时候,我天真地以为整个链路里最难的是检索和生成。结果干了两个月才发现,最折磨人的是文档预处理——把PDF、Word、Markdown这些五花八门的格式倒腾成纯文本,再切成合适的块喂给后面的系统。这个过程既不性感也不智能,但它基本决定了整个RAG应用的天花板。如果说检索是房子的装修,那文档预处理就是打地基——地基歪了,装修得再漂亮也住不安稳。

先说PDF。PDF大概是这个世界上最反人类的文档格式之一,它是为“显示”而生的,不是为“提取内容”而生的。一段文字在PDF里可能被拆成多个文本框,表格可能被画成了线条加文字的组合,段落顺序在视觉上是对的,但在底层流里完全是乱的。我们早期用开源库直接提取PDF文本时,经常出现段落乱序、中英文混排错位、上下标丢失的问题。后来发现,没有一种解析工具能通吃所有PDF——扫描件需要OCR,矢量PDF要靠布局分析,表格多的要单独走表格识别通道。

一个比较实际的建议是:不要试图用一个解析器去处理所有来源的PDF。内部生成的PDF和外部合作伙伴发来的PDF,它们的生成方式、字体嵌入情况、是否做过优化处理,这些差异都会影响解析质量。比较好的做法是做一个“多解析器并行的兜底策略”——先用A工具解析,如果发现文本提取率低于某个阈值或者乱码比例过高,自动切换到B工具重试,再不行就降级到OCR兜底。虽然每次处理都要多花几秒,但换来的是更稳定的解析质量。

Word的情况比PDF好一些,但也没好到哪里去。docx本质上是个压缩包,里面是XML文件,理论上解析起来应该很规范。但问题是,用户手里的Word文档五花八门——有从网页复制粘贴过来的、有从PDF转成的、有不同版本Office编辑过的,它们内部的XML结构差异大得惊人。我们遇到过文档里明明有表格,但解析出来的XML里表格结构完全丢失的情况,最后发现是因为用户用了“手动绘制表格”的功能,Word把它存成了一堆分散的文本框,而不是一个规整的表格节点。

针对Word,我比较倾向于保留格式信息而不是全部丢掉。比如标题的字体大小、段落的缩进、列表的层级,这些信息在语义上是有意义的——一级标题和二级标题的区分,在后续分块时可以作为边界依据。纯粹把Word转成纯文本,等于丢掉了作者原本的篇章结构,而这些结构信息对提升检索精度很有价值。

Markdown是最让人省心的格式。本身结构清晰,标题、列表、代码块、引用都有明确的标记符号,解析起来几乎不会出错。但Markdown有个容易被忽视的问题:它太干净了,干净到会让人低估实际文档的混乱程度。大部分业务场景里,核心知识资产往往躺在PDF和Word里,能用Markdown管理的文档一般体量都不大。所以如果有人说“我准备全部用Markdown来做知识库”,要么是技术理想主义,要么业务体量确实很小。

接下来是分块策略,这才是真正的重头戏。分块这事没有标准答案,全凭经验和试错。块太大,检索时召回的内容冗余,塞进上下文会稀释有效信息;块太小,语义片段不完整,缺乏上下文关联,召回的都是碎片。一个常被提及的经验值是每个块256到512个token,但这个数字毫无意义——具体多大取决于你的文档类型和用户提问的方式。

我偏向于一种基于文档结构的分块策略,而不是按固定长度硬切。Markdown里按标题层级切,PDF里按段落边界切,Word里按样式变化切。 结构切块的逻辑是:只有当一个语义单元完整的时候,它才应该被整体放进一个块里。比如一个三级标题下的内容,如果跨页或者跨段落,但讲的是一回事,就应该强行粘在一起作为同一个块。用固定长度切块,今天刚好切在一个段落中间,模型拿到的就是半个段落的信息,后面的生成质量可想而知。

多说一句重叠的问题。分块时在块与块之间保留一部分重叠内容,这是一个常见做法,可以防止边界处信息被截断。我们的经验是重叠比例控制在10%到15%比较合适,重叠太小起不到缓冲作用,重叠太大又会造成大量冗余数据塞进向量库,检索时返回一堆几乎重复的内容。

最后讲一个很务实的体会:文档预处理的结果好不好,不要只看几个抽样,一定要大规模扫一遍样本数据。 你可能觉得100个文档里有一个解析乱码无所谓,但上线之后用户刚好问到了那个乱码文档里的内容,一次bad case就可能让用户对整个系统的信任度崩塌。我们每次上线新数据源之前,都会跑一轮自动化质量检测——提取文本的完整率、乱码字符比例、段落数量是否符合预期,这些指标过了红线就整个批次标记为待人工审核。自动化管大多数,人工兜底管少数,这种“半自动”的流程虽然谈不上高效,但确实帮我们挡了不少坑。

文档预处理不是个能做出花来的方向,它的目标只有一个:让后续的检索和生成拿到尽可能可靠的材料。在RAG的完整链路里,这个环节最不性感,但它决定了后面所有的努力到底是在好材料上加工,还是在垃圾上雕花。务实一点,别怕在这个环节上多花时间,所有的投入都会在后面被放大回报。



本站不存储任何实质资源,该帖为网盘用户发布的网盘链接介绍帖,本文内所有链接指向的云盘网盘资源,其版权归版权方所有!其实际管理权为帖子发布者所有,本站无法操作相关资源。如您认为本站任何介绍帖侵犯了您的合法版权,请发送邮件 [email protected] 进行投诉,我们将在确认本文链接指向的资源存在侵权后,立即删除相关介绍帖子!
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!