(57)【要約】【課題】入力が予測される文字列の候補を効果的に提示できる電子機器を実現する。【解決手段】実施形態によれば、電子機器は表示処理手段を具備する。表示処理手段は、タッチスクリーンディスプレイの画面上で手書きにより入力される１以上の第１ストロークを表示する。前記表示処理手段は、前記１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、前記第１候補又は前記第２候補の一方を除外して、入力するための１以上の候補を前記画面に表示する。【選択図】図１１
2015170150.tif 000002
【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイの画面上で手書きにより入力される１以上の第１ストロークを表示する表示処理手段を具備し、
前記表示処理手段は、前記１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、前記第１候補又は前記第２候補の一方を除外して、入力するための１以上の候補を前記画面に表示する電子機器。
【請求項２】
前記表示処理手段は、前記第１候補又は前記第２候補の一方が除外された場合に、前記第１候補又は前記第２候補の他方が選択されたことに応じて、前記第１候補と前記第２候補との双方を前記画面に表示する請求項１記載の電子機器。
【請求項３】
前記表示処理手段は、前記第１候補と前記第２候補との双方が表示された後に、前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示する請求項２記載の電子機器。
【請求項４】
前記表示処理手段は、前記複数の候補に、前記第１候補が含まれ、前記第２候補が含まれない場合、前記複数の候補を前記画面に表示し、前記第１候補が選択されたことに応じて、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示する請求項１記載の電子機器。
【請求項５】
前記表示処理手段は、前記第１候補と前記第２候補の一方が除外された場合、除外されていない第１候補又は第２候補に関連付けられた第１画像をさらに表示する請求項１記載の電子機器。
【請求項６】
前記表示処理手段は、前記第１画像が選択された場合、前記第１候補と前記第２候補との双方を前記画面に表示し、前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示する請求項５記載の電子機器。
【請求項７】
タッチスクリーンディスプレイの画面上で手書きにより入力される１以上の第１ストロークを表示し、
前記１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、前記第１候補又は前記第２候補の一方を除外して、入力するための１以上の候補を前記画面に表示する方法。
【請求項８】
前記第１候補又は前記第２候補の一方が除外された場合に、前記第１候補又は前記第２候補の他方が選択されたことに応じて、前記第１候補と前記第２候補との双方を前記画面に表示することをさらに具備する請求項７記載の方法。
【請求項９】
前記第１候補と前記第２候補との双方が表示された後に、前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示することとをさらに具備する請求項８記載の方法。
【請求項１０】
前記複数の候補に、前記第１候補が含まれ、前記第２候補が含まれない場合、前記複数の候補を前記画面に表示し、前記第１候補が選択されたことに応じて、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示することをさらに具備する請求項７記載の方法。
【請求項１１】
前記１以上の候補を表示することは、前記第１候補と前記第２候補の一方が除外された場合、除外されていない第１候補又は第２候補に関連付けられた第１画像をさらに表示する請求項７記載の方法。
【請求項１２】
前記第１画像が選択された場合、前記第１候補と前記第２候補との双方を前記画面に表示することと、
前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示することとをさらに具備する請求項１１記載の方法。
【請求項１３】
コンピュータにより実行されるプログラムであって、前記プログラムは、
タッチスクリーンディスプレイの画面上で手書きにより入力される１以上の第１ストロークを表示する手順と、
前記１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、前記第１候補又は前記第２候補の一方を除外して、入力するための１以上の候補を前記画面に表示する手順とを前記コンピュータに実行させるプログラム。
【請求項１４】
前記第１候補又は前記第２候補の一方が除外された場合に、前記第１候補又は前記第２候補の他方が選択されたことに応じて、前記第１候補と前記第２候補との双方を前記画面に表示する手順を前記コンピュータにさらに実行させる請求項１３記載のプログラム。
【請求項１５】
前記第１候補と前記第２候補との双方が表示された後に、前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示する手順とを前記コンピュータにさらに実行させる請求項１４記載のプログラム。
【請求項１６】
前記複数の候補に、前記第１候補が含まれ、前記第２候補が含まれない場合、前記複数の候補を前記画面に表示し、前記第１候補が選択されたことに応じて、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示する手順を前記コンピュータにさらに実行させる請求項１３記載のプログラム。
【請求項１７】
前記１以上の候補を表示する手順は、前記第１候補と前記第２候補の一方が除外された場合、除外されていない第１候補又は第２候補に関連付けられた第１画像をさらに表示する請求項１３記載のプログラム。
【請求項１８】
前記第１画像が選択された場合、前記第１候補と前記第２候補との双方を前記画面に表示する手順と、
前記第１候補が選択された場合、前記１以上の第１ストロークを前記第１候補の前記複数の第２ストロークに置き換えることによって、前記複数の第２ストロークを前記画面に表示し、前記第２候補が選択された場合、前記１以上の第１ストロークを前記第２候補の前記複数の第３ストロークに置き換えることによって、前記複数の第３ストロークを前記画面に表示する手順とを前記コンピュータにさらに実行させる請求項１７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、文字を手書き入力する技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備え、手書きするための機能を有するものもある。そのためユーザは、この電子機器を用いて、テキストや画像だけでなく、手書きの文字や図形も含む文書を作成することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ユーザが単語のような文字列を入力するときに、これまでに入力された文字列の履歴を用いてユーザによる入力を補助する方法がある。
【０００５】
本発明の一形態は、入力が予測される文字列の候補を効果的に提示できる電子機器及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、電子機器は表示処理手段を具備する。表示処理手段は、タッチスクリーンディスプレイの画面上で手書きにより入力される１以上の第１ストロークを表示する。前記表示処理手段は、前記１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、前記第１候補又は前記第２候補の一方を除外して、入力するための１以上の候補を前記画面に表示する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る電子機器の外観を示す例示的な斜視図。
【図２】同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされるストロークの例を示す図。
【図３】同実施形態の電子機器によって記憶媒体に保存される、図２の手書きストロークに対応する時系列情報（ストロークデータ）を説明するための例示的な図。
【図４】同実施形態の電子機器のシステム構成を示す例示的なブロック図。
【図５】入力途中の手書き文字列に基づいて、手書き候補文字列が表示される例を示す図。
【図６】図５の手書き候補文字列から選択された文字列を用いて、入力途中の手書き文字列が補完される例を示す図。
【図７】同実施形態の電子機器によって、入力途中の手書き文字列に基づいて、第１段階の手書き候補文字列が表示される例を示す図。
【図８】図７の第１段階の手書き候補文字列から選択された文字列に応じて、第２段階の手書き候補文字列が表示される例を示す図。
【図９】図８の第２段階の手書き候補文字列から選択された文字列を用いて、入力途中の手書き文字列が補完される例を示す図。
【図１０】図７の第１段階の手書き候補文字列から選択された文字列を用いて、入力途中の手書き文字列が補完される例を示す図。
【図１１】同実施形態の電子機器によって実行される予測入力ユーティリティプログラム２０２の機能構成の例を示すブロック図。
【図１２】同実施形態の電子機器によって用いられる手書き文字列データの一構成例を示す図。
【図１３】同実施形態の電子機器によって生成される類似度順の手書き候補文字列の例を示す図。
【図１４】同実施形態の電子機器によって、入力途中の手書き文字列に基づいて、第１段階の手書き候補文字列が表示される別の例を示す図。
【図１５】図１４の第１段階の手書き候補文字列から選択された文字列を用いて、入力途中の手書き文字列が補完される例を示す図。
【図１６】図１４の第１段階の手書き候補文字列から選択された画像に応じて、第２段階の手書き候補文字列が表示される例を示す図。
【図１７】図１６の第２段階の手書き候補文字列から選択された文字列を用いて、入力途中の手書き文字列が補完される例を示す図。
【図１８】同実施形態の電子機器によって実行される手書き入力処理の手順の例を示すフローチャート。
【図１９】同実施形態の電子機器によって実行される類似度算出処理の手順の例を示すフローチャート。
【図２０】同実施形態の電子機器によって実行される予測入力処理の手順の例を示すフローチャート。
【図２１】同実施形態の電子機器によって実行される予測入力処理の手順の別の例を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。
【０００９】
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン又は指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレット又はスレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１０】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペン又は指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルである２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１１】
デジタイザ及びタッチパネルの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンである。
【００１２】
ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で、手書きにより複数のストロークを入力する手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が、手書きの文字又は図形などを構成する。
【００１３】
本実施形態では、このような手書きストローク（手書きの文字及び図形）は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図３を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、手書きにより入力可能なある一つのストロークを表現可能なデータであればどのようなものであってもよく、例えば、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の文書データを読み出し、この文書データに対応する文書、つまり、時系列情報によって示される複数のストロークそれぞれに対応する軌跡が描画された手書き文書を、画面上に表示することができる。
【００１５】
次いで、図２及び図３を参照して、ユーザによって手書きされたストローク（手書きの文字、マーク、図形、表など）と時系列情報との関係について説明する。図２は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる文書の例を示している。
【００１６】
この文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図２においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００１７】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００１８】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの矢印は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００１９】
図３は、図２の文書に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２０】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き矢印を構成する２つのストロークをそれぞれ示している。
【００２１】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標は、ストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００２２】
各座標データは、対応する軌跡内のある１点に対応するＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００２３】
また、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）と、ある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００２４】
さらに、各座標データは、その座標に対応する点が手書きされた時点の、外部オブジェクト（例えば、ペン１００）が画面に接触されたことによる圧力Ｐを含んでいてもよい。
【００２５】
本実施形態では、上述したように、手書きされるストロークは、イメージや文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、言語に依存せずに手書きの文字や図形を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語が異なる世界中の様々な国で共通に使用できる。
【００２６】
図４は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図４に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８、等を備える。
【００２７】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種コンポーネントの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、及び各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、予測入力ユーティリティプログラム２０２が含まれている。この予測入力ユーティリティプログラム２０２は、手書き入力された１以上のストロークに基づいて、入力が予測される文字列の候補を提示する予測入力機能（サジェスト機能）を有する。予測入力ユーティリティプログラム２０２は、この予測入力機能によって、例えば、検索キーワードのサジェスト機能、文書に入力される文字列の補完機能、等を実現する。
【００２８】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００２９】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３０】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂ及びデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置、接触位置の動き、接触圧力、等はデジタイザ１７Ｃによって検出される。
【００３１】
無線通信デバイス１０７は、無線ＬＡＮ又は３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オン又は電源オフする機能を有している。
【００３２】
上述したように、予測入力ユーティリティプログラム２０２は、予測入力機能を利用して、文書に入力される文字列の補完機能、検索キーワードのサジェスト機能、等を実現する。
【００３３】
図５は、文字が手書き入力される手書き文書の画面５０上に、予測入力機能によって手書き候補文字列が表示される例を示す。ここでは、ユーザが、単語“ａｐｐｌｅ”を手書き入力しようとして、文字列“ａｐ”５１までを手書き入力している場合を想定する。
【００３４】
この画面５０には、ユーザが既に入力を完了した手書き文字列５９と、入力途中の手書き文字列“ａｐ”５１を構成するストローク５１１，５１２，５１３と、この入力途中の手書き文字列“ａｐ”５１（ストローク５１１，５１２，５１３）に基づく手書き候補文字列“ａｐｐｌｅ”５２１、“ａｐｐｌｅ”５２２、“ａｐｐｌｙ”５２３、及び“ａｐｐｌｉｃａｔｉｏｎ”５２４とが表示されている。これら手書き候補文字列５２１〜５２４は、例えば、ユーザによって、既に手書き入力された文字列や既に作成された手書き文書に含まれる文字列から抽出された、入力途中の手書き文字列“ａｐ”５１と類似する候補文字列である。
【００３５】
図６に示すように、ユーザは、候補文字列５２１〜５２４に、入力しようとしている文字列が含まれている場合には、その候補文字列を選択すること（候補文字列のボタンを押し下げること）によって、入力途中の手書き文字列“ａｐ”５１を、選択された候補文字列“ａｐｐｌｅ”５２２に置き換えることを指示できる。したがって、ユーザが文字列“ａｐｐｌｅ”を全て手書き入力することなく、入力しようとしている文字列“ａｐｐｌｅ”を手書き文書上に描画することができる。
【００３６】
ところで、ユーザによって既に入力された手書き文字列や既に作成された手書き文書には、同一の文字列（単語等）に対応する複数の手書き文字列が含まれることが想定される。例えば、１つの手書き文書内に複数の手書き文字列“ａｐｐｌｅ”が含まれることや、複数の手書き文書の各々に手書き文字列“ａｐｐｌｅ”が含まれることが想定される。
【００３７】
そのため、図５に示す例のように、表示される手書き候補文字列“ａｐｐｌｅ”５２１、“ａｐｐｌｅ”５２２、“ａｐｐｌｙ”５２３、及び“ａｐｐｌｉｃａｔｉｏｎ”５２４には、同一の文字列“ａｐｐｌｅ”に対応する複数の手書き候補文字列（すなわち、重複した候補文字列）“ａｐｐｌｅ”５２１，５２２が含まれることがある。画面５０には、例えば、限られた数（例えば、４個）の候補文字列が表示されるので、重複した候補文字列“ａｐｐｌｅ”５２１，５２２が表示されることによって、ユーザが期待する候補文字列が表示される可能性が低下する場合がある。
【００３８】
そのため本実施形態では、入力途中の手書き文字列（１以上の手書きストローク）に対応する、入力するための複数の候補文字列に、同一の文字列に対応する第１候補文字列と第２候補文字列とが含まれる場合、第１候補文字列と第２候補文字列の一方を除外して、入力するための１以上の候補文字列（第１段階の候補文字列）を画面に表示する。つまり、重複した候補文字列が除外された第１段階の候補文字列が表示される。そして、第１候補文字列と第２候補文字列の内の一方が除外された場合に、第１候補文字列と第２候補文字列の内の他方が選択されたことに応じて、第１候補文字列と第２候補文字列の双方を含む第２段階の候補文字列を画面に表示する。つまり、ユーザがそれら第１段階の候補文字列から１つの候補文字列を選択し、その選択された候補文字列との重複によって第１段階で除外された候補文字列がある場合に、選択された候補文字列と、当該候補文字列との重複によって第１段階で除外された候補文字列とを含む第２段階の候補文字列が表示される。ユーザは、第２段階の候補文字列から、好みに合った候補文字列を選択し、これにより、入力途中の手書き文字列が、選択された候補文字列に置き換えられる。
【００３９】
図７に示すように、本実施形態のタブレットコンピュータ１０によって表示される手書き文書の画面６０には、ユーザが既に入力を完了した手書き文字列６９と、入力途中の手書き文字列“ａｐ”６１を構成するストローク６１１，６１２，６１３とが表示されている。そして、この画面６０には、入力途中の手書き文字列“ａｐ”６１（ストローク６１１，６１２，６１３）に基づく第１段階の手書き候補文字列“ａｐｐｌｅ”６２１、“ａｐｐｌｙ”６２２、“ａｐｐｌｉｃａｔｉｏｎ”６２３、及び“ａｐｐｒｅｃｉａｔｅ”６２４が表示されている。この第１段階の手書き候補文字列６２１〜６２４は、例えば、ユーザによって既に手書き入力された文字列や既に作成された手書き文書に含まれる文字列から、入力途中の手書き文字列“ａｐ”６１（ストローク６１１，６１２，６１３）と類似する候補文字列を抽出し、その抽出された候補文字列から、重複した文字列を除外することによって取得される。
【００４０】
ユーザは、図８に示すように、第１段階の手書き候補文字列６２１〜６２４に、入力しようとしている文字列“ａｐｐｌｅ”が含まれている場合には、その候補文字列“ａｐｐｌｅ”６２１を選択する（候補文字列のボタンを押し下げる）。これにより、第２段階の手書き候補文字列６２１，６２５の表示を指示できる。第２段階の候補文字列６２１，６２５は、第１段階の手書き候補文字列６２１〜６２４から選択された候補文字列“ａｐｐｌｅ”６２１と、第１段階で当該候補文字列“ａｐｐｌｅ”６２１との重複、すなわち、候補文字列“ａｐｐｌｅ”６２１と同一の文字列であることによって除外されていた候補文字列“ａｐｐｌｅ”６２５とを含む。候補文字列“ａｐｐｌｅ”６２１と候補文字列“ａｐｐｌｅ”６２５とは、同一の“ａｐｐｌｅ”という文字列であるものの、ユーザが過去に手書き入力した文字列や過去に作成した手書き文書等で、それら文字列６２１，６２５を、例えば、急いで手書きしたか、丁寧に手書きしたか、等によって、異なる形状（筆跡）を有するものである。
【００４１】
そのためユーザは、図９に示すように、第２段階の候補文字列６２１，６２５から好みに合った候補文字列６２５（例えば、最も綺麗に手書きされた候補文字列、作成中の手書き文書に適した候補文字列、等）を選択する。これにより、入力途中の手書き文字列“ａｐ”６１が選択された候補文字列６２５を用いて置き換えられ、補完された手書き文字列“ａｐｐｌｅ”６５を画面６０上の手書き文書に描画することができる。したがって、ユーザが文字列“ａｐｐｌｅ”を全て手書き入力することなく、好みに合った形状の手書き文字列“ａｐｐｌｅ”を手書き文書上に描画することができる。
【００４２】
なお、図１０に示すように、第１段階の手書き候補文字列６２１〜６２４から１つの候補文字列“ａｐｐｌｅ”６２１が選択され、その候補文字列“ａｐｐｌｅ”６２１との重複によって第１段階で除外された候補文字列がない場合には、第２段階の候補文字列が表示されることなく、入力途中の手書き文字列“ａｐ”６１が当該選択された候補文字列“ａｐｐｌｅ”６２１に置き換えられる。
【００４３】
予測入力ユーティリティプログラム２０２は、上述したように、手書き文字列の入力を補助するための候補文字列が表示される場合に、２段階で候補文字列を表示する予測入力機能を有する。この予測入力機能は、図７から図９に示したような手書き文書を作成する場合だけでなく、検索のためのキーワードを手書き入力する場合等、文字が手書き入力されるあらゆるケースに利用できる。
【００４４】
図１１は、予測入力ユーティリティプログラム２０２の機能構成の例を示す。予測入力ユーティリティプログラム２０２は、タッチスクリーンディスプレイ１７を用いた操作によって入力される時系列情報（ストロークデータ）を使用することによって、手書きされた文字列に応じた候補文字列の表示、選択された候補文字列による手書きされた文字列の上書き、等を行う。
【００４５】
予測入力ユーティリティプログラム２０２は、例えば、軌跡表示処理部３０１、時系列情報生成部３０２、特徴量算出部３０３、類似度算出部３０４、ソート部３０５、候補表示処理部３０６、補完表示処理部３０７、文字列データ生成部３０８、ページ保存処理部３０９、ページ取得処理部３１０、及び文書表示処理部３１１を備える。
【００４６】
タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００４７】
軌跡表示処理部３０１及び時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」、「移動（スライド）」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、軌跡表示処理部３０１及び時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００４８】
軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７の画面上で手書きにより入力される１以上のストローク６１１，６１２，６１３（以下、第１ストロークとも称する）を表示する。軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。この軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまりストロークがＬＣＤ１７Ａの画面上に描画される。
【００４９】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図３で詳述したような構造を有する時系列情報（ストロークデータ）を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ４０１に一時保存されてもよい。
【００５０】
また、時系列情報生成部３０２は、生成された時系列情報（ストロークデータ）を特徴量算出部３０３に出力する。時系列情報生成部３０２は、例えば、１つのストロークが手書き入力される毎に、そのストロークに対応するストロークデータを特徴量算出部３０３に出力する。
【００５１】
特徴量算出部３０３、類似度算出部３０４、ソート部３０５、及び候補表示処理部３０６は、第１段階では、記憶媒体４０２に格納された、手書き文書データ４０２Ｂに対応する手書き文書に含まれる手書き文字列の内、軌跡表示処理部３０１によって画面に表示された１以上の第１ストローク６１１，６１２，６１３に対応する、入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、第１候補又は第２候補の一方を除外して、入力するための１以上の候補（第１段階の候補文字列）６２１〜６２４を画面に表示する。そして、候補表示処理部３０６は、複数の候補の内の第１候補６２１と第２候補６２５の一方が除外された場合に、第１候補６２１と第２候補６２５の他方が選択されたことに応じて、第１候補６２１と第２候補６２５の双方（第２段階の候補文字列）を画面に表示する。例えば、候補表示処理部３０６は、第１段階の候補文字列６２１〜６２４の内の第１候補文字列６２１が選択された場合、第２段階では、選択された第１候補文字列６２１と、当該第１候補文字列６２１と重複したことによって第１段階で除外された１以上の候補文字列６２５とを含む第２段階の候補文字列を画面に表示する。
【００５２】
記憶媒体４０２には、手書き文書に含まれる複数の手書き文字列に対応する複数の手書き文字列データ４０２Ａが格納されていてもよい。特徴量算出部３０３、類似度算出部３０４、ソート部３０５、及び候補表示処理部３０６は、記憶媒体４０２に格納された、複数の手書き文字列に対応する複数の手書き文字列データ４０２Ａを用いて、第１段階では、それら複数の手書き文字列の内、軌跡表示処理部３０１によって画面に表示された１以上の第１ストローク６１１，６１２，６１３に対応する、入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、第１候補又は第２候補の一方を除外して、入力するための１以上の候補（第１段階の候補文字列）６２１〜６２４を画面に表示する。手書き文字列データ４０２Ａは、手書き文字列を構成する１以上のストロークに対応する特徴量を含む。特徴量算出部３０３、類似度算出部３０４、ソート部３０５、及び候補表示処理部３０６は、例えば、この手書き文字列データ４０２Ａに示される複数の手書き文字列から、１以上の第１ストローク６１１，６１２，６１３に対応する特徴量との類似度がしきい値以上である特徴量をそれぞれ有する手書き文字列の候補を検出し、検出された候補から重複する候補が除外された１以上の候補６２１〜６２４を、例えば類似度の降順に、画面に表示する。そして、候補表示処理部３０６は、複数の候補の内の第１候補６２１と第２候補６２５の一方が除外された場合に、第１候補６２１と第２候補６２５の他方が選択されたことに応じて、第１候補６２１と第２候補６２５の双方（第２段階の候補文字列）を画面に表示する。例えば、候補表示処理部３０６は、第１段階の候補文字列６２１〜６２４の内の第１候補文字列６２１が選択された場合、第２段階では、選択された第１候補文字列６２１と、当該第１候補文字列６２１と重複したことによって第１段階で除外された１以上の候補文字列６２５とを含む第２段階の候補文字列を画面に表示する。
【００５３】
より具体的には、まず、特徴量算出部３０３は、時系列情報生成部３０２によって生成された１以上の第１ストローク６２１，６２２，６２３に対応する１以上のストロークデータを用いて特徴量（第１特徴量）を算出する。特徴量算出部３０３は、例えば、１以上の第１ストローク６２１，６２２，６２３の形状や手書きされた方向等に基づいて特徴量を算出する。
【００５４】
次いで、類似度算出部３０４は、算出された第１特徴量と、手書き文字列データ４０２Ａ内の候補文字列に対応する第２特徴量とを用いて、候補文字列毎の類似度を算出する。
【００５５】
図１２は、手書き文字列データ４０２Ａの一構成例を示す。この手書き文字列データ４０２Ａは、例えば、ストロークデータや手書き文書データ４０２Ｂを解析することによって生成される。また、手書き文字列データ４０２Ａは、例えばユーザ毎に生成される。
【００５６】
手書き文字列データ４０２Ａは、複数の手書き文字列に対応する複数のエントリを含む。手書き文字列データ４０２Ａは、例えば、ユーザが過去に複数回、同一の文字列を手書き入力している場合、その同一の文字列に対応する複数の手書き文字列のエントリを含む。各手書き文字列は、例えば単語に対応する文字列である。
【００５７】
各エントリは、例えば、ＩＤ、文字列、特徴量、及びストロークデータを含む。ある手書き文字列に対応するエントリにおいて、「ＩＤ」は、その手書き文字列に付与された識別情報を示す。「文字列」は、その手書き文字列に対応するテキスト（文字コード列）を示す。「特徴量」は、その手書き文字列を構成する１以上のストロークに対応する特徴量を示す。「ストロークデータ」は、その手書き文字列を構成する１以上のストロークに対応するストロークデータ（時系列情報）を示す。
【００５８】
「文字列」には、例えば、「ストロークデータ」に示されるストロークデータに文字認識処理を施すことによって得られたテキスト（文字コード列）が設定される。また、「特徴量」には、例えば、「ストロークデータ」に示されるストロークデータを用いて算出された、ストロークの形状やストロークが手書きされた方向に基づく特徴量が設定される。
【００５９】
類似度算出部３０４は、例えば、手書き入力された１以上の第１ストローク６１１，６１２，６１３が任意の文字列６１（例えば、単語、句、等の文字のまとまり）を構成するストロークであって、その文字列６１が入力途中である場合（すなわち、文字列６１を構成するすべてのストロークの手書き入力が完了していない場合）、その１以上の第１ストローク６１１，６１２，６１３に対応する特徴量（第１特徴量）と、手書き文字列データ４０２Ａ内の候補文字列に対応する特徴量（第２特徴量）とを用いて、候補文字列の類似度を算出する。類似度算出部３０４は、手書き文字列データ４０２Ａ内の複数の候補文字列の各々に対応する類似度を算出する。そして、ソート部３０５は、手書き文字列データ４０２Ａ内の複数の候補文字列を、算出された類似度の降順にソートする。
【００６０】
図１３は、手書き文字列データ４０２Ａから、類似度に基づいてソートされた候補文字列が取得される例を示す。ここでは、手書き文字列“ａｐ”６１を構成する１以上の第１ストローク６１１，６１２，６１３が入力されている場合を想定する。
【００６１】
手書き文字列“ａｐ”６１を構成する１以上の第１ストローク６１１，６１２，６１３が入力されている場合、類似度算出部３０４は、上述したように、手書き文字列データ４０２Ａに含まれる複数の候補文字列の各々について、１以上の第１ストローク“ａｐ”６１１，６１２，６１３に対する類似度を算出する。類似度算出部３０４は、例えば、１以上の第１ストローク“ａｐ”６１１，６１２，６１３に対応する第１特徴量と、手書き文字列データ４０２Ａの各エントリに含まれる第２特徴量とを用いて、手書き文字列データ４０２Ａに示される候補文字列毎の類似度を算出する。この類似度は、例えば、１以上の第１ストローク６１１，６１２，６１３の第１特徴量と、候補文字列を構成するストロークの第２特徴量との類似性に基づく離散値で表され、第１特徴量と第２特徴量との類似性が高いほど、高い値が設定される。ソート部３０５は、手書き文字列データ４０２Ａ内の複数の候補文字列を、算出された類似度の降順にソートする。
【００６２】
次いで、候補表示処理部３０６は、ソートされた複数の候補文字列から重複した候補文字列を除外することによって、第１段階の候補文字列６２１〜６２４を決定する。図１３に示す例では、候補表示処理部３０６は、複数の候補文字列の中で、ＩＤ“０００１”である文字列“ａｐｐｌｅ”と、ＩＤ“０００４”である文字列“ａｐｐｌｅ”とが重複していることを検出し、これら２つの文字列“ａｐｐｌｅ”の内、類似度が低いＩＤ“０００４”の文字列“ａｐｐｌｅ”を第１段階の候補文字列から除外する。そして、候補表示処理部３０６は、重複した候補文字列が除外された第１段階の候補文字列６２１〜６２４（例えば、上位から所定数の候補文字列）をＬＣＤ１７Ａの画面に表示する。
【００６３】
候補表示処理部３０６は、タッチスクリーンディスプレイ１７上での選択操作によって、表示されている第１段階の候補文字列６２１〜６２４から１つの候補文字列“ａｐｐｌｅ”６２１（以下、第１候補文字列とも称する）が選択されたことを検出する。そして、候補表示処理部３０６は、選択された第１候補文字列“ａｐｐｌｅ”６２１と重複したことによって第１段階で除外された候補文字列があるか否かを判定する。
【００６４】
第１候補文字列“ａｐｐｌｅ”６２１と重複したことによって第１段階で除外された候補文字列がある場合、候補表示処理部３０６は、図８を参照して上述したように、第１候補文字列“ａｐｐｌｅ”６２１と、第１候補文字列“ａｐｐｌｅ”６２１と重複したことによって第１段階で除外された候補文字列“ａｐｐｌｅ”６２５とを含む第２段階の候補文字列を画面に表示する。
【００６５】
補完表示処理部３０７は、表示された第２段階の候補文字列６２１，６２５から１つの候補文字列“ａｐｐｌｅ”（第１候補文字列）６２１が選択されたことに応じて、１以上の第１ストローク６１１，６１２，６１３（すなわち、入力途中の手書き文字列を構成するストローク）を、選択された第１候補文字列“ａｐｐｌｅ”６２１を構成する複数の第２ストロークに置き換えることによって、その複数の第２ストロークを画面に表示する。補完表示処理部３０７は、手書き文字列データ４０２Ａから、選択された第１候補文字列“ａｐｐｌｅ”６２１に対応するストロークデータを読み出す。そして、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３を画面から消去し、その１以上の第１ストローク６１１，６１２，６１３が描画されていた位置に基づいて、読み出されたストロークデータに基づく複数の第２ストロークを描画する。また、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３に対応するストロークデータを作業メモリ４０１から削除し、複数の第２ストロークに対応するストロークデータを作業メモリ４０１に一時保存してもよい。
【００６６】
また、補完表示処理部３０７は、表示された第２段階の候補文字列６２１，６２５から１つの候補文字列“ａｐｐｌｅ”６２５（以下、第２候補文字列とも称する）が選択されたことに応じて、図９を参照して上述したように、１以上の第１ストローク６１１，６１２，６１３（すなわち、入力途中の手書き文字列を構成するストローク）を、選択された第２候補文字列“ａｐｐｌｅ”６２５を構成する複数の第３ストロークに置き換えることによって、その複数の第３ストロークを画面に表示する。補完表示処理部３０７は、手書き文字列データ４０２Ａから、選択された第２候補文字列“ａｐｐｌｅ”６２５に対応するストロークデータを読み出す。そして、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３を画面から消去し、その１以上の第１ストロークが描画されていた位置に基づいて、読み出されたストロークデータに基づく複数の第３ストロークを描画する。また、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３に対応するストロークデータを作業メモリ４０１から削除し、複数の第３ストロークに対応するストロークデータを作業メモリ４０１に一時保存してもよい。
【００６７】
さらに、第１候補文字列“ａｐｐｌｅ”６２１と重複したことによって第１段階で除外された候補文字列がない場合（すなわち、１以上の第１ストロークに対応する入力するための複数の候補に、第１候補文字列“ａｐｐｌｅ”６２１が含まれ、第２候補文字列６２５が含まれない場合）、候補表示処理部３０６は、第１候補文字列“ａｐｐｌｅ”６２１を含む複数の候補文字列６２１〜６２４を表示する。そして、補完表示処理部３０７は、図１０を参照して上述したように、第１候補文字列“ａｐｐｌｅ”６２１が選択されたことに応じて、１以上の第１ストローク６１１，６１２，６１３（すなわち、入力途中の手書き文字列を構成するストローク）を第１候補文字列“ａｐｐｌｅ”６２１を構成する複数の第２ストロークに置き換えることによって、その複数の第２ストロークを画面に表示する。補完表示処理部３０７は、手書き文字列データ４０２Ａから、選択された第１候補文字列“ａｐｐｌｅ”６２１に対応するストロークデータを読み出す。そして、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３を画面から消去し、その１以上の第１ストローク６１１，６１２，６１３が描画されていた位置に基づいて、読み出されたストロークデータに基づく複数の第２ストロークを描画する。また、補完表示処理部３０７は、１以上の第１ストローク６１１，６１２，６１３に対応するストロークデータを作業メモリ４０１から削除し、複数の第２ストロークに対応するストロークデータを作業メモリ４０１に一時保存してもよい。
【００６８】
ページ保存処理部３０９は、生成されたストロークデータ（作業メモリ４０１に一時保存されたストロークデータ）を、手書き文書データ４０２Ｂとして記憶媒体４０２に保存する。記憶媒体４０２は、例えば、タブレットコンピュータ１０内のストレージデバイスである。
【００６９】
ページ取得処理部３１０は、記憶媒体４０２から既に格納されている任意の手書き文書データ４０２Ｂを読み出す。読み出された手書き文書データ４０２Ｂは文書表示処理部３１１に送られる。文書表示処理部３１１は、手書き文書データ４０２Ｂを解析し、この解析結果に基づいて、ストロークデータ（時系列情報）によって示される各ストロークの軌跡を含む文書（ページ）を画面上に表示する。
【００７０】
なお、表示されている候補文字列からいずれの文字列も選択されずに、文字列の手書き入力が完了した場合（例えば、ユーザが文字列を構成するすべてのストロークを手書き入力した場合）、文字列データ生成部３０８は、入力が完了した文字列に対応する手書き文字列データ４０２Ａ（手書き文字列データのエントリ）を生成する。文字列データ生成部３０８は、手書き入力が完了した文字列を構成する１以上のストロークに対応する特徴量を用いて文字認識処理を行うことよって、その１以上のストロークに対応する文字（テキスト）を認識してもよい。文字列データ生成部３０８は、認識された文字（テキスト）と特徴量とストロークデータとを含む手書き文字列データのエントリを生成し、当該エントリを手書き文字列データ４０２Ａに追加する。
【００７１】
また、文字列データ生成部３０８は、既に作成された手書き文書のデータ４０２Ｂを解析することによって、手書き文字列データ４０２Ａを生成してもよい。文字列データ生成部３０８は、例えば、英語の手書き文書データ４０２Ｂを解析する場合、手書き文書に含まれる文字列（手書き文字列に対応するストロークデータ）に対して文字認識処理を施すことによって、手書きの文字列に対応するテキスト（テキストデータ）を生成する。そして、文字列データ生成部３０８は、生成されたテキストから単語を検出し、単語毎の手書き文字列データ４０２Ａのエントリを生成する。
【００７２】
また、文字列データ生成部３０８は、例えば、日本語の手書き文書データ４０２Ｂを解析する場合、手書き文書に含まれる文字列（手書き文字列に対応するストロークデータ）に対して文字認識処理を施すことによって、手書きの文字列に対応するテキスト（テキストデータ）を生成する。そして、文字列データ生成部３０８は、生成されたテキストに形態素解析処理を施すことによって、そのテキストを単語（形態素）に区切り、単語毎の手書き文字列データ４０２Ａのエントリを生成する。  
これにより、既に作成された手書き文書のデータ４０２Ｂから手書き文字列データ４０２Ａを生成することができる。
【００７３】
また、図１４から図１７を参照して、２段階で表示される手書き候補文字列を用いて、入力途中の手書き文字列が補完される別の例を説明する。
【００７４】
図１４に示すように、タブレットコンピュータ１０によって表示される手書き文書の画面６０には、ユーザが既に入力を完了した手書き文字列６９と、入力途中の手書き文字列“ａｐ”６１を構成するストローク６１１，６１２，６１３とが表示されている。特徴量算出部３０３、類似度算出部３０４、ソート部３０５、及び候補表示処理部３０６は、入力途中の手書き文字列“ａｐ”６１（ストローク６１１，６１２，６１３）に基づく第１段階の手書き候補文字列６２１〜６２４を画面６０に表示する。
【００７５】
より具体的には、特徴量算出部３０３は、入力途中の手書き文字列“ａｐ”６１を構成するストローク６１１，６１２，６１３に対応するストロークデータを用いて、入力途中の手書き文字列“ａｐ”６１の特徴量（第１特徴量）を算出する。類似度算出部３０４は、算出された第１特徴量と、手書き文字列データ４０２Ａ内の候補文字列に対応する第２特徴量とを用いて、候補文字列毎の類似度を算出する。ソート部３０５は、手書き文字列データ４０２Ａ内の複数の候補文字列を、算出された類似度の降順にソートする。
【００７６】
そして、候補表示処理部３０６は、ソートされた複数の候補文字列に、同一の文字列に対応する複数の候補文字列（すなわち、重複した候補文字列）が含まれている場合、それら同一の文字列に対応する複数の候補文字列の内の一つ（例えば、類似度が最大である候補文字列）を選択することによって、重複した候補文字列を除外する。候補表示処理部３０６は、重複した候補文字列が除外された候補文字列（第１段階の候補文字列）６２１〜６２４を、例えば、類似度に基づく順序で画面６０に表示する。そして、候補表示処理部３０６によって同一の文字列に対応する第１候補と第２候補の一方が除外された場合、候補表示処理部３０６は、除外されていない第１候補又は第２候補に関連付けられた第１画像をさらに表示する。候補表示処理部３０６は、例えば、候補文字列“ａｐｐｌｅ”６２１（第１候補）との重複によって除外された候補文字列“ａｐｐｌｅ”（第２候補）がある場合、除外されていない候補文字列“ａｐｐｌｅ”６２１に関連付けられた第１画像（ボタン）６２１Ａを表示する。第１画像（ボタン）６２１Ａは、例えば、候補文字列“ａｐｐｌｅ”６２１に対応する領域内に表示される。つまり、候補表示処理部３０６は、表示される第１段階の候補文字列６２１〜６２４の内、同一の文字列に対応する複数の候補文字列から選択された候補文字列“ａｐｐｌｅ”６２１に、第１画像（ボタン）６２１Ａを付加する。この画像６２１Ａは、候補文字列“ａｐｐｌｅ”６２１に対応する第２段階の候補文字列の表示を指示するために用いられる。
【００７７】
図１５に示すように、ユーザが候補文字列“ａｐｐｌｅ”６２１（第１候補）を選択した場合、補完表示処理部３０７は、候補文字列“ａｐｐｌｅ”６２１を用いて、入力途中の手書き文字列６１を置き換えることによって、補完された手書き文字列６６を画面６０上の手書き文書に描画する。つまり、補完表示処理部３０７は、入力途中の１以上の第１ストローク６１１，６１２，６１３を、候補文字列“ａｐｐｌｅ”６２１を構成する複数の第２ストロークに置き換えることによって、複数の第２ストロークを画面６０に表示する。なお、候補文字列“ａｐｐｌｅ”６２１の選択は、例えば、文字列“ａｐｐｌｅ”６２１のストロークが描画されている領域の選択や、文字列“ａｐｐｌｅ”６２１に対応する領域の内の画像６２１Ａ以外の領域の選択、等によって行われる。
【００７８】
また、図１６に示すように、ユーザが第１画像６２１Ａに対応する領域を選択した場合、候補表示処理部３０６は、候補文字列“ａｐｐｌｅ”６２１（第１候補）と、第１段階で当該候補文字列“ａｐｐｌｅ”６２１との重複によって除外されていた候補文字列“ａｐｐｌｅ”６２５（第２候補）とを含む第２段階の候補文字列を画面６０に表示する。候補文字列“ａｐｐｌｅ”６２１と候補文字列“ａｐｐｌｅ”６２５とは、同一の“ａｐｐｌｅ”という文字列であるものの、ユーザが過去に手書き入力した文字列や過去に作成した手書き文書等で、それら文字列６２１，６２５を、例えば、急いで手書きしたか、丁寧に手書きしたか、等によって、異なる形状を有するものである。
【００７９】
図１７に示すように、ユーザが第２段階の候補文字列６２１，６２５から適当と判断した候補文字列６２５（例えば、最も綺麗に手書きされた候補文字列、作成中の手書き文書に適した候補文字列、等）を選択した場合、補完表示処理部３０７は、選択された候補文字列６２５を用いて、入力途中の手書き文字列“ａｐ”６１を置き換えることによって、補完された手書き文字列“ａｐｐｌｅ”６５を画面６０上の手書き文書に描画する。つまり、補完表示処理部３０７は、入力途中の１以上の第１ストローク６１１，６１２，６１３を、候補文字列“ａｐｐｌｅ”６２５を構成する複数の第３ストロークに置き換えることによって、複数の第３ストロークを画面６０に表示する。
【００８０】
以上の構成により、入力が予測される文字列の候補を効果的に提示することができる。
【００８１】
次いで、図１８のフローチャートを参照して、予測入力ユーティリティプログラム２０２によって実行される手書き入力処理の手順の例について説明する。
【００８２】
軌跡表示処理部３０１は、手書き入力操作によるペン１００等の動きの軌跡（ストローク）を文書上に表示する（ブロックＢ１１）。また、時系列情報生成部３０２は、手書き入力操作による軌跡に対応する座標列に基づいて上述の時系列情報（時系列順に並べられたストロークデータ）を生成し、その時系列情報を作業メモリ４０１に一時保存する（ブロックＢ１２）。
【００８３】
また、図１９のフローチャートは、予測入力ユーティリティプログラム２０２によって実行される類似度算出処理の手順の例を示す。  
特徴量算出部３０３は、１つの手書きストローク（第１ストローク）の入力が完了したか否かを判定する（ブロックＢ２１）。特徴量算出部３０３は、例えば、時系列情報生成部３０２から、第１ストロークに対応するストロークデータを受け取った場合に、第１ストロークの入力が完了したことを検出する。第１ストロークの入力が完了していない場合（ブロックＢ２１のＮＯ）、ブロックＢ２１に戻り、第１ストロークの入力が完了したか否かが再度判定される。
【００８４】
第１ストロークの入力が完了した場合（ブロックＢ２１のＹＥＳ）、特徴量算出部３０３は、時系列情報生成部３０２によって生成された、当該第１ストロークに対応する時系列情報（ストロークデータ）を用いて、特徴量を算出する（ブロックＢ２２）。類似度算出部３０４は、算出された特徴量（第１特徴量）と、手書き文字列データ４０２Ａ内の候補文字列に対応する特徴量（第２特徴量）とを用いて、候補文字列の類似度を算出する（ブロックＢ２３）。より具体的には、第１ストロークが、入力途中の文字列（文字）を構成するストロークである場合、類似度算出部３０４は、算出された特徴量を含む、入力途中の文字列の文字を構成する１以上の手書きストロークに対応する特徴量（第１特徴量）と、手書き文字列データ４０２Ａ内の候補文字列に対応する特徴量（第２特徴量）とを用いて、候補文字列の類似度を算出する。また、入力された第１ストロークが文字列を構成する先頭のストロークである場合、類似度算出部３０４は、算出された特徴量（第１特徴量）と、手書き文字列データ４０２Ａ内の候補文字列に対応する特徴量（第２特徴量）とを用いて、候補文字列の類似度を算出する。
【００８５】
次いで、類似度算出部３０４は、手書き文字列データ４０２Ａ内に、他の候補文字列のエントリ（すなわち、類似度がまだ算出されていない候補文字列のエントリ）が含まれているか否かを判定する（ブロックＢ２４）。手書き文字列データ４０２Ａに他の候補文字列のエントリが含まれている場合（ブロックＢ２４のＹＥＳ）、ブロックＢ２３に戻り、その候補文字列の類似度が算出される。
【００８６】
手書き文字列データ４０２Ａ内に他の候補文字列のエントリが含まれていない場合、すなわち、すべての候補文字列の類似度が算出された場合（ブロックＢ２４のＮＯ）、ソート部３０５は候補文字列を類似度が高い順に並べ替える（ブロックＢ２５）。
【００８７】
次いで、図２０のフローチャートを参照して、予測入力ユーティリティプログラム２０２によって実行される予測入力処理の手順の例を説明する。
【００８８】
まず、特徴量算出部３０３、類似度算出部３０４及びソート部３０５は、上述した図１９の類似度算出処理によって、類似度順の候補文字列のリストを生成する（ブロックＢ３１）。そして、候補表示処理部３０６は、生成された候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれているか否かを判定する（ブロックＢ３２）。候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれていない場合（ブロックＢ３２のＮＯ）、候補表示処理部３０６は、その候補文字列のリストを画面に表示する（ブロックＢ３４）。
【００８９】
一方、候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれている場合（ブロックＢ３２のＹＥＳ）、候補表示処理部３０６は、同一の文字列に対応する複数の候補文字列の内の１つを選択することによって、候補文字列のリストから重複した候補文字列を除外する（ブロックＢ３３）。そして、候補表示処理部３０６は、重複した候補文字列が除外された候補文字列のリストを画面に表示する（ブロックＢ３４）。
【００９０】
次いで、候補表示処理部３０６は、表示された候補文字列の内の１つが選択されたか否かを判定する（ブロックＢ３５）。表示された候補文字列がいずれも選択されない場合（ブロックＢ３５のＮＯ）、ブロックＢ３１に戻り、さらに入力される手書き文字列（ストローク）に応じた候補文字列を表示するための処理が行われる。
【００９１】
表示された候補文字列の内の１つが選択された場合（ブロックＢ３５のＹＥＳ）、候補表示処理部３０６は、選択された候補文字列が、ブロックＢ３１で生成された候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれていた候補文字列であるか否かを判定する（ブロックＢ３６）。選択された候補文字列が、ブロックＢ３１で生成された候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれていた候補文字列でない場合（ブロックＢ３６のＮＯ）、補完表示処理部３０７は、入力途中の文字列（ストローク）を、選択された候補文字列に置き換えることによって、当該候補文字列を画面に表示する（ブロックＢ３９）。
【００９２】
選択された候補文字列が、ブロックＢ３１で生成された候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれていた候補文字列である場合（ブロックＢ３６のＹＥＳ）、候補表示処理部３０６は、選択された候補文字列と、当該候補文字列との重複によって除外されていた候補文字列とを画面に表示する（ブロックＢ３７）。そして、候補表示処理部３０６は、表示された候補文字列の内の１つが選択されたか否かを判定する（ブロックＢ３８）。表示された候補文字列がいずれも選択されない場合（ブロックＢ３８のＮＯ）、ブロックＢ３１に戻り、さらに入力される手書き文字列（ストローク）に応じた候補文字列を表示するための処理が行われる。
【００９３】
一方、表示された候補文字列の内の１つが選択された場合（ブロックＢ３８のＹＥＳ）、補完表示処理部３０７は、入力途中の文字列（ストローク）を、選択された候補文字列に置き換えることによって、当該候補文字列を画面に表示する（ブロックＢ３９）。
【００９４】
また、図２１のフローチャートは、予測入力ユーティリティプログラム２０２によって実行される予測入力処理の別の手順の例を示す。
【００９５】
まず、特徴量算出部３０３、類似度算出部３０４及びソート部３０５は、上述した図１９の類似度算出処理によって、類似度順の候補文字列のリストを生成する（ブロックＢ４０１）。そして、候補表示処理部３０６は、生成された候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれているか否かを判定する（ブロックＢ４０２）。候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれていない場合（ブロックＢ４０２のＮＯ）、候補表示処理部３０６は、その候補文字列のリストを画面に表示する（ブロックＢ４０３）。
【００９６】
次いで、候補表示処理部３０６は、表示された候補文字列の内の１つが選択されたか否かを判定する（ブロックＢ４０４）。表示された候補文字列がいずれも選択されない場合（ブロックＢ４０４のＮＯ）、ブロックＢ４０１に戻り、さらに入力される手書き文字列（ストローク）に応じた候補文字列を表示するための処理が行われる。一方、表示された候補文字列の内の１つが選択された場合（ブロックＢ４０４のＹＥＳ）、補完表示処理部３０７は、入力途中の文字列（ストローク）を、選択された候補文字列に置き換えることによって、当該候補文字列を画面に表示する（ブロックＢ４０５）。
【００９７】
また、候補文字列のリスト内に、同一の文字列に対応する複数の候補文字列が含まれている場合（ブロックＢ４０２のＹＥＳ）、候補表示処理部３０６は、同一の文字列に対応する複数の候補文字列の内の１つを選択することによって、候補文字列のリストから重複した候補文字列を除外する（ブロックＢ４０６）。そして、候補表示処理部３０６は、重複した候補文字列があった候補文字列には所定の画像を付加して、候補文字列のリストを画面に表示する（ブロックＢ４０７）。表示される候補文字列のリストでは、例えば、複数の候補文字列が所定の方向に並べられ、それら複数の候補文字列の内、重複した候補文字列があった候補文字列に所定の画像が関連付けて表示される。
【００９８】
次いで、候補表示処理部３０６は、表示された候補文字列の内の１つが選択されたか否かを判定する（ブロックＢ４０８）。表示された候補文字列の内の１つが選択された場合（ブロックＢ４０８のＹＥＳ）、補完表示処理部３０７は、入力途中の文字列（ストローク）を、選択された候補文字列に置き換えることによって、当該候補文字列を画面に表示する（ブロックＢ４０５）。
【００９９】
表示された候補文字列がいずれも選択されない場合（ブロックＢ４０８のＮＯ）、候補表示処理部３０６は、候補文字列に付加された画像が選択されたか否かを判定する（ブロックＢ４０９）。候補文字列に付加された画像が選択されていない場合（ブロックＢ４０９のＮＯ）、ブロックＢ４０１に戻り、さらに入力される手書き文字列（ストローク）に応じた候補文字列を表示するための処理が行われる。
【０１００】
候補文字列に付加された画像が選択された場合（ブロックＢ４０９のＹＥＳ）、候補表示処理部３０６は、選択された画像が付加された候補文字列と、当該候補文字列との重複によって除外されていた候補文字列とを表示する（ブロックＢ４１０）。そして、候補表示処理部３０６は、表示された候補文字列の内の１つが選択されたか否かを判定する（ブロックＢ４１１）。表示された候補文字列の内の１つが選択された場合（ブロックＢ４１１のＹＥＳ）、補完表示処理部３０７は、入力途中の文字列（ストローク）を、選択された候補文字列に置き換えることによって、当該候補文字列を画面に表示する（ブロックＢ４０５）。表示された候補文字列がいずれも選択されない場合（ブロックＢ４１１のＮＯ）、ブロックＢ４０１に戻る。
【０１０１】
以上説明したように、本実施形態によれば、入力が予測される文字列の候補を効果的に提示することができる。軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７の画面上で手書きにより入力される１以上の第１ストロークを表示する。候補表示処理部３０６は、１以上の第１ストロークに対応する入力するための複数の候補に、同一の文字列に対応する複数の第２ストロークの第１候補と複数の第３ストロークの第２候補とが含まれる場合に、第１候補と第２候補の一方を除外して、入力するための１以上の候補をＬＣＤ１７Ａの画面に表示する。
【０１０２】
ユーザによる手書き入力の履歴を利用して、入力途中の手書き文字列に対応する候補文字列が表示される場合には、同一の文字列である候補文字列が表示され、ユーザが期待する候補文字列が表示される可能性が低下する場合がある。しかし、上述の構成によって、重複した候補文字列が除外された候補文字列を表示されるので、ユーザが期待する候補文字列が表示される可能性を高めることができ、ユーザは、表示される候補文字列から入力したい文字列を容易に選択することができる。
【０１０３】
また、候補表示処理部３０６は、第１候補又は第２候補の一方が除外された場合に、第１候補又は第２候補の他方が選択されたことに応じて、第１候補と第２候補との双方を画面に表示する。これにより、同一の文字列であって、形状（筆跡）が異なる候補が表示されるので、ユーザの好みに合った形状の文字列（例えば、より綺麗な形状の文字列）を用いて、入力途中の文字列（ストローク）を補完することができる。
【０１０４】
なお、図１８から図２１のフローチャートで説明した本実施形態の処理手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１０５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１７Ａ…ＬＣＤ、２０２…予測入力ユーティリティプログラム、３０１…軌跡表示処理部、３０２…時系列情報生成部、３０３…特徴量算出部、３０４…類似度算出部、３０５…ソート部、３０６…候補表示処理部、３０７…補完表示処理部、３０８…文字列データ生成部、３０９…ページ保存処理部、３１０…ページ取得処理部、３１１…文書表示処理部、４０１…作業メモリ、４０２…記憶媒体、４０２Ａ…手書き文字列データ、４０２Ｂ…手書き文書データ。
【図１】
2015170150.tif 000003
【図２】
2015170150.tif 000004
【図３】
2015170150.tif 000005
【図４】
2015170150.tif 000006
【図５】
2015170150.tif 000007
【図６】
2015170150.tif 000008
【図７】
2015170150.tif 000009
【図８】
2015170150.tif 000010
【図９】
2015170150.tif 000011
【図１０】
2015170150.tif 000012
【図１１】
2015170150.tif 000013
【図１２】
2015170150.tif 000014
【図１３】
2015170150.tif 000015
【図１４】
2015170150.tif 000016
【図１５】
2015170150.tif 000017
【図１６】
2015170150.tif 000018
【図１７】
2015170150.tif 000019
【図１８】
2015170150.tif 000020
【図１９】
2015170150.tif 000021
【図２０】
2015170150.tif 000022
【図２１】
2015170150.tif 000023