「ブリ中トロ配列」3年目の改良(2022/10/15版)

3周年を過ぎてすっかり日常利用に馴染んだブリ中トロ配列。 この記事では、2022年中に行った3つの改良: ①「ます面」の新設、②活用形入力の工夫、そして③拗音面の再構成について書いておきたい。 ブリ中トロ配列を新しく知った人は、はじめに 2021/10/23 版の解説を読んでほしい。

ます面

ブリ中トロ配列の目的は、ですます調の現代文を少ない打鍵数で入力することである。当然頻出する「です」「ます」を独立した2キーシーケンスとすることで*1打鍵数の抑制と単打面の好配字を両立している点に、ブリ中トロ配列の妙味がある。

  • [DM] =「です」
  • [DL] =「ます」

ところで、助動詞としての「ます」に先行する母音はイ段とエ段に限られる。標準語の書き言葉の文章に「あきます」「あけます」は現れるが「あかます」「あくます」「あこます」は現れない。そこで、使われない後者のキーシーケンスを転用して別の文字列を書くことができる。

まず、シフト面にあるイ段・エ段の清音に「ます」が後続する場合、シフトを省略できることとした。

  • [D,DL] =「えます」 [,DL] =「えます」
  • [KVDL] =「けます」 [VDL] =「けます」
  • [KCDL] =「せます」 [CDL] =「せます」
  • [KWDL] =「ねます」 [WDL] =「ねます」
  • [D.DL] =「みます」 [.DL] =「みます」
  • [KRDL] =「めます」 [RDL] =「めます」
  • [KJDL] =「ります」 [MDL] =「ります」

さらに、転用可能な打ちやすいキーシーケンスで頻出語を書けるようにした。

  • [SDL] =「おもいます」 ×「かます
  • [HDL] =「いたします」 ×「のます」
  • [NDL] =「ございます」 ×「つます」

使ってみたところ、頻出語(特に「おもいます」)の省入力は効果絶大。シフトの省略は、あれば使うがなくても構わんなー。という感想である。

活用形入力

「ます」の活用形として「ません」「ましょう」「ました」がある*2。「ます」を2打鍵で書いたあと、続けて1打鍵で活用形を書ければ便利だろう。というわけで、以下の活用形入力方式を定義した。

  • [DL] =「ます」
  • [DLA] =「ました」
  • [DLF] =「まして」
  • [DLL] =「ましょう」
  • [DL;] =「ません」

「です」も同様。

  • [DM] =「です」
  • [DMA] =「でした」
  • [DMF] =「でして」
  • [DML] =「でしょう」
  • [DMV] =「である」
  • [DMM] =「であり」

前述の [SDL] =「おもいます」なども同様に [SDLA] =「おもいました」となる。小さな工夫だが便利に使っている。

拗音面

ブリ中トロ配列では当初から、拗音面の配字を清音面と無関係に決めていた。たとえば [I] =「し」に対して [IT] =「ちゃ」であり、「しゃ」を書くには [LT] を打つ仕様だった。拗音面と清音面を完全に切り離す設計はブリ中トロ配列の核心的なアイディアであり、これによって配字の自由度が高まり、悪運指を極限まで減らすことができた。

とはいえ、「し」を書くときと「しゃ」を書くときで最初に打つキーが違うというのは、さすがに頭が混乱する場合もあった。ボケーっとしてると「しゃ」を書こうとして [I] を打ってしまうのだ。そこで、特に頻度の高いキャ行とシャ行については、清音と拗音の最初のキーを一致させることにした*3*4

  • [U] =「き」 [UT] =「きゃ」 [UQ] =「きゅ」 [UZ] =「きょ」
  • [I] =「し」 [IT] =「しゃ」 [IQ] =「しゅ」 [IZ] =「しょ」

これをきっかけとして、拗音面の配字を全面的に再考することになった。

まず、通常のシフト面に収まらず変則的な配置だったバ行の「び」「ぶ」「べ」をホームポジションからの交互打鍵とした。

  • [LQ] =「び」 [LT] =「ぶ」 [LZ] =「べ」 

また、たまーに「ディスク」「チェック」「アフィニティ」「フェイルオーバー」のような語に登場する外来音も、低頻度ではあるが交互打鍵とした。

  • [YT] =「ふゅ」 [YQ] =「ふぃ」 [YZ] =「ふぇ」
  • [,T] =「てゅ」 [,Q] =「てぃ」 [,Z] =「ちぇ」
  • [.T] =「でゅ」 [.Q] =「でぃ」

もっとたまーに登場する外来音は左手連続の打ちにくい場所にした。

  • [CT] =「うぉ」 [CQ] =「うぃ」 [CZ] =「うぇ」
  • [ET] =「とぅ」 [EZ] =「しぇ」
  • [ST] =「どぅ」 [SZ] =「じぇ」

使用頻度と打ちやすさを比例させるという大原則を守りつつ、概ね「1打鍵めは中指が清音、薬指が濁音」「2打鍵めは [T] がウ段、 [Q] がイ段、 [Z] がエ段」という規則性を持たせることで覚えやすさに配慮したつもりである。

上記以外の拗音は下記の意図で配置した。

  • ギャ行 [R] は、キャ行 [U] の対称位置であり、[RRDA] =「作業」が打ちやすい。
  • ニャ行 [X] は、[X] =「に」と同じ位置であり、[XD;MZO] =「入力」が打ちやすい。
  • ヒャ行 [F] は、[G] =「は」と同じ左人差指であり、[FDA] =「表」が打ちやすい*5
  • リャ行 [M] は、[KJ] =「り」と同じ右人差指であり、[MD;MDA] =「流量」が打ちやすい。
  • チャ行 [J] は、余った打ちやすい場所。
  • ミャ行 [W] は、余った打ちにくい場所。

定量評価

ブリ中トロ配列は、過去に提案されたどの逐次打鍵系かな配列と比べても、際立って高効率かつ悪運指が少ない。この特長はもちろん今も生きている。2021/10/23 版と 2022/10/15 版の違いは、もはや評価用コーパスに現れないほどの低頻度カナに対するファインチューニングの域に達しているため、定量的に有意な差は見られなかった。

実装方法

まとめ

ブリ中トロ配列は2022年、以下の改良を行った。

  • 「ます面」の新設
  • 活用形入力の工夫
  • 拗音面の再構成

