# 決策樹

> 只包含 ZHTW 專案特有的決策流程，通用軟體工程流程省略

## 新增詞彙

```
要求新增 "X" → "Y"
       │
       ▼
  "X" 台灣不用嗎？ ──否──→ 拒絕（如「權限」是正確用語）
       │是
       ▼
  "Y" 台灣常用嗎？ ──否──→ 建議更好的翻譯
       │是
       ▼
  "X" 是其他詞的子字串嗎？
       │
  ┌────┴────┐
  是        否
  │         │
  ▼         ▼
加入       直接新增
identity   pytest 驗證
mapping
```

**範例**：
- `"算法"` 是 `"演算法"` 的子字串 → 需要 `"演算法": "演算法"`
- `"軟件"` 不是任何詞的子字串 → 直接加入

---

## 誤判處理

```
報告 "A" 被誤轉為 "B"
       │
       ▼
  詞庫有 "A" → "B" 嗎？
       │
  ┌────┴────┐
  有        沒有
  │         │
  ▼         ▼
該移除嗎？  子字串問題
  │         → 加 identity
  ┌──┴──┐
  是    否
  │     │
  ▼     ▼
移除   加 identity
       保護
```

**常見誤判**：
| 誤判 | 原因 | 解決 |
|-----|------|-----|
| 演算法→演演算法 | 缺 identity | 加 `"演算法": "演算法"` |
| 中文檔案→中文件案 | 重疊比對 | 加 `"檔案": "檔案"` |
| 橙色→柳橙色 | 詞太廣 | 移除 `"橙"` |

---

## 快速檢查指令

```bash
# 檢查詞庫衝突
zhtw validate

# 測試特定文字
python -c "
from zhtw.matcher import Matcher
from zhtw.dictionary import load_builtin
m = Matcher(load_builtin())
print(m.find_matches('測試文字'))
"
```
