数据清洗

数据清洗是构建高质量训练数据的关键步骤,直接影响模型的学习效果和最终性能。

4 篇文章·阅读时间:约35分钟

01文本清洗

文本清洗是数据预处理的第一步,包括HTML标签清理、特殊字符处理、编码统一等基础操作。

HTML清洗

网页文本提取

从网页源码中提取纯文本内容,需要处理HTML标签、JavaScript代码、CSS样式、广告内容等。常用的工具包括:

  • trafilatura:专门用于网页正文提取
  • BeautifulSoup:HTML解析和内容提取
  • Readability:Firefox阅读模式的提取算法

保留结构信息

在清洗过程中,适当保留标题、段落、列表等结构信息,有助于模型学习文档结构。

特殊字符处理

Unicode规范化

统一不同编码形式的Unicode字符,如全角/半角转换、繁简转换等。

控制字符清理

移除不可见的控制字符、零宽字符等,这些字符可能影响模型处理。

Emoji和表情符号

根据应用场景决定是否保留Emoji,社交媒体数据通常需要保留,而正式文档数据可能需要移除。

编码统一

编码问题处理

不同来源的数据可能使用不同编码(UTF-8、GBK、ISO-8859-1等),需要统一转换为UTF-8编码,并处理乱码问题。

清洗流程

1. 解码与编码检测

自动检测原始数据的编码格式并正确解码。

2. HTML/XML解析

解析标记语言,提取有意义的文本内容。

3. 字符规范化

统一字符表示形式,处理特殊字符。

4. 格式标准化

统一文本格式,如段落分隔、空白处理。

02去重处理

数据去重是提高训练效率和模型质量的重要步骤,重复数据会导致模型过拟合和资源浪费。

去重的必要性

  • 训练效率:重复数据浪费计算资源
  • 模型性能:过度重复可能导致模型记忆而非学习
  • 评估偏差:测试集中出现训练数据会导致评估不准确

精确去重

哈希去重

计算文本的哈希值(如MD5、SHA256),完全相同的文本会产生相同的哈希值。这种方法速度快,但只能检测完全相同的内容。

实现方式

使用哈希表存储已见过的文本哈希值,新文本只需检查哈希值是否已存在。适合处理大规模数据集。

模糊去重

MinHash算法

MinHash是一种局部敏感哈希算法,可以高效地检测近似重复的文档。通过将文档表示为特征集合,计算Jaccard相似度的估计值。

SimHash算法

SimHash是另一种局部敏感哈希方法,通过将文档映射为固定长度的指纹,快速找出相似文档。

其他方法

  • n-gram重合度:计算文档间n-gram的重叠比例
  • 编辑距离:计算字符串间的编辑距离
  • 嵌入相似度:使用文本嵌入向量计算语义相似度

去重策略

推荐策略

  • 先精确去重,再模糊去重
  • 设置合理的相似度阈值(通常0.7-0.9)
  • 保留高质量版本,删除低质量重复
  • 记录去重统计信息用于质量分析

03噪声过滤

噪声过滤识别并移除低质量、有害或不相关的数据,确保训练数据的整体质量。

低质量过滤

启发式规则

基于统计特征的过滤规则:

  • 文本长度过短或过长
  • 特殊字符比例过高
  • 重复词或短语比例过高
  • 句子结构异常

语言模型评分

使用小型语言模型评估文本的流畅度和可读性,低分文本可能质量较差。

有害内容过滤

内容安全检测

识别并过滤以下类型的有害内容:

  • 暴力和仇恨言论
  • 成人内容
  • 非法活动描述
  • 歧视性内容

过滤工具

使用专门的内容安全API或开源工具进行检测,如Perspective API、内容安全分类器等。

PII过滤

个人信息识别

识别并处理个人身份信息(PII):

  • 姓名、地址、电话号码
  • 电子邮件地址
  • 身份证号、信用卡号
  • 医疗健康信息

处理方式

常见处理方法

替换为占位符(如[PHONE])、脱敏处理(部分遮挡)、或完全移除包含PII的文档。

过滤流水线

建立多阶段过滤流水线,从粗到细逐步过滤:

  1. 快速启发式过滤(去除明显噪声)
  2. 语言检测(保留目标语言)
  3. 质量评分(评估文本质量)
  4. 安全检测(过滤有害内容)
  5. PII处理(保护隐私信息)

04数据标准化

数据标准化将不同来源的数据转换为统一的格式和规范,便于后续处理和模型训练。

格式标准化

数据格式统一

将不同来源的数据转换为统一的存储格式,常用的格式包括:

  • JSONL:每行一个JSON对象,便于流式处理
  • Parquet:列式存储,压缩率高,查询快
  • TFRecord:TensorFlow原生格式

字段规范化

统一字段名称和类型,如text/content、title/headline等,确保数据一致性。

语言识别

语言检测工具

使用fastText、langdetect等工具识别文本语言:

  • 单语言训练:只保留目标语言的文本
  • 多语言训练:按语言分类存储

文本规范化

空白处理

统一处理空格、制表符、换行符等空白字符,移除多余空白。

大小写处理

根据任务需求决定是否统一大小写,一般保留原始大小写以学习正确的用法。

标点符号

统一标点符号形式,如将中文标点转换为半角,或保留原始形式。

质量评估指标

常用指标

  • 困惑度(Perplexity):文本的可预测性
  • 词汇多样性:独特词汇的比例
  • 信息密度:单位长度的信息量
  • 可读性分数:文本的阅读难度
----