📊

財務文本 金額解析 貨幣標準化

👤 我是大門牙 📦 v1.0.4 ⭐ 4.4 ⬇️ 34 下載
📊 資料分析 免費

📖 技能介紹


slug: acts-as-money name: acts-as-money displayName: 財務文本 金額解析 貨幣標準化 description: 從混合文本中提取金額與幣種,輸出標準化JSON資料,供下游系統直接使用。 version: 1.0.4 rules_version: cpr-20260815-n476 license: MIT source_project: original source_url: https://github.com/bluebigman/skill-factory-originals/tree/main/acts-as-money copyright_holder: 原創作者(自持版權) ai_generated: true ai_tools: ["DeepSeek"] disclaimer: 本Skill由AI輔助生成,提供使用指導和最佳實踐。使用前請閱讀相關文件。 author: DataForge Studio agent_created: true trigger_words: ["acts as money", "金額轉換", "貨幣解析", "money gem", "金額欄位處理", "貨幣識別", "金額提取", "幣種標準化"]


⚠️ 本內容僅供一般資訊參考,不構成法律、財務、稅務、投資或醫療建議。 涉及合同簽署、報稅、投資、診療等專業決策時,請務必諮詢持證專業人士,並由使用者自行承擔決策後果。

本內容由 AI 生成,僅供學習參考

acts-as-money — 金額與幣種標準化提取器

一、能力邊界(一頁紙速查卡)

1.1 能做什麼

能力項 說明 示例
單條文本解析 從一段文字中提取所有金額及其幣種 "訂單總額 USD 1,200.50,運費 EUR 45" → 兩條記錄
批次檔案處理 讀取 CSV/TSV 檔案,對指定列逐行提取 --file data.csv --column amount
多幣種識別 支援常見貨幣符號與程式碼(USD/EUR/CNY/JPY/GBP 等 30+ 種) $¥£USDEUR人民幣
數字格式相容 處理千分位逗號、小數點、歐洲反寫格式 1,234.561.234,56 均識別為 1234.56
置信度評估 每條輸出附帶 confidence 欄位(high/medium/low) 格式歧義時標記為 low
標準化輸出 統一輸出為 { "amount": 1234.56, "currency": "EUR", "confidence": "high" } 下游直接入庫

1.2 不能做什麼

限制項 說明
不執行匯率換算 只提取與標準化,不做幣種間轉換
不識別手寫體/圖片 僅處理文本輸入,不接 OCR
不處理非金額數字 電話號碼、日期、郵編等不會被提取
不推斷隱含幣種 若文本未標註幣種,輸出 currency: null 並降置信度
不修改原始檔 預設只輸出到 stdout 或指定輸出檔案

1.3 適用物件

  • 財務系統對接人員:需要將合同、發票、報表中的金額批次結構化
  • 資料分析師:清洗混合格式的金額欄位
  • 後端開發者:需要標準化金額 API 的呼叫方
  • 審計人員:需要快速核對多幣種金額的準確性

二、觸發方式

2.1 觸發詞

當輸入包含以下任一關鍵詞時,本 Skill 自動啟用:

  • acts as money
  • 金額轉換
  • 貨幣解析
  • money gem
  • 金額欄位處理
  • 貨幣識別
  • 金額提取
  • 幣種標準化

2.2 場景對映表

使用者說(大白話) 實際觸發動作
"幫我把這段文字裡的錢都找出來" 呼叫單條文本解析
"這個 CSV 裡的金額列格式很亂,幫我統一" 呼叫批次檔案處理
"看看這合同裡有沒有美元和歐元的金額" 呼叫多幣種提取
"這個數字 1.234,56 到底是多少錢?" 呼叫格式歧義解析,輸出 low 置信度
"把提取結果存到新檔案裡" 呼叫 --output 引數寫檔案

三、標準流程

3.1 前置條件

  • 輸入文本為 UTF-8 編碼
  • 檔案處理時,檔案需為 CSV/TSV 格式,且包含表頭
  • 系統已安裝 Python 3.8+(若使用 CLI 方式)

3.2 執行步驟

步驟 1:準備輸入

方式 A:單條文本

acts as money --input "採購合同總價 USD 15,000.00,含稅。另付運費 EUR 250.50。"

方式 B:檔案批次

acts as money --file invoices.csv --column amount --output result.json

引數說明:

引數 必填 預設值 說明
--input 二選一 待解析的文本字串
--file 二選一 待解析的 CSV/TSV 檔案路徑
--column --file 搭配 指定要解析的列名
--output stdout 輸出 JSON 檔案路徑
--selftest 執行內建自檢
--version 顯示版本號