ブリ中トロ配列の骨格は変わっておらず、枝葉末節の最適化をしたにすぎないが、以前よりは打ちやすく、かつ、覚えやすくなったと思う。 キーボードが左右非対称なノートPCでは今でもローマ字入力を使っている筆者だが、最近はノートでも無意識にブリ中トロ配列を打とうとしてしまうことがある。今後、ロウスタッガード向けのチューニングを試みてもいいかもしれない。

*1:さもなくば「で」「ま」の頻度が高すぎて単打面に置きたくなるのだが、「で」を単打化すると清濁同置の原則が崩れ、「ま」を単打にすると「あ」「お」「つ」などの中頻度カナがシフト面に行ってしまう。「です」「ます」に独立したキーシーケンスを与えることで、「で」「ま」の頻度が下がり、両者を無理なくシフト面に置くことができる。結果として単打面の自由度が増す、という風桶理論。

*2:仮定形「ますれば」と命令形「ませ」はほとんど使われない。

*3:ニャ行 [X] はもともと [X] =「に」と一致していた。

*4:ミャ行 [W] を [.] として [D.] =「み」に一致させることも可能だったが、後述する外来音よりミャ行のほうが頻度が低いため、より打ちにくい [W] をミャ行とした。

*5:定量評価に使っているコーパスには「ひゃ」「びゃ」「ぴゃ」が結構な頻度で現れるが、いずれも数値の「百」を読み下したものである。横書きの現代文では算用数字を使うので、実際には「百」はほとんど現れず、したがって「ひゃ」「びゃ」「ぴゃ」の打ちやすさは無視できる。

左右対称型キーボード専用かな配列「ブリ中トロ配列」

2022/11/30: 最新版を本記事からの差分として書きました。 ブリ中トロ配列を初めて知る方は、はじめに本記事を読んでください。

2周年を迎えたブリ中トロ配列。「ます」が独立してますます丁寧に、よく煮込まれた配字になってきた。新しく知った人もこの記事だけ読んで理解できるように、2021/01/26 版を修正した全文を再掲するよ。

f:id:mobitan:20211103024432p:plain

名称

TRONかな配列を中指シフト化したものをベースに、ハイブリッド月配列のエッセンスを加えて煮詰めたから、「ハイブリッド・指シフト・トロン」で「ブリ中トロ配列」。

TRON かな配列が出発点であり、月配列とは系譜がまったく異なるので、月にまつわる名前は付けなかった。

前提条件

  • キーボードは、物理配列が左右対称である。
  • ユーザーは、各指の運動能力に極端な偏りがない。
  • キーボードは、ユーザーの指の可動範囲に合った大きさである。
  • ユーザーは、ですます調の現代文を少ない打鍵数で入力したい。

設計方針

  • 記号を除き30キー(片手3段5列)の範囲に収める。
  • 現代日本語の書き言葉に現れるすべてのモーラを2打以内で入力する。
  • 同じ指で異なるキーを続けて打つ運指(同指異鍵・同指跳躍)をできるだけ減らす。
  • 両手の各指の負担率をできるだけ左右対称にする。
  • Google 日本語入力のローマ字定義のみで実装し、その他の常駐ソフトやハードを要求しない。
  • カーソルや [Backspace] などの制御キーは考慮しない。それらは別のレイヤーで適切に設計されるものとする。

シフト方式の設計

非拗音面と拗音面を完全に分けて考える。

非拗音面のシフト方式

非拗音面は前置シフトで、シフトキーは [D] [K] の2種類。同手シフトと逆手シフトを区別する。清音と濁音は原則として同じキーに置く。例:

  • [O] =「く」
  • [DO] =「や」
  • [KO] = 「ぐ」

拗音面のシフト方式

拗音面は後置シフトで、シフトキーは [T] [Q] [Z] の3種類。これらが2打目に来た場合、直前の1打目をキャンセルして子音に読み替え、2打目を母音と見なし、両者の組み合わせで1モーラの拗音を入力する。言い換えると、拗音に限って行段式とする。拗音面の子音配列は、非拗音面の清音配列とは無関係に、頻度と打ちやすさによって決める。例:

  • [OT] =「じゃ」
  • [OQ] =「じゅ」
  • [OZ] =「じょ」

この例だと、1打目に [O] を打った時点では「く」が表示されるが、2打目に [T] を打つと「く」が消えて「じゃ」に変わる。この動作は Google 日本語入力のローマ字カスタマイズで実装できる。

さらに、2打シーケンスである [D;] [DA] も後置シフトとして扱う。これらが2~3打目に来た場合、「ゅう」「ょう」で終わる2モーラの拗音を入力する。これにより、「ゅ」「ょ」の7割近くを占める「ゅう」「ょう」をホームポジションで打てるようにする。例:

  • [OD;] =「じゅう」
  • [ODA] =「じょう」

配字の設計

ユーザーの手に合った左右対称なキーボードを前提とする。つまり、ユーザーは標準的なホームポジションに無理なく指を置き、上段にも下段にも無理なく指が届き、左手と右手をまったく同じように使うことができるものとする。この前提のもとで、以下のように配字を決めていった。

句読点

中指シフトキーの単打を句読点とする。これはハイブリッド月配列から拝借したアイディアで、読点の直後に必ず変換/確定しなければならない(読点に続けて文章を打つことができない)反面、キーを2個も節約できる。

  • [D] =「、」
  • [K] =「。」

句読点を連打したら感嘆符・疑問符とする。

  • [DD] =「!」
  • [KK] =「?」

撥音・促音・長音

「ん」「っ」「ー」は右小指に置く。撥音・促音・長音の前には他のすべてのかなが先行しうるので、これらを独立性の高い小指に置く TRON 配列の思想は理にかなっている。「んっ」「ーっ」といった連接は書き言葉に現れないので「っ」は下段でよい。「ー」は、TRON では [Shift+K] だったが、1打で書きたいので右小指外側 [:] の位置とする。

  • [;] =「ん」
  • [:] =「ー」
  • [/] =「っ」

拗音

「ゃ」「ゅ」「ょ」は左手の三隅 [T] [Q] [Z] に置く。拗音の頻度は3つ合わせても3%程度だが、すべてのモーラを2打以内で入力するという目標のために単打とせざるを得ないので、なるべく邪魔にならない場所に置く。

  • [T] =「ゃ」
  • [Q] =「ゅ」
  • [Z] =「ょ」

