Skip to content

s2t: 為「复盘 → 復盤」補充顯式詞條與測試 - #1427

Merged
frankslin merged 1 commit into
masterfrom
claude/character-conversion-dictionary-vx2wod
Jul 14, 2026
Merged

frankslin merged 1 commit into
masterfrom
claude/character-conversion-dictionary-vx2wod

Conversation

@BYVoid

@BYVoid BYVoid commented Jul 14, 2026 •

Copy link
Copy Markdown
Owner

背景

在 56d028a(#758 的後續修正)之前,STPhrases.txt 中存在錯誤詞條 复盘 → 覆盤,因此已發布版本的 s2t 會把「复盘」轉成「覆盤」。該修正將詞條的 key 改為 覆盘 之後,「复盘」的正確輸出「復盤」目前僅依賴 STCharacters.txt 中 复 → 復 複 覆 的首位候選順序——既沒有顯式詞條,也沒有任何測試鎖定。考慮到這個詞條一週前才剛修正過,值得用顯式詞條與回歸測試把行為固定下來。

修改內容

  • data/dictionary/STPhrases.txt:新增 复盘 復盤(已用 data/scripts/sort.py 排序)。與既有的 复原 復原、复活 復活 等與首位候選一致的顯式詞條慣例相符。
  • test/testcases/testcases.json:新增 case_063_s2x(s2t/s2tw:赛后复盘 覆盘难照 → 賽後復盤 覆盤難照)與 case_064_t2x(t2s 往返:賽後復盤 覆盤難照 → 赛后复盘 覆盘难照),同時覆蓋新詞條與 56d028a 中改 key 後的 覆盘 → 覆盤 詞條。

為何是「復盤」而非「覆盤」

  1. 簡化字規範層面:1986 年重新發表的《简化字总表》明確將「覆」從「复」的對應繁體中移除——「覆」自此不再簡化(參見維基文庫《简化字总表(1986年版)》、汉字简化沿革)。因此規範簡體文本中的「复」只可能對應「復/複」;若原作者想表達「覆盤」,規範簡體本身就寫作「覆盘」,而`` OpenCC 已有 覆盘 → 覆盤 詞條處理該情形。`复盘 → 覆盤` 這種跨字位的映射本身就與 繁简转换「牴 -> 抵」;「復、複、覆」相关修正 #758 系列修正的原則相悖。
  2. 詞義層面:「复盘」指下完棋後按原進程把棋局重新恢復、推演一遍(引申為對過程的回顧檢討),取「復」的「再、還原」義,與「復原」「復現」同構。《现代汉语词典》第 7 版收詞形「复盘」:①棋類術語;②證券市場恢復交易。
  3. 「覆盤」是易混淆的歷史異體:台灣《重編國語辭典修訂本》收有「覆盤」,除棋類義外另有「比喻沉冤莫白、申訴無門」義(也作「覆盆」),兩義同形易生歧義。現代繁體使用中,中文維基百科條目以「復盤」為題,繁體社群討論(如`` Threads 上的正字討論)亦傾向以「復盤」避免與「覆盆」義相混。「覆盤」作為既有寫法仍由 覆盘 → 覆盤 保留,不受本 PR 影響。

驗證

  • 重建 .ocd2 後實測:s2t/s2tw/s2twp/s2hk 的「复盘」均輸出「復盤」;t2s 往返一致(復盤 → 复盘、覆盤 → 覆盘)。
  • 以本地 runner 全量回歸 testcases.json 全部 213 例:新增 2 例通過,其餘結果與 master 完全一致(master 上既有的 3 例 runner 差異與本修改無關)。
  • sort.py 冪等、key 唯一、格式檢查通過。

Lock in the Simplified-to-Traditional conversion of 复盘 as 復盤 with an
explicit phrase entry and round-trip test cases, so the behavior restored
by the PR #758 follow-up no longer depends solely on the first-candidate
order of 复 in STCharacters.
@frankslin
frankslin merged commit d2988ad into master Jul 14, 2026
45 checks passed
@frankslin
frankslin deleted the claude/character-conversion-dictionary-vx2wod branch July 14, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants