001.什么是特征工程RAG文本预处理是否属于
特征工程就是把原始杂乱数据,转化为模型可识别、有效、高质量特征的一系列加工过程,目的是去噪声、提精度、提升泛化能力。
RAG的文本预处理完全属于文本特征工程。原始文档是无结构数据,必须处理成优质语义特征才能向量化检索。
主要包含五步:第一文档解析提取正文;第二文本清洗去乱码、冗余符号;第三文本归一化、统一术语格式;第四语义分块+滑动窗口重叠;第五元数据增强、最终Embedding生成向量特征。
特征工程:为机器学习模型“翻译”数据
特征工程,简单来说,就是将原始数据转化为更能被机器学习模型有效利用的“特征”(即数值型表示)的过程。
- 核心目标:利用领域知识,从原始数据中构建出能最大限度发挥机器学习算法性能的特征。Andrew Ng曾强调:“应用机器学习其实基本上是在做特征工程。”
- 具体操作:它包含特征选择、特征提取和特征构造等子问题。目的是将非数值的原始数据(如文本、类别)转换成模型可以计算的数值向量,例如将“街道名称”这种分类数据通过独热编码(One-Hot Encoding)转换成由0和1组成的向量。
RAG文本预处理属于特征工程吗?
是,但视角不同。
在RAG(检索增强生成)系统中,文本预处理是特征工程在特定领域的具体应用。两者目标一致:都是将非结构化或半结构化的原始数据,处理成更适合下游任务(对RAG而言是检索和生成)的格式。
它们的主要区别在于应用场景和最终目的:
- 传统特征工程:服务于机器学习模型(如分类、回归),最终产出是结构化的特征向量。
- RAG文本预处理:服务于检索系统和大语言模型(LLM),最终产出是结构清晰、语义完整的文本块(Chunks)及其元数据,以便高效检索和生成准确回答。
RAG文本预处理的核心操作
RAG的文本预处理通常包含以下关键步骤:
1. 文档解析
- 目标:从不同格式的原始文档中提取出纯文本内容。
- 操作:解析PDF、Word、HTML、Markdown等格式,提取正文、标题、表格、代码块等核心文本信息,并丢弃无关的格式和元素。
2. 数据清洗与标准化
- 目标:消除噪声,提升文本质量。
- 操作:
- 清洗:去除HTML标签、特殊符号、乱码、广告、页眉页脚等无关或干扰性内容。
- 去重:使用哈希算法或语义相似度计算,删除重复或高度相似的段落。
- 标准化:统一日期、数值、单位等格式(如将“今天”转换为具体日期“2025-07-17”),保证数据一致性。
3. 文本分块
- 目标:将长文档切分成大小合适、语义完整的文本块,这是RAG中最关键的步骤之一。
- 操作:
- 固定长度分块:按固定的字符数(如512个字符)进行切割,实现简单但可能破坏语义。
- 语义分块:利用句子边界检测或段落分割,尽可能保留完整的语义单元。
- 动态分块:根据内容复杂度(如技术文档按章节,短文本合并相邻段落)动态调整块大小。
4. 元数据提取
- 目标:为每个文本块添加上下文“标签”,丰富其信息维度。
- 操作:提取并附加文档来源(URL、文件名)、创建时间、作者、文档类型等信息。这些元数据可用于检索时的精准过滤(如只搜索特定时间范围内的文档)和结果排序。
5. 结构化增强(可选)
- 目标:为文本注入更深层的语义信息。
- 操作:运用命名实体识别(NER)等技术,从文本中提取出人名、地名、组织名等关键实体,并将其作为标签或直接拼接到文本中,增强语义表示。
总结
可以将传统特征工程理解为数据进入模型前的“通用翻译”,而RAG文本预处理则是数据进入检索和生成系统前的“专项精加工”。后者借鉴了前者的思想,并根据RAG系统的特定需求,发展出了一套专门的操作流程。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!