微信扫码
添加专属顾问
我要投稿
RAG技术突破,准确率提升300%!掌握数据结构化,提升AI召回率。 核心内容: 1. RAG技术在解决大语言模型幻觉问题中的应用 2. 数据结构化的重要性及其对召回率的影响 3. 基于RAGFlow框架的学术文献PDF解析全流程实战
在生成式人工智能(Generative AI)快速发展的当下,大语言模型(LLMs)的幻觉问题始终是制约其落地应用的关键瓶颈。检索增强生成(RAG)技术通过引入外部知识库,将动态检索与生成能力结合,为解决这一难题提供了重要思路。然而,RAG系统的核心性能——数据召回率,高度依赖于底层数据的质量与组织形式。尤其是一些领域文献,原始数据常以非结构化形式(如PDF论文、扫描文档、图像表格)存在,且包含冗余、噪声和碎片化信息。若未经过深度清洗与结构化处理,检索系统可能陷入“垃圾进,垃圾出”的困境,导致语义理解偏差、关键信息遗漏甚至误导性结果生成。
本文以学术文献PDF解析为例,基于RAGFlow框架完整演示从原始文档清洗(MinerU工具)、结构化分块(DeepSeek+Coze标注)到知识库构建的全流程,并通过对比实验验证结构化处理对召回率的提升效果,话不多说,正文开始~
温馨提示:本文RAG框架为RAGFlow,对RAGFlow不了解的读者可以移步:从裁员到年薪百万:程序员靠RAG技术逆袭的“核心密码”
在RAG(检索增强生成)模型中,召回率是衡量系统从知识库中检索到与用户查询相关信息的能力。高召回率意味着系统能够准确找到更多相关的文档,为生成模型提供更丰富的上下文,从而提高生成内容的质量。
召回率的计算公式为:
中,相关文档的数量指知识库中所有真正相关的信息,成功检索到的相关文档数量是系统检索到并与问题相关的文档数量,高召回率确保生成模型获得更多有用的信息,从而提升回答的准确性。数据的结构化和高效的检索机制是提高召回率的关键因素。
在信息检索与知识管理系统中,数据的结构化处理对于提升检索效率、优化存储管理以及增强信息关联性具有重要作用。特别是在基于检索增强生成(Retrieval-Augmented Generation, RAG)的方法中,底层数据的组织方式直接影响系统的召回率和生成质量,很多初学者在第一次接触RAG时都会直接把原始数据丢进RAGFlow框架进行分块,结果就是RAG回答效果很差,要想提升RAG的回答效果,数据预处理是很重要的,本节就以实际场景为例,一步一步教会大家如何进行数据结构化。
最近,毕业季到来,同学们写论文时都要大量阅读领域文献,以前我上学那会我记得都是要花一个月左右时间来研读参考文献然后归纳总结,现在我们可以通过将领域文献进行结构化之后导入知识库,让AI辅助我们研读领域文献的内容,以下是我随便找的几篇文献:
要把上述领域文献投喂给RAG,并且具有较高的召回率,我们需要经历几个步骤:
虽然RAGFlow也可以解析PDF,但是我发现RAGFlow在处理复杂布局和多模态内容的PDF文档时,在解析精度和内容提取方面还是存在一定的局限性,于是我去网上找了相关工具,发现了一个叫MinerU(https://github.com/opendatalab/MinerU)的开源数据提取工具,在处理PDF文档时,MinerU相比RAGFlow自带的文件清洗功能有以下优势:
MinerU可以本地部署,如下图所示:
也可以直接用网页版本https://huggingface.co/spaces/opendatalab/MinerU我用的就是网页版:
将PDF上传解析,解析成功后可将结果下载到本地:
打开.md文件,可以看出我们的PDF文件已经被很好地解析了:
2.3小节我们完成了PDF文档初步清洗,接下来还要剔除文档里面的图片(没有文字的),给文档进行分块与标注,这种长文本(领域文献)的分块就按照大章节来分块就行,基本一个章节就是一块完整内容。打开经过MinerU清洗后的.md文件:
[文献的标题]章节:章节题目
[文献的标题]正文:章节下面的正文
+###
上面描述的数据分块和标准可以用代码来做,也可以用Coze来做,为了让对代码不熟悉的读者也可以进行RAG数据结构化,我在Coze新建了一个工作流用于进行数据结构化:
下面我来依次讲解一下每个节点:
开始: 起始节点,用于传入MinerU清洗过后的文件(.md文件)。
read: 帮助用户阅读文档内容,输入文档链接,返回文档内容,目前支持html、xml、doc、docx、txt、PDF、csv、xlsx格式。(由于它不支持.md文档,需要把MinerU清洗过后的.md文件改为.txt后缀)
大模型: 这个节点主要是用来给文件内容打标签和分块的,理想的结果是每个大章节后面加上分块标识+###作为分块标志,每个分块里面需要有章节标签来标准章节标题,有正文标签标注正文,提示词我是让DeepSeek辅助我写的,大模型我选的kimi(长文本):
提示词:
# 角色
你是一位经验丰富的数据清洗专家,专注于对用户输入的数据转换而来的文本进行精细化处理,以实现高质量的数据清洗效果。
## 技能
### 技能 1: 精准删除图片内容
仔细辨认文本中所有以![]()格式呈现的图片内容,将其精确删除,确保仅保留纯粹的文本信息。无论是何种来源的PDF数据转换后的文本,都要严格执行此操作。
### 技能 2: 基于章节标题准确提取章节内容
依据不同层级的章节标题对文本进行细致划分,将文本分割成不同的章节。按照章节出现的顺序,自动将章节标注为“章节”标签,之后紧跟对应的章节标题。同时,识别并提取文本中的一级标题(#)的标题内容,将其作为一个变量。
### 技能 3: 规范章节格式
每个 **二级标题(##)** 章节结束后,追加特殊符号 +###,并确保每个章节之间有清晰的换行。每个章节的内容以“正文:(对应正文)”标签开头,紧接着是去除图片链接后的正文内容。对于PDF数据中的文本处理结果,必须严格遵循此格式要求。
### 技能 4:提取 文章题目
从文本中识别并提取文本中的一级标题(#)的标题内容作为文章题目。
### 技能 5:在各分块标签添加题目
在每个“章节”标签以及“正文”标签处,都添加上提取的文章题目作为前缀,格式为“[文章题目]章节:[章节标题]” 、“[文章题目]正文:(对应正文)”。
## 输出格式要求:
1. **章节标识**:
• 遇到 ## 格式的章节标题,自动标注为“[文章题目]章节”,并准确提取其中的标题内容。
• 若出现其他章节标识,也按照顺序自动标注为“[文章题目]章节”并依次编号,同时正确提取标题。
2. **正文标识**:
• 正文部分的内容严格标注为“[文章题目]正文:(对应正文)”,正文是每个章节中相应标题(如 ## 或 ###)后的文本内容。
• 彻底删除正文中所有图片链接(![]()格式的部分),保证正文为纯文本。
3. **格式要求**:
• **仅在** ##(二级标题)章节的结束后追加符号 +###,其他章节(如 ###)后不追加此符号。
### 示例:
#### 输入:
## 第一章
这是第一章的内容,里面有图片和文字。

继续第一章的内容。
### 第二章
这是第二章的内容,删除图片后只剩下文字部分。

继续第二章的内容。
## 第三章
这是第三章的内容,无图片,直接展示内容。
文章题目为:示例文章
#### 输出:
[示例文章]章节:第一章
[示例文章]正文:这是第一章的内容,里面有文字部分。
+###
[示例文章]章节:第二章
[示例文章]正文:这是第二章的内容,删除图片后只剩下文字部分。
[示例文章]章节:第三章
[示例文章]正文:这是第三章的内容,无图片,直接展示内容。
+###
## 限制:
• **仅专注处理文本中的图片内容以及基于章节标识的章节内容**,不涉及其他文本处理需求。
• 务必严格删除文本中的所有图片链接,确保输出仅为文本主体内容。
• **仅在##(二级标题)章节的结尾追加符号+###**,不在其他章节格式后追加。
• **必须保证每个章节的结尾准确追加符号+###**,且各章节之间换行清晰,以确保数据处理结果的格式规范。
• 仅处理符合要求格式的文本输入,对于不符合格式的输入,需明确提示用户检查输入格式是否正确。
结束:接收数据清洗后的的文本结果:
结构化后的文本实现了我想要的效果。
关于如何让DeepSeek辅助写提示词,我的做法是给DeepSeek设定了一个角色,提示词大概是这样的:你是一个提示词专家,可以根据用户提出的需求写出专业的提示词,达到最终目的,我给你一个模板,你需要了解这个模板的结构,之后写提示词就按照模板来写:(放你自己找的模板,可以把我上面那个数据清洗专家的提示词丢给他)。
让他明确自己的身份之后,就可以描述你想写什么样的提示词了:
这是我自己写提示词的方法,如果你有更好的方法可以在评论区分享哦~
这里为了突出数据结构化的效果,我们需要做一个对比,首先把未经过任何处理的PDF文件丢进RAGFlow:
从分块上就可以看出不是很理想,再来测一下数据召回:
看一下数据源,下图里面的数据源和我的问题完全没对上:
之后来测一下做了结构化以后的数据,在配置时候需要把分块标识符配置进去:
数据分块效果:
可以看出来分块比较合理,完全按照了我预想的规则进行了分块,然后测一下数据召回:
看一下数据源,下图中的数据源完美对应上了我提出的问题:
从上面测试的结果来看,数据结构化有助于极大幅度提升数据的召回率,当然,每种数据集都有不同的分块方式,打标签的方式也会因数据集的差异有所不同,这个需要自己去慢慢摸索,对这块有见解的读者也可以私信或者评论区一起交流一下。
如果你对DeepSeek的相关知识还不熟悉,可以关注公众号后端小肥肠,点击底部【资源】菜单获取DeepSeek相关教程资料。
本文通过RAGFlow框架的实战演示,系统性地验证了数据结构化对提升RAG系统召回率的核心价值。从PDF清洗(MinerU工具)、文本分块(DeepSeek+Coze标注)到知识库构建,每一步的精细化处理都显著降低了噪声干扰,使语义检索的精准度实现质的飞跃。实验结果对比表明,未经处理的原始数据会导致“语义漂移”,而结构化后的数据召回率得到大幅提升,印证了“数据质量决定AI天花板”的行业共识。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-29
RAGFlow自动化脚本套件:自定义解析+回答质量评估+参数自动调优
2025-03-29
万字长文:说清MCP的前世今生+RAGFlow整合应用示例
2025-03-29
三种RAG部署方案:自购GPU硬件 vs 大模型一体机 vs 云端GPU
2025-03-29
RAG维保案例分享:如何实现"文+图"的答案呈现
2025-03-29
RAG检索不过关?试试这些优化策略,精准度飙升!
2025-03-29
RAG检索全攻略:Embedding与Rerank模型的终极指南
2025-03-29
5.6K+ Star!R2R:一个支持RAG的AI检索系统
2025-03-29
这就是AI智能体的记忆机制原理
2024-10-27
2024-09-04
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07
2025-03-28
2025-03-27
2025-03-27
2025-03-25
2025-03-19
2025-03-18
2025-03-18
2025-03-15