返回 Skill 列表
extension
分类: 数据与分析无需 API Key

金额识别 货币标准化 字段清洗

从混合文本中提取金额与币种,输出标准化JSON数据,供下游系统直接使用。

person作者: user_2fd890c9hubcommunity

⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。

<!-- professional-disclaimer-injected -->

本内容由 AI 生成,仅供学习参考

<!-- ai-generated-notice -->

acts-as-money — 金额识别与货币标准化 Skill

一、能力边界(一页纸速查卡)

1.1 能做什么

| 能力项 | 说明 | 示例 | |--------|------|------| | 金额提取 | 从混合文本中识别所有金额表达式 | "订单总价$1,200.50,运费€45" → 提取两笔金额 | | 币种识别 | 自动识别货币符号、ISO代码、中文币种名称 | ¥ / CNY / 人民币 / RMB / 美元 / USD | | 格式标准化 | 将各种金额写法统一为规范格式 | "1,200.50" → 1200.50;"1.234,56" → 1234.56 | | 批量处理 | 支持单条文本或CSV文件批量处理 | 整列金额字段清洗 | | 行号保留 | 文件处理时保留原始行号,便于回溯 | 第3行、第7行有金额 | | 置信度输出 | 每条结果附带置信度标记 | high / medium / low |

1.2 不能做什么

| 限制项 | 说明 | |--------|------| | 不做汇率换算 | 仅识别与标准化,不进行币种间兑换 | | 不做语义判断 | 不判断金额是收入还是支出、是否合理 | | 不处理手写体 | 仅支持电子文本输入 | | 不识别非金额数字 | 电话号码、日期、数量等不会被提取 | | 不修改原始文件 | 输出为新文件或标准输出,原文件不变 |

1.3 适用对象

  • 财务人员:整理报销单、发票中的金额字段
  • 数据分析师:清洗含金额的混合文本数据
  • 开发人员:将非结构化文本中的金额转为结构化数据
  • 运营人员:从用户反馈、评论中提取消费金额信息

二、触发方式

2.1 触发词

直接使用以下任一触发词即可激活:

  • acts as money
  • 金额转换
  • 货币解析
  • money gem
  • 金额字段处理
  • 金额提取
  • 币种标准化

2.2 场景映射表

| 用户说(大白话) | 实际需求 | 推荐调用方式 | |-----------------|----------|-------------| | "把这段文本里的钱都提出来" | 提取所有金额及币种 | acts as money --input "文本内容" | | "帮我标准化这些金额字段" | 清洗CSV中的金额列 | acts as money --file data.csv --column amount | | "这堆数据里哪些是钱?" | 识别并标记金额字段 | acts as money --input "文本" --format json | | "把美元和人民币分开列出来" | 按币种分类输出 | acts as money --input "文本" --group-by currency | | "这个文件里的金额格式太乱了" | 统一金额格式 | acts as money --file data.csv --column price --normalize |


三、标准流程

3.1 前置条件

| 条件 | 要求 | 检查方法 | |------|------|----------| | 输入文本 | 非空,包含至少一个金额表达式 | 目测或 wc -c 检查 | | 输入文件 | CSV格式,有表头行 | head -5 file.csv 查看 | | 列名指定 | 使用 --column 参数时,列名必须与表头完全一致 | head -1 file.csv 确认 | | 环境依赖 | Python 3.8+,无额外第三方库依赖 | python3 --version |

3.2 执行步骤

场景A:单条文本处理

  1. 准备包含金额的文本,例如:

    本月收入:工资 ¥15,000.00,兼职收入 $800,报销 €120.50
    
  2. 调用命令:

    acts as money --input "本月收入:工资 ¥15,000.00,兼职收入 $800,报销 €120.50"
    
  3. 查看输出结果(JSON格式):

    {
      "status": "success",
      "count": 3,
      "results": [
        {"index": 1, "amount": 15000.00, "currency": "CNY", "original": "¥15,000.00", "confidence": "high"},
        {"index": 2, "amount": 800.00, "currency": "USD", "original": "$800", "confidence": "high"},
        {"index": 3, "amount": 120.50, "currency": "EUR", "original": "€120.50", "confidence": "high"}
      ]
    }
    
  4. 若某条结果置信度为 low,需人工核对原始文本。

