「漢ナビ2」

(2000-06-12)

「漢ナビ2」について

 「漢ナビ2」は、「漢ナビ」に、漢直と“速記入力”の組み合わせという新しい入力方法を導入した大幅な改訂版です。漢直と速記を組み合わせようと考えた経緯については、「G-Code」で速記をのページを御一読ください。

 今はまだ構想を練っている段階ですが、随時、このページで途中経過を公表していきます。


“熟語補完”の拡張で“速記入力”

 「漢ナビ」には“熟語補完”という機能がある。これは、漢字の最後のキーをシフトしながら打つと、その漢字の後に続く漢字のグループを仮想鍵盤に表示するというものだ。仮想鍵盤に表示された漢字は1打鍵で入力できる。このときもシフト打鍵すると、さらに次の漢字グループが表示される。

 補完できる漢字はあくまでも1字ずつだ。熟語補完を使って「漢字」を入力しても、次に「直接入力」が1打鍵で入力できるというようなことはない。これは漢字の第1打鍵を覚えるための補助的な機能だから仕方ないけれども、ちょっと不便な感じもする。

 スペースとの同時打鍵を第1打とする2ストロークを“速記入力”に利用しようと考えていたときに、このことを思い出した。

  1. 2ストロークの“速記入力”を覚える場合も、打鍵ガイドを表示した方が便利だろう
  2. 打鍵ガイドの表示タイミングは、スペースを押し下げた時が適当だろう
  3. スペースを押したまま候補を選択した場合は、その後に続く仮名文字列のグループを表示してはどうか
  4. それならば、単漢字や熟語を打った後にスペースを押し下げた場合にも、それに続く仮名文字列の候補を表示するのが自然だ
  5. 候補が多いときは、スペースを再度打って次の面に進めばよい
  6. 打鍵ガイドを見なくても入力できるように、同じ文字列は同じキーに割り当てるべきだ
  7. 一定の文字列が常に同じ打鍵で確定するのだったら、わざわざ2ストロークにする必要はない

 こうして、“熟語補完”の拡張(超多段シフト的な操作方法)で“速記入力”ができるという考えに至った。

辞書の内容

 以下のような6種類の変換を行うための辞書が必要だ。

  1. 漢字文字列→漢字文字列群
  2. 仮名文字列→漢字文字列群
  3. 漢字文字列→仮名文字列群
  4. 仮名文字列→仮名文字列群
  5. 空文字列→仮名文字列群
  6. 仮名文字列→打鍵位置

 1と2は接頭語から変換する場合や漢字文字列を一気に補完する場合、5は接続詞や副詞などを単独で入力する場合に使う。

 1〜5は、任意の文字列から任意の文字列(群)に変換する辞書に統合できる。この辞書の中に打鍵位置も入れておけば、6の変換を個別に行う必要がなくなって変換時間を短縮できる。

ドライバの動作

 ドライバは、以下のような動作を行う。

  1. スペースが押されたら、IMEの未確定文字列を検索用のキーにコピーする
  2. キーを使って検索し、候補群(文字列群と打鍵位置)を受け取る
  3. 仮想鍵盤に候補群を表示する
  4. 文字キーが打鍵されたら、該当する文字列を確定入力する
    (スペースが押された状態なら、確定した文字列をキーにコピーして2へ)
  5. スペースが押されたら、次の候補群に進める(3へ)

 本当は「取り消し」や「前候補群」などの処理も必要だが、細かい説明は省略した。また、候補群の数は仮想鍵盤8面程度、文字列の長さは5文字程度までに制限しておいた方がいいだろう。

(2000-06-12)


付記

 Windows XP が出たころからWindows用のIMEがどんどん減っていき、95〜Meとは全く別のXPに「漢ナビ」を移植するのも難しそうだったので、この数年間はJava用のInput Methodをコツコツと作っています。

 もちろん、最初から漢直を前提とした仮名漢字変換方式で、これまで考えてきたような“速記入力”にも対応しています。Input Method本体と仮名漢字変換辞書と“速記入力”辞書を並行して作っているわけですが、まあだいたい「こんなものを作ろうとしています」という感じを伝えるためのサンプル版ができたかな、といった段階です。

 このJava用のInput Methodと“速記入力方式”は、近いうちに公開したいと思っております。

(2007-10-07)


[ 「漢ナビ」 | 漢字直接入力 | m(as)m's home position ]