PROJECT 04进阶
AIGC 训练语料库去偏与去噪
AI Training Corpus De-biasing
对 AIGC 训练语料进行文本清洗、去重与数据平衡,确保训练数据质量。
.str 文本清洗正则表达式去重策略数据平衡文本长度分析
项目背景
某 AI 公司准备训练行业大模型,但收集到的 10 万条语料存在大量重复内容、HTML 标签残留、中英文混杂不均等问题。需要对语料进行系统化清洗与去偏处理。
模拟数据集
corpus_id,text,source,language,token_count
C001,<p>机器学习是一种人工智能的分支</p>,web_zh,zh,15
C002,Machine learning is a subset of AI,web_en,en,8
C003,<div>深度学习使用神经网络</div><script>alert(1)</script>,web_zh,zh,12
C004,机器学习是一种人工智能的分支,web_zh_dup,zh,15
C005,"",web_empty,unknown,0
C006,The quick brown fox,web_en,en,5
C007,Résumé parsing with NLP techniques,web_en,en,5
C008, 数据清洗是NLP的重要步骤 ,web_zh,zh,12
C009,重复文本内容重复文本内容重复文本内容,spam_zh,zh,18
C010,"""""""""""""""""""",spam_noise,unknown,0代码练习区
在下方编辑器中编写你的 Pandas 代码。可记录笔记、编写伪代码,参考答案在下方。
pandas_exercise.py
Loading...
参考答案
reference_solution.py
import pandas as pd
import re
df = pd.read_csv('corpus_data.csv')
# 1. 删除空文本
df = df[df['text'].notna() & (df['text'].str.strip() != '')]
# 2. HTML 标签清洗
df['text'] = df['text'].str.replace(r'<[^>]+>', '', regex=True)
# 3. 去除特殊字符 (保留中英文、英文标点)
df['text'] = df['text'].str.replace(r'[^\w\s\u4e00-\u9fff.,;:!?"\'()-]', '', regex=True)
# 4. 去除多余空白
df['text'] = df['text'].str.replace(r'\s+', ' ', regex=True).str.strip()
# 5. 精确去重
df.drop_duplicates(subset=['text'], keep='first', inplace=True)
# 6. 模糊去重 (相似度阈值)
# 可用 MinHash/SimHash 实现大规模去重
# 7. 文本长度过滤
df['char_len'] = df['text'].str.len()
df = df[(df['char_len'] >= 5) & (df['char_len'] <= 500)]
# 8. 语言分布平衡
lang_counts = df['language'].value_counts()
print(f"语言分布: {lang_counts.to_dict()}")
# 欠采样/过采样实现语言平衡
# from imblearn.under_sampling import RandomUnderSampler业务解读
训练数据质量直接决定 AI 模型表现。'Garbage In, Garbage Out' 是 AI 领域的铁律。语料去重可节省大量训练算力,HTML 清洗避免模型学到无关标签。数据平衡防止模型偏向某一语言或领域。