<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
duplikate — 数据去重与结构化转换技能
一、能力边界速查卡
1.1 能做(核心能力)
| 编号 | 能力项 | 说明 | 适用场景示例 | |------|--------|------|--------------| | C1 | 数据/文件/URL → 结构化结果 | 将非结构化输入转换为 JSON/CSV 等结构化格式 | 从网页提取表格、从文本提取字段 | | C2 | 关键信息识别与保留 | 自动识别输入中的核心字段(如名称、日期、编号)并保留 | 从日志中提取错误码与时间戳 | | C3 | 按约定格式生成输出 | 支持用户指定的字段结构、文件类型(JSON/CSV/Markdown) | 生成符合下游系统要求的接口数据 | | C4 | 置信度标注 | 对不确定的字段标注置信度等级,辅助人工复核 | 识别模糊日期、不完整地址时 | | C5 | 批量处理与自定义格式 | 支持多文件/多 URL 批量执行,支持自定义模板 | 批量清洗 100 个 CSV 文件 |
1.2 不能做(明确边界)
| 编号 | 限制项 | 说明 | |------|--------|------| | L1 | 不执行外部代码 | 不运行用户提供的脚本或程序 | | L2 | 不访问私有网络 | 仅处理用户明确提供的 URL 或文件 | | L3 | 不进行语义理解 | 不推断隐含意图,仅按规则提取显式信息 | | L4 | 不保证数据准确性 | 输出结果需用户自行校验,置信度低于 0.7 的字段会明确标注 |
1.3 适用对象
- 数据工程师:需要快速清洗和结构化原始数据
- 业务分析师:需要从多来源汇总信息并统一格式
- 运维人员:需要解析日志、配置文件并提取关键指标
- 普通用户:需要将零散信息整理为表格或清单
二、触发方式与场景映射
2.1 触发词
- 主触发词:
duplikate - 同义场景词:
去重、结构化转换、数据清洗、批量整理
2.2 场景映射表
| 用户说(大白话) | 实际触发能力 | 示例 | |------------------|--------------|------| | "帮我把这个网页里的产品列表整理成表格" | C1 + C3 | 输入 URL,输出 CSV | | "这个文件夹里的 50 个日志文件,提取错误码和出现次数" | C1 + C5 | 批量处理日志文件 | | "把这份客户名单去重,保留最新记录" | C2 + C5 | 输入 CSV,输出去重后的 CSV | | "这个 API 返回的数据太乱,帮我整理成固定格式" | C3 + C4 | 输入 JSON,输出规范 JSON |
三、标准处理流程
3.1 前置条件
| 条件项 | 要求 | 检查方式 |
|--------|------|----------|
| 输入文件 | 与工作目录同一路径,命名不含空格 | ls 确认文件存在 |
| 输入格式 | 支持 .txt / .csv / .json / .md / .html / URL | 文件头 10 行预览 |
| 输出格式 | 用户指定或默认 JSON | 确认字段结构 |
| 环境依赖 | Python 3.8+(仅批量模式需要) | python3 --version |
3.2 执行步骤
步骤 1:输入解析
- 读取输入来源(文件/URL/直接粘贴文本)
- 识别输入类型(表格、列表、键值对、自由文本)
- 提取候选字段(名称、日期、编号、金额、状态等)
字段识别规则表:
| 字段类型 | 识别规则 | 示例 |
|----------|----------|------|
| 日期 | 匹配 YYYY-MM-DD / YYYY/MM/DD / MM-DD-YYYY | 2026-08-20 |
| 编号 | 匹配 [A-Z]{2,5}-\d{4,} | ORD-20260820-001 |
| 金额 | 匹配 ¥?\d+(\.\d{2})? | ¥1,299.00 |
| 状态 | 匹配 成功/失败/待处理/进行中 | 待处理 |
| 名称 | 非数字、非日期、长度 2-50 的连续文本 | 华东区销售报表 |
步骤 2:结构化处理
- 按字段识别规则提取关键信息
- 对重复条目进行去重(基于主键字段,默认取第一条)
- 对缺失字段标注
[需核实:字段名]
去重规则参数表:
| 参数 | 默认值 | 可选值 | 说明 |
|------|--------|--------|------|
| --dedup-key | 第一列 | 任意字段名 | 去重依据的主键 |
| --dedup-strategy | first | first / last / merge | 重复时保留哪条记录 |
| --case-sensitive | false | true / false | 去重时是否区分大小写 |
步骤 3:置信度标注
| 置信度等级 | 判定条件 | 输出标记 |
|------------|----------|----------|
| 高(0.9-1.0) | 字段值完整且匹配规则 | 无特殊标记 |
| 中(0.7-0.89) | 字段值存在但格式不规范 | [需核实:字段名] |
| 低(<0.7) | 字段值缺失或无法识别 | [缺失:字段名] |
步骤 4:输出生成
- 将结果整理为约定格式(默认 JSON)
- 自查:字段完整性、格式正确性、置信度标注
- 有疑问时向用户二次确认
输出格式示例(JSON):
{
"meta": {
"source": "input.csv",
"processed_at": "2026-08-20T14:30:00+08:00",
"total_records": 128,
"unique_records": 97,
"duplicates_removed": 31
},
"data": [
{
"id": "ORD-20260820-001",
"date": "2026-08-20",
"amount": 1299.00,
"status": "成功",
"confidence": 0.95
},
{
"id": "ORD-20260820-002",
"date": "[需核实:date]",
"amount": 599.00,
"status": "待处理",
"confidence": 0.72
}
]
}
3.3 输出规范
| 输出项 | 规范要求 |
|--------|----------|
| 文件命名 | {原文件名}_processed.{ext} |
| 编码 | UTF-8 |
| 时间戳 | ISO 8601 格式(含时区) |
| 元数据 | 必须包含来源、处理时间、总记录数、去重数 |
| 置信度 | 每个字段必须包含 confidence 属性 |
四、置信度门控机制
4.1 基本原则
- 不编造:信息不足时输出
[需核实:字段名]占位,绝不猜测 - 不遗漏:所有识别出的字段必须输出,即使置信度低
- 可追溯:每个字段的置信度值必须可解释
4.2 置信度计算规则
| 场景 | 置信度 | 说明 |
|------|--------|------|
| 字段值完整且格式完全匹配 | 0.95-1.0 | 如日期 2026-08-20 |
| 字段值存在但格式有偏差 | 0.7-0.89 | 如日期 2026/8/20 |
| 字段值缺失 | 0.3-0.5 | 如空值或 N/A |
| 字段值无法解析 | 0.1-0.3 | 如乱码或无关文本 |
4.3 人工复核建议
- 置信度 ≥ 0.9:无需复核
- 置信度 0.7-0.89:建议抽查 20%
- 置信度 < 0.7:必须人工确认后再使用
五、错误码体系
| 错误码 | 含义 | 提示话术 | 修正步骤 |
|--------|------|----------|----------|
| E001 | 输入文件不存在 | "未找到指定文件,请确认路径是否正确" | 检查文件名和路径,重新执行 |
| E002 | 输入格式不支持 | "当前格式不在支持列表中,请转换为 .txt/.csv/.json/.md/.html" | 转换格式后重试 |
| E003 | 字段识别失败 | "无法从输入中识别有效字段,请检查数据格式" | 提供更规范的数据样本 |
| E004 | 去重键不存在 | "指定的去重键在数据中不存在,请检查字段名" | 使用 --list-fields 查看可用字段 |
| E005 | 输出目录无权限 | "无法写入输出文件,请检查目录权限" | 更换输出目录或调整权限 |
| E006 | URL 访问失败 | "无法访问指定 URL,请检查网络或 URL 有效性" | 确认 URL 可访问后重试 |
| E007 | 批量处理中断 | "批量处理在第 N 个文件时中断,已完成部分已保存" | 查看部分结果,修复问题后继续 |
六、FAQ 反模式对照
6.1 常见坑
| 坑编号 | 常见错误做法 | 正确做法 |
|--------|--------------|----------|
| F01 | 直接对全量数据执行,不做样本测试 | 先用 1-2 条样本验证输出格式 |
| F02 | 忽略置信度标注,直接使用全部数据 | 对低置信度字段进行人工复核 |
| F03 | 修改原始文件 | 始终保留原始文件备份,输出到新文件 |
| F04 | 去重时使用不合适的键 | 确认主键唯一性,避免误删有效数据 |
| F05 | 批量处理时中断不记录进度 | 使用 --resume 参数支持断点续跑 |
6.2 反模式对照表
| 反模式 | 问题描述 | 推荐替代方案 | |--------|----------|--------------| | 盲目信任输出 | 不检查置信度直接使用结果 | 设置置信度阈值,低于阈值自动标记 | | 过度清洗 | 删除"看起来没用"的字段 | 保留原始字段,额外添加处理字段 | | 忽略编码问题 | 中文乱码后仍继续处理 | 统一使用 UTF-8 编码,处理前检查 | | 一次性处理 | 不保存中间结果 | 分步骤执行,每步保存中间文件 |
七、渐进式阅读路径
7.1 速查卡(30 秒上手)
1. 准备输入文件 → 2. 运行 duplikate --input 文件路径
3. 查看输出 JSON → 4. 检查置信度标注 → 5. 完成
7.2 新手路径(首次使用)
- 阅读「能力边界速查卡」了解能做什么
- 准备一个小的测试文件(10 行以内)
- 按「标准处理流程」步骤 1-4 执行
- 查看输出格式示例,理解字段结构
- 遇到问题查「错误码体系」
7.3 进阶路径(批量/复杂场景)
- 掌握「去重规则参数表」,自定义去重策略
- 使用批量模式处理多文件,配合
--resume断点续跑 - 自定义输出模板,对接下游系统
- 结合「置信度门控机制」建立数据质量检查流程
- 参考「FAQ 反模式对照」优化处理流程
八、命令行接口参考
8.1 命令格式
duplikate [选项] <输入路径>
8.2 参数表
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| --input | string | 必填 | 输入文件路径或 URL |
| --output | string | 自动生成 | 输出文件路径 |
| --format | string | json | 输出格式:json/csv/md |
| --dedup-key | string | 第一列 | 去重主键字段 |
| --dedup-strategy | string | first | 去重策略:first/last/merge |
| --confidence-threshold | float | 0.0 | 低于此置信度标记为需核实 |
| --list-fields | flag | false | 列出输入中的可用字段 |
| --resume | flag | false | 断点续跑(批量模式) |
| --selftest | flag | false | 运行自检 |
| --version | flag | false | 显示版本号 |
8.3 使用示例
# 基本用法:处理单个文件
duplikate --input ./data.csv
# 指定输出格式和去重键
duplikate --input ./data.csv --format csv --dedup-key order_id
# 批量处理(目录下所有 .log 文件)
duplikate --input ./logs/ --batch
# 自检
duplikate --selftest
# 版本信息
duplikate --version
九、用户协议
<!-- user-agreement-injected -->使用本 Skill 即表示您同意以下条款:
-
责任承担:使用者自行承担使用本 Skill 产生的全部责任。本 Skill 提供的输出结果仅供参考,不构成任何形式的保证或承诺。使用者应对输出结果进行独立验证,并对其使用行为负全部责任。
-
禁止反向工程:使用者不得对本 Skill 进行反向工程、反编译、破解或试图提取源代码。不得移除、篡改或绕过本 Skill 中的任何版权声明、水印或技术保护措施。
-
合规使用:使用者应确保使用本 Skill 的行为符合所有适用的法律法规。不得使用本 Skill 处理非法、侵权或违反公序良俗的内容。
-
免责声明:本 Skill 按"现状"提供,不附带任何明示或暗示的保证。作者不对因使用本 Skill 而产生的任何直接或间接损失承担责任。
-
协议更新:作者保留随时修改本协议的权利。修改后的协议将在本 Skill 文档中公布,继续使用即视为接受修改后的协议。
十、许可证(License)
<!-- professional-license-embedded -->MIT License
版权所有 (c) 2026 LingDataWorks
特此免费授予任何获得本软件及相关文档文件("软件")副本的人,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按"现状"提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或使用本软件或其他交易而产生、与之相关或与之相关的任何索赔、损害或其他责任承担责任,无论是在合同诉讼、侵权诉讼还是其他诉讼中。
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 数据去重 结构化转换 批量处理 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成数据去重 结构化转换 批量处理,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:将用户提供的数据、文件或URL转换为结构化结果,支持批量处理与自定义格式输出。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:将用户提供的数据、文件或URL转换为结构化结果,支持批量处理与自定义格式输出。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
数据去重 结构化转换 批量处理——将用户提供的数据、文件或URL转换为结构化结果,支持批量处理与自定义格式输出。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd duplikate
# 2. 运行自检确认环境
python run.py --selftest
# 3. 开始使用
python run.py --help
使用(Usage)
python run.py <命令> [参数] # 执行核心功能
python run.py --selftest # 运行自检
python run.py --dry-run # 预览模式
python run.py --verbose # 详细输出
示例(Examples)
# 示例 1: 查看帮助
python run.py --help
# 示例 2: 执行核心功能
python run.py main --selftest file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
微信扫一扫