本発明の実施形態を、図面を参照して説明する。図面において、同様の構成要素には同じ参照番号が付されている。
図1は、本発明の実施形態に用いることができる情報処理装置10および学習支援サーバ20を示している。情報処理装置10は、プロセッサ(CPU)12、各種のデータベースを含む記憶装置14、表示装置(ディスプレイ)112、ペン入力可能なタブレット114、およびネットワーク・インタフェース(N/W IF)18を具えている。情報処理装置10は、プロセッサ12によって実行される学習支援機能16を有する。
情報処理装置10は、単独で、即ちスタンドアローン型の装置として、学習支援サービスをユーザに提供してもよい。プロセッサ12は、学習支援機能16等の諸機能を実現するための記憶装置14に格納されたプログラムに従って動作してもよい。その諸機能の少なくとも一部は、プロセッサ12上に集積回路のようなハードウェアの形で実装されていてもよい。情報処理装置10は、タブレットPCであってもよい。
代替構成として、情報処理装置10は、学習支援機能26を有する学習支援サーバ20にネットワークを介して接続されてもよい。この場合、情報処理装置10は、端末として機能して、学習支援サーバ20と協働して学習支援サービスをユーザに提供する。学習支援サーバ20は、プロセッサ(CPU)22、データベースを含む記憶装置24、およびネットワーク・インタフェース(N/W IF)28を具えている。
学習支援サーバ20は、プロセッサ22によって実行される学習支援機能26を有する。プロセッサ22は、学習支援機能26等の諸機能を実現するための記憶装置24に格納されたプログラムに従って動作してもよい。その諸機能の少なくとも一部は、プロセッサ22上に集積回路のようなハードウェアの形で実装されていてもよい。情報処理装置10の端末としての学習支援機能16は、前述のようにハードウェアまたはソフトウェアの形態でプロセッサ12上で実装される。
図2は、図1の情報処理装置10および/または学習支援サーバ20によって実現される学習支援システム200の構成を示している。
学習支援システム200は、情報処理装置10に設けられた、入力処理部として、筆跡入力部212および採点指示部214を含み、表示処理部として、筆跡表示部216、誤り情報表示部217および正誤判定表示部218を含んでいる。
情報処理装置10が単独で学習支援サービスを提供する場合、学習支援システム200は、さらに、情報処理装置10に設けられた情報処理部として、筆跡情報管理部222、筆跡情報読み出し部242、文字切り出し領域候補生成部244、個別文字認識部246、最尤文字列決定部248、誤り文字位置抽出部250、および誤り領域抽出部262を含み、さらに、記憶装置14中の領域として、筆跡情報記憶部252、文字切り出し領域候補記憶部254、文字認識辞書記憶部256、正解文字列記憶部258および誤り情報記憶部260を含んでいる。
代替構成として、情報処理装置10を端末として用いて主に学習支援サーバ20によって学習支援サービスを提供する場合、学習支援システム200は、学習支援サーバ20に設けられた情報処理部として、筆跡情報格納部222、筆跡情報読み出し部242、文字切り出し領域候補生成部244、個別文字認識部246、最尤文字列決定部248および誤り文字位置抽出部250を含み、可能性として誤り領域抽出部262を含んでいてもよく、さらに、記憶装置14中の領域として、筆跡情報記憶部252、文字切り出し領域候補記憶部254、文字認識辞書記憶部256、正解文字列記憶部258および誤り情報記憶部260を含んでいる。誤り領域抽出部262は、学習支援サーバ20または情報処理装置10のいずれかに設ければよい。
図1において、ユーザは、スタイラスペンを用いてタブレット114上の解答欄に解答文字列を順次描くと、筆跡入力部212は、解答の文字列に対応する連続的な複数の座標(X,Y)からなる筆跡の座標データを順次取り込んで、筆跡情報格納部222に供給する。筆跡格納部222は、その筆跡座標データを筆跡情報格納部252に順次格納しかつ筆跡表示部216に順次供給する。筆跡表示部216は、その筆跡座標データによって表される手書き文字列の筆跡を表示装置112上に順次リアルタイムで表示する。
ユーザが、表示装置112に表示された採点指示キーを付勢して、採点指示部214を付勢すると、筆跡情報読み出し部242は、筆跡情報格納部252に格納されていた筆跡座標データを読み出して、文字切り出し領域候補生成部244に供給する。文字切り出し領域候補生成部244は、読み出された筆跡座標データから、推定される文字領域候補を切り出し、それぞれ一連の文字領域候補からなる複数の群を出力する。一文字の領域候補の推定は、各ストロークのX軸方向の重心が一定範囲内のものを一文字領域として切り出すなどの既知の方法を用いて行う。
図3Aは、ユーザによって入力され筆跡情報読み出し部242によって取り込まれた手書きの解答文字列“例示”の筆跡の例を示している。図3Bは、図3Aの筆跡座標データに対して、文字切り出し領域候補生成部244によって生成された文字切り出し候補a〜fの例を示している。図3Cは、個別文字認識部246による、図3Bに示された文字切り出し領域候補a〜fに対する認識候補文字および認識スコアの一例を示している。
図3Bにおいて、左上のアルファベットが付された四角枠で囲まれた各領域は、切り出された1つの文字領域候補のパターンであり、矢印→は文字領域候補(ノード)間の可能性ある接続(リンク)関係を示している。この例では、群“a−b−c−f”、群“a−d−f”(イ−列−示)および群“e−f”(例−示)の接続関係にある文字領域候補の3つの群またはパス(paths)が提示される。図3Cにおいて、各文字領域候補(ノード)内の各認識候補文字の右側に表示されている数字は、それぞれの認識候補文字の認識スコアを示すものであり、スコアの数字が大きいほど可能性または最尤度が高いことを示している。
個別文字認識部246は、文字切り出し領域候補生成部244によって切り出された図3Bの文字領域候補の各パターンa〜fに対して、文字認識辞書記憶部260を参照して、認識候補文字および認識スコアを決定する。認識候補文字の抽出には、一般的に用いられるOCR認識エンジン、オンライン認識エンジン、等、任意の認識エンジンを用いることができる。認識スコアは、文字領域候補のパターン(a〜f)と文字認識辞書記憶部260中の所定の文字パターンとの間の距離を計算したり、特徴点に基づいて計算したりするなど、既知の種々の方法を用いることができる。
個別文字認識部246は、各文字領域候補における複数の認識候補文字およびそれぞれの認識スコアを最尤文字列決定部248に供給する。最尤文字列決定部248は、各解答枠の識別に対応する正解文字列記憶部258中の正解文字列の情報を参照して認識候補文字から最尤文字列を決定する。最尤文字列の決定は、一連の文字領域候補またはノードからなる各群または各パスと各文字領域候補(ノード)に対応して、個別文字認識部246からの複数の認識候補文字に対して、正解文字列中の各文字との照合(マッチング)を行って文字を選択して最尤文字列を決定することからなる。その照合において、正解文字列における照合中の文字位置の文字と一致する認識候補文字があれば、その一致する認識候補文字に対して、例えば一定の加算スコア(ボーナススコア)を加えて、正解文字列が最尤文字列として選ばれやすくなるように設定する。
図3Cを参照して、最尤文字列を決定する例を示す。この例では、候補文字の列を選択する3つのパス“a−b−c−f”、“a−d−f”および“e−f”がある。最尤文字列決定部248は、各選択パスにおけるノード中の各候補文字に対して、正解文字列の中の各文字位置の文字と照合する。最尤文字列決定部248は、正解文字列中の文字と一致しない認識候補文字に対して文字照合スコアとして最低値のスコア(例えば、650)を与える。また、最尤文字列決定部248は、正解文字列中の文字と一致する認識候補文字に対してその認識候補文字の認識スコアに加算スコア(例えば、50)を加えた値を、文字照合スコアとする。
このようにして、最尤文字列決定部248は、文字列照合スコアの最も高い文字列を選択する。文字列照合スコアは、パスにおける先頭文字位置から現在文字位置の文字照合スコアの平均値で表され、即ち、先頭文字位置から前文字位置までの平均文字列照合スコア×先頭文字位置から前文字位置までの文字数+現在の文字位置の文字照合スコアを、先頭文字位置から現在文字位置までの文字数で割ったものとして求められる。従って、各パスにおける最後のノードにおける文字列照合スコアが、各パスの文字列の文字列照合スコアすなわち平均の文字照合スコアを表す。最尤文字列決定部248は、照合した文字列の最後の文字位置にある文字列照合スコアが最も大きいパスの文字列を、最尤文字列として選択する。
図4A〜4Dは、図3Cの選択した認識候補文字の文字照合スコアおよび文字列照合スコアを求めて、正解文字列“例示”に対する最尤文字列を決定する手順の例を示している。
図4Aにおいて、図3Cにおける各ノード、即ち文字切り出し領域候補a〜fの中の各々とそれに対応する認識候補文字を、正解文字列のX番目の文字と照合する。一連の文字領域候補またはノードa、b、c、fからなる1つの群またはパスが選択され、最初の先頭のノードaについて、最初の照合文字位置Xを初期値X=1と設定し、従って照合文字を“例”とする。照合文字位置X=1の領域候補aに対する認識候補文字“イ”および“ト”の認識スコア850および760が求められる。この場合、認識候補文字の中に“例”が存在しないので、認識スコアが最大の“イ”が選択される。この場合、その選択された認識候補文字“イ”が照合文字“例”と一致しないので、認識スコア850を修正して、文字照合スコアを、不一致を表す最低値(例えば、650)と決定して記録する。
次いで、そのパスにおける選択した文字の数に対する文字照合スコアの平均値を表す文字列照合スコアを計算して記録する。この場合、選択文字が先頭文字位置なので、その文字列照合スコアは文字照合スコアと等しく(650)なる。また、ノードaに直前に接続するノードが存在しないので、ノードaに対する直前選択ノードとして“なし”を記録する。
次のノードbについて、正解文字列における照合文字位置Xを+1増分(インクリメント)してX=X+1=2とし、従って照合文字を“示”とする。次いで、領域候補bに対する認識候補文字“タ”および“ン”の認識スコア790および770が求められる。認識候補文字の中に“示”が存在しないので、最大の認識スコアを有する認識候補文字“タ”が選択される。この場合、選択された認識候補文字“タ”が照合文字“例”と一致しないので、認識スコア790を修正して、その文字照合スコアを、不一致を表す最低値(例えば、650)と決定して記録する。文字列照合スコアは、選択文字の数2に対する文字照合スコアの平均値650である。ノードbに直前に接続するノード“a”が存在するので、ノードbに対する直前選択ノードとして“a”を記録する。
ノードcについても、同様に、文字照合スコア650、文字列照合スコア650、直前選択ノード“b”が記録される。その後、同様に、図4Bに示されているように、ノードfについても、照合文字位置X=4の領域候補fについて、認識候補文字“ア”および“示”の文字照合スコア650および文字列照合スコア650、および直前選択ノード“c”が記録される。
ノードdについて、同様に、照合文字位置Xを2とし、従って照合文字を“示”とする。一連の文字領域候補a、d、fからなる1つの群が選択され、照合文字位置X=2の領域候補dに対する認識候補文字“列”および“別”の認識スコア810および790が求められる。その後、同様に、図4Cに示されているように、ノードfについても、照合文字位置X=3の領域候補fに対する認識候補文字“ア”の文字照合スコア650および文字列照合スコア650、および直前選択ノード“d”が記録される。
ノードeについて、照合文字位置Xを1とし、従って照合文字を“例”とする。一連の文字領域候補e、fからなる1つの群が選択され、照合文字位置X=1の領域候補eに対する認識候補文字“列”および“別”の認識スコア810および790が求められる。認識候補文字の中に“例”が存在するので、認識候補文字“例”が選択される。この場合、この場合、認識候補文字“例”が照合文字“例”と一致するので、認識スコア810に加算スコア50が加えられて、文字照合スコアは合計860と決定され、文字列照合スコアは平均値860と決定される。また、ノードeに直前に接続するノードがないので、ノードeに対して直前選択ノードとして“なし”が記録される。
ノードfについて、同様に、照合文字位置Xを2とし、従って照合文字を“示”とする。一連の文字領域候補e、fからなる1つの群が選択され、図4Dに示されているように、照合文字位置X=2の領域候補fに対する認識候補文字“ア”および“示”の認識スコア810および800が求められる。この場合、認識候補文字“示”が照合文字“示”と一致するので、認識スコア800に加算スコア50が加えられ、文字照合スコアは合計850と決定され、照合文字位置X=2の領域候補fに対する認識候補文字“示”の文字照合スコア850および文字列照合スコア855、および直前選択ノード“e”が記録される。
ノードfに直前に接続するノードには、3つのノードc、d、eがある。それぞれの文字列照合スコアは、それぞれ650、650、855である。ここで、最大の文字列照合スコアを有するノードeを直前の選択ノードとして選択し、その場合の照合文字位置、選択文字、文字列照合スコアとともに記憶しておく。
最尤文字列決定部248は、文字領域候補群“a−b−c−f”、“a−d−f”および“e−f”の文字列照合スコアを比較して、文字切り出し領域の末尾のノードfと対応づけて記録された文字列照合スコア(650、650、855)が最大のもの(855)を探し、そこから直前選択ノードを順にたどって、最尤文字列として選択されたパス“e−f”を決定する。最尤文字列決定部248は、決定したパス“e−f”を文字切り出しの先頭ノードからつなげたものを最尤文字列“例示”として決定する。
照合方法はこれに限らず、他の照合法を用いてスコアを計算する方法を用いてもよい。一般的な文字列認識においては、最尤文字列を選択する場合に、単語を格納した単語辞書を用いて単語辞書中の文字列との照合により最尤文字列を選択したり、2文字間または3文字間のつながりやすさの統計情報を格納した辞書を用いて文字間のつながりやすさを評価してその評価結果に基づいて最尤文字列を選択したりする。従って、この例の場合では“イタリア”が最尤文字列として選択される可能性がある。一方、図3A〜3Cおよび4A〜4Cのように、正解文字列が“例示”である場合、最尤文字列決定部248は、正解文字列“例示”と照合して最尤文字列を選択するので、この例の場合では“例示”が最尤文字列として選択される。
図5Aは、ユーザによって入力され筆跡情報読み出し部242によって取り込まれた手書きの解答文字列“例字”の筆跡の例を示している。図5Bは、図5Aの筆跡座標データに対して、文字切り出し領域候補生成部244によって生成された文字切り出し領域候補の例を示している。図5Cは、個別文字認識部246による、図5Bに示された文字切り出し領域候補に対する認識候補文字および認識スコアの一例を示している。
図5Bを参照すると、この例では、群“a−b−c−f”、群“a−d−f”(イ−列−字)および群“e−f”(例−字)の3つの文字領域候補群またはパスが提示される。
図6A〜6Dは、図5Cの認識候補文字の文字照合スコアおよび文字列照合スコアを求めて、正解文字列“例示”に対する最尤文字列を決定する手順の例を示している。
図6Aにおいて、文字領域候補a、b、c、d、eについて、図4Aの場合と同様に、文字照合スコアおよび文字列照合スコアが求められ、直前の選択ノードが記録される。
図6Bに示されているように、ノードfについても、照合文字位置X=4の領域候補fに対する認識候補文字“ア”および“示”の文字照合スコア650および文字列照合スコア650、および直前の選択ノード“c”が記録される。
図6Cに示されているように、ノードfについて、照合文字位置X=3の領域候補fに対する認識候補文字“ア”および“示”の文字照合スコア650および文字列照合スコア650、および直前の選択ノード“d”が記録される。
ノードfについて、同様に、照合文字位置Xを2とし、従って照合文字を“示”とする。一連の文字領域候補e、fからなる1つの群が選択され、図6Dに示されているように、照合文字位置X=2の領域候補fに対する認識候補文字“字”および“学”の認識スコア810および800が求められる。最も高い認識スコアを有する認識候補文字“字”が選択される。この場合、認識候補文字“字”が照合文字“示”と一致しないので、認識スコア810を修正して、文字照合スコアを、不一致を表す最低値(例えば、650)と決定されて記録される。照合文字位置X=2の領域候補fに対する認識候補文字“字”の文字照合スコア650および文字列照合スコア755、および直前選択ノード“e”が記録される。
ノードfに直前に接続するノードには、3つのノードc、d、eがある。それぞれの文字列照合スコアは、それぞれ650、650、755である。ここで、最大の文字列照合スコアを有するノードfの直前の選択ノードeを選択し、その場合の照合文字位置、選択文字、文字列照合スコアとともに記憶しておく。
最尤文字列決定部248は、パス“a−b−c−f”、“a−d−f”および“e−f”の文字列照合スコアを比較して、文字切り出しの末尾のノードfと対応づけて記録された文字列照合スコア(650、650、755)が最大のもの(755)を探し、そこから直前選択ノードをたどって、最尤文字列として選択すべきパス“e−f”を決定する。最尤文字列決定部248は、決定したパス“e−f”を文字切り出しの先頭ノードからつなげたものを最尤文字列“例字”として決定する。
図7Aは、最尤文字列決定部248によって保持される最尤文字列の文字切り出し領域e、fのデータを示している。図7Bは、誤り領域抽出部262によって抽出された誤り情報の例を示している。
最尤文字列決定部248は、最尤文字列とともに、図7Aに示されたような最尤文字列“例字”の切り出し領域e、fを保持する。最尤文字列決定部248は、決定された最尤文字列を誤り文字位置抽出部250に供給する。
誤り文字位置抽出部250は、最尤文字列と正解文字列を比較して誤り文字位置を検出し抽出して、誤り情報を誤り情報記憶部260に格納する。図7Aの例では、2文字目の“字”の文字位置が誤りであることが検出され、誤り情報記憶部260に2文字目の誤りの情報が格納される。誤り文字位置抽出部252は、誤り文字位置の情報を誤り領域抽出部262に供給する。誤り領域抽出部262は、最尤文字列に対応する文字切り出し領域における誤り文字位置の対応する領域を抽出して、図7Bに例示されているような誤り情報(即ち、誤り文字位置と誤り領域)を誤り情報記憶部260に格納する。
図8Aは、正解の場合の解答文字列の採点結果の例示図を示している。図8Bは、不正解の場合の解答文字列の採点結果の例を示している。図8Cは、不正解の場合の解答文字列の採点結果における正解文字列の表示の例を示している。図において、太い点線の“○”および“レ”のシンボルは、採点のための正解または不正解を表示するものであり、四角の点線で囲まれた部分は、誤り文字位置の誤り領域における筆跡が、例えば他の文字(例えば、黒)とは異なる色(例えば、赤)でハイライト表示された部分を示している(点線そのものを表示する必要はない)。
誤り情報表示部217は、誤り情報記憶部260中の誤り情報を参照して、ユーザによって入力された筆跡の最尤文字列の切り出し領域中における誤り箇所を、図8Bのように表示する。また、正誤判定結果表示部218は、誤り情報記憶部260に誤り情報が存在しなければ、正解(○)の表示を、誤り情報があれば不正解(レ)の表示を、図8Aまたは図8Bのように行う。図8Cに示されているように、正解文字列の中での誤り文字位置の文字の色を他の文字と異なる色(例えば、赤)で表示してもよく、四角の点線で囲まれた誤り文字位置の誤り領域の筆跡の色と同じ色(例えば、赤)で表示してもよい。
図9Aは、ユーザによって入力され筆跡情報読み出し部242によって取り込まれた手書きの解答文字列“明智秀”の筆跡の例を示している。図9Bは、図9Aの筆跡の座標データに対して、文字切り出し領域候補生成部244によって生成された文字切り出し領域候補a〜fの例を示している。図9Cは、個別文字認識部246による、図9Bに示された文字切り出し領域候補a〜eに対する認識候補文字および認識スコアの一例を示している。
正解文字列“明智光秀”に対して、図9Aに示されているような“明智秀”の筆跡が入力された場合、図9Bに示されているように、この例では、2つの文字領域候補群またはパス“a−b−d−e”(日−月−智−秀)および“a−d−e”(明−智−秀)が提示される。
図10A〜10Cは、図9Cの認識候補文字の文字照合スコアおよび文字列照合スコアを求めて、正解文字列“明智光秀”に対する最尤文字列を決定する手順の例を示している。この例では、文字切り出し領域候補を正解文字列と照合する際に、連続する2文字以内の脱字または余剰文字の検出を含めて最尤文字列を決定する例である。図10Eは、最尤文字列における、誤り文字位置、誤りの種類および誤り領域の位置を示している。
図10Aにおいて、正解文字列“明智光秀”に対して、図9Cにおける一連の文字領域候補a、b、d、eからなる1つの群が選択され、最初の先頭のノードa(“日”)について、照合文字位置Xを初期値X=1とし、照合文字位置iに照合開始文字位置i=Xを設定し、正解文字列の1番目の文字“明”と照合する。ノードaに対する認識候補文字“日”および“月”の認識スコア830および760が求められる。認識候補文字の中に“明”が存在しないので、選択文字として認識スコアが最大の“日”が選択される。この場合、選択された文字と照合文字が一致しないので、照合文字位置としてX−1=0が与えられ、文字照合スコアとして、不一致を表す最低値(例えば、650)が与えられる。文字列照合スコアは、先頭文字位置なので文字照合スコアと等しくなる。ノードaに直前に接続するノードは存在しないので、文字領域候補aの文字位置をY=1、直前選択ノードを“なし”と記録する。
次に、照合文字位置iの値を1増分してi=2をとし、正解文字列の2番目の文字“智”と照合する。認識候補文字“日”および“月”の中に“智”がないので、選択文字として、最大の認識スコアを有する文字“日”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして最低値(例えば650)が与えられ、照合文字位置としてX−1=0が維持される。次に、隣接の照合文字位置iの値を1増分しさらに右隣接の文字位置i=3として、正解文字列の3番目の文字“光”と照合する。認識文字候補“日”および“月”の中に“光”がないので、選択文字として、最大の認識スコアを有する文字“日”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして最低値(例えば650)が与えられ、ノードaの照合文字位置としてX−1=0が維持される。文字列照合スコアは、先頭文字位置なので文字照合スコアと等しくなる。
次のノードb(“月”)について、ノードbに直前に接続するノードaの照合文字位置0を+1だけ増分してX=1とし、照合文字位置iに照合開始文字位置X(i=X)を設定し、正解文字列のi=1番目の文字“明”と照合する。認識候補文字“月”および“日”の認識スコア790および770が求められる。認識候補文字の中に“明”が存在しないので、選択文字として最大の認識スコアを有する“月”が選択される。選択された文字“月”と照合文字“明”が一致しないので、文字照合スコアとして不一致を表す最低値(例えば、650)が与えられ、照合文字位置としてX−1=0が与えられる。文字列照合スコアは、文字数2に対する文字照合スコアの平均値である650となる。ノードbに直前に接続するノードaの文字位置1を+1だけ増分して、文字領域候補bの文字位置をY=2、ノードbに接続する直前選択ノードを“a”と記録する。
次に、照合文字位置iの値を1増分してi=2とし、正解文字列の2番目の文字“智”と照合する。ノードbに対する認識候補文字“月”および“日”の認識スコア790および770が求められる。認識候補文字の中に“智”が存在しないので、選択文字として最大の認識スコアを有する“月”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして、不一致を表す最低値(例えば650)が与えられ、照合文字位置としてX−1=0が維持される。文字列照合スコアは、文字数2に対する文字照合スコアの平均値650となる。文字領域候補bの照合文字位置としてX−1=0が維持され、ノードbに接続する直前選択ノードとして“a”が維持される。
次に、照合文字位置iの値を1増分してi=3として、正解文字列の3番目の文字“光”と照合する。認識候補文字“月”および“日”の中に“光”がないので、選択文字として、最大の認識スコアを有する“月”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして最低値(例えば650)が与えられ、照合文字位置としてX−1=0が維持される。文字列照合スコアは、文字数2に対する文字照合スコアの平均値650となる。文字領域候補bの照合文字位置としてX−1=0が維持され、ノードbに接続する直前選択ノードとして“a”が維持される。
図10Bを参照すると、次のノードd(“智”)について、直前の選択ノードはノードbである。ノードbの照合文字位置は0なので、照合文字位置Xを+1だけ増分(インクリメント)してX=1とし、照合文字位置iに照合開始文字位置i=Xを設定し、正解文字列の1番目の文字“明”と照合する。認識候補文字“智”および“督”の認識スコア810および780が求められる。認識候補文字の中に“明”が存在しないので、選択文字として最大の認識スコアを有する“智”が選択される。選択された文字“智”と照合文字“明”が一致しないので、文字照合スコアとして、不一致を表す最低値(例えば、650)が与えられ、照合文字位置としてX−1=0が与えられる。文字列照合スコアは、文字数3に対する文字照合スコアの平均値650となる。ノードdに直前に接続するノードbがあるので、文字領域候補dの文字位置をY=3、ノードdに接続する直前選択ノードを“b”と記録する。
次に、照合文字位置iの値を1増分しi=2として、正解文字列の2番目の文字“智”と照合する。認識候補文字“智”および“督”の中に“智”があるので、選択文字として、最大の認識スコアを有する文字“智”が選択される。選択された文字と照合文字が一致するので、照合文字位置としてX=2が与えられ、認識スコア810に、一致を表す加算値(例えば50)が加えられて文字照合スコアとして860が与えられる。文字列照合スコアは、文字数3に対する文字照合スコアの平均値720である。文字領域候補dの文字位置としてY=3が維持され、ノードdに接続する直前選択ノードとして“b”が維持される。
次に、照合文字位置iの値を1増分してi=3として、正解文字列の3番目の文字“光”と照合する。認識候補文字“智”および“督”の中に“光”がないので、選択文字として、最大の認識スコアを有する“智”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして、不一致を表す最低値(例えば650)が与えられる。照合文字位置としてX=2が維持される。文字列照合スコアは、文字照合スコア720を維持する。文字領域候補dの文字位置としてY=3が維持され、ノードdに接続する直前選択ノードとして“b”が維持される。
図10Aを参照すると、図9Cにおける一連の文字領域候補c、d、eからなる1つの群が選択され、最初の先頭のノードc(“明”)について、照合文字位置Xを初期値X=1とし、照合文字位置iに照合開始文字位置X(i=X)を設定し、正解文字列の1番目の文字“明”と照合する。ノードcに対する認識候補文字“明”および“朋”の認識スコア840および820が求められる。認識候補文字の中に照合文字“明”が存在するので、選択文字として認識スコアが最大の“明”が選択される。選択された文字と照合文字が一致するので、照合文字位置としてX=1が与えられ、文字照合スコアとして一致を表す加算値(例えば50)が加えられて890が与えられる。文字列照合スコアは、先頭文字位置なので文字照合スコアと等しくなる。ノードcに直前に接続するノードはないので、文字領域候補aの文字位置をY=1、直前選択ノードを“なし”と記録する。
次に、照合文字位置iの値を1増分してi=2とし、正解文字列の2番面の文字“智”と照合する。認識候補文字“明”および“朋”の中に“智”がないので、選択文字として、最大の認識スコアを有する“明”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして、不一致を表す最低値(例えば、650)が与えられる。照合文字位置はX=1を維持する。次に、照合文字位置iの値を増分してi=3とし、正解文字列の2番目の文字“光”と照合する。認識候補文字“明”および“朋”の中に“光”がないので、選択文字として、認識スコアが最大の“明”が選択される。選択された文字と照合文字が一致しないので、文字照合スコアとして最低値(例えば、650)が与えられ、照合文字位置としてX=1が維持される。文字列照合スコアは、先頭文字位置なので文字照合スコアと等しくなる。
図10Cを参照すると、次のノードd(“智”)について、ノードdの直前の選択ノードはcである。ノードcの照合文字位置は1なので、照合文字位置Xを+1だけ増分(インクリメント)してX=2とし、照合文字位置iに照合開始文字位置X(i=X)をセットし、正解文字列の2番目の文字“智”と照合する。認識候補文字“智”および“督”の文字照合スコア810および780が求められる。認識候補文字の中に“智”が存在するので、選択文字として、認識スコアが最大の“智”が選択される。選択された文字と照合文字が一致するので、照合文字位置としてX=2が与えられ、文字照合スコアとして一致を表す加算値(例えば50)が加えられて860が与えられる。文字列照合スコアは、文字数2に対する文字照合スコアの平均値875となる。ノードdに直前に接続するノードcがあるので、文字領域候補dの文字位置をY=2、ノードdに接続する直前選択ノードを“c”と記録する。
次に、照合文字位置iを1増分してi=3とし、正解文字列の3番目の文字“光”と照合する。同様に、文字照合スコアとして最低値(例えば、650)が与えられる。照合文字位置はX=2を維持する。次に、照合文字位置iを1だけ増分して4とし、正解文字列の4番目の文字“秀”と照合する。同様に、文字照合スコアとして最低値(例えば、650)が与えられる。照合文字位置はX=2を維持する。
図10Aを参照すると、同様に、次のノードe(“秀”)について、照合文字“光”および“秀”と照合して、照合文字位置、選択文字、文字列照合スコア、文字位置、直前選択ノードを求めて記録する。
このようにして、文字切り出し領域候補eの末尾のノードeと対応づけて記憶してある文字列照合スコアが最大のものを探し、そこから直前選択ノードを順次たどって、最尤文字列として選択するパスを決定する。図10Dのように、決定したパスc−d−eを文字切り出しの先頭ノードからつないだものを最尤文字列“明智秀”として決定して保持する。
このように、各文字切り出し領域候補に対して、正解文字列中のN個の隣接の照合文字と照合することによって、余剰文字および脱字が連続してN−1個以内の場合でも、文字切り出し領域候補と正解文字列と照合が可能となる。
誤り文字位置抽出部12は、図10Dの切り出し領域c、d、eに基づいて誤り文字位置として“d”と“e”の間の3文字目が“脱字”であることを検出し、誤り領域が“d”と“e”の間であると判定し、図10Eに示されているような誤り情報を誤り情報記憶部260に格納する。
図11Aは、不正解の場合の解答文字列の採点結果の例を示している。図11Bは、不正解の場合の解答文字列の採点結果における正解文字列の表示の例を示している。図11Cは、不正解の場合の解答文字列の採点結果における正解文字列の表示の別の例を示している。図において、太い点線のシンボル“V”は、脱字とその位置を表示するためのシンボルを示している。
誤り情報表示部217は、誤り情報記憶部260中の誤り情報を参照して、ユーザによって入力された筆跡の最尤文字列の切り出し領域中における脱落文字位置を、図11Aに示されているように表示する。図11Bにおいて、脱落文字位置を表すシンボル“V”および正解文字列中の正解文字“光”は、共に同じ色(例えば、紫)で、かつ他の文字の色(例えば、黒、等)とは異なる色で表示されている。
誤り情報表示部217は、誤り情報記憶部260中の誤り情報を参照して、正解文字列“明智光秀”に対して、入力された筆跡が“明智光秀成”という解答であった場合、図11Cに示されているように、最尤文字列の切り出し領域中における余剰文字を表示する。太い点線の二重線の削除線は、余剰文字“成”の文字切り出し領域に対応する筆跡が余剰文字であることを表示するシンボルである。図11Cにおいて、余剰文字“成”の筆跡の上に重ねられる削除線は、他の文字の色(例えば、黒、等)とは異なる色(例えば、紫)で表示されている。
図12は、図1の情報処理装置10および/または学習支援サーバ20によって実現される別の学習支援システム202の構成を示している。
情報処理装置10が単独で学習支援サービスを提供する場合、学習支援システム202は、文字評価部253および文字評価辞書記憶部562を含んでいる。
代替構成として、情報処理装置10を端末として用いて主に学習支援サーバ20によって学習支援サービスを提供する場合、学習支援システム202は、学習支援サーバ20に設けられた情報処理部として、学習支援システム202は、文字評価部253、文字評価辞書562および誤字位置抽出部255を含んでいる。学習支援システム202のその他の構成は、図2の学習支援システム200と同様である。
文字評価部253は、誤り文字位置抽出部250から最尤文字列および誤り文字位置を受け取って、文字評価辞書記憶部562の文字評価辞書情報を参照して、決定された最尤文字列に対応する文字切り出し領域の中で、誤り文字位置でなかった領域の筆跡に対して、その領域に対応する正解文字としての正しさを評価して誤字を検出して誤字位置抽出部255に供給する。誤字位置抽出部255は、文字領域から誤字位置を抽出して誤り情報記憶部260に格納し、誤り領域抽出部262に供給する。誤り領域抽出部262は、最尤文字列に対応する文字切り出し領域における誤り文字位置の対応する領域を抽出して、誤り情報(誤り文字位置、誤り領域、異字位置、誤字位置)を誤り情報記憶部260に格納する。
図13Aは、ユーザによって入力され筆跡情報読み出し部242によって取り込まれた手書きの解答文字列の筆跡の例を示している。図13Bは、図13Aの筆跡座標データに対して、文字切り出し領域候補生成部244によって生成された文字切り出し領域候補a〜fの例を示している。図13Cは、個別文字認識部246による、図13Bに示された文字切り出し領域候補a〜fに対する認識候補文字および認識スコアの一例を示している。
正解文字列“明智光秀”に対して、図13Aに示されているような筆跡が解答枠に入力された場合、図13Bに示されているように、この例では、2つの文字領域候補群“a−b−d−e−f”および“a−d−e−f”が提示される。
図13Cを参照すると、この例では、文字列を選択する2つのパス“a−b−d−e−f”および“a−d−e−f”が存在する。
図14Aは、最尤文字列決定部248によって決定された最尤文字列の切り出し領域c、d、e、fを示している。図14Bは、最尤文字列における、誤り文字位置、誤りの種類および誤り領域の位置を示している。
文字評価部253は、決定された最尤文字列に対応する文字切り出し領域c−d−e−fの中で、誤り文字でなかった領域(c、d、e、f)のそれぞれの筆跡に対して、文字評価辞書21を参照して、その領域に対応する正解文字として正しいかどうかを評価する。評価の観点として、画数違い、交差の有/無、等の観点がある。文字評価部20において正しくないと判断された場合には、誤字位置抽出部255において、誤字であることと誤字の位置とが誤り情報記憶部260に格納される。
図15Aは、不正解の場合の解答文字列の採点結果の例を示している。図15Bは、不正解の場合の解答文字列の採点結果の別の例を示している。
誤り情報表示部217は、誤り情報記憶部260の誤り情報を参照して、筆跡の中での誤り箇所を表示する。誤り情報には誤りの種類が含まれているので、誤り箇所の表示の際には、異字の場合と誤字の場合を区別して表示することが可能である。正誤判定結果表示部218は、誤り情報がない場合(○)、異字の誤り情報がある場合(レ)、誤字の誤り情報がある場合(△)を区別して表示することができる。
誤り情報表示部217は、誤り情報記憶部260中の誤り情報を参照して、ユーザによって入力された筆跡の最尤文字列の切り出し領域中における誤字を、図15Aのように表示する。図において、正解文字“智”の誤字である筆跡(部首の“目”が“日”の誤り)は、他の文字の色(例えば、黒、等)とは異なる色(例えば、青)で表示されている。
誤り情報表示部217は、誤り情報記憶部260中の誤り情報を参照して、ユーザによって入力された筆跡の最尤文字列の切り出し領域中における異字“地”を、図15Bのように表示する。図において、正解文字“智”とは異なる異字“地”の筆跡は、他の文字の色(例えば、黒、等)とは異なる色(例えば、赤)で表示されている。このように、図15Aの誤字の場合の表示と図15Bの異字の場合の表示とを区別して表示することができる。
図16Aは、不正解の場合の解答文字列の採点結果における正解文字列の表示の例を示している。図16Bは、不正解の場合の解答文字列の採点結果における正解文字列の表示の別の例を示している。
図16Aにおいて、正解文字“智”の誤字である筆跡(部首の“目”が“日”の誤り)および正解文字列中の“智”は、共に同じ色(例えば、青)で、かつ他の文字の色(例えば、黒、等)とは異なる色で表示されている。図16Bにおいて、正解文字“智”の異字である“地”の筆跡および正解文字列中の“智”は、共に同じ色(例えば、赤)で、かつ他の文字の色(例えば、黒、等)とは異なる色で表示されている。
図17Aおよび17Bは、図2の学習支援システム200によって実行される正解/不正解を判定するための処理のフローチャートを示している。
図17Aを参照すると、ステップ502において、筆跡情報読み出し部242は、採点指示部214からの正解/不正解判定の指示(命令)に従って、筆跡情報記憶部252から解答枠内の筆跡情報を取り出して文字切り出し領域候補生成部244に供給する。ステップ504において、文字切り出し領域候補生成部244は、筆跡情報を分析して文字切り出し領域候補(文字切り出しの候補領域)を生成し、個々の文字切り出し領域候補にそれぞれの識別情報(a、b、c、...)を付与して文字切り出し領域候補記憶部262に格納し、その文字切り出し領域候補をその識別とともに個別文字認識部246に供給する。
ステップ506において、個別文字認識部246は、識別情報または識別番号nを初期値n=1と設定する。ステップ508において、個別文字認識部246は、一連の文字領域候補からなる各群または各パスについて、識別番号n番目(この場合、最初はn=1)の切り出し領域候補があるかどうかを判定する。n番目(最初はn=1)の切り出し領域候補があると判定された場合は、ステップ510において、個別文字認識部246は、n番目の切り出し領域候補内の筆跡に対して、既知の形態で文字認識を行い、認識候補文字と認識スコアを生成する。ステップ512において、個別文字認識部246は、識別番号n=n+1と設定する。その後、手順はステップ508に戻る。
ステップ508においてn番目(最初はn=1)の切り出し領域候補がないと判定された場合は、ステップ522において、個別文字認識部246は、生成された切り出し領域候補と各領域候補に対する認識候補文字と認識スコアを最尤文字列決定部248に供給する。最尤文字列決定部248は、切り出し領域候補と各切り出し領域候補に対する認識候補文字と認識スコアを、正解文字列記憶部258に格納されている正解文字列と比較照合して、最尤文字列を決定し、その決定された最尤文字列を誤り文字位置抽出部250に供給する。
ステップ524において、誤り文字位置抽出部250は、その決定された最尤文字列を正解文字列記憶部258内の対応する正解文字列と照合して、最尤文字列における誤り文字位置を抽出して、その誤り情報を誤り情報記憶部260に解答枠に対応付けて格納し、採点指示部214によって指示された正解/不正解の判定処理が完了したことを誤り領域抽出部262に通知する。
図17Bを参照すると、ステップ562において、誤り領域抽出部262は、誤り情報記憶部260内に解答枠に対応する誤り情報があるかどうかを判定する。誤り情報がないと判定された場合は、ステップ576において、誤り領域抽出部262は、解答枠内の筆跡に誤りがないことを正誤判定部218に通知する。正誤判定部218は、対応する解答枠に対して正解(赤○)を表示する。
ステップ652において誤り情報があると判定された場合は、ステップ564において、誤り領域抽出部262は、解答枠内の筆跡に誤りがあることを正誤判定部218に通知し、誤り情報記憶部260内の解答枠の誤り位置に対応する誤り領域を、文字切り出し領域候補記憶部254内の文字切り出し領域候補の中から抽出し、抽出された誤り領域を誤り情報表示部217に通知する。ステップ566において、誤り情報表示部217は誤り領域の筆跡をハイライト(強調)表示する(例えば、色を変更する)。ステップ572において、正誤判定部218は、対応する解答枠に対して不正解(赤レ)を表示する。
図18A〜18Cは、図2の学習支援システム202によって実行される正解/不正解を判定するための処理の別のフローチャートを示している。
図18Aを参照すると、ステップ502〜524は、図17Aのものと同様である。
図18Bを参照すると、ステップ524の後のステップ532において、文字評価部253は、最尤文字列中の文字の順番(順序番号)mを初期値m=1と設定する。ステップ534において、文字評価部253は、最尤文字の順番mがLより大きいかどうかを判定する。ここで、Lは正解文字列の長さまたは文字数である。mがLより大きくない(即ち未だ照合すべき正解文字がある)と判定された場合は、ステップ536において、文字評価部253は、誤り情報260を参照して、m番目の最尤文字MJが誤っているかどうかを判定する。その文字が誤っていると判定された場合は、ステップ538において、最尤文字番号m=m+1と設定する。その後、手順はステップ534に戻る。
ステップ536においてその文字が誤っていないと判定された場合は、ステップ542において、文字評価部253は、文字評価辞書560を参照して、m番目の最尤文字MJに対応する切出領域内の文字の正しさを評価する。ステップ544において、文字評価部253は文字MJに対応する切出領域内の文字が正しいと評価されたかどうかを判定する。切出領域内の文字が正しくないと判定された場合は、ステップ546において、誤字位置抽出部255はm番目の最尤文字MJを誤字として誤り情報記憶部260に格納する。その後、手順はステップ548に進む。ステップ544において切出領域内の文字が正しいと判定された場合は、手順はステップ548に進む。
ステップ534においてmがLより大きいと判定された場合は、手順は図18Cのステップ562に進む。図18Cのステップ562〜564は、図17Bのものと同様である。
ステップ564の後のステップ566において、正誤判定表示部218は、誤り情報記憶部260を参照して、誤りの種類が誤字かどうかを判定する。誤字であると判定された場合は、ステップ570において、誤り領域中の筆跡を誤字を表す色(例えば、青)で表示する。その後、手順はステップ572に進む。誤字でないと判定された場合は、ステップ568において、誤り領域中の筆跡を異字を表す色(例えば、赤)で表示する。その後、手順はステップ572に進む。ステップ572および576は図17Bのものと同様である。
図19A〜19Cは、最尤文字列決定部248によって実行される、図17Aまたは18Aのステップ522の詳細なフローチャートを示している。
最尤文字列決定部248は、ステップ602において、ノード番号nに初期値n=1を設定する。ステップ604において、生成された切り出し領域候補のノード中にn番目のノードが存在するかどうかを判定する。n番目のノードが存在しないと判定された場合は、手順は図19Cのステップ662に進む。ステップ604においてn番目のノードが存在すると判定された場合は、ステップ606において、そのn番ノードが先頭の切り出し領域候補かどうかを判定する。n番ノードが先頭の切り出し領域候補であると判定された場合は、ステップ608において、正解文字列における照合文字の位置Xを初期値X=1、最大の文字列照合スコアmaxSを初期値maxS=0と設定する。続いて、ステップ609において、直前選択ノードのノード番号pをなしと設定する。
ステップ606においてn番ノードが先頭の切り出し領域候補でないと判定された場合は、最尤文字列決定部248は、ステップ610において、n番ノードに直前に接続するリンク番号mを初期値m=1、最大文字列照合スコアmaxSを初期値maxS=0と設定する。
ステップ612において、リンク番号mがM以下かどうかを判定する。ここで、Mは、n番ノードに直前に接続するリンク(ノード)の合計数を表す。リンク番号mがM以下でない(Mより大)と判定された場合は、ステップ616において、ノード番号n=n+1と設定する。その後、手順はステップ604に戻る。
リンク番号mがM以下であると判定された場合は、ステップ613において、直前選択ノード番号pをn番ノードに直前に接続するm番目のノードのノード番号と設定する。続いて、ステップ620において、正解文字列における照合文字位置Xを、X=n番ノードに直前に接続するm番目のノードの照合文字位置+1と設定する。
図19Bを参照すると、ステップ636において、正解文字列中の照合文字位置Xが正解文字列の長さLを越えるかどうかを判定する。文字位置Xが長さLより大きいと判定された場合は、手順はステップ644へ進む。XがLより大きくないと判定された場合は、手順はステップ642へ進む。
ステップ642において、正解文字列の照合文字位置X番目の文字がn番ノードの認識文字候補中に存在するかどうかを判定する。照合文字位置Xの文字が存在しないと判定された場合は、手順はステップ644に進む。ステップ644において、文字照合スコアMS=不一致値または最低値、選択文字MJとして認識文字候補中の最大スコアの候補文字を設定する。ステップ642において照合文字位置Xの文字が存在すると判定された場合は、ステップ646において、文字照合スコアMS=ノードにおける照合文字位置Xの文字のスコア+加算値(一致値)、選択文字MJ=正解文字列のX番文字を設定する。その後、手順はステップ648へ進む。
ステップ648において、文字列照合スコアMRS=(n番ノードに直前に接続するm番目のノードのMRS×(X−1)+MS)/Xと設定する。ステップ650において、文字列照合スコアMRSが最大の文字列照合スコアmaxSより大きいかどうかを判定する。文字列照合スコアMRSが最大の文字列照合スコアmaxSより大きくないと判定された場合は、手順は図19Aのステップ612へ戻る。
ステップ650において文字列照合スコアMRSが最大の文字列照合スコアmaxSより大きいと判定された場合は、ステップ652において、最大の文字列照合スコアmaxS=MRSと設定して更新する。ステップ654において、直前選択ノード番号p、照合文字位置X、選択文字MJ、最大の文字列照合スコアmaxSを互いに関連づけて格納する。
ステップ656において、m=m+1と設定する。その後、手順は図19Aのステップ612へ戻る。
図19Cを参照すると、図19Aのステップ604のNO分岐の後、ステップ662において、末尾ノードの順序番号jを初期値j=1、末尾ノードの最大の文字列照合スコアMAXを初期値MAX=0と設定する。
ステップ664において、文字切り出し領域の末尾ノードとしてのj番目のノードが存在するかどうかを判定する。それが存在しないと判定された場合は、ステップ676において、決定された末尾ノードLastから先行ノードへと辿って選択文字をつないで最尤文字列を決定する。
ステップ664において末尾ノードとしてのj番目のノードが存在すると判定された場合は、ステップ666において、末尾ノードとしてのj番目のノード番号をAと設定する。ステップ668において、A番ノードの文字列照合スコアMRSが最大の文字列照合スコアMAXより大きいかどうかを判定する。MRSがMAXより大きくないと判定された場合は、ステップ672において、j=j+1と設定する。一方、MRSがMAXより大きいと判定された場合は、ステップ670において、MAX=MRS、Last=Aと設定する。
図20A〜20Eは、最尤文字列決定部248によって実行される、図17Aまたは18Aのステップ522の詳細な別のフローチャートを示している。この場合、最尤文字の決定のための処理は、脱字および余剰文字の検出を含んでいる。
図20Aにおいて、ステップ602〜606および610〜616は、図19Aのものと同様である。ステップ606においてn番ノードが先頭の切り出し領域であると判定された場合は、図19Aのステップ608に代わるステップ618において、正解文字列における照合文字の位置Xを初期値X=1、最尤文字列におけるn番ノードの文字位置Yを初期値Y=1、最大の文字列照合スコアmaxSを初期値maxS=0と設定する。続いて、ステップ609において、直前選択ノードのノード番号pをなしと設定する。その後、手順はステップ636に進む。
ステップ612においてリンク番号mがM以下であると判定された場合は、ステップ613において、直前選択ノード番号pをn番ノードに直前に接続するm番目のノードのノード番号と設定する。続いて、ステップ621において、正解文字列における照合文字位置XをX=p番ノードの照合文字位置+1と設定し、文字位置YをY=p番ノードの文字位置+1と設定する。その後、手順は図20Bのステップ636に進む。
図20Bにおいて、ステップ636は図19Bのものと同様である。ステップ636においてXがLより大きいと判定された場合は、手順は図20Dのステップ644へ進む。XがLより大きくないと判定された場合は、手順はステップ682において、照合文字位置iを初期値i=Xと設定する。ステップ684において、照合文字位置iがXとaの和(X+a)以上(i≧X+a)かどうかを判定する。ここで、aは所定の数値である。一方、iがXとaの和以上であると判定された場合は、ステップ686においてリンク番号m=m+1と設定する。その後、手順は図20Aのステップ612に戻る。
ステップ684においてiがXとaの和以上でないと判定された場合は、ステップ685においてiがLより大きいかどうかを判定する。iが正解文字列の長さLより大きいと判定された場合は、手順はステップ686に進む。一方、iが長さLより大きくないと判定された場合は、手順は図20Cのステップ687へ進む。
図20Cを参照すると、ステップ687において、正解文字列のi番目の文字がノードにおける文字候補に存在するかどうかを判定する。i番目の文字がノードにおける文字候補に存在しないと判定された場合は、ステップ645において、文字照合スコアMS=不一致値または最低値、選択文字MJとして最大スコアの候補文字、照合文字位置MI=X−1を設定する。一方、i番目の文字がノードにおける候補に存在すると判定された場合は、ステップ647において、文字スコアMS=ノードにおける照合文字位置iの文字のスコア+加算値(一致値)、選択文字MJとして正解文字列のi番目の文字、照合文字位置MI=iを設定する。その後、手順はステップ649へ進む。
ステップ649において、文字列照合スコア=(p番ノードのMRS×(Y−1)+MS)/Yと設定する。ステップ651において、文字列照合スコアMRSが最大の文字列照合スコアmaxSより大きいかどうかを判定する。文字列照合スコアMRSが最大スコアmaxSより大きくないと判定された場合は、手順はステップ698進み、その後、図20Bのステップ684へ戻る。
ステップ651において文字列照合スコアMRSが最大の文字列スコアmaxSより大きいと判定された場合は、ステップ652において、最大の文字列スコアmaxS=MRSと設定する。ステップ696において、照合文字位置MI、選択文字MJ、最大の文字列照合スコアmaxS、文字位置Y、直前選択ノードとしてp番ノード、をn番ノードに関連づけて格納する。その後、手順はステップ698に進む。
図20Dを参照すると、図20Bのステップ636のYES分岐の後のステップ644において、文字照合スコアMS=不一致値または最低値、選択文字MJとして最大スコアの候補文字を設定する。
図20Dのステップ649〜652は図20Cのものと同様である。ステップ651において文字列照合スコアMRSが最大スコアmaxSより大きくないと判定された場合は、手順は図20Aのステップ612へ戻る。
ステップ652の後のステップ708において、照合文字位置X、選択文字MJ、最大の文字列照合スコアmaxMRS、文字位置Y、直前の選択ノードとしてp番ノード、をn番ノードに関連づけて格納する。ステップ712において、m=m+1と設定する。その後、手順はステップ612に戻る。
図20Eを参照すると、図20Aのステップ604の後のステップ662〜672は図19Cのものと同様である。
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素を組み合わせること、その変形およびバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理および請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
以上の実施例を含む実施形態に関して、さらに以下の付記を開示する。
(付記1) 筆跡情報記憶領域、文字切り出し領域候補記憶領域、文字認識辞書記憶領域、正解文字列記憶領域および誤り情報記憶領域を含む記憶手段と、
入力された筆跡情報を前記筆跡情報記憶領域に格納する筆跡情報格納手段と、
前記筆跡情報記憶領域から筆跡情報を読み出す筆跡情報読み出し手段と、
前記読み出した筆跡情報を文字単位の複数の領域候補に切り出す文字切り出し領域候補生成手段と、
前記文字切り出し領域候補生成手段により生成された領域候補内の筆跡情報に対して、前記文字認識辞書記憶領域における文字認識辞書の情報に基づいて個々に文字認識を行って複数の候補文字を生成する個別文字認識手段と、
前記複数の領域候補の中の可能な組み合わせの各領域候補に対する前記複数の候補文字を、前記正解文字列記憶領域における正解文字列における文字と照合して、最尤文字列を決定する最尤文字列決定手段と、
前記最尤文字列を前記正解文字列と照合して誤り文字の位置を抽出して前記誤り情報記憶領域に格納する誤り文字位置抽出手段と、
を含むことを特徴とする学習支援システム。
(付記2) さらに、前記誤り文字の位置に対応する前記文字単位の領域候補における位置を誤り情報として抽出する誤り抽出手段を含むことを特徴とする、付記1に記載の学習支援システム。
(付記3) さらに、ユーザによって入力された筆跡を前記筆跡情報格納手段に供給する筆跡入力手段と、
前記ユーザによって付勢された採点指示を前記筆跡情報読み出し手段に供給する採点指示手段と、
前記入力された筆跡情報を表示器に表示する筆跡表示手段と、
前記誤り抽出手段によって抽出された誤り情報の有無に従って前記最尤文字列の正誤を判定して前記表示器に正誤を表示する正誤判表示定手段と、
前記誤り抽出手段によって抽出された誤り情報を前記表示器に表示する誤り情報表示手段と、
を含むことを特徴とする、付記2に記載の学習支援システム。
(付記4) 前記記憶手段は、さらに文字評価辞書記憶領域を含み、
さらに、前記最尤文字列に対応する前記領域候補の筆跡情報に対して前記文字評価辞書記憶領域における文字評価辞書情報に基づいて前記領域候補の筆跡情報の前記正解文字列中の対応する文字位置の正解文字としての正しさを評価する文字評価手段と、
前記文字評価手段によって誤字と判定された前記領域候補を抽出する誤字位置抽出手段と、
を含み、
前記誤り情報表示手段は、前記入力された筆跡情報における誤字の位置を前記表示器に表示するものであることを特徴とする、
付記1乃至3のいずれかに記載の学習支援システム。
(付記5) ネットワークを介して情報処理端末に接続可能なサーバ上に実装されていることを特徴とする、付記1または2に記載の学習支援システム。
(付記6) スタンドアローン型の情報処理装置上に実装されていることを特徴とする、付記1乃至4のいずれかに記載の学習支援システム。
(付記7) 前記複数の候補文字にそれぞれの認識スコアが与えられており、
前記最尤文字列決定手段は、前記複数の領域候補の中の或る領域候補に対する前記複数の候補文字の中の或る候補文字が前記正解文字列記憶領域における正解文字列の対応する文字位置の正解文字と一致した場合に、前記或る候補文字を選択して前記或る候補文字の認識スコアに加算値を加えて前記或る候補文字の文字照合スコアを生成し、
前記最尤文字列決定手段は、前記複数の領域候補の中の或る領域候補における前記複数の候補文字の中のいずれの候補文字も前記正解文字列記憶領域における正解文字列の対応する文字位置の正解文字と一致しなかった場合に、前記複数の候補文字の中から最も高い認識スコアを有する不一致の候補文字を選択して前記不一致の候補文字の文字照合スコアを最低値に設定し、
最尤文字列決定手段は、前記文字照合スコアの平均値が最も高い前記複数の領域候補の中の可能な組み合わせの各領域候補に対する前記選択された候補文字を、最尤文字列と決定するものであることを特徴とする、付記1乃至6のいずれかに記載の学習支援システム。
(付記8) 前記最尤文字列決定手段は、前記複数の領域候補における各領域候補に対する前記複数の候補文字を前記正解文字列の文字と照合する際、前記複数の候補文字において、前記正解文字列における文字が欠落しているかどうかおよび前記正解文字列に存在しない余剰文字が存在するかどうかを判定し、前記正解文字列における文字が欠落している場合には前記領域候補におけるその欠落文字の位置を決定し、前記正解文字列に存在しない余剰文字が存在する場合には前記領域候補におけるその余剰文字の位置を決定するものであることを特徴とする、付記1乃至6のいずれかに記載の学習支援システム。
(付記9) 前記誤り情報表示手段は、前記表示器において、前記入力された筆跡情報における誤り文字を強調表示し、それと共に対応する前記正解文字列を表示し、前記入力された筆跡情報における誤り文字に対応する前記正解文字列における文字の位置を強調表示するものであることを特徴とする、付記3に記載の学習支援システム。
(付記10) 前記誤り情報表示手段は、前記表示器において、前記誤り文字としての誤字と異字を区別できる形態で表示するものであることを特徴とする、付記9に記載の学習支援システム。
(付記11) 前記誤り情報表示手段は、前記正解文字列における文字が欠落している場合には前記領域候補におけるその欠落文字の位置を表示し、前記正解文字列に存在しない余剰文字が存在する場合には前記領域候補におけるその余剰文字の位置を表示するものであることを特徴とする、付記3に記載の学習支援システム。
(付記12) 筆跡情報記憶領域、文字切り出し領域候補記憶領域、文字認識辞書記憶領域、正解文字列記憶領域および誤り情報記憶領域を含む記憶手段と、プロセッサとを具える情報処理装置に用いられるプログラムであって、
入力された筆跡情報を前記筆跡情報記憶領域に格納するステップと、
前記筆跡情報記憶領域から筆跡情報を読み出すステップと、
前記読み出した筆跡情報を文字単位の複数の領域候補に切り出すステップと、
前記文字切り出し領域候補生成手段により生成された複数の領域候補内の筆跡情報に対して、前記文字認識辞書記憶領域における文字認識辞書の情報に基づいて個々に文字認識を行って複数の候補文字を生成するステップと、
前記複数の領域候補の中の可能な組み合わせの各領域候補に対する前記複数の候補文字を、前記正解文字列記憶領域における正解文字列における文字と照合して、最尤文字列を決定するステップと、
前記最尤文字列を前記正解文字列と照合して誤り文字の位置を抽出して前記誤り情報記憶領域に格納するステップと、
を実行させるよう動作可能なプログラム。
(付記13) 筆跡情報記憶領域、文字切り出し領域候補記憶領域、文字認識辞書記憶領域、正解文字列記憶領域および誤り情報記憶領域を含む記憶手段と、プロセッサとを具える情報処理装置に用いられる学習支援方法であって、
入力された筆跡情報を前記筆跡情報記憶領域に格納する工程と、
前記筆跡情報記憶領域から筆跡情報を読み出す工程と、
前記読み出した筆跡情報を文字単位の複数の領域候補に切り出す工程と、
前記文字切り出し領域候補生成手段により生成された複数の領域候補内の筆跡情報に対して、前記文字認識辞書記憶領域における文字認識辞書の情報に基づいて個々に文字認識を行って複数の候補文字を生成する工程と、
前記複数の領域候補の中の可能な組み合わせの各領域候補に対する前記複数の候補文字を、前記正解文字列記憶領域における正解文字列における文字と照合して、最尤文字列を決定する工程と、
前記最尤文字列を前記正解文字列と照合して誤り文字の位置を抽出して前記誤り情報記憶領域に格納する工程と、
を含む、学習支援方法。