為什麼你的日文注音 App 看起來不像日本書?
很多日文學習者第一次接觸 furigana,會以為它只是「把漢字讀音寫在上面」。這個理解不算錯,但很快就會遇到困惑。
同一句話 昨日、学校へ行った。,一個自動注音工具可能會給出 昨日、学校へ行った。;而一本兒童讀物、教科書或經過認真排版的出版物,可能更傾向於 昨日、学校へ行った。。
二者都在幫你讀日文,可它們回答的不是同一個問題。前者像是在回答「這句話讀出來是什麼聲音」,後者像是在回答「紙面上的這些漢字,分別應該怎樣被讀者認出來」。
先把 ruby 看成兩件事
furigana 在排版領域通常被稱為 ruby。橫排日文裡,它一般在文字上方;直排日文裡,它一般在文字右側。W3C 資料也說明 ruby 是日文排版的重要組成部分,預設字號常以正文字號的一半為基準。[1]
不過,「給誰加注音」和「怎樣擺放注音」是兩件不同的事。哪些字要加?所有漢字都加,還是只給難字加?注音掛在一個漢字上、一個熟語裡的每個漢字上,還是整個詞上?
JLREQ 把日文 ruby 關係分成三類:モノルビ、熟語ルビ、グループルビ。モノルビ 是一個親文字對應一個 ruby;熟語ルビ 是在熟語中既保持每個漢字與讀音的對應,又把熟語作為整體處理;グループルビ 則是把多個親文字作為一個整體來對應一串 ruby。[2]
第一條路線:形態素驅動
形態素驅動的出發點是語言分析。它先把句子切成詞或形態素單位,再給這些單位賦予讀音、詞性、原形、活用等資訊。
MeCab 這樣的日文形態素分析器會輸出表層形、詞性、原形、讀音、發音等欄位;UniDic 也明確是為形態素分析系統設計的日文詞典,並採用短單位,同時具有語彙素、語形、書字形、發音形等層級結構。[3] [4]
例如 学校へ行った,形態素驅動會很自然地得到 学校へ行った。它關心的是 学校 這個詞讀 がっこう,行った 這個活用形讀 いった。
這類注音非常適合自動化。學習 App、網頁外掛、文字轉語音、搜尋索引、電子詞典和 NLP 處理都喜歡這種路線。它能根據上下文處理多音詞,例如「研究生物」裡的 生物,和「生物請冷藏」裡的 生物。
盲點:詞的讀音不等於字的注音
行った 這個詞形讀 いった,但出版物給漢字加 ruby 時常常寫成 行った。因為 った 已經寫在正文裡了,不需要再放到 行 的 ruby 上。
学校 對朗讀完全夠用。但如果教材希望學生意識到 学 和 校 各自參與了讀音,排版上可能會處理成 学校。這裡的 がっ 不是 学 的孤立讀音 がく,而是熟語內部發生促音化後的對應讀音。
再看 今日、大人、小豆。這些詞很難誠實地拆成逐字讀音。這種時候,文字驅動體系也會承認:這裡應該作為一個整體標注。
第二条路线:文字驅動 / kanji-unit driven
文字驅動的出發點是書寫形態。它先看紙面上的文字:哪裡有漢字?這些漢字組成了什麼熟語?哪些字對目標讀者來說需要幫助?如果加 ruby,是一個字一個字加,還是整個詞一起加?
JLREQ 還區分総ルビ和パラルビ:前者是給文本中的漢字都加 ruby,後者是只給一部分難讀漢字加,甚至可以只在初次出現時加。[2] 這也是很多日本出版物看起來「很講究」的原因:它不只是幫你讀出來,還在維護紙面結構的完整性。
熟語ルビ与グループルビ
熟語ルビ 是最容易被忽略的中間態。学校 並不是簡單地把兩個單字 ruby 疊在一起;它在視覺上要考慮 学校 作為一個熟語的整體平衡,同時又讓每個漢字和一段讀音發生關係。
當整個詞的讀音無法自然分配給每個漢字時,就會轉向グループルビ:今日、明日、大人、一昨日。日本常用漢字表也把一些当て字、熟字訓等放在附表中,以詞的形態列出讀法。[5]
差異
| 維度 | 形態素驅動 | 文字 / kanji-unit 驅動 |
|---|---|---|
| 首要問題 | 這句話、這個詞怎麼讀? | 紙面上的哪些漢字需要怎樣標? |
| 基本單位 | 形態素、詞、短單位、活用單位 | 親文字、單個漢字、熟語、整詞 |
| 典型輸出 | 学校、行った | 学校、行った |
| 強項 | 自動化、上下文判讀、整句朗讀、TTS、詞彙學習 | 紙面清晰、漢字學習、兒童讀物、正式排版 |
| 弱項 | 不一定能告訴你每個漢字承擔哪段讀音 | 自動化困難,規則多,常需要校對 |
為什麼教科書和兒童讀物偏向文字驅動?
因為它們不只是讓孩子「讀出聲音」,還要讓孩子逐漸學會漢字。日本學校教育中,漢字學習本身有年級配當;文部科學省關於音訓分配的說明也提到會考慮兒童發展階段、學習負擔、日常生活與學校生活需要、社會生活需要、漢字意義理解等因素。[6] [7]
所以 学校 當然能讀,但如果教學目標包括認識 学 和 校,那麼 学校 就更有教學價值。行った 對朗讀足夠,但 行った 更能告訴學生:漢字 行 承擔的是 い,後面的 った 是假名正文的一部分。
四個例子
学校。 形態素驅動:学校。文字驅動:学校。前者適合背詞,後者適合學漢字和讀出版物。
行った。 形態素驅動:行った。文字驅動:行った。這個例子能說明日文漢字讀音常常和送假名一起工作。
今日。 兩種路線通常都會寫 今日,因為強行寫成 今日 反而會誤導學習者。
生物。 形態素驅動非常在意上下文。生物を研究する 裡的 生物 多半是 せいぶつ;生物を冷蔵庫に入れる 裡的 生物 是 なまもの。文字驅動則可能把前者處理成 生物,把後者整體處理成 生物。
對學習者來說哪一種更好?
如果你正在讀一篇文章,只想順暢讀出句子,形態素驅動很好。它像語音導航,直接告訴你詞怎麼讀、句子怎麼念。
如果你正在學漢字、讀兒童書、做精讀或製作教材,文字驅動更好。它不會只把整詞讀音丟給你,而是盡量讓你看見「讀音如何附著在紙面文字上」。
給網頁、App 和教材:理想方案是兩階段混合
高品質日文注音系統應該先用形態素分析得到候選讀音,負責斷詞、詞性、原形、活用和上下文讀法;再用出版式規則決定 ruby 的親文字範圍,判斷是モノルビ、熟語ルビ,還是グループルビ。
真正難的地方往往在第二階段。它已經不是單純 NLP,而是「語言學 + 漢字教育 + 日文排版 + 讀者設計」。
最後的比喻:兩副眼鏡
形態素驅動像一副「聽覺眼鏡」。它把日文看成即將被讀出來的聲音流,核心問題是:這句話怎樣念?
文字驅動像一副「書寫眼鏡」。它把日文看成印在紙上的漢字、假名、熟語、行列和版面,核心問題是:這個頁面怎樣幫助讀者讀懂,並順便學會文字?
OCAT 提示:在 OCAT - 設定 - 試驗選項介面中,使用者可以自由選擇文字(orthographic / kanji-unit)驅動或形態素(morphological)驅動,預設是文字素模式。這可能是絕無僅有支援這種模式的日文學習 App。
