Quizzman Fanqie Engine 的 Candidate Ranking:當一個漢字擁有數十種反切

Quizzman Fanqie Engine 系列(二)・第八篇——Candidate Ranking。 上一篇:為什麼演算法無法僅靠 Pure Projection 推導所有漢越音

Quizzman Fanqie Engine 的 Candidate Ranking:當一個漢字擁有數十種反切

建構 Quizzman Fanqie Engine 最大的挑戰之一,並非漢越音推導演算法本身,而是一個看似簡單的問題:應該相信哪一條反切? 在《廣韻》《集韻》《唐韻》《康熙字典》等韻書中,同一個漢字往往記載了多種反切、多個讀音層次以及不同的註解。如果系統只是隨機選擇其中一條反切,結果將缺乏一致性,也難以驗證。因此,Quizzman Fanqie Engine 建立了 Candidate Ranking 機制,在產生最終結果之前,先對所有候選方案進行完整評估與排序。

一個漢字,不只有一條反切

初學反切的人,常會直覺認為:

一個漢字
    │
    ▼
一條反切

然而,歷史情況遠比這複雜。

不同時代編纂了不同的韻書,例如:

  • 《切韻》
  • 《唐韻》
  • 《廣韻》
  • 《集韻》
  • 《韻會》
  • 《康熙字典》

每部韻書可能依據不同文獻來源,記錄同一漢字的不同反切。

因此,一個漢字同時擁有多條反切,是十分正常的現象。

例如:

某字
 │
 ├──《廣韻》── AB切
 ├──《集韻》── CD切
 └──《唐韻》── EF切

這並不表示其中某一條反切錯誤。

它們只是反映不同時期、不同傳承的語音資料。

為什麼會有多條反切?

造成這種現象,主要有幾個原因。

1. 韻書編纂於不同時代

漢語讀音始終處於演變之中。

唐代記錄的反切,可能與宋代或清代的記載已有差異。

因此,各時代韻書自然可能留下不同的讀音。

2. 多種文獻來源共同收錄

《康熙字典》等大型字書,並非完全重新整理資料,而是大量引用前代文獻。

同一字條中,可能同時引用:

  • 《廣韻》
  • 《集韻》
  • 《唐韻》
  • 《正韻》
  • 《玉篇》

因此,候選反切數量大幅增加。

3. 同一漢字本來就有多個讀音

不少漢字本身就具有:

  • 多重字義
  • 多種讀音
  • 不同使用情境

每一種讀音,都可能對應不同的反切。

如果系統只保留其中一條,便會失去大量珍貴的歷史資訊。

Engine 不會立即選擇反切

Quizzman Fanqie Engine 的重要設計理念之一,就是:

讀取資料時,不立即決定採用哪一條反切。

相反地,Engine 會保留所有候選方案。

例如:

Character
    │
    ▼
Candidate A
Candidate B
Candidate C
Candidate D

每一個 Candidate 都保存完整資訊,包括:

  • 資料來源
  • 反切
  • 中古漢語音韻資料
  • Metadata
  • 可信度資訊

之後才開始進行評分。

Candidate 是什麼?

在 Quizzman Fanqie Engine 中,

Candidate 並不只是某一條反切。

它代表的是:

一套完整的讀音假設。

每個 Candidate 包含:

  • 反切
  • 聲母
  • 韻母
  • 開/合
  • 聲調
  • 重建中古漢語讀音
  • 推導漢越音
  • 推導拼音
  • 資料來源

也就是說,

Candidate 是一份完整的語音分析檔案,而不只是單一讀音。

並非所有資料來源都同樣可靠

假設同一個字有四條反切:

《廣韻》
   │
   ▼
   A

《集韻》
   │
   ▼
   B

《唐韻》
   │
   ▼
   C

《康熙字典》
   │
   ▼
   D

如果隨機選擇,

每次執行 Engine 都可能得到不同結果。

這顯然無法接受。

因此,

Quizzman 建立了資料來源評分(Source Ranking)

例如:

某些來源可能因為:

  • 更接近標準反切體系
  • 記錄較完整
  • 文獻可信度較高
  • 更適合作為漢越音重建依據

而獲得較高權重。

Candidate Ranking 不只看資料來源

資料來源只是評分的一部分。

Engine 還會綜合考量:

  • 中古漢語音韻資料是否合理
  • 漢越音推導是否符合規律
  • 是否符合標準漢越音層
  • Lexical 資料
  • 人工校訂讀音
  • 歷史例外

因此,

即使兩個 Candidate 都來自《廣韻》,

最後得到的分數仍可能完全不同。

Candidate Scoring 如何運作?

整體流程可概括如下:

Character
      │
      ▼
Candidate Generation
      │
      ▼
Candidate Validation
      │
      ▼
Source Score
      │
      ▼
Phonological Score
      │
      ▼
Lexical Score
      │
      ▼
Final Score
      │
      ▼
Best Candidate

各階段分工如下:

  • Candidate Generation:產生所有可能候選。
  • Candidate Validation:排除不合理候選。
  • Candidate Scoring:逐一評分。
  • Final Selection:選出最佳 Candidate。

不只是查字典比對

有人誤以為:

Candidate Ranking 只是比較哪個讀音最接近《康熙字典》或《康熙字典》。

事實並非如此。

如果只是單純比對字典,

Engine 就只是一本電子辭典。

Quizzman 採用的是多維度評估,同時整合:

  • 音韻規律
  • 歷史資料
  • 反切來源
  • 詞彙層(Lexical Layer)

只有當 Candidate 同時符合音韻規律與歷史證據時,才會被選為最佳結果。

Candidate Ranking 如何處理多音字?

許多漢字本來就具有多個讀音。

例如:

Character
     │
     ├── Reading A
     ├── Reading B
     └── Reading C

Candidate Ranking 並不試圖刪除其他讀音。

相反地,

Engine 保留所有候選,

再分析:

  • 哪個是主要讀音
  • 哪個屬於變體
  • 哪個屬於古讀
  • 哪個僅見於特定文獻

如此既能保存完整歷史資料,也能為使用者提供最適合的預設結果。

Candidate Ranking 與 Explainable AI

Quizzman Fanqie Engine 的一大特色是:

不只給答案,也能解釋答案。

例如:

Candidate A
Score:92

Candidate B
Score:84

使用者可以清楚知道:

  • Candidate 來自哪部文獻
  • 優勢在哪裡
  • 哪些因素獲得加分
  • 為何其他 Candidate 未被採用

這也是許多純機率式 AI 模型較難提供的能力。

Candidate Ranking 的核心理念:不是刪除資料,而是整理資料

Quizzman Fanqie Engine 並不追求唯一「絕對正確」的反切。

歷史語言本來就經常同時存在多種合理讀法。

真正重要的是:

  • 完整保存所有具有學術價值的候選資料。
  • 以一致的評分標準加以分析。
  • 根據不同應用情境,選出最合適的結果。

透過 Candidate Ranking,Engine 不僅能產生穩定且一致的推導結果,更將《廣韻》《集韻》《唐韻》《康熙字典》等典籍中大量零散的反切資料,整合為一個可追溯、可驗證、可解釋的結構化語音資料空間,讓每一個 Candidate 都能依據音韻規律與歷史文獻獲得完整說明。