有隣堂しか知らない世界で公開されているルビの世界を見て、これをAIで処理できたりするのかなと気になったので試してみた。この記事のルビは評価の高いモデルに生成させたものを"そのまま"採用している。
プロンプト
全てのモデルに対して以下のプロンプトを入力しています。サンプルテキストはGeminiに「適当な物語を生成して」と依頼したものです。なお、一部のモデルは追加で異なるプロンプトを与えている場合があります。
次の文章にルビを振ってください。なお、ルビは<ruby>漢字<rp>(</rp><rt>ふりがな</rt><rp>)</rp></ruby>の形式に置き換える形で出力してください。
時計の針が逆回りに進む。祖父の遺品である古い懐中時計が、突然奇妙な動きを始めたのだ。慌てて針を止めようとした瞬間、私の視界は白い光に包まれた。気がつくと、私は見慣れた木造の部屋にいた。「おや、珍しい客人だな」振り返ると、そこには若き日の祖父が立っていた。二十代前半だろうか、写真で見た通りの優しい目をしている。「これを見にきたのかい?」祖父が手元で直していたのは、あの懐中時計だった。彼はまだ見ぬ未来の孫に向けて、静かに微笑みながらネジを巻いている。私が言葉を失っていると、再び強い光が放たれた。目を開けると、いつもの自分の部屋。手元の時計は正しい時間を刻み始めていたが、金属の表面には、さっきまでなかった祖父の小さな指紋が残っていた。評価
| モデル名 | 総合評価 | 入力維持 | 記法遵守 | 誤読無し | 振り適切 | 完全認識 | サンプル | 備考 |
|---|---|---|---|---|---|---|---|---|
| ChatGPT 4.1 nano | ☆0 | o | x | x | x | x | 木造, さっき | rubyの閉じタグが不正。 |
| GLM 4.7 Flash | ☆0 | x | o | x | x | o | 木造 | 途中で出力が切れる。 |
| GPT 5.4 nano | ☆0 | x | x | x | x | x | 時計, 奇妙みょう, なかった | タグ位置が破綻している。 |
| LFM-2.5-1.2B-JP-Q4_K_M(思考) | ☆0 | x | x | x | - | x | 何も処理されない文章が出力された。 | |
| Llama-3.2-1b-instruct_Q8_0 | ☆0 | x | x | x | - | x | 漢字 | 「漢字ふりがな」が数回繰り返し出力された。 |
| Mistral Small 4 | ☆0 | x | o | x | x | x | 指紋指紋 | |
| Qwen VL 30B | ☆0 | o | o | x | o | x | 懐中時計, 客人 | *1 |
| Qwen2.5-3B-Instruct-Q5_K_M | ☆0 | o | x | x | o | x | 時計 | |
| モデル名 | 総合評価 | 入力維持 | 記法遵守 | 誤読無し | 振り適切 | 完全認識 | サンプル | 備考 |
| ChatGPT 4o mini | ☆1 | x | x | Δ | x | x | 慌てて慌てて, 目目を開ける開ける | |
| Gemini 3.1 Flash-Lite(標準) | ☆1 | x | o | x | o | x | 念, 先 | 勝手に文字を書き換えてしまう。 |
| gpt-oss 120b | ☆1 | o | o | x | x | o | 微笑み | |
| GPT 5 nano | ☆1 | x | x | Δ | x | o | 若き日 | |
| モデル名 | 総合評価 | 入力維持 | 記法遵守 | 誤読無し | 振り適切 | 完全認識 | サンプル | 備考 |
| Claude Sonnet 5 | ☆2 | o | o | Δ | o | o | 逆回り | |
| Gemini 3.0 Flash | ☆2 | o | o | o | o | o | 稀にカタカナが混じる。稀に平仮名にルビを振る。 | |
| Gemma 4 31B | ☆2 | Δ | Δ | Δ | Δ | Δ | 思考ログでは最後まで正確に変換できているが、何度か実行してもランダムな位置で出力が切れてしまう。 | |
| GPT 5.4 mini | ☆2 | Δ | o | o | Δ | x | ルビの世界, 稀に | 多数の片仮名にルビを振る。1つの項目を反復して出力する |
| GPT 5.5 | ☆2 | o | o | o | Δ | o | 始めた | |
| Haiku 4.5(拡張) | ☆2 | o | o | x | o | o | 時計 | 勝手にパラルビで処理してしまうことがあったが、これはプロンプトの調整で対応できそう。 |
| Namazu(丁寧) | ☆2 | o | o | Δ | Δ | o | 開ける | 1点だけ誤読。 |
| OpenAI o1 | ☆2 | o | o | o | Δ | o | 始めた | |
| PLaMo 3.0 | ☆2 | o | o | o | Δ | o | 微笑みながら | |
| モデル名 | 総合評価 | 入力維持 | 記法遵守 | 誤読無し | 振り適切 | 完全認識 | サンプル | 備考 |
| Gemini 3.1 Pro | ☆3 | o | o | o | o | o |
* AIの回答は常に変化するため、同じモデルを使用しても同じ結果を得られるとは限りません。再現性の確認や、難読な文章を与えた場合の正確性については評価していません。
* 表示上は変わりませんが、サンプルはこの記事で表示できるようにコードを修正しているものを含みます。
*1 「懐中時計」は読み方が「わいちゅうとけい」が一般的ですが、文脈によっては「かいちゅうとけい」と読まれることもあります。ここでは最も一般的な読み方を採用しました。
という謎の補足がされていた。
評価記号の意味
-
☆0 何も遵守されていない
-
☆1 適切なフリガナが振られているが、他の問題で実用的ではない
-
☆2 おおむね正常だが部分的に問題がある
-
☆3 正常に処理された(実用上は問題ない程度の不完全さはある)
-
-: 評価できない
-
o: 適正である
-
Δ: 部分的に適正である
-
x: 不正である
項目の説明
- 入力維持: 入力した内容を改変しない。全てを出力している。
- 記法遵守: 記法を遵守している。
- 誤読無し: 単語の読みに誤りがない。
- 振り適切: 漢字のみにルビを振っている(平仮名に振っていない)。
- 完全認識: 漢字を全て認識している。ルビが振られていない漢字がない。
メモ
PocketPal(実行環境のスマホアプリ)では生成されたHTMLタグが、そのまま表示に適用されてしまうので、表面上は何も変化がないように見えるが、コピーするとタグを見ることができる(生成過程を観察していて気付いた)。
この記事の初版(2026-07-07)で、ルビ振りにGemini 3.0 Flashを使用したが、なぜか「じゅンしゅ」のようにカナ交りで生成されるものが1か所存在した。なお、本記事を処理させたところプロンプトのルール無視、および振り忘れが多くみられたことから最終版ではGemini 3.1 Proを使用している。
まとめ
今回検証した範囲では、出力が途切れてしまう問題があるものの、Gemma 4 31Bの出力が優秀だった。出力が途切れていることを指摘すると全文を出力してきたことから、出力トークン数が制限されているというわけでもなさそうなので、なぜこのようになるのかは不明。
Gemma 4 31Bの思考
Task: Add furigana (ruby characters) to the kanji.
Requirement: Use the specific HTML format:
<ruby>漢字<rp>(</rp><rt>ふりがな</rt><rp>)</rp></ruby>.時計 (とけい)
針 (はり)
逆回り (ぎゃくまわり)
進む (すすむ)
祖父 (そふ)
遺品 (いひん)
古い (ふるい)
懐中時計 (かいちゅうどけい)
突然 (とつぜん)
奇妙 (きみょう)
動き (うごき)
始めた (はじめた)
慌てて (あわてて)
止めよう (とめよう)
瞬間 (しゅんかん)
視界 (しかい)
白い (しろい)
光 (ひかり)
包まれた (つつまれた)
気 (き)
見慣れた (みなれた)
木造 (もくぞう)
部屋 (へや)
珍しい (めずらしい)
客人 (きゃくじん)
振り返る (ふりかえる)
若き (わかき)
日 (ひ)
立っていた (たっていた)
二十代 (にじゅうだい)
前半 (ぜんはん)
写真 (しゃしん)
見た (みた)
通り (とおり)
優しい (やさしい)
目 (め)
見にきた (みにきた)
手元 (てもと)
直していた (なおしていた)
未来 (みらい)
孫 (まご)
向けて (むけて)
静かに (しずかに)
微笑み (ほほえみ)
ネジ (katakana - no ruby)
巻いている (まいている)
言葉 (ことば)
失っている (うしなっている)
再び (ふたたび)
強い (つよい)
放たれた (はなたれた)
目 (め)
開ける (あける)
自分 (じぶん)
部屋 (へや)
手元 (てもと)
正しい (ただしい)
時間 (じかん)
刻み始めていた (きざみはじめていた)
金属 (きんぞく)
表面 (ひょうめん)
指紋 (しもん)
残っていた (のこっていた)
Sentence 1: `時計の針が逆回りに進む。`
Sentence 2: `祖父の遺品である古い懐中時計が、突然奇妙な動きを始めたのだ。`
Sentence 3: `慌てて針を止めようとした瞬間、私の視界は白い光に包まれた。`
Sentence 4: 気がつくと、私は見慣れた木造の部屋にいた。
Sentence 5: 「おや、珍しい客人だな」
Sentence 6: 振り返ると、そこには若き日の祖父が立っていた。
Sentence 7: 二十代前半だろうか、写真で見た通りの優しい目をしている。
Sentence 8: 「これを見にきたのかい?」
Sentence 9: 祖父が手元で直していたのは、あの懐中時計だった。
Sentence 10: 彼はまだ見ぬ未来の孫に向けて、静かに微笑みながらネジを巻いている。
Sentence 11: 私が言葉を失っていると、再び強い光が放たれた。
Sentence 12: 目を開けると、いつもの自分の部屋。
Sentence 13: 手元の時計は正しい時間を刻み始めていたが、金属の表面には、さっきまでなかった祖父の小さな指紋が残っていた。
Ensure all kanji have the correct ruby structure.
Check the
<rp>tags are present.Check the closing tags.
Gemma 4 31Bの出力
時計の針が逆回りに進む。祖父の遺品である古い懐中時計が、突然奇妙な動きを始めたのだ。慌てて針を止めようとした瞬間、私の視界は白い光に包まれた。気がつくと、私は見慣れた木造の部屋にいた。「おや、珍しい客人だな」振り返ると、そこには若き日の祖父が立っていた。二十代前半だろうか、写真で見た通りの優しい目をしている。「これを見にきたのかい?」祖父が手元で直していたのは、あの懐中時計だった。彼はまだ見ぬ未来の孫に向けて、静かに微笑みながらネジを巻いている。私が言葉を失っていると、再び強い光が放たれた。目を開けると、いつもの自分の部屋。手元の時計は正しい時間を刻み始めていたが、金属の表面更新履歴
- 2026-07-07: 初版
- 2026-07-08: 文章の追加。Mistral Small 4, Haiku4.5(拡張)を追加。備考の表現を整理、表に個別評価項目を追加。評価を以下のように修正。
- GPT 5.4 mini: ☆3 -> ☆2 この記事を処理させたところ、多数の片仮名にルビを振る、処理が漏れている。1つの項目を繰り返し出力するといった問題が見られたので評価を下げた。なお、変換自体は概ね適切であることから☆2とした。
- 2026-07-09: Claude Sonnet 5, GPT 5.5, OpenAI o1, PLaMo 3.0, Gemini 3.1 Proを追加Gemini 3.0 Flashの評価を☆3 -> ☆2に変更。