Agent Skills
返回列表
测试集 Query 清洗器

测试集 Query 清洗器

数据分析 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a83cc0cd/testdata 技能到你的AI助手中

技能介绍

要解决的问题

一份原始测试集 Query,通常是从日志、标注后台或用户反馈里随手导出的,落盘之后往往混着三类脏数据:

  • 格式问题:空值、空白行、全角半角混用、首尾多余空格
  • 重复数据:同一条 query 被多次采集,或彼此只差标点
  • 语义无效:你好、测试、随便、然后 这类脱离上下文就毫无信息量的输入

前两类靠规则就能解决,第三类麻烦得多——它不是语法错误,而是“这句话本身就不该出现在测试集里”。多数清洗脚本只做到去空去重,剩下的脏 query 会一路流进评估环节,最后变成无法解释的指标波动。

技能如何工作

这个技能用两层架构对应两类问题:

结构层处理格式和语法,包括空值、去重、空白规整。

语义层用启发式规则筛掉含义层面的无效数据,按三类分别打标:

  • filler:语气词、寒暄(如 你好、嗯)
  • fragment:以连词开头的短 query(≤15 字)
  • vague:测试、随便 等无意义输入

执行流程固定为四步,目的是避免一上来就全量跑:

  1. 确认输入:文件路径、格式(xlsx / csv)、目标列名(默认 query,也可能是 问题 或 用户输入)
  2. 确认清洗范围:只做结构层,还是追加语义层(推荐后者)
  3. 预览效果:先看会被筛掉哪些,再决定是否全量
  4. 输出结果:清洗后文件 + 报告,报告给出行数变化和语义层分类统计

核心脚本是 scripts/clean_query.py。语义清洗建议带上 --semantic --report 先看报告,确认无误再全量执行。

适用边界

语义层是启发式规则,不是模型判断,所以误杀和漏网都可能发生:

  • --filler 最安全,几乎不会伤到正常 query
  • --fragment 对 ≤15 字且以连词开头的输入特别敏感,长 query 不受影响
  • --vague 风险最高:测试、随便 在闲聊场景可能是合法输入

其他注意点:

  • 默认组合可能过于激进,先预览再全量
  • --mask 脱敏不可逆,确认需要再执行
  • 全量清洗前建议备份原文件
  • 依赖 openpyxl,无其他外部依赖

详细规则和常见组合见 references/cleaning-rules.md。

使用场景

  • 从日志或标注后台导出测试集,需去空值去重并筛掉问候语等语义无效的 query
  • 评测前要用两层架构分步清洗 query,并保留语义层报告以说明数据被剔除的原因
  • 表格含非默认列名,需指定列清洗,并先用报告参数预览效果再执行全量清洗
  • 原始 query 含敏感信息,需先脱敏再清洗,且脱敏不可逆必须提前与用户确认

适合人员

  • 数据分析师:需要在模型评测前清洗 Query 表格,并剔除语义无效的测试数据
  • NLP 工程师:要在评测前清洗 Query 表格,并确认两层架构的分类统计结果
  • 标注质检员:需要按列名预览清洗效果,并依据语义层报告核对被剔除的 query