文本数据清洗中正则表达式应用

Edward826 +0/-0 0 0 正常 2025-12-24T07:01:19 正则表达式 · 特征工程

在大模型训练过程中,文本数据清洗是特征工程的重要环节。正则表达式作为文本处理的利器,在去除噪声、标准化格式方面发挥着关键作用。

常见文本噪声类型

  • HTML标签和特殊字符
  • 多余空格和换行符
  • URL链接和邮箱地址
  • 标点符号和特殊符号

实用正则表达式示例

import re

def clean_text(text):
    # 去除HTML标签
    text = re.sub(r'<[^>]+>', '', text)
    
    # 去除URL链接
    text = re.sub(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', '', text)
    
    # 去除邮箱地址
    text = re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', '', text)
    
    # 标准化多余空格
    text = re.sub(r'\s+', ' ', text).strip()
    
    return text

处理建议

  1. 优先处理HTML标签和URL,减少后续干扰
  2. 根据具体数据集调整正则模式
  3. 建议使用re.escape()处理特殊字符
  4. 记录清洗前后对比,确保信息不丢失

通过合理运用正则表达式,可以显著提升文本数据质量,为大模型训练奠定良好基础。

推广
广告位招租

讨论

0/2000
WarmStar
WarmStar · 2026-01-08T10:24:58
正则表达式确实能快速处理HTML标签和URL,但要注意别把有用信息也删了。我一般会先用简单的模式试跑,确认无误再批量替换。
MeanMouth
MeanMouth · 2026-01-08T10:24:58
清洗文本时遇到特殊符号特别多的情况,建议先用re.escape()转义,不然容易出现意外匹配。另外多留个心眼,记录下清洗前后的对比。
Eve35
Eve35 · 2026-01-08T10:24:58
标准化空格这一步很关键,尤其是处理长文本时。我发现用\s+匹配比单独去空格更稳健,但也要注意保留必要的换行符。
星空下的约定
星空下的约定 · 2026-01-08T10:24:58
不同数据集的噪声类型差别很大,比如新闻数据可能有大量引用符号,而社交媒体则多是表情包和乱码。建议根据实际场景定制正则规则