ANSI 30 キー・順次打鍵の理論下限 — 新月配列の並び替えはもう終わっている

標準 ANSI キーボードの 30 キーだけで順次打鍵するかな配列には 1.27 打/かなという理論下限があります。月系既製 10 配列の実測と、新月配列を 30 キー内で無制限に組み替えた探索の結果から、配置の並び替えで残っている余地は 1〜3% しかないことを示します。

順次打鍵には計算できる下限がある

「ANSI 30 キー・順次打鍵」という条件のかな配列を、どこまで速くできるのか。この問いには、打鍵数の下限がはっきり計算できます

標準 ANSI キーボードの英字 3 行は 30 キーです。前置シフト方式では、そのうち 1 キーをシフトキーに使うので、1 打鍵で打てるかなの枠は 29 個になります。残りのかなは「シフト → 文字」の 2 打鍵以上です。

公開コーパス(青空文庫『こころ』『坊っちゃん』+ Wikipedia 10 記事、150,024 かな)で頻度上位 29 のかなを数えると、全体の 72.7% を占めます。したがって理論下限は次のとおりです。

1 打 × 0.727 + 2 打 × 0.273 = 1.27 打/かな

参考までに枠数を変えると、28 枠で 1.29、30 枠で 1.26。この「1.27」前後という数字は、配置をどう工夫しても順次打鍵・30 キーでは越えられません。

(同じコーパスの頻度上位 29 は、い ん う し た の か と に は て く な き っ る 、 こ 。 せ が で ょ を つ す も じ あ です。句読点が上位に入る点に注意してください。)

新月配列はどこにいるか

同じ数え方(前置シフトを 1 打として数える)で、新月配列と月系配列を並べます。

配列打鍵/かな(公開)打鍵/かな(私的)使用キー備考
理論下限(29 単打枠)1.2730計算値
月見草 v21.221.2131後置 3 キーが 、。・ を兼ねる(後述)
ぶな v2.01.251.2533が だ で を単打。3 打のかなが無い
月配列 K1.261.2640数字段にかなを追加
月配列 5-5321.271.2532
月配列 5-3151.271.2632
月配列 5-6801.271.2732
朧月1.291.2931
月林檎1.291.2736中指後置シフト
月配列 3-2261.301.3132
月配列 2-2631.301.3033ち れ ・ を JIS 余剰キーに
月配列 U9 完成版1.311.3132
ミズナラ1.311.3132
中指シフト月光1.311.3132
月配列 T1.321.3332
月配列 4-698 幸花1.321.3232
新月 8.6(analyzer 版)1.331.3333
新月(現行)1.341.3432単打面は 2-263 と同一

(この表の打鍵/かな は eswai keyboard_analyzer 互換の数え方によるもので、56 方式ベンチマーク の表とは丸めの位で 0.01 程度ずれることがあります。)

新月配列は、この表の中でキー数が最少に近く、打鍵数は最多です。 ただし理論下限 1.27 との差は約 5%、月配列 2-263(1.30)との差は約 3% しかありません。順次打鍵・30 キー前後の配列は、全部が下限から数 % の帯に固まっています。

月見草の 1.21〜1.22 について

表で唯一、月見草だけが理論下限を下回っています。これは「後置シフトの 3 キーが 、(読点)。(句点)・(中黒)を兼ねる」という設計によるもので、「か、」のように文字の直後に読点を打つ並びが打てず、確定操作で解決する前提になっています。この確定操作を 0 打と数えているため、下限より小さい値が出ます。実効の打鍵数はこの帯に戻ります(見積もりで 2% 前後)。

既製の月系 10 配列を総当たりしても下限には届かない

「新月より速い順次打鍵配列が既にあるのでは」という疑問に答えるため、これまで未評価だった順次打鍵 10 配列(月 3-226 / 4-698 幸花 / 5-315 / 5-532 / 5-680 / 朧月 / ミズナラ / 中指シフト月光 / 月 T / U9 完成版)を配列 wiki と大岡俊彦氏の月配列一覧から定義して計測しました。

結果は上の表のとおりで、月見草(1.22)を下回るものは 1 つもありませんでした。最良の 5-532 / 5-315 でも 1.27(ぶな並み)です。

推定時間で見ても、これら 10 配列はすべて新月 ANSI30 案(1.815〜1.825)より後ろでした。詳しくは 56 方式ベンチマーク を参照してください。

