為什麼你的日文注音 App 看起來不像日本書?

形態素驅動與文字驅動:日文 furigana 的兩條路線

很多日文學習者第一次接觸 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。

參考資料

  1. Rules for Simple Placement of Japanese Ruby
  2. Requirements for Japanese Text Layout 日本語組版処理の要件
  3. MeCab: Yet Another Part-of-Speech and Morphological Analyzer
  4. UniDic glossary
  5. 文化庁 常用漢字表
  6. 学年別漢字配当表
  7. 文部科学省 音訓の小・中・高等学校段階別割り振り表

OCAT

通過 AI 學習和採摘日文句子,收藏再重放。

OCAT 是一款透過與 AI 對話來學習日文口語、中文、粵語和英文的應用。

使用者可輕鬆獲得帶注音、可播放、可收藏的地道句子,迅速積累屬於自己的日常口語句庫,再循環播放、磨耳朵,自然實現脫口而出。

背單字不如背句子!

OCAT 源自日文「おしえてoshiete」,意為「請教教我」。

主要功能