イズミ30×3

概要

イズミ30×3(イズミさんまるさん)は、3×10の文字キー30個で日本語を仮名で直接入力するためのキー配列である。文字キー30個を3層に重ねて使うことから、この名がある。

同一のコーパスと運指コストモデルで評価すると、仮名1文字あたりのコストはQWERTY配列によるローマ字入力より約45%、JISかな配列より約36%低い。

イズミ30×3は、基本層、左Shift層、右Shift層の3層からなる。濁音はすべて左Shift層に、小書き仮名と半濁音は「ょ」「ゅ」を除いて右Shift層にあり、残りの仮名は両方のShift層に分かれて入る。親指で押すSpaceキーを押している間は左Shift、Enterキーを押している間は右Shiftとして働き、短く押した場合はそれぞれ通常どおり変換と確定になる。3層の計90枠のうち、84枠に仮名と句読点・長音符が入り、1枠はカタカナ変換キー、5枠は空きである。

文字キーは3×10の格子配列(ortholinear)を前提とし、中央を境に3×5の左右2ブロックとして運指する。短押しと長押しの判定は入力機器の側で行い、入力メソッドは「修飾なし・左Shift・右Shift」の3種類の入力のみを解釈する。仮名から漢字への変換はmacOS用の独自入力メソッド(InputMethodKit+Mozc系変換エンジン)が担い、本配列はその前段のキー割り当てのみを定める。本配列が想定しているキーボードについては、h8e.36を参照。

配列

太字はホームポジションのキーを示す。★はカタカナ変換キー、空欄は空き枠である。

基本層
な つ れ 。 ★ ふ ゅ ょ さ せ
の ん し う 、 は か い て た
ち る き く え ま こ す に と
左Shift層(Spaceを押している間)
ぞ づ び     ぶ げ そ ざ ぜ
ひ ろ じ け べ ば が あ で だ
ぢ ゔ ぎ ぐ   ぼ ご ず ほ ど
右Shift層(Enterを押している間)
や っ わ ぁ   ぷ ぅ ゆ ぉ ぺ
ー ら り も ぃ ぱ ね お を よ
ぬ む み め ぇ   ゃ ぽ へ ぴ

規則

高頻度の仮名は基本層

濁音・半濁音・小書きを除く仮名のうち、出現頻度の上位20字(「ち」の1.54%まで)と「、」「。」は、すべてShiftなしで入力する。ホーム段は「の ん し う 、|は か い て た」であり、全打鍵の69.7%が基本層で完結する。

小書きの「ょ」と「ゅ」も基本層にあり、大きい「よ」「ゆ」のほうが右Shift層にある。「しょう」「きょう」などの拗音のため、「ょ」(1.90%)が「よ」(1.02%)より、「ゅ」(1.06%)が「ゆ」(0.20%)より多く現れるからである。「きょうは」はShiftを使わず4打鍵で入力できる。

変形は元の仮名と同じキーに重ねる

濁音は左Shift層の、小書き仮名と半濁音は右Shift層の、元の仮名と同じ位置に置く。この関係は次の組で成り立つ。

元の仮名 左Shift層 右Shift層
か き く こ が ぎ ぐ ご -
さ し す せ ざ じ ず ぜ -
た ち つ て と だ ぢ づ で ど っ(つ)
は ば ぱ
ふ ぶ ぷ
え - ぇ

「は・ば・ぱ」「ふ・ぶ・ぷ」「つ・づ・っ」は、1つのキーに3層が縦に重なる。げ ぞ び べ ぼ ゔ、ぴ ぺ ぽ ぁ ぃ ぅ ぉ ゃ は元の仮名と別の位置にあるが、いずれも出現頻度0.5%未満である。

設計

目標

  • 仮名1文字をなるべく1打鍵で入力する。
  • 文字単位の頻度ではなく、実際の文章に現れる仮名の連なりをもとに、同指連続(SFB)や指のもつれを減らす。
  • 人が覚えられる規則を残す。

既存の方式はいずれも文字キー30個の環境に適さない。ローマ字入力は仮名1文字に複数の打鍵を要し、き(ki)のように同じ指を続けて使う組み合わせが構造的に多い。JISかな配列は打鍵数こそ少ないが、数字段を含む4段を使うため文字キー30個に収まらない。

コーパス

百科事典の文体だけを用いると、「しょう」「じょう」のような漢語が過大に評価される。そのため3つのジャンルを混ぜた。

ジャンル 出典 規模(仮名記号数) 比重
会話 ビジネス対話(BSD)、旅行相談対話(ASDC)、田中コーパスの例文 約178万 35%
ウェブ・ブログ KWDLC 約59万 25%
百科事典 JSQuADのWikipedia段落 約392万 40%

漢字はSudachiPyで読みを取得して表記仮名(例:とうきょう)に変換し、「しょ」は「し+ょ」のように実際の打鍵単位に分解した。入力単位は清音・濁音・半濁音・小書き仮名に「ー」「、」「。」を加えた84種である。空白・括弧・斜線などの記号は文の区切りとして扱い、仮名には含めない。

運指コストモデル