步驟 2:執行解析

系統按以下順序處理:

  1. 掃描文本中的貨幣符號/程式碼(正則匹配)
  2. 對每個貨幣標識,提取其相鄰的數字片段

    小蔥技能7w4.net持續更新中。

  3. 根據數字格式規則(千分位、小數點位置)解析數值
  4. 計算置信度:
  5. high:格式明確,無歧義(如 USD 1,200.50
  6. medium:格式可識別但存在輕微歧義(如 ¥1000 無小數位)
  7. low:格式存在多解(如 1.234,56 可能是歐洲格式也可能是美國格式)

步驟 3:檢視輸出

{
  "results": [
    {
      "original_text": "USD 15,000.00",
      "amount": 15000.00,
      "currency": "USD",
      "confidence": "high",
      "position": [0, 14]
    },
    {
      "original_text": "EUR 250.50",
      "amount": 250.50,
      "currency": "EUR",
      "confidence": "high",
      "position": [24, 34]
    }
  ],
  "summary": {
    "total_found": 2,
    "low_confidence_count": 0,
    "processing_time_ms": 12
  }
}

步驟 4:低置信度處理

當某條結果 confidencelow 時:

  1. 系統在輸出中附加 "needs_review": true 標記
  2. 建議人工核對原始文本片段
  3. 可通過 --strict 引數讓系統在遇到 low 置信度時返回非零退出碼,便於 CI/CD 攔截

3.3 輸出規範

  • 輸出始終為合法 JSON
  • 金額統一為浮點數(保留兩位小數)
  • 幣種統一為 ISO 4217 三字母程式碼
  • 每條結果包含原始文本片段和位置資訊,便於追溯

四、置信度門控機制

4.1 判定規則

置信度 判定條件 示例
high 貨幣符號明確 + 數字格式無歧義 $1,234.56EUR 100
medium 貨幣符號明確 + 數字格式有輕微歧義(如無小數位) ¥1000USD 5
low 貨幣符號明確 + 數字格式存在多解 1.234,56(歐洲 vs 美國格式)
low 貨幣符號缺失,僅憑上下文推斷 "總價 15000 元"("元"非標準程式碼)

4.2 資訊不足時的處理

當系統無法確定某個欄位時,不會編造資料,而是輸出佔位符:

{
  "amount": 1234.56,
  "currency": "[需核實:currency]",
  "confidence": "low"
}

佔位符格式統一為 [需核實:欄位名],下游系統可據此觸發人工複核流程。

4.3 門控建議

  • 生產環境建議:confidencelow 的記錄不自動入庫,進入人工稽核佇列
  • 批次處理時,可先執行一次統計,檢視 low 佔比,決定是否需要預處理

五、錯誤碼體系

錯誤碼 含義 提示話術 修正步驟
E001 輸入為空 "輸入文本不能為空,請提供至少一個字元。" 檢查輸入引數
E002 檔案不存在 "指定的檔案路徑不存在,請確認路徑是否正確。" 檢查檔案路徑
E003 列名不存在 "CSV 檔案中未找到指定的列名,請檢查表頭。" 使用 --list-columns 檢視可用列
E004 無有效金額 "未在輸入中找到任何可識別的金額,請檢查文本格式。" 確認文本包含貨幣符號或程式碼
E005 格式嚴重歧義 "檢測到多個可能的金額解析結果,請人工確認。" 使用 --format-hint 指定格式(us/eu
E006 輸出檔案不可寫 "無法寫入輸出檔案,請檢查許可權或路徑。" 檢查目錄許可權
E007 編碼不支援 "輸入檔案編碼不是 UTF-8,請轉換後重試。" 使用 iconv 轉換編碼

六、FAQ 反模式對照

反模式 1:忽略置信度直接入庫

錯誤做法:將所有結果(包括 low 置信度)直接寫入資料庫。

正確做法:設定門控規則,low 置信度記錄進入人工稽核佇列,確認後再入庫。

反模式 2:假設所有金額都是美元

錯誤做法:看到數字就預設是 USD,不檢查貨幣符號。

正確做法:依賴本工具的幣種識別能力,未識別出幣種時標記為 [需核實:currency]

反模式 3:手動處理歐洲數字格式

錯誤做法:遇到 1.234,56 就手動替換逗號和點。

正確做法:讓工具自動識別,或通過 --format-hint eu 明確指定格式,避免誤判。

反模式 4:批次處理前不預覽

錯誤做法:直接對整個檔案執行,不檢查中間結果。

正確做法:先取 10 行樣本執行,檢查輸出質量,再全量處理。

反模式 5:忽略位置資訊

錯誤做法:只取金額數值,丟棄 position 欄位。

正確做法:保留位置資訊,便於回溯到原始文本,審計時能快速定位。


七、漸進式披露

7.1 速查卡(30 秒上手)

# 單條文本
acts as money --input "費用 USD 99.99"

# 檔案批次
acts as money --file data.csv --column amount --output result.json

# 自檢
acts as money --selftest

7.2 新手路徑(5 分鐘)

  1. 執行 acts as money --selftest 確認安裝正確
  2. --input 測試幾條簡單文本,觀察輸出格式
  3. 準備一個 CSV 檔案,用 --file + --column 批次處理
  4. 檢視輸出中的 confidence 欄位,理解不同置信度的含義
  5. 對 low 置信度的記錄,回到原始文本人工核對

7.3 進階路徑(深入使用)

  1. 格式歧義處理:學習歐洲數字格式(1.234,56 = 1234.56),使用 --format-hint 引數
  2. CI/CD 整合:使用 --strict 模式,讓 low 置信度導致非零退出碼,阻斷髮布流程
  3. 自定義貨幣擴充套件:編輯配置檔案 currencies.json,新增自定義貨幣符號
  4. 效能最佳化:對超大檔案(>100MB),使用 --chunk-size 引數分塊處理
  5. 下游對接:將輸出 JSON 直接匯入資料庫(如 PostgreSQL 的 JSONB 欄位)或報表工具(如 Tableau)

八、技術實現細節

8.1 數字格式識別規則

格式 示例 解析結果 置信度
美國格式 1,234.56 1234.56 high
歐洲格式 1.234,56 1234.56 low(需確認)
無分隔符 123456 123456.00 medium
科學計數法 1.2e3 1200.00 medium

8.2 支援的幣種列表(部分)

程式碼 符號 名稱
USD $ 美元
EUR 歐元
CNY ¥ / 元 人民幣
JPY ¥ 日元
GBP £ 英鎊
CHF Fr 瑞士法郎
AUD A$ 澳元
CAD C$ 加元
HKD HK$ 港幣
SGD S$ 新加坡元

完整列表見 currencies.json,支援自定義擴充套件。

8.3 正則匹配核心邏輯(虛擬碼)

pattern = 貨幣符號或程式碼 + 可選空格 + 數字模式
數字模式 = [0-9]{1,3}([.,][0-9]{3})*([.,][0-9]+)? 或 [0-9]+([.,][0-9]+)?

九、使用者協議

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

  1. 責任承擔:使用者應自行承擔因使用本 Skill 產生的全部責任。本 Skill 僅提供金額提取與標準化功能,不構成任何財務、法律或審計建議。因使用本 Skill 導致的任何直接或間接損失,開發者不承擔任何責任。

  2. 禁止反向工程:禁止對本 Skill 進行反向工程、反編譯、破解、篡改或試圖提取原始碼(除非適用法律允許)。禁止將本 Skill 用於任何違反法律法規或平臺規定的用途。

  3. 資料安全:使用者應對輸入資料的合法性、合規性負責。本 Skill 不儲存、不傳輸任何使用者資料至第三方。所有處理均在本地完成。

  4. 合規使用:使用者應確保使用本 Skill 的行為符合當地法律法規及平臺規定。因違規使用產生的後果由使用者自行承擔。

  5. 無擔保宣告:本 Skill 按"現狀"提供,不附帶任何明示或暗示的擔保,包括但不限於適銷性、特定用途適用性和非侵權性的擔保。


十、許可證(License)

MIT License

Copyright (c) 2024 DataForge Studio

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


本 Skill 由 AI 輔助生成,僅供參考。使用前請閱讀相關文件。

🤖 AI 評測

這個 Skill 質量還不錯,文件寫得很詳細,小白也能看懂怎麼用。它能識別常見貨幣符號和金額格式,對人民幣、美元、歐元等都能正確處理,輸出結果帶有"可信度"標記,方便判斷是否需要人工核對。但不足的是,遇到歐洲那種帶點的數字格式(比如1.234,56)可能會識別錯誤,而且預設當美元處理可能不符合國內使用習慣。總體適合需要批次處理財務資料的使用者,但遇到複雜格式時要多留意結果準確性。

📊 多維度評分

適應性4.7
規範性4.5
有效性4.2
可靠性4.4
可信度4.5

📁 包含檔案 (3 個)

📄 SKILL.md 13.6 KB
📄 scripts/_test_amounts.json 72 B
📄 scripts/run.py 35.4 KB