「ゅう」「ょう」は [D] から始まる2キーシーケンスを割り当てる。頻度はそれぞれ0.6~0.8%程度である。

  • [D;] =「ゅう」
  • [DA] =「ょう」

これらの拗音キーに先行する子音キーは、頻度の高いものから順に打ちやすい位置を割り当てていく。

清音

TRON かな配列をベースとして、前置シフトキー [D] [K] と後置シフトキー [T] [Q] [Z] を避けるように再配置する。

左手側は TRON からあまり変わっていない。単打面から「ま」「ら」「り」を外し、打ちやすさと負荷バランスを考えて配字を入れ替えた。シフト面には右手から「け」「め」が移ってきた。

一方、右手側はかなり変わっている。単打面から「、」「れ」「を」を外し、「お」「ち」「わ」「ー」を単打面に入れた。シフト面には左手から「ゆ」「り」「ば」「ぼ」が移ってきた。

「を」は助詞専用であり、他のすべてのかなに連接することから、[DK] でも [KD] でも入力できるようにした。

濁音・半濁音

バ行以外の濁音はすべて清音と同じキーに置き、頻度が高いものは逆手シフト、低いものは同手シフトとする。

パ行はハ行と同じキーで同手シフトとする。

バ行とファ行は、覚えやすさと打ちやすさのバランスを考えて、周縁部のキーに行段的に配置する。ここがブリ中トロ配列で一番トリッキーな部分だが、下表のように整理できる(横が1打目、縦が2打目)。

f:id:mobitan:20211023040737p:plain

小書き文字

まれな擬音語や外来語を音写するために、小書き文字も一応定義しておく。これが必要となるケースは「すべてのモーラを2打以内で入力する」の例外となる。

「ぁ」「ぃ」「ぅ」「ぇ」「ぉ」は、右手の同手シフトの打ちにくい場所に置く。

「ゃ」「ゅ」「ょ」を単打の清音に続けて書く場合は、後置シフトでないことを明示するため [/] を前置する。

  • [F/T] =「てゃ」 ↔ [FT] =「ゔ」
  • [F/Q] =「てゅ」 ↔ [FQ] =「び」
  • [F/Z] =「てょ」 ↔ [FZ] =「べ」

「ゃ」「ゅ」「ょ」を2打の清音や濁音に続けて書く場合は、そのまま続けて打てばよい。

  • [KPT] =「ぢゃ」, [KFT] =「でゃ」, [KTT] =「ふゃ」, [FTT] =「ゔゃ」
  • [KPQ] =「ぢゅ」, [KFQ] =「でゅ」, [KTQ] =「ふゅ」, [FTQ] =「ゔゅ」
  • [KPZ] =「ぢょ」, [KFZ] =「でょ」, [KTZ] =「ふょ」, [FTZ] =「ゔょ」

ここまでのまとめ

  • 単打
    ゅことさゃ わきしくち
    たか、ては のい。うんー
    ょになるも つすおあっ
    
  • 逆手シフト
    ひねどめふ むゆじやファ
    だがをでま ばろをえュウ
    へそせけほ ぼ※み※フォ
    
  • 同手シフト
    ぴごぬざぷ ぁぎぃぐぢ
    ョウら!よぱ  り?れ  
    ぺぞぜげぽ づずぅぇぉ
    
  • 拗音シフト
     み※※  ※ぎちじ※
        ひ ※き し※
     に※びぴ ※※り※※
    

※は以下で説明する。

外来音

拗音面の空いている場所に押し込む。

  • [CT] =「うぉ」, [RT] =「とぅ」, [ET] =「どぅ」
  • [CQ] =「うぃ」, [RQ] =「てぃ」, [EQ] =「でぃ」
  • [CZ] =「うぇ」, [RZ] =「しぇ」, [EZ] =「じぇ」, [PZ] =「ちぇ」

「です」「ます」

ですます調の文章では「です」「ます」が頻出する。これらに専用の2打シーケンスを与えることで「で」「ま」の頻度を下げ、配字の自由度を上げる。

  • [DM] =「です」
  • [D.] =「ます」

「です」(1.5%) は「で」(2.9%) の約半分を占める。これを独立させた経緯は 2021/01/26 版の解説に書いた。

「ます」(1.5%) も「ま」(2.6%) の半分以上を占める。「ま」を単打にすれば「ます」は2打で済むのであえて独立させる必要はなく、2021/01/26 版まではそうしていた。しかし、同時に「あ」「お」「つ」をすべて単打にしたいとなると、「つ」(1.3%) が [Y] に行ってしまい、運指上も負荷配分上もやや無理があった。本当は「つ」を [N] に置きたいのだが、そうすると今度は 「あ」(1.4%) か「お」(1.5%) がシフト面に行ってしまう*1。そこで今回、「ます」を「です」と同様に独立させることを前提として、残った「ま」(1.1%) をシフト面に追い出し、大規模な玉突き転配*2を経て単打面を空け、ついに [N] =「つ」を実現した。

ショートカット

空いているキーシーケンスを活用して、頻出するわりに打ちにくい文字列を救済する。

f:id:mobitan:20211023052230p:plain

このへんはユーザーの個性(職業?)が強く現れるところだろう。各々がよく使う打ちにくい字句を定義すればよい。

記号

空いている場所を適当な記号で埋める。このへんは適当に。

  • [KH] =「(」, [K;] =「)」
  • [D:] =「~」, [K:] =「/」

評価

負荷分布

国立国語研究所 現代日本語書き言葉均衡コーパス のうち「出版・書籍」「特定目的・Yahoo!知恵袋」の各上位1万語彙を用いて各キーの負荷を解析した。

f:id:mobitan:20211023052653p:plain

左手と右手の負担率はコーパスによって異なるが、ほぼ 51:49 である。各指の負担率は、小指 6~7%、薬指 10%、中指 17~18%、人差指 16~17% 程度である。負担率をできるだけ左右対称にするという設計方針を実現できた。

定量評価

BCCWJ(コアデータ)コーパスから生成された仮名漢字変換用 2-gram *3の上位1万語彙を用いて評価した。打鍵効率は1文字の入力に必要な平均打鍵数、同指跳躍率は上段キーの直前/直後に下段キーを打つ率である。

f:id:mobitan:20211023053549p:plain

