文档预处理四步法,让检索更精准

在RAG(检索增强生成)技术中,文档预处理是决定系统整体性能的基石。一段混乱的文档,无论后续模型多强大,检索结果都会大打折扣。今天,我们就来系统拆解文档预处理的四个核心步骤:去重、去噪、格式化和关键信息提取


一、去重:剔除冗余内容

文档中的重复内容非常普遍,原因包括:

  • 人工编写时,复制粘贴操作可能误操作多次;
  • 同一文档内,相似段落、句子、页面重复出现;
  • 跨文档场景(如公司内部文档版本迭代),从1.0到1.3版本会产生大量内容重叠的页面。

去重的对象

  • 重复的段落、句子、页面、文档
  • 跨文档重复(例如多个版本中相似的描述)

为什么要去重?因为重复内容会干扰检索算法,降低召回准确率,同时浪费存储和计算资源。

常见去重方法

  • 基于文本哈希的精确去重(如SimHash、MinHash)
  • 基于语义相似度的去重(如使用embedding+余弦相似度)

二、去噪:清除干扰数据

文档中常含有对检索无益甚至有害的“噪声”,例如:

  • 页码、页眉页脚
  • 水印、Logo、广告备注
  • 从网上购买的笔记资料中,插入的营销信息或网站签名

去噪的目标:删除所有非内容主体、无意义的脏数据,只保留真正有用的文本。

注意:水印和页码有时可能包含关键信息(如版本号),去噪时需要结合业务场景判断,避免误删。建议先识别再选择性移除。


三、格式化:统一数据规范

不同来源的文档,格式千差万别。格式化就是要将这些数据“拉齐”,便于后续处理。

常见格式化任务

  • 编码格式统一:统一为UTF-8,避免乱码
  • 换行符号统一:Windows(CRLF)、macOS(CR)、Linux(LF)统一为一种
  • 标点符号统一:全角/半角、中文/英文标点转换
  • 排版对齐:空格、缩进、特殊符号的清理

格式化是看似简单但极易被忽略的步骤,不规范的数据会直接导致后续模型解析失败。


四、关键信息提取:让长文本“瘦身”

不是所有原文都需要原封不动保留。关键信息提取就是从长文本中抽取核心要素,替代冗余原文,从而提升检索精度和速度

提取的内容包括

  • 主要实体:时间、地点、人物、组织等
  • 事件结论:核心论点、判断、结果
  • 摘要:长文档的提纲或概要
  • 关键数字、图表标题等

示例:原本一份10页的PDF报告,提取后只保留“2023年Q3营收增长15%,主要受亚太区需求拉动”这样的核心信息,检索时就能更精准命中。

注意:关键信息提取需要在保留语义完整性的前提下进行,不可过度压缩导致信息丢失。


总结

文档预处理是RAG技术链条中的“第一公里”,它看似简单,却直接决定了后续检索和生成的质量。去重、去噪、格式化、关键信息提取四步缺一不可。当你发现RAG系统检索结果不理想时,不妨先从文档预处理环节排查问题。


思考题

问题1:以下哪种情况属于“跨文档重复”?
A. 同一篇文档中出现两句一模一样的话
B. 不同作者写的两篇文章有一模一样的结尾段
C. 一篇文档中的某个页面被意外复制成了两页
D. 同一团队迭代的v1.0和v1.2文档中有大量相似的描述

答案:D(其余选项属于文档内重复或不同文档偶然重复场景,但跨文档重复特指同一来源的不同版本之间的内容重叠)


问题2:关键信息提取时,以下哪种做法可能导致检索质量下降?
A. 只保留时间、地点、人物等实体
B. 对长文档生成一段摘要
C. 保留原文中的每一句话,包括广告水印
D. 提取核心结论和关键数字

答案:C(保留广告水印属于未去噪,且冗余信息会干扰检索。合理的关键信息提取应该去除无关内容,保留核心语义)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