(57)【要約】【課題】コンピュータ装置に入力される、少なくとも部分的に互いの上に重ねて書かれる手書きの文字を、コンピュータ装置により認識する。【解決手段】手書きの文字は、１つまたは複数のストロークで構成することができる。文字入力の間にタイムアウトを待つ必要なしに、かつ、別の文字について入力する前に、文字が完成したことを示すボタンを選択するかまたは別の入力を与える必要なしに、グラフィカルユーザインタフェースのほぼ同じ領域の上に（すなわち、互いの上に）、ユーザは文字または単語の一部を書くことができる。文字が少なくとも部分的に認識されると、ユーザ入力に対応する、スクリーン上に表示されているグラフの表示を変更してもよい。そうした変更は、グラフの表示を退色させることか、またはグラフの表示の大きさもしくは場所を変えることを含んでもよい。【選択図】図１
2013004095.tif 000002
【特許請求の範囲】
【請求項１】
文字を認識するための方法であって、
コンピュータ装置のタッチベースのインタフェースでストローク列に関するタッチベースの入力を受け付けるステップであって、前記タッチベースのインタフェースの第１の領域に前記ストローク列の第１の部分集合が対応し、前記第１の領域と少なくとも部分的に重なり合う前記タッチベースのインタフェースの第２の領域に前記ストローク列の第２の部分集合が対応するステップと、
前記コンピュータ装置に連結された出力装置上に前記ストローク列の前記第１の部分集合のグラフ表示を表示するステップと、
第１の文字が前記ストローク列の前記第１の部分集合にほぼ適合する信頼レベルであって、少なくとも第１の信頼しきい値のレベルである信頼レベルを判断するステップと、
前記信頼レベルに基づいて、前記ストローク列の前記第１の部分集合の前記グラフ表示を変更するステップと、
前記コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、前記信頼レベルが少なくとも第２の信頼しきい値のレベルであるときに前記第１の文字を提供するステップと
を含む方法。
【請求項２】
前記ストローク列の前記第１の部分集合の前記グラフ表示を変更するステップが、
前記信頼レベルが少なくとも前記第２の信頼しきい値のレベルであるときに、前記ストローク列の前記第１の部分集合の前記グラフ表示を中止するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１の文字が前記ストローク列の前記第１の部分集合にほぼ適合する前記信頼レベルを判断するステップが、
前記ストローク列の前記第１の部分集合のグラフ表示を１組の文字のうちの１つまたは複数の文字と比較するステップと、
少なくとも、前記グラフ表示を前記１つまたは複数の文字と比較することに基づいて前記１つまたは複数の文字をランク付けするステップであって、前記ランクが前記信頼レベルに関連付けられているステップと、
前記ランクに少なくとも部分的に基づいて、前記１つまたは複数の文字を前記第１の文字として選択するステップと
をさらに含む、請求項１に記載の方法。
【請求項４】
ランク付けするステップが、前記グラフ表示がどのくらい密接に前記１つまたは複数の文字に適合しているかに少なくとも部分的に基づいている、請求項３に記載の方法。
【請求項５】
前記第１の部分集合の前記グラフ表示を１つまたは複数の文字と比較するステップが、
前記ストローク列の前記第１の部分集合の少なくとも１つのプロパティを前記１つまたは複数の文字の対応するプロパティと比較するステップ
をさらに含み、
前記少なくとも１つのプロパティが、前記第１の部分集合の前記グラフ表示と前記１つまたは複数の文字との間で一致すること、ストロークの縦の間隔、ストロークの横の間隔、ストロークの交差、ストロークの大きさ、およびストロークの数のうちの１つを含む、請求項３に記載の方法。
【請求項６】
少なくとも前記比較に基づいて前記１つまたは複数の文字をランク付けするステップが、
前記少なくとも１つのプロパティと少なくとも第２のプロパティの加重平均を算出するステップであって、前記１つまたは複数のプロパティに加えられる重みが最小誤り率学習を用いて決定されるステップ
をさらに含む、請求項５に記載の方法。
【請求項７】
前記ストローク列の前記第２の部分集合が第２の文字に対応すると判断するステップと、
前記アプリケーションにより処理するために前記第２の文字を生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
テキスト表示部内の第１の場所に、前記第１の文字を表示するステップと、
前記テキスト表示部内の第２の場所であって前記第１の文字と前記第２の文字の関係に部分的に基づく第２の場所に、前記第２の文字を表示するステップと
をさらに含む、請求項７に記載の方法。
【請求項９】
前記第１の領域が第２の領域とほぼ同じである、請求項１に記載の方法。
【請求項１０】
前記第１の文字が前記ストローク列の前記第１の部分集合にほぼ適合する前記信頼レベルを判断するステップが、
少なくとも、前記ストローク列の少なくとも１つのストロークが前記タッチベースのインタフェースでいつ受け付けられたかに基づいて、前記ストローク列を時間順に整列させるステップと、
少なくとも第１のストロークを選択し、少なくとも前記第１のストロークを１つまたは複数の文字と比較するステップと、
前記第１のストロークと前記１つまたは複数の文字の間で比較することに少なくとも部分的に基づいて、前記１つまたは複数の文字をランク付けするステップと
をさらに含む、請求項１に記載の方法。
【請求項１１】
少なくとも前記１つまたは複数の文字の前記ランク付けに基づいて、前記１つまたは複数の文字から前記第１の文字を選択するステップ
をさらに含む、請求項１０に記載の方法。
【請求項１２】
少なくとも前記第１のストロークおよび前記第１のストロークに連続する少なくとも第２のストロークを選択し、前記第１および第２のストロークの組合せを前記１つまたは複数の文字と比較するステップと、
少なくとも、前記１つまたは複数の文字を前記第１および第２のストロークの前記組合せと比較することに基づいて、前記１つまたは複数の文字をランク付けするステップと
をさらに含む、請求項１０に記載の方法。
【請求項１３】
前記第１のストロークに対応する少なくとも１つのランク付けを、前記第１および第２のストロークの前記組合せに対応する少なくとも１つのランク付けと比較するステップと、
前記比較に少なくとも部分的に基づいて、少なくとも前記第１のストロークまたは前記第１および第２のストロークの前記組合せのうちの一方を、前記ストローク列の前記部分集合であると選択するステップと
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記第１の文字が前記ストローク列の前記第１の部分集合にほぼ適合する前記信頼レベルを判断するステップが、
決定された文字に少なくとも部分的に基づいて前記第１の文字をランク付けするステップであって、前記ランク付けが前記信頼レベルに関連付けられているステップと、
選択されたしきい値レベルより前記ランク付けが上であるときに前記第１の文字を選択するステップと
をさらに含む、請求項１に記載の方法。
【請求項１５】
以前に決定された文字に少なくとも部分的に基づいて前記第１の文字をランク付けするステップが、
前記第１の文字と前記決定された文字の組合せを言語リファレンスと突き合わせるステップと、
前記言語リファレンスにて見つけられた、前記第１の文字と前記以前に決定された文字との前記組合せにほぼ適合するものに少なくとも部分的に基づいて、前記第１の文字にランク付けを与えるステップと
をさらに含む、請求項１４に記載の方法。
【請求項１６】
前記タッチベースのインタフェース内での前記ストロークの縦の位置、前記ストロークがいつ受け付けられたかに関するタイミング情報、前記ストローク間の縦の間隔、および前記ストローク間の横の間隔に少なくとも部分的に基づいて、前記ストローク列のどのストロークが前記ストローク列の前記第１の部分集合に含まれるかを判断するステップ
をさらに含む、請求項１に記載の方法。
【請求項１７】
ストロークの前記第１の部分集合がしきい値レベル以下の数のストロークを含む、請求項１６に記載の方法。
【請求項１８】
前記ストローク列の前記第１の部分集合の前記グラフ表示を変更するステップが、
前記ストローク列の前記第１の部分集合の前記グラフ表示を退色させるステップ
をさらに含む、請求項１に記載の方法。
【請求項１９】
コンピュータ装置のタッチベースのインタフェースでストローク列に関するタッチベースの入力を受け付けるステップであって、前記タッチベースのインタフェースの第１のグラフ領域に前記ストローク列の第１の部分集合が対応し、前記第１のグラフ領域と少なくとも部分的に重なり合う前記タッチベースのインタフェースの第２のグラフ領域に前記ストローク列の第２の部分集合が対応するステップと、
前記コンピュータ装置に連結された出力装置上に前記ストローク列の前記第１の部分集合のグラフ表示を表示するステップと、
少なくとも第１の信頼しきい値により、前記ストローク列の前記第１の部分集合が第１の文字に対応すると判断するステップと、
前記ストローク列の前記第１の部分集合が前記第１の文字に対応するという前記判断に基づいて、前記ストローク列の前記第１の部分集合の前記グラフ表示を変更するステップと、
前記コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、前記第１の文字を提供するステップと
を含む動作をプログラム可能なプロセッサに実行させる指示を含む、コンピュータ読取り可能な有形の媒体。
【請求項２０】
１つまたは複数のプロセッサと、
テキストの情報に関するストローク列の、タッチベースのユーザ入力を受け付ける入力装置であって、前記ストローク列が、前記入力装置の第１の領域に対応するストロークの第１の部分集合、およびストロークの前記第１の部分集合と少なくとも部分的に重なり合う前記入力装置の第２の領域に対応するストロークの第２の部分集合を含む入力装置と、
前記ストローク列のどのストロークが前記ストローク列の前記第１の部分集合に含まれるかを判断し、前記ストローク列の前記第１の部分集合が第１の文字に対応すると判断するための手段と、
前記ストローク列の前記第１の部分集合のグラフ表示を表示する出力装置であって、前記ストローク列の前記第１の部分集合が前記第１の文字に対応するという前記判断に基づいて前記グラフ表示を変更する出力装置と
を含み、
前記出力装置が前記第１の文字をさらに出力するコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、重なり合うテキストのユーザ入力についての文字認識に関する。
【背景技術】
【０００２】
携帯電話や、携帯情報端末（ＰＤＡ）、デスクトップコンピュータ、シグネチャパッド、タブレットコンピュータ、または他の携帯型装置などのコンピュータ装置と、ユーザがタッチセンシティブな入力装置、例えばタッチセンシティブなスクリーンを介して対話することがよくある。典型的なタッチセンシティブなスクリーン（概して、本明細書では「タッチスクリーン」という）により、例えばスタイラスまたは指を用いて、ユーザはスクリーン上に筆記によりテキストを入力することが可能になる。タッチスクリーン（特により小さな装置のもの）には、書き込む領域が限られているものがある。典型的な文字認識ソフトウェアは、書かれた文字をそれらが単一のストロークで描かれたものと再定義することにより、ある文字を別の文字と区別するので、２番目の文字を書く前にユーザがタイムアウト期間を待つ必要があるか、または文字間で横にずらすことを用いる必要がある。
【発明の概要】
【０００３】
ある例では、文字を認識するための方法が提供される。その方法は、コンピュータ装置のタッチベースのインタフェースでストローク列に関するタッチベースの入力を受け付けるステップであって、タッチベースのインタフェースの第１の領域にストローク列の第１の部分集合が対応し、第１の領域と少なくとも部分的に重なり合うタッチベースのインタフェースの第２の領域にストローク列の第２の部分集合が対応するステップを含む。その方法は、コンピュータ装置に連結された出力装置上にストローク列の第１の部分集合のグラフ表示を表示するステップと、第１の文字がストローク列の第１の部分集合にほぼ適合する信頼レベルであって、少なくとも第１の信頼しきい値のレベルである信頼レベルを判断するステップとをさらに含む。また、その方法は、信頼レベルに基づいて、ストローク列の第１の部分集合のグラフ表示を変更するステップと、コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、信頼レベルが少なくとも第２の信頼しきい値のレベルであるときに第１の文字を提供するステップとを含む。
【０００４】
別の例では、プログラム可能なプロセッサにある動作を実行させる指示を含む、コンピュータ読取り可能な有形の媒体が提供される。その指示は、コンピュータ装置のタッチベースのインタフェースでストローク列に関するタッチベースの入力を受け付けるステップであって、タッチベースのインタフェースの第１のグラフ領域にストローク列の第１の部分集合が対応し、第１のグラフ領域と少なくとも部分的に重なり合うタッチベースのインタフェースの第２のグラフ領域にストローク列の第２の部分集合が対応するステップを含んでもよい。また、その指示は、コンピュータ装置に連結された出力装置上にストローク列の第１の部分集合のグラフ表示を表示するステップと、少なくとも第１の信頼しきい値により、ストローク列の第１の部分集合が第１の文字に対応すると判断するステップとを含んでもよい。また、その指示は、ストローク列の第１の部分集合が第１の文字に対応するという判断に基づいて、ストローク列の第１の部分集合のグラフ表示を変更するステップを含んでもよい。その指示は、コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、第１の文字を提供するステップを含んでもよい。
【０００５】
さらに別の例では、１つまたは複数のプロセッサを含むコンピュータ装置が提供される。テキストの情報に関するストローク列の、タッチベースのユーザ入力を受け付ける入力装置であって、ストローク列が、入力装置の第１の領域に対応するストロークの第１の部分集合、およびストロークの第１の部分集合と少なくとも部分的に重なり合う入力装置の第２の領域に対応するストロークの第２の部分集合を含む入力装置を、そのコンピュータ装置はさらに含んでもよい。ストローク列のどのストロークがストローク列の第１の部分集合に含まれるかを判断し、ストローク列の第１の部分集合が第１の文字に対応すると判断するための手段を、そのコンピュータ装置はさらに含んでもよい。ストローク列の第１の部分集合のグラフ表示を表示する出力装置であって、ストローク列の第１の部分集合が第１の文字に対応するという判断に基づいてグラフ表示を変更する出力装置を、そのコンピュータ装置はさらに含み、出力装置が第１の文字をさらに出力してもよい。
【０００６】
本開示の１つまたは複数の態様の詳細を、添付の図面と以下の明細書で述べる。本開示の他の特徴、目的および利点は、明細書、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】本開示の１つまたは複数の態様による、１つまたは複数のアプリケーションを実行しユーザ入力を受け付けることができるコンピュータ装置の例を示すブロック図である。
【図２】本開示の１つまたは複数の態様による、図１に示したコンピュータ装置の一例のさらなる詳細を示すブロック図である。
【図３】本開示の１つまたは複数の態様による、タッチ入力に対応する文字を認識するためにコンピュータ装置により実行することができる例示的な方法を示すフローチャートである。
【図４】本開示の１つまたは複数の態様による文字認識モジュールを実行するコンピュータ装置により認識することができる、タッチベースの入力のストローク列の一例を示す概念図である。
【図５Ａ】本開示の１つまたは複数の態様による文字認識モジュールにより解析することができる、ユーザにより入力されたストローク列の一例を示す概念図である。
【図５Ｂ】本開示の１つまたは複数の態様による文字認識モジュールにより解析することができる、ユーザにより入力されたストローク列の一例を示す概念図である。
【図５Ｃ】本開示の１つまたは複数の態様による文字認識モジュールにより解析することができる、ユーザにより入力されたストローク列の一例を示す概念図である。
【図５Ｄ】本開示の１つまたは複数の態様による文字認識モジュールにより解析することができる、ユーザにより入力されたストローク列の一例を示す概念図である。
【発明を実施するための形態】
【０００８】
通例に従って、本明細書に記載する色々な特徴は一律の縮尺に従わずに描いており、本開示に関連する特徴を強調するために描いている。図面と本文の全体を通して、同様の参照文字は同様の要素を示す。
【０００９】
本開示の技法により、少なくとも部分的に互いの上に重ねて書かれた手書きの文字を、コンピュータ装置が認識することが可能になる。コンピュータ装置のユーザが、入力（例えば、タッチ入力）を介して、１つまたは複数のストロークで構成される手書きの文字を入力する。文字は、これらに限定されないが、字、数、または他の記号などの、情報を伝えるいかなるマーキングでもよい。
【００１０】
文字入力の間にタイムアウトを待つ必要なしに、かつ、別の文字について入力する前に、文字が完成したことを示すボタンを選択するかまたは別の入力を与える必要なしに、スクリーンのほぼ同じ領域の上に（すなわち、互いの上に）、ユーザは、文字または単語の一部を連続的に書くことができる。ユーザ入力に対応するグラフの表示（本明細書で「インク」という）をスクリーン上に表示してもよい。
【００１１】
コンピュータ装置は、文字を互いに自動的に分離する文字認識モジュールを有してもよい。潜在的に認識された文字は、その潜在的に認識された文字がユーザ入力に対応する精度のレベルを示す信頼レベルを有してもよい。第１の信頼しきい値より高い信頼レベルで文字が認識されたら、ユーザ入力から文字が認識されたことを示すプロパティで、その認識された文字に対応するユーザ入力のグラフ表示を表示してもよい（例えば、少なくとも一部を退色させる）。第２の信頼しきい値より高い信頼レベルで文字が認識されたら、別のアプリケーションにより用いるために、認識モジュールは、その入力に対応する文字を生成、識別、または提供してもよい。第２の信頼レベルより高い信頼レベルで文字が認識されたときは、認識された文字のグラフ表示を表示部から除去してもよい。いくつかの例では、コンピュータ装置は、テキストとして認識された文字を表示する。本明細書に記載する技法は、個々の文字以外の、例えば単語または文ごとでも適用することができる。
【００１２】
図１は、本開示の１つまたは複数の態様による、１つまたは複数のアプリケーション（例えば、テキストエントリアプリケーション８）を実行し、ユーザ入力１８を受け付けることができるコンピュータ装置２の例を示すブロック図である。いくつかの例では、コンピュータ装置２は、携帯型のコンピュータ装置（例えば、携帯電話や、ネットブック、ラップトップ、携帯情報端末（ＰＤＡ）、タブレット装置）、もしくは据置き型のコンピュータ（例えば、デスクトップコンピュータ）でもよいし、それらを含んでもよいし、またはそれらの一部でもよいし、あるいは、シグネチャパッドなどの別のコンピュータ装置でもよい。有線ネットワークまたは無線ネットワークといったネットワークにコンピュータ装置２を接続してもよい。コンピュータ装置２の一例を、以下で述べる図２でより十分に記載する。
【００１３】
コンピュータ装置２は、例えば身振りを検出するなどの、ユーザ１４からのユーザ入力１８を受け付けることが可能な、プレゼンスセンシティブ（ｐｒｅｓｅｎｃｅ−ｓｅｎｓｉｔｉｖｅ）な装置などの入出力（「Ｉ／Ｏ」）装置１２を含んでもよい。ある例では、Ｉ／Ｏ装置１２は、ユーザ１４からのユーザ入力１８を受け付けることが可能なタッチセンシティブな装置（例えば、タッチスクリーンや、トラックパッド、トラックポイントなど）であり、ユーザ入力１８はタッチ入力である。ある例では、Ｉ／Ｏ装置１２は、Ｉ／Ｏ装置１２上でタッチされた位置の座標に対応する１つまたは複数の信号を生成してもよい。これらの信号は、コンピュータ装置２の構成要素（例えば、図１のテキストエントリアプリケーション８や、図２のプロセッサ３０またはオペレーティングシステム４４）への情報として供給してもよい。また、Ｉ／Ｏ装置１２は、ユーザ１４に情報を表示するか、またはその他の方法（例えば、聴覚）で情報を出力してもよい。例えば、Ｉ／Ｏ装置１２は、文字２２またはカーソル２４を表示してもよい。他の例では、Ｉ／Ｏ装置１２は、映像または他のグラフ情報を表示してもよい。Ｉ／Ｏ装置１２は多数の形態の出力情報をユーザ１４に提供することができ、それらについて図２でさらに述べる。
【００１４】
いくつかの例では、Ｉ／Ｏ装置１２は、タッチベースのインタフェース４と表示装置２０を含んでもよい。いくつかの例では、タッチベースのインタフェース４と表示装置２０は、単一の装置、例えばタッチスクリーンに一体化してもよい。別の例では、タッチベースのインタフェース４と表示装置２０は別個の装置でもよく、例えば、タッチベースのインタフェース４はタッチパッドまたはトラックポイントで、表示装置２０は液晶ディスプレイ（「ＬＣＤ」）でもよい。
【００１５】
ユーザ１４は、Ｉ／Ｏ装置１２上でユーザ入力１８を行うことにより、Ｉ／Ｏ装置１２（例えば、タッチセンシティブなスクリーン）と対話することができる。例えば、ユーザ１４は、Ｉ／Ｏ装置１２上にユーザ入力１８を手書きすることができる。ユーザ１４が筆跡を入力するとき、ユーザ入力１８は、活字体、筆記体、またはいかなる他の筆記の形態でもよい。
【００１６】
ユーザ入力１８は、ユーザ１４が行う１つまたは複数の身振りを含んでもよい。ユーザ１４は、１つまたは複数の指かまたはスタイラス１５などの別の道具をＩ／Ｏ装置１２と接触させることによりユーザ入力１８を行ってもよく、Ｉ／Ｏ装置１２はタッチセンシティブなスクリーンでもよい。スタイラス１５は、ユーザ１４がタッチベースのインタフェース４に手書きするのを手助けするいかなる装置でもよい。ある例では、ユーザ１４は、タッチベースのインタフェース４に接触させながら１つまたは複数の指を動かしてもよい。ユーザ入力１８は、手書きであり自然言語からの文字に関連したものでもよい。自然言語からの文字は、独立して、または他の文字との組合せで意味を伝えることが可能な数、字、記号、もしくは他のしるしを含んでもよい。ある例では、１組の文字が自然言語からの複数の文字を含む。
【００１７】
例えば、ユーザ１４は、１つまたは複数のストロークでタッチベースのインタフェース４に手書きしてもよい。本明細書で用いるときは、ストロークとは、タッチベースのインタフェース４により受け付けられる、途切れのない単一の動きのいかなる部分でもよい。説明のために、本明細書では、ストロークが単一の動きまたは単一の文字の場合について大半を記載するが、ストロークは動きの全体でもよく、または全体の動きの断片もしくは一部分でもよく、文字の一部、文字全体、もしくは１つより多くの文字でもよいことが理解されよう。図１の例では、ユーザ１４はタッチベースのインタフェース４に「Ｈｅｌｌｏ」の単語を手書きし始める。そうするために、ユーザ１４はタッチベースのインタフェース４を介してストローク列１９−１〜１９−４を手書きするであろう。ユーザ１４は、「Ｈ」の左側に対応する縦の線について第１のストローク１９−１を手書きし、次いで、「Ｈ」の横の棒について第２のストローク１９−２を書き始める。ユーザ１４は、もう１つの縦の線である第３のストローク１９−３を書くことにより「Ｈ」を完成させる。次に、ユーザ１４は、「Ｈｅｌｌｏ」の中の「ｅｌ」についてストローク１９−４を筆記する。「ｅ」はストローク１９−４の第１の部分に対応し、「ｌ」はストローク１９−４の第２の部分に対応する。
【００１８】
Ｉ／Ｏ装置１２は、ユーザ入力モジュール６に伝送されるユーザ入力１８に対応する信号を生成してもよい。ユーザ入力モジュール６は、ユーザ１４から受け付けたユーザ入力１８を処理してもよい。場合によっては、ユーザ入力モジュール６は、例えば使うのにより便利な形態にユーザ入力１８を変換するなどの、ユーザ入力１８に対する追加の処理を行ってもよい。いくつかの例では、ユーザ入力モジュール６は、ユーザ入力１８のグラフ表示を表示する信号を表示装置２０に供給する。例えば、ユーザ１４がタッチベースのインタフェース４にストローク１９−１〜１９−４を筆記するときに、表示装置２０はユーザ入力１８に対応するインクを表示する。場合によっては、ユーザ入力モジュール６は、ユーザ入力１８に対応する信号を、テキストエントリアプリケーション８などのアプリケーションか、またはコンピュータ装置２内の別の構成要素に伝送してもよい。テキストエントリアプリケーション８は、例えば、ワード処理アプリケーションや、インターネットブラウザ、テキストのユーザ入力で制御することができるアプリケーションなどの、テキストのユーザ入力を受け入れるいかなるアプリケーションでもよい。いくつかの例では、ユーザ入力モジュール６は、ユーザ入力１８の持続時間か、または１つのストロークを受け付けてから別のストロークを受け付ける間のいかなる持続時間を判断してもよい。例えば、入力モジュール６は、例えば単一の文字と単語を区別するために、２つのストロークの間の期間を測定してもよい。
【００１９】
いくつかの例では、テキストエントリアプリケーション８は文字認識モジュール１０を含んでもよい。文字認識モジュール１０は、ユーザ入力１８に対応する信号に対して認識動作を行うことができる。認識動作により、少なくともユーザ入力１８の一部分に対応する文字（例えば文字２２）を判断することができる。ある例では、いずれかの部分のユーザ入力１８が１つまたは複数の文字に対応するかどうかを判断するために、認識動作によりユーザ入力１８を解析してもよい。文字認識モジュール１０は、ユーザ入力１８の一部分に対する潜在的な文字の適合相手に、スコアまたはランク付けを割り振ってもよい。スコアまたはランク付けは、ストロークまたはストローク列が特定の文字に対応することがどれくらい確からしいかの尺度である。文字認識モジュール１０は、スコアまたはランク付けだけでなく他の因子にも少なくとも部分的に基づいて、潜在的な文字の適合相手から文字を選択してもよい。ある例では、文字認識モジュール１０は、ユーザ入力１８の一部分に対応する文字を、選択されたしきい値レベルよりその文字のスコアが上であるときに選択してもよい。いくつかの例では、文字認識モジュール１０は、ユーザ入力モジュール６のうちのいくつかの、またはすべての機能を実行することができる。いくつかの例示的な文字認識の方法を、本明細書で記載する。他の例では、文字認識モジュール１０は、いかなる方法を付加的に行ってもよく、または今知られているかもしくは後に開発される他の文字認識動作および方法のいかなる特徴を有してもよい。本明細書に記載する技法は、概して文字に着目して述べるが、単語、文、または文字の他のまとまりにも適用することができる。例えば、文字認識モジュール１０は、他の単語または文字と部分的に重なり合う１つまたは複数の単語を認識してもよい。
【００２０】
例えば、文字認識モジュール１０は、ユーザ入力１８を解析するときに、参照データベース１１にアクセスしてもよい。参照データベース１１は、文字の表、辞書、および／または文法リファレンスを含んでもよい。例えば、文字認識モジュール１０は、ユーザ入力１８に少なくとも部分的に基づいて、参照データベース１１内で照合を行ってもよく、その際、参照データベース１１は、文字と１つまたは複数のストロークとをマッピングする表を含む。別の例では、文字認識モジュール１０は、参照データベース１１内で潜在的な単語の照合を行って、以前に認識された文字に対するその文字の関係に少なくとも部分的に基づいて、文字を認識するのを手助けしてもよい。例えば、文字認識モジュール１０が以前に５つの文字Ｏ、Ｒ、Ａ、ＮおよびＧを認識したならば、「ＯＲＡＮＧＥ」とつづる６番目の文字に先行する「ＯＲＡＮＧ」に基づいて、その６番目の文字が字Ｅである確率がより高い。したがって、文字認識モジュール１０は、他の文字に関するランクより、６番目の文字に関してその字Ｅに高いランクを与えてもよい。同様に、文字認識モジュール１０は、参照データベース１１内の文法リファレンスを用いて、文法規則に少なくとも部分的に基づいて文字または単語をランク付けしてもよい。文字認識モジュール１０は、そのストロークの部分集合と別の文字の関係（例えば、ストロークの部分集合が、単語内の次の字であるかまたは文の次の単語である）に基づいて、ストロークの部分集合の文字をさらに判断してもよい。
【００２１】
図１の例では、文字認識モジュール１０は、字「Ｈ」に対応する認識された入力２６として示したストローク１９−１〜１９−３を認識している。文字認識モジュール１０は、認識された入力２６に対応する信号を生成し、それをテキストエントリアプリケーション８またはコンピュータ装置２内の別の構成要素もしくはモジュールに供給してもよい。例えば、文字認識モジュール１０は、テキストエントリアプリケーション８に、ユーザ１４が字「Ｈ」を入力したことを示す信号を供給してもよい。テキストエントリアプリケーション８またはコンピュータ装置２によりさらに処理するために、テキストエントリアプリケーション８は字「Ｈ」に対応する信号を生成してもよい。ある例では、テキストエントリアプリケーション８は、認識された入力２６を表示装置２０上に表示する。例えば、表示装置２０は、認識された入力２６を表す文字２２を、カーソル２４の場所に表示してもよい。また、文字２２が加えられたことに起因して、カーソル２４または他の任意のテキストが位置を変えてもよい。
【００２２】
別の例では、文字認識モジュール１０は、Ｉ／Ｏ装置１２に指示して、以前に表示された入力２６の任意のグラフ表示を中止および／または修正させる。すなわち、文字認識モジュール１０がユーザ入力１８の部分を認識したら、表示装置２０は、認識された入力２６に対応するインクを変更してもよい。例えば、認識された入力２６に対応するインクを退色させてもよい。別の例では、表示装置２０は、認識された入力２６を、異なる場所に、異なる色で、異なるフォントで表示してもよく、または、フォントの質（例えば、太字や、下線、イタリック）もしくは大きさを変えてもよく、または、認識された入力２６が認識されたらインクのいかなる他の属性を変更してもよい（例えば、認識された入力２６を輪郭として表示する）。他の例では、ストロークが正確に認識されたという信頼レベルに少なくとも部分的に基づいて表示装置２０をクリアするために、より古いストロークを時間とともにゆっくり退色させるか、横にずらすか、大きさを変えるか、またはその他の方法で変えてもよい。ある例では、少なくとも第２のしきい値レベルより高い信頼レベルで認識されたストロークは、表示装置２０から完全に退色する。
【００２３】
図１に示した例では、文字認識モジュール１０は、別の部分のユーザ入力１８、すなわち、認識されていない入力２８をまだ認識していない。表示装置２０は、認識されていない入力２８のグラフ表示を（例えば、インクで）表示してもよい。ある例では、表示装置２０は、認識された入力２６とは異なる様式のインク（例えば、異なる色や、異なる線の太さ、異なる透明度など）で、認識されていない入力２８を表示してもよい。認識されていない入力２８を少なくとも第１のしきい値の信頼レベルにより文字認識モジュール１０が認識したら、認識された入力２６が表示されたときに、表示装置２０は認識されていない入力２８を表示してもよい。
【００２４】
ある例では、コンピュータ装置２は、グラフ領域が限られたタッチベースのインタフェース４をもつ携帯型の装置である。本明細書に記載する技法により、ユーザ１４は、ユーザ入力を手書きするためにより効率的にタッチベースのインタフェース４を用いることが可能になる。他の例では、コンピュータ装置２はデスクトップマシンである。そうした例では、ユーザ１４は、例えばウェブページのフィールドに入力するために、筆跡を入力することができる。
【００２５】
図２は、図１に示したコンピュータ装置２の一例のさらなる詳細を示すブロック図である。図２は、コンピュータ装置２のある特定の例だけを示しており、他の例ではコンピュータ装置２の多くの他の実施形態を用いることができる。
【００２６】
図２の具体例に示すように、コンピュータ装置２は、１つまたは複数のプロセッサ３０と、メモリ３２と、ネットワークインタフェース３４と、１つまたは複数の記憶装置３６と、１つまたは複数の入力装置３８と、１つまたは複数の出力装置４０と、１つまたは複数の電池または他の電源４２とを含む。コンピュータ装置２はオペレーティングシステム４４も含み、オペレーティングシステム４４は、コンピュータ装置２により実行可能なユーザ入力モジュール６を含んでもよい。コンピュータ装置２は、１つまたは複数のアプリケーション４６と、テキストエントリアプリケーション８とを含んでもよく、テキストエントリアプリケーション８は、コンピュータ装置２により実行可能な文字認識モジュール１０を含んでもよい。オペレーティングシステム４４、アプリケーション４６およびテキストエントリアプリケーション８も、コンピュータ装置２により実行可能である。構成要素３０、３２、３４、３６、３８、４０、４２、４４、４６、６、８および１０のそれぞれは、構成要素間で通信するために、（物理的に、通信可能なように、かつ／または適切に作用するように）相互に接続してもよい。
【００２７】
プロセッサ３０は、コンピュータ装置２で実行するための機能を実現しかつ／または指示を処理するように構成してもよい。プロセッサ３０は、メモリ３２に蓄積された指示または記憶装置３６に蓄積された指示を処理することができる。
【００２８】
メモリ３２は、動作中にコンピュータ装置２内に情報を蓄積するように構成してもよい。いくつかの例では、一時的でないかまたは有形のコンピュータ読取り可能な記憶媒体として、メモリ３２を記載することができる。いくつかの例では、メモリ３２は一時的なメモリであり、これはメモリ３２の主な目的が長期間の記憶ではないことを意味する。また、いくつかの例では、揮発性メモリとしてメモリ３２を記載することができ、これは、コンピュータの電源を切ったときに、蓄積された内容をメモリ３２が維持しないことを意味する。揮発性メモリの例には、ランダムアクセスメモリ（ＲＡＭ）や、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、当技術分野で知られている他の形態の揮発性メモリが含まれる。いくつかの例では、メモリ３２を用いて、プロセッサ３０により実行するためのプログラム指示を蓄積してもよい。コンピュータ装置２上で動くソフトウェアまたはアプリケーション（例えば、１つまたは複数のアプリケーション４６）によりメモリ３２を用いて、プログラムの実行中に一時的に情報を蓄積してもよい。
【００２９】
記憶装置３６も、１つまたは複数の一時的でないかまたは有形のコンピュータ読取り可能な記憶媒体を含んでもよい。メモリ３２より大量の情報を蓄積するように、記憶装置３６を構成してもよい。さらに、情報を長期間記憶するように、記憶装置３６を構成してもよい。いくつかの例では、記憶装置３６は不揮発性の記憶要素を含んでもよい。そうした不揮発性の記憶要素の例は、磁気ハードディスクや、光ディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、または電気的にプログラム可能なメモリ（ＥＰＲＯＭ）もしくは電気的に消去可能かつプログラム可能なメモリ（ＥＥＰＲＯＭ）の形態を含んでもよい。
【００３０】
コンピュータ装置２は、ネットワークインタフェース３４も含む。コンピュータ装置２は、ネットワークインタフェース３４を利用して、１つまたは複数の無線ネットワークなどの１つまたは複数のネットワークを介し、外部装置と通信してもよい。ネットワークインタフェース３４は、イーサネット（登録商標）カード、光送受信器、無線周波数送受信器、または情報を送受信することができる他の任意の種類の装置などの、ネットワークインタフェースカードでもよい。そうしたネットワークインタフェースの例は、携帯型のコンピュータ装置での無線通信の、ブルートゥース（登録商標）や、３Ｇ、ＷｉＦｉ（登録商標）だけでなく、ＵＳＢを含んでもよい。そうした無線ネットワークの例は、ＷｉＦｉ（登録商標）や、ブルートゥース（登録商標）、３Ｇを含んでもよい。いくつかの例では、コンピュータ装置２は、ネットワークインタフェース３４を利用して、サーバや、携帯電話、または他のネットワーク接続されたコンピュータ装置などの外部装置（図示せず）と無線通信してもよい。
【００３１】
コンピュータ装置２は、１つまたは複数の入力装置３８も含んでもよい。触覚、音声または映像の入力を介してユーザから入力を受け付けるように、入力装置３８を構成してもよい。入力装置３８の例は、タッチセンシティブなスクリーンや、マウス、キーボード、音声応答システム、映像カメラ、またはユーザからの命令を検出するためのいかなる他の種類の装置を含んでもよい。
【００３２】
コンピュータ装置２、例えばＩ／Ｏ装置１２は、１つまたは複数の出力装置４０も含んでもよい。触覚、音声または映像の出力を用いて出力をユーザに提供するように、出力装置４０を構成してもよい。出力装置４０は、タッチセンシティブなスクリーンや、サウンドカード、ビデオグラフィックスアダプタカード、または人間もしくは機械が理解できる適切な形態に信号を変換するためのいかなる他の種類の装置を含んでもよい。出力装置４０の別の例は、スピーカや、ブラウン管（ＣＲＴ）モニタ、液晶ディスプレイ（ＬＣＤ）、またはユーザに出力を提供することができるいかなる他の種類の装置を含んでもよい。
【００３３】
コンピュータ装置２は、１つまたは複数の電池または電源４２を含んでもよく、それらは充電可能でありコンピュータ装置２に電力を供給することができる。１つまたは複数の電源４２は、ニッケル・カドミウムや、リチウム・イオン、またはいかなる他の適当な材料でできた電池でもよい。１つまたは複数の電源４２は充電可能でもよく、かつ／または装置２が電源接続を介して電力を供給することができる。
【００３４】
コンピュータ装置２はオペレーティングシステム４４を含んでもよい。オペレーティングシステム４４は、コンピュータ装置２の構成要素の動作を制御することができる。例えば、オペレーティングシステム４４により、アプリケーション４６またはテキストエントリアプリケーション８がプロセッサ３０、メモリ３２、ネットワークインタフェース３４、記憶装置３６、入力装置３８、出力装置４０および電池４２と対話するのを容易にすることができる。
【００３５】
オペレーティングシステム４４は、ユーザ入力モジュール６を付加的に含んでもよい。ユーザ入力モジュール６は、オペレーティングシステム４４の一部として実行してもよい。他の場合には、コンピュータ装置２によりユーザ入力モジュール６を実装または実行してもよい。ユーザ入力モジュール６は、入力（例えば、１つまたは複数の入力装置３８を介してユーザ１４から受け付けたユーザ入力１８）を処理することができる。あるいは、ユーザ入力モジュール６は、プロセッサ３０や、メモリ３２、ネットワークインタフェース３４、記憶装置３６、１つまたは複数の出力装置４０、電池４２またはオペレーティングシステム４４などの構成要素からの入力を受け付けてもよい。場合によっては、ユーザ入力モジュール６は、ユーザ入力１８に対して追加の処理を行ってもよい。他の場合には、ユーザ入力モジュール６は、アプリケーション（例えば、アプリケーション４６またはテキストエントリアプリケーション８）に、またはコンピュータ装置２内の他の構成要素に、入力を伝送してもよい。
【００３６】
いかなるアプリケーション（例えば、コンピュータ装置２内に実装される、またはコンピュータ装置２により実行されるアプリケーション４６またはテキストエントリアプリケーション８）も、コンピュータ装置２の構成要素（例えば、プロセッサ３０、メモリ３２、ネットワークインタフェース３４、および／または記憶装置３６）内に実装もしくはそれらの中に含めることができ、それらにより動作可能であり、それらにより実行でき、かつ／または、適切に作用するように／通信可能なようにそれらに連結することができる。ある例では、文字認識モジュール１０は、コンピュータ装置２から物理的に分かれたサーバ上で実行され、ネットワークインタフェース３４を介してネットワーク接続によりコンピュータ装置２に接続される。
【００３７】
図３は、本開示の１つまたは複数の態様による、タッチ入力に対応する文字を認識するためにコンピュータ装置により実行することができる例示的な方法５０を示すフローチャートである。例えば、図１または図２に示したコンピュータ装置２により、方法５０を行うことができる。
【００３８】
方法５０は、コンピュータ装置のタッチベースのインタフェースでストローク列に関するタッチベースの入力を受け付けるステップであって、タッチベースのインタフェースの第１のグラフ領域にストローク列の第１の部分集合が対応し、第１のグラフ領域と少なくとも部分的に重なり合うタッチベースのインタフェースの第２のグラフ領域にストローク列の第２の部分集合が対応するステップ（５２）を含む。これらのストロークについては、図４および図５に関して以下でより詳細に述べる。方法５０は、コンピュータ装置に連結された出力装置上にストローク列の第１の部分集合のグラフ表示を表示するステップ（５３）をさらに含む。
【００３９】
方法５０は、第１の文字がストローク列の第１の部分集合にほぼ適合する信頼レベルであって、少なくとも第１の信頼しきい値のレベルである信頼レベルを判断するステップ（５４）をさらに含む。例えば、文字認識モジュール１０は、ストローク列の第１の部分集合を解析して、ストロークの第１の部分集合が潜在的な文字に対応するかどうかを判断してもよい。文字認識モジュール１０は、ストロークの第１の部分集合を、例えば参照データベース１１に蓄積された１組の文字と比較してもよく、それぞれの文字または文字の組の部分集合に対し、その文字がどれくらいの確からしさでストロークの第１の部分集合に適合するかに少なくとも部分的に基づいて、ランクまたはスコアを割り振ってもよい。そのランクまたはスコアは、信頼レベルに関連付けられる。
【００４０】
ある例では、文字認識モジュール１０は、第１の文字との一致の尺度を判断してもよい。例えば、第１の文字の形状がストロークの第１の部分集合の形状にほぼ適合するときは、一致度について、あまり一致していない文字に対し、第１の文字を相対的に高くランク付けまたはスコア付けしてもよい。第２の文字の形状がストロークの第１の部分集合の形状にほぼ適合するのではないときは、一致度について、第２の文字を高くランク付けまたはスコア付けしなくてもよい。この例では、ストロークの第１の部分集合に潜在的に適合するものとして、第１の文字に、第２の文字より高いランク付けまたはスコアを与えてもよい。
【００４１】
方法５０は、信頼レベルに基づいて、ストローク列の第１の部分集合のグラフ表示を調整する（例えば、グラフ表示を部分的に退色させる）ステップ（５６）をさらに含んでもよい。ある例では、信頼レベルがより大きいことに基づいて、ストローク列の第１の部分集合のグラフ表示をより広い範囲で調整してもよい。別の例では、第１の文字がストローク列の第１の部分集合に対応する信頼レベルが第１の信頼しきい値と少なくとも等しいか、またはそれより高くなるまで、グラフ表示を退色させなくてもよい。ある例では、信頼レベルに基づいてグラフ表示を退色させることにより、さらなるユーザ入力のために出力装置をクリアする手助けとなる。ある例では、退色させることを単語レベルで行ってもよく、例えば、単語全体をグループとして退色させてもよい。いくつかの例では、タイムアウト期間に基づいて退色させる（例えば、エントリの後、特定の時間でストロークを退色させる）ように決定してもよい。いくつかの例では、第１のストロークの後にしきい値の数のストロークが入力されたら、第１のストロークを退色させてもよい。
【００４２】
また、方法５０は、コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、信頼レベルが少なくとも第２の信頼しきい値のレベルであるときに第１の文字を提供するステップ（５８）を含んでもよい。ある例では、第２の信頼しきい値は、第１のストローク列が第１の文字に対応することを示す選択されたしきい値である。ある例では、第２の信頼しきい値は、第１の信頼しきい値より高い精度を示してもよい。別の例では、第２の信頼しきい値は、第１の信頼しきい値とほぼ等しくてもよい。
【００４３】
ユーザ入力１８を認識するために文字認識モジュール１０が用いることができる他の因子には、２つのストローク間の縦の間隔（例えば、第１の方向における２つのストローク間の距離）や、２つのストローク間の横の間隔（例えば、第１の方向に直交する第２の方向における２つのストローク間の距離）、ストロークの横もしくは縦の位置（例えば、タッチスクリーン上のどこにストロークが位置するか）、ストロークの交差（例えば、あるストロークが別のストロークとどこで交差するか）、ストロークの部分集合におけるストロークの数、ストロークが入力された時間的な順序、単一のストローク中の異なる文字の組合せ、以前に認識された文字や単語もしくは文、または、文字認識に用いられる他の任意の適当な因子が含まれる。さらに、ストロークのセグメント化は、上記で列挙したどの因子に基づいてもよい。例えば、ユーザ１４がタッチベースのインタフェース４の第１の側で筆記を始め、その反対側に到達し、次いで第１の側で再び筆記を始めたときは、第１の側でのストロークの重なり合いを文字間のセグメント化で示してもよい。
【００４４】
文字認識モジュール１０は、任意の個数の前述の因子に少なくとも部分的に基づいて、文字を選択してもよい。ある例では、文字認識モジュール１０は、それぞれの因子に重みを割り振ってもよく、その因子の加重平均に少なくとも部分的に基づいて文字を選択してもよい。ある例では、文字認識モジュール１０またはコンピュータ装置２内の他のアプリケーションは、最小誤り率学習（ｍｉｎｉｍｕｍ  ｅｒｒｏｒ  ｒａｔｅ  ｔｒａｉｎｉｎｇ）（「ＭＥＲＴ」）を用いて、特定の因子の重みを割り振るかまたは修正してもよい。ＭＥＲＴは、システムの性能を測定するための自動化された評価基準を学習中に直接最適化できるように、線形モデルで割り振られた重みを推定するのに用いられる方法である。言い換えると、ユーザ１４がコンピュータ装置２を用いるときに、コンピュータ装置２は、ＭＥＲＴを用いて、ユーザ１４の筆跡を認識する精度を改善してもよい。ある例では、ストロークを、その信頼レベルに基づいて部分的に退色させることにより、ユーザ１４が文字認識モジュール１０に学習させるのを手助けしてもよい。いくつかの例では、コンピュータ装置２の学習モード中に、ＭＥＲＴ技法をコンピュータ装置２に適用する。他の例では、ユーザ１４がユーザ入力１８を入力するときに、ＭＥＲＴ技法を適用する。文字認識モジュール１０により認識された文字に対してユーザ１４が行う任意の訂正を用いて、文字認識モジュール１０の精度を改善してもよい。
【００４５】
文字が認識されたら、方法５０は、コンピュータ装置上で動作する、タッチベースの入力からの文字を処理するように設計されているアプリケーションにより処理するために、第１の文字を識別または提供してもよい（５８）。例えば、文字認識モジュール１０は、テキストエントリアプリケーション８により処理する（例えば、カーソル２４で第１の文字を表示する）ために、第１の文字に対応する信号を生成する。別の例では、テキストエントリアプリケーション８は、制御入力として、第１の文字に対応する信号を用いてもよい。
【００４６】
図４は、本開示の１つまたは複数の態様による文字認識モジュールを実行するコンピュータ装置により認識することができる、タッチベースの入力のストローク列１９−１〜１９−４の一例を示す概念図である。例えば、コンピュータ装置２のタッチスクリーン６０を用いて、ユーザ１４がストローク列１９−１〜１９−４を手書きした。タッチスクリーン６０は、ストローク列１９−１〜１９−４のグラフ表示を表示してもよい。
【００４７】
ストローク列１９−１〜１９−４は、ストローク１９−１からストローク１９−４まで、時間順で入力されたようである。図４に示すように、ストローク列の第１の部分集合として、すなわち、ストローク１９−１〜１９−３として、タッチスクリーン６０の第１のグラフ領域６２−１に、ユーザ１４は字「Ｈ」を書いたようである。ユーザ１４は、ストローク列の第１の部分集合の上に重ねて筆記を続けることができ、例えば、ストローク１９−４がストローク１９−３と重なり合う。ストローク１９−４はタッチスクリーン６０の第２のグラフ領域６２−２に書かれ、第２のグラフ領域６２−２は第１のグラフ領域６２−１と重なり合う。文字認識モジュール１０は、少なくとも文字の一部分が互いに重なり合うにもかかわらず、ユーザ１４により入力された文字を認識することができる。これにより、ユーザ１４は、以前に書かれたストロークを文字認識モジュール１０が認識するのを待つことなく、タッチスクリーン６０の領域を再び用いることが可能になる。
【００４８】
文字認識モジュール１０は、表示装置２０に指示して、正確な判断をする確率に少なくとも部分的に基づきストロークの部分集合の表示を変更する（例えば、ストロークの部分集合の表示を退色させる）ようにしてもよい。例えば、より確からしくストロークの部分集合が正確に認識されるほど、インク表示の影をより明るくする。ある例では、ランク付けまたはスコアがしきい値信頼レベルより高い文字にストロークの部分集合が対応すると文字認識モジュール１０が判断したら、表示装置２０は、それらのストロークの表示をやめる（例えば、認識された文字に対応するストロークを完全に退色させてもよい）。
【００４９】
また、文字認識モジュール１０は、認識されていない入力２８などの単一のストロークの中で、２つ以上の文字を検出してもよい。ユーザ入力１８が文字間でつながっているとき（例えば、筆記体で手書きされているとき）は、文字認識モジュール１０はある文字と別の文字の境界を判断してもよい。例えば、文字認識モジュール１０は、本明細書に記載した技法に少なくとも部分的に基づいて、ストローク１９−４内の「ｅ」と「ｌ」を区別してもよい。
【００５０】
図５Ａ〜図５Ｄは、本開示の１つまたは複数の態様による文字認識モジュールにより解析することができる、ユーザにより入力されたストローク列７０の一例を示す概念図である。図５Ａ〜図５Ｄに示した例では、ストローク７０−１〜７０−９を含むストローク列７０の形で、ユーザ１４が「Ｈｅｌｌｏ」を書いた。図５Ａ〜図５Ｄでは、分かりやすくするためにストローク７０を横にずらして示しているが、ストローク７０−１〜７０−９のうちのいくつかを他のストローク７０−１〜７０−９の上に書いてもよい（すなわち、いくつかのストローク７０−１〜７０−９が重なり合ってもよい）ことが理解されよう。
【００５１】
ある例では、文字認識モジュール１０は、ユーザ１４がどの文字を入力することを意図していたかを判断するために、ストローク列７０の様々な部分集合を考慮してもよい。例えば、ユーザ１４は、タッチベースのインタフェース４を介してコンピュータ装置２に時間順でストローク列７０を入力する。図５Ａ〜図５Ｄは、どのストロークがストロークの第１の部分集合内のものかを、その部分集合の中のストロークから文字が認識されるまで時間順の異なるストロークの部分集合を調べることに少なくとも部分的に基づいて、文字認識モジュール１０が判断できるやり方の一例を示す。
【００５２】
図５Ａでは、文字認識モジュール１０は、それぞれのストローク７０−１〜７０−９を個別に考慮してもよい。すなわち、ストローク列７０の１つの部分集合は、単一のストロークを含む。文字認識モジュール１０は、それぞれのストローク７０−１〜７０−９を見て、文字に対するそれぞれのおおよその適合に関してスコアを割り振ってもよい。例えば、文字認識モジュール１０は、字「Ｌ」および「Ｉ」の大文字と小文字ならびに数１の中で、ストローク７０−１、７０−３、７０−７および７０−８にほぼ適合するものを見つけてもよい。そうした例では、ユーザ入力１８が先に全く認識されていなくても、文字認識モジュール１０は、ストローク列７０−１〜７０−９に少なくとも部分的に基づいて、潜在的に適合するものにスコアまたはランクを割り振ってもよい。以前に認識された文字がある例では、文字認識モジュール１０は、以前に認識された文字に少なくとも部分的に基づいて、付加的にスコアを割り振ってもよい。
【００５３】
その上、例えば、文字認識モジュール１０は、ストローク７０−２、７０−５および７０−６を場合によってはダッシュ「−」または下線「＿」であるとみなし、それに応じてこれらの潜在的な結果をランク付けしてもよい。しかしながら、ストローク７０−６の縦の配置が相対的に高いため、いくつかの例では、文字認識モジュール１０は「＿」に相対的に低いスコアを与えてもよい。ストローク７０−４は大文字の字「Ｌ」とほぼ適合しており、高いランク付けを割り振ってもよい。同様に、ストローク７０−９は、大文字もしくは小文字の字「Ｏ」または数「０」の可能性がある。
【００５４】
文字認識モジュール１０は、１つまたはいかなる文字にそれらが正確に適合する可能性に基づいて（例えば、以前のまたは後続するストロークの部分集合や、縦の位置、大きさなどに基づいて）、これらの潜在的な適合相手にランク付けまたはスコア付けをしてもよい。高いランク付けは、その文字が意図された文字であることが基準線または平均より確からしいことを示すランク付けでもよい。比較的に、低いランク付けは、その文字が意図された文字であることが基準線または平均より確からしくないことを示すランク付けでもよい。
【００５５】
また、文字認識モジュール１０は、図５Ｂのように２つのストロークをもつストローク７０の部分集合を考慮してもよい。いくつかの例では、ストローク７０の部分集合は、連続するストローク（すなわち、時間順に隣接して起こったストローク）を含む。他の例では、ストローク７０の部分集合は、連続していないストロークを含む（例えば、ユーザ１４は単語の他の字を仕上げた後で「ｉ」に点を打つかも知れないため、字「Ｉ」に対応するストロークの部分集合は連続していない可能性がある）。説明のために、図５Ａ〜図５Ｄは、連続するストロークを含むストローク７０の部分集合を示す。
【００５６】
文字認識モジュール１０は、ストロークの部分集合におけるそれぞれのストロークの組合せを単一の文字とみなすこともある。例えば、図５Ｂでは、ストローク７０−２および７０−３ならびに７０−３および７０−４を含むストローク７０の部分集合は、場合によっては字「ｔ」または記号「＋」の可能性があり、文字認識モジュール１０によりランク付けまたはスコア付けしてもよい。あるストローク７０の部分集合、例えば、７０−３および７０−４ならびに７０−７および７０−８は、潜在的に適合するものがないかも知れない。そうした例では、それらのストロークの部分集合には低いランク付けもしくはスコアを割り振るか、または全く割り振らない。
【００５７】
図５Ｃは、３つの連続するストロークを含むストロークの部分集合の例を示す。この例では、文字認識モジュール１０は、ストローク７０−１〜７０−３を潜在的に字「Ｈ」であると認識する。この認識は、ストロークの部分集合を文字のデータベースと比較することに基づいてもよいし、または別のやり方で行ってもよい。したがって、このストロークの部分集合に対し、字「Ｈ」に高いスコアまたはランク付けを与えてもよい。同様に、ストローク７０−４〜７０−６は字「Ｅ」に対応し、それに応じてスコア付けまたはランク付けしてもよい。ストロークの部分集合が「Ｅ」であろうと文字認識モジュール１０が判断したら、文字認識モジュール１０は、その情報を用いて、以前にランク付けまたはスコア付けした文字を再びランク付けまたはスコア付けしてもよい。例えば、「Ｅ」が検出されたら、文字認識モジュール１０は「Ｈ」により高いランク付けまたはスコアを与えてもよい。文字認識モジュール１０は「ｈｅ」で始まる単語を列挙した辞書を含むデータベースを調べることができるため、文字認識モジュール１０は、「Ｈ」のランク付けを高くしてもよい。
【００５８】
同様に、図５Ｄは、ストローク７０の部分集合が４つの連続するストロークを含む例を示す。いくつかの例では、文字認識モジュール１０は、文字であると考えられるストロークの数のしきい値を有してもよい。図５Ｄの例では、文字認識モジュール１０は、ストロークの数のしきい値レベルを４つに設定してもよい。これは、部分集合内のストロークの数が増えると、部分集合が特定の文字に適合する可能性が低くなるからであろう。この例では、文字認識モジュール１０はランク付けが高い文字の適合を全く見つけられないかも知れない。
【００５９】
文字認識モジュール１０は、ユーザ１４の入力を認識する際に、いくつかの、またはすべてのストロークの部分集合と、それらに対応する適合相手のランク付けまたはスコアとを考慮してもよい。例えば、色々な因子に基づいて、文字認識モジュール１０は、部分集合を互いに、かつ部分集合内の潜在的な文字の適合相手と比較してもよい。いくつかの例では、文字認識モジュール１０は、少なくとも最大個数まで潜在的に適合する組を保持する（例えば、文字認識モジュール１０は、それぞれのストロークの部分集合について、最も確からしい２０個の潜在的に適合する組を蓄積する）。他の例では、潜在的に適合する組の最大個数は別の数でもよい。
【００６０】
ある例では、文字認識モジュール１０は、特定の文字についての様々な部分集合のスコアまたはランク付けを比較し、選択されたしきい値レベルよりスコアが高いその部分集合または文字について最も高いスコアをもつ文字を、適合する文字として選択してもよい。別の例では、文字認識モジュール１０は、辞書または文法リファレンスにアクセスして、決定された文字列に少なくとも部分的に基づき単語を識別および／または示唆してもよい。ある例では、文字認識モジュール１０は、図５Ａ〜図５Ｄでのユーザ入力１８が単語「Ｈｅｌｌｏ」であると判断する。
【００６１】
本明細書に記載した技法は、少なくとも部分的には、ハードウェアや、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施することができる。例えば、本明細書に記載した実施形態の色々な態様は、１つまたは複数のマイクロプロセッサや、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、ユーザにより書込み可能なゲートアレイ（ＦＰＧＡ）、または他の任意の等価な、集積もしくは個々の論理回路構成、さらにはそうした構成要素の任意の組合せを含む、１つまたは複数のプロセッサ内で実施することができる。「プロセッサ」または「処理回路構成」の用語は、一般に、前述の任意の論理回路構成（単独の、もしくは他の論理回路構成と組み合わせたもの）または他の任意の等価な回路構成を表すことができる。ハードウェアを含む制御部によっても、本開示の１つまたは複数の技法を実行することができる。
【００６２】
そうしたハードウェア、ソフトウェアおよびファームウェアを同じ装置または別個の装置の中で実施して、本明細書に記載した色々な技法をサポートすることができる。加えて、本明細書に記載した任意のユニット、モジュールまたは構成要素は、分離しているが相互に運用可能な論理装置として、一緒にまたは別々に実施することができる。モジュールまたはユニットとしての様々な特徴の記述は、様々な機能上の態様を強調することを意図しており、必ずしもそうしたモジュールまたはユニットが別個のハードウェア、ファームウェアまたはソフトウェアの構成要素により実現されることを意味するものではない。むしろ、１つまたは複数のモジュールまたはユニットに付随する機能は、別個のハードウェア、ファームウェアもしくはソフトウェアの構成要素により実行することができ、または共通もしくは別個のハードウェア、ファームウェアもしくはソフトウェアの構成要素の中に一体化することもできる。
【００６３】
本明細書に記載した技法は、指示がコード化されるコンピュータ読取り可能な記憶媒体を含む製造物の中に具体化、すなわちコード化することもできる。コンピュータ読取り可能な記憶媒体に含まれるかまたはコード化された指示が１つまたは複数のプロセッサにより実行されるときなどに、コード化されたコンピュータ読取り可能な記憶媒体を含む製造物に埋め込まれるかまたはコード化された指示により、１つまたは複数のプログラム可能なプロセッサまたは他のプロセッサに、本明細書に記載した１つまたは複数の技法を実行させることができる。コンピュータ読取り可能な記憶媒体は、ランダムアクセスメモリ（ＲＡＭ）や、読出し専用メモリ（ＲＯＭ）、プログラム可能な読出し専用メモリ（ＰＲＯＭ）、消去可能かつプログラム可能な読出し専用メモリ（ＥＰＲＯＭ）、電子的に消去可能かつプログラム可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、ハードディスク、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、フロッピー（登録商標）ディスク、カセット、磁気媒体、光媒体、または他のコンピュータ読取り可能な媒体を含んでもよい。いくつかの例では、１つの製造物が１つまたは複数のコンピュータ読取り可能な記憶媒体を含んでもよい。
【００６４】
いくつかの例では、コンピュータ読取り可能な記憶媒体が、一時的でないかまたは有形の媒体を含んでもよい。「一時的でない」という用語は、記憶媒体が搬送波または伝搬信号では具体化されないことを意味する。ある例では、一時的でない記憶媒体により、（例えば、ＲＡＭまたはキャッシュ内の）経時変化し得るデータを蓄積してもよい。
【００６５】
本開示の色々な態様を記載してきた。本明細書に記載した例の態様または特徴は、別の例で記載した他の任意の態様または特徴と組み合わせてもよい。これらのおよび他の実施形態は、添付の特許請求の範囲内である。
【図１】
2013004095.tif 000003
【図２】
2013004095.tif 000004
【図３】
2013004095.tif 000005
【図４】
2013004095.tif 000006
【図５Ａ】
2013004095.tif 000007
【図５Ｂ】
2013004095.tif 000008
【図５Ｃ】
2013004095.tif 000009
【図５Ｄ】
2013004095.tif 000010
【外国語明細書】
2013004095000001.pdf