
Sumibi 搭配 LLM 的日语同音异义词转换评测:用 20 句假名输入做对照实验
Sumibi 搭配 LLM 的日语同音异义词转换评测:用 20 句假名输入做对照实验
介绍如何设计并执行一组小规模对照实验,检验 LLM 驱动的日语输入法 Sumibi 能否依据句子语义,在假名输入中选对同音异义词,并与 Mozc 的结果逐句比对。内容涵盖实验设计、输入构造、评分口径、结果记录表,以及如何解读这类小样本结论的边界。
日语输入法在把假名转成汉字时,最难的环节之一是同音异义词的选择。同一个读音「こうせい」,在「修正错字」的语境下应写作「校正」,在「安排章节顺序」的语境下应写作「構成」。传统输入法主要依赖词典和短距离的 n-gram 统计,而基于大语言模型的输入法(例如 Sumibi)则可能利用整句的语义线索来做判断。这篇教程要解决的问题是:如何用一组可控的小规模实验,检验「模型能否依据句子语义选对同音异义词」,并把结果与 Mozc 这类传统输入法逐句对照。适合已经能运行 Sumibi、想自己复现或扩展这类评测的读者,也适合想理解「小样本评测能说明什么、不能说明什么」的读者。
需要先说明一点:这类实验的结论边界很窄。用 20 句人工构造的句子得到的差异,只能说明「在这个设定下观察到了差异」,不能直接推广为「某输入法的整体转换准确率」。下面的步骤会把实验设计、输入构造、评分口径和结果记录都写清楚,方便你按同样的框架换成自己的模型或自己的句子集。
准备工作
环境与工具
- Sumibi:需要能够通过 Emacs 版的基准测试客户端调用,并且可以指定使用的模型。本文示例使用
gpt-6.1-sol作为后端模型。具体可用的模型名称、调用方式与版本,请以 Sumibi 官方当前信息为准。 - Mozc:作为传统输入法的对照基线,使用默认词典与默认转换设置即可。
- 一份句子集:本文使用 20 句,其中 16 句构成 8 组「同读音、不同语义」的对照句,另 4 句是线索靠近目标词的短句。
- 记录表格:用于逐句记录两种方式的输出与判定结果。
前置概念
实验要检验的「理解语义」,在这里有一个明确的、可操作的定义:能够根据句子的内容,在多个同音候选写法之间做出正确的选择。它不涉及模型是否具有类似人类的内部理解,也不讨论「统计方法」与「非统计方法」的对立——两者都在做统计学习,真正的区别在于候选评估时使用了哪些信息:词典加短 n-gram 主要看邻近词的搭配,而 LLM 可以利用整句的上下文。
因此实验设计的关键是:让目标词的正确写法只能由句子语义决定,而不能由紧邻的几个词决定。如果线索词就贴在目标词旁边,传统方法也可能选对,实验就失去了区分度。
输入形式的统一
为了让比较聚焦在「从读音选汉字」这一环节,两种方式都接收全文平假名的输入,而不是罗马字。这样可以把「罗马字到假名的读音解析」和「假名到汉字的候选选择」两个环节分开,避免读音解析的差异混入结果。如果你要扩展实验,可以额外加一组罗马字输入作为对照,用来观察读音解析环节本身带来多少影响。
操作步骤
第一步:构造对照组句子
核心设计是「成对句」:两句共享同一个读音位置,但前半句的语义相反或不同,从而要求不同的写法。以下 8 组共 16 句,括号内为关注的目标词。P07 与 P08 特意加入了否定结构,用来检验模型是否真的读懂了句子的逻辑关系。
| 编号 | 参考句(括号内为关注词) |
|---|---|
| P01-A | 誤字や脱字を直す必要があるので、編集者は夕方から原稿を(校正)した。 |
| P01-B | 話の順番を組み立てる必要があるので、編集者は夕方から原稿を(構成)した。 |
| P02-A | 質問への返事がまだ届いていないので、担当者に早めの(回答)をお願いした。 |
| P02-B | 冷凍した肉がまだ硬いままなので、担当者に早めの(解凍)をお願いした。 |
| P03-A | 壁のひび割れと雨漏りを直したいので、管理会社に来月の(改修)を依頼した。 |
| P03-B | 使い終わった容器をまとめて引き取ってほしいので、管理会社に来月の(回収)を依頼した。 |
| P04-A | 最新のデータに置き換える準備ができたので、私たちは予定の時刻に(更新)を始めた。 |
| P04-B | 全員が列をそろえて歩く準備ができたので、私たちは予定の時刻に(行進)を始めた。 |
| P05-A | 歯車が連動して動く仕組みを知りたくなり、研究者は資料を集めて(機構)を調べた。 |
| P05-B | その土地の一年を通じた雨量と気温を知りたくなり、研究者は資料を集めて(気候)を調べた。 |
| P06-A | 病原体がいつ体内に入ったのかを確かめるため、去年の(感染)の記録を調べた。 |
| P06-B | どの試合を現地で見たのかを確かめるため、去年の(観戦)の記録を調べた。 |
| P07-A | 誤字を直すのではなく、章の順番を組み直すために、編集者は原稿を(構成)した。 |
| P07-B | 章の順番を組み直すのではなく、誤字を直すために、編集者は原稿を(校正)した。 |
| P08-A | 質問に答えてほしいのではなく、凍った肉を柔らかくしてほしいので、担当者に(解凍)を頼んだ。 |
| P08-B | 凍った肉を柔らかくしてほしいのではなく、質問に答えてほしいので、担当者に(回答)を頼んだ。 |
另加 4 句短句作为补充对照,线索词离目标词较近:
| 编号 | 参考句 |
|---|---|
| C01 | 誤字を直すために(校正)した。 |
| C02 | 質問に(回答)した。 |
| C03 | 冷凍した肉を(解凍)した。 |
| C04 | ひび割れた壁を(改修)した。 |
构造句子时有几个要点:
- 成对句的后半段尽量保持一致,只改前半段的语义。例如 P08 的两句后半都是「担当者に〇〇を頼んだ」,区别只在前面是「不要回答问题」还是「不要解冻肉」。
- 避免在目标词紧邻位置放决定性线索,否则传统方法也能选对,实验无法区分两种机制。
- 加入否定、转折等结构,这类结构对只看局部搭配的方法最不友好,也最能体现整句语义的作用。
- 控制正确写法的分布,不要让某个词在多数句子里都是正确答案,否则模型可能靠偏置得分。
第二步:把参考句转成平假名输入
参考句是带汉字的,实际输入需要全部转成平假名。例如 P01-A 的输入形如:
ごじやつだつじをなおすひつようがあるので、へんしゆうしやはゆうがたからげんこうをこうせいした。
注意几个细节:
- 标点(読点「、」和句号「。」)保留,它们也是语义线索的一部分。
- 助词、助动词全部写成平假名,不要残留汉字。
- 目标词位置只保留读音,不提供任何汉字提示。
- 建议把 20 句输入整理成一个纯文本文件,一行一句,方便批量送入客户端。
第三步:配置 Sumibi 的调用方式
Sumibi 通过 Emacs 版的基准测试客户端逐句处理。关键设置有三项:
- 不使用会话历史:每句独立处理,避免前一句的上下文影响后一句。这一点很重要,否则结果无法归因到单句语义。
- 不额外提供周边文章:输入列会进入提示词的周边上下文栏,但除句子本身之外不追加任何文章。这样检验的是「仅凭这一句能否选对」。
- 固定模型与生成设置:同一轮实验中模型名称、量化方式、生成参数保持一致,否则不同句子之间的差异无法比较。
如果你要比较不同规模的模型,务必只改模型规模这一个变量,其余设置全部对齐。具体参数名与默认值请以 Sumibi 官方当前信息为准。
第四步:运行 Mozc 基线
把同样的平假名输入逐句送入 Mozc,记录目标词位置的输出。Mozc 使用默认设置即可,不需要调整词典或学习功能。记录时只取关注词那一段的转换结果,不必记录整句。
第五步:重复运行并记录
同一批 20 句,每种方式各跑 2 次。重复的目的是确认结果可复现,而不是把 20 句变成 40 个独立样本——两次运行之间并不独立,统计时不能按 40 个样本处理。
建议的记录表字段如下:
| 字段 | 说明 |
|---|---|
| ID | 句子编号,如 P01-A |
| 输入 | 平假名输入串 |
| 参考写法 | 该句关注词的正确写法 |
| Sumibi 输出 | 第 1 次运行的关注词结果 |
| Sumibi 第 2 次 | 第 2 次运行的关注词结果 |
| Mozc 输出 | Mozc 的关注词结果 |
| 判定 | 对每个输出分别标 ○ / × |
第六步:按统一口径评分
评分只看关注词是否选对。句中其他位置即使出现「私たち/私達」这类表记差异(汉字与假名的写法不同),只要关注词正确,该句仍判为正确。这个口径把「同音异义词选择」从「整句完全一致」中剥离出来,避免无关差异干扰结论。
如果 Sumibi 的输出整句与参考句完全一致,可以额外记一列「全文一致」,作为参考信息,但不作为主要评分依据。
一个完整示例
下面以 P08 这一组为例,走完从输入到判定的全过程。
参考句 A:質問に答えてほしいのではなく、凍った肉を柔らかくしてほしいので、担当者に(解凍)を頼んだ。
参考句 B:凍った肉を柔らかくしてほしいのではなく、質問に答えてほしいので、担当者に(回答)を頼んだ。
两句的后半段「担当者に〇〇を頼んだ」完全相同,读音也相同(たんとうしゃに〇〇をたのんだ)。区别只在前半段的否定结构:A 否定的是「回答问题」,B 否定的是「解冻肉」。要选对,必须理解「のではなく」前后哪一部分被否定。
输入(平假名):
しつもんにこたえてほしいのではなく、こおつたにくをやわらかくしてほしいので、たんとうしやにかいとうをたのんだ。
こおつたにくをやわらかくしてほしいのではなく、しつもんにこたえてほしいので、たんとうしやにかいとうをたのんだ。
运行:把两行分别送入 Sumibi 的基准测试客户端,每行独立处理、不带会话历史、不追加周边文章;再把同样的两行送入 Mozc。
观察到的结果:Sumibi 在 A 句输出「解凍」,在 B 句输出「回答」,与参考写法一致;Mozc 在两句中都输出「回答」,A 句判为错误。也就是说,Mozc 抓住了后半段「回答を頼んだ」这个局部搭配,但没有处理前半段的否定关系。
判定:Sumibi 两句均记 ○,Mozc 记 A 为 ×、B 为 ○。
把 20 句按同样流程跑完,本次实验得到的汇总结果是:Mozc 两次运行均为 9/20 句正确,Sumibi 两次运行均为 20/20 句正确,且 Sumibi 的输出在全部句子上与参考句全文一致。这组数字只对应这 20 句人工构造的句子,不代表任何一种方式在日常输入中的整体准确率。
注意事项
样本规模与来源的限制
- 20 句是为了观察差异而人工构造的句子,不是从日常输入中随机抽取的语料。结论不能外推到真实使用场景。
- 两次运行是复现性检查,不是 40 个独立问题。不能把 20 句的结果当成 40 个样本做统计。
- 8 组对照句中存在重复使用同一个词的情况(例如「校正/構成」出现在 P01 与 P07),这会进一步削弱样本的独立性。
- 因此,不应从这组数据主张统计显著性。它只能作为方向性的观察。
比较对象是系统,不是模型
实验比较的是「带提示词的 LLM 系统」与「Mozc 系统」两个整体,而不是单纯比较模型规模。提示词设计、量化方式、生成参数、后处理都会影响结果。所以即使观察到差异,也不能直接归因于「模型更大所以更懂语义」,这仍然只是一个假设。
短句也能拉开差距,说明原因不止一个
4 句短句(C01–C04)中同样出现了差异,而这些句子的线索词离目标词很近。这意味着不能把差异的原因简单归结为「LLM 能利用远距离上下文」。线索的邻近程度、提示词的形式、候选生成方式都可能是原因。
「改得自然」不等于「转换正确」
如果模型推测「作者大概想写这个」而把内容改成别的意思,即使输出读起来通顺,作为转换也是失败的。评测时必须区分三类错误:关注词选错、读音被改动、出现多余的增删。本文的评分只覆盖第一类,扩展实验时应把后两类单独统计。
如何进一步分离模型规模的影响
要检验「规模是否是原因」,需要在同一模型系列中取多个规模,固定提示词、量化与生成设置,然后逐项改变条件:
| 改变的条件 | 想确认的事情 |
|---|---|
| 删去决定语义的线索 | 有上下文时改善了多少 |
| 把线索替换成指向另一种含义 | 换一个词是否仍能按语义切换写法 |
| 改写线索、或把线索移离目标词 | 是否依赖特定的邻近表达 |
| 同一句分别用罗马字与平假名输入 | 能否把读音解析与候选选择分开评估 |
如果大模型在上下文条件下的改善幅度更大,并且改写线索后效果仍然存在,假设就得到支持;反之,如果仅仅改成平假名输入差距就缩小,那么主因可能不是语义利用,而是输入表记的处理方式。
其他需要留意的点
- 模型名称、可用性、调用配额与计费方式会随时间变化,动手前请以 Sumibi 及相关服务的官方当前信息为准。
- 评测脚本与全部结果建议一并保存,便于他人复核或换模型重跑。
- 扩大句子集时,注意抑制正确写法的分布偏置,并增加词类与句式类型的多样性。