新月の構造を 30 キー内で無制限に組み替えたら

もう一方の攻め方として、新月配列の構造(前置 2 面 + 濁点後置)を保ったまま、30 キー内で配置を無制限に組み替える 探索を行いました。

探索の条件

  • 使用キーは q〜p / a〜; / z〜/ の 30 キーのみ。物理 - [ ] は一切使わない(現行の新月は 32 キー使用)
  • ★ = 物理 d / ☆ = 物理 k / ゛= 物理 l に固定。順次打鍵のみ
  • 「」を空いていた ★, / ★. に、ー を ★; に収める
  • 濁音 = 清音 + ゛ / 半濁音 = + ゛゛ / 小書き = 親 + ゛(例外なし)
  • 変更予算は無制限、目的関数は推定時間/かなのみ
  • 16 シード × 30 分 × 3 モード
  • 学習は私的コーパス(9.2 万かな)、検証は公開コーパス(15 万かな)

結果

キー学習 時間/かな現行比(学習)検証 時間/かな現行比(検証)月見草比打鍵/かな変更数
現行の新月321.9141.888+4.7%1.360
ANSI30(効率のみ)301.810−5.4%1.839−2.6%+1.9%1.4143
ANSI30(で を単打)301.809−5.5%1.823−3.5%+1.0%1.3948
ANSI30(ぶ げ を単打)301.802−5.8%1.833−2.9%+1.6%1.3950
月見草 v2(参考)311.8041.22

30 キーに閉じて全面的に組み替えても、検証コーパスでの改善は −2.6〜−3.5% でした。 月見草との差は 1〜2% に縮まり、月見草の句読点衝突(実効 2% 前後)を考えれば実質は並びます。

ただし 43〜48 か所の入れ替え が必要で、現行の面影はまったく残りません。「覚え直しの費用に対して 3%」という取引です。

学習と検証のギャップ

学習コーパスで −5.4〜−5.8% だった改善が、検証コーパスでは −2.6〜−3.5% に落ちています。差は私的文章への過学習 です。しかも学習で最良だった案(ぶ げ 単打、学習 −5.8%)が検証では 3 案中 2 位(−2.9%)で、案どうしの 1〜2% の差はこの誤差の中に沈みます。

小さい変更予算での探索でも同じ傾向でした。

変更数学習 現行比検証 現行比
4−1.8%−1.3%
8−2.8%−1.4%
13−3.5%−1.7%
20−4.5%−1.6%
48−5.4%−2.3%

変更数を 4 から 48 に増やしても、検証での改善は −1.3% から −2.3% にしか伸びません。

低頻度のかなで見えた 3 つの落とし穴

1. 最適化器は打鍵数を増やしてでも労力を減らす

現行の新月は 1.356 打/かな ですが、最適化された案はどれも 1.38〜1.41 打/かな と打鍵数が増えています。それでも推定時間は下がる。最適化器は「小指・下段・同指連続を避けるためなら、打鍵を 1 回増やしてよい」と判断しています。打鍵数の最小化と時間の最小化は別物です。

同時に同指指標が改善しています(現行 SFB 5.3% / SFS 9.8% → 案では SFB 2.7〜3.5% / SFS 6.7〜8.3%)。時間の改善の実体は、打鍵数ではなくここです。

2. 濁音を単打に格上げしても、得が出るのは一部だけ

「頻出する濁音を単打にすれば速くなる」と考えたくなります。実際に探索器へ「濁音を最大 3 個まで単打枠に置いてよい」と許可したところ、選ばれたのは ぶ と げ でした。頻度上位の で・が・じ は選ばれていません。

理由は明快で、得が出るのは「基底のかながシフト面にあって 3 打になっている濁音」だけ だからです。で・が・じ の基底(て・か・し)は単打なので、濁音でも 2 打で済んでおり、単打に格上げしても 1 打しか減りません。一方 ぶ・げ の基底(ふ・け)はシフト面にあり、3 打から 1 打へ 2 打減ります。

なお 3 個目(ぜ)の寄与は 0.04% で、実質ゼロでした。

3. 「小指と下段は重い」という仮定が改善の正体

重みセットを 5 通り振ると、キー労力を平坦にした条件(E 平坦)では全案が現行より +0.2〜+0.8% 悪化 します。