各キーの到達コストに、連続する2打鍵・3打鍵の相互作用を加えた。

  • 同指連続(SFB)は移動距離に比例して減点する。人差し指が受け持つ2列の間の移動(F→G、T→Bなど)も含む。
  • 内向きのロールと左右交互打鍵は加点し、シザーと、3打鍵の中で方向が折れ返るリダイレクトは減点する。
  • Shiftは押下・保持・解放を時間順に数える。同じ層が続く場合、押下は1回分のみとする。
  • 層の境界をまたぐ2打鍵(基本層⇔Shift層、左Shift層⇔右Shift層)にはロールの加点を与えず、Shiftを離す動作の分のコストを加える。語の途中でShiftを挟むと指の流れが途切れるためである。

最適化

焼きなまし法(simulated annealing)と全交換の局所探索を用い、配置には次の制約を課した。

  • 濁音は右Shift層に置かない。小書き仮名と半濁音は左Shift層に置かない。どちらも基本層には置ける。
  • 濁音・半濁音・小書きを除く仮名の頻度上位20字と「、」「。」は基本層に置く。
  • 上段中央左(QWERTYのT)はカタカナ変換キーに充てる。

変形を元の仮名と同じキーに置くことは加点のみとし、加点の大きさを変えながら効率と規則性の釣り合いを探った。

Tの位置は人差し指が斜めに伸びる4箇所(T・Y・B・N)の1つである。親指Shiftを前提とすると、Shift層のホーム段より到達コストが高く、どの仮名を置いても不利になるため、仮名ではなく機能キーに充てた。

他方式との比較

同一のコーパスとコストモデルで、4方式を打鍵単位まで展開して測った値である。

方式 コスト
/仮名
文字キー打鍵数
/仮名
Shift押下数
/仮名
押下数計
/仮名
ジャンル別コスト
(会話・ウェブ・百科)
ローマ字入力(QWERTY) 5.11 1.70 0 1.70 5.01・5.13・5.19
JISかな(フルサイズ) 4.41 1.11 0.11 1.22 4.31・4.43・4.50
v1.0(小指Shift) 3.71 1.00 0.27 1.27 3.65・3.75・3.72
イズミ30×3(親指Shift) 2.82 1.00 0.26 1.26 2.80・2.83・2.83

Shift押下数は、Shiftを新たに押した回数を数え、同じShiftを押したまま続けて打った場合は1回とした。Shiftまで含めた押下数では、イズミ30×3(1.26)はJISかな(1.22)よりわずかに多い。ローマ字入力との差の多くは押下数による。JISかなとの差は押下数ではなく、数字段への到達と、濁点を独立して打つ打鍵が文字キーの移動を増やすことから生じる。v1.0との差は、Shiftを小指から親指に移したことによる。イズミ30×3はジャンル間の差も0.03と小さい。

版の歴史

コストは、現行の評価モデルで各版を測り直した仮名1文字あたりの値である。v0.3はShift層の記録が残っておらず、v2.0は試案のため測っていない。v0.1〜v1.0のShiftは、小指でZ・/の位置を押し続ける方式である。

版 内容 コスト
/仮名
v0.1 最初の数値最適化版。「Zは濁音、/は小書き・半濁音」を全文字に適用すると28字を基本層に固定する必要があり、Shift入力が約47.7%に達するため、Shift層を一般の仮名層として扱った。か→が・つ→っのような対応は可能な範囲で残した。 4.56
v0.2 頻度と2文字連鎖を基準に配置を見直した。 4.13
v0.3 人差し指の2列移動と、Shiftと同じ手で打つ合打にコストを設けた。 —
v0.4 濁音をZ層、小書き仮名と半濁音を/層に限定した。 3.85
v1.0 3ジャンルのコーパスを導入した。濁音をすべてZ層に移し、頻度の高い合打を反対の手に置いた。 3.71
v2.0 Shiftを親指(Space・Enter)に移し、変形30組をすべて元の仮名と同じキーに重ねた。層の境界コストを加えると、規則を課さずに探索した解より約6%高く(修正前のデータによる値)、採用しなかった。 —
v2.1 境界コストをモデルに加えて再最適化した。同一キーの規則は19組。 2.82

v0.1は、最適化に用いた高頻度の2文字連鎖に限れば同指連続が0であったが、コーパス全体で測ると移動を伴う同指連続が9.3%、Shiftと同じ手で打つ合打が13.8%あった。v0.4も当初は同指連続0.16%とされたが、現行モデルでは6.7%で、主に「わたしは」の「しは」、「ですか」の「すか」、「ので」による。

v1.0の配列のままShiftだけを親指に移すと、コストは3.71から3.03に下がる。

未検証の点

次の点は、実使用による検証を経ていない。

  • Spaceの短押し・長押しの誤判定:Spaceは変換キーでもあるため、変換直後に次の仮名を素早く打つとShiftと誤判定されるおそれがある。SpaceをShiftと兼用する方式はSandS(Space and Shift)として古くから用いられており、誤判定は入力機器側の判定時間で調整できる。
  • 語の途中でShiftを押す負担:「にほんごで」の「で」のように、濁音1字のためだけにSpaceを押して離す動作が、実際にどの程度打鍵の流れを妨げるかは確かめられていない。
  • 配列内の注意点:「ち」が左手小指の下段(Z)にあり、「ちょっと」が隅から始まる。「じゃ」は左Shift層の「じ」の後に右Shift層の「ゃ」を打つため、2つのShiftを持ち替える必要がある。「ま」は人差し指の斜め位置(N)にある。