AB
AiBoss
チュートリアル

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 及相关服务的官方当前信息为准。
  • 评测脚本与全部结果建议一并保存,便于他人复核或换模型重跑。
  • 扩大句子集时,注意抑制正确写法的分布偏置,并增加词类与句式类型的多样性。