一句「繁體中文比簡體中文多花 29% 的 token」是觀察,不是發現。把它變成發現,需要四件在這門課裡會反覆出現的東西:
研究平台(zh-tokenizer.html)與分析程式碼(tokfair/)是起點,不是終點。
提出一個新的想法,用程式把它實作進這個專案。評分看的不是程式量,而是你加的那個變項讓原本看不見的什麼東西變得可見。
| # | 題目 | 要回答的問題 |
|---|---|---|
| A1 | 加入其他 tokenizer 家族:Llama-3、Qwen、Gemma、DeepSeek、XLM-R、bert-base-chinese | 字形效果的大小是否隨「誰訓練詞表」而變?中文團隊訓練的詞表是否對繁體較友善? |
| A2 | 換掉抽樣框:維基百科 zh-tw/zh-cn/zh-hk,或 FLORES-200 的 zho_Hant/zho_Hans,n ≥ 500 | 手寫語料得到的效果量,在真實文本分布上還成立嗎? |
| A3 | 實作 CKIP 斷詞版的 fertility 與 boundary F1 | tokenizer 與人類斷詞標準的一致率有多高?繁簡之間是否不同? |
| A4 | 詞表標註:抽樣 200 個多字漢字 token,兩位標註者分類並報 Cohen's κ | 一個 BPE 詞表在語言學上是什麼樣的清單? |
| A5 | 加入台語漢字、客語漢字、族語羅馬字、注音、全形/半形等條件 | 「公平性」的邊界在哪裡?誰的書寫系統從來沒被計入? |
| A6 | 實作熵切分(BLT 式 dynamic patching)的小型復刻 | 動態切分是否比 BPE 更接近人類詞界? |
| A7 | 偵測訓練不足的 token(undertrained / glitch tokens) | 詞表的哪一部分是被浪費掉的? |
繳交物:pull request 或 repo fork(含可執行的 run_study.py 路徑)+ 3–5 頁說明文件。須包含:動機、實作的變項、結果,以及你的擴充推翻或修正了原本的哪一個說法。
使用現有系統(可小幅修改輸入),設計並執行一項評量。評分看的不是效果有多大,而是你的效果不能是設計的副產品。
| # | 題目 | 假設範例 |
|---|---|---|
| B1 | 罕見句式/語體:文言文、法律、學術中文、注音文、火星文 | 語體愈偏離網路白話,tokens/字 愈高;繁簡差距在文言文中縮小 |
| B2 | 外來詞:音譯 vs 意譯(雷射/激光、維他命/维生素) | 意譯詞由常用語素組成,應比音譯詞省 token |
| B3 | 專名與譯名:川普/特朗普、雪梨/悉尼、梵谷/梵高 | 譯名的 token 成本反映該譯名在訓練語料中的頻率 |
| B4 | 領域混排:中英夾雜、程式碼與中文註解 | 語言切換點會產生額外的 token 邊界成本 |
| B5 | 標點與排版:全形/半形、直書引號、數字書寫 | 排版慣例的地域差異本身就是一種稅 |
| B6 | 歷時比較:《紅樓夢》vs 現代白話 vs 2020s 網路中文 | 詞表是近年網路語料的快照,愈接近該分布愈省 |
| B7 | 構式完整性:成語、越 X 越 Y、離合詞、重疊式 | BPE 對固化程度不敏感,只對字串頻率敏感 |
繳交物:4–6 頁報告 + 可重現的 notebook 或 script。
| 面向 | 配分 | 好的樣子 |
|---|---|---|
| 問題與假設 | 20 | 假設有方向、可被推翻,且理由來自語言學而非直覺 |
| 設計與控制 | 25 | 因子分離乾淨;控制條件說得出理由;知道設計會產生什麼假效果 |
| 測量與統計 | 25 | 指標定義清楚;分析單位正確(項目內對比);區間與效果量齊備 |
| 詮釋與語言學論證 | 20 | 從數字回到語言學問題;能說明機制而不只是相關 |
| 可重現性 | 10 | 別人跑得起來;隨機種子、版本、資料來源齊備 |
加分(最多 +5):發現並記錄研究平台本身的錯誤、或提出一個我們沒想到但可測的反例。
s2twp 做字形轉換——那個設定會同時轉換詞彙,等於把想分離的兩個因子又黏回去。請用 s2t / t2s。hk_confidence="low" 的構式題目前混了書面粵語(我哋/冇/畀)。
那是已知限制,不是範本。作業若沿用香港欄,請先改成香港書面中文,或把它當成單獨的語法條件並說清楚。
git clone https://github.com/lopentu/genai4humanities2026 cd genai4humanities2026/lab/session-9/tokfair pip install regex opencc-python-reimplemented jieba numpy scipy bash vendor_ranks.sh python run_study.py python build_web.py --out ../zh-tokenizer.html
先把課堂數字跑出來,確認環境正確,再開始改。
stimuli.py 的 docstring 說明了設計為什麼長這樣;
metrics.py 的 docstring 列出每個指標的文獻出處(請自行查核,那些引用是憑記憶寫的)。