文本数据预处理流水线构建踩坑实录
最近在搭建大模型训练的数据预处理流水线时,踩了不少坑,分享给大家避雷。
核心流程
首先,我们使用pandas读取文本数据:
import pandas as pd
import re
df = pd.read_csv('raw_data.csv')
然后进行基础清洗:
# 去除空值和重复值
df = df.dropna().drop_duplicates()
# 统一文本格式
df['text'] = df['text'].str.lower()
# 去除特殊字符
df['text'] = df['text'].apply(lambda x: re.sub(r'[^a-zA-Z0-9\s]', '', x))
踩坑记录
- 编码问题:原始数据含中文乱码,必须用
encoding='utf-8'读取 - 内存溢出:处理大文本时会爆内存,建议分块处理或使用生成器
- 特征工程陷阱:直接用原始文本做特征容易过拟合,建议先做TF-IDF降维
优化建议
可以封装成流水线组件:
class TextPreprocessor:
def __init__(self):
self.pipeline = [self.clean_text, self.normalize]
def process(self, text):
for step in self.pipeline:
text = step(text)
return text
这个流水线在实际项目中效果不错,但一定要根据具体数据做微调。

讨论