ブリ中トロ配列 2021/10/23 版は、清濁同置・前置2シフトという単純な(効率向上には不利な)設計ながら、打鍵効率 1.21、同指異鍵率 3.0%、同指跳躍率 0.3% を達成した。打鍵効率 1.21 は、親指同時シフトである TRON かな配列や清濁別置であるハイブリッド月配列に匹敵する。同指異鍵率 3.0% と同指跳躍率 0.3% はいずれも、TRON かな配列やハイブリッド月配列に比べて大幅に改善されている。ブリ中トロ配列は高効率でありながら悪運指の少ない優れた配列であることが示された。

まとめ

ブリ中トロ配列は、左右対称なキーボードを前提とした高効率なカナ入力方式であり、

  • 1モーラ2打鍵以内
  • 打鍵数が少ない
  • 悪運指が少ない
  • 負荷分布がシンメトリー
  • 記号を除き30キー(片手3段5列)に収まる
  • Google 日本語入力のローマ字定義で実装可能

という特徴をもつ。作者はNISSEμTRONキーボードで使っているが、ユーザーの手に合った左右対称レイアウトを自由に作れる自作キーボードにも適した配列としてお勧めしたい。

ダウンロード

Google 日本語入力のローマ字定義ファイルと、この記事で使った評価用スクリプトが置いてあるよ。

https://github.com/mobitan/chutoro

*1:[Y] や [P] に置くことは運指上許容できない

*2:https://twitter.com/mobitant/status/1391090181407580160

*3:京都大学 学術情報メディアセンター 大規模テキストアーカイブ研究分野 のウェブサイトで配布されていた

左右対称型キーボード専用かな配列「ブリ中トロ配列」

2021/10/23: 最新版を別記事として書きました。

成熟の域に達しつつあるブリ中トロ配列。「あ」「お」「つ」をすべて単打にした 2020/10/23 版は非常に使いやすく、そこから小書き長音拡張など小改良を加えたバージョンを運用中。新しく知った人もこの記事だけ読んで理解できるように、2020/04/30 版を修正した全文を再掲するよ。

f:id:mobitan:20210126203449p:plain

名称

TRONかな配列を中指シフト化したものをベースに、ハイブリッド月配列のエッセンスを加えて煮詰めたから、「ハイブリッド・指シフト・トロン」で「ブリ中トロ配列」。

TRON かな配列が出発点であり、月配列とは系譜がまったく異なるので、月にまつわる名前は付けなかった。

前提条件

  • キーボードは、物理配列が左右対称である。
  • ユーザーは、各指の運動能力に極端な偏りがない。
  • キーボードは、ユーザーの指の可動範囲に合った大きさである。
  • ユーザーは、ですます調の現代文を少ない打鍵数で入力したい。

設計方針

  • 記号を除き30キー(片手3段5列)の範囲に収める。
  • 現代日本語の書き言葉に現れるすべてのモーラを2打以内で入力する。
  • 同じ指で異なるキーを続けて打つ運指(同指異鍵・同指跳躍)をできるだけ減らす。
  • 両手の各指の負担率をできるだけ左右対称にする。
  • Google 日本語入力のローマ字定義のみで実装し、その他の常駐ソフトやハードを要求しない。
  • カーソルや [Backspace] などの制御キーは考慮しない。それらは別のレイヤーで適切に設計されるものとする。

シフト方式の設計

非拗音面と拗音面を完全に分けて考える。

非拗音面のシフト方式

非拗音面は前置シフトで、シフトキーは [D] [K] の2種類。同手シフトと逆手シフトを区別する。清音と濁音は原則として同じキーに置く。例:

  • [O] =「く」
  • [DO] =「や」
  • [KO] = 「ぐ」

拗音面のシフト方式

拗音面は後置シフトで、シフトキーは [T] [Q] [Z] の3種類。これらが2打目に来た場合、直前の1打目をキャンセルして子音に読み替え、2打目を母音と見なし、両者の組み合わせで1モーラの拗音を入力する。言い換えると、拗音に限って行段式とする。拗音面の子音配列は、非拗音面の清音配列とは無関係に、頻度と打ちやすさによって決める。例:

  • [OT] =「じゃ」
  • [OQ] =「じゅ」
  • [OZ] =「じょ」

この例だと、1打目に [O] を打った時点では「く」が表示されるが、2打目に [T] を打つと「く」が消えて「じゃ」に変わる。この動作は Google 日本語入力のローマ字カスタマイズで実装できる。

さらに、2打シーケンスである [D;] [DA] も後置シフトとして扱う。これらが2~3打目に来た場合、「ゅう」「ょう」で終わる2モーラの拗音を入力する。これにより、「ゅ」「ょ」の7割近くを占める「ゅう」「ょう」をホームポジションで打てるようにする。例:

  • [OD;] =「じゅう」
  • [ODA] =「じょう」

配字の設計

ユーザーの手に合った左右対称なキーボードを前提とする。つまり、ユーザーは標準的なホームポジションに無理なく指を置き、上段にも下段にも無理なく指が届き、左手と右手をまったく同じように使うことができるものとする。この前提のもとで、以下のように配字を決めていった。

句読点

中指シフトキーの単打を句読点とする。これはハイブリッド月配列から拝借したアイディアで、読点の直後に必ず変換/確定しなければならない(読点に続けて文章を打つことができない)反面、キーを2個も節約できる。

  • [D] =「、」
  • [K] =「。」

撥音・促音・長音

「ん」「っ」「ー」は右小指に置く。撥音・促音・長音の前には他のすべてのかなが先行しうるので、これらを独立性の高い小指に置く TRON 配列の思想は理にかなっている。「んっ」「ーっ」といった連接は書き言葉に現れないので「っ」は下段でよい。「ー」は、TRON では [Shift+K] だったが、1打で書きたいので右小指外側 [:] の位置とする。

  • [;] =「ん」
  • [:] =「ー」
  • [/] =「っ」

拗音

「ゃ」「ゅ」「ょ」は左手の三隅 [T] [Q] [Z] に置く。拗音の頻度は3つ合わせても3%程度だが、すべてのモーラを2打以内で入力するという目標のために単打とせざるを得ないので、なるべく邪魔にならない場所に置く。

  • [T] =「ゃ」
  • [Q] =「ゅ」
  • [Z] =「ょ」

「ゅう」「ょう」は [D] から始まる2キーシーケンスを割り当てる。頻度はそれぞれ0.6~0.8%程度である。

  • [D;] =「ゅう」
  • [DA] =「ょう」

