(57)【要約】【課題】数式の誤認識部分を簡易かつ直感的に修正させる。【解決手段】ユーザの編集操作に応じて、既に解析済の数式に含まれる構成要素のレイアウト情報を変更する変更部１３を備え、変更部１３は、所定数学記号に対して伸縮操作を行った場合に、当該数学記号の演算対象となる構成要素の範囲を変更する範囲変更処理と、所定構成要素に対して移動操作を行った場合に、当該構成要素の位置を移動後の位置に変更し、当該構成要素のサイズを移動後の位置に対応するサイズに変更する連動型意味変更処理と、所定構成要素に対して選択操作を行った場合に、当該構成要素に基づいて解釈可能な複数の解釈候補を表示し、一の解釈候補を選択した場合に、当該構成要素のレイアウトを一の解釈候補が示すレイアウトに変更する非連動型意味変更処理と、を実行する。【選択図】図１
2011141592.tif 000002
【特許請求の範囲】
【請求項１】
数式に含まれる複数の構成要素のレイアウト情報を記憶する記憶部と、
ユーザの編集操作に応じて、前記記憶部に記憶した前記構成要素のレイアウト情報を変更する変更部と、
前記構成要素のレイアウト情報に基づいて、数式を表示する表示部と、
を備え、
前記変更部は、少なくとも、
前記構成要素のうち所定の数学記号に対して伸縮操作を行った場合に、当該伸縮操作に従って伸縮した前記数学記号の演算対象となる前記構成要素の範囲を変更することで前記構成要素のレイアウト情報を変更する第１の変更部、
一または複数の前記構成要素に対して移動操作を行った場合に、当該移動操作に従って移動した前記構成要素の位置を移動後の位置に変更し、前記移動操作に従って移動した前記構成要素のサイズを前記移動後の位置に対応するサイズに変更することで前記構成要素のレイアウト情報を変更する第２の変更部、
一または複数の前記構成要素に対して選択操作を行った場合に、当該選択操作で選択した前記構成要素に基づいて解釈可能な複数の解釈候補を表示し、当該表示した複数の解釈候補から一の解釈候補を選択した場合に、前記選択操作で選択した前記構成要素のレイアウトを、前記一の解釈候補が示すレイアウトに変更することで前記構成要素のレイアウト情報を変更する第３の変更部、
のうちのいずれかを有することを特徴とする数式レイアウト変更装置。
【請求項２】
数式に含まれる複数の構成要素のレイアウト情報を解析する解析部を、さらに備え、
前記変更部は、前記解析部で解析した前記構成要素のレイアウト情報を変更することを特徴とする請求項１記載の数式レイアウト変更装置。
【請求項３】
前記変更部で変更した前記構成要素のレイアウト情報に基づいて数式の構造を示す数式構造情報を生成する数式構成部を、さらに備え、
前記表示部は、前記構成要素のレイアウト情報および前記数式構造情報に基づいて、数式を表示することを特徴とする請求項１または２記載の数式レイアウト変更装置。
【請求項４】
数式に含まれる複数の構成要素のレイアウト情報を記憶する記憶ステップと、
ユーザの編集操作に応じて、前記記憶された前記構成要素のレイアウト情報を変更する変更ステップと、
前記構成要素のレイアウト情報に基づいて、数式を表示する表示ステップと、
を含み、
前記変更ステップにおいて、少なくとも、
前記構成要素のうち所定の数学記号に対して伸縮操作を行った場合に、当該伸縮操作に従って伸縮した前記数学記号の演算対象となる前記構成要素の範囲を変更することで前記構成要素のレイアウト情報を変更する第１の変更ステップ、
一または複数の前記構成要素に対して移動操作を行った場合に、当該移動操作に従って移動した前記構成要素の位置を移動後の位置に変更し、前記移動操作に従って移動した前記構成要素のサイズを前記移動後の位置に対応するサイズに変更することで前記構成要素のレイアウト情報を変更する第２の変更ステップ、
一または複数の前記構成要素に対して選択操作を行った場合に、当該選択操作で選択した前記構成要素に基づいて解釈可能な複数の解釈候補を表示し、当該表示した複数の解釈候補から一の解釈候補を選択した場合に、前記選択操作で選択した前記構成要素のレイアウトを、前記一の解釈候補が示すレイアウトに変更することで前記構成要素のレイアウト情報を変更する第３の変更ステップ、
のうちのいずれかを含むことを特徴とする数式レイアウト変更方法。
【請求項５】
請求項４に記載の各ステップをコンピュータに実行させるための数式レイアウト変更プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数式レイアウト変更装置、数式レイアウト変更方法および数式レイアウト変更プログラムに関する。
【背景技術】
【０００２】
数式を認識して電子化する場合、数式の構成要素となる文字や記号を識別し、文字や記号の並びや配置、大きさ等を検出して数式構造を解析し、数式としての意味を正確に識別することが要求される。しかしながら、現在の技術水準では識別精度に限界があるため、誤認識の発生は不可避である。さらに、認識対象が手書きである場合には、文字や記号の位置や大きさが記入者によって異なるため、誤認識の発生率はさらに高まる。したがって、数式を認識して電子化する場合には、誤認識部分を修正するためのユーザインタフェースが必要となる。
【０００３】
数式を修正する場合には、文字や記号のみならず、数式構造や数式としての意味についても修正する必要があるため、修正作業は煩雑となる。下記特許文献１には、誤認識した数式構造部分を修正する際に、予め用意された複数の数式構造の中から対象となる数式構造を選択させ、選択した数式構造を編集することで数式構造の誤認識を修正可能な数式認識装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５６７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献１に記載された修正方法では、数式構造を選択することはできるものの、数式構造に含まれる文字や記号等を新たに入力する必要があるため、依然として煩雑な修正作業を要する。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、数式の誤認識部分を簡易かつ直感的に修正できる数式レイアウト変更装置、数式レイアウト変更方法および数式レイアウト変更プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の数式レイアウト変更装置は、数式に含まれる複数の構成要素のレイアウト情報を記憶する記憶部と、ユーザの編集操作に応じて、記憶部に記憶した構成要素のレイアウト情報を変更する変更部と、構成要素のレイアウト情報に基づいて、数式を表示する表示部と、を備え、当該変更部は、少なくとも、構成要素のうち所定の数学記号に対して伸縮操作を行った場合に、当該伸縮操作に従って伸縮した数学記号の演算対象となる構成要素の範囲を変更することで構成要素のレイアウト情報を変更する第１の変更部、一または複数の構成要素に対して移動操作を行った場合に、当該移動操作に従って移動した構成要素の位置を移動後の位置に変更し、移動操作に従って移動した構成要素のサイズを移動後の位置に対応するサイズに変更することで構成要素のレイアウト情報を変更する第２の変更部、一または複数の構成要素に対して選択操作を行った場合に、当該選択操作で選択した構成要素に基づいて解釈可能な複数の解釈候補を表示し、当該表示した複数の解釈候補から一の解釈候補を選択した場合に、選択操作で選択した構成要素のレイアウトを、一の解釈候補が示すレイアウトに変更することで構成要素のレイアウト情報を変更する第３の変更部、のうちのいずれかを有する。
【０００８】
本発明の数式レイアウト変更方法は、数式に含まれる複数の構成要素のレイアウト情報を記憶する記憶ステップと、ユーザの編集操作に応じて、記憶した構成要素のレイアウト情報を変更する変更ステップと、構成要素のレイアウト情報に基づいて、数式を表示する表示ステップと、を含み、当該変更ステップにおいて、少なくとも、構成要素のうち所定の数学記号に対して伸縮操作を行った場合に、当該伸縮操作に従って伸縮した数学記号の演算対象となる構成要素の範囲を変更することで構成要素のレイアウト情報を変更する第１の変更ステップ、一または複数の構成要素に対して移動操作を行った場合に、当該移動操作に従って移動した構成要素の位置を移動後の位置に変更し、移動操作に従って移動した構成要素のサイズを移動後の位置に対応するサイズに変更することで構成要素のレイアウト情報を変更する第２の変更ステップ、一または複数の構成要素に対して選択操作を行った場合に、当該選択操作で選択した構成要素に基づいて解釈可能な複数の解釈候補を表示し、当該表示した複数の解釈候補から一の解釈候補を選択した場合に、選択操作で選択した構成要素のレイアウトを、一の解釈候補が示すレイアウトに変更することで構成要素のレイアウト情報を変更する第３の変更ステップ、のうちのいずれかを含む。
【０００９】
本発明の数式レイアウト変更プログラムは、上記数式レイアウト変更方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【００１０】
本発明によれば、数式の誤認識部分を簡易かつ直感的に修正させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態における数式認識システムの構成を示すブロック図である。
【図２】レイアウト情報を説明するための図である。
【図３】（ａ）は、総和演算の数式を示した図であり、（ｂ）は、（ａ）に示す総和演算の数式を構成する構成要素のレイアウト情報を模式化して表した図である。
【図４】（ａ）は、一般的なツリー型のデータ構造を示す図であり、（ｂ）は、図３（ａ）の数式に基づいて生成される数式構造情報の一例を示す図である。
【図５】平方根記号の演算対象となる構成要素の範囲を変更する際の過程を模式的に示した図である。
【図６】（ａ）は、一の構成要素を指数または添え字に変更する際の過程を模式的に示した図であり、（ｂ）は、複数の構成要素を指数または添え字に変更する際の過程を模式的に示した図である。
【図７】複数の構成要素を解釈の異なる他の組み合わせに変更する際の過程を模式的に示した図である。
【図８】数式認識システムにおける数式認識処理の手順を説明するためのフローチャートである。
【図９】図８のステップＳ１０７で実行する範囲変更処理の処理手順を説明するためのフローチャートである。
【図１０】（ａ）は、範囲変更処理前のレイアウト情報を模式的に示した図であり、（ｂ）は、範囲変更処理後のレイアウト情報を模式的に示した図である。
【図１１】図８のステップＳ１０８で実行する連動型意味変更処理の処理手順を説明するためのフローチャートである。
【図１２】（ａ）は、連動型意味変更処理前のレイアウト情報を模式的に示した図であり、（ｂ）は、連動型意味変更処理後のレイアウト情報を模式的に示した図である。
【図１３】図８のステップＳ１０９で実行する非連動型意味変更処理の処理手順を説明するためのフローチャートである。
【図１４】（ａ）は、非連動型意味変更処理前のレイアウト情報を模式的に示した図であり、（ｂ）は、非連動型意味変更処理後のレイアウト情報を模式的に示した図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明に係る数式レイアウト変更装置、数式レイアウト変更方法および数式レイアウト変更プログラムの好適な実施形態について説明する。
【００１３】
まず、図１を参照して、実施形態における数式レイアウト変更装置を含む数式認識システム１の構成について説明する。図１に示すように、数式認識システム１は、機能的には、例えば、数式認識部１１と、表示部１２と、変更部１３とを有する。
【００１４】
ここで、数式認識システム１は、物理的には、例えば、ＣＰＵと、メモリと、入力装置と、表示装置とを含んで構成される。メモリには、例えば、ＣＰＵで処理されるプログラムやデータを記憶するＲＯＭと、主として制御処理のための各種作業領域として使用されるＲＡＭとが含まれる。入力装置には、例えば、マウスやキーボード、電子ペン、スキャナ等が含まれる。表示装置としては、例えば、ディスプレイが該当する。これらの要素は、互いにバスを介して接続されている。ＣＰＵが、ＲＯＭに記憶されたプログラムを実行し、入力装置から入力したデータやＲＡＭに展開されたデータを用いて各種の処理を行い、処理結果を表示装置に表示することで、図１に示す数式認識システム１が有する各部の機能を実現できる。
【００１５】
数式認識部１１は、入力データである数式データを認識し、後述するレイアウト情報および数式構造情報を生成する。本実施形態における数式データは、手書きの数式をデータ化したものである。手書きの数式をデータ化したものとしては、例えば、電子ペン入力によるストローク（点列）データや、鉛筆等で紙に手書きしたものをスキャナ入力した画像データが該当する。なお、数式データのデータ形式はこれに限定されない。それぞれのデータ形式に合わせたアルゴリズムを組み込むことで他の処理への影響を回避可能なデータ形式であれば、どのようなデータ形式であってもよい。
【００１６】
変更部１３は、ユーザの編集操作に従って後述するレイアウト情報および数式構造情報を修正する。この変更部１３が、本発明に係る数式レイアウト変更装置の機能に該当する。
【００１７】
表示部１２は、後述するレイアウト情報および数式構造情報に基づいて、数式認識部１１によって認識した後の数式または変更部１３によって修正した後の数式をディスプレイ１６に表示する。
【００１８】
以下において、数式認識部１１、変更部１３および表示部１２の機能について詳細に説明する。図１に示すように、数式認識部１１は、レイアウト解析部１１１と、文字認識部１１２と、数式構成部１１３とを有する。
【００１９】
レイアウト解析部１１１は、レイアウト解析処理を実行するとともに、レイアウト解析処理で生成したレイアウト情報をレイアウト情報ＤＢ１４に格納する。レイアウト解析処理は、入力した数式データが１文字単位に区分し、区分した各文字の位置や大きさを算出するとともに、算出した各文字の位置や大きさに基づいて、各文字間の繋がりに関する情報等を算出する。そして、レイアウト解析処理は、算出した各種の情報に基づいて、レイアウト情報を生成する。なお、レイアウト解析処理を実現する解析手法として、例えば、特開平０８−３０５７９３号公報および特開平０９−５０４８５号公報に記載されている一般的な解析手法を用いることができる。
【００２０】
図２を参照してレイアウト情報について説明する。レイアウト情報は、データ項目として、例えば、文字表記項目、文字タイプ項目、文字サイズ項目、文字矩形項目、リンク情報項目、内包情報項目および添え字情報項目を有する。レイアウト情報は、レイアウト解析部１１１によって区分した文字ごとに生成する。
【００２１】
文字表記項目には、例えば、“Σ”や“＝”のように、その文字の意味を表す文字コードを格納する。なお、後述する文字認識処理によって文字コードの候補が複数存在する場合には、第１候補の文字コードだけではなく第２候補以降の文字コードも格納することとしてもよい。
【００２２】
文字タイプ項目には、例えば、“内包文字”や“通常文字”のように、その文字が他の文字を内包しているか否かを示す文字の種類を格納する。
【００２３】
文字サイズ項目には、例えば、“大”や“小”のように、その文字を画面に表示する際の文字フォントのサイズを格納する。文字サイズは、例えば、“Σ”や“∫”等の演算記号には“大”を割り当て、添え字には“小”を割り当てる。
【００２４】
文字矩形項目には、“（Ｘ１，Ｙ１）−（Ｘ２，Ｙ２）”のように、その文字を画面に表示する際の位置として文字を含む矩形のうちの２点（始点−終点）の座標値を格納する。
【００２５】
リンク情報項目には、例えば、“左：「ｋ」”や“右：「０」”のように、その文字が他のどの文字と繋がりがあるのかを示す情報を格納する。数式では、各文字が縦横の直線的な並びになることが多いため、上下左右にどの文字があるのかを記録しておくことで、数式を構成する文字間の関係を認識できる。
【００２６】
内包情報項目には、例えば平方根のように数学記号が対象式等の文字を包含する場合、その包含する文字の範囲を、例えば、“始端：「（」、終端：「」」”のように格納する。
【００２７】
添え字情報項目には、例えば、“Σ”のように数学記号の上下等に添え字を記述している場合に、添え字となる文字に関する情報（添え字の意味、添え字の位置、接続タイプ、接続先の文字矩形、リンク情報）を、添え字の個数分だけ格納する。
【００２８】
リンク情報項目、内包情報項目および添え字情報項目によって、文字間の接続関係が表現可能となる。
【００２９】
図３を参照してレイアウト情報についてより具体的に説明する。
【００３０】
図３（ａ）は、総和演算の数式を示した図である。図３（ａ）に示す数式は、総和記号“Σ”が、添え字として演算範囲を示す“Ｋ＝０”および“８”を有し、総和演算の対象となる右辺式“（ａk＋ｂk）”を内包している。右辺式“（ａk＋ｂk）”および添え字式“Ｋ＝０”は、左から右に直線的に繋がり、右辺式“（ａk＋ｂk）”の変数“ａ”および“ｂ”は、添え字として変数“ｋ”を有している。
【００３１】
図３（ｂ）は、図３（ａ）に示す総和演算の数式を構成する構成要素のうち、総和記号“Σ”および添え字に含まれる“＝”のレイアウト情報を吹き出し部に模式化して表した図である。
【００３２】
“＝”のレイアウト情報を参照すると、文字タイプは“通常文字”であることがわかり、リンク情報によると“＝”の左隣に“ｋ”が接続し、右隣に“０”が接続していることがわかる。また、内包情報および添え字情報は共に“なし”となっているため、“＝”に内包する文字は存在せず、“＝”の添え字となる文字も存在しないことがわかる。
【００３３】
“Σ”のレイアウト情報を参照すると、文字タイプは“内包文字”であることがわかる。リンク情報が“なし”となっているため、“Σ”は他の文字への接続を有さず、解析対象の数式は総和演算単体の数式であることがわかる。また、内包情報によると、“Σ”に内包する文字の範囲が“（”から“）”までとなっているため、“Σ”は、“（ａk＋ｂk）”を右辺式として内包していることがわかる。さらに、添え字情報に“ｋ＝０”と“８”の情報を格納しているため、“Σ”の上下に位置する添え字が“ｋ＝０”と“８”であることがわかる。
【００３４】
なお、レイアウト情報のデータ構成は、図２に示すデータ構成には限定されず、数式を構成する各文字間の関係を表現できれば、他のデータ構成であってもよい。
【００３５】
図１に示す文字認識部１１２は、文字認識処理を実行するとともに、文字認識処理によって認識した文字でレイアウト情報を更新する。文字認識処理では、レイアウト解析部１１１によって１文字単位に区分した各文字に対して文字認識を行う。なお、文字認識処理を実現する文字認識手法としては、あらゆる文字認識手法を用いることができる。具体的には、例えば、基本ストローク手法やパターンマッチング手法を用いることができる。
【００３６】
数式構成部１１３は、数式構造認識処理を実行するとともに、数式構造認識処理によって生成した数式構造情報を数式構造情報ＤＢ１５に格納する。数式構造認識処理では、レイアウト情報に基づいて数式の演算方法や演算順序を表す数式構造情報を生成する。数式構造情報は、例えば、数学記号の規則、個々の文字が有する意味、周辺に存在する文字との位置関係、文字サイズの大小関係等に基づいて、生成する。
【００３７】
図４を参照して数式構造情報について説明する。図４（ａ）は、一般的なツリー型のデータ構造を示す。本実施形態における数式構造情報は、例えば、図４（ａ）に示すツリー型のデータ構造によって表すことができる。このデータ構造は、処理や定義等を表す“節”と、定数や変数等を表す“葉”と、それらを接続する“枝”とから成る階層構造を有する。数式の演算方法や演算順序は、上記データ構造の下層から上層に向かってツリーを辿ることで表できる。図４（ｂ）は、図３（ａ）の数式に基づいて生成した数式構造情報の一例を示したものである。図４（ｂ）に示すデータ構造の下層から上層に向かってツリーを辿ると、図３（ａ）に示す総和演算の数式を表現できる。
【００３８】
なお、数式構造情報のデータ構造は、図４に示すツリー型のデータ構造には限定されず、数式を計算する順序や方法等の数式構造を示すことができれば、他のデータ構造であってもよい。
【００３９】
図１に示すように、変更部１３は、操作判定部１３１と、編集表示部１３２と、レイアウト変更部１３３とを有する。
【００４０】
操作判定部１３１は、レイアウト情報ＤＢ１４および数式構造情報ＤＢ１５に登録されているレイアウト情報および数式構造情報により表される数式に対して行われたユーザの編集操作の内容を判定する。ユーザが編集操作を行う入力装置は、編集箇所を座標レベルで指し示すことができるものであればよい。具体的には、例えば、電子ペンやマウス等のポインティングデバイスを用いることができる。
【００４１】
編集表示部１３２は、ユーザの編集操作に応じて移動する文字や、サイズが変わる文字等をディスプレイ１６に表示する。
【００４２】
レイアウト変更部１３３は、ユーザの編集操作に応じてレイアウト情報を更新する。レイアウト変更部１３３がレイアウト情報を更新すると、数式認識部１１の数式構成部１１３は、更新したレイアウト情報に基づいて数式構造認識処理を実行し、数式構造情報を更新する。
【００４３】
レイアウト変更部１３３は、レイアウト情報を変更する変更処理として、範囲変更処理、連動型意味変更処理および非連動型意味変更処理を実行する。つまり、レイアウト変更部１３３は、範囲変更処理を実行する第１の変更部と、連動型意味変更処理を実行する第２の変更部と、非連動型意味変更処理を実行する第３の変更部と、を有する。なお、これら３種類の変更処理によって、数式構造の誤りとして考えられるパターンのほとんどをカバーすることが可能となる。以下に３種類の変更処理の内容について詳細に説明する。
【００４４】
範囲変更処理は、ユーザの編集操作によって編集対象に指定した数学記号の演算対象となる構成要素の範囲を変更することで数式の意味を変更する処理である。
【００４５】
範囲変更処理で編集対象となる数学記号としては、例えば、括弧記号“（）”、絶対値記号“｜｜”、行列記号“[]”、分数記号“−”、平方根記号“√”、ベクトル記号“→”、総和記号“Σ”、総積記号“Π”、積分記号“∫”、連立方程式記号“｛”が該当する。これらの数学記号は、数学記号と各構成要素との位置関係によって演算範囲が決まる数学記号である。これらの数学記号の物理的な長さまたは大きさによって、数式を構成する各構成要素のどの部分が演算対象となるのかを示すことができる。例えば、分数記号“−”の場合には、演算対象となる分母および分子の範囲は、分数記号“−”の長さによって定まる。つまり、数学記号の物理的な長さまたは大きさを伸縮することで、演算対象となる構成要素の範囲を変更することが可能となる。
【００４６】
なお、範囲変更処理で編集対象となる数学記号は、例えば、テーブルに記憶され、参照可能に管理される。
【００４７】
図５を参照して、範囲変更処理による変更内容について具体的に説明する。図５は、平方根記号“√”の演算対象となる構成要素の範囲を、“２”から“２−ｙ”に変更する際の過程を模式的に示した図である。
【００４８】
最初に、ユーザが編集対象となる“√”をポインティングデバイスでタップすると、“√”が伸縮可能な状態に移行する。続いて、ユーザが“√”の右上端部をポインティングデバイスで右方向に移動させると、ポインティングデバイスの移動に応じて“√”の横線が右方向に伸びていく。続いて、“√”の横線が“ｙ”の上方を経過し終えた時点でユーザがポインティングデバイスを離すと、“√”の演算対象となる構成要素の範囲が確定する。つまり、この時点で“√”の横線の下部に位置する“２−ｙ”が平方根記号“√”の演算対象となる。
【００４９】
なお、図５では演算範囲を右方向に拡張する例を示したが、左方向への縮小や、上下方向への伸縮も同様の操作で行うことができる。
【００５０】
連動型意味変更処理は、ユーザの編集操作によって編集対象に指定した構成要素を他の位置に移動することで数式の意味を変更する処理である。構成要素を他の位置に移動する方法としては、例えば、構成要素を特定の数学記号の特定位置に移動する方法と、特定の数学記号の特定位置にある構成要素をこの数学記号の特定位置以外に移動させる方法とがある。
【００５１】
連動型意味変更処理で編集対象となる数学記号としては、例えば、べき乗“Ｘn”、べき乗根“n√”、添え字“Ｘn”、総和記号“Σ”、総積記号“Π”、積分記号“∫”、極限記号“lim”、対数記号“loga”が該当する。これらの数学記号は、数学記号の特定位置にある構成要素を用いて演算する数学記号である。構成要素が数学記号の特定位置にあるか否かによって構成要素が数学記号の演算に用いられるものであるのか否かが決まる。
【００５２】
なお、連動型意味変更処理で編集対象となる数学記号は、例えば、テーブルに記憶され、参照可能に管理される。
【００５３】
例えば、“Ｘ”の“２”乗の場合、文字認識で“Ｘ”および“２”の認識に成功した場合であっても、“２”の位置および大きさを誤認識すると、“Ｘ２”と認定されることがある。このような場合に、“２”を“Ｘ”の右隣りから右上に移動することで、“２”が“Ｘ”の指数であることを示す。この移動操作によって、“Ｘ２”を“Ｘ”の“２”乗に変更できる。一方、“Ｘ２”を“Ｘ”の“２”乗に誤認識した場合には、“２”を“Ｘ”の右上から右隣に移動することで、“２”が“Ｘ”の指数ではないことを示す。この移動操作によって、“Ｘ”の“２”乗を“Ｘ２”に変更できる。
【００５４】
図６を参照して、連動型意味変更処理による変更内容について具体的に説明する。図６（ａ）は、独立した構成要素として認識した“Ｘ”および“ｉ”を、“ｉ”を“Ｘ”の特定位置に移動することで、“ｉ”を“Ｘ”の指数または添え字に変更する際の過程を模式的に示した図である。
【００５５】
最初に、ユーザが編集対象となる“ｉ”をポインティングデバイスで選択してそのまま“ｉ”を“Ｘ”の右上または右下に向けてドラッグすると、ドラッグに合わせて“ｉ”の表示位置が移動する。続いて、“ｉ”を“Ｘ”の右上または右下に移動した時点でユーザがポインティングデバイスを離すと、“ｉ”の移動後の位置が確定する。続いて、移動後の位置が指数または添え字の位置であると判定された場合に、“ｉ”の表示サイズを小さくする等して、“ｉ”が“Ｘ”の指数または添え字に変更されたことをユーザに明示する。
【００５６】
なお、“ｉ”の表示サイズを変更するタイミングは、“ｉ”の移動後の位置が確定した後には限定されない。例えば、“ｉ”を移動しているときにリアルタイムで徐々に表示サイズを変更してもよい。これにより、ユーザは操作内容を確認しながら移動操作を確実に行うことができる。
【００５７】
図６（ａ）では、１文字を移動させる場合について例示したが、図６（ｂ）では、複数文字を移動させる場合について例示する。図６（ｂ）は、独立した構成要素として認識した“２”、“ｎ”、“√ａ”（ａの平方根）を、“２ｎ”を“√ａ”の特定位置に移動、または“ｎ√ａ”を“２”の特定位置に移動することで、“２ｎ”を“√ａ”の累乗根に変更、または“ｎ√ａ”を“２”の指数に変更する際の過程を模式的に示した図である。
【００５８】
最初に、ユーザが編集対象となる“２ｎ”または“ｎ√ａ”をポインティングデバイスで選択してそのまま“２ｎ”を“√ａ”の左上または“ｎ√ａ”を“２”の右上に向けてドラッグすると、ドラッグに合わせて“２ｎ”または“ｎ√ａ”の表示位置が移動する。続いて、“２ｎ”を“√ａ”の左上に移動または“ｎ√ａ”を“２”の右上に移動した時点でユーザがポインティングデバイスを離すと、“２ｎ”または“ｎ√ａ”の移動後の位置が確定する。続いて、移動後の位置が累乗根または指数の位置であると判定した場合に、“２ｎ”または“ｎ√ａ”の表示サイズを小さくして、“２ｎ”が“√ａ”の累乗根または“ｎ√ａ”が“２”の指数に変更したことをユーザに明示する。
【００５９】
なお、図６では通常文字を添え字に変更する例を示したが、添え字を通常文字に変更することも同様の操作で行うことができる。
【００６０】
非連動型意味変更処理は、ユーザの編集操作によって編集対象に指定した構成要素に基づいて解釈可能な解釈候補をユーザに提供し、一の解釈候補をユーザに選択することで数式の意味を変更する処理である。非連動型意味変更処理で編集対象となる数学記号としては、例えば、フーリエ変換記号“Ｆ”、ラプラス変換記号“Ｌ”、デルタ関数記号“δ”、総和記号“Σ”、総積記号“Π”、括弧記号“（）”、行列記号“[]”が該当する。これらの数学記号は、数学記号中に複数の解釈を含む可能性のある数学記号である。
【００６１】
なお、非連動型意味変更処理で編集対象となる数学記号は、例えば、テーブルに記憶され、参照可能に管理される。
【００６２】
例えば、数式の構成要素に、“Ｓ”、“ｉ”、“ｎ”、“ｘ”という文字列が含まれている場合に、この文字列の解釈としては、正弦関数を示す“Ｓｉｎ”および“ｘ”と、２変数の乗算を示す“Ｓｉ”および“ｎｘ”と、添え字として“ｉｎｘ”を有する変数“Ｓ”と、が考えられる。このように複数の解釈が存在する場合には、レイアウト情報に照らし合わせて最適な解釈を選択しても、必ずしも正しい解釈であるとは限らない。解釈ミスが判明した場合に、１文字ずつ個別に修正していては作業効率が低下する。非連動型意味変更処理は、これらの事情を考慮したものであり、予め考え得る解釈パターンを解釈候補としてユーザに提供し、ユーザに正しい解釈を選択することで、作業効率の向上を図るものである。
【００６３】
非連動型意味変更処理は、一つの数式を複数行に亘って記述した結果、複数の数式として解釈された場合や、複数の数式を誤って一つの数式として解釈された場合の変更処理としても有効である。解釈候補が多すぎて表示しきれない場合には、上位候補を優先して表示することや、解釈の評価値を定義して評価値が一定値以上となる候補を表示することとしてもよい。
【００６４】
図７を参照して、非連動型意味変更処理による変更内容について具体的に説明する。図７は、“Ｓi”および“ｎｘ”として認識した数式の構成要素を、正弦関数“Ｓｉｎｘ”に変更する際の過程を模式的に示した図である。
【００６５】
最初に、ユーザが編集対象となる“Ｓi”および“ｎｘ”の文字列を範囲指定してポインティングデバイスで選択する。続いて、“Ｓ”、“ｉ”、“ｎ”、“ｘ”という文字列に基づいて解釈可能な解釈候補の一覧を表示する。解釈候補の一覧を表示する要件として、例えば、編集対象文字列の再選択や、解釈候補一覧の表示ボタン選択等を定めることができる。
【００６６】
続いて、解釈候補の一覧から、正しい解釈である“Ｓｉｎｘ”をポインティングデバイスで選択する。続いて、解釈候補の一覧が非表示となり、“Ｓi”および“ｎｘ”として認識した数式の構成要素を、ユーザが選択した正弦関数“Ｓｉｎｘ”に変更する。
【００６７】
なお、解釈候補一覧に表示する解釈候補は、数式認識部１１によって数式を認識する際に解釈できた候補のうち、２位以下の候補を使用することとすればよい。また、解釈候補一覧から選択して変更した場合には、選択した時点で解釈候補一覧に表示する解釈候補を更新することとしてもよい。
【００６８】
図１に示すように、表示部１２は、数式表示部１２１を有する。数式表示部１２１は、数式構成部１１３が出力した数式構造情報に対応する数式をディスプレイ１６に表示する。つまり、数式表示部１２１は、数式認識部１１が数式を認識した場合には、認識後の数式をディスプレイ１６に表示し、変更部１３が数式を変更した場合には、変更後の数式をディスプレイ１６に表示する。
【００６９】
次に、図８を参照して本実施形態における数式認識システム１の動作について説明する。図８は、数式認識システム１における数式認識処理の手順を説明するためのフローチャートである。
【００７０】
最初に、ユーザの入力指示が、数式データの認識を依頼する認識指示か、数式データの修正を依頼する修正指示かを判定する（ステップＳ１０１）。認識指示や修正指示は、例えば、メニュー選択やボタン選択等によって入力されることとしてもよいし、ジェスチャ入力によって入力されることとしてもよい。
【００７１】
上記ステップＳ１０１の判定で、ユーザの入力指示が認識指示であると判定した場合に、レイアウト解析部１１１は、レイアウト解析処理を実行する（ステップＳ１０２）。続いて、文字認識部１１２は、文字認識処理を実行する（ステップＳ１０３）。続いて、数式構成部１１３は、数式構造認識処理を実行する（ステップＳ１０４）。続いて、表示部１２は、数式構造認識処理が出力する数式構造情報に対応する数式をディスプレイ１６に表示する（ステップＳ１０５）。
【００７２】
一方、上記ステップＳ１０１の判定で、ユーザの入力指示が修正指示であると判定した場合に、操作判定部１３１は、ユーザの編集操作の内容を判定する（ステップＳ１０６）。
【００７３】
レイアウト変更部１３３は、上記ステップＳ１０６の判定でユーザの編集操作が伸縮操作であると判定した場合には、範囲変更処理を実行し（ステップＳ１０７）、ユーザの編集操作が移動操作であると判定した場合には、連動型意味変更処理を実行し（ステップＳ１０８）、ユーザの編集操作が選択操作であると判定した場合には、非連動型意味変更処理を実行する（ステップＳ１０９）。続いて、上述したステップＳ１０４に処理を移行する。
【００７４】
なお、ステップＳ１０６以降の数式編集処理は、ステップＳ１０１〜ステップＳ１０５までの数式認識処理をあらかじめ実行し、レイアウト情報および数式構造情報がレイアウト情報ＤＢ１４および数式構造情報ＤＢ１５に登録されている数式に対して実行できる。
【００７５】
図９を参照して、図８のステップＳ１０７で実行する範囲変更処理の処理手順について説明する。
【００７６】
最初に、レイアウト変更部１３３は、伸縮操作の対象に指定した文字が範囲変更処理の対象となる数学記号であるか否かを判定する（ステップＳ２０１）。この判定がＮＯである場合（ステップＳ２０１；ＮＯ）には、範囲変更処理を終了する。
【００７７】
一方、このステップＳ２０１の判定で操作対象に指定した文字が処理対象となる数学記号であると判定した場合（ステップＳ２０１；ＹＥＳ）に、レイアウト変更部１３３は、伸縮操作による伸縮方向が、操作対象となる数学記号の伸縮可能な方向であるか否かを判定する（ステップＳ２０２）。例えば、操作対象となる数学記号が、分数記号“−”である場合には分数記号“−”の伸縮可能な方向は左右方向となり、積分記号“∫”である場合には積分記号“∫”の伸縮可能な方向は上下方向となる。この判定がＮＯである場合（ステップＳ２０２；ＮＯ）には、範囲変更処理を終了する。
【００７８】
一方、このステップＳ２０２の判定で伸縮操作による伸縮方向が操作対象となる数学記号の伸縮可能な方向であると判定した場合（ステップＳ２０２；ＹＥＳ）に、レイアウト変更部１３３は、伸縮操作が継続中であるか否かを判定する（ステップＳ２０３）。この判定がＹＥＳである場合（ステップＳ２０３；ＹＥＳ）に、レイアウト変更部１３３は、伸縮可能な範囲内であるか否かを判定する（ステップＳ２０４）。ここで、伸縮可能な範囲としては、例えば、数式全体の外接矩形の範囲や、ディスプレイ１６の表示領域の範囲等を設定できる。また、伸縮範囲内に文字が１文字も含まれない状況を回避するために、伸縮可能な範囲に最小値を設定することとしてもよい。
【００７９】
上記ステップＳ２０４の判定で伸縮可能な範囲内ではないと判定した場合（ステップＳ２０４；ＮＯ）には、後述するステップＳ２０６に処理を移行する。一方、伸縮可能な範囲内であると判定した場合（ステップＳ２０４；ＹＥＳ）に、編集表示部１３２は、操作対象となる数学記号を表示する際のサイズを、伸縮操作に応じたサイズに変更する（ステップＳ２０５）。
【００８０】
続いて、編集表示部１３２は、操作対象となる数学記号の表示サイズを更新し（ステップＳ２０６）、上記ステップＳ２０３に処理を移行する。つまり、伸縮可能な範囲内で伸縮操作を行っている場合には、その伸縮操作に応じた表示サイズで表示し、伸縮可能な範囲を超えて伸縮操作を行っている場合には、制限範囲内での表示サイズで表示する。
【００８１】
一方、上記ステップＳ２０３の判定で伸縮操作が終了（決定）したと判定した場合（ステップＳ２０３；ＮＯ）に、レイアウト変更部１３３は、伸縮操作によって数式構造が変化するか否かを判定する（ステップＳ２０７）。この判定がＮＯである場合（ステップＳ２０７；ＮＯ）には、範囲変更処理を終了する。例えば、範囲変更処理の対象となる数学記号を伸縮した場合であっても、その数学記号に内包される構成要素が同じであれば、レイアウト情報を更新する必要はない。
【００８２】
一方、このステップＳ２０７の判定で伸縮操作によって数式構造が変化すると判定した場合（ステップＳ２０７；ＹＥＳ）に、レイアウト変更部１３３は、操作対象の数学記号に内包されている構成要素のレイアウト情報を更新する（ステップＳ２０８）とともに、操作対象の数学記号に内包されていない構成要素のレイアウト情報も更新する（ステップＳ２０９）。このステップＳ２０９で更新対象となる構成要素としては、例えば、伸縮操作によって数学記号の内包構成要素から除外された構成要素や、伸縮操作によって内包されることとなった構成要素が操作前に内包していた数学記号に関わる構成要素が該当する。
【００８３】
続いて、数式構成部１１３は、更新後のレイアウト情報に基づいて数式構造情報を生成し、レイアウト変更部１３３は、生成した数式更新情報に対応する数式が、数式として成立するか否かを判定する（ステップＳ２１０）。この判定がＹＥＳである場合（ステップＳ２１０；ＹＥＳ）には、範囲変更処理を終了する。一方、このステップＳ２１０で数式として成立しないと判定した場合（ステップＳ２１０；ＮＯ）には、エラー処理を実行して（ステップＳ２１１）、範囲変更処理を終了する。エラー処理としては、例えば、伸縮操作による変更をキャンセル扱いとして変更前の状態に戻す処理、エラーであることをメッセージやビープ音によってユーザに通知する処理等が該当する。
【００８４】
図１０を参照して、図５に示す変更を行った場合におけるレイアウト情報の変更内容について具体的に説明する。図１０（ａ）は、変更前の“√（２）−ｙ”（２の平方根−ｙ）のレイアウト情報を模式的に示す図であり、図１０（ｂ）は、変更後の“√（２−ｙ）”（「２−ｙ」の平方根）のレイアウト情報を模式的に示す図である。
【００８５】
最初に、ユーザが“√”を編集対象として指定したときに、レイアウト変更部１３３は、レイアウト情報の文字表記項目の内容を参照し、範囲変更処理の対象となる数学記号であるか否かを判定する。数学記号であるか否かは、テーブルを参照して判定できる。
【００８６】
続いて、“√”の右上端をポインティングデバイスで右方向に伸ばし始めたときに、レイアウト変更部１３３は、レイアウト情報の文字矩形項目の座標値を参照し、伸縮操作されている“√”の描画状態を伸縮操作に応じて更新する。
【００８７】
続いて、ユーザがポインティングデバイスを離して伸縮位置が確定したときに、レイアウト変更部１３３は、“√”の演算範囲を決定するために、“√”が内包している構成要素を、レイアウト情報のリンク情報項目に基づいて探索する。
【００８８】
図１０（ａ）に示す各リンク情報では、“√”の右側には“−”が繋がっており、“−”の右側には“ｙ”が繋がっているため、“−”および“ｙ”の各文字矩形項目の値と“√”の文字矩形項目の値とを比較して、“√”の演算範囲を決定することになる。この処理に併せて、“√”の文字矩形項目の妥当性を検証することとしてもよい。この検証の結果、例えば、演算範囲に構成要素が１文字も含まれていない場合にはエラーとすることや、数式の右端の文字から大きくはみ出すような伸縮操作が指示された場合には、“√”の文字矩形情報を数式の右端の文字にする等の補正処理を行うことができる。
【００８９】
図１０に示すように、範囲変更処理の結果、“√”の文字矩形情報を、伸縮後の“√”に対応する矩形座標に変更し、“√”のリンク情報を、“右：「−」”から“なし”に変更し、“√”の内包情報を、“始端＆終端：「２」”から“始端：「２」、終端：「ｙ」”に変更する。また、“−”のリンク情報を、“左：「√」、右：「ｙ」”から“左：「２」、右：「ｙ」”に変更する。
【００９０】
なお、レイアウト情報を変更した後は、変更したレイアウト情報に基づいて数式構造情報を生成し、変更後の数式が数式として成立するか否かを判定する。例えば図１０（ｂ）に示すように、“√（２−ｙ）”（「２−ｙ」の平方根）に変更した場合には数式として成立するが、“√（２−）ｙ”（「２−」の平方根とｙとの積）に変更した場合には、「２−」の平方根という意味不明の数式となるため、エラーとする。この場合は、ユーザに対してエラーであることを通知し、修正前の状態に戻す等のエラー処理を行う。
【００９１】
図１１を参照して、図８のステップＳ１０８で実行する連動型意味変更処理の処理手順について説明する。
【００９２】
最初に、レイアウト変更部１３３は、移動操作が継続中であるか否かを判定する（ステップＳ３０１）。この判定がＹＥＳである場合（ステップＳ３０１；ＹＥＳ）に、レイアウト変更部１３３は、操作対象が添え字系（べき乗等を含む）であるか否かを判定する（ステップＳ３０２）。この判定がＹＥＳである場合（ステップＳ３０２；ＹＥＳ）に、レイアウト変更部１３３は、操作対象が添え字領域から離脱しているか否かを判定する（ステップＳ３０３）。
【００９３】
このステップＳ３０３の判定で操作対象が添え字領域から離脱していないと判定した場合（ステップＳ３０３；ＮＯ）には、後述するステップＳ３０７に処理を移行する。一方、操作対象が添え字領域から離脱していると判定した場合（ステップＳ３０３；ＹＥＳ）に、編集表示部１３２は、操作対象となる構成要素を表示する際のサイズを、移動操作に応じたサイズに拡大する（ステップＳ３０４）。
【００９４】
続いて、編集表示部１３２は、操作対象となる構成要素の表示サイズを更新し（ステップＳ３０７）、上記ステップＳ３０１に処理を移行する。つまり、添え字系の構成要素が添え字領域から離脱した場合には、その移動操作に応じた表示サイズに拡大表示し、添え字系の構成要素が添え字領域内にある場合には、添え字系のままの表示サイズで表示する。
【００９５】
一方、上記ステップＳ３０２の判定で操作対象が添え字系ではないと判定した場合（ステップＳ３０２；ＮＯ）に、レイアウト変更部１３３は、操作対象が添え字領域に進入しているか否かを判定する（ステップＳ３０５）。
【００９６】
このステップＳ３０５の判定で操作対象が添え字領域に進入していないと判定した場合（ステップＳ３０５；ＮＯ）には、後述するステップＳ３０７に処理を移行する。一方、操作対象が添え字領域に進入していると判定した場合（ステップＳ３０５；ＹＥＳ）に、編集表示部１３２は、操作対象となる構成要素を表示する際のサイズを、移動操作に応じたサイズに縮小する（ステップＳ３０６）。
【００９７】
続いて、編集表示部１３２は、操作対象となる構成要素の表示サイズを更新し（ステップＳ３０７）、上記ステップＳ３０１に処理を移行する。つまり、添え字系以外の構成要素が添え字領域に進入した場合には、その移動操作に応じた表示サイズに縮小表示し、添え字系以外の構成要素が添え字領域外にある場合には、そのままの表示サイズで表示する。
【００９８】
一方、上記ステップＳ３０１の判定で移動操作が終了（決定）したと判定した場合（ステップＳ３０１；ＮＯ）に、レイアウト変更部１３３は、移動操作によって数式構造が変化するか否かを判定する（ステップＳ３０８）。この判定がＮＯである場合（ステップＳ３０８；ＮＯ）には、連動型意味変更処理を終了する。例えば、連動型意味変更処理の対象となる数学記号を移動した場合であっても、その数学記号の意味が変わらないのであれば、レイアウト情報を更新する必要はない。
【００９９】
一方、このステップＳ３０８の判定で移動操作によって数式構造が変化すると判定した場合（ステップＳ３０８；ＹＥＳ）に、レイアウト変更部１３３は、操作対象の移動元の数式に含まれる構成要素のレイアウト情報を更新する（ステップＳ３０９）とともに、操作対象の移動先の数式に含まれる構成要素のレイアウト情報も更新する（ステップＳ３１０）。
【０１００】
続いて、数式構成部１１３は、更新後のレイアウト情報に基づいて数式構造情報を生成し、レイアウト変更部１３３は、生成した数式更新情報に対応する数式が、数式として成立するか否かを判定する（ステップＳ３１１）。この判定がＹＥＳである場合（ステップＳ３１１；ＹＥＳ）には、連動型意味変更処理を終了する。一方、このステップＳ３１１で数式として成立しないと判定した場合（ステップＳ３１１；ＮＯ）には、エラー処理を実行して（ステップＳ３１２）、連動型意味変更処理を終了する。
【０１０１】
図１２を参照して、図６（ｂ）に示す変更を行った場合におけるレイアウト情報の変更内容について具体的に説明する。図１２（ａ）は、変更前の“２ｎ√ａ”（２とｎとａの平方根との積）のレイアウト情報を模式的に示す図であり、図１２（ｂ）は、変更後の“２(n√a)”（２の「ｎ√ａ」乗）のレイアウト情報を模式的に示す図である。
【０１０２】
最初に、ユーザが“ｎ√ａ”を編集対象に指定したときに、レイアウト変更部１３３は、レイアウト情報の文字矩形項目の内容を参照し、編集対象の文字列全体の外接矩形を算出する。
【０１０３】
続いて、ユーザがポインティングデバイスで“ｎ√ａ”を移動しているときに、レイアウト変更部１３３は、編集対象の文字列に含まれる各構成要素の文字矩形項目の座標値を更新し、“ｎ√ａ”の描画状態を移動操作に応じて更新する。
【０１０４】
続いて、ユーザがポインティングデバイスを離して伸縮位置が確定したときに、レイアウト変更部１３３は、“ｎ√ａ”と他の構成要素との接続関係を検証する。“ｎ√ａ”の外接矩形と他の構成要素の文字矩形項目の座標値とを比較して、“ｎ√ａ”が他の構成要素の斜め上や斜め下に位置すると判定した場合に、レイアウト変更部１３３は、“ｎ√ａ”を添え字と見なして各構成要素の接続関係を変更する。一方、“ｎ√ａ”が他の構成要素の斜め上や斜め下に位置しないと判定した場合に、レイアウト変更部１３３は、“ｎ√ａ”を通常文字と見なして各構成要素の接続関係を変更する。
【０１０５】
図１２に示すように、連動型意味変更処理の結果、“２”のリンク情報を、“右：「ｎ」”から“なし”に変更し、“２”の添え字情報を、“なし”の状態から“ｎ√ａ”の情報を追加した状態に変更する。また、“ｎ”の文字サイズ情報を、“中”から“小”に変更し、“ｎ”の文字矩形情報を、移動後の矩形座標に変更し、“ｎ”のリンク情報を、“左：「２」、右：「√」”から“左：なし、右：「√」”に変更し、“ｎ”の添え字情報を、“なし”の状態から“２”の情報を追加した状態に変更する。
【０１０６】
なお、レイアウト情報を変更した後は、変更したレイアウト情報に基づいて数式構造情報を生成し、変更後の数式が数式として成立するか否かを判定する。例えば図６（ｂ）に示すように、“２ｎ”を“√”の左上に移動した場合には数式として成立するが、“２”を“ｎ”の左上に移動した場合には、意味不明の数式となるため、エラーとする。この場合は、ユーザに対してエラーであることを通知し、修正前の状態に戻す等のエラー処理を行う。
【０１０７】
図１３を参照して、図８のステップＳ１０９で実行する非連動型意味変更処理の処理手順について説明する。
【０１０８】
最初に、レイアウト変更部１３３は、選択操作の操作対象が１文字であるか否かを判定する（ステップＳ４０１）。この判定がＮＯである場合（ステップＳ４０１；ＮＯ）に、数式構成部１１３は、操作対象の文字列のレイアウト情報に基づいて数式構造情報を生成し（ステップＳ４０２）、レイアウト変更部１３３は、生成した数式構造情報に基づいて、操作対象の文字列の意味を選択するための選択メニューを生成する（ステップＳ４０３）。そして、後述するステップＳ４０６に処理を移行する。
【０１０９】
一方、上記ステップＳ４０１の判定で選択操作の操作対象が１文字であると判定した場合（ステップＳ４０１；ＹＥＳ）に、レイアウト変更部１３３は、操作対象の文字が非連動型意味変更処理の対象となる文字であるか否かを判定する（ステップＳ４０４）。この判定がＮＯである場合（ステップＳ４０４；ＮＯ）には、非連動型意味変更処理を終了する。なお、非連動型意味変更処理の対象となる一文字としては、例えば、数学記号（フーリエ変換記号、ラプラス変換記号）または変数名の双方になり得る“Ｆ”や“Ｌ”が該当する。また、非連動型意味変更処理の対象となる一文字であるか否かは、テーブルを参照して判定できる。
【０１１０】
一方、このステップＳ４０４の判定で操作対象の文字が非連動型意味変更処理の対象となる文字であると判定した場合（ステップＳ４０４；ＹＥＳ）に、レイアウト変更部１３３は、操作対象の文字の解釈（意味）を選択するための選択メニューを生成する（ステップＳ４０５）。
【０１１１】
続いて、編集表示部１３２は、上記ステップＳ４０３またはステップＳ４０５で生成した選択メニューをディスプレイ１６に表示する（ステップＳ４０６）。なお、図７に示す“Ｓｉｎｘ”の下方に表示している選択メニューには、３つの解釈候補を表示している。
【０１１２】
続いて、ユーザが選択メニューから一の解釈候補を選択すると、選択操作によって数式構造が変化するか否かを判定する（ステップＳ４０７）。この判定がＮＯである場合（ステップＳ４０７；ＮＯ）には、非連動型意味変更処理を終了する。例えば、メニュー選択操作をキャンセルした場合には数式構造が変化しないので、レイアウト情報を更新する必要はない。
【０１１３】
一方、このステップＳ４０７の判定で選択操作によって数式構造が変化すると判定した場合（ステップＳ４０７；ＹＥＳ）に、レイアウト変更部１３３は、選択した解釈候補に含まれる構成要素のレイアウト情報を更新する（ステップＳ４０８）。
【０１１４】
続いて、数式構成部１１３は、更新後のレイアウト情報に基づいて数式構造情報を生成し、レイアウト変更部１３３は、生成した数式更新情報に対応する数式が、数式として成立するか否かを判定する（ステップＳ４０９）。この判定がＹＥＳである場合（ステップＳ４０９；ＹＥＳ）には、非連動型意味変更処理を終了する。一方、このステップＳ４０９で数式として成立しないと判定した場合（ステップＳ４０９；ＮＯ）には、エラー処理を実行して（ステップＳ４１０）、非連動型意味変更処理を終了する。
【０１１５】
図１４を参照して、図７に示す変更を行った場合におけるレイアウト情報の変更内容について具体的に説明する。図１４（ａ）は、変更前の“Ｓi”および“ｎｘ”のレイアウト情報を模式的に示す図であり、図１４（ｂ）は、変更後の“Ｓｉｎｘ”のレイアウト情報を模式的に示す図である。
【０１１６】
非連動型意味変更処理の場合には、選択対象の各構成要素の解釈を、解釈候補のメニューで選択した解釈に置き換えることになる。具体的には、例えば、図１４（ａ）に示す各構成要素のレイアウト情報を削除して、図１４（ｂ）に示す各構成要素のレイアウト情報に置き換えることになる。
【０１１７】
上述したように、実施形態における数式認識システム１によれば、レイアウト解析部１１１によって解析した数式を構成する構成要素のレイアウト情報を、ユーザの編集操作に応じて変更できる。
【０１１８】
例えば、所定の数学記号に対して伸縮操作を行った場合には、伸縮操作に従って伸縮した数学記号の演算対象となる構成要素の範囲を変更できる。
【０１１９】
また、所定の構成要素に対して移動操作を行った場合には、移動操作に従って移動した構成要素の位置を移動後の位置に変更し、移動操作に従って移動した構成要素のサイズを移動後の位置に対応するサイズに変更できる。
【０１２０】
さらに、所定の構成要素に対して選択操作が行われた場合には、選択操作により選択した構成要素に基づいて解釈可能な複数の解釈候補を表示し、当該表示した複数の解釈候補から一の解釈候補を選択した場合に、選択操作により選択した構成要素のレイアウトを一の解釈候補が示すレイアウトに変更できる。
【０１２１】
これにより、解析後の数式に含まれる構成要素に対してユーザが直接編集操作（伸縮操作、移動操作、選択操作）を行って構成要素の位置や大きさ、解釈等を変更できる。したがって、ユーザは、編集操作を通じて編集内容を直接指示しながら、解析後の数式のレイアウトを、所望するレイアウトに変更することが可能となる。それゆえに、数式の誤認識部分を簡易かつ直感的に修正できる。
【０１２２】
また、変更過程および変更後の数式をディスプレイにリアルタイムで表示できるため、編集操作における操作回数や操作ミスの低減が可能となり、編集時の操作性を向上できる。
【０１２３】
[変形例]
なお、上述した各実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施できる。
【０１２４】
例えば、上述した実施形態において説明した図９のステップＳ２１０、図１１のステップＳ３１１、図１３のステップＳ４０２およびＳ４０９では、数式構成部１１３が数式構造情報を生成しているが、数式構造情報を生成する機能をレイアウト変更部１３３に付与し、上記各ステップにおいてレイアウト変更部１３３が数式構造情報を生成することとしてもよい。
【０１２５】
また、上述した実施形態では、数式認識システム１が、範囲変更処理、連動型意味変更処理および非連動型意味変更処理の３種類の変更処理を実行しているが、必ずしも３種類全てを実行する必要はなく、少なくとも１種類の変更処理を実行することができればよい。
【０１２６】
また、上述した実施形態では一つの装置で本発明を実施しているが、本発明は複数の装置で実施することもできる。この場合には、上述した実施形態における装置が有する各機能を複数の装置に分散し、これら複数の装置群を上述した実施形態における監視状況表示装置と同様に機能させればよい。
【符号の説明】
【０１２７】
１…数式認識システム、１１…数式認識部、１２…表示部、１３…変更部、１４…レイアウト情報ＤＢ、１５…数式構造情報ＤＢ、１６…ディスプレイ、１１１…レイアウト解析部、１１２…文字認識部、１１３…数式構成部、１２１…数式表示部、１３１…操作判定部、１３２…編集表示部、１３３…レイアウト変更部。
【図１】
2011141592.tif 000003
【図２】
2011141592.tif 000004
【図３】
2011141592.tif 000005
【図４】
2011141592.tif 000006
【図５】
2011141592.tif 000007
【図６】
2011141592.tif 000008
【図７】
2011141592.tif 000009
【図８】
2011141592.tif 000010
【図９】
2011141592.tif 000011
【図１０】
2011141592.tif 000012
【図１１】
2011141592.tif 000013
【図１２】
2011141592.tif 000014
【図１３】
2011141592.tif 000015
【図１４】
2011141592.tif 000016