功能概述
该算子根据指定字段的值进行过滤,保留字段值在目标值列表中的样本。支持嵌套字段和列表字段。
核心参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| input_path | string | 是 | - | 输入数据文件路径 (JSON/JSONL格式) |
| output_path | string | 是 | - | 输出数据文件路径 (JSONL格式) |
| field_key | string | 是 | - | 字段路径,用点号分隔,如 'meta.suffix' 或 'meta.path.test' |
| target_value | list | 是 | - | 目标值列表,如 ['.pdf', '.txt'] |
| num_proc | int | 否 | 1 | 并行处理的进程数 |
输入数据格式
输入文件应为 JSON 或 JSONL 格式,每行包含一个样本,样本需包含指定的字段:
{"text": "文本内容", "meta": {"suffix": ".pdf", "star": 50}}
支持嵌套字段:
{"text": "文本内容", "meta": {"path": {"test": ["txt", "json"]}}}
输出数据格式
输出为 JSONL 格式,每行一个符合条件的样本,保持原始字段结构。
使用示例
命令行调用
# 根据 meta.suffix 字段过滤
python scripts/run_specified_field_filter.py \
--input_path /path/to/input.jsonl \
--output_path /path/to/output.jsonl \
--field_key meta.suffix \
--target_value .pdf \
--target_value .txt
# 根据嵌套列表字段过滤
python scripts/run_specified_field_filter.py \
--input_path /path/to/input.jsonl \
--output_path /path/to/output.jsonl \
--field_key meta.path.test \
--target_value pdf \
--target_value txt \
--target_value json
参数说明
--input_path: 输入文件路径--output_path: 输出文件路径--field_key: 字段路径,支持嵌套(如 meta.suffix)--target_value: 目标值,可重复指定多个值--num_proc: 并行进程数,默认1
注意事项
field_key使用点号分隔多级字段(如meta.path.test)- 如果字段值是列表,则列表中所有值都必须在
target_value中才保留 - 这是
NON_STATS_FILTERS,不需要计算统计信息,处理效率较高