これらの拗音キーに先行する子音キーは、頻度の高いものから順に打ちやすい位置を割り当てていく。

清音

TRON かな配列をベースとして、前置シフトキー [D] [K] と後置シフトキー [T] [Q] [Z] を避けるように再配置する。

左手側は TRON からあまり変わっていない。単打面から「に」「ら」「り」を外し、打ちやすさと負荷バランスを考えて配字を入れ替えた。シフト面には右手から「け」「む」「め」が移ってきた。

一方、右手側はかなり変わっている。単打面から「、」「れ」「を」を外し、「お」「ち」「に」「ー」を単打面に入れた。シフト面には左手から「ゆ」「り」が移ってきた。

「を」は助詞専用であり、他のすべてのかなに連接することから、[DK] でも [KD] でも入力できるようにして運指の自由度を高めてみた。つもりだが、実際には [DK] ばかり使っているような気がする。

濁音・半濁音

バ行以外の濁音はすべて清音と同じキーに置き、頻度が高いものは逆手シフト、低いものは同手シフトとする。

パ行はハ行と同じキーで同手シフトとする。

バ行とファ行は、覚えやすさと打ちやすさのバランスを考えて行段的に配置する。ここがブリ中トロ配列で一番トリッキーな部分だが、下表のように整理すれば分かりやすい(横が1打目、縦が2打目)。

f:id:mobitan:20210126175414p:plain

ここまでのまとめ

  • 単打
    ゅことさゃ つきしくち
    たか、ては のい。うんー
    ょまなるも おすにあっ
    
  • 逆手シフト
    へねどめふ ※ゆじや※
    だがをでむ ばわをえュウ~
    ひそせけほ ぼろみ※※
    
  • 同手シフト
    ぺごぬざぷ ※ぎぢぐ※
    ョウら よぱ ファり れ※/
    ぴぞぜげぽ フォず※づ※
    
  • 拗音シフト
     み※    ぎちじ 
        ひ ※き し 
     に びぴ ※り ※ 
    

※は以下で説明する。

外来音

空いている場所に押し込む。

  • [EZ] =「うぃ」, [EQ] =「うぇ」, [ET] =「うぉ」
  • [KP] =「しぇ」, [KY] =「とぅ」, [K/] =「てぃ」, [K,] =「ちぇ」
  • [DP] =「じぇ」, [DY] =「どぅ」, [D/] =「でぃ」

小書き文字

小書き文字「ぁ」「ぃ」「ぅ」「ぇ」「ぉ」は、口語文で長音を表現する場合と、外来音を原音通りに表記しようとする場合に使われる。いずれにせよ使用頻度が極めて低いので、どんな配置にしようがどうせ覚えられないのが問題だ。

前者の場合については、[K;] を後置シフトとして扱い、直前の母音に応じた小書き文字を用いて長音を表現する「小書き長音拡張」を導入した。これにより、1モーラ2打以内の原則を堅持しつつ、覚えるキーシーケンスをひとつで済ませることができた。例:

  • [OK;] =「くぅ」
  • [DOK;] =「やぁ」
  • [OZK;] =「じょぉ」

後者の場合については、スマートな対応を諦めた*1。「ばいおりん」を変換したら「ヴァイオリン」が候補に出てくるし、「ツァラトゥストラ」を毎日書くなら「ちゃらとすとら」で単語登録すればいいじゃないか。

ショートカット

ですます調の文章では「です」「でした」「でしょう」などが頻出する。特に「で」の5割以上を占める「です」が3打鍵となるのは辛い。そこで、救済措置として「です」を2打鍵で入力できるようにする。

  • [D.] =「です」

清濁同置の原則を緩めて「で」を単打にする案も試したが、結果的には清濁同置のほうが良かった。「て」「で」の頻度はどちらも約2.8%であり、清濁別置にすると両方を単打面に置くことになるが、どちらかをホームポジション外に置かざるを得ず、打ちにくい運指が頻出するようになってしまった。それよりは、「で」をホームポジション内の2打鍵で入力し、特に頻度の高い「です」に救済措置を入れるほうがマシだと思う。

「です」以外にも、空いているキーシーケンスに適宜ショートカットを定義した。

  • [HT] =「ぷろぐらむ」
  • [NT] =「ぷろじぇくと」
  • [HZ] =「いただ」
  • [NZ] =「おもいま」
  • [HDA] =「けんきゅう」
  • [NDA] =「じょうほう」
  • [.Z] =「ください」
  • [.DA] =「でしょう」

このへんはユーザーの個性(職業?)が強く現れるところだろう。各々がよく使う打ちにくい字句を定義すればよい。

評価

負荷分布

国立国語研究所 現代日本語書き言葉均衡コーパス のうち「出版・書籍」「特定目的・Yahoo!知恵袋」の各上位1万語彙を用いて各キーの負荷を解析した。

f:id:mobitan:20210126191048p:plain

左手と右手の負担率はコーパスによって異なるが、ほぼ 49:51 である。各指の負担率は、小指 6~7%、薬指 9~10%、中指 17~18%、人差指 16~17% 程度である。負担率をできるだけ左右対称にするという設計方針を実現できた。

定量評価

京都大学 学術情報メディアセンター 大規模テキストアーカイブ研究分野 のウェブサイトで配布されている、BCCWJ(コアデータ)コーパスから生成された仮名漢字変換用 2-gram の上位1万語彙を用いて評価した。打鍵効率は1文字の入力に必要な平均打鍵数、同指跳躍率は上段キーの直前/直後に下段キーを打つ率である。

f:id:mobitan:20210126191547p:plain

ブリ中トロ配列 2021/01/26 版は、清濁同置・前置2シフトという単純な(効率向上には不利な)設計ながら、打鍵効率 1.22、同指異鍵率 2.9%、同指跳躍率 0.3% を達成した*2。打鍵効率 1.22 は、31キーに収まる逐次シフト配列として最善に近く、これをさらに改善しようとすれば、隅っこの打ちにくいキーを多用するしかないだろう。同指異鍵率 2.9% と同指跳躍率 0.3% はいずれも、TRON かな配列やハイブリッド月配列に比べて大幅に改善されており、悪運指の少ない配列であると言える。

まとめ

ブリ中トロ配列は、左右対称なキーボードを前提とした高効率なカナ入力方式であり、

  • 1モーラ2打鍵以内
  • 打鍵数が少ない
  • 悪運指が少ない
  • 負荷分布がシンメトリー
  • 記号を除き30キー(片手3段5列)に収まる
  • Google 日本語入力のローマ字定義で実装可能

