1.「飛鳥」配列試算 前試案を出してから、日本語入力コンソーシアムの掲示板にRayさんから「飛鳥」についても計算してというリクエストがありました。 飛鳥の特徴については上記ホームページを見てもらうと分かりますが、親指シフトをベースに、配列を徹底的に見直して運指の合理化をしています。その徹底ぶりは、例えば記号や数字の配列まで見直すというところまでなっています。 Rayさんからのリクエストがある前から実は飛鳥配列は気になっていました。親指シフトという枠の中で配列の合理化がどの程度使い易さに影響を及ぼすか、私の作った指標は役に立つのか、こうした問題を考えるのに良いなと思ったのが飛鳥なのです。 計算そのものはそれほど大変なものではありません。エクセルファイルの文字のところを配列にあわせて置き換える等の作業をすればいいだけですから。それがこれまで時間がかかったのは単に私の時間の問題だけです。 言い訳はこのくらいにして、試算結果を下に示します。例によってエクセルファイルも添付します。使用した配列は「飛鳥−21世紀 207(最終バージョン!)」 とされているものです。下の表では飛鳥207と書いてあります。 入力比較 総括表
2. 評価 さすがに運指の合理化を究極まで進めただけあって、指の動く距離(G)は親指シフトの約4分の3になっています。一方、距離と打鍵数を考慮に入れた指標(A-E)ではそれほど大きな違いは出ていません。一つには、使用される指の違いによる重み付けの問題があるかもしれません。実際、重み付けをしない指標(D)では親指シフトに対する優位が現れてきます。私が使った重み付けに関しては、Rayさんから「中指最強論」として反論がありました。私自身はこの件に関してはきちんと判断するだけの情報を持っていないため、さらに調べていきたいと思っています。なお、Rayさんの考え方で比較をしてみたいという方はエクセルファイルを加工して計算ができます。そんなに難しい作業ではありません。 (付論)エクセルファイルの見方 エクセルファイルについて、「人のマクロを読むのは面倒」というご指摘がありました。いくらかでも理解し易いようにと思い、以下にエクセルファイルの見方を簡単に説明しておきます。 (1)ブックの構成 ワークシートは、「Nicola」、「飛鳥207」、「JISかな」、「ローマ字Qwerty」、「ローマ字Dvorak」、「比較表」、「文章」よりなっています。その他、マクロとしてユーザー定義関数NumAppearがあります。最初の5つのワークシートは名前で分かる通り、それぞれの入力方法における指標の計算です。その結果を分かり易く比較できるようにしたのが「比較表」です。「文章」は、試算のために使った文章(漢字かな交じり文)で保存してあります。 (2)各入力方法のワークシートの構成 A1にはそれぞれの入力方法で試算のための文章を入力するための打鍵がどのようになっているかを入れてあります。例えばJISかなでは濁音は清音+濁点とするなどといった具合です。その下の欄(A2)には打鍵数を計算しています。計算はエクセルの関数LENを使っています。 A5以下は入力する文字を並べています。並べ方は基本的にホームポジションから近いところを先にしていますが、完全にそのようにはなっていないところも結構あります。なお、すべてのかな、英文字は入れてありますが、記号などは入っているものもそうでないものもあります。 B列には、試算に使った文章の入力でそれぞれの文字が何回現れるかを計算しています。計算にはユーザー定義関数NumAppearを使用しています。なお、一番下には合計が書いてありますので、A2と比べてチェックをすることができます。 C列は各文字を打鍵するときのホームポジションからの距離です。 D列は「グループ」という名前がついており、指の移動距離をベースにグループ分けをしていたのですが、きちんとなっていないのと実際の計算には使用していないので無視していただいて結構です。 E列は打鍵に使用する指で、1〜4がそれぞれ人指し指、中指、薬指、小指に対応しています。 F列は親指シフト、飛鳥にだけ関係ある項目で、0はシフトなし、1は同手シフト、2はクロスシフトです。 G列はJISかなだけに関係ある項目で、シフトが必要なものについて1としてあります。 H列は基本ケースにおける各文字打鍵のコストです。 I列は各文字のコストとB列の回数を掛けたもので、一番下にその合計が出ています。この数字が比較の対象になります。 J列、L列、N列、P列、R列、T列はそれぞれ打鍵数重視ケース、指の移動距離重視ケース、使う指によるウェート付けなしケース、シフト動作による手間増大考慮ケース、打鍵数のみによる評価ケース、距離のみによる評価ケースにおける各文字のコストが出ています。それぞれの列の右には回数を掛けた数値が出ており一番下にその合計が出ています。 (3)比較表 各ワークシートの各ケースでの合計を使って、比較表を作成してあります。Nicola=1の比率にしてあります。 (4)ユーザー定義関数 Visual Basic Editorで作ったマクロで、文字列の中に特定の文字が何回現れるかを計算するものです。ちょっとうるさいですが、下記の通りの簡単なものです。 Function NumAppear(Sentence, Letter) NumAppear = 0 LengthSentence = Len(Sentence) While LengthSentence > 0 FirstLetter = Left(Right(Sentence, LengthSentence), 1) If FirstLetter = Letter Then NumAppear = NumAppear + 1 LengthSentence = LengthSentence - 1 Wend End Function 以上で少し理解し易くなることを期待しています。できましたらいろいろ数値等を入れ替えたりして計算されること(その前に間違いなどがあったらこっそりでもおおっぴらでも良いですから教えてください)をしてもらえるとありがたく思います。 2004.04.03 初版 |