(57)【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイと、
手書きアプリケーションプログラムを実行するプロセッサと、
を具備し、
前記プロセッサは、
前記タッチスクリーンディスプレイ上で手書き入力される１画目〜ｎ画目のストローク集合をｍ画毎（ｍ＜ｎ）に区切った上で文字認識処理を実行し、
前記タッチスクリーンディスプレイの前記１画目〜ｍ画目の第１ストローク集合が表示される位置に対応して、前記第１ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第１候補提示領域を表示し、
前記タッチスクリーンディスプレイのｍ＋１画目〜ｎ画目の第２ストローク集合が表示される位置に対応して、前記第２ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第２候補提示領域を少なくとも表示する
電子機器。
【請求項２】
前記第１候補提示領域は、前記第２候補提示領域より上方向又は下方向にずらした位置である、請求項１に記載の電子機器。
【請求項３】
前記プロセッサは、前記タッチスクリーンディスプレイを操作するペンのペン先を前記第１候補提示領域に位置させた時、前記第１候補提示領域の表示色と、対応する１画目〜ｍ画目の前記第１ストローク集合の表示色とを同じ色に変化させ、前記第１候補提示領域の表示色と前記第２候補提示領域の表示色とは異なる色とする、請求項１に記載の電子機器。
【請求項４】
前記プロセッサは、前記タッチスクリーンディスプレイを操作するペンのペン先を前記第２候補提示領域に位置させた時、前記第２候補提示領域の表示色と、対応するｍ＋１画目〜ｎ画目の前記第２ストローク集合の表示色とを同じ色に変化させ、前記第２候補提示領域の表示色と前記第１候補提示領域の表示色とは異なる色とする、請求項１に記載の電子機器。
【請求項５】
タッチスクリーンディスプレイ上で手書き入力される１画目〜ｎ画目のストローク集合をｍ画毎（ｍ＜ｎ）に区切った上で文字認識処理を実行し、
前記タッチスクリーンディスプレイの前記１画目〜ｍ画目の第１ストローク集合が表示される位置に対応して、前記第１ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第１候補提示領域を表示し、
前記タッチスクリーンディスプレイのｍ＋１画目〜ｎ画目の第２ストローク集合が表示される位置に対応して、前記第２ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第２候補提示領域を少なくとも表示する、
方法。
【請求項６】
コンピュータにより実行されるプログラムであって、
タッチスクリーンディスプレイ上で手書き入力される１画目〜ｎ画目のストローク集合をｍ画毎（ｍ＜ｎ）に区切った上で文字認識処理を実行する手段と、
前記タッチスクリーンディスプレイの前記１画目〜ｍ画目の第１ストローク集合が表示される位置に対応して、前記第１ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第１候補提示領域を表示する手段と、
前記タッチスクリーンディスプレイのｍ＋１画目〜ｎ画目の第２ストローク集合が表示される位置に対応して、前記第２ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第２候補提示領域を少なくとも表示する手段と、
を実行させるプログラム。
【請求項７】
前記第１候補提示領域は、前記第２候補提示領域より上方向又は下方向にずらした位置である、請求項６に記載のプログラム。
【請求項８】
前記タッチスクリーンディスプレイを操作するペンのペン先を前記第１候補提示領域に位置させた時、前記第１候補提示領域の表示色と、対応する前記１画目〜ｍ画目の前記第１ストローク集合の表示色とを同じ色に変化させ、前記第１候補提示領域の表示色と前記第２候補提示領域の表示色とは異なる色とする、請求項６に記載のプログラム。
【請求項９】
前記タッチスクリーンディスプレイを操作するペンのペン先を前記第２候補提示領域に位置させた時、前記第２候補提示領域の表示色と、対応するｍ＋１画目〜ｎ画目の前記第２ストローク集合の表示色とを同じ色に変化させ、前記第２候補提示領域の表示色と前記第１候補提示領域の表示色とは異なる色とする、請求項６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニュー又はオブジェクトを指等でタッチすることにより、又は、手書き入力を行うことで、電子機器を操作することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２６５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一形態の目的は、入力が予測される文字の候補を効果的に提示できる電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、手書きアプリケーションプログラムを実行するプロセッサと、を具備する。前記プロセッサは、前記タッチスクリーンディスプレイ上で手書き入力される１画目〜ｎ画目のストローク集合をｍ画毎（ｍ＜ｎ）に区切った上で文字認識処理を実行し、前記タッチスクリーンディスプレイの前記１画目〜ｍ画目の第１ストローク集合が表示される位置に対応して、前記第１ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第１候補提示領域を表示し、前記タッチスクリーンディスプレイのｍ＋１画目〜ｎ画目の第２ストローク集合が表示される位置に対応して、前記第２ストローク集合の前記文字認識処理の結果に基づく手書き入力候補を表示するための第２候補提示領域を少なくとも表示する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る電子機器の外観の一例を示す斜視図。
【図２】同実施形態の電子機器と外部装置との連携動作を示す図。
【図３】同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図４】同実施形態の電子機器によって記憶媒体に保存される、図３の手書き文書に対応する時系列情報を説明するための図。
【図５】同実施形態の電子機器のシステム構成を示すブロック図。
【図６】同実施形態の電子機器のタッチスクリーンディスプレイに表示される画面の構成要素を示す図。
【図７】同実施形態の電子機器内の手書きノートアプリケーションプログラムによって表示されるデスクトップ画面を示す図。
【図８】同実施形態の電子機器内の手書きノートアプリケーションプログラムによって表示されるノートプレビュー画面を示す図。
【図９】同実施形態の電子機器内の手書きノートアプリケーションプログラムによって表示されるページ編集画面を示す図。
【図１０】同実施形態の電子機器内の手書きノートアプリケーションプログラムによって表示されるページ編集画面のソフトウェアボタン群を示す図。
【図１１】同実施形態の電子機器内の手書きノートアプリケーションの機能構成の例を示すブロック図。
【図１２】サジェスト特徴テーブルのデータ構造の一例を示す図。
【図１３】サジェストキーワードテーブルのデータ構造の一例を示す図。
【図１４】特徴量登録処理の一例を示すフローチャート。
【図１５】積算文字認識処理について具体的に説明するための図。
【図１６】候補提示処理の一例を示すフローチャート。
【図１７】キーワードのランク付けについて説明するための図。
【図１８】候補提示処理の具体例を説明するための図。
【図１９】候補提示処理の具体例を説明するための別の図。
【図２０】候補提示処理の具体例を説明するためのさらに別の図。
【図２１】候補提示処理の具体例を説明するための図。
【図２２】候補提示処理の具体例を説明するための図。
【図２３】読み仮名テーブルのデータ構造の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。
【０００９】
図１は、一実施形態に係る電子機器の外観の一例を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を説明する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器であり、本体１１は、薄い箱形の筐体を有している。
【００１０】
タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザ等を使用することができる。以下では、デジタイザ及びタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を説明する。このため、タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。
【００１１】
ペン１００は、例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、ペン１００を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる（ペン入力モード）。ペン入力モードにおいては、画面上のペン１００の動きの軌跡、つまり、手書き入力操作によって手書きされるストロークが求められ、これによって手書きにより入力された複数のストロークが画面上に表示される。ペン１００が画面に接触されている間のペン１００の動きの軌跡が１つのストロークに相当する。複数のストロークが文字、記号等を構成する。手書きされた文字、手書きされた図形、手書きされた表等に対応する多数のストロークの集合が手書き文書を構成する。
【００１２】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報（手書き文書データ）として記憶媒体に保存される。ただし、この手書き文書は、イメージデータに基づいて生成されてもよい。時系列情報の詳細は図４を参照して後述するが、時系列情報は、複数のストロークが手書きされた順を示し、かつ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある１つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
【００１３】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまり、この時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
【００１４】
さらに、本実施形態に係るタブレットコンピュータ１０は、ペン１００を使用せずに、指で手書き入力操作を行うためのタッチ入力モードも有している。タッチ入力モードが有効な場合、ユーザは、指を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。タッチ入力モードにおいては、画面上の指の動きの軌跡、つまり、手書き入力操作によって手書きされるストロークが求められ、これによって手書きにより入力された複数のストロークが画面上に表示される。
【００１５】
タブレットコンピュータ１０は、編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、及び他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の手書き部分（手書き文字、手書きマーク、手書き図形及び手書き表等）を削除または移動することができる。また、範囲選択ツールによって選択される手書き文書内の任意の手書き部分を、手書き文書を検索するための検索キーとして指定することもできる。また、範囲選択ツールによって選択される手書き文書内の任意の手書き部分に対して、手書き文字認識／手書き図形認識／手書き表認識のような認識処理を実行することもできる。
【００１６】
本実施形態では、手書き文書は、１つまたは複数のページとして管理され得る。この場合、時系列情報（手書き文書データ）を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を１つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小して表示するようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１７】
図２は、タブレットコンピュータ１０と外部装置との連係動作の一例を示している。タブレットコンピュータ１０は、無線ＬＡＮ等の無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、無線通信デバイスを使用してインターネット３上のサーバ２との通信を実行することもできる。サーバ２は、オンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１８】
パーソナルコンピュータ１は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書データ）をパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤ等を自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００１９】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報あるいは大容量の時系列情報を扱うことが可能となる。
【００２０】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の時系列情報を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークをタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２１】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービス等を提供するクラウド上のサーバ２であってもよい。タブレットコンピュータ１０は、時系列情報（手書き文書データ）をインターネットを介してサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の時系列情報を読み出して（ダウンロード）、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２２】
このように、本実施形態では、時系列情報が保存される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２３】
次に、図３及び図４を参照して、ユーザによって手書きされたストローク（文字、図形及び表等）と時系列情報との関係について説明する。図３は、ペン１００等を使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の一例を示している。
【００２４】
手書き文書では、一旦手書きによって入力される文字や図形等の上に、さらに別の文字や図形等が手書きによって入力されるというケースが多い。図３においては、「Ａ」、「Ｂ」及び「Ｃ」の手書き文字が、この順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きによって入力されている。
【００２５】
手書き文字「Ａ」は、ペン１００等を使用して手書きされた２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり、２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…、ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…、ＳＤ２ｎが得られる。
【００２６】
手書き文字「Ｂ」は、ペン１００等を使用して手書きされた２つのストローク、つまり、２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００等を使用して手書きされた１つのストローク、つまり、１つの軌跡によって表現される。手書きの「矢印」は、ペン１００等を使用して手書きされた２つのストローク、つまり、２つの軌跡によって表現される。
【００２７】
図４は、図３の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、これらのストロークが手書きされた順に時系列に並べられている。
【００２８】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２９】
各ストロークデータは、１つのストロークに対応する座標データ系列（時系列座標）、つまり、１つのストローク軌跡上の複数のサンプリング点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数のサンプリング点の座標はストロークが書かれた順（サンプリングされた順）に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまり、ｎ個の座標データＳＤ１１、ＳＤ１２、…、ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまり、ｎ個の座標データＳＤ２１、ＳＤ２２、…、ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。ストロークを等時間間隔でサンプリングすると、ストロークの長さが異なっているので、サンプリング点の数も異なる。
【００３０】
各座標データは、対応する軌跡内のある１点のＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００３１】
各座標データは、その座標に対応する点が手書きされた時点（サンプリングタイミング）に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３２】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。図４には示していないが、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３３】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３４】
さらに、本実施形態では、上述したように、手書き文書データは、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。したがって、本実施形態における時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３５】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。
【００３６】
タブレットコンピュータ１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７及びエンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３７】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１及び各種アプリケーションプログラムが含まれている。各種アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。以下では、手書き文書データを手書きノートとも称する。この手書きノートアプリケーションプログラム２０２は、上述の手書き文書データを作成及び表示する機能、手書き文書データを編集する機能、所望の手書き部分を含む手書き文書データや、ある手書き文書データ内の所望の手書き部分を検索するための手書き文書検索機能を有している。
【００３８】
ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３９】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネント・モジュールとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバス等を介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００４０】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。グラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。ＬＣＤ１７Ａ、タッチパネル１７Ｂ及びデジタイザ１７Ｃは互いに重ね合わされている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び当該接触位置の動き等は、タッチパネル１７Ｂによって検出される。デジタイザ１７Ｃは、ＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン（デジタイザペン）１００が接触される画面上の接触位置及び当該接触位置の動き等は、デジタイザ１７Ｃによって検出される。
【００４１】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信等の無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４２】
図６は、タッチスクリーンディスプレイ１７に表示される画面の構成要素を示す。
【００４３】
画面は、表示領域（コンテンツ領域とも云う）５１と、表示領域５１の下のバー（ナビゲーションバーとも云う）５２とを備える。表示領域５１はコンテンツを表示するための領域である。アクティブ状態のアプリケーションプログラムのコンテンツは表示領域５１上に表示される。図６では、ランチャープログラムがアクティブ状態である場合が想定されている。この場合、複数のアプリケーションプログラムに対応する複数のアイコン５１Ａがランチャープログラムによって表示領域５１上に表示される。
【００４４】
なお、あるアプリケーションプログラムがアクティブであるとは、このアプリケーションプログラムがフォアグラウンドに移行していること、換言すればこのアプリケーションプログラムが起動されており且つフォーカスされていることを意味する。
【００４５】
バー５２はＯＳ２０１の１以上のソフトウェアボタン（ソフトウェアキーとも云う）を表示するための領域である。各ソフトウェアボタンには予め決められた機能が割り当てられている。あるソフトウェアボタンが指またはペン１００によってタップされると、このソフトウェアボタンに割り当てられた機能がＯＳ２０１によって実行される。例えば、Android（登録商標）環境においては、図６に示されているように、戻るボタン５２Ａ、ホームボタン５２Ｂ、リーセントアプリケーションボタン５２Ｃがバー５２上に表示される。これらソフトウェアボタンはバー５２上のデフォルトの表示場所に表示される。
【００４６】
次に、手書きノートアプリケーションプログラム２０２によってユーザに提示される幾つかの代表的な画面の例を説明する。
【００４７】
図７は、手書きノートアプリケーションプログラム２０２によって表示されるデスクトップ画面を示す。デスクトップ画面は複数の手書き文書データを扱うための基本画面である。
【００４８】
デスクトップ画面は、デスクトップ画面領域７０とドロア画面領域７１とを含む。デスクトップ画面領域７０は作業中の複数の手書きノートに対応する複数のノートアイコン８０１〜８０５を表示するテンポラリ領域である。ノートアイコン８０１〜８０５の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域７０は、さらに、ペンアイコン７７１、カレンダーアイコン７７２、スクラップノート（ギャラリー）アイコン７７３、タグ（ラベル）アイコン７７４を表示する。
【００４９】
ペンアイコン７７１は、表示画面をデスクトップ画面からページ編集画面に切り替えるためのグラフィカルユーザインタフェース（ＧＵＩ）である。カレンダーアイコン７７２は現在の日付を示すアイコンである。スクラップノートアイコン７７３は、他のアプリケーションプログラムからまたは外部ファイルから取り込んだデータ（スクラップデータまたはギャラリーデータと称する）を閲覧するためのＧＵＩである。タグアイコン７７４は、任意の手書きノート内の任意のページにラベル（タグ）を貼り付けるためのＧＵＩである。
【００５０】
ドロア画面領域７１は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。ドロア画面領域７１は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン８０Ａ，８０Ｂ，８０Ｃを表示する。ノートアイコン８０Ａ，８０Ｂ，８０Ｃの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われるドロア画面領域７１上のジェスチャ（例えばスワイプジェスチャ等）を検出することができる。このジェスチャ（例えばスワイプジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、ドロア画面領域７１上の画面イメージを左方向または右方向にスクロールする。これにより、ドロア画面領域７１に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
【００５１】
さらに、手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われるドロア画面領域７１のノートアイコン上のジェスチャ（例えばタップジェスチャ等）を検出することができる。ドロア画面領域７１上のあるノートアイコン上のジェスチャ（例えばタップジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、このノートアイコンをデスクトップ画面領域７０の中央部に移動する。そして、手書きノートアプリケーションプログラム２０２は、このノートアイコンに対応する手書きノートを選択し、そして、デスクトップ画面の代わりに、図８に示すノートプレビュー画面を表示する。図８のノートプレビュー画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
【００５２】
さらに、手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われるデスクトップ画面領域７０上のジェスチャ（例えばタップジェスチャ等）も検出することができる。デスクトップ画面領域７０の中央部に位置するノートアイコン上のジェスチャ（例えばタップジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ画面の代わりに、図８に示すノートプレビュー画面を表示する。
【００５３】
さらに、デスクトップ画面はメニューを表示することができる。このメニューは、リストノートボタン８１Ａ、ノート追加ボタン８１Ｂ、ノート削除ボタン８１Ｃ、検索ボタン８１Ｄ、設定ボタン８１Ｅを備える。リストノートボタン８１Ａは手書きノートの一覧を表示するためのボタンである。ノート追加ボタン８１Ｂは、新しい手書きノートを作成（追加）するためのボタンである。ノート削除ボタン８１Ｃは手書きノートを削除するためのボタンである。検索ボタン８１Ｄは検索画面（検索ダイアログ）を開くためのボタンである。設定ボタン８１Ｅは設定画面を開くためのボタンである。
【００５４】
また、バー５２には、戻るボタン５２Ａ、ホームボタン５２Ｂ、リーセントアプリケーションボタン５２Ｃが表示される。
【００５５】
図８は上述のノートプレビュー画面を示す。
【００５６】
ノートプレビュー画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ノートアイコン８０１に対応する手書きノートが選択された場合を想定する。この場合、手書きノートアプリケーションプログラム２０２は、この手書きノートに含まれる複数のページ９０１，９０２，９０３，９０４，９０５を、これらページ９０１，９０２，９０３，９０４，９０５それぞれの少なくとも一部分が視認可能で且つこれらページ９０１，９０２，９０３，９０４，９０５が重なった形態で表示する。
【００５７】
ノートプレビュー画面は、さらに、上述のペンアイコン７７１、カレンダーアイコン７７２、スクラップノートアイコン７７３、タグアイコン７７４を表示する。
【００５８】
ノートプレビュー画面は、さらに、メニューを表示することができる。このメニューは、デスクトップボタン８２Ａ、リストページボタン８２Ｂ、ページ追加ボタン８２Ｃ、編集ボタン８２Ｄ、ページ削除ボタン８２Ｅ、ラベルボタン８２Ｆ、および検索ボタン８２Ｇを備える。デスクトップボタン８２Ａは、デスクトップ画面を表示するためのボタンである。リストページボタン８２Ｂは、現在選択されている手書きノート内のページの一覧を表示するためのボタンである。ページ追加ボタン８２Ｃは、新しいページを作成（追加）するためのボタンである。編集ボタン８２Ｄはページ編集画面を表示するためのボタンである。ページ削除ボタン８２Ｅは、ページを削除するためのボタンである。ラベルボタン８２Ｆは、使用可能なラベルの種類の一覧を表示するためのボタンである。検索ボタン８２Ｇは検索画面を表示するためのボタンである。
【００５９】
また、バー５２には、戻るボタン５２Ａ、ホームボタン５２Ｂ、リーセントアプリケーションボタン５２Ｃが表示される。
【００６０】
手書きノートアプリケーションプログラム２０２はユーザによって行われるノートプレビュー画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム２０２は、一番上に表示されるべきページを任意のページに変更する（ページ送り、ページ戻し）。また、一番上のページ上で行われるあるジェスチャ（例えばタップジェスチャ）の検出に応答して、またはペンアイコン７７１上で行われるあるジェスチャ（例えばタップジェスチャ）の検出に応答して、あるいは編集ボタン８２Ｄ上で行われるあるジェスチャ（例えばタップジェスチャ）の検出に応答して、手書きノートアプリケーションプログラム２０２は、一番上のページを選択し、そしてノートプレビュー画面の代わりに、図９に示すページ編集画面を表示する。
【００６１】
図９のページ編集画面は、ページ（手書きページ）の新規作成、および既存のページの閲覧および編集が可能な画面である。図８のノートプレビュー画面上のページ９０１が選択された場合には、図９に示すように、ページ編集画面は、ページ９０１の内容を表示する。
【００６２】
このページ編集画面において、破線で囲まれた矩形の領域５００は手書き入力可能な手書き入力エリアである。手書き入力エリア５００においては、デジタイザ１７Ｃからの入力イベントは手書きストロークの表示（描画）のために使用され、タップ等のジェスチャを示すイベントとしては使用されない。一方、ページ編集画面において、手書き入力エリア５００以外の領域においては、デジタイザ１７Ｃからの入力イベントはタップ等のジェスチャを示すイベントとしても使用され得る。
【００６３】
タッチパネル１７Ｂからの入力イベントは、手書きストロークの表示（描画）には使用されず、タップ、スワイプ等のジェスチャを示すイベントとして使用される。
【００６４】
ページ編集画面は、さらに、ユーザによって予め登録された３種類のペン５０１〜５０３と、範囲選択ペン５０４、消しゴムペン５０５とを含むクイックセレクトメニューを表示する。ここでは、黒ペン５０１、赤ペン５０２、マーカー５０３がユーザによって予め登録されている場合が想定されている。ユーザは、ペン１００または指でクイックセレクトメニュー内のあるペン（ボタン）をタップすることにより、使用するペンの種類を切り替えることが出来る。例えば、黒ペン５０１がユーザによるペン１００または指を使用したタップジェスチャによって選択された状態で、ペン１００を用いた手書き入力操作がページ編集画面上で行われると、手書きノートアプリケーションプログラム２０２は、ペン１００の動きに合わせて黒色のストローク（軌跡）をページ編集画面上に表示する。
【００６５】
クイックセレクトメニュー内の上述の３種類のペンは、ペン１００のサイドボタンの操作によっても切り替えることが出来る。クイックセレクトメニュー内の上述の３種類のペンの各々には、よく使うペンの色やペンの太さ（幅）等の組み合わせを設定することができる。
【００６６】
ページ編集画面は、さらに、メニューボタン５１１、ページ戻しボタン５１２、ページ送りボタン５１３を表示する。メニューボタン５１１はメニューを表示するためのボタンである。
【００６７】
図１０は、メニューボタン５１１の操作によってページ編集画面上にメニューとして表示されるソフトウェアボタン群を示す図である。
【００６８】
メニューボタン５１１が操作されると、図１０に示すように、ページ編集画面上に、ノートプレビューボタン８３Ａ、ページ追加ボタン８３Ｂ、検索ボタン８３Ｃ、エクスポートボタン８３Ｄ、インポートボタン８３Ｅ、メールボタン８３Ｆ、ペンケースボタン８３Ｇがメニューとして表示される。
【００６９】
ノートプレビューボタン８３Ａは、ノートプレビュー画面に戻るためのボタンである。ページ追加ボタン８３Ｂは、新規ページを追加するためのボタンである。検索ボタン８３Ｃは、検索画面を開くためのボタンである。エクスポートボタン８３Ｄは、エクスポートのためのサブメニューを表示するためのボタンである。インポートボタン８３Ｅは、インポートのためのサブメニューを表示するためのボタンである。メールボタン８３Ｆは、ページ編集画面上に表示されている手書きページをテキストに変換して電子メールによって送信する処理を起動するためのボタンである。ペンケースボタン８３Ｇは、クイックセレクトメニュー内の３種類のペンの各々の色（描画される線の色）や太さ［幅］（描画される線の太さ［幅］）等を変更可能なペン設定画面を呼び出すためのボタンである。
【００７０】
次に、図１１を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００７１】
手書きノートアプリケーションプログラム２０２は、手書き文書データを扱うことが可能なＷＹＳＩＷＹＧアプリケーションである。この手書きノートアプリケーションプログラム２０２は、例えば、表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、特徴量登録処理部３０６及び作業メモリ４０１等を備える。表示処理部３０１は、手書きデータ入力部３０１Ａ、筆跡描画部３０１Ｂ及び候補提示処理部３０１Ｃを含む。
【００７２】
上記したタッチパネル１７Ｂは、「タッチ（接触）」、「移動（スライド）」及び「リリース」等のイベントの発生を検出するように構成されている。「タッチ（接触）」は、画面上のオブジェクト（指）が接触したことを示すイベントである。「移動（スライド）」は、画面上にオブジェクト（指）が接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面からオブジェクト（指）が離されたことを示すイベントである。
【００７３】
上記したデジタイザ１７Ｃも、「タッチ（接触）」、「移動（スライド）」及び「リリース」等のイベントの発生を検出するように構成されている。「タッチ（接触）」は、画面上にオブジェクト（ペン１００）が接触したことを示すイベントである。「移動（スライド）」は、画面上にオブジェクト（ペン１００）が接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面からオブジェクト（ペン１００）が離されたことを示すイベントである。
【００７４】
手書きノートアプリケーションプログラム２０２は、手書きページデータの作成、閲覧及び編集を行うためのページ編集画面をタッチスクリーンディスプレイ１７に表示する。
【００７５】
表示処理部３０１及び時系列情報生成部３０２は、デジタイザ１７Ｃによって発生される「タッチ（接触）」、「移動（スライド）」または「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ（接触）」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。したがって、表示処理部３０１及び時系列情報生成部３０２は、デジタイザ１７Ｃから接触位置の動きの軌跡に対応する座標列を受信することができる。
【００７６】
表示処理部３０１は、デジタイザ１７Ｃを用いて検出される画面上のオブジェクト（ペン１００）の動きに応じて手書きストロークを画面上に表示する。この表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり、各ストロークの軌跡がページ編集画面上に表示される。
【００７７】
時系列情報生成部３０２は、デジタイザ１７Ｃから出力される前述の座標列を受信し、この座標列に基づいて、図４で詳述したような構造を有する時系列情報（座標データ系列）を含む手書きデータを生成する。時系列情報生成部３０２は、生成された手書きデータを作業メモリに一時保存する。
【００７８】
編集処理部３０３は、現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作及び手書き入力操作に応じて、現在表示中の手書きページに新たなストローク（新たな手書き文字及び新たな手書きマーク等）を追加する処理、表示されている複数のストローク内の１以上のストロークを削除または移動する処理等を含む編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の時系列情報に反映するために作業メモリ４０１内の時系列情報を更新する。
【００７９】
ページ保存処理部３０４は、作成中の手書きページ上の複数の手書きストロークに対応する複数のストロークデータを含む手書きページデータを記憶媒体４０２に保存する。記憶媒体４０２は、例えばタブレットコンピュータ１０内のストレージデバイスであってもよいし、サーバコンピュータ２のストレージデバイスであってもよい。
【００８０】
ページ取得処理部３０５は、記憶媒体４０２から任意の手書きページデータを取得する。この取得された手書きページデータは、表示処理部３０１に送られる。表示処理部３０１は、手書きページデータに含まれる複数のストロークデータに対応する複数のストロークを画面上に表示する。
【００８１】
特徴量登録処理部３０６は、ページ保存処理部３０４によって手書き文書（データ）が記憶媒体４０２に保存される際に、当該手書き文書を構成するストローク集合に対して文字認識処理を実行することによって、当該手書き文書を構成する全てのストロークを文字列（単語）に変換する。特徴量登録処理部３０６は、変換された文字列をキーワードとし、当該キーワード、手書き文書において当該キーワードに変換された（つまり、文字認識処理によって当該キーワードとして文字認識された）ストローク集合における各ストロークを時系列順に１ストロークずつ積算してなる各ストローク集合に対する文字認識結果及び当該ストローク集合におけるストローク数を対応付けてサジェスト特徴テーブルに登録する。また、特徴量登録処理部３０６は、変換された文字列（キーワード）及び当該文字列に変換されたストローク集合に対応するストロークデータを対応付けてサジェストキーワードテーブルに登録する。なお、サジェスト特徴テーブル及びサジェストキーワードテーブルは、例えば記憶媒体４０２に保存されているものとする。
【００８２】
次に、図１１に示す表示処理部３０１の詳細について説明する。
【００８３】
上記したように、タッチスクリーンディスプレイ１７は、画面に対するタッチ操作をタッチパネル１７Ｂまたはデジタイザ１７Ｃで検出する。手書きデータ入力部３０１Ａは、タッチパネル１７Ｂまたはデジタイザ１７Ｃから出力される検出信号を入力するモジュールである。検出信号には、タッチ位置の座標情報（Ｘ，Ｙ）が含まれている。このような検出信号を時系列順に入力することによって、手書きデータ入力部３０１Ａは、手書きで記載されるストロークに対応するストロークデータを入力する。手書きデータ入力部３０１Ａによって入力されたストロークデータ（検出信号）は、筆跡描画部３０１Ｂに供給される。
【００８４】
筆跡描画部３０１Ｂは、手書き入力の軌跡（筆跡）を描画してタッチスクリーンディスプレイ１７のＬＣＤ１７Ａに表示するモジュールである。筆跡描画部３０１Ｂは、手書きデータ入力部３０１Ａからのストロークデータ（検出信号）に基づき、手書き入力の軌跡（筆跡）に対応する線分を描画する。
【００８５】
手書きデータ入力部３０１Ａによって入力されたストロークデータが上記したページ編集画面（手書き入力エリア５００）において手書きで記載されたストロークに対応するものである場合、当該ストロークデータは、候補提示処理部３０１Ｃにも供給される。このようにストロークデータが手書きデータ入力部３０１Ａによって入力される場合、候補提示処理部３０１Ｃは、手書きで記載された１以上のストローク（つまり、手書きデータ入力部３０１Ａから供給されたストロークデータが入力された時点で入力されているストロークデータ）に基づいて特定される複数のストローク集合を、ユーザによる手書き入力の候補として、ページ編集画面上の候補提示領域に表示する。この手書き入力の候補として表示される複数のストローク集合は、例えば手書き文字列を表し、手書きで記載された１以上のストロークの形状に対応するストローク集合を含む。なお、手書き入力の候補として表示されるストローク集合は、後述するように記憶媒体４０２に保存されているサジェスト特徴テーブル及びサジェストキーワードテーブルを参照して特定される。
【００８６】
以下の説明では、ページ編集画面上の候補提示領域に手書き入力の候補として表示されるストローク集合を、単に手書き入力候補と称する。
【００８７】
上記したようにページ編集画面の候補提示領域に手書き入力候補が表示された場合、ユーザは、当該手書き入力候補を手書き入力エリア５００に表示（記載）する文字列等として選択（指定）することができる。候補提示領域に表示された手書き入力候補がユーザによって選択される場合、筆跡描画部３０１Ｂは、当該手書き入力候補をページ編集画面上の手書き入力エリア５００に表示する。このとき、筆跡描画部３０１Ｂは、上記したように候補提示領域に表示された手書き入力候補（ストローク集合）の座標に基づいて、当該手書き入力候補を手書き入力エリア５００に表示する。なお、このストローク集合の座標は、既に入力されているストロークデータに含まれる時系列座標（つまり、手書き入力エリア５００に既に手書きで記載されているストローク）を基準として相対的に定められる。
【００８８】
なお、図１１においては図示されていないが、手書きノートアプリケーションプログラム２０２は、上記した以外に、上記した筆跡検索及びテキスト検索等を実行するための検索処理部等を備える。
【００８９】
図１２は、上記した記憶媒体４０２に保存されているサジェスト特徴テーブルのデータの構造の一例を示す。図１２に示すように、サジェスト特徴テーブルには、キーワード、文字認識結果及びストローク数が対応付けて保持（登録）されている。キーワードは、上記した手書き入力候補に相当する文字列（単語）である。文字認識結果は、当該文字認識結果に対応付けられているキーワードとして文字認識されるストローク集合の一部のストローク集合に対する文字認識結果を示す。ストローク数は、当該ストローク数に対応付けられている文字認識結果が得られたストローク集合におけるストロークの数（つまり、画数）を示す。
【００９０】
図１２に示す例では、サジェスト特徴テーブルには、例えばキーワード「ａｐｐｌｉｃａｔｉｏｎ」、文字認識結果「ａ」及びストローク数「１」が対応付けて保持されている。これによれば、キーワード「ａｐｐｌｉｃａｔｉｏｎ」として文字認識されるストローク集合がユーザによって手書きされる際に、１ストロークが手書きされた時点で文字認識処理を行った場合の文字認識結果が「ａ」であることが示されている。
【００９１】
また、サジェスト特徴テーブルには、例えばキーワード「ａｐｐｌｉｃａｔｉｏｎ」、文字認識結果「ｐ」及びストローク数「２」が対応付けて保持されている。これによれば、キーワード「ａｐｐｌｉｃａｔｉｏｎ」として文字認識されるストローク集合がユーザによって手書きされる際に、２ストロークが手書きされた時点で文字認識処理を行った場合の文字認識結果が「ｐ」であることが示されている。
【００９２】
なお、図１２に示す例では、文字「ａ」及び「ｐ」は１ストロークで手書きされた場合を想定している。
【００９３】
このように、サジェスト特徴テーブルには、例えばキーワード「ａｐｐｌｉｃａｔｉｏｎ」を構成するストローク数（つまり、画数）が１加算される毎の文字認識結果が保持される。すなわち、サジェスト特徴テーブルには、上記したようにキーワードとして文字認識されたストローク集合における各ストロークを時系列順に１ストロークずつ積算してなる各ストローク集合に対する文字認識結果及び当該ストローク集合におけるストローク数が当該キーワードに対応付けて保持されている。
【００９４】
詳細については後述するが、前述したように手書き入力候補を表示する際には、文字認識結果及びストローク数（つまり、画数）をキーとした検索が行われる。
【００９５】
ここではキーワード「ａｐｐｌｉｃａｔｉｏｎ」について説明したが、サジェスト特徴テーブルには、他のキーワードについても同様に文字認識結果及びストローク数が対応付けて保持されている。
【００９６】
図１３は、上記した記憶媒体４０２に保存されているサジェストキーワードテーブルのデータ構造の一例を示す。図１３に示すように、サジェストキーワードテーブルには、主キーとなるキーワード及びストロークデータが対応付けて保持（登録）されている。キーワードは、上記した手書き入力候補に相当する文字列（単語）である。ストロークデータは、当該ストロークデータに対応付けられているキーワードとして文字認識されるストローク集合に対応するデータ（当該ストロークのバイナリデータ）である。
【００９７】
図１３に示す例では、サジェストキーワードテーブルには、例えばキーワード「ａｐｐ」及びストロークデータ「（１０，１０）−（１３，８）−…」が対応付けて保持されている。これによれば、キーワード「ａｐｐ」として文字認識されるストローク集合に対応するストロークデータが「（１０，１０）−（１３，８）−…」であることが示されている。なお、上記したようにストロークデータには、ストロークの軌跡上のサンプリング点それぞれに対応する複数の座標が含まれている。
【００９８】
ここではキーワード「ａｐｐ」について説明したが、サジェストキーワードテーブルには、他のキーワードについても同様にストロークデータが対応付けて保持されている。
【００９９】
以下、本実施形態に係るタブレットコンピュータ１０の動作について説明する。ここでは、本実施形態に係るタブレットコンピュータ１０によって実行される処理のうち、特徴量登録処理及び候補提示処理について説明する。
【０１００】
まず、図１４のフローチャートを参照して、特徴量登録処理の処理手順について説明する。なお、特徴量登録処理は、上記した手書き文書（データ）が記憶媒体４０２に保存される際に特徴量登録処理部３０６によって実行される。
【０１０１】
特徴量登録処理において、特徴量登録処理部３０６は、ページ保存処理部３０４によって手書き文書が記憶媒体４０２に保存される際に、当該手書き文書を例えば作業メモリ４０１から取得する（ブロックＢ１）。なお、手書き文書は、上記したページ編集画面上の手書き入力エリア５００においてユーザによって手書きで記載されたストローク集合から構成され、当該ストローク集合に対応するストロークデータを含む。
【０１０２】
次に、特徴量登録処理部３０６は、取得された手書き文書（に含まれるストロークデータに対応するストローク集合）に対して文字認識処理を実行する（ブロックＢ２）。これにより、手書き文書を構成するストローク集合が文字列に変換される。このとき、手書き文書を構成する各ストローク（に対応するストロークデータ）は、文字認識処理が実行されることによって変換された文字列中の当該ストロークが属する文字（当該ストロークが構成する文字）と対応付けられているものとする。
【０１０３】
特徴量登録処理部３０６は、変換された文字列に対して形態素分析（形態素解析）処理を実行する（ブロックＢ３）。これにより、変換された文字列は、単語単位に分割される。このとき、特徴量登録処理部３０６は、上記した文字列中の各文字に対応付けられたストロークに基づいて、形態素分析処理によって分割された各単語に属するストローク集合を特定する。
【０１０４】
次に、特徴量登録処理部３０６は、形態素分析処理によって分割された各単語に属するストローク集合に対して積算文字認識処理を実行する（ブロックＢ４）。この積算文字認識処理は、各ストローク毎に特徴量となる文字認識結果（文字列）を取得する処理である。
【０１０５】
ここで、図１５を参照して、積算文字認識処理について具体的に説明する。ここでは、便宜的に、キーワード「ａｐｐｌｅ」に属するストローク集合に対して積算文字認識処理が実行される場合について説明する。
【０１０６】
この場合、ストローク数（画数）が１であるストローク（集合）１００１に対して文字認識処理を実行した場合の文字認識結果は、「ａ」となる。
【０１０７】
次に、ストローク数（画数）が２であるストローク集合１００２に対して文字認識処理を実行した場合の文字認識結果は「ａｐ」となる。
【０１０８】
同様に、ストローク数（画数）が３であるストローク集合１００３に対して文字認識処理を実行した場合の文字認識結果は「ａｐｐ」となる。
【０１０９】
また、ストローク数（画数）が４であるストローク集合１００４に対して文字認識処理を実行した場合の文字認識処理結果は「ａｐｐｌ」となる。
【０１１０】
さらに、ストローク数（画数）が５であるストローク集合１００５に対して文字認識処理を実行した場合の文字認識処理結果は「ａｐｐｌｅ」となる。
【０１１１】
上記したようにキーワード「ａｐｐｌｅ」に属するストローク集合に対して積算文字認識処理が実行された場合、図１５に示す積算文字認識結果１１００を得ることができる。この積算文字認識結果１１００には、キーワード、ストローク集合に対する文字認識結果及び当該ストローク集合におけるストローク数が含まれる。
【０１１２】
なお、前述したブロックＢ４においては１つのキーワードに属するストローク集合に対して積算文字認識処理が実行されるものとして説明したが、当該積算文字認識処理は、１つのまとまりとして扱うことが可能な複数のキーワードを含む文字列に対して実行されても構わない。
【０１１３】
再び図１４に戻ると、特徴量登録処理部３０６は、取得された積算文字認識結果１１００に基づいて、上記したサジェスト特徴テーブル及びサジェストキーワードテーブルに対して各種情報を登録する（ブロックＢ５）。
【０１１４】
具体的には、特徴量登録処理部３０６は、積算文字認識結果１１００に含まれるキーワード（単語）、文字認識結果及びストローク数を対応付けてサジェスト特徴テーブルに登録する。
【０１１５】
また、特徴量登録処理部３０６は、積算文字認識結果１１００に含まれるキーワード（単語）及び当該キーワードに属するストローク集合に対応するストロークデータをサジェストキーワードテーブルに登録する。
【０１１６】
なお、上記したブロックＢ５において、サジェスト特徴テーブル及びサジェストキーワードテーブルに既に同一の情報（例えば、キーワード）が保持されている場合には、当該情報の登録処理は省略される。
【０１１７】
上記したように特徴量登録処理によれば、手書き文書が記憶媒体４０２に保存される際に、後述する候補提示処理において用いられる必要な情報を自動的にサジェスト特徴テーブル及びサジェストキーワードテーブルに登録することができる。
【０１１８】
次に、図１６のフローチャートを参照して、候補提示処理の処理手順について説明する。なお、候補提示処理は、上記したページ編集画面上の手書き入力エリア５００において手書きで記載されるストロークに対応するストロークデータが入力される際に候補提示処理部３０１Ｃによって実行される。また、候補提示処理は、手書き入力エリア５００に対して１のストロークが手書きで記載される度に実行される。
【０１１９】
候補提示処理において、候補提示処理部３０１Ｃは、ページ編集画面上の手書き入力エリア５００においてユーザによって手書きで記載される１ストロークに対応するストロークデータを入力する（ブロックＢ１１）。以下、ブロックＢ１１において入力されたストロークデータを対象ストロークデータと称する。
【０１２０】
次に、候補提示処理部３０１Ｃは、対象ストロークデータが入力された時点で入力されているストロークデータに対応するストローク集合（つまり、手書き入力エリア５００に手書きで記載されている１以上のストローク）に対して文字認識処理を実行する（ブロックＢ１２）。具体的には、対象ストロークデータが例えば手書き文字列のｎ画目（ｎは１以上の整数）のストロークに対応するストロークデータであるものとすると、候補提示処理部３０１Ｃは、１画目〜ｎ画目のストローク集合に対して文字認識処理を実行する。これにより、候補提示処理部３０１Ｃは、文字認識結果を取得する。本実施形態において、この文字認識結果は、１画目〜ｎ画目のストローク集合（の形状）の特徴を表す特徴量として用いられる。但し、本実施形態においては、候補提示処理部３０１Ｃは、１画目〜ｎ画目のストローク集合を、ｍ画毎（ｍ≦ｎ）に区切った上で文字認識処理を実行する。つまり、候補提示処理部３０１Ｃは、１画目〜ｎ画目のストローク集合を、ｍ画毎に区切った複数の文字認識結果を取得する。例えば、ｎが１０であり、ｍが５である場合、上記した文字認識処理により、候補提示処理部３０１Ｃは、１画目〜５画目のストローク集合に対する文字認識結果と、６画目〜１０画目のストローク集合に対する文字認識結果とを取得することができる。また、ここでは、１画目〜ｎ画目のストローク集合を、ｍ画毎に区切るとしたが、候補提示処理部３０１Ｃは、例えば、１画目〜ｎ画目のストローク集合を、パンクチュエーションマーク（例えば、句読点やかぎ括弧、カンマ、ドット等）毎に区切った上で文字認識処理を実行しても構わない。なお、入力されたストロークが、パンクチュエーションマークに対応するストロークであるか否かを判定するためには、例えば、当該入力されたストロークの大きさ（長さ）と、既に入力されたストロークの大きさ（長さ）とを比較して、判定する手法等が用いられればよい。また、上記したパンクチュエーションマークに対応するストロークに関し、候補提示処理部３０１Ｃは、手書き入力エリア５００に入力（記載）されたストロークがパンクチュエーションマークに対応するストロークであると判定した場合に、当該パンクチュエーションマークに対応するストロークより前に入力（記載）されたストロークに対して擬似的に確定処理を実行する機能をさらに有していてもよい。
【０１２１】
また、ここでは、１画目〜ｎ画目のストローク集合をｍ画毎に区切った上で文字認識処理を実行するとしたが、候補提示処理部３０１Ｃは、例えば、文字認識の基点となるストロークをずらして文字認識処理を実行するとしてもよい。具体的には、候補提示処理部３０１Ｃは、１画目のストロークが入力された場合は、１画目のストロークに対して文字認識処理を実行し、２画目のストロークが入力された場合は、１画目及び２画目のストローク集合と２画目のストロークとに対して文字認識処理を実行し、ｎ画目のストロークが入力された場合は、１画目〜ｎ画目のストローク集合、２画目〜ｎ画目のストローク集合、…、ｎ−１画目〜ｎ画目のストローク集合、ｎ画目のストロークに対して文字認識処理を実行するとしてもよい。
【０１２２】
なお、１画目のストロークは、例えば手書き入力エリア５００に手書きで記載されている他のストロークの位置等に基づいて特定されるものとする。
【０１２３】
続いて、候補提示処理部３０１Ｃは、取得された文字認識結果及び当該文字認識結果が取得されたストローク集合におけるストローク数に基づいて、サジェスト特徴テーブルからキーワードを検索する（ブロックＢ１３）。この場合、候補提示処理部３０１Ｃは、取得された文字認識結果及び当該文字認識結果が取得されたストローク集合におけるストローク数（つまり、画数）に対応付けてサジェスト特徴テーブルに保持されているキーワードを検索する。
【０１２４】
次に、候補提示処理部３０１Ｃは、検索された各キーワードに対してランク付けを行う（ブロックＢ１４）。なお、ランク付けの詳細については後述するため、ここではその詳しい説明を省略する。
【０１２５】
続いて、候補提示処理部３０１Ｃは、検索されたキーワードを構成するストローク集合に対応するストロークデータを取得する（ブロックＢ１５）。具体的には、候補提示処理部３０１Ｃは、検索されたキーワードに対応付けてサジェストキーワードテーブルに保持されているストロークデータを取得する。
【０１２６】
しかる後、候補提示処理部３０１Ｃは、検索されたキーワード及び取得されたストロークデータをディスプレイ（画面）上に描画することによって、手書き入力候補を表示する（ブロックＢ１６）。この場合、検索されたキーワードはテキストとして表示され、取得されたストロークデータは手書き文字列として表示される。
【０１２７】
ここで、図１７を参照して、キーワードのランク付けについて詳しく説明する。
【０１２８】
なお、本実施形態では、例えばｎ画目のストロークが入力された時点で検索されたキーワード（ｎ画目のマッチングで一致したキーワード）に対してｎスコア（ポイント）を付与していくようにストロークが手書きされる都度スコアを積算することによって、当該スコアの合計値が高いキーワード（手書き入力候補）を上位に表示する（すなわち、図１７中のランク１〜ランク４の順で表示する）ようなランク付けが行われる。
【０１２９】
また、本実施形態では、上記したように１画目〜ｎ画目のストローク集合をｍ画毎に区切った上で文字認識処理が実行されている。このため、キーワードのランク付けにおいても、ｍ画毎に、新たにスコアを付与し直すようなランク付けが行われる。
【０１３０】
図１７では、ユーザが文字列として「ａｐｐｌｅ  ｃｉｄｅｒ」を手書き入力する場合を想定している。さらにここでは、上記した文字列「ａｐｐｌｅ  ｃｉｄｅｒ」のうち、文字列「ａｐｐｌｅ  ｃｉ」までがユーザによって入力された場合を想定する。また、ここでは、上記したｍの値は予め５に設定されている場合を想定する。
【０１３１】
図１７に示すように、１画目（１ストローク目）のストロークに対する文字認識結果は「ａ」、１画目及び２画目のストローク集合に対する文字認識結果は「ａｓ」、１画目〜３画目のストローク集合に対する文字認識結果は「ａｐｐ」、１画目〜４画目のストローク集合に対する文字認識結果は「ａｐｐｌ」、１画目〜５画目のストローク集合に対する文字認識結果は「ａｐｐｌｅ」である。なお、１画目及び２画目のストローク集合に対する文字認識結果が「ａｐ」ではなく「ａｓ」であるのは、例えばユーザが本来「ｐ」と手書き入力すべきであったところ「ｐ」ではなく「ｓ」と文字認識されるような文字を２画目で手書き入力したことに起因する。また、６画目（新たな文字認識結果の１ストローク目）のストロークに対する文字認識結果は「ｃ」である。同様に、６画目及び７画目（新たな文字認識結果の２ストローク目）のストローク集合に対する文字認識結果は「ｃｌ」である。なお、６画目及び７画目の文字認識結果が「ｃｌ」であるのは、候補提示処理部３０１Ｃが文字認識処理の際に、文字「ｉ」の１画目である「ｌ（縦棒）」をアルファベットの「ｌ（エル）」と誤認識したことに起因する。６画目〜８画目（新たな文字認識結果の３ストローク目）のストローク集合に対する文字認識結果は「ｃｉ」である。
【０１３２】
まず、１画目のストローク（データ）が入力された場合、文字認識結果は「ａ」であるため、上記したブロックＢ１３の処理においては、キーワードとして例えば「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」が検索される。この場合、検索されたキーワード「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」の各々に対して、画数（ストローク数）（ここでは、１）がランク付けのためのスコアとして付与される。なお、図１７においては、［］内の数値が各キーワードに付与されたスコアを表している。
【０１３３】
次に、２画目のストローク（データ）が入力された場合、文字認識結果は「ａｓ」であるため、上記したブロックＢ１３の処理においては、キーワードとして例えば「ａｓｔｅｒｉｓｋ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ａｓｔｅｒｉｓｋ」に対して、画数（ここでは、２）がランク付けのためのスコアとして付与される。なお、２画目のストロークが入力された際に検索されていないキーワード「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」に対するスコアは１画目の時点と同様に１である（つまり、維持される）。
【０１３４】
次に、３画目のストローク（データ）が入力された場合、文字認識結果は「ａｐｐ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」に対して、画数（ここでは、３）がランク付けのためのスコアとして付与される。このようにキーワード「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」に対してスコアが付与されると、キーワード「ａｐｐｌｅ」、「ａｐｐｒｏｖｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」のスコアは、１画目の時点でのスコアと合計してそれぞれ４となる。なお、３画目のストロークが入力された際に検索されていないキーワード「ａｓｔｅｒｉｓｋ」に対するスコアは２画目の時点と同様に１である（つまり、維持される）。
【０１３５】
次に、４画目のストローク（データ）が入力された場合、文字認識結果は「ａｐｐｌ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」に対して、画数（ここでは、４）がランク付けのためのスコアとして付与される。このようにキーワード「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」に対してスコアが付与されると、キーワード「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」のスコアは３画目の時点でのスコアと合計してそれぞれ８となる。なお、４画目のストロークが入力された際に検索されていないキーワード「ａｐｐｒｏｖｅ」及び「ａｓｔｅｒｉｓｋ」に対するスコアは３画目の時点と同様にそれぞれ４及び２である（つまり、維持される）。
【０１３６】
次に、５画目のストローク（データ）が入力された場合、文字認識結果は「ａｐｐｌｅ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ａｐｐｌｅ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ａｐｐｌｅ」に対して、画数（ここでは、５）がランク付けのためのスコアとして付与される。このようにキーワード「ａｐｐｌｅ」に対してスコアが付与されると、キーワード「ａｐｐｌｅ」のスコアは４画目の時点でのスコアと合計して１３となる。なお、５画目のストロークが入力された際に検索されていないキーワード「ａｐｐｌｉｃａｔｉｏｎ」、「ａｐｐｒｏｖｅ」及び「ａｓｔｅｒｉｓｋ」に対するスコアは４画目の時点と同様にそれぞれ８、４及び２である。
【０１３７】
次に、６画目のストローク（データ）が入力された場合、上記したｍの値が５であるので、６画目以降のストローク（集合）に対しては既に付与されたスコアとは別のスコアが新たに付与される。この場合、文字認識結果は「ｃ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ｃｏｏｋ」、「ｃｉｄｅｒ」及び「ｃａｔ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ｃｏｏｋ」、「ｃｉｄｅｒ」及び「ｃａｔ」の各々に対して、新たな画数（新たなストローク数）（つまり、６ではなく１）がランク付けのためのスコアとして付与される。なお、図１７においては、（）内の数値が、既に説明した文字認識結果「ａｐｐｌｅ」とは別の文字認識結果を構成する新たなストロークの画数（ストローク数）を表している。
【０１３８】
次に、７画目のストローク（データ）が入力された場合、文字認識結果は「ｃｌ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ｃｌｏｓｅ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ｃｌｏｓｅ」に対して、新たな画数（新たなストローク数）（つまり、７ではなく２）がランク付けのためのスコアとして付与される。なお、７画目のストロークが入力された際に検索されていないキーワード「ｃｏｏｋ」、「ｃｉｄｅｒ」及び「ｃａｔ」に対するスコアは６画目の時点と同様に１である（つまり、維持される）。
【０１３９】
最後に、８画目のストローク（データ）が入力された場合、文字認識結果は「ｃｉ」であるため、上記したブロックＢ１３においては、キーワードとして例えば「ｃｉｄｅｒ」がサジェスト特徴テーブルから検索される。この場合、検索されたキーワード「ｃｉｄｅｒ」に対して、新たな画数（新たなストローク数）（つまり、８ではなく３）がランク付けのためのスコアとして付与される。このようにキーワード「ｃｉｄｅｒ」に対してスコアが付与されると、キーワード「ｃｉｄｅｒ」のスコアは、６画目の時点でのスコアと合計して４となる。なお、８画目のストロークが入力された際に検索されていないキーワード「ｃｏｏｋ」、「ｃａｔ」及び「ｃｌｏｓｅ」に対するスコアは７画目の時点と同様に１、１、２である（つまり、維持される）。
【０１４０】
次に、図１８を参照して、本実施形態に係る候補提示処理の具体例について説明する。
【０１４１】
図１８では、ユーザがページ編集画面上の手書き入力エリア５００に文字列「ａｐｐｌｅ  ｃｉｄｅｒ」と入力する場合を想定している。さらにここでは、上記した文字列「ａｐｐｌｅ  ｃｉｄｅｒ」のうち、文字列「ａｐｐｌｅ  ｃｉ」までがユーザによって入力された場合を想定している。また、ここでは、上記したｍの値が５である場合を想定する。つまり、既に説明したように、候補提示処理部３０１Ｃにより、図１７に示すようなランク付けがなされている場合を想定する。
【０１４２】
この場合、まず候補提示処理部３０１Ｃは、１画目のストロークデータに含まれる時系列情報により示される複数の座標データから当該ストロークの始点のＸ座標及びＹ座標（以下、第１の座標と表記）を取得する。続いて、候補提示処理部３０１Ｃは、上記したｍの値が５であるので、６画目のストロークデータに含まれる時系列情報により示される複数の座標データから当該ストロークの始点のＸ座標及びＹ座標（以下、第２の座標と表記）を取得する。
【０１４３】
その後、候補提示処理部３０１Ｃは、第１の座標のＹ座標を所定の値（距離）だけ上方向にずらした位置（を含む領域）を、１画目〜５画目のストローク集合に対応する手書き入力候補（第１のストローク集合）を表示するための候補提示領域（以下、第１の候補提示領域と表記）Ｒ１と定める。同様に、候補提示処理部３０１Ｃは、第２の座標のＹ座標を所定の値（距離）だけ上方向にずらした位置（を含む領域）を、６画目〜８画目（最終的には、６画目〜１０画目）のストローク集合に対応する手書き入力候補（第２のストローク集合）を表示するための候補提示領域（以下、第２の候補提示領域と表記）Ｒ２と定める。
【０１４４】
そして、候補提示処理部３０１Ｃは、前述した図１７に示すランク付けにしたがって、図１８に示すように、第１の候補提示領域Ｒ１に手書き入力候補「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」をこの順序で、第２の候補提示領域Ｒ２に手書き入力候補「ｃｉｄｅｒ」及び「ｃｌｏｓｅ」をこの順序で表示する。なお、第１の候補提示領域Ｒ１と第２の候補提示領域Ｒ２とは、図１８に示したように横一列に並べた形態ではなく、例えば図１９に示すように、各領域のＹ方向の位置をずらした形態であってもよい。図１９では、第１の候補提示領域Ｒ１が上方向に配置され、第２の候補提示領域Ｒ２が第１の候補提示領域Ｒ１より下方向に配置された場合を例示したが、例えば、第２の候補提示領域Ｒ２が上方向に配置され、第１の候補提示領域Ｒ１が第２の候補提示領域Ｒ２より下方向に配置されるとしてもよい。
【０１４５】
このように、手書き入力候補が表示された位置と手書き入力候補に置き換わる文字の位置とが関連付けられているため、ユーザは、どのストローク（集合）がどの手書き入力候補に置き換わるかを視認した上で（すなわち、第１のストローク集合又は第２のストローク集合をそれぞれ選択（入力）することによって置換（削除）されるストロークがどの１以上のストローク集合であるかを視認した上で）、手書き入力候補の選択を行うことができる。
【０１４６】
なお、図１８及び図１９では、候補提示領域を第１の候補提示領域Ｒ１と第２の候補提示領域Ｒ２との２つの領域に分けた上で各領域に手書き入力候補をそれぞれ表示するとしたが、例えば図２０に示すように、１つの候補提示領域に手書き入力候補を並べて表示するとしてもよい。つまり、置き換わる文字の位置にあわせて、１画目〜５画目のストローク集合（換言すると、１つ目の文字認識結果）に対応する手書き入力候補「ａｐｐｌｅ」及び「ａｐｐｌｉｃａｔｉｏｎ」と、６画目〜８画目のストローク集合（換言すると、２つ目の文字認識結果）に対応する手書き入力候補「ｃｉｄｅｒ」及び「ｃｌｏｓｅ」とを１つの候補提示領域Ｒ３内に並べて表示するとしてもよい。
【０１４７】
また、図１８〜図２０に示した例とは異なり、図２１に示すように、現時点で最後に入力（記載）されたストロークを含むストローク集合に対する文字認識結果（図２１では、「ｃｉ」）に対応する手書き入力候補「ｃｉｄｅｒ」及び「ｃｌｏｓｅ」だけを、当該ストローク集合の位置にあわせた候補提示領域Ｒ４内に表示するとしてもよい。
【０１４８】
図１８〜図２１においては、手書き入力候補が表示される位置と手書き入力候補に置き換わる文字の位置とを対応付けることにより、どのストローク（集合）がどの手書き入力候補に置き換わるかをユーザに対して示唆するとしたが、例えば、表示される手書き入力候補の色と手書き入力候補に置き換わる文字の色とを対応付けることにより（すなわち、表示される手書き入力候補と手書き入力候補に置き換わる文字との表示形態を対応付けることにより）、どのストローク（集合）がどの手書き入力候補に置き換わるかをユーザに対して示唆する構成であってもよい。
【０１４９】
図２２は、表示される手書き入力候補の色と手書き入力候補に置き換わる文字の色とが対応付けて示されるページ編集画面の一例を示す図である。候補提示処理部３０１Ｃは、上記したブロックＢ１６において手書き入力候補を表示した後に、候補提示領域Ｒ５上にペン１００が近づけられると（換言すると、ペン１００のホバー状態を検知すると）、図２２に示すように、ペン１００のペン先に位置する手書き入力候補の表示色と当該手書き入力候補に置き換わる文字の表示色とを同じ色に変化させる。このとき、ペン１００のペン先とは別の場所に位置する手書き入力候補は、ペン１００のペン先に位置する手書き入力候補とは異なる色で表示される。ペン１００のペン先とは別の場所に位置する手書き入力候補が複数存在する場合、これら手書き入力候補は、全て同じ色で表示されてもよいし、各手書き入力候補に置き換わる文字の表示色とそれぞれ同じ色で表示されてもよい。なお、ここでは、ペン１００のホバー状態を検知した場合に表示色を変化させるとしたが、例えば、手書き入力候補を指またはペン１００でロングタップ（長押し）している間中、表示色を変化させるとしてもよい。ロングタップとは、画面を一瞬たたくタップと異なり、画面を長押しする動作を示し、主に、画面上の所定の箇所にフォーカスしたい場合等に行われる動作である。以上のように、表示される手書き入力候補の色と手書き入力候補に置き換わる文字の色とを対応付けることにより、ユーザは、どのストローク（集合）がどの手書き入力候補に置き換わるかを視認した上で、手書き入力候補を選択することができる。
【０１５０】
なお、本実施形態では、手書き入力候補がテキスト及び手書き文字列の双方により表示されるものとして説明したが、当該手書き入力候補は、例えばテキスト又は手書き文字列の少なくとも一方により表示されればよい。
【０１５１】
また、本実施形態では、複数の手書き入力候補に付与されたスコアが同一の場合、当該手書き入力候補は任意の順番で画面上に表示されるものとして説明したが、例えば過去の出現頻度に応じてさらにランク付けを行う構成としても構わない。この場合、同一のスコアが付与された複数の手書き入力候補（キーワード）のうち、出現頻度の高い手書き入力候補が優先的に画面上に表示される。
【０１５２】
また、過去の選択回数に応じてさらにランク付けを行う構成としても構わない。この場合、同一のスコアが付与された複数の手書き入力候補のうち、選択回数の多い手書き入力候補が優先的に表示される。
【０１５３】
なお、上記した出現頻度及び選択回数（の情報）は必ずしも用いなければならないものではない。また、出現頻度及び選択回数の一方を用いてランク付けを行うとしてもよい。さらに、出現頻度及び選択回数の両方を用いてランク付けを行う場合、当該出現頻度及び当該選択回数のいずれを優先するかについても設定可能な構成とすることもできる。
【０１５４】
また、手書き入力候補に付与されているスコア（優先度）に応じて、当該手書き入力候補一部のみを画面上に表示する構成としても構わない。具体的には、例えば複数の手書き入力候補の各々に付与されているスコアの最大値の３分の１以上のスコアが付与されている手書き入力候補のみを画面上に表示するような構成とすることができる。
【０１５５】
なお、本実施形態では、手書き入力エリア５００に入力（記載）される文字がアルファベットである場合について説明したが、手書き入力エリア５００に入力（記載）される文字は平仮名やカタカナ、漢字等であってもよい。
【０１５６】
手書き入力エリア５００に平仮名やカタカナ、漢字等が入力（記載）されることを想定して、記憶媒体４０２には、サジェスト特徴テーブル及びサジェストキーワードテーブルに加えて、読み仮名テーブルが保持されていてもよい。
【０１５７】
ここで、図２３を参照して、読み仮名テーブルのデータ構造の一例について説明する。
【０１５８】
読み仮名テーブルには、図２３に示すように、キーワード及び読み仮名が対応付けて保持（登録）されている。キーワードは、上記した手書き入力候補に相当する文字列（単語）である。読み仮名は、当該読み仮名に対応付けられているキーワードの読み仮名を示す。
【０１５９】
図２３に示す例では、読み仮名テーブルには、例えばキーワード「エアコン」及び読み仮名「エアコン」が対応付けて保持されている。これによれば、キーワード「エアコン」の読み仮名が「エアコン」であることが示されている。
【０１６０】
同様に、読み仮名テーブルには、例えばキーワード「工場」及び読み仮名「コウジョウ」が対応付けて保持されている。これによれば、キーワード「工場」の読み仮名が「コウジョウ」であることが示されている。
【０１６１】
ここではキーワード「エアコン」及び「工場」について説明したが、読み仮名テーブルには、他のキーワードについても同様に読み仮名が対応付けて保持されている。
【０１６２】
また、図２３に示す例では読み仮名がカタカナ表記であるものとして説明したが、当該読み仮名は平仮名表記であっても構わない。
【０１６３】
この読み仮名テーブルは、上記したブロックＢ１３の処理と同様に、候補提示処理部３０１Ｃが、取得された文字認識結果に基づいてキーワードを検索するときに用いられる。なお、読み仮名テーブルを用いて検索されたキーワードに対しても、上記したブロックＢ１４におけるランク付けは行われる。これにより、ストローク数だけでなく、読み仮名に基づいたキーワードの検索及び手書き入力候補の提示を行うことができるようになる。
【０１６４】
以上説明した一実施形態によれば、どのストローク（集合）がどの手書き入力候補に置き換わるかをユーザが識別可能な形態で手書き入力候補を表示する構成を備えているので、入力が予測される文字の候補を効果的に提示することができる。
【０１６５】
なお、本実施形態の処理は、コンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１６６】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６７】
１７Ａ…ＬＣＤ、２０２…手書きノートアプリケーション、３０１…表示処理部、３０１Ａ…手書きデータ入力部、３０１Ｂ…筆跡描画部、３０１Ｃ…候補提示処理部、３０２…時系列情報生成部、３０３…編集処理部、３０４…ページ保存処理部、３０５…ページ取得処理部、３０６…特徴量登録処理部、４０１…作業メモリ、４０２…記憶媒体
【図１】
0006430198.tif 000002
【図２】
0006430198.tif 000003
【図３】
0006430198.tif 000004
【図４】
0006430198.tif 000005
【図５】
0006430198.tif 000006
【図６】
0006430198.tif 000007
【図７】
0006430198.tif 000008
【図８】
0006430198.tif 000009
【図９】
0006430198.tif 000010
【図１０】
0006430198.tif 000011
【図１１】
0006430198.tif 000012
【図１２】
0006430198.tif 000013
【図１３】
0006430198.tif 000014
【図１４】
0006430198.tif 000015
【図１５】
0006430198.tif 000016
【図１６】
0006430198.tif 000017
【図１７】
0006430198.tif 000018
【図１８】
0006430198.tif 000019
【図１９】
0006430198.tif 000020
【図２０】
0006430198.tif 000021
【図２１】
0006430198.tif 000022
【図２２】
0006430198.tif 000023
【図２３】
0006430198.tif 000024