という特徴をもつ。作者はNISSEμTRONキーボードで使っているが、ユーザーの手に合った左右対称レイアウトを自由に作れる自作キーボードにも適していると思う。

ダウンロード

Google 日本語入力のローマ字定義ファイルと、この記事で使った評価用スクリプトが置いてあるよ。

https://github.com/mobitan/chutoro

*1:本当に必要なら、拗音面の空いているキーを適当に割り当てればよい。

*2:同指跳躍率の計算方法を見直したため、2019/10/22 版の記事とは比較できない。本記事では [R] [T] [V] [B] [Y] [U] [N] [M] を人差指にカウントしている。一方、2019/10/22 版の記事では [R] [V] [U] [M] を人差指にカウントしているが、[T] [B] [Y] [N] をカウントしていなかった。

左右対称型キーボード専用かな配列「ブリ中トロ配列」

2021/01/26: 最新版を別記事として書きました。

2019/10/31 版から再出発し、チマチマと改良を続けている「ブリ中トロ配列」。だいたいノウハウが固まって安定してきたので、現在の状況を 2020/04/30 版としてまとめておこう。

f:id:mobitan:20200430070514p:plain

名称

TRONかな配列を中指シフト化したものをベースに、ハイブリッド月配列のエッセンスを加えて煮詰めたから、「ハイブリッド・指シフト・トロン」で「ブリ中トロ配列」。

TRON かな配列が出発点であり、月配列とは系譜がまったく異なるので、月にまつわる名前は付けなかった。

前提条件

  • キーボードは、物理配列が左右対称である。
  • ユーザーは、各指の運動能力に極端な偏りがない。
  • キーボードは、ユーザーの指の可動範囲に合った大きさである。
  • ユーザーは、ですます調の現代文を少ない打鍵数で入力したい。

設計方針

  • 記号を除き30キー(片手3段5列)の範囲に収める。
  • 現代日本語の書き言葉に現れるすべてのモーラを2打以内で入力する。
  • 同じ指で異なるキーを続けて打つ運指(同指異鍵・同指跳躍)をできるだけ減らす。
  • 両手の各指の負担率をできるだけ左右対称にする。
  • Google 日本語入力のローマ字定義のみで実装し、その他の常駐ソフトやハードを要求しない。
  • カーソルや [Backspace] などの制御キーは考慮しない(それらは別のレイヤーで適切に設計されるものとする)。

シフト方式の設計

非拗音面と拗音面を完全に分けて考える。

非拗音面のシフト方式

非拗音面は前置シフトで、シフトキーは [D] [K] の2種類。同手シフトと逆手シフトを区別する。清音と濁音は原則として同じキーに置く。例:

  • [O] =「く」
  • [DO] =「や」
  • [KO] = 「ぐ」

拗音面のシフト方式

拗音面は後置シフトで、シフトキーは [T] [Q] [Z] の3種類。これらが2打目に来た場合、直前の1打目をキャンセルして子音に読み替え、2打目を母音と見なし、両者の組み合わせで1モーラの拗音を入力する。言い換えると、拗音に限って行段式とする。拗音面の子音配列は、非拗音面の清音配列とは無関係に、頻度と打ちやすさによって決める。例:

  • [OT] =「じゃ」
  • [OQ] =「じゅ」
  • [OZ] =「じょ」

この例だと、1打目に [O] を打った時点では「く」が表示されるが、2打目に [T] を打つと「く」が消えて「じゃ」に変わる。この動作は Google 日本語入力のローマ字カスタマイズで実装できる。

さらに、2打シーケンスである [D;] [DA] も後置シフトとして扱う。これらが2~3打目に来た場合、「ゅう」「ょう」で終わる2モーラの拗音を入力する。これにより、「ゅ」「ょ」の7割近くを占める「ゅう」「ょう」をホームポジションで打てるようにする。例:

  • [OD;] =「じゅう」
  • [ODA] =「じょう」

配字の設計

ユーザーの手に合った左右対称なキーボードを前提とする。つまり、ユーザーは標準的なホームポジションに無理なく指を置き、上段にも下段にも無理なく指が届き、左手と右手をまったく同じように使うことができるものとする。この前提のもとで、以下のように配字を決めていった。

句読点

中指シフトキーの単打を句読点とする。これはハイブリッド月配列から拝借したアイディアで、読点の直後に必ず変換/確定しなければならない(読点に続けて文章を打つことができない)反面、キーを2個も節約できる。

  • [D] =「、」
  • [K] =「。」

撥音・促音・長音

「ん」「っ」「ー」は右小指に置く。撥音・促音・長音の前には他のすべてのかなが先行しうるので、これらを独立性の高い小指に置く TRON 配列の思想は理にかなっている。「んっ」「ーっ」といった連接は書き言葉に現れないので「っ」は下段でよい。「ー」は、TRON では [Shift+K] だったが、1打で書きたいので右小指外側 [:] の位置とする。

  • [;] =「ん」
  • [:] =「ー」
  • [/] =「っ」

拗音

「ゃ」「ゅ」「ょ」は左手の三隅 [T] [Q] [Z] に置く。拗音の頻度は3つ合わせても3%程度だが、すべてのモーラを2打以内で入力するという目標のために単打とせざるを得ないので、なるべく邪魔にならない場所に置く。

  • [T] =「ゃ」
  • [Q] =「ゅ」
  • [Z] =「ょ」

「ゅう」「ょう」は左手側の中指シフトキーから始まる2キーシーケンスを割り当てる。頻度はそれぞれ0.6~0.8%程度である。人差指や薬指を当ててもよいのだが、負荷バランスを考えて、両小指を当てることとした。

  • [D;] =「ゅう」
  • [DA] =「ょう」

これらの拗音キーに先行する子音キーは主に右手側に置き、頻度の高い子音から順に打ちやすい位置を割り当てていく。ミャ行とビャ行は頻度がきわめて低い(ほぼ「みゃく」「みょう」「びょう」しか現れない)ので左手側に置き、右手側のキーに将来拡張用の余裕を持たせておく。

清音

TRON かな配列をベースとして、前置シフトキー [D] [K] と後置シフトキー [T] [Q] [Z] を避けるように再配置する。

