为什么你的日语注音 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。
