(57)【要約】【課題】手書き文字を含む手書き文書を、文字コードを含む整形された文書に変換できる電子機器を実現する。【解決手段】実施形態によれば、電子機器は、取得手段および表示制御手段を具備する。取得手段は、複数の行に対応する複数の手書き文字を含む手書き文書のデータを用いて、前記複数の行に対応する複数の手書き文字の文字コードを取得する。表示制御手段は、第１条件に合致する場合、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を前記第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を前記第１行に対応する位置に含む第１整形文書データを表示可能である。【選択図】図５
2014099182.tif 000002
【特許請求の範囲】
【請求項１】
複数の行に対応する複数の手書き文字を含む手書き文書のデータを用いて、前記複数の行に対応する複数の手書き文字の文字コードを取得可能な取得手段と、
第１条件に合致する場合、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を前記第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を前記第１行に対応する位置に含む第１整形文書データを表示可能であり、
前記第１条件とは異なる第２条件に合致する場合、前記複数の第１文字コードと前記複数の第２文字コードとを用いて、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示可能である表示制御手段とを具備し、
前記第１条件に合致するか、又は前記第２条件に合致するかの少なくとも一方は、（１）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが一致するか相異するか、または、（２）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが箇条書きで用いられる記号に対応するか否か、または、（３）横書きの場合に前記第１行の水平方向の位置と前記第２行の水平方向の位置の関係、または、（４）縦書きの場合に前記第１行の垂直方向の位置と前記第２行の垂直方向の位置の関係、または、（５）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字がソースコードに対応するか否か、または、（６）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字が数式に対応するか否かの少なくとも１つを用いて定められる電子機器。
【請求項２】
前記表示制御手段は、
前記第１行の水平方向の位置と前記第２行の水平方向の位置との差が前記しきい値未満である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入せず、
前記第１行の水平方向の位置と前記第２行の水平方向の位置との差が前記しきい値以上である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入する請求項１記載の電子機器。
【請求項３】
前記表示制御手段は、
前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードである場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入し、
前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードでない場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入しない請求項１記載の電子機器。
【請求項４】
前記表示制御手段は、さらに、前記第１行内の第１空白の水平方向の位置と、前記第２行内の第２空白の水平方向の位置とが第１範囲内に収まっている場合、前記複数の第１文字コードの内の、前記第１空白に後続する文字の文字コードと、前記複数の第２文字コードの内の、前記第２空白に後続する文字の文字コードとが、同一の水平方向の位置に配置された第１整形文書データを表示可能である請求項１記載の電子機器。
【請求項５】
前記取得手段は、さらに、前記第１行内の複数の第１手書き文字の大きさに基づく第１フォントサイズを決定し、前記第２行内の複数の第２手書き文字の大きさに基づく第２フォントサイズを決定し、
前記表示制御手段は、前記複数の第１文字コードに前記第１フォントサイズが関連付けられ、前記複数の第２文字コードに前記第２フォントサイズが関連付けられた前記第１整形文書データを表示可能である請求項１記載の電子機器。
【請求項６】
前記表示制御手段は、さらに、前記複数の第１文字コードに所定の数学記号の文字コードが含まれる場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示可能である請求項１記載の電子機器。
【請求項７】
前記表示制御手段は、さらに、所定のプログラム言語の記述に関する仕様を示すデータを用いて、前記複数の第１文字コードがプログラムのソースコードであるか否かを判定し、前記複数の第１文字コードがプログラムのソースコードである場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示可能である請求項１記載の電子機器。
【請求項８】
タッチスクリーンディスプレイをさらに具備し、
前記手書き文書のデータは、前記タッチスクリーンディスプレイを用いた手書き入力操作に基づく複数のストロークに対応する複数のストロークデータを含む請求項１記載の電子機器。
【請求項９】
複数の行に対応する複数の手書き文字を含む手書き文書のデータを用いて、前記複数の行に対応する複数の手書き文字の文字コードを取得し、
第１条件に合致する場合、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を前記第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を前記第１行に対応する位置に含む第１整形文書データを表示し、
前記第１条件とは異なる第２条件に合致する場合、前記複数の第１文字コードと前記複数の第２文字コードとを用いて、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示し、
前記第１条件に合致するか、又は前記第２条件に合致するかの少なくとも一方は、（１）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが一致するか相異するか、または、（２）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが箇条書きで用いられる記号に対応するか否か、または、（３）横書きの場合に前記第１行の水平方向の位置と前記第２行の水平方向の位置の関係、または、（４）縦書きの場合に前記第１行の垂直方向の位置と前記第２行の垂直方向の位置の関係、または、（５）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字がソースコードに対応するか否か、または、（６）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字が数式に対応するか否かの少なくとも１つを用いて定められる方法。
【請求項１０】
前記第１整形文書データを表示することは、前記第１行の水平方向の位置と前記第２行の水平方向の位置とが前記しきい値未満である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入せず、
前記第２整形文書データを表示することは、前記第１行の水平方向の位置と前記第２行の水平方向の位置とが前記しきい値以上である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入する請求項９記載の方法。
【請求項１１】
前記第２整形文書データを表示することは、前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードである場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入し、
前記第１整形文書データを表示することは、前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードでない場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入しない請求項９記載の方法。
【請求項１２】
前記第１整形文書データを表示することは、さらに、前記第１行内の第１空白の水平方向の位置と、前記第２行内の第２空白の水平方向の位置とが第１範囲内に収まっている場合、前記複数の第１文字コードの内の、前記第１空白に後続する文字の文字コードと、前記複数の第２文字コードの内の、前記第２空白に後続する文字の文字コードとが、同一の水平方向の位置に配置された第１整形文書データを表示する請求項９記載の方法。
【請求項１３】
前記取得することは、さらに、前記第１行内の複数の第１手書き文字の大きさに基づく第１フォントサイズを決定し、前記第２行内の複数の第２手書き文字の大きさに基づく第２フォントサイズを決定し、
前記第１整形文書データを表示することは、前記複数の第１文字コードに前記第１フォントサイズが関連付けられ、前記複数の第２文字コードに前記第２フォントサイズが関連付けられた前記第１整形文書データを表示する請求項９記載の方法。
【請求項１４】
前記第２整形文書データを表示することは、さらに、前記複数の第１文字コードに所定の数学記号の文字コードが含まれる場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示する請求項９記載の方法。
【請求項１５】
前記第２整形文書データを表示することは、さらに、所定のプログラム言語の記述に関する仕様を示すデータを用いて、前記複数の第１文字コードがプログラムのソースコードであるか否かを判定し、前記複数の第１文字コードがプログラムのソースコードである場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示する請求項９記載の方法。
【請求項１６】
前記手書き文書のデータは、タッチスクリーンディスプレイを用いた手書き入力操作に基づく複数のストロークに対応する複数のストロークデータを含む請求項９記載の方法。
【請求項１７】
コンピュータにより実行されるプログラムであって、前記プログラムは、
複数の行に対応する複数の手書き文字を含む手書き文書のデータを用いて、前記複数の行に対応する複数の手書き文字の文字コードを取得する手順と、
第１条件に合致する場合、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を前記第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を前記第１行に対応する位置に含む第１整形文書データを表示する手順と、
前記第１条件とは異なる第２条件に合致する場合、前記複数の第１文字コードと前記複数の第２文字コードとを用いて、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示する手順とを前記コンピュータに実行させ、
前記第１条件に合致するか、又は前記第２条件に合致するかの少なくとも一方は、（１）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが一致するか相異するか、または、（２）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが箇条書きで用いられる記号に対応するか否か、または、（３）横書きの場合に前記第１行の水平方向の位置と前記第２行の水平方向の位置の関係、または、（４）縦書きの場合に前記第１行の垂直方向の位置と前記第２行の垂直方向の位置の関係、または、（５）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字がソースコードに対応するか否か、または、（６）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字が数式に対応するか否かの少なくとも１つを用いて定められるプログラム。
【請求項１８】
前記第１整形文書データを表示する手順は、前記第１行の水平方向の位置と前記第２行の水平方向の位置との差が前記しきい値未満である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入せず、
前記第２整形文書データを表示する手順は、前記第１行の水平方向の位置と前記第２行の水平方向の位置との差が前記しきい値以上である場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入する請求項１７記載のプログラム。
【請求項１９】
前記第２整形文書データを表示する手順は、前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードである場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入し、
前記第１整形文書データを表示する手順は、前記複数の第１文字コードの内の先頭の文字コードと、前記複数の第２文字コードの内の先頭の文字コードとが、前記第３文字コードでない場合、前記複数の第１文字コードと前記複数の第２文字コードとの間に改行コードを挿入しない請求項１７記載のプログラム。
【請求項２０】
前記第１整形文書データを表示する手順は、さらに、前記第１行内の第１空白の水平方向の位置と、前記第２行内の第２空白の水平方向の位置とが第１範囲内に収まっている場合、前記複数の第１文字コードの内の、前記第１空白に後続する文字の文字コードと、前記複数の第２文字コードの内の、前記第２空白に後続する文字の文字コードとが、同一の水平方向の位置に配置された前記第１整形文書データを表示する請求項１７記載のプログラム。
【請求項２１】
前記取得する手順は、さらに、前記第１行内の複数の第１手書き文字の大きさに基づく第１フォントサイズを決定し、前記第２行内の複数の第２手書き文字の大きさに基づく第２フォントサイズを決定し、
前記第１整形文書データを表示する手順は、前記複数の第１文字コードに前記第１フォントサイズが関連付けられ、前記複数の第２文字コードに前記第２フォントサイズが関連付けられた前記第１整形文書データを表示する請求項１７記載のプログラム。
【請求項２２】
前記第２整形文書データを表示する手順は、さらに、前記複数の第１文字コードに所定の数学記号の文字コードが含まれる場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示する請求項１７記載のプログラム。
【請求項２３】
前記第２整形文書データを表示する手順は、さらに、所定のプログラム言語の記述に関する仕様を示すデータを用いて、前記複数の第１文字コードがプログラムのソースコードであるか否かを判定し、前記複数の第１文字コードがプログラムのソースコードである場合、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示する請求項１７記載のプログラム。
【請求項２４】
前記コンピュータは、タッチスクリーンディスプレイをさらに具備し、
前記手書き文書のデータは、前記タッチスクリーンディスプレイを用いた手書き入力操作に基づく複数のストロークに対応する複数のストロークデータを含む請求項１７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書き文書の処理に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連付けられた機能の実行を電子機器に指示することができる。
【０００４】
このような電子機器では、ユーザが、タッチスクリーンディスプレイ上で文字や図形等を手書きするための機能を有するものもある。このような手書きの文字や図形を含む手書き文書（手書きページ）は保存され、必要に応じて閲覧される。
【０００５】
ところで、ノートのような紙のページに手書きされた文字をスキャンすることによって、そのページの画像データを生成し、この画像データを用いて手書きされた文字を認識する光学文字認識（ＯＣＲ）の技術が利用されている。この技術により、手書きされた文字を文字コードに変換することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−９９７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＯＣＲでは、例えば、スキャンされた手書き文書の左上から順に手書きされた文字が認識され、その文字の文字コードが出力される。そのため、例えば、出力された順に並べられた文字コードが、認識結果として画面に表示される。
【０００８】
しかし、手書き文書上の文字は、例えば、段落や箇条書き、見出しのようなグループとして視認されるように、ユーザによって意図された位置に手書きされることがある。そのため、手書き文書上の文字自体だけではなく、その文字の配置も認識されることが期待される場合がある。
【０００９】
本発明の一形態は、手書き文字を含む手書き文書を、文字コードを含む整形された文書に変換できる電子機器および手書き文書処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態によれば、電子機器は、取得手段および表示制御手段を具備する。取得手段は、複数の行に対応する複数の手書き文字を含む手書き文書のデータを用いて、前記複数の行に対応する複数の手書き文字の文字コードを取得可能である。表示制御手段は、第１条件に合致する場合、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を前記第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を前記第１行に対応する位置に含む第１整形文書データを表示可能であり、前記第１条件とは異なる第２条件に合致する場合、前記複数の第１文字コードと前記複数の第２文字コードとを用いて、前記複数の第１文字コードに対応する複数の文字を前記第１行に対応する位置に含み、前記複数の第２文字コードに対応する複数の文字を前記第２行に対応する位置に含む第２整形文書データを表示可能である。前記第１条件に合致するか、又は前記第２条件に合致するかの少なくとも一方は、（１）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが一致するか相異するか、または、（２）前記第１行の先頭の文字に対応する文字コードと前記第２行の先頭の文字に対応する文字コードとが箇条書きで用いられる記号に対応するか否か、または、（３）横書きの場合に前記第１行の水平方向の位置と前記第２行の水平方向の位置の関係、または、（４）縦書きの場合に前記第１行の垂直方向の位置と前記第２行の垂直方向の位置の関係、または、（５）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字がソースコードに対応するか否か、または、（６）前記複数の第１文字コードに対応する複数の文字及び前記複数の第２文字コードに対応する複数の文字が数式に対応するか否かの少なくとも１つを用いて定められる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器によって処理される手書き文書の例を示す図。
【図３】同実施形態の電子機器によって記憶媒体に保存される、図２の手書き文書に対応する時系列情報を説明するための図。
【図４】同実施形態の電子機器のシステム構成を示すブロック図。
【図５】同実施形態の電子機器によって実行されるデジタルノートブックアプリケーションプログラムの機能構成を示すブロック図。
【図６】手書き文書が文字認識される例を示す図。
【図７】同実施形態の電子機器によって、図６の手書き文書が文字コードを含む整形された文書に変換される例を示す図。
【図８】図７の手書き文書から認識される行を説明するための図。
【図９】図７の手書き文書から認識される文字を説明するための図。
【図１０】図７の手書き文書から認識されるグループを説明するための図。
【図１１】表を含む手書き文書が文字認識される例を示す図。
【図１２】図１１の手書き文書から認識されるグループを説明するための図。
【図１３】同実施形態の電子機器によって、図１１の手書き文書が文字コードを含む整形された文書に変換される例を示す図。
【図１４】同実施形態の電子機器によって実行される手書き入力処理の手順の例を示すフローチャート。
【図１５】同実施形態の電子機器によって実行される手書き文書変換処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１３】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１４】
デジタイザおよびタッチパネルの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。
【００１５】
ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１６】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報を含む手書き文書データとして記憶媒体に保存される。この時系列情報の詳細は図３を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、手書きにより入力可能なある一つのストロークを表現可能なデータであればどのようなものであってもよく、例えば、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１７】
タブレットコンピュータ１０は、記憶媒体から既存の任意の手書き文書データを読み出し、この手書き文書データに対応する手書き文書、つまり、時系列情報によって示される複数のストロークそれぞれに対応する軌跡が描画された手書き文書を、画面上に表示することができる。
【００１８】
次いで、図２および図３を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図２は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００１９】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図２においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２０】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００２１】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２２】
図３は、図２の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２３】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き矢印を構成する２つのストロークをそれぞれ示している。
【００２４】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標は、ストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００２５】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００２６】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００２７】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。  
各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００２８】
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、言語に依存せずに手書きの文字や図形を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００２９】
図４は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図４に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３０】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム２０２が含まれている。このデジタルノートブックアプリケーションプログラム２０２は、上述の手書き文書を作成および表示する機能、手書き文書を文字コードを含む整形された文書に変換する機能、等を有している。
【００３１】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３２】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３３】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００３４】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００３５】
次に、図５を参照して、デジタルノートブックアプリケーションプログラム２０２の機能構成について説明する。デジタルノートブックアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いた手書き入力操作によって入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。また、デジタルノートブックアプリケーションプログラム２０２は、手書き文書を整形する、すなわち、手書き文書内の手書き文字を文字コードに変換し、手書き文書上での文字サイズおよび配置に基づいて構成された整形文書データを生成可能である。
【００３６】
デジタルノートブックアプリケーションプログラム２０２は、例えば、軌跡表示処理部３０１、時系列情報生成部３０２、行認識部３０３、文字認識部３０４、文字グループ認識部３０５、整形文書生成部３０６、ページ保存処理部３０７、ページ取得処理部３０８、文書表示処理部３０９等を備える。
【００３７】
タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００３８】
軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。したがって、軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００３９】
軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。この軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がＬＣＤ１７Ａの画面上に描かれる。
【００４０】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図３で詳述したような構造を有する時系列情報（ストロークデータ）を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００４１】
ページ保存処理部３０７は、生成された時系列情報（作業メモリ４０１に一時保存された時系列情報）を、手書き文書データとして記憶媒体４０２に保存する。記憶媒体４０２は、例えば、タブレットコンピュータ１０内のストレージデバイスである。
【００４２】
ページ取得処理部３０８は、記憶媒体４０２から既に格納されている任意の手書き文書データを読み出す。読み出された手書き文書データは文書表示処理部３０９に送られる。文書表示処理部３０９は、手書き文書データを解析し、この解析結果に基づいて、時系列情報によって示される各ストロークの軌跡を、画面上に手書き文書（手書きページ）として表示する。  
上述の構成により、ユーザは、手書きの文字を含む手書き文書を作成および閲覧することができる。
【００４３】
また、作成された手書き文書は、文字認識によって文字コードに変換することもできる。図６は、手書き文書（手書きページ）６１が文字認識される例を示す。文字認識によって手書き文書６１内の文字は文字コードに変換され、その文字コードが文字認識結果６２として出力される。この文字認識結果６２では、認識された文字が手書き文書６１上での行毎に配置されている。例えば、手書き文書６１上の「まとめ」という１行の文字列が、文字認識結果６２上でも「まとめ」という１行の文字列（文字コード列）として表示されている。また、例えば、手書き文書６１上の「今日の打合せで……下さい。」という一文は、手書き文書６１上では複数の行にわたって手書きされている。文字認識結果６２上では、この一文は、手書き文書６１上での行毎に改行され、一つの文であるにも関わらず途切れた状態で表示されている。
【００４４】
このように、手書き文書６１の文字認識だけでは、認識された文字（文字コード）が単に並べられるだけであり、手書き文書６１内の文字の位置や大きさ、段落のような構成に関する情報が失われてしまう。そのため、例えば、一つの文が途切れた状態で表示され、文書として利用しづらい可能性がある。また、そのような文書は、ユーザにとっても読みにくいものである可能性が高い。
【００４５】
そのため本実施形態では、図７に示すように、手書き文書６１に含まれる手書き文字に対応する文字コードを認識し、さらに、認識された文字コードの配置が整形された文書（以下、整形ページとも称する）６３を生成する。すなわち、本実施形態では、手書き文書６１を清書した文書を生成する。
【００４６】
整形文書（整形ページ）６３では、「２０１２  ０３／２８」という文字列が、手書き文書６１上での位置に対応する位置に配置されている。整形文書６３では、手書き文書６１における、箇条書きされた２つの項目の先頭の字下げ（インデント）が維持されている。また、整形文書６３では、「今日の打合せで……下さい。」という一文が途切れないように、対応する文字が配置されている。さらに、整形文書６３では、手書き文書６１上での大きさに対応するサイズ（フォントサイズ）で、文字（文字コード）が表示されている。
【００４７】
このように本実施形態では、手書き文書６１上での文字の位置や大きさ、文字が属するグループ等の構成に関する情報を失うことなく、整形文書６３を生成する。このグループは、例えば、段落、箇条書き、見出し、表、数式のような１つのまとまりとして扱われるべき文字群が属するグループである。
【００４８】
以下では、時系列情報生成部３０２によって生成された時系列情報を含む手書き文書データを用いて、手書き文書を整形文書に変換する処理について説明する。
【００４９】
まず、行認識部３０３は、手書き文書のデータに含まれる複数の行を認識する。例えば、行認識部３０３は、手書き文書データを用いて、手書き文書６１上の１以上の手書き文字をそれぞれ含む複数の行を認識する。より具体的には、行認識部３０３は、手書き文書６１上に手書きされた複数のストロークに対応する複数のストロークデータを用いることにより、手書きされたストロークの座標の変化に基づいて、行を認識する。
【００５０】
図８に示す例では、手書き文書６１上の８つの行６６１〜６６８が認識されている。この手書き文書６１のように、手書き文書６１内に文字が横書きされる場合、ユーザは、１つの行に属する文字を、手書きページ内の左から右に向かって手書きしていくことが想定される。そのため、行認識部３０３は、時系列情報（複数のストロークデータ）から、タッチスクリーンディスプレイ１７上でのオブジェクト（指またはペン１００）の接触位置が、ある行の末尾から次の行の先頭に移動していることを示す座標を検出する。
【００５１】
より具体的には、行認識部３０３は、手書きされた時刻順の座標データ系列を用いて、Ｘ座標（水平方向の座標）が手書き文書６１内の右から左へと大きく変化している、連続して手書きされた二つのストロークを検出する。行認識部３０３は、図８に示した例では、第Ｎストロークの最後の座標データＳＤ４ｎと、その第Ｎストロークに後続する、第（Ｎ＋１）ストロークの最初の座標データＳＤ５１とを用いて、座標データＳＤ４ｎのＸ座標と座標データＳＤ５１のＸ座標との差の絶対値がしきい値以上である場合に、第Ｎストロークまでの１以上のストロークと、第（Ｎ＋１）ストロークからの１以上のストロークとが、別々の行に属することを検出する。すなわち、第ＮストロークＳＤ４ｎまでの行６６５と、第（Ｎ＋１）ストロークからの行６６６とが検出される。  
行認識部３０３は、同様にして、行の切れ目を検出することによって、手書き文書６１内の行６６１〜６６８を認識する。
【００５２】
次いで、文字認識部３０４は、認識された複数の行に含まれる複数の手書き文字に対応する文字コードを認識する。つまり、文字認識部３０４は、複数の行の各々に含まれる手書き文字を文字認識することによって、それら手書き文字を文字コードに変換する。文字認識部３０４は、各行内の複数のストロークの内の１以上のストロークに対応する文字を認識する。
【００５３】
図９に示すように、手書き文書６１上の複数の行６６１〜６６８の各々に手書きされた複数のストロークは、認識された文字毎に、対応する１以上のストロークが対応付けられる。つまり、文字認識部３０４による文字認識の結果、複数のストロークが文字毎のブロック６５１，６５２，６５３，６５４，……，６５ｎに分割される。例えば、行６６１に手書きされた「２０１２  ０３／２８」に対応する複数のストロークは、「２」、「０」、「１」、「２」、「０」、「３」、「２」、および「８」に対応する、文字毎のブロックに分割される。
【００５４】
文字認識部３０４は、例えば、複数のストロークの内の、１以上のストローク（処理対象のストローク）に対応する１以上のストロークデータを用いて、その１以上のストロークの形状を示す第１特徴量を算出する。そして、文字認識部３０４は、記憶媒体４０２に予め格納された文字辞書データを用いて、算出された第１特徴量と類似する特徴量を有する文字を検出する。この文字辞書データでは、例えば、複数の文字と、それら複数の文字に対応する複数の特徴量とが規定されている。したがって、文字認識部３０４は、文字辞書データに規定された複数の文字から、算出された第１特徴量との類似度がしきい値以上である、第２特徴量を有する文字を認識することによって、処理対象のブロック内の手書き文字を文字コードに変換する。
【００５５】
なお、文字認識部３０４は、文字辞書データに規定された複数の文字から、第１特徴量との類似度がしきい値以上である特徴量を有する複数の文字候補を検出してもよい。その場合、文字認識部３０４は、例えば、単語や文字の共起確率等を示す言語辞書データと、処理対象のストロークの近傍のストローク（例えば、処理対象のストロークの左右のストローク）から認識された文字とに基づいて、検出された複数の文字候補から、処理対象のストロークに対して尤もらしい文字（尤度が高い文字）を絞り込む。これにより、文字認識部３０４は、処理対象のストロークに対応する文字を認識する。
【００５６】
文字認識部３０４はさらに、認識した文字の大きさに基づいて、文字（文字コード）を表示すべきフォントサイズを算出する。文字認識部３０４は、例えば、行認識部３０３によって認識された複数の行の各々に含まれる複数の手書き文字の大きさ（例えば、複数の手書き文字の大きさの平均）に基づいて、その行の複数の文字コードを表示すべきフォントサイズを算出する。なお、文字認識部３０４は、複数の行の各々に含まれる複数の手書き文字の大きさが第１範囲内に収まっている場合（すなわち、大きさのばらつきが一定の範囲内に収まっている場合）に、複数の手書き文字の大きさの平均を、複数の文字コードを表示すべきフォントサイズに設定してもよい。文字認識部３０４は、例えば、図９に示した手書き文字「料」６５５の大きさと手書き文字「て」６５６の大きさとが第１範囲内に収まっていると判定し、これらの文字６５５，６５６に関連付ける１つのフォントサイズを算出する。
【００５７】
より具体的には、文字認識部３０４は、行認識部３０３によって認識された複数の行の内の第１行に含まれる複数の第１手書き文字の大きさに基づいて、第１フォントサイズを算出する。また、文字認識部３０４は、複数の行の内の第２行に含まれる複数の第２手書き文字の大きさに基づいて、第２フォントサイズを算出する。このような処理によって、文字認識部３０４は、文字コードを表示すべきフォントサイズを決定する。なお、文字認識部３０４は、行毎ではなく、後述するグループ毎にフォントサイズを決定してもよい。
【００５８】
次いで、文字グループ認識部３０５および整形文書生成部３０６は、手書き文書６１内の構成を示すグループを認識し、認識されたグループに基づいて配置された文字コード（文字認識部３０４によって認識された文字コード）を含む整形文書データを生成する。文字グループ認識部３０５および整形文書生成部３０６は、例えば、行認識部３０３によって認識された複数の行の内の第１行と、当該第１行に後続する第２行とが第１条件を満たす場合に、第１行に対応する複数の第１文字コードと第２行に対応する複数の第２文字コードとを用いて、少なくとも１つの第１文字コードに対応する文字を第２行に対応する位置に含むか、または少なくとも１つの第２文字コードに対応する文字を第１行に対応する位置に含む第１整形文書データを生成可能である。したがって例えば、文字グループ認識部３０５および整形文書生成部３０６は、第１行と第２行とが第１条件を満たす場合、複数の第１文字コードと複数の第２文字コードとの間に改行コードを挿入せずに、第１整形文書データを生成する。また、文字グループ認識部３０５および整形文書生成部３０６は、第１行と第２行とが第１条件を満たさない場合、複数の第１文字コードと複数の第２文字コードとを用いて、複数の第１文字コードに対応する複数の文字を第１行に対応する位置に含み、複数の第２文字コードに対応する複数の文字を第２行に対応する位置に含む第２整形文書データを生成可能である。したがって例えば、文字グループ認識部３０５および整形文書生成部３０６は、第１行と第２行とが第１条件を満たさない場合、複数の第１文字コードと複数の第２文字コードとの間に改行コードを挿入して、第２整形文書データを生成する。
【００５９】
より具体的には、文字グループ認識部３０５は、行認識部３０３によって認識された複数の行と、文字認識部３０４によって認識された複数の文字（文字コード）とに基づいて、手書き文書６１内の構成を示すグループを認識する。このグループは、例えば、段落、箇条書き、見出し、表、数式等の１つのまとまりとして扱われるべき文字群が属するグループである。
【００６０】
例えば、文字グループ認識部３０５は、認識された複数の行の内の第１行と、当該第１行に後続する第２行とが第１条件を満たす場合に、それら第１行と第２行とが一つの段落のグループに含まれることを認識し、また、第１行と第２行とが第１条件を満たさない場合に、それら第１行と第２行とが一つの段落のグループに含まれないこと（別々の段落グループであること）を認識する。
【００６１】
この第１条件は、例えば、手書き文書６１において第１行の水平方向の位置と第２行の水平方向の位置とが揃っていること、である。文字グループ認識部３０５は、例えば、手書き文書６１における、第１行（例えば、第１行の先頭の文字）の水平方向の位置（Ｘ座標）と、第２行（例えば、第２行の先頭の文字）の水平方向の位置（Ｘ座標）との差がしきい値未満である場合に、第１行と第２行とが一つの段落グループに含まれることを認識する。そして、文字グループ認識部３０５は、第１行の水平方向の位置（Ｘ座標）と、第２行の水平方向の位置（Ｘ座標）との差がしきい値以上である場合に、第１行と第２行とが一つの段落グループに含まれないことを認識する。
【００６２】
文字グループ認識部３０５および整形文書生成部３０６は、さらに、箇条書きを含む手書き文書を整形文書に変換することもできる。文字グループ認識部３０５および整形文書生成部３０６は、例えば、手書き文書内の第１行に対応する複数の第１文字コードの内の先頭の文字コードと、第１行に後続する第２行に対応する複数の第２文字コードの内の先頭の文字コードとが、特定の文字コード（第３文字コード）である場合、複数の第１文字コードと複数の第２文字コードとを用いて、複数の第１文字コードに対応する複数の文字を第１行に対応する位置に含み、複数の第２文字コードに対応する複数の文字を第２行に対応する位置に含む第２整形文書データを生成する。また、文字グループ認識部３０５および整形文書生成部３０６は、複数の第１文字コードの内の先頭の文字コードと、複数の第２文字コードの内の先頭の文字コードとが、第３文字コードでない場合、複数の第１文字コードと複数の第２文字コードとを用いて、複数の第１文字コードの内の少なくとも１つの文字コードに対応する文字を第２行に対応する位置に含むか、または複数の第２文字コードの内の少なくとも１つの文字コードに対応する文字を第１行に対応する位置に含む第３整形文書データを生成する。
【００６３】
より具体的には、文字グループ認識部３０５は、認識された段落グループが、箇条書きを構成する複数の行を含むグループであることをさらに認識する。文字グループ認識部３０５は、例えば、手書き文書６１において、複数の行の内の第１行の先頭の文字の文字コードと、この第１行に後続する第２行の先頭の文字の文字コードとが特定の文字コード（第３文字コード）である場合に、それら第１行と第２行とが１つの箇条書きのグループに含まれることを認識する。また、文字グループ認識部３０５は、第１行の先頭の文字の文字コードと第２行の先頭の文字の文字コードとが特定の文字コードでない場合に、それら第１行と第２行とが１つの箇条書きのグループに含まれないことを認識する。この特定の文字は、例えば、「・」、「□」、「〇」のような、箇条書きで用いられることが規定された記号や文字に対応する文字コードである。
【００６４】
図１０は、手書き文書６１において認識されたグループ６７１〜６７４を示す。  
文字グループ認識部３０５は、図８に示した行６６１に対応する文字列「２０１２  ０３／２８」の先頭の文字「２」のＸ座標と、行６６２に対応する文字列「まとめ」の先頭の文字「ま」のＸ座標との差（差の絶対値）がしきい値以上であるので、行６６１と行６６２とを別々の段落グループ６７１，６７２として認識している。また、文字グループ認識部３０５は、図８に示した行６６５に対応する文字列「今日の…」、行６６６に対応する文字列「決まった…」、行６６７に対応する文字列「の準備…」、および行６６８に対応する文字列「さい。」の先頭の文字同士のＸ座標の差（差の絶対値）がしきい値未満であるので、それら行６６５，６６６，６６７，６６８を一つの段落グループ６７４として認識している。これにより、文字グループ認識部３０５は、手書き文書６１内の段落に対応する段落グループ６７４を認識することができる。
【００６５】
さらに、文字グループ認識部３０５は、図８に示した行６６３の先頭の文字の文字コード「□」と、行６６４の先頭の文字の文字コード「□」とが特定の文字コードであるので、それら行６６３，６６４を一つの箇条書きのグループ６７３として認識している。これにより、文字グループ認識部３０５は、手書き文書６１内の箇条書きに対応するグループ６７３を認識することができる。
【００６６】
整形文書生成部３０６は、文字グループ認識部３０５によって認識されたグループに基づいて、文字認識部３０４によって認識された複数の文字（文字コード）が配置された整形文書データを生成する。整形文書生成部３０６は、認識された文字コードが、認識されたグループ６７１〜６７４の手書き文書６１上での位置に基づいて整形文書６３上に配置された整形文書データを生成する。整形文書生成部３０６は、この整形文書データにおいて、例えば、段落グループ内の複数の行の行間に改行コードを挿入せず、箇条書きグループ内の複数の行の行間に改行コードを挿入し、認識されたグループ間に改行コードを挿入する。
【００６７】
また、整形文書生成部３０６は、整形文書データに含まれる文字コードに、文字認識部３０４によって算出されたフォントサイズを関連付ける。例えば、整形文書生成部３０６は、生成される整形文書データにおいて、認識された複数の行の内の第１行に対応する複数の第１文字コードに第１フォントサイズを関連付け、第２行に対応する複数の第２文字コードに第２フォントサイズを関連付ける。これにより、整形文書６３において、手書き文書６１上での文字の大きさに基づくフォントサイズで、対応する文字コードを表示することができる。
【００６８】
図７に示したように、整形文書生成部３０６は、認識されたグループ６７１〜６７４の手書き文書６１上での位置に基づいて、認識された文字コードを整形文書６３上に配置する。整形文書生成部３０６は、手書き文書６１上の段落グループ６７１の位置に対応する整形文書６３上の位置に、「２０１２  ０３／２８」という文字コード列を配置している。整形文書生成部３０６は、手書き文書６１上の段落グループ６７２の位置に対応する整形文書６３上の位置に、「まとめ」という文字コード列を配置している。また、整形文書生成部３０６は、手書き文書６１上のグループ６７３の位置に対応する整形文書６３上の位置に、「□」で示された２つの項目を含む箇条書きに対応する文字コード列を配置している。その際、整形文書生成部３０６は、箇条書きグループ６７３に含まれる２つの行の間に改行コードを挿入し、それら２つの行の先頭の文字コードの位置が揃うように（すなわち、２つの項目の先頭のインデントが維持されるように）、各行の先頭に同数の空白（空白文字の文字コード）を挿入している。
【００６９】
さらに、整形文書生成部３０６は、手書き文書６１上の段落グループ６７４の位置に対応する整形文書６３上の位置に、「今日の打合せで……下さい。」という文字コード列を配置している。整形文書生成部３０６は、手書き文書６１上での４行の文字列に対応する４つの文字コード列が１つの段落グループ６７４に含まれるので、それら４つの文字コード列の間に改行コードを挿入していない。これにより、整形文書６３では、「今日の打合せで……下さい。」という一文が途切れないように、対応する文字コードを配置することができる。
【００７０】
ページ保存処理部３０７は、生成された整形文書データを記憶媒体４０２に保存する。
【００７１】
ページ取得処理部３０８は、記憶媒体４０２から既に格納されている任意の整形文書データを読み出す。読み出された整形文書データは文書表示処理部３０９に送られる。文書表示処理部３０９は、整形文書データを解析し、この解析結果に基づいて、関連付けられたフォントサイズで、文字コードによって示される文字が配置された整形文書（整形ページ）を画面上に表示する。
【００７２】
次いで、図１１、図１２及び図１３を参照して、手書き文書が手書きの表を含む場合について説明する。
【００７３】
図１１は、手書きの表７１１を含む手書き文書７１が文字認識される例を示す。この手書きの表７１１では、表を明示する縦線および横線は手書きされていないが、複数の項目が垂直方向および水平方向に揃えて配置されることによって、４行×４列の表が示されている。
【００７４】
文字認識のみでは、手書き文書７１内の文字は、表７１１のようなグループが考慮されることなく文字コードに変換され、その文字コードが文字認識結果７２として出力される。この文字認識結果７２では、認識された文字が手書き文書７１上での行毎に配置されている。
【００７５】
例えば、手書き文書７１上では、「６月」、「７月」および「８月」という文字列は、表７１１内の３つの列にそれぞれ手書きされている。しかし、文字認識結果７２上では、表７１１内の列が考慮されることなく、３つの列内の文字列が「６月７月８月」という連続した文字列として表示されている。
【００７６】
図６に示した例と同様に、手書き文書７１の文字認識だけでは、認識された文字（文字コード）が単に並べられるだけであるので、例えば、表７１１内の項目が連結された状態で表示されてしまう。つまり、表７１１の構成に関する情報が失われてしまう。
【００７７】
そのため、文字グループ認識部３０５は、手書き文書７１に含まれる表７１１のグループを認識する。以下の説明では、行認識部３０３および文字認識部３０４によって、手書き文書７１内の行および文字が認識済みであることを想定する。
【００７８】
文字グループ認識部３０５は、行認識部３０３によって認識された複数の行の各々で、複数の手書き文字列間の空白を検出する。例えば、文字グループ認識部３０５は、手書き文書７１内の「６月  ７月  ８月」を含む行において、「６月」と「７月」との間の空白と、「７月」と「８月」との間の空白とを検出する。そして、文字グループ認識部３０５は、検出された空白が、複数の行にまたがって同様の水平方向の位置にあるかどうかを検出する。例えば、文字グループ認識部３０５は、「６月」と「７月」との間の空白（第１空白）の水平方向の位置と、「４こ」と「１０こ」との間の空白（第２空白）の水平方向の位置とが、所定の範囲（第１範囲）内に収まっている場合に、「６月」と「４こ」とが第１の列内にあることを認識し、「７月」と「１０こ」とが第２の列内にあることを認識する。より具体的には、文字グループ認識部３０５は、第１空白の左端のＸ座標と第２空白の左端のＸ座標との差の絶対値がしきい値以内であり、且つ第１空白の右端のＸ座標と第２空白の右端のＸ座標との差の絶対値がしきい値以内である場合に、「６月」と「４こ」とが第１の列内にあることを認識し、「７月」と「１０こ」とが第２の列内にあることを認識する。
【００７９】
したがって、図１２に示すように、手書き文書７１内の表７１１では、各行内の空白７３Ｓの位置が、複数の行にわたって所定の範囲内に収まっているので、表７１１内の列７３Ａ，７３Ｂ，７３Ｃ，７３Ｄが認識される。これにより、文字グループ認識部３０５は、手書き文書７１内の表のグループ７３を認識することができる。
【００８０】
整形文書生成部３０６は、手書き文書７１上の表のグループ７３の位置に対応する整形文書（整形ページ）７４上の位置に、表７１１内の手書き文字から認識された文字コードが配置された整形文書データを生成する。整形文書生成部３０６は、表のグループ７３内の列７３Ａ，７３Ｂ，７３Ｃ，７３Ｄの位置に基づいて、列毎に、表７１１内の文字（文字列）に対応する文字コードを同一の水平方向の位置に（すなわち、列毎の複数の項目の左端を揃えて）配置する。
【００８１】
図１３に示すように、整形文書７４では、手書きの表７１１内の項目が、列を考慮して配置されている。例えば、表７１１において同じ列７３Ｂに属する「６月」、「４こ」、「６本」、および「１１本」という項目の先頭が揃えて配置されている。これにより、手書きの表７１１の構成に関する情報が失われることなく、手書き文書７１から整形文書７４を生成することができる。
【００８２】
本実施形態ではさらに、数式やプログラムのソースコードを含む手書き文書を整形文書に変換してもよい。数式やプログラムのソースコードでは、手書き文書上での行の構造が変更されてしまうと、数式やプログラムの内容（解釈）が変化する可能性がある。そのため、数式やプログラムのソースコードでは、手書き文書上での行が維持されることが望ましい。
【００８３】
文字グループ認識部３０５は、例えば、手書き文書に含まれる複数の行の内の第１行に対応する複数の第１文字コードに、所定の数学記号の文字コードが含まれる場合、その第１行を一つの数式のグループとして認識する。整形文書生成部３０６は、手書き文書上での数式のグループの位置に対応する整形文書上の位置に、その数式のグループに対応する複数の文字コードが配置された整形文書データを生成する。したがって例えば、整形文書生成部３０６は、複数の第１文字コードに、所定の数学記号の文字コードが含まれる場合、複数の第１文字コードに対応する複数の文字を第１行に対応する位置に含み、第１行に後続する第２行に対応する複数の第２文字コードに対応する複数の文字を第２行に対応する位置に含む整形文書データ（第２整形文書データ）を生成する。整形文書生成部３０６は、例えば、この整形文書データにおいて、第１行に対応する複数の第１文字コードと、この第１行に後続する第２行に対応する複数の第２文字コードとの間に改行コードを挿入する。
【００８４】
また、文字グループ認識部３０５は、例えば、所定のプログラム言語の記述に関する仕様を示す記述仕様データを用いて、手書き文書に含まれる複数の行の内の第１行に対応する複数の文字コードが、プログラムのソースコードであるかどうかを判定する。この記述仕様データでは、例えば、その所定のプログラミング言語でソースコードを記述するために用いられる記号（記号の文字コード）や、文字列（例えば、クラス、メソッド、データ型、関数等として用いられる名称に対応する文字コード）などが規定されている。この記述仕様データは、例えば、記憶媒体４０２内に予め格納されている。文字グループ認識部３０５は、その複数の文字コードがプログラムのソースコードである場合、その第１行を一つのソースコードのグループとして認識する。整形文書生成部３０６は、手書き文書上でのソースコードのグループの位置に対応する整形文書上の位置に、そのソースコードのグループに対応する複数の文字コードが配置された整形文書データを生成する。したがって例えば、整形文書生成部３０６は、複数の第１文字コードがプログラムのソースコードである場合、複数の第１文字コードに対応する複数の文字を第１行に対応する位置に含み、第１行に後続する第２行に対応する複数の第２文字コードに対応する複数の文字を第２行に対応する位置に含む整形文書データ（第２整形文書データ）を生成する。整形文書生成部３０６は、この整形文書データにおいて、例えば、第１行に対応する複数の第１文字コードと、この第１行に後続する第２行に対応する複数の第２文字コードとの間に改行コードを挿入する。  
以上により、数式やプログラムのソースコードを含む手書き文書では、数式やプログラムのソースコードの手書き文書上での行が維持された整形文書データを生成することができる。
【００８５】
上述の説明では、複数の文字が水平方向に手書きされる横書きの文書での処理について述べたが、複数の文字が垂直方向に手書きされる縦書きの文書にも、上述の処理を適用することができる。その場合、行認識部３０３は、手書き文書から縦書きの行を認識する。文字認識部３０４は、認識された縦書きの行に含まれる手書き文字を文字コードに変換する。そして、文字グループ認識部３０５および整形文書生成部３０６は、認識された縦書きの行と文字コードとを用いて、縦書きの手書き文書の構成を示すグループを認識し、認識されたグループに基づいて配置された文字コードを含む整形文書データ（縦書きの整形文書データ）を生成する。
【００８６】
さらに、上述の説明では、時系列情報（ストロークデータ）を含む手書き文書データが整形文書データに変換される例について述べたが、紙のページに印刷された文字または手書きされた文字をスキャンすることによって、そのページの画像データを生成し、この画像データを整形文書データに変換してもよい。行認識部３０３は、画像データを用いて、画像上の複数の行を認識する。文字認識部３０４は、画像データを用いて、認識された複数の行に含まれる手書き文字を文字コードに変換する。そして、文字グループ認識部３０５および整形文書生成部３０６は、画像（手書き文書）内の構成を示すグループを認識し、認識されたグループに基づいて配置された文字コードを含む整形文書データを生成する。
【００８７】
次いで、図１４を参照して、デジタルノートブックアプリケーション２０２によって実行される手書き入力処理の手順の例について説明する。
【００８８】
まず、軌跡表示処理部３０１は、手書き入力操作によるペン１００等の動きの軌跡（ストローク）をディスプレイ１７Ａに表示する（ブロックＢ１１）。また、時系列情報生成部３０２は、手書き入力操作による軌跡に対応する座標列に基づいて上述の時系列情報（時系列順に並べられた複数のストロークデータ）を生成する（ブロックＢ１２）。時系列情報生成部３０２は、その時系列情報を作業メモリ４０１に一時保存してもよい。また、ページ保存処理部３０７は、時系列情報生成部３０２によって生成された時系列情報（作業メモリ４０１に一時保存された時系列情報）を手書き文書データとして記憶媒体に保存してもよい。
【００８９】
また、図１５は、デジタルノートブックアプリケーション２０２によって実行される手書き文書変換処理の手順の例を示す。
【００９０】
まず、行認識部３０３は、生成された時系列情報（手書き文書データ）を用いて、複数のストロークから複数の行を認識する（ブロックＢ２１）。また、文字認識部３０３は、複数のストロークから複数の文字を認識する（ブロックＢ２２）。例えば、文字認識部３０３は、手書き文字それぞれを文字コードに変換する。この文字認識によって、複数のストロークが文字毎のブロックに分割される。
【００９１】
次いで、グループ認識部３０５は、認識された行と文字とに基づいて、段落や箇条書き、見出し、表、数式のような文字のグループを認識する（ブロックＢ２３）。そして、整形文書生成部３０６は、認識されたグループに基づいて文字（文字コード）が配置された整形ページを生成する（ブロックＢ２４）。
【００９２】
以上説明したように、本実施形態によれば、手書き文字を含む手書き文書を、文字コードを含む整形された文書に変換することができる。行認識部３０３は、手書き文書データを用いて、手書き文書６１上の複数の手書き文字をそれぞれ含む複数の行を認識する。文字認識部３０４は、認識された複数の行の各々に含まれる複数の手書き文字を複数の文字コードに変換する。そして、文字グループ認識部３０５および整形文書生成部３０６は、手書き文書６１内の構成を示すグループを認識し、認識されたグループに基づいて配置された文字コードを含む整形文書データを生成する。
【００９３】
これにより、デジタルノートなどの機器で手書きした文字を含む手書き文書から、ドキュメントファイル（整形文書データ）への変換（清書）を、手書きによって示した構成（文字の大きさや段組みの位置など）を損なうことなく、またユーザが何等作業を行うことなく実現することができる。
【００９４】
なお、図１４および図１５のフローチャートで説明した本実施形態の処理手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００９５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９６】
１７Ａ…ＬＣＤ、２０２…デジタルノートブックアプリケーション、３０１…軌跡表示処理部、３０２…時系列情報生成部、３０３…行認識部、３０４…文字認識部、３０５…文字グループ認識部、３０６…整形文書生成部、３０７…ページ保存処理部、３０８…ページ取得処理部、３０９…文書表示処理部、４０１…作業メモリ、４０２…記憶媒体
【図１】
2014099182.tif 000003
【図２】
2014099182.tif 000004
【図３】
2014099182.tif 000005
【図４】
2014099182.tif 000006
【図５】
2014099182.tif 000007
【図６】
2014099182.tif 000008
【図７】
2014099182.tif 000009
【図８】
2014099182.tif 000010
【図９】
2014099182.tif 000011
【図１０】
2014099182.tif 000012
【図１１】
2014099182.tif 000013
【図１２】
2014099182.tif 000014
【図１３】
2014099182.tif 000015
【図１４】
2014099182.tif 000016
【図１５】
2014099182.tif 000017