左手側は TRON からあまり変わっていない。単打面から「に」「ら」「り」を外し、打ちやすさと負荷バランスを考えて配字を入れ替えた。シフト面には右手から「け」「む」「め」が移ってきた。

一方、右手側はかなり変わっている。単打面から「、」「あ」「れ」「を」を外し、「お」「ち」「に」「わ」「ー」を単打面に入れた。シフト面には左手から「ゆ」「り」が移ってきた。

「を」は助詞専用であり、他のすべてのかなに連接することから、[DK] でも [KD] でも入力できるようにして運指の自由度を高めてみた。つもりだが、実際には [DK] ばかり使っているような気がする。

濁音・半濁音

バ行以外の濁音はすべて清音と同じキーに置き、頻度が高いものは逆手シフト、低いものは同手シフトとする。

パ行はハ行と同じキーで同手シフトとする。

ファ行と「ゔ」はハ行と対称な右手側のキーに置き、同手シフトとする。

バ行は原則としてハ行と対称な右手側のキーに置き、逆手シフトとする。ただし、「び」「べ」を右小指に置くと「びん」「べん」が打ちにくいので、この2つだけ例外として左手側に持ってきて次のようにする。

  • [FQ] =「び」
  • [FZ] =「べ」

ここまでのまとめ

  • 単打
    ゅことさゃ わきしくち
    たか、ては のい。うんー
    ょまなるも おすにつっ
    
  • 逆手シフト
    ひねどめふ ぶゆじや※
    だがをでむ ばえをあュウ~
    へそせけほ ぼ※※み※
    
  • 同手シフト
    ぴごぬざぷ ゔぎぢぐフィ
    ョウら よぱ ファり れろ/
    ぺぞぜげぽ フォず※づフェ
    
  • 拗音シフト
     ※※※   ぎちじぴ
     ※    ※き し 
     み び   りにひ 
    

※は以下で説明する。

外来音

拗音と同様に、[Q] [T] [Z] を2打目とする行段的な割り当てを行う。

  • [RQ] =「うぃ」, [RT] =「うぇ」, [RZ] =「うぉ」
  • [EQ] =「てぃ」, [ET] =「ちぇ」, [EZ] =「とぅ」
  • [WQ] =「でぃ」, [WT] =「じぇ」, [WZ] =「どぅ」
  • [ST] =「しぇ」

小書き文字

ここまでの定義で、およそ現代日本語の書き言葉に現れる(造語や外国の固有名詞を除く)すべてのモーラが2打鍵で網羅できていると思う。

網羅できなかったモーラを書くための小書き文字「ぁ」「ぃ」「ぅ」「ぇ」「ぉ」は、2打鍵にすることも可能だが、覚えにくい不規則な配置にせざるを得ない。これらは使用頻度がきわめて低いので、思い出しやすさを優先して3打鍵を許容し、規則的な配置とする。

  • [DDN] =「ぁ」
  • [DDM] =「ぃ」
  • [DD,] =「ぅ」
  • [DD.] =「ぇ」
  • [DD/] =「ぉ」

ショートカット

ですます調の文章では「です」「でした」「でしょう」などが頻出する。特に「で」の5割以上を占める「です」が3打鍵となるのは辛い。そこで、救済措置として「です」を「す」の逆手シフトに置く。こうすると、「ですが」を打つときと「ますが」を打つときで2打目以降の運指が共通になる。

  • [DM] =「です」

清濁同置の原則を緩めて「で」を単打にする案も試したが、結果的には清濁同置のほうが良かった。「て」「で」の頻度はどちらも約2.8%であり、清濁別置にすると両方を単打面に置くことになるが、どちらかをホームポジション外に置かざるを得ず、打ちにくい運指が頻出するようになってしまった。それよりは、「で」をホームポジション内の2打鍵で入力し、特に頻度の高い「です」に救済措置を入れるほうがマシだと思う。

「です」以外にも、空いているキーシーケンスに適宜ショートカットを定義した。

  • [DP] =「いただき」
  • [D/] =「ください」
  • [D,] =「あり」
  • [K,] =「けど」
  • [FD;] =「でしょう」
  • [FDA] =「でした」
  • [SD;] =「ましょう」
  • [SDA] =「ました」
  • [SZ] =「ません」
  • [HT] =「しすてむ」
  • [HQ] =「せんせい」
  • [HD;] =「けんきゅう」
  • [HDA] =「じょうほう」

このへんはユーザーの個性(職業?)が強く現れるところだろう。各々がよく使う打ちにくい字句を定義すればよい。

評価

負荷分布

国立国語研究所 現代日本語書き言葉均衡コーパス のうち「出版・書籍」「特定目的・Yahoo!知恵袋」の各上位1万語彙を用いて各キーの負荷を解析した。

f:id:mobitan:20200430070606p:plain

左手と右手の負担率はコーパスによって異なるが、ほぼ 49:51 である。各指の負担率は、小指 6~7%、薬指 9~10%、中指 17~18%、人差指 15~17% である。負担率をできるだけ左右対称にするという設計方針を実現できた。

定量評価

京都大学 学術情報メディアセンター 大規模テキストアーカイブ研究分野 のウェブサイトで配布されている、BCCWJ(コアデータ)コーパスから生成された仮名漢字変換用 2-gram の上位1万語彙を用いて評価した。打鍵効率は1文字の入力に必要な平均打鍵数、同指跳躍率は上段キーの直前/直後に下段キーを打つ率である。

f:id:mobitan:20200430070623p:plain

ブリ中トロ配列 2020/04/30 版は、清濁同置・前置2シフトという単純な(効率向上には不利な)設計ながら、打鍵効率 1.22、同指異鍵率 2.7%、同指跳躍率 0.4% を達成した*1。打鍵効率 1.22 は、31キーに収まる中指シフト配列としてほぼベストであり、これ以上は小細工レベルの改善しか望めないだろう。同指異鍵率 2.7% と同指跳躍率 0.4% はいずれも、TRON かな配列やハイブリッド月配列に比べて大幅に改善されており、悪運指の少ない配列であると言える。

まとめ

ブリ中トロ配列は、左右対称なキーボードを前提とした高効率なカナ入力方式であり、

  • 1モーラ2打鍵以内
  • 打鍵数が少ない
  • 悪運指が少ない
  • 負荷分布がシンメトリー
  • 記号を除き30キー(片手3段5列)に収まる
  • Google 日本語入力のローマ字定義で実装可能