场景B:CSV文件批量处理

  1. 准备CSV文件 data.csv,内容示例:

    id,amount,note
    1,"¥1,200.50","办公用品"
    2,"USD 45.00","快递费"
    3,"1.234,56 €","差旅费"
    
  2. 调用命令:

    acts as money --file data.csv --column amount
    
  3. 检查输出中的 confidence 字段:

    {
      "status": "success",
      "total_rows": 3,
      "processed": 3,
      "low_confidence_rows": [3],
      "results": [
        {"row": 1, "amount": 1200.50, "currency": "CNY", "confidence": "high"},
        {"row": 2, "amount": 45.00, "currency": "USD", "confidence": "high"},
        {"row": 3, "amount": 1234.56, "currency": "EUR", "confidence": "low"}
      ]
    }
    
  4. 对低置信度行(第3行)进行人工复核,确认 1.234,56 € 是欧洲格式的 1234.56 欧元。

  5. 将结果写回新文件:

    acts as money --file data.csv --column amount --output cleaned.csv
    

3.3 输出规范

| 输出字段 | 类型 | 说明 | |----------|------|------| | status | string | successerror | | count / total_rows | int | 识别到的金额数量 | | results | array | 每条金额的详细信息 | | results[].index / row | int | 序号或行号 | | results[].amount | float | 标准化后的数值 | | results[].currency | string | ISO 4217 三字母币种代码 | | results[].original | string | 原始文本片段 | | results[].confidence | string | high / medium / low |


四、置信度门控

4.1 置信度判定规则

| 置信度 | 判定条件 | 示例 | |--------|----------|------| | high | 币种符号明确 + 数字格式标准 | $1,200.50¥500EUR 100 | | medium | 币种可推断但格式有歧义 | 1.200,50(可能是欧洲格式的1200.50) | | low | 币种缺失或数字格式严重冲突 | 1000(无币种)、1.234(可能是1234或1.234) |

4.2 信息不足时的处理

当遇到无法确定的信息时,输出 [需核实:字段名] 占位符,绝不编造

{
  "index": 5,
  "amount": 1000.00,
  "currency": "[需核实:币种]",
  "original": "费用1000元整",
  "confidence": "low",
  "note": "文本中出现'元',但无法确认是人民币、台币还是其他币种"
}

4.3 人工复核建议

  • 置信度为 low 的记录,建议人工查看原始文本
  • 置信度为 medium 的记录,建议抽样复核
  • 置信度为 high 的记录,可直接使用

五、错误码体系

| 错误码 | 错误描述 | 提示话术 | 修正步骤 | |--------|----------|----------|----------| | E001 | 输入为空 | "输入文本为空,请提供包含金额的文本或文件路径" | 检查输入参数,确保 --input--file 有值 | | E002 | 文件不存在 | "指定的文件不存在,请检查路径是否正确" | 使用 ls 确认文件路径,检查文件名拼写 | | E003 | 列名不存在 | "CSV文件中未找到指定的列名,请确认表头" | 使用 head -1 file.csv 查看实际表头 | | E004 | 未识别到金额 | "在输入中未找到任何金额表达式" | 确认文本中确实包含金额,检查是否使用了特殊符号 | | E005 | 格式解析失败 | "金额格式无法解析,请检查原始数据" | 查看原始文本,手动确认金额写法 | | E006 | 币种代码无效 | "识别到未知的币种代码" | 检查币种是否为ISO 4217标准代码 | | E007 | 输出文件无法写入 | "无法写入输出文件,请检查权限" | 使用 touch 测试写入权限,更换输出路径 |


六、FAQ 反模式

6.1 常见坑

| 坑点 | 错误做法 | 正确做法 | |------|----------|----------| | 千分位混淆 | 把 1,200 当作 1.2 处理 | 根据上下文判断:$1,200 是 1200 美元,1,200 单独出现时标记为 medium 置信度 | | 欧洲数字格式 | 把 1.234,56 当作 1.23456 | 识别为欧洲格式的 1234.56,标记为 medium 置信度 | | 币种符号缺失 | 看到 500 就默认是人民币 | 无币种符号时标记为 low 置信度,输出 [需核实:币种] | | 中文金额单位 | 忽略"万""亿"等中文单位 | 识别 5万 为 50000,3.2亿 为 320000000 | | 混合文本干扰 | 把日期 2024.05.01 中的数字当金额 | 仅识别带币种符号或明确金额单位的数字 |

6.2 反模式对照表

