イズミ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)にある。