交互 1.0既定E 平坦小指 2.4同指 2.0
ANSI30 効率のみ−5.0%−5.4%−0.4%−4.8%−6.2%
ANSI30 で 単打−5.2%−5.5%−1.1%−5.6%−6.1%
ANSI30 ぶ げ 単打−5.5%−5.8%−1.6%−5.5%−6.4%

つまり得られる改善の大半は「小指と下段は重い」というモデルの仮定に依存しており、遷移(交互・同指)だけでは現行を超えられません

短縮符号を足しても 2% に届かない

配置の並び替えではなく、「2〜4 かな連続を 1 符号で打つ」短縮符号でどこまで縮むかも試算しました。

個数学習コーパスでの節約公開コーパスでの節約
3 打の空き枠(現行規則内)20 / 41−3.2% / −5.1%−0.7% / −1.7%
2 打の同手前置(規則を破る仮定案)20 / 26−5.5% / −6.6%−3.8% / −4.3%
規則で作れる族「拗音 + う」15〜17−0.6% / −1.5%−0.9% / −2.2%

学習コーパスで上位に来る短縮は、その人固有の頻出語ばかりで、公開コーパスでは効果が 1/3 に落ちます。両方で安定して効く語は わたし・よう・じょう・せい・ゅう・から・どう・んで・ほう の 9 語(公開コーパスで −3.2%)程度で、これも丸暗記が必要です。現行の規則内(3 打の空き枠)に収めるかぎり、公開コーパスでの節約は 2% に届きません。

結論: 配置の並び替えは終わっている

  • 順次打鍵・ANSI 30 キーには 1.27 打/かな という理論下限がある
  • 既製の月系配列も新月も、この下限から 数 % の帯に全部入っている(新月は 1.34、下限比 +5%、月配列 2-263 比 +3%)
  • 新月の構造を 30 キー内で無制限に組み替えても、検証コーパスで −2.6〜−3.5%。しかも 43〜48 か所の変更が必要で、56 方式ベンチマーク の基準では 有意差なし(同格グループ内の移動)
  • 短縮符号を足しても、現行規則内なら公開コーパスで 2% 未満
  • 改善幅の大半は「小指と下段は重い」というモデルの仮定に依存する

したがって 新月配列は現行のまま継続 という判断です。1〜3% の改善のために 40 か所以上を覚え直す価値は、少なくとも現在のデータでは示せません。次に伸びしろがあるのは配置ではなく、同時押し化・辞書化といった「打鍵方式そのものの変更」の側です。

参考: 新月配列 vs 月見草・ぶな — 順次打鍵の上位 3 つを比べる


データと再現方法

項目内容
評価器統一評価器 evaluate.py(Python)/最適化器は Rust 実装(shingetsu_rs)。時間モデルは両者で同一
コスト関数キー労力 E(ホーム 1.0 / 小指 ×1.6 / 上段 +0.4 / 下段 +0.5 / 内側列 +0.5 / 数字段・周辺キー 2.2)× 遷移 T(交互 0.9 / 同指 1.6 / 同手 1.1 / はさみ +0.4)+ スキップグラム同指 + 指別負荷・左右差ペナルティ
打鍵の数え方前置シフトを 1 打として数える(eswai analyzer の「動作」は前置を本体に束ねるため不採用)
学習コーパス私的 92,082 かな(重複除去済み・内容非公開)
検証コーパス公開 150,024 かな(青空文庫『こころ』『坊っちゃん』+ Wikipedia 10 記事)
探索設定ANSI30 探索: 1 チェーン 1,800 秒 × 16 シード × 3 モード/変更予算つき探索: 1 チェーン 5,400 秒 × 6 シード
固定条件★☆ と ゛ の位置、濁点後置、拗音 2 打、符号一意。★, / ★. / ★/ は記号用に予約
重み感度既定 / 同指 2.0 / 交互 1.0 / 小指 2.4 / E 平坦 の 5 セット
理論下限の計算公開コーパスの頻度上位 29 かなが 72.7% を占めることから 1×0.727 + 2×0.273 = 1.2728
月系 10 配列の出典配列 wiki および大岡俊彦氏の月配列一覧。月配列 2-263 の物理鍵・指配置テンプレートに conversion のみ差し替え。各配列表に明記のない濁点・半濁点・稀少仮名(ゔ・ゎ・ヶ・ゐ)は 2-263 の位置にフォールバック
測定日2026-09-13

新月配列の定義データ・設定ファイルは GitHub リポジトリ(MIT)で公開しています。

新月配列を気に入ったら、ぜひ広めてください 🌙