| 反模式 | 问题 | 推荐替代 | |--------|------|----------| | 直接拼接原始文本到输出 | 下游系统无法解析 | 始终输出结构化 JSON | | 忽略置信度直接使用 | 错误数据进入下游 | 先过滤 low 置信度记录 | | 修改原始文件 | 数据不可追溯 | 输出到新文件,保留原文件 | | 猜测缺失币种 | 产生错误数据 | 使用 [需核实:币种] 占位 | | 一次性处理超大文件 | 内存溢出 | 分批处理,每批不超过 10000 行 |


七、渐进式披露

7.1 速查卡(30秒上手)

输入文本 → 提取金额 → 标准化 → 输出JSON

7.2 新手路径(5分钟掌握)

  1. 准备一段包含金额的文本
  2. 运行 acts as money --input "你的文本"
  3. 查看输出的 JSON 结果
  4. 若置信度为 low,人工核对原始文本

7.3 进阶路径(深入使用)

  1. 学习 CSV 批量处理:--file + --column 参数
  2. 掌握置信度门控机制,建立数据质量检查流程
  3. 理解欧洲数字格式与千分位规则,处理国际化数据
  4. 结合下游系统,将标准化金额直接导入数据库或报表工具

7.4 参数速查表

| 参数 | 类型 | 必填 | 默认值 | 说明 | |------|------|------|--------|------| | --input | string | 二选一 | 无 | 待处理的文本内容 | | --file | string | 二选一 | 无 | 待处理的CSV文件路径 | | --column | string | 否 | 无 | CSV中金额所在的列名 | | --output | string | 否 | 标准输出 | 结果输出文件路径 | | --format | string | 否 | json | 输出格式(json / csv) | | --group-by | string | 否 | 无 | 按币种分组输出 | | --normalize | boolean | 否 | false | 是否统一金额格式 | | --selftest | boolean | 否 | false | 运行自检 | | --version | boolean | 否 | false | 显示版本信息 |


八、使用示例

8.1 单条文本

acts as money --input "订单金额:$2,500.00,已付定金 ¥800,尾款 €1,700"

输出:

{
  "status": "success",
  "count": 3,
  "results": [
    {"index": 1, "amount": 2500.00, "currency": "USD", "original": "$2,500.00", "confidence": "high"},
    {"index": 2, "amount": 800.00, "currency": "CNY", "original": "¥800", "confidence": "high"},
    {"index": 3, "amount": 1700.00, "currency": "EUR", "original": "€1,700", "confidence": "high"}
  ]
}

8.2 CSV文件处理

acts as money --file expenses.csv --column amount --output cleaned_expenses.csv

8.3 按币种分组

acts as money --input "收入:$1000,支出:¥500,投资:€200" --group-by currency

输出:

{
  "status": "success",
  "groups": {
    "USD": [{"amount": 1000.00, "confidence": "high"}],
    "CNY": [{"amount": 500.00, "confidence": "high"}],
    "EUR": [{"amount": 200.00, "confidence": "high"}]
  }
}

九、自检与版本

9.1 自检命令

acts as money --selftest

自检内容:

  • 基本金额识别($100¥200€300
  • 千分位格式(1,00010,000.50
  • 欧洲格式(1.234,56
  • 中文单位(5万3.2亿
  • 无币种金额(500 → low 置信度)

9.2 版本信息

acts as money --version

输出:acts-as-money version 1.0.0


十、用户协议

<!-- user-agreement-injected -->

使用本 Skill 即表示您同意以下条款:

  1. 责任承担:使用者应自行承担使用本 Skill 的全部责任。因使用本 Skill 产生的任何直接或间接损失,Skill 作者及贡献者不承担任何责任。

  2. 禁止反向工程:禁止对本 Skill 进行反向工程、反编译、破解、篡改或试图提取源代码(除非适用法律允许)。

  3. 合规使用:使用者应确保使用本 Skill 的行为符合当地法律法规及平台规定。

  4. 数据安全:使用者应对输入数据的合法性、合规性负责。本 Skill 不存储、不传输任何用户数据至第三方。

  5. 无担保声明:本 Skill 按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。


十一、许可证(License)

<!-- professional-license-embedded -->

MIT License

版权所有 (c) 2024 数据工坊

特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人士使用本软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人士这样做,但须满足以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

本软件按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权或其他方面,由软件或软件的使用