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