# ZHTW 深度測試計畫

## 目標

確認 zhtw 能正確處理各種繁簡轉換情境，評估詞庫完整度。

---

## 現況盤點

### 詞庫規模

| 分類 | 詞條數 | 說明 |
|------|--------|------|
| common.json | 900 | 通用詞彙（最大） |
| chars.json | 789 | 一字多義處理 |
| daily.json | 231 | 每日用語 |
| medical.json | 230 | 醫療術語 |
| it.json | 201 | 資訊科技 |
| base.json | 178 | UI/基礎術語 |
| legal.json | 173 | 法律術語 |
| geography.json | 166 | 地名 |
| gaming.json | 150 | 遊戲術語 |
| finance.json | 146 | 金融術語 |
| ecommerce.json | 116 | 電商術語 |
| education.json | 113 | 教育術語 |
| business.json | 81 | 商業術語 |
| imported.json | 47 | 使用者匯入 |
| **總計** | **3,687** | |

### Identity Mappings（防誤轉）

共 65 條，覆蓋：
- 只（只有/只是 vs 一隻）
- 後（皇后 vs 之後）
- 發/髮、乾/幹、製/制 等一字多義

---

## 測試方法論

### 1. 單元測試（現有 208 tests）

```
tests/
├── test_char_conversion.py    # 字元轉換
├── test_converter.py          # 轉換核心
├── test_matcher.py            # 匹配演算法
├── test_dictionary.py         # 詞庫載入
└── ...
```

### 2. 邊界案例測試

測試原理：針對容易出錯的情境設計測試案例

```python
test_cases = [
    # === 一字多義 ===
    ("只有一隻貓", "只有一隻貓"),      # 只→隻（量詞）
    ("皇后駕到", "皇后駕到"),          # 後→後（皇后保持）
    ("之後再說", "之後再說"),          # 後→後（時間）
    ("頭髮很長", "頭髮很長"),          # 發→髮
    ("發現問題", "發現問題"),          # 發→發
    ("幹部培訓", "幹部培訓"),          # 幹→幹

    # === 術語轉換 ===
    ("軟體開發", "軟體開發"),          # IT術語
    ("使用者介面", "使用者介面"),        # IT術語
    ("程式設計師寫程式碼", "程式設計師寫程式碼"),

    # === 醫療術語 ===
    ("做超音波檢查", "做超音波檢查"),
    ("愛滋病預防", "愛滋病預防"),

    # === 地名 ===
    ("雪梨歌劇院", "雪梨歌劇院"),

    # === 每日用語 ===
    ("列印文件", "列印文件"),
    ("隨身碟", "隨身碟"),
]
```

### 3. 準確度測試結果

**✅ 當前狀態：14/14 通過 (100%)**

| 輸入 | 輸出 | 狀態 |
|------|------|------|
| 只有一隻貓 | 只有一隻貓 | ✅ |
| 皇后駕到 | 皇后駕到 | ✅ |
| 之後再說 | 之後再說 | ✅ |
| 頭髮很長 | 頭髮很長 | ✅ |
| 發現問題 | 發現問題 | ✅ |
| 幹部培訓 | 幹部培訓 | ✅ |
| 軟體開發 | 軟體開發 | ✅ |
| 使用者介面 | 使用者介面 | ✅ |
| 程式設計師寫程式碼 | 程式設計師寫程式碼 | ✅ |
| 做超音波檢查 | 做超音波檢查 | ✅ |
| 愛滋病預防 | 愛滋病預防 | ✅ |
| 雪梨歌劇院 | 雪梨歌劇院 | ✅ |
| 列印文件 | 列印文件 | ✅ |
| 隨身碟 | 隨身碟 | ✅ |

---

## 已修復的問題

### ✅ P0 - 字元轉換缺失（已修復）

補齊 77 條基礎簡繁字元對應：
- 動物類：貓/貓、魚/魚、鳥/鳥、龍/龍、龜/龜、蝦/蝦
- 動詞類：駕/駕、買/買、賣/賣、講/講、談/談、謝/謝
- 身體類：腸/腸、腎/腎、膽/膽、齒/齒
- 物品類：錢/錢、鋼/鋼、鐘/鐘

### ✅ P1 - 術語 key 格式不一致（已修復）

修正 imported.json 中 35 個繁體 key → 簡體：
- 程式員 → 程式設計師
- 代碼 → 程式碼
- 函數 → 函式
- 變量 → 變數
- 等等...

### ✅ P2 - 術語覆蓋不足（已修復）

補充缺失術語：
- 隨身碟 → 隨身碟

---

## 修復歷程

| 階段 | 動作 | 準確率 | 詞條數 |
|------|------|--------|--------|
| 初始 | 發現問題 | 66% | 3,481 |
| P0 | 補齊字元 | 80% | 3,558 |
| P1 | 統一術語 key | 86% | 3,686 |
| P2 | 補上 隨身碟 | **100%** | **3,687** |

---

## 產業覆蓋分析

### 已有產業

| 產業 | 檔案 | 詞條數 | 完整度 |
|------|------|--------|--------|
| IT/科技 | it.json | 201 | ⭐⭐⭐ |
| 醫療 | medical.json | 230 | ⭐⭐⭐ |
| 法律 | legal.json | 173 | ⭐⭐⭐ |
| 金融 | finance.json | 146 | ⭐⭐ |
| 電商 | ecommerce.json | 116 | ⭐⭐ |
| 教育 | education.json | 113 | ⭐⭐ |
| 遊戲 | gaming.json | 150 | ⭐⭐⭐ |
| 商業 | business.json | 81 | ⭐⭐ |
| 地理 | geography.json | 166 | ⭐⭐⭐ |

### 待擴充的產業

- 製造業/工業
- 建築/房地產
- 餐飲/飯店
- 媒體/新聞
- 娛樂/影視
- 體育/運動
- 農業
- 能源/環保
- 政府/公共行政

---

## 測試專家角色

### 語言專家
- **台灣母語者**：驗證轉換結果符合台灣用語
- **中國母語者**：提供真實簡體樣本
- **香港母語者**：測試 HK→TW 轉換
- **語言學者**：一字多義語境判斷

### 領域專家
- **IT 工程師**：軟體術語
- **醫療人員**：醫療術語
- **法律/財經專業**：正式文書用語

### 技術測試
- **QA 工程師**：邊界條件、效能
- **文字編輯**：大量文字校對
- **NLP 專家**：LLM 模式準確度

---

## 後續改進方向

### Phase 1：擴充產業詞庫

優先順序：
1. 媒體/新聞（內容產業常用）
2. 製造業（台灣產業特色）
3. 政府/公共行政（公文常用）

### Phase 2：增加測試案例

- 長文穩定性測試
- 混合語言測試（中英夾雜）
- 程式碼區塊測試

---

## 指標定義

| 指標 | 計算方式 | 目標 | 當前 |
|------|----------|------|------|
| 準確率 | 正確轉換 / 總測試案例 | >95% | ✅ 100% |
| 覆蓋率 | 有規則的字詞 / 常用簡體字詞 | >90% | 進行中 |
| 誤轉率 | 錯誤轉換 / 總轉換數 | <1% | 進行中 |

---

*最後更新：2026-01-03*
