Alphanumeric Filter 字母数字比例过滤 Skill
功能概述
本skill根据文本中字母/数字字符的比例进行过滤,只保留比例在指定范围内的样本。 常用于清理乱码文本、过滤特殊字符过多的内容等场景。
触发条件
当用户请求以下任务时,应使用此skill:
- 文本过滤
- 比例筛选
- 字母比例过滤
- 数字比例过滤
- 清理乱码文本
- 特殊字符过滤
核心参数说明
必需参数
| 参数 | 说明 |
|---|---|
--input |
输入JSON文件路径 |
--output |
输出JSON文件路径 |
可选参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--min_ratio |
最小字母数字比例 | 0.25 |
--max_ratio |
最大字母数字比例 | 1.0 |
--tokenization |
是否使用tokenization计算 | False |
--text_key |
文本字段的键名 | text |
输入文件格式
[
{"text": "正常的英文文本内容"},
{"text": "包含123数字的文本"},
{"text": "只有符号!!!..."},
{"text": "混合内容abc123中文"}
]
使用方法
过滤字母数字比例在0.25-1.0之间的样本(默认)
python scripts/run_alphanumeric_filter.py \
--input ./input.json \
--output ./output.json
过滤字母数字比例在0.3-0.8之间的样本
python scripts/run_alphanumeric_filter.py \
--input ./input.json \
--output ./output.json \
--min_ratio 0.3 \
--max_ratio 0.8
使用tokenization模式(更精确但更慢)
python scripts/run_alphanumeric_filter.py \
--input ./input.json \
--output ./output.json \
--tokenization True
过滤示例
| 文本 | 字母数字比例 | 过滤结果 (0.2-0.9) |
|---|---|---|
Hello World |
高 | 保留 |
a=1\nb\nc=1+2+3 |
中 | 保留 |
,。、„""«»1» |
低 | 过滤 |
emoji表情😊😸31231 |
中 | 保留 |
输出示例
命令行输出:
[OK] Alphanumeric filtering completed!
Min ratio: 0.25
Max ratio: 1.0
Tokenization: False
Original documents: 6
Filtered documents: 5
Removed documents: 1
Input file: ./input.json
Output file: ./output.json
输出JSON格式:
[
{"text": "过滤后保留的文本1"},
{"text": "过滤后保留的文本2"}
]
环境要求
安装依赖: 本SKILL使用依赖 data_juicer,请在调用前安装好python环境并安装data_juicer:
pip install py-data-juicer
注意事项
- 比例计算:默认按字符计算,
tokenization=True时按token计算 - 默认值:
max_ratio默认无限制(保留所有高比例样本) - 过滤逻辑:只保留比例在 [min_ratio, max_ratio] 范围内的样本
- 适用场景:清理乱码、过滤特殊字符过多的文本