JShark: A Japanese handwriting input system

SHARK2の日本語版。ペンを使って日本語を入力するソフトウェアキーボード。(実装はかなり異なりますが。)

SHARK

SHARK は、ペンで文字を入力するためのインタフェースの一つです。キーボードの上をペンでなぞることによって、文字を入力することが出来ます。

内部に辞書を持っており、ある程度雑に書いても適当に補正されるのが特長です。

JSHARK

JSHARK は、ペンで日本語を入力するためのインタフェースで、SHARK のアイデアをもとに作られました。SHARK 同様、キーボードの上をペンでなぞることによって日本語を入力します。

日本語は文字数が多いので、一文字一文字割り当てているとキーの数が多くなってしまいます。そのため、同じキーに2つの文字を割り当て、それをシフトさせる動作を導入することで、ある程度問題を解決しました。

入力方法

アプリケーションをを立ち上げるとキーボードが表示されます。

この状態で、たとえば「あきしののみや」と入力するには、次のようにペンを動かしてください。

基本的には角度が急激に変わっているところを検出し、そのキーの左上の文字をキーボードエミュレーションにより入力します。

キーの右下の文字を入力するには、次のように、キーの上でまるを書いて、線を交差させてください。たとえば、「ぎりしゃ」と入力するには……

右クリックでコンテキストメニューをだすと、次の設定が出来ます。

オートスペース
入力後に、スペースキーを自動的に挟みます。ただし、1文字のみ入力した場合には挟みません。
頻度記録
入力された文字を記録します。
頻度利用
入力された文字を記録したものを用いて、入力を補正します。

なお、入力中に間違えたと思ったときは、「今のなし!」上でペンを離せば、入力はなかったことになります。

ダウンロード

Windows XP 以降で動作します。Windows 2000 でも動くかもしれませんがテストしていません。

ソースのコンパイルには boost が必要です。ここではあんまり使ってませんけど。

ライセンスは modified BSD とします。著作権は放棄しませんが、あなたが変更して利用するのは自由です。

TODO

  • キー配列を考えた方がよい。五十音はひどい。
  • 同じ文字が連続で入力しにくい (SHARK2 のように空白部分があるといいかも?)
  • シフトの感度が良すぎるのをなんとかする
  • 頻度ファイルの形式、頻度の見方
  • 実は入力文字の長さ N に対して、動作が O(exp(N)) かかる! (手抜き仕様)
  • CTRL とか Shift とか。ファンクションキーとか。
  • 入力した後に「今のなし!」したい (by いろんな人)
  • 頻度に関しては、漢字まで入れてやるとより精度が出るらしいが、ちょっとこのアプリケーションの範囲を超えますね。

参考文献

2005-01-01