という特徴をもつ。作者はNISSEμTRONキーボードで使っているが、ユーザーの手に合った左右対称レイアウトを自由に作れる自作キーボードにも適していると思う。

定義ファイル

Google 日本語入力のローマ字定義ファイルはこちら(「続きを読む」をクリック)↓

*1:同指跳躍率の計算方法を見直したため、2019/10/22 版の記事とは比較できない。本記事では [R] [T] [V] [B] [Y] [U] [N] [M] を人差指にカウントしている。一方、2019/10/22 版の記事では [R] [V] [U] [M] を人差指にカウントしているが、[T] [B] [Y] [N] をカウントしていなかった。

続きを読む

かな配列をイチから作ってみる

どうも今の中トロ配列は局所最適に陥ってるんじゃないかと思って、フルスクラッチで新しいかな配列を起こしてみた。

前提条件

  • 左右対称形のキーボードを
  • 両利きのユーザーが
  • 撫で打ちする*1

制約条件

  • 「ん」「っ」「ー」を右小指に置く
  • 「ゃ」「ゅ」「ょ」を左手のアンシフト面に置く
  • 「、」を左中指、「。」を右中指に置き、前置シフトキーを兼ねる

目標

  • 負荷分布がシンメトリーな配列を作る
  • 人差指側から小指側へ流れるような運指を意識する

わかったこと

  • 「う」「る」を同じ指に置くのは負荷が高すぎて不可
  • 「す」「る」を同じ手に置くのも負荷が高すぎて不可
  • 「う」を左手に置くのは左手のキーが足りなくなるので不可

というわけで、連接頻度の低い「う」「ん」「る」「っ」「く」「つ」を同じ指に置くという新JIS系の常套手段が使えないことが明らかになった。左右非対称なキーボードで人差指に負荷を集中させた新JIS配列と、左右対称なキーボードで負荷を分散させるTRON配列は、やはり骨格からして別物にならざるを得ないのだろう。

1週間かけて試行錯誤を繰り返した結果、なんだかんだで元の木阿弥……左に「た」「と」「か」「て」「る」、右に「い」「う」「ん」「し」「す」を置くという、TRON配列の流れを汲む中トロ配列と同じ骨格を持つ配列が得られたのだった。苦笑。

f:id:mobitan:20191031190046p:plain

しばらく使ってみて、良さげなら改めて記事にまとめるよ。

*1:下段のキーは押しやすいが、上段外側の [Q] [R] [T] [Y] [U] [P] は押しにくい

中指シフト化したTRONかな配列に帰ってきた

2021/01/26: 最新版を別記事として書きました。

名付けて「ブリ中トロ配列」*1

f:id:mobitan:20191023012044p:plain

特徴

中指前置シフト・清濁同置のシンプルな設計でありながら、TRON かな配列なみの打鍵効率 1.21、同指跳躍率0.3% を達成。

  • 濁拗音・外来音を含むすべてのモーラを2打鍵以内で入力できる。例: [JT] =「じゃ」、[FZ] =「でぃ」、[YQ] = 「ふぉ」 など。
  • 左右対称なキーボードを撫で打ちするのに適した負荷分布。
  • ですます調の文章(Yahoo!知恵袋コーパス)を用いた定量評価。
  • Google日本語入力のローマ字カスタマイズで実装。

設計方針

非拗音面と拗音面を完全に分けて考える。

非拗音面は前置シフトで、シフトキーは [D] [K] の2種類。同手シフトと逆手シフトを区別する。濁音は清音のシフト側に置く(濁音の頻度が高ければ逆手シフト、低ければ同手シフトとする)。例:

  • [O] =「く」
  • [DO] =「み」
  • [KO] = 「ぐ」

シフトキーの単独打鍵で句読点を入力する。そのため、句読点の直後で必ず変換/確定しなければならない。

拗音面は後置シフトで、シフトキーは [T] [Q] [Z] [DJ] [DL] の5種類。これらが2打目に来た場合、直前の1打目をキャンセルして子音に読み替え、2打目を母音と見なし、両者の組み合わせで1モーラの拗音を入力する。拗音面の子音配列は、非拗音面の清音配列とは無関係に、頻度に応じて決める。例:

  • [OT] =「きゃ」
  • [OQ] =「きゅ」
  • [OZ] =「きょ」
  • [ODJ] =「きゅう」
  • [ODL] =「きょう」

この例だと、1打目に [O] を打った時点では「く」が表示されるが、2打目に [T] を打つと「く」が消えて「きゃ」に変わる。この動作は Google 日本語入力のローマ字カスタマイズで実装できる。

負荷分布

国立国語研究所 現代日本語書き言葉均衡コーパス のうち「出版・書籍」「特定目的・Yahoo!知恵袋」の各上位1万語彙を用いて各キーの負荷を解析した。

f:id:mobitan:20191023013704p:plain

  • ですます調の文章が多い「特定目的・Yahoo!知恵袋コーパスにおいてバランスの良い負荷分布になっている。
  • 右手の負荷がやや高い。これは「る」を右手に置いたことに起因する。オリジナルの TRON かな配列では「り」「る」が左手、「あ」「け」が右手にあり、負荷率は左右ほぼ均等だった。しかし、ですます調で頻出する「ま」が隅にあること、中指シフト化にともない「とる」「こる」が打ちにくくなること、などの難点があった。そこで、ブリ中トロ配列では「り」「る」を右手に追い出し、空いた左手の隅に後置シフトキーを置いた。

定量評価

京都大学 黒橋・河原研究室 で配布されている、BCCWJ(コアデータ)コーパスから生成された仮名漢字変換用 2-gram の上位1万語彙を用いて評価した。

打鍵効率は1文字の入力に必要な平均打鍵数、同指跳躍率は上段キーの直前/直後に下段キーを打つ率である。

f:id:mobitan:20191023013749p:plain

ブリ中トロ配列は、清濁同置・前置2シフトという単純な(効率向上には不利な)設計ながら、打鍵効率 1.21、同指跳躍率 0.3% を達成した。これは、清濁別置・前置3シフトであるハイブリッド月配列に比べ同指跳躍率が半分以下であり、親指シフトである TRON かな配列に匹敵する。

感想(2019/10/31 追記)

やっぱり右薬指の負荷が高すぎてアカンかった…。

*1:ハイブリッド月配列 からアイディアを拝借したので、敬意を表して名前を似せた。