为什么你的日语注音 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 学习和采摘日语句子,收藏再重放。随时学习「xxx」用日语或其他外语怎么说。

OCAT 是一款通过与 AI 对话来学习日语口语、粤语和英语等外语的应用。

用户可轻松获得带注音、可播放、可收藏的地道句子,迅速积累属于自己的日常口语句库,再循环播放、磨耳朵,自然实现脱口而出。

背单词不如背句子!

OCAT 源自日语「おしえてoshiete」,意为「请教教我」。

下载 Android APK从小米应用商店下载

主要功能