data_normalizer

数值标准化工具。读取JSONL数据,按指定字段执行Z-score或Min-Max标准化,并保留原始值与变更标记。 当用户提到数值标准化、归一化、字段规整、范围映射等需求时使用此skill。 即使用户没有明确说出"data_normalizer",只要任务涉及对某个数值字段做标准化处理,就应该使用此skill。 不负责四舍五入/小数位统一(见DC3_RoundOff)、文本清洗、类别编码或多字段联合

SKILL.md

GitHub

data_normalizer 数据标准化 Skill

功能概述

本 skill 对 JSONL 中的单一数值字段进行标准化处理,支持 Z-score 标准化和 Min-Max 归一化两种方式。 它会在保留原始值的同时写回标准化结果,并为每条命中的记录补充变更标记。

触发条件

当用户请求以下任务时,应使用此 skill:

  • 数值标准化
  • 归一化
  • 字段规整
  • 范围映射
  • Z-score 变换

核心参数说明

必需参数

参数 说明
--input 输入JSONL文件路径
--output 输出JSONL文件路径
--field 要标准化的字段名
--method 标准化方法

可选参数

参数 说明 默认值
--new_min Min-Max 目标最小值 0
--new_max Min-Max 目标最大值 1
--log_file 日志文件路径 -

输入文件格式

{"id": 1, "score": 87.65}
{"id": 2, "score": 120}
{"id": 3, "score": -5}

输入必须是 JSONL,每行是一条 JSON 记录。 目标字段应为可转成数值的字段;无法转换的值会被跳过。

使用方法

Z-score 标准化

python scripts/run_data_normalizer.py \
  --input ./input.jsonl \
  --output ./output.jsonl \
  --field score \
  --method z_score

Min-Max 归一化到 [0, 100]

python scripts/run_data_normalizer.py \
  --input ./input.jsonl \
  --output ./output.jsonl \
  --field score \
  --method min_max \
  --new_min 0 \
  --new_max 100

输出示例

每条被处理记录会增加以下字段:

  • _{field}_normalized: true
  • _{field}_original: 原始值

示例输出:

{"id": 1, "score": 0.44, "_score_normalized": true, "_score_original": 87.65}

环境要求

  • Python 3.x
  • 只依赖标准库

注意事项

  1. 只处理可转为数值的字段值。
  2. z_score 会按当前样本整体均值和标准差计算。
  3. min_max 在所有值相等时会统一映射为 new_min。
  4. 小数位统一 / 四舍五入需求请使用 DC3_RoundOff。