コンピュータの演算処理により、文書の目次内の目次項目を前記文書の本文中の見出し行に対応付ける、目次と見出しの対応付け方法であって、前記コンピュータが、前記文書の目次項目単位の目次データCを受け取るステップと、前記コンピュータが、前記文書の行単位の本文データDを受け取るステップと、前記コンピュータが、前記目次データC内の全目次項目の前記本文データD内の見出し候補としての行である見出し候補行への対応付けMの尤もらしさを示す、C、D及びMの関数であるスコア関数Sの最大値を探索するステップと、前記コンピュータが、前記スコア関数Sを最大にする前記対応付けMを出力するステップとを含み、前記スコア関数Sは、各目次項目の見出し候補行への対応付けの尤もらしさを該対応付け単独で評価するユニグラムスコアuを全目次項目について足し合わせた第1の和と、一の目次項目と他の目次項目のペアである目次項目ペアの見出し候補行への対応付けの尤もらしさを前記目次項目ペアのそれぞれの見出し候補行への対応付けの共通度に基づき評価するバイグラムスコアbを全目次項目ペアについて足し合わせた第2の和との合計として求められる、目次と見出しの対応付け方法。前記目次はフラット構造を有し、前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列との類似度に基づき求められ、前記バイグラムスコアbは、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度に基づき求められる、請求項1に記載の目次と見出しの対応付け方法。前記バイグラムスコアbは更に、前記目次項目ペアのそれぞれの対応付けにおける、目次項目に含まれるページ番号と該目次項目に対応付ける見出し候補行が含まれるページの通し番号との差の共通度に基づいて求められる、請求項2に記載の目次と見出しの対応付け方法。前記一の目次項目と前記他の目次項目とは隣接関係にある、請求項1に記載の目次と見出しの対応付け方法。前記目次は木構造を有し、前記一の目次項目と隣接関係にある前記他の目次項目を、前記目次の木構造において前記一の目次項目と同一階層において隣り合う兄弟関係にある目次項目に限定する、請求項4に記載の目次と見出しの対応付け方法。前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列との類似度に基づき求められ、前記バイグラムスコアbは、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度に基づき求められる、請求項5に記載の目次と見出しの対応付け方法。前記フォーマットの共通度は、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォントサイズの共通度と、前記目次項目ペアのそれぞれに対応付ける見出し候補行の文字列の最初の文字又は最初の文字と最後の文字との共通度と、前記目次項目ペアにそれぞれ対応付ける見出し候補行の文字列のうち、対応付ける目次項目の文字列に類似する部分である類似文字列の前後の所定数の文字の共通度のうちの少なくとも1つの共通度である、請求項6に記載の目次と見出しの対応付け方法。前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列の類似度に基づき求められ、前記バイグラムスコアbは更に、前記目次項目ペアのそれぞれの対応付けにおける、目次項目に含まれるページ番号と該目次項目に対応付ける見出し候補行が含まれるページの通し番号との差の共通度に基づいて求められる、請求項6に記載の目次と見出しの対応付け方法。前記バイグラムスコアbは、前記一の目次項目に対応付ける一の見出し候補行と、前記他の目次項目に対応付ける他の見出し候補行とが隣接している場合に値を減じられる、請求項8に記載の目次と見出しの対応付け方法。前記一の目次項目に隣接する目次項目に、前記一の目次項目に所定の数以下の目次項目を挟んで隣接する目次項目を含める、請求項4に記載の目次と見出しの対応付け方法。前記スコア関数Sの最大値は、Viterbiアルゴリズムに従い探索される、請求項4に記載の目次と見出しの対応付け方法。前記スコア関数Sの最大値は、ダイクストラ法に従い探索される、請求項4に記載の目次と見出しの対応付け方法。前記スコア関数Sの最大値の探索において、前記目次データCに含まれる各目次項目にそれぞれ対応付ける前記見出し候補行を、本文データD内の全行のうち、前記目次項目の文字列と一定以上の類似度を有する文字列の行に限定する、請求項4に記載の目次と見出しの対応付け方法。前記目次は木構造を有し、前記木構造において同一階層において隣り合う兄弟関係にある前記目次項目ペアに対しては、前記バイグラムスコアbとして、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度が高いほど高いスコア値を返す兄弟バイグラムスコアb1を採用し、前記木構造において親子関係にある前記目次項目ペアに対しては、前記バイグラムスコアbとして、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度が低いほど高いスコア値を返す親子バイグラムスコアb2を採用する、請求項1に記載の目次と見出しの対応付け方法。前記親子バイグラムスコアb2は、親である目次項目に対応付ける見出し候補行のフォントサイズと、子である目次項目に対応付ける見出し候補行のフォントサイズの間に大小関係がある場合に高いスコア値を返す、請求項14に記載の目次と見出しの対応付け方法。前記親子バイグラムスコアb2は、親である目次項目に対応付ける見出し候補行の索引部分と子である目次項目に対応付ける見出し候補行の索引部分のフォーマットが異なる場合に高いスコア値を返す、請求項14に記載の目次と見出しの対応付け方法。前記スコア関数Sの最大値は、2ndorderEisnerを応用したアルゴリズムに従い探索される、請求項14に記載の目次と見出しの対応付け方法。前記スコア関数Sの最大値の探索において、前記目次データCに含まれる各目次項目にそれぞれ対応付ける前記見出し候補行を、本文データD内の全行のうち、前記目次項目の文字列と一定以上の類似度を有する文字列を含む行に限定する、請求項17に記載の目次と見出しの対応付け方法。請求項1乃至18に記載の方法をコンピュータに実行させる、目次と見出しの対応付けプログラム。文書の目次内の目次項目を前記文書の本文中の見出し行に対応付ける、目次と見出しの対応付け装置であって、前記文書の目次項目単位の目次データCと、前記文書の行単位の本文データDとを入力する入力部と、前記目次データC内の全目次項目の前記本文データD内の見出し候補としての行である見出し候補行への対応付けMの尤もらしさを示す、C、D及びMの関数であるスコア関数Sの最大値を探索する探索部と、前記スコア関数Sを最大にする前記対応付けMを出力する出力部とを含み、前記探索部は、前記スコア関数Sを、各目次項目の見出し候補行への対応付けの尤もらしさを該対応付け単独で評価するユニグラムスコアuを全目次項目について足し合わせた第1の和と、一の目次項目と他の目次項目のペアである目次項目ペアの見出し候補行への対応付けの尤もらしさを前記目次項目ペアのそれぞれの見出し候補行への対応付けの共通度に基づき評価するバイグラムスコアbを全目次項目ペアについて足し合わせた第2の和との合計として求める、目次と見出しの対応付け装置。しかしながら、特許文献1の技術によって、基準書式との照合によってテキスト断片を選択的に候補から除外するとしても、処理対象の文書が用いると予測される基準書式を事前に全て網羅して設定することは不可能である。処理対象の文書ごと人手で基準書式を設定すればこのような問題は解決できるが、それでは手間がかかりすぎる。ページ内位置に基づく個数削減条件についても同様である。即ち、文書が採用するレイアウトに一定の傾向がみられるとしても具体的な位置条件は文書ごとに異なる。そのため位置条件を事前に設定しようとすると、全ての文書に適用可能な緩い条件を設定せざるをえなくなり、候補の絞込みを十分に行うことができなくなる。また、位置情報に関しては、目次に含まれるページ情報を利用して見出し候補を当該ページ内に含まれるものに限定することも考えられる。しかしながら、前書き等の本文以外のページの存在のために、目次におけるページ番号と実際のページ番号、即ち通し番号とにずれが生じることも多い。そのためページ情報を利用する場合でも事前に人手により差分情報を付与することが必要となる。なお、特許文献2~6は、タイトル抽出のために利用可能なタイトル固有の特徴を開示する背景技術として挙げたものであり、目次と見出しの対応付けに関する技術を開示するものではない。この発明は、上記の問題点を解決するためになされたものであって、見出し候補の絞り込み条件を事前に網羅的に設定したり文書ごとに人手により設定したりする必要なしに、電子化された書籍において、目次と本文中の見出し間の適切な対応付けをコンピュータの演算処理により行うことのできる技術を提供することを目的とする。上記目的を達成する本願発明は、次のような、文書の目次内の目次項目を前記文書の本文中の見出し行に対応付ける、コンピュータの演算処理による目次と見出しの対応付け方法によって実現される。そのような目次と見出しの対応付け方法は、前記コンピュータが、前記文書の目次項目単位の目次データCを受け取るステップと、前記コンピュータが、前記文書の行単位の本文データDを受け取るステップと、前記コンピュータが、前記目次データC内の全目次項目の前記本文データD内の見出し候補としての行である見出し候補行への対応付けMの尤もらしさを示す、C、D及びMの関数であるスコア関数Sの最大値を探索するステップと、前記コンピュータが、前記スコア関数Sを最大にする前記対応付けMを出力するステップとを含む。ここで、前記スコア関数Sは、各目次項目の見出し候補行への対応付けの尤もらしさを該対応付け単独で評価するユニグラムスコアuを全目次項目について足し合わせた第1の和と、一の目次項目と他の目次項目のペアである目次項目ペアの見出し候補行への対応付けの尤もらしさを前記目次項目ペアのそれぞれの見出し候補行への対応付けの共通度に基づき評価するバイグラムスコアbを全目次項目ペアについて足し合わせた第2の和との合計として求められる。好ましくは、前記目次はフラット構造を有し、前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列との類似度に基づき求められる。また、前記バイグラムスコアbは、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度に基づき求められる。より好ましくは、前記バイグラムスコアbは更に、前記目次項目ペアのそれぞれの対応付けにおける、目次項目に含まれるページ番号と該目次項目に対応付ける見出し候補行が含まれるページの通し番号との差の共通度に基づいて求められる。また好ましくは、前記一の目次項目と前記他の目次項目とは隣接関係にある。より好ましくは、前記目次は木構造を有し、前記一の目次項目と隣接関係にある前記他の目次項目を、前記目次の木構造において前記一の目次項目と同一階層において隣り合う兄弟関係にある目次項目に限定する。更に好ましくは、前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列との類似度に基づき求められ、前記バイグラムスコアbは、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度に基づき求められる。更により好ましくは、前記フォーマットの共通度は、前記目次項目ペアにそれぞれ対応付ける見出し候補行のフォントサイズの共通度と、前記目次項目ペアにそれぞれ対応付ける見出し候補行の最初の文字又は最初の文字と最後の文字との共通度と、前記目次項目ペアにそれぞれ対応付ける見出し候補行の文字列のうち、対応付ける目次項目の文字列に類似する部分である類似文字列の前後の所定数の文字の共通度のうちの少なくとも1つの共通度である。また、更に好ましくは、前記ユニグラムスコアuは、前記目次項目の文字列と、該目次項目に対応付ける前記見出し候補行の文字列の類似度に基づき求められ、前記バイグラムスコアbは、前記目次項目ペアのそれぞれの対応付けにおける、目次項目に含まれるページ番号と該目次項目に対応付ける見出し候補行が含まれるページの通し番号との差の共通度に基づいて求められる。更により好ましくは、前記バイグラムスコアbは、前記一の目次項目に対応付ける一の見出し候補行と、前記他の目次項目に対応付ける他の見出し候補行とが隣接している場合に値を減じられる。また、より好ましくは、前記一の目次項目に隣接する目次項目に、前記一の目次項目に所定の数以下の目次項目を挟んで隣接する目次項目を含める。また、より好ましくは、前記スコア関数Sの最大値は、Viterbiアルゴリズム又はダイクストラ法に従い探索される。また、より好ましくは、前記スコア関数Sの最大値の探索において、前記目次データCに含まれる各目次項目にそれぞれ対応付ける前記見出し候補行を、本文データD内の全行のうち、前記目次項目の文字列と一定以上の類似度を有する文字列の行に限定する。また、好ましくは、前記目次は木構造を有し、前記木構造において同一階層において隣り合う兄弟関係にある前記目次項目ペアに対しては、前記バイグラムスコアbとして、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度が高いほど高いスコア値を返す兄弟バイグラムスコアb1を採用し、前記木構造において親子関係にある前記目次項目ペアに対しては、前記バイグラムスコアbとして、前記目次項目ペアのそれぞれに対応付ける見出し候補行のフォーマットの共通度が低いほど高いスコア値を返す親子バイグラムスコアb2を採用する。より好ましくは、前記親子バイグラムスコアb2は、親である目次項目に対応付ける見出し候補行のフォントサイズがと子である目次項目に対応付ける見出し候補行のフォントサイズの間に大小関係がある場合に高いスコア値を返す。また、より好ましくは、前記親子バイグラムスコアb2は、親である目次項目に対応付ける見出し候補行の索引部分と子である目次項目に対応付ける見出し候補行の索引部分のフォーマットが異なる場合に高いスコア値を返す。また、より好ましくは、前記スコア関数Sの最大値は、2ndorderEisnerを応用したアルゴリズムに従い探索される。また、より好ましくは、前記スコア関数Sの最大値の探索において、前記目次データCに含まれる各目次項目にそれぞれ対応付ける前記見出し候補行を、本文データD内の全行のうち、前記目次項目の文字列と一定以上の類似度を有する文字列を含む行に限定する。以上、目次と見出しの対応付け方法として本願発明を説明した。しかし、本願発明は、そのような目次と見出しの対応付け方法を実行する目次と見出しの対応付け装置、及びそのような目次と見出しの自動対応付け方法をコンピュータに実行させる目次と見出しの対応付けプログラムとして把握することもできる。本願発明では、目次項目の見出し候補行への対応付けの尤もらしさを、当該対応付け単独で評価するだけでなく、当該目次項目の見出し候補行への対応付けと他の目次項目の見出し候補行への対応付けとの共通度をも考慮して評価する。従って、本願発明によれば、見出しに共通する属性情報や目次におけるページ番号と通し番号との差分情報を、事前に網羅的に設定したり文書ごとに人手により設定したりする必要なしに、電子化された書籍において、目次と本文中の見出し間の適切な対応付けをコンピュータの演算処理により行うことができる。本願発明のその他の効果については、各実施の形態の記載から理解される。以下、本願発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。図1は、目次と見出しの対応付けの一例を示す図である。図1において左側は目次ページ100を示し、右側は本文ページ102を示す。目次ページ100には目次項目が並び、各目次項目は、索引部分を有する文字列目次項目104の例では第六十九回から始まる文字列106とページ番号目次項目104の例では6の数字108とからなる。また、本文ページ102は、目次項目に対応する見出し110を含み、ページ左下に6のページ番号112を含む。本願発明は、図1に示す矢印のように、目次ページ100内の各目次項目を、本文ページ内の対応する見出し行に、コンピュータの演算処理により自動で適切に対応付けることを目的とする。目次項目の見出し行への対応付けの尤もらしさを評価するのに有効な基準の1つは、目次項目と見出し行の文字列の類似度である。しかしながら、OCR処理によって得られた目次データや本文データにはノイズ誤字、脱字、ゴミ文字が含まれることが予想される。また、図1に示す例では目次項目の文字列は索引部分が含んでいるが、このような索引部分は見出し行にのみ付与されることも少なくない。このような場合に目次項目の文字列と同じ文字列が本文中に複数含まれていると、文字列の類似度だけで対応付けの尤もらしさを正しく評価することはできない。上述のケースの一例を図2に示す。図1と同様、左側は目次ページ200を示し、右側は本文ページ202を示す。本文ページ202では全見出し行216、218、224に章番号が付与されているのに対し、目次ページ200では、大章番号のみが該当する目次項目204、212に付与されている。そのため文字列の類似度だけでは隠れマルコフモデルの目次項目206を、本文ページ202内の第4章隠れマルコフモデルの行216と、41隠れマルコフモデルの行218と、隠れマルコフモデルの行220のいずれに対応付けるべきか判断できない。上記問題に対し、特許文献1の従来技術は、見出しには索引部分がある場合が多いことに注目し、基準書式との照合によって見出しの候補を絞り込む。また、上記従来技術は、見出しに関する文書ページ内レイアウトに関する種々のアプリオリな知識を利用し、ページ内位置関係に基づく条件によって見出しの候補を絞り込む。しかしながらそのためには、照合すべき基準書式やページ内位置関係に基づく条件を事前に設定しておく必要がある。事前設定にない基準書式が利用される場合、また、事前設定の条件が広すぎる場合には当該方法は有効に機能しない。そこで本願発明では、見出しには共通して見られる見出しとしての特徴があることを、一の目次項目の見出し候補としての行以下、見出し候補行というへの対応付けと、他の目次項目の見出し候補行への対応付けとの共通度を評価することで利用する。これを先の図2のケースを例に説明する。上述したように、隠れマルコフモデルの目次項目206については、目次項目と見出し候補行の文字列の類似度から、本文ページ202内の第4章隠れマルコフモデルの行216と、41隠れマルコフモデルの行218と、隠れマルコフモデルの行220の3つの行が見出し候補行として抽出される。ここで、目次項目206の見出し候補行への対応付けを、隣接するマルコフ過程の目次項目208の見出し候補行である42マルコフ過程の行224への対応づけとの共通度に基づき更に検討する。すると、対応付ける見出し候補行の索引部分の共通度の高さから、41隠れマルコフモデルの行218を正しく選択できる。なお、対応付けの共通度を評価するにあたり選択すべき他の目次項目は、目次が木構造を有するか否かによって異なる。目次が木構造を有さずフラット構造を有する場合、各目次項目に対応付けられる見出しのフォーマットは同一と考えられる。従って、全ての目次項目が同一レベルにある場合、他の目次項目は一の目次項目と異なる任意の目次項目でよく、共通度の評価では共通度が高いほど高い評価となる。但し、他の目次項目は目次項目ごと異なることが好ましいことから、以下に説明する実施例では、他の目次項目は一の目次項目に隣接する目次項目とする。一方、目次が木構造を有する場合、兄弟関係にある目次項目のペアにそれぞれ対応付けられる見出しのフォーマットは同一と考えられが、親子関係にある目次項目のペアにそれぞれ対応付けられる見出しのフォーマットは同一ではなく、例えばフォントサイズや章番号等、大小関係があると考えられる。従って目次が木構造を有する場合、選択すべき他の目次項目は、一の目次項目と兄弟関係にある目次項目であり、共通度の評価では共通度が高いほど高い評価となる。但し、共通度の評価を、共通度が低いほど高い評価を行うようにすれば、他の目次項目として、一の目次項目と親子関係にある目次項目を選択することも可能である。また、一の目次項目の見出し候補行への対応付けと、他の目次項目の見出し候補行への対応付けとの共通度を評価することによって、目次におけるページ情報の利用が可能となる。なぜならば、目次項目に含まれる目次のページ番号と実際のページ番号、即ち、文書の最初のページからの通し番号とにずれがあったとしても、ずれの程度は全ての対応付けにおいて同一であるからである。なお、通し番号から目次項目のページ番号を差し引いた差分の共通性に基づく対応付けの評価は、目次が木構造を有するか否かによらず、任意の目次項目ペアに対して適用可能であることに留意されたい。以下、目次項目と見出し候補行との対応付けの問題を定式化し、定式化した問題に対して本願発明を説明する。まず、本願発明の一実施形態に係る目次と見出しの自動対応付け装置への入力として、目次データCと、本文データDを次のように定義する。C...―定義1ここで、Cは目次に含まれる全目次項目数、siはi番目の目次項目の文字列、piはi番目の目次項目のページ番号を示す。DL1...LD―定義2ここで、Dは本文に含まれる全行数、Lkは本文に含まれるk番目の行を示す。このような目次データCは、文書のスキャンデータから目次ページを推定して、各行を目次データとすることにより取得してよい。その際、各行の最後にある数字をページ番号piとし、両端の空白文字を除く残りを目次項目の文字列siとしてよい。かかる処理の詳細は、例えば以下の文献を参照されたい。SMandalSPChowdhuryAKDasBChandaAutomatedDetectionandSegmentationofTableofContentsPagefromDocumentImagesInprocofICDAR2003なお、目次データCは書籍の所有者である出版社が所有していることも多く、その場合出版社から取得できる。一方、本文に含まれる各行Lkは、文字列と通し番号やフォントサイズ等の付加情報からなるものとする。一般的にOCRは認識した文字の情報だけでなく、該文字が占める矩形情報をも出力する。具体的には、ページ隅を原点としたページ内での矩形の位置座標、矩形の幅width及び高さheightである。また、一般的なOCRは、閾値以下で隣接する文字を同じ行としてつなぎ合わせる等の処理をして行を認識し、行単位で文字単位のスキャン結果を出力することができる。そこで本実施例では、OCRの当該機能を利用し、同一行と認識された文字単位の認識結果の集合から、各行Lkの文字列空白文字は含まないを取得し、また、高さheightの中央値を求めてこれを各行Lkのフォントサイズとする。更にOCRは、横書きの場合ページごとに上から下へ順次スキャンを行うことから通し番号やページ内行番号を取得可能であり縦書きの場合は通し番号とページ内の列番号、本実施例では当該通し番号とページ内行番号を各行Lkに付与するものとする。次に、目次と見出しの自動対応付け装置からの出力として、出力データMを次のように定義する。Mm1...mC―定義3ここで、Cは目次に含まれる全目次項目数を示す。出力データMは、各目次項目が何行目に対応しているかを表す正の整数の列であり、要素miは、i番目の目次項目がmi正の整数値行目に対応することを示す。そのため以下では出力データMを対応付けMともいう。ここで、目次データC内の全目次項目の本文データD内の見出し候補行への対応付けMの尤もらしさを示す、C、D及びMの関数であるスコア関数Sを考える。すると、目次項目の見出し候補行への対応付けの問題は、スコア関数Sを最大にする対応付けMを求める問題として定式化できる。本願発明では、上述したように、目次項目の見出し候補行への対応付けの尤もらしさを、当該対応付け単独で評価するだけでなく、他の目次項目の見出し候補行への対応付けとの共通度をも考慮して評価する。そこで、本願発明では、上記スコア関数Sを以下のように定義する。SΣiuΣib―定義4ここで、uは各目次項目の見出し候補行への対応付けの尤もらしさを該対応付け単独で評価するユニグラムスコアを示し、出力データMの要素miごとのスコアを示す。また、bは一の目次項目と他の目次項目のペアである目次項目ペアの見出し候補行への対応付けの尤もらしさを目次項目ペアのそれぞれの見出し候補行への対応付けの共通度に基づき評価するバイグラムスコアを示し、出力データMの要素のペアmimjごとのスコアを示す。対応付けMの候補は入力長に対して指数個存在するため、全ての対応付けMを列挙してスコア関数Sの最大値を求めることは一般に、計算量的に困難である。しかし、スコア関数Sを上記のようにユニグラムスコアuを全目次項目について足し合わせた第1の和と、バイグラムスコアbを全目次項目ペアについて足し合わせた第2の和との合計として表すことで、多項式時間で計算することが可能である。例えば、Viterbiアルゴリズムを適用すれば、上記スコア関数Sを最大にする対応付けMの系列は、目次項目数C、本文行数D|に対して、時間計算量Oで求められることが知られている。なお、本文データDの要素、即ち見出し候補行をフィルタリングすることによって、時間計算量は更に少なくすることが可能である。以上のように定式化した問題に対し、本願発明の一実施形態に係る目次と見出しの自動対応付け装置300を説明する。図3は、本願発明の一実施形態に係る目次と見出しの自動対応付け装置300の機能構成を示す図である。目次と見出しの自動対応付け装置300は、入力部302と、探索部304と、出力部306とを備える。入力部302は、文書の目次項目単位の目次データCと、文書の行単位の本文データDとを、記憶装置から読み出して、またはネットワークを介して他のコンピュータから、入力する。探索部304は、目次データC内の全目次項目の本文データD内の見出し候補行への対応付けMの尤もらしさを示す、C、D及びMの関数であるスコア関数Sの最大値を探索する。出力部306は、スコア関数Sを最大にする前記対応付けMを出力する。ここで探索部304は、スコア関数Sを、定義4に関して説明したユニグラムスコアuを全目次項目について足し合わせた第1の和と、同じく定義4に関して説明したバイグラムスコアbを全目次項目ペアについて足し合わせた第2の和との合計として求める。ところでバイグラムスコアbは上述したように、目次が木構造を有するか否かによってその値を求めるべき目次項目のペアの組み方が異なる。そこで以下では、目次がフラット構造を有する場合を実施例1、目次が木構造を有する場合を実施例2としてそれぞれ順に説明する。実施例1では、目次はフラット構造を有し、全ての目次項目が同一レベルにあるとする。この場合、バイグラムスコアbを求めるべき目次項目のペアは、任意の目次項目のペアであってよく、共通度の評価では共通度が高いほど高い評価となる。しかし、一の目次項目のペアとすべき他の目次項目は目次項目ごと異なることが好ましい。そこで本実施例では、目次項目のペアは隣接関係にある目次項目のペアとし、定義4を次のように書き直す。SΣiuΣib―定義5以下ではまず定義5におけるユニグラムスコアuとバイグラムスコアbの設計方法を説明する。その後に、定義5で示されるスコア関数Sの最大値の探索方法を図4から図7を参照して説明する。既に説明したとおり、ユニグラムスコアuは、i番目の目次項目を、簡略してuとも記載する。単独評価の第1の例は、文字列の類似度に基づく評価である。即ち、Ciの文字列とDmiの文字列が互いに類似しているならば高いスコアを返すようにユニグラムスコアuを設計する。類似か否かの判断は、一例としてCiの文字列とDmiの文字列の編集距離や、Ciの文字列とDmiの文字列に共通に含まれる隣接2文字対の数を利用してよい。前者の編集距離は、2つの文字列がどの程度異なっているかを示す数値であるため、編集距離が所定の閾値以下であれば類似と判断してよい。後者は、各文字列について隣接2文字対の集合をそれぞれ求め、2つの集合の積集合のサイズが所定の閾値以上であれば類似と判断してよい。便宜上、以下では類似であるか否かを判断する際の所定の閾値をMINSIMという。編集距離の詳細については、例えば以下の文献を参照されたい。GonzaloNavarroMathieuRaffinotFlexiblePatternMatchinginStringsPracticalOnLineSearchAlgorithmsforTextsandBiologicalSequencesCambridgeUniversityPress2007単独評価の第2の例は、行の種類に基づく評価である。即ち、フォントサイズや位置等の情報から、Dmiが見出しにみられる特徴を有すると判断できる場合、高いスコアを返すユニグラムスコアuを設計する。逆に、フォントサイズや位置等の情報から、Dmiが柱や注釈、本文に見られる特徴を有すると判断される場合、低いスコアを返すユニグラムスコアuを設計する。なお、行の種類に基づく評価は複数考えられるため、例えば、見出しの可能性が高いと判断すればスコアを1増やし、見出しでない可能性が高いと判断すればスコアを1減らし、というように複数の判断を組み合わせて最終的なスコアを出力するよう設計してもよい。ここでフォントサイズの大小は、見出しや注釈以外の本文との比較によって判断されうるものである。そこで、本文のフォントサイズを文書内の全行のフォントサイズの中央値で代替し、Dmiが該中央値より大きいフォントサイズを有する場合に見出しと判断し、Dmiが上記中央値より小さいフォントサイズを有する場合に見出しでないと判断してよい。また、位置情報に関しては、例えば、見出しはページの最初につきやすいことから、Dmiがページの最初の行である場合に見出しと判断してもよい。逆に、Dmiがページの最後の行である場合には注釈である可能性が高いことから、見出しではないと判断してもよい。また、見出し行は中央寄せであったり、本文よりも左に飛び出すなど、本文と異なる傾向にあることから、例えば横書きの場合、全行の文字の始まり位置の中央値からDmiの文字の始まり位置を差し引いた値の絶対値が所定の閾値以上であれば見出しと判断し、そうでない場合見出しでないと判断してもよい。なおこれらは位置情報に基づく判断の一例として説明したものであり、他の位置情報に関する見出しの特徴の知識の利用を制限するものではないことに留意されたい。ユニグラムスコアuは、上述した文字列の類似度にのみ基づいて評価するものでもよく、または文字列の類似度に基づく評価スコアと行の種類に基づく評価スコアとを適宜重み付けをしつつ足し合わせて総合評価するのでもよい。このような総合評価を採用する場合、対応付けのいくつかについてフォントサイズや位置情報を取得できないため全部の評価の設計方法について説明する。既に説明したとおり、バイグラムスコアbは、一の目次項目i番目の目次項目を、単にbとも記載する。共通度に基づく評価の第1の例は、フォーマットの共通度に基づく評価である。即ち、Ciを対応付けるDmiと、Ci1を対応付けるDmi1のフォーマットの共通度が高い場合に高いスコアを返すようにバイグラムスコアbを設計してよい。より具体的には、フォーマットの共通度は、DmiとDmi1のフォントサイズの共通度であってよく、DmiとDmi1のフォントサイズが同一とみなせる場合にフォーマットの共通度が高いと判断してよい。これは、目次がフラット構造であれば見出しのフォントサイズは同じであるという知識に基づくものである。また、フォーマットの共通度は、Dmiの文字列とDmi1の文字列の最初の文字又は最初の文字と最後の文字の共通度であってよい。即ち、Dmiの文字列とDmi1の文字列が、共通の文字で始まる又は共通の文字で始まりかつ共通の文字で終わる場合にフォーマットの共通度が高いと判断してもよい。これは、見出しには、索引部分例えば、第X章や第X部等や見出しであることを示す記号例えば、§や○等が先頭において含まれることが多いこと、また、見出しであることを示す記号については、例えば■リストの実現■のように、見出しの最初と最後に含まれていることがあること、そして目次がフラット構造であればそのような書式は全見出しに共通であるという知識に基づくものである。また、Ciの文字列と類似するDmiの文字列部分以下、Dmiの類似文字列というと、Ci1の文字列と類似するDmi1の文字列部分以下、Dmi1の類似文字列というの前後の所定数の文字の類似度が高い場合にフォーマットの共通度が高いと判断してもよい。かかる判断は、1つには、目次項目の文字列に索引部分や記号部分が含まれない場合に効果的である。なぜならばこの場合、DmiやDmi1の類似文字列の前後の所定数の文字は、索引部分例えば、第X章や第X部等や記号部分例えば、§や■リストの実現■の■等を指すことになり、当該部分の類似度が高い場合にフォーマットの共通度が高いと判断することになるからである。またかかる判断は、スキャンデータ以外のデータであって位置情報を持たないデータを利用する場合に有効である。この場合、見出し候補行の文字列はフォーマット調整のための空白文字を含み、従ってDmiやDmi1の類似文字列の前後の所定数の文字は、フォーマットに利用された空白文字を指すことになり、当該部分の類似度が高い場合にフォーマットの共通度が高いと判断することになるからである。共通度に基づく評価の第2の例は、目次におけるページ番号と実際のページ番号、即ち、最初のページからの通し番号との差分の共通度に基づく評価である。即ち、Ciに含まれるページ番号とCiに対応付けるDmiを含むページの通し番号との差分と、Ci1に含まれるページ番号とCi1を対応付けるDmi1を含むページの通し番号との差分との共通度が高い場合に高いスコアを返すようにバイグラムスコアbを設計してよい。なお、差分の共通度の高さは、一例として差分が同一である場合に共通度が高いとしてよい。当該評価は、前書き等の本文以外のページの存在のため、目次におけるページ番号と通し番号にはずれが生じることが多いが、その差分は一定であるという知識にもとづくものである。例えば、目次に含まれる各目次項目のページ番号がそれぞれ、1、4、11、7誤、22、26であったとする。但し7のページ番号は読み取り誤りがあったため、間違ったページ番号であるとする。これに対し、対応する見出し候補行の通し番号がそれぞれ、2、5、12、18、23、27であったとする。するとその差分はそれぞれ、1、1、1、11、1、1であり、5つの隣接目次項目のペアのうち3つは差分の値が同一となる。このようにページ番号を差分で評価することにより、ページ番号のわずかな読み取り誤りによって評価が大きく影響を受けることはなくなる。上記差分の共通度に基づく評価に加えて、非隣接行制約に従うようバイグラムスコアbを設計してもよい。ここで非隣接行制約とは、隣接する目次項目ペアCi、Ci1にそれぞれ対応付けられる見出し候補行Dmi、Dmi1は、隣接する行であってはいけないという制約である。この制約は、連続する見出しの間には必ず本文があるという知識に基づくものである。そこで、Ci、Ci1が隣接する行である場合、バイグラムスコアbの値を減じるように設計してもよい。バイグラムスコアbは、上述した3つのフォーマットの共通度に基づく評価スコアと、ページの差分の共通度に基づく評価スコアと、非隣接行制約に基づく評価スコアとのうち任意の数の評価スコアを、重み付けをしつつ組み合わせて評価するものであってもよい。複数の評価スコアを足し合わせて評価する場合、対応付けのいくつかについてフォントサイズやページ情報を取得できないため全部の評価であることから、この経路探索の問題はViterbiアルゴリズムやダイクストラ法によりノード数に対して多項式時間で解くことができる。具体的には、目次項目数C、本文行数D|に対して、時間計算量Oで求めることができる。従って実際の計算時間は、本文データDの要素、即ち見出し候補行をフィルタリングすることによって、更に少なくすることができる。そこで、次に見出し候補行のフィルタリングについて説明する。第1のフィルタリングはページ番号の制約に基づくフィルタリングである。目次は見出しを順序立てて書いたものである。従って、目次項目Ciに対応付ける見出し行の行番号miは、iが大きくなるにつれて大きくならなければならない。従って、図4に示すグラフ400においてmimi1となるエッジは削除してよい。エッジの削除によって孤立するノードもまた削除してよい。第2のフィルタリングは、目次項目と該目次項目に対応付ける見出し候補行の文字列の類似度に基づくフィルタリングである。即ち、目次項目Ciに対応付ける見出し候補行Dmiを、本文データD内の全行のうち、Ciの文字列と一定以上の類似度を有する文字列の行に限定してよい。ここで類似度の判断は、上述したユニグラムスコアuにおける類似度の判断と同様の方法を使用してよい。図5は、図4に示すグラフ400において、第1のフィルタリング及び第2のフィルタリングによりエッジとノードを削除した結果のグラフ500を示す。但し図5では、m1とm2の列以外は、ノードの行番号とエッジとを省略していることに留意されたい。m1の列508をみてみると、各ノードに付けられた行番号は、1、8、13、28、...と飛び飛びの値をとっている。これは、第2のフィルタリングにより1番目の目次項目C1に対応付ける見出し候補行が絞り込まれた結果である。また、例えばノード510をみると、当該ノードには、該ノードの行番号8よりも大きい行番号15、23をそれぞれ持つノード512、514へのエッジのみが引かれている。これは、第1のフィルタリングによりmimi1となるエッジが削除された結果である。このようにフィルタリングによりエッジやノードを削除することにより、計算時間を少なくすることができる。ところで、本文データDはOCR処理により取得されるので、ページ抜けの可能性がある。そこで本実施例では図6および図7を参照して以下に説明する2つの方法によりページ抜けに対応する。ページ抜けに対応する第1の方法は、ページ抜けを示すエッジを追加する方法である。エッジによって隣接関係にある目次項目のペアの対応付けを示すためには、エッジは隣接するノード間でのみ引かなければならない。しかし、間に一定数便宜上、以下ではこの数値をMAXSKIPという以下のノードを挟んでエッジを引くことを許容することにより、ページ抜けに対応することが可能となる。これを図6に示すグラフを参照して説明する。図6は、図5に示すフィルタリング後のグラフ500において、間に1つのノードを挟んでエッジを引くことを許容してエッジを追加したものである。但し図6では、m1の列608からm3の列610までの列を除いて、ノードの行番号とエッジとを省略していることに留意されたい。図6では、m1の列608のノードとm3の列610のノードとを結合するエッジが複数追加されている。この新たに追加された各エッジは、2番目の目次項目に対応付けるべき見出し候補行がないことを示す。従って、スコアの合計を最大とする経路がこの新たに追加したエッジを含む場合、2番目の目次項目に対応付けるべき見出し候補行を含むページが抜けていたということが示される。なお、新たに追加するエッジに対しても、第1のフィルタリングを適用可能であること、また、バイグラムスコアbを付与することに留意されたい。ページ抜けに対応する第2の方法は、ページ抜けを示すノードを追加する方法である。このページ抜けを示すノードは、抜けたページの行数を区別するために、全ノードの各々に対し1つ追加する。そして追加したノードには、直後のノードの行番号05を付与する。これは、直後の行と直前の行の間に存在したはずだが、認識できなかった、あるいはページ抜けのために存在しなかったということを示すことになる。また、各ノードのユニグラムスコアとして、ページ抜けに対するペナルティーとして低い、あるいは負のスコアを与える。これは、ページ抜けと判断しづらくするためである。隣接見出し間のフォーマットの類似度は測ることができないので、バイグラムスコアbは0とする。図7は、図5に示すフィルタリング後のグラフ500において、全ノードの各々に対してノードを1つ追加したものである。なお、図7のグラフ700では、追加したノードは黒丸で示している。但し図7では、m1とm2の列を除いて、ノードの行番号やエッジ、また追加ノードを省略していることに留意されたい。ここで例えばノード708は、12行目と13行目の間に対応する行があったがそのような行を見つけられなかったことを示す。従って、スコアの合計を最大とする経路がこの新たに追加したノード708を含む場合、1番目の目次項目に対応付けるべき見出し候補行を含むページが抜けていたということが示される。なお、新たに追加するノードを結合するエッジに対しても、第1のフィルタリングは適用可能である。次に図8から図12を参照して、実施例1に係る目次と見出しの自動対応付け装置300による処理の流れを説明する。なお、スコア関数Sの最大値の探索は、Viterbiアルゴリズムを利用するものとする。図8は、自動対応付け装置300による処理の全体の流れの一例を示すフローチャートである。図9は、図8に示すフローチャートのステップ804のDAGのノード作成処理の流れの一例を示すフローチャートである。図10は、図8に示すフローチャートのステップ806のDAGのエッジ作成処理の流れの一例を示すフローチャートである。図11は、図8に示すフローチャートのステップ808のスコア関数Sの最大値探索処理の流れの一例を示すフローチャートである。図12は、図8に示すフローチャートのステップ810のスコア関数Sの最大値を与える対応付けMの出力処理の流れの一例を示すフローチャートである。まず、図8を参照して目次と見出しの自動対応付けの全体処理の流れを説明する。図8に示す自動対応付けの全体処理はステップ800から開始し、自動対応付け装置300は、記憶装置またはネットワークを介して他のコンピュータから、目次項目単位の目次データCと行単位の本文データDを入力するステップ800、ステップ802。続いて自動対応付け装置300は、入力した目次データCと本文データDとを使用して、図4、図5を参照して説明した、定義5により表されるスコア関数Sの最大値を探索するためのグラフ以下、DAGというのノードを作成するステップ804。ノード作成処理の詳細は、図9を参照して後述する。続いて自動対応付け装置300は、前のステップで作成したDAGのノード情報に基づいてDAGのエッジを作成するステップ806。エッジ作成処理の詳細は、図10を参照して後述する。続いて自動対応付け装置300は、作成したDAGを使用して、スコア関数Sの最大値を探索するステップ808。探索処理の詳細は、図11を参照して後述する。最後に自動対応付け装置300は、ステップ808で求めたスコア関数Sの最大値を与える対応付けMを出力する。対応付けMの出力処理の詳細は、図12を参照して後述する。そして処理は終了する。次に図9を参照して、DAGのノード作成処理の詳細を説明する。ここでは上述した文字列の類似度に基づく第2フィルタリングを採用する。図9に示すDAGのノード作成処理はステップ900から開始し、自動対応付け装置300はまずDAGのノード情報を表す2次元配列dagを用意する。2次元配列dagの各要素への値の設定は続く処理において行うが、2次元配列dagの要素rはノードを表す抽象データ型とし、toc番目の目次項目を行番号lineの見出し候補行に対応付ける対応付けを示すものとする。但し、関数tocと関数lineは、要素rに対しそれぞれ対応付けの目次項目の番号と見出し候補行の行番号を返す関数とする。また、目次項目のc番目に対し、dagcはc番目の目次項目に対応するノードの配列を表すものとする。2次元配列dagを用意すると続いて自動対応付け装置300は、2次元配列dag0に探索開始地点を示す仮想ノードBOSを追加するステップ902。なお、関数tocと関数lineは仮想ノードBOSに対し共に0を返すものとする。続いて自動対応付け装置300は、ステップ904及び該当する場合はステップ906の処理を、第1のループ及び第2のループにより繰り返す。第1のループは、変数cを1から目次項目数Cまで1つずつ増やし繰り返すループである。第2のループは、変数cの値に対し変数dを1から本文の全行数Dまで1つずつ増やしながら繰り返すループである。ステップ904において、自動対応付け装置300は、c番目の目次項目Ccの文字列とd番目の行Ddの文字列との類似度が許容できる最小の類似度MINSIMより大きいか否かを判定する。類似度の判定は、既に説明した通り編集距離等の既存技術を利用してよい。類似度がMINSIMより大きい場合ステップ904:YES、自動対応付け装置300は、dagcにc番目の目次項目をd行目に対応付ける対応付けを示すノードを追加するステップ906。類似度がMINSIM以下の場合ステップ904:NO、またはステップ906の処理の後、自動対応付け装置300は、第1及び第2の全てのループを抜け出すまで一連の処理を繰り返す。上記繰り返し処理が終了すると、自動対応付け装置300は、2次元配列dagD1に、探索終了地点を示す仮想ノードEOSを追加するステップ908。なお、関数tocと関数lineは仮想ノードEOSに対し、それぞれC1、D1を返す。そして処理は終了する。続いて図10を参照して、DAGのエッジ作成処理の詳細を説明する。ここでは上述したページ番号の制約に基づく第1フィルタリングを採用する。また、ページ抜けに対応すべく上述した第1の方法、即ち、ページ抜けを示すエッジを追加する方法を採用する。図10に示すDAGのエッジ作成処理はステップ1000から開始し、自動対応付け装置300は、DAGのエッジ情報を表す2次元配列leftを用意する。2次元配列leftの各要素への値の設定は続く処理において行うが、2次元配列dagの各要素nに対し、2次元配列leftnは、要素nが示すノード以下、単にノードnというの列の左隣仮想ノードBOS側の列にあるノードであって、ノードnとの間にエッジを引くべきノードの配列を表すものとする。2次元配列leftを用意すると自動対応付け装置300は、ステップ1004及び該当する場合はステップ1006の処理を、入れ子になった4つのループにより繰り返す。第1のループは、変数cを1から目次項目数Cまで1つずつ増やし繰り返すループである。第2のループは、各変数cの値に対してdagcが示すノードの配列から順に1のノードrを取り出して繰り返すループである。第3のループは、各ノードrに対して変数sを0から許容できる最大のページ抜け数MAXSKIPまで1つずつ増やし繰り返すループである。第4のループは、変数c、変数sのそれぞれの値に対してdagcs1が示すノードの配列から順に1のノードlを取り出して繰り返すループである。ステップ1002において自動対応付け装置300は、ノードrの行番号lineの値がノードlの行番号lineの値より大きいか否かを判定する。line>lineの場合ステップ1002:YES、自動対応付け装置300は、leftrにノードlを追加するステップ1004。line≦lineの場合ステップ1002:NO、またはステップ1006の処理の後、自動対応付け装置300は、4つのループ全てを抜け出すまで一連の処理を繰り返す。そして処理は終了する。続いて図11を参照して、スコア関数Sの最大値探索処理の詳細を説明する。図11に示すスコア関数Sの最大値探索処理はステップ1100から開始し、自動対応付け装置300は、生成したDAGのノード数に等しい要素をそれぞれ有する配列Sと配列Bを用意する。配列Sと配列Bのそれぞれの要素への値の設定は続く処理において行うが、Snは、仮想ノードBOSを始点としノードnを終点とする経路のスコアのうち最大のスコアを格納するものとする。ここで、経路のスコアとは該経路に含まれるノード及びエッジにそれぞれ付与されるユニグラムスコアu、バイグラムスコアbの合計をいう。また、Bnは、Snに設定される最大のスコアを与える経路に含まれる最後のエッジの情報ノードnに至る1つ前のノード情報を格納するものとする。なお、配列Sの0番目の要素S0はnullで初期化しておく。既に説明したとおり、ノードrに付与されるユニグラムスコアuとは、該ノードrが示す対応付けについてのユニグラムスコアulineである。また、ノードrとノードlを結合するエッジに付与されるバイグラムスコアbとは、該エッジが示す隣接する目次項目のペアの対応付けについてのバイグラムスコアbtoctoclinelineである。各ノード、各エッジにそれぞれ付与されるユニグラムスコアuとバイグラムスコアbは、スコア関数Sの最大値探索処理の前に予め求めておいてもよく、或いは以下のステップ1104、1110において必要に応じて求めてもよい。上記のように配列Sを定義すると、求めるべきスコア関数Sの最大値はSEOSとして求められる。ところで仮想ノードBOSを始点としノードrを終点とする経路の最大スコアSrは、ノードrに至る1つ前のノードlについての配列Sの値Slと、ノードlとノードrを結合するエッジのバイグラムスコアbとを足した値の最大値以下では、部分最大値というに、ノードrのユニグラムスコアuを足したものとして求めることができる。従って、SEOSの値を求めるには、仮想ノードBOSから仮想ノードEOSへ向う順序で、DAGのノード各々について配列S及び配列Bの値を求める必要がある。なお配列Bは、詳細は図12を参照して後述するが、スコア関数Sの最大値を与える経路を特定する際に利用される。そこで自動対応付け装置300は、仮想ノードBOSから仮想ノードEOSへ向う順序で、DAGのノード各々について配列Sと配列Bの値を求めるべく、ステップ1102からステップ1110の処理但しステップ1008は該当する場合のみを第1ループと第2ループにより繰り返す。第1のループは、変数cを1から目次項目数に1加えたC1まで1つずつ増やし繰り返すループである。第2のループは、各変数cの値に対してdagcが示すノードの配列から順に1のノードrを取り出して繰り返すループである。ステップ1102において、自動対応付け装置300は、ノードrについて上記部分最大値を求めるための変数maxを用意しこれを-∞で初期化する。自動対応付け装置300はまた、変数maxに部分最大値の値が設定される際の最後のエッジ情報を保持しておくための変数bestを用意し、これをnullで初期化する。そして自動対応付け装置は、ノードrについて上記部分最大値を求めるために、続くステップ1104からステップ1108の処理但しステップ1108の処理は該当する場合のみを第3ループにより繰り返す。第3のループは、各ノードrに対してleftrが示すノードの配列から順に1のノードlを取り出して繰り返すループである。ステップ1104において、自動対応付け装置300は、一時変数sにノードlとノードrを結合するエッジに付与されたバイグラムスコアbclinelineとSlとを足し合わせた値を設定する。続いて自動対応付け装置300は、一時変数sが変数maxより大きいか否かを判定するステップ1106。s>maxの場合ステップ1106:YES、自動対応付け装置300は、変数maxに一時変数sの値を、変数bestにノードlを設定するステップ1108。s≦maxの場合ステップ1106:NO、またはステップ1108の処理の後、自動対応付け装置300は、第3のループを抜け出すまで一連の処理を繰り返す。第3のループを抜け出すと、続いて自動対応付け装置300は、Srに変数maxとユニグラムスコアuとを足し合わせた値を設定し、またBrに変数bestの値を設定するステップ1110。続いて自動対応付け装置300は、第1のループを抜け出すまで上記一連の処理を繰り返す。そして処理は終了する。続いて図12を参照して、スコア関数Sの最大値を与える対応付けMの出力処理の詳細を説明する。図11に示すスコア関数Sの最大値探索処理において求められた配列Bの各要素Bnには、上述したように、配列Snに設定される最大のスコアを与える経路に含まれる最後のエッジの情報ノードnに至る1つ前のノード情報が格納されている。また、スコア関数Sの最大値はSEOSにより与えられる。従って、スコア関数Sの最大値を与える対応付けMは、BEOSを出発点としてBBOSまでエッジ情報を順次繋ぎ合わせることにより求められる。そこで処理の開始において、自動対応付け装置300はまず、定義3として説明した対応付けMの配列を用意するステップ1200。続いて自動対応付け装置300は、ノードを表す変数nに、探索終点を示す仮想ノードEOSを設定するステップ1202。続いて自動対応付け装置300はnにBnを設定するステップ1204。続いて自動対応付け装置300は、現在の変数nの値がBOSに等しいか否かを判定するステップ1206。変数nの値がBOSに等しくない場合ステップ1206:NO、自動対応付け装置300はステップ1208の処理へ進み、Mtocにlineの値を設定する。その後自動対応付け装置300はステップ1204の処理に戻る。一方、変数nの値がBOSに等しい場合ステップ1206:YES、自動対応付け装置300はステップ1210の処理へ進み、配列Mを出力する。そして処理は終了する。実施例2では、目次は木構造を有するものとする。図13aに、木構造を有する目次の例を示す。図13aにおいて、目次は矩形内の数字によりその索引部分のみが示されている。また、図中矢印は目次項目の親子関係を示し、矩形下に表示された1段目の数字は目次項目番号を、2段目の数字はルートの階層レベルを0とした階層のレベルを示している。矢印の先が同一の兄弟関係にある目次項目の任意のペア例えば、11と12は、階層のレベルが同一でありフォーマットも共通している。一方、矢印元と矢印先という親子関係にある目次項目の任意ペア例えば、1と11は、階層のレベルが一段階異なりフォーマットも異なっている。このように目次の木構造において兄弟関係にある目次項目のペアにそれぞれ対応付けられる見出しのフォーマットは同一と考えられる。一方、目次の木構造において親子関係にある目次項目のペアにそれぞれ対応付けられる見出しのフォーマットは同一ではなく、例えばフォントサイズや章番号等、大小関係があると考えられる。従って目次が木構造を有する場合、バイグラムスコアbを求めるべき目次項目のペアは、目次の木構造において同一階層で隣り合う兄弟関係にある目次項目のペア以下、兄弟関係にある隣接目次項目ペアというであり、共通度の評価では共通度が高いほど高い評価となる。但し、共通度の評価を、共通度が低いほど高い評価を行うようにすれば、親子関係にある目次項目のペアを選択することも可能である。なお、目次の木構造のデータは、一例としてその階層レベルを示す数値を目次項目順に並べたリストとして記憶して利用してよい。そこで実施例2においては、兄弟関係にある隣接目次項目ペアに対しては、バイグラムスコアbとして、目次項目ペアのそれぞれの見出し候補行への対応付けの共通度が高いほど高いスコア値を返す兄弟バイグラムスコアb1を採用する。また、親子関係にある目次項目ペアに対しては、バイグラムスコアbとして、目次項目ペアのそれぞれの見出し候補行への対応付けの共通度が低いほど高いスコア値を返す親子バイグラムスコアb2を採用する。なお、バイグラムスコアbとして兄弟バイグラムスコアb1または親子バイグラムスコアb2いずれか一方のみを採用することも可能であることはいうまでもない。従って、実施例2において定義4は次のように書き直される。SΣiuΣib1CDΣib2CD―定義6ここで、sibは、i番目の目次項目に同一階層において隣接する1つ前の兄ノードの目次項目番号を返す関数である。図13aの目次の例では、例えばsib3、sib5である。また、parは、i番目の目次項目の親ノードの目次項目番号を返す関数である。図13aの目次の例では、例えばpar1、cpar0である。上記2つの関数に加えて、i番目の目次項目の最後の子ノードの目次項目番号を返す関数chdを導入する。図13aの目次の例では、例えばchd11、chd4である。新たに導入した3つの関数の擬似コードを以下に記載しておく。parnより前で、階層がnより小さい最初の項目foriinn1n20ifLiLnreturnireturn1sibnより前、parよりあとで、階層がnと同じ最初の項目foriinn1n2par1ifLiLnreturnireturn1chdnより後ろ、nと同じ階層の項目より前で、階層がnより1つ大きい最後の項目c1foriinn1LifLiLnreturncelseifLiLn1cireturncまた、定義6の右辺において、第1項のユニグラムスコアuについての和は、全目次項目についての和である。第2項の兄弟バイグラムスコアb1についての和は、兄弟関係にある隣接目次項目のペア全てについての和である。第3項の親子バイグラムスコアb2についての和は、親子関係にある目次項目のペア全てについての和である。各スコアの設計方法は、ユニグラムスコアuと兄弟バイグラムスコアb1については、それぞれ実施例1に関して説明したユニグラムスコアu、バイグラムスコアbと同じであるためここでは説明を省略する。そこで以下では、親子バイグラムスコアb2についてその設計方法を説明する。その後で、定義6で示されるスコア関数Sの最大値の探索方法を説明する。親子バイグラムスコアb2CDは、一の目次項目i番目の目次項目番目の目次項目のペア、即ち親子関係にある目次項目ペアの見出し候補行mi行目Dmiとmpar行目Dmparへの対応付けの尤もらしさを、親子関係にある目次項目ペアのそれぞれの見出し候補行への対応付けの共通度に基づき評価したスコアである。なお上述したように、親子バイグラムスコアb2の共通度の評価は、共通度が低いほど高い評価となる。共通度に基づく評価の第1の例は、フォーマットの共通度に基づく評価である。即ち、子の目次項目Ciを対応付けるDmiと、親の目次項目Cparを対応付けるDmparのフォーマットの共通度が低い場合に高いスコアを返すように親子バイグラムスコアb2を設計する。より具体的には、子の目次項目Ciに対応するDmiのフォントサイズと、親の目次項目Cparに対応するDmparのフォントサイズとの間に大小関係がある場合に高いスコアを返すように親子バイグラムスコアb2を設計する。これは一般に親見出しの方が子見出しよりもフォントサイズが大きいとの知識に基づくものである。上記フォントサイズに代えてまたは加えて、子の目次項目Ciに対応するDmiの索引部分が、親の目次項目Cparに対応するDmparの索引部分とフォーマットが異なる場合に高いスコアを返すように親子バイグラムスコアb2を設計してもよい。索引部分のフォーマットが異なる例を以下に挙げる。親の索引部分―子の索引部分とすると、第1部―第1章、第1章―1.1、1.1―1.1.1、1―1、1-a等があるがこれに限定されない。索引部分のフォーマットの判定は、一例として事前に索引部分のフォーマットの正規表現を用意してこれとマッチングさせ、一致したフォーマットが異なれば互いに異なるフォーマットであると判定してよい。例えば第1章や1.1に対してはそれぞれ次のような正規表現を用意できる。第章バリエーションとして、第二章のように漢数字であるならば、第章また、1-1のように.でなく-であるならば-となる。他のフォーマットについても同様にして正規表現を用意できる。共通度に基づく評価の第2の例は、目次におけるページ番号と実際のページ番号、即ち、最初のページからの通し番号との差分の共通度に基づく評価である。但し第2の例については、共通度が高いほど高いスコアを返すように親子バイグラムスコアb2を設計する。即ち、Ciに含まれるページ番号とCiに対応付けるDmiを含むページの通し番号との差分と、Cparに含まれるページ番号とCparを対応付けるDmparを含むページの通し番号との差分との共通度が高い場合に高いスコアを返すように親子バイグラムスコアb2を設計する。なお、差分の共通度の高さは、一例として差分が同一である場合に共通度が高いとしてよい。親子バイグラムスコアb2は、上述した3つの共通度に基づく評価スコアのうち任意の数の評価スコアを、重み付けをしつつ組み合わせて評価するものであってもよい。複数の評価スコアを足し合わせて評価する場合、対応付けのいくつかについてフォントサイズやページ情報を取得できないため全部の評価で求めることができる。従って、本文データDの要素、即ち見出し候補行をフィルタリングすることによって、実際の計算時間は更に少なくすることが可能である。フィルタリングは、一例として、実施例1に関して説明した目次項目と該目次項目に対応付ける見出し候補行の文字列の類似度に基づくフィルタリングを適用可能である。以下、2ndorderEisnerアルゴリズムを応用したスコア関数Sの最大値の探索方法を説明する。まず、説明を容易にするため、ユニグラムスコアuとバイグラムスコアbの表記を次のように単純化する。なお、以下ではi、l、rはそれぞれ文書中の位置、即ち行番号を示す整数とする。ユニグラムスコアuは、c番目の目次項目をi行目の見出し候補行に対応付けたときのユニグラムスコアuを表す。兄弟バググラムスコアb1ilは、c番目の目次項目をi行目の見出し候補行に、かつ、兄弟関係にあるsib番目の目次項目をl行目の見出し候補行に対応付けたときの兄弟バググラムスコアb1を表す。親子バググラムスコアb2ilは、c番目の目次項目をi行目の見出し候補行に、かつ、親子関係にあるpar番目の目次項目をl行目の見出し候補行に対応付けたときの親子バググラムスコアb2を表す。次に新たに2種類の再帰関数を導入する。再帰関数compは、c番目の目次項目をルートとする目次のサブツリーが、行番号がl...r1の文書中の範囲に対応付けられるときの最大のスコアを返す関数とする。但し、c番目の目次項目はl行目に対応するものとする。また、再帰関数incompは、c番目の目次項目の兄に該当する目次項目をルートとする目次のサブツリーを全兄の目次項目について集めた集合が、行番号がl1...r1の文書中の範囲に対応付けられるときの最大のスコアを返す関数とする。但し、c番目の目次項目はr行目に、また、par番目の目次項目はl行目に対応するものとする。すると再帰関数compとincompは、次の2つの再帰式により計算できる。但し、記号maxiGは、Gの値がiに依存する場合において最大のGの値を示すものとする。再帰式1:compmaxiincomplicompiruib2li再帰式2:incompmaxiincomplicompiruib2siblib1cir―再帰式2再帰式1は、chd番目の目次項目がi行目に対応づけられると仮定して、記号maxiを利用してcompを書き換えたものである。即ち、上記仮定において、chd番目の目次項目の兄に該当する目次項目をルートとする目次のサブツリーを全兄の目次項目について集めた集合は、行番号がl1...i1の範囲に対応付けられる。また、chd番目の目次項目をルートとする目次のサブツリーは、行番号がi...r1の範囲に対応付けられる。なお、compの定義から、c番目の目次項目はl行目に対応付けられることに留意されたい。また、再帰式2は、sib番目の目次項目がi行目に対応づけられると仮定して、記号maxiを利用してincompを書き換えたものである。即ち、上記仮定において、sib番目の目次項目の兄に該当する目次項目をルートとする目次のサブツリーを全兄の目次項目について集めた集合は、行番号がl1...i1の範囲に対応付けられる。また、sib番目の目次項目をルートとする目次のサブツリーは、行番号がi...r1の範囲に対応付けられる。なお、incompの定義から、c番目の目次項目はr行目に、また、par番目の目次項目はl行目に対応対応付けられることに留意されたい。スコア関数Sの最大値の探索は、再帰関数compにおいて目次のツリー全体の最大スコアを求めることに等しい。即ち、スコア関数Sの最大値は、上記再帰関数を利用して、compとして求められる。そして、スコア関数Sを最大とする目次と本文見出しの対応付けMは、compを求める際に再帰的に呼び出されるcompの各々の計算において最大値を与えるchd番目の目次項目についての対応付けと、同じく再帰的に呼び出されるincompの各々の計算において最大値を与えるsib番目の目次項目についての対応付けの集合として求められる。なお、本実施例では、上記対応付けの集合を対応付けMとして出力するために更に2つの再帰関数を用意する。第1の再帰関数getcompは、compの計算において最大値を与えるchd番目の目次項目の対応付けをMchdに設定した後、後述する第2の再帰関数と自分自身とを呼び出す再帰関数である。第2の再帰関数getincompは、incompの計算において最大値を与えるsib番目の目次項目の対応付けをMsibに設定した後、自分自身と第1の再帰関数とを呼び出す再帰関数である。これら2つの再帰関数を計算方法の詳細は、図18及び図19に示すフローチャートを参照して後述する。次に図14から19を参照して、実施例2に係る目次と見出しの自動対応付け装置300による処理の流れを説明する。図14は、自動対応付け装置300による処理の全体の流れの一例を示すフローチャートである。図15は、図14に示すフローチャートのステップ1404の見出し候補行の決定処理の流れの一例を示すフローチャートである。図16は、再帰関数compの計算処理の流れの一例を示すフローチャートである。図17は、再帰関数incompの計算処理の流れの一例を示すフローチャートである。図18は、再帰関数getcomp処理の流れの一例を示すフローチャートである。図19は、再帰関数getincomp処理の流れの一例を示すフローチャートである。まず、図14を参照して目次と見出しの自動対応付けの全体処理の流れを説明する。図14に示す自動対応付けの全体処理はステップ1400から開始し、自動対応付け装置300は、記憶装置からまたはネットワークを介して他のコンピュータから、目次項目単位の目次データCと行単位の本文データDを入力するステップ1400、ステップ1402。続いて自動対応付け装置300は、入力した目次データCと本文データDとを使用して、目次項目ごと、対応付けを検討すべき見出し候補行を決定するステップ1404。見出し候補行決定処理の詳細は、図15を参照して後述する。続いて自動対応付け装置300は、整数の3つ組みを取るハッシュテーブルcmax、imax、cbest、ibestを用意し、それぞれ-∞で初期化するステップ1406。ここでcmaxは、をキーとして再帰関数compの最大値を返すハッシュテーブルである。imaxは、をキーとして再帰関数incompの最大値を返すハッシュテーブルである。cbestは、をキーとして再帰関数compの計算において最大値を与えたchd番目の目次項目の対応付け結果を返すハッシュテーブルである。ibestは、をキーとして再帰関数incompの計算において最大値を与えたsib番目の目次項目の対応付け結果を返すハッシュテーブルである。続いて自動対応付け装置300は、compを呼び出して、スコア関数Sの最大値を求めるステップ1408。compの呼び出し処理の詳細は、再帰関数compの計算処理の詳細に代えて図16を参照して後述する。続いて自動対応付け装置300は、対応付けMの配列mを用意するステップ1410。続いて自動対応付け装置300は、getcompを呼び出してスコア関数Sを最大にする対応付けを配列mに設定するステップ1412。getcompの呼び出し処理の詳細は、再帰関数getcompの計算処理の詳細に代えて図18を参照して後述する。最後に自動対応付け装置300は、配列mを求めるべき目次と見出しの対応付けとして出力するステップ1414。そして処理は終了する。次に図15を参照して、見出し候補行の決定処理の詳細を説明する。ここでは実施例1に関して説明した文字列の類似度に基づく第2フィルタリングを利用して見出し候補行の絞り込みを行う。図15に示す見出し候補決定処理はステップ1500から開始し、自動対応付け装置300はまず2次元配列candsを用意する。2次元配列candsの各要素への値の設定は続く処理において行うが、目次項目のc番目に対しcandscは、c番目の目次項目との対応付けを検討すべき見出し候補行の配列を表すものとする。2次元配列candsを用意すると続いて自動対応付け装置300は、2次元配列cands0に0を設定するステップ1502。続いて自動対応付け装置300は、ステップ1504及び該当する場合はステップ1506の処理を、第1のループ及び第2のループにより繰り返す。第1のループは、変数cを1から目次項目数Cまで1つずつ増やし繰り返すループである。第2のループは、変数cの値に対し変数dを1から本文の全行数Dまで1つずつ増やしながら繰り返すループである。ステップ1504において、自動対応付け装置300は、c番目の目次項目Ccの文字列とd番目の行Ddの文字列との類似度が許容できる最小の類似度MINSIMより大きいか否かを判定する。類似度の判定は、既に説明した通り、編集距離等の既存技術を利用してよい。類似度がMINSIMより大きい場合ステップ1504:YES、自動対応付け装置300は、candscに見出し候補行としてd番目の行を追加するステップ1506。類似度がMINSIM以下の場合ステップ1504:NO、またはステップ1506の処理の後、自動対応付け装置300は、第1及び第2の全てのループを抜け出すまで上記一連の処理を繰り返す。そして処理は終了する。次に図16を参照して、再帰関数compの計算処理の詳細を説明する。図16に示す再帰関数compの計算処理はステップ1600から開始し、自動対応付け装置300は、cmaxが-∞に等しいか否かを判定する。これはcompが再帰関数であることから、同じ引数について対してcompが既に計算済みであるならばその結果を再利用するためである。cmax≠∞である場合ステップ1600:NO、即ち、現在の引数に対しcompの値が既に算出されている場合、自動対応付け装置300はステップ1624へ進み、変数maxにcmaxclrの値を設定する。一方、cmaxの値が∞である場合ステップ1600:YES、即ち、現在の引数に対して未だcompの値が算出されていない場合、自動対応付け装置300はchdの値を変数c’に設定するステップ1602。続いて自動対応付け装置300は変数c’の値がnullであるか否かを判定するステップ1604。変数c’の値がnullの場合ステップ1604:YES、即ち、c番目の目次項目に対して子の関係にある目次項目が存在しない場合、自動対応付け装置300はステップ1622へ進み、変数maxに0を設定する。一方、変数c’の値がnullでない場合ステップ1604:NO、自動対応付け装置300は、上述した再帰式1の右辺の最大値を求めるための変数maxを用意し、これを-∞で初期化するステップ1606。自動対応付け装置300はまた、上記右辺の最大値を与えるchd番目の目次項目の対応付けを保持しておくための変数bestを用意し、これを0で初期化する。続いて自動対応付け装置300は、再帰式1の右辺の最大値を求めるために、続くステップ1608からステップ1614までの処理をループにより繰り返す。ここでループは、c’番目の目次項目についての見出し候補行の配列から順に1の見出し候補行i番目の行を取り出して繰り返すループである。ステップ1608において、自動対応付け装置300は、lirであるか否かを判定する。これは、c’番目の目次項目に対応する見出し候補行i番目の行が、行番号がl1...r1の範囲にあることを確認するためである。lirである場合ステップ1608:YES、自動対応付け装置300は変数sを用意して、これにincompcompub2の値を設定するステップ1610。なお、再帰関数incompの計算処理の詳細は図17を参照して後述する。続いて自動対応付け装置300は、maxsであるか否かを判定するステップ1612。maxsである場合ステップ1612:YES、自動対応付け装置300は、変数maxに変数sの値を、また、変数bestに変数iの値を設定するステップ1614。ステップ1608においてlirでない場合、また、ステップ1612においてmaxsでない場合、またはステップ1614の後、自動対応付け装置300は上記ループを抜け出すまで一連の処理を繰り返す。ループを抜けると続いて自動対応付け装置300は、変数maxの値をハッシュテーブルcmaxclrの値として、また、変数bestの値をハッシュテーブルcbestclrの値として設定するステップ1616、ステップ1618。ステップ1622、ステップ1624、またはステップ1618から、自動対応付け装置300はステップ1620へ進み、変数maxの値を返す。そして処理は終了する。次に図17を参照して、再帰関数incompの計算処理の詳細を説明する。図17に示す再帰関数incompの計算処理はステップ1700から開始し、自動対応付け装置300は、imaxが-∞に等しいか否かを判定する。これはincompが再帰関数であることから、同じ引数に対してincompが既に計算済みであるならばその結果を再利用するためである。imax≠∞である場合ステップ1700:NO、即ち、現在の引数に対しincompの値が既に算出されている場合、自動対応付け装置300はステップ1724へ進み、変数maxにimaxclrの値を設定する。一方、imaxの値が∞である場合ステップ1600:YES、即ち、現在の引数に対して未だincompの値が算出されていない場合、自動対応付け装置300はsibの値を変数c’に設定するステップ1702。続いて自動対応付け装置300は変数c’の値がnullであるか否かを判定するステップ1704。変数c’の値がnullの場合ステップ1704:YES、即ち、c番目の目次項目に対して兄の関係にある目次項目が存在しない場合、自動対応付け装置300はステップ1722へ進み、変数maxに0を設定する。一方、変数c’の値がnullでない場合ステップ1704:NO、自動対応付け装置300は、上述した再帰式2の右辺の最大値を求めるための変数maxを用意し、これを-∞で初期化するステップ1706。自動対応付け装置300はまた、上記右辺の最大値を与えるsib番目の目次項目の対応付けを保持しておくための変数bestを用意し、これを0で初期化する。続いて自動対応付け装置300は、再帰式2の右辺の最大値を求めるために、続くステップ1708からステップ1714までの処理をループにより繰り返す。ここでループは、c’番目の目次項目についての見出し候補行の配列から順に1の見出し候補行i番目の行を取り出して繰り返すループである。ステップ1708において、自動対応付け装置300は、lirであるか否かを判定する。これは、c’番目の目次項目に対応する見出し候補行i番目の行が、行番号がl1...r1の範囲にあることを確認するためである。lirである場合ステップ1708:YES、自動対応付け装置300は変数sを用意して、これにincompcompub2c’lib1の値を設定するステップ1710。続いて自動対応付け装置300は、maxsであるか否かを判定するステップ1712。maxsである場合ステップ1712:YES、自動対応付け装置300は、変数maxに変数sの値を、また、変数bestに変数iの値を設定するステップ1714。ステップ1708においてlirでない場合、また、ステップ1612においてmaxsでない場合、またはステップ1614の後、自動対応付け装置300は上記ループを抜け出すまで一連の処理を繰り返す。ループを抜けると続いて自動対応付け装置300は、変数maxの値をハッシュ関数imaxclrの値として、また、変数bestの値をハッシュ関数ibestclrの値として設定するステップ1716、ステップ1718。ステップ1722、ステップ1724、またはステップ1718から、自動対応付け装置300はステップ1720へ進み、変数maxの値を返す。そして処理は終了する。次に、再帰関数getcomp、getincompの計算処理の流れを説明する前に、図13bを参照して対応付けMの配列の復元順序を説明する。なお、図13bに示す復元順序は、13aに示す目次を例にしており、矩形で示す目次項目の下の数字は復元順序を示している。数字を見ると分かるように、復元順序は、階層レベルの低い順、同階層であるならば右優先である。次に図18を参照して、再帰関数getcompの計算処理の詳細を説明する。図18に示す再帰関数getcompの計算処理はステップ1800から開始し、自動対応付け装置300は、chdの値を変数c’に設定し、変数c’の値がnullであるか否かを判定するステップ1802。変数c’の値がnullの場合ステップ1804:YES、即ち、c番目の目次項目に対して子の関係にある目次項目が存在しない場合処理は終了する。一方、変数c’の値がnullでない場合ステップ1802:NO、自動対応付け装置300は、ハッシュ関数cbestclrの値を変数iに設定するステップ1804。続いて自動対応付け装置300は、変数iの値を対応付けMの配列要素mc’に設定するステップ1806。続いて、自動対応付け装置300は、再帰関数getincompを呼び出す。再帰関数getincompの計算処理の詳細は図19を参照して後述する。続いて自動対応付け装置300は、getcompを呼び出す。そして処理は終了する。次に図19を参照して、再帰関数getincompの計算処理の詳細を説明する。図18に示す再帰関数getincompの計算処理はステップ1900から開始し、自動対応付け装置300は、sibの値を変数c’に設定し、変数c’の値がnullであるか否かを判定するステップ1902。変数c’の値がnullの場合ステップ1904:YES、即ち、c番目の目次項目に対して兄の関係にある目次項目が存在しない場合処理は終了する。一方、変数c’の値がnullでない場合ステップ1902:NO、自動対応付け装置300は、ハッシュ関数ibestclrの値を変数iに設定するステップ1904。続いて自動対応付け装置300は、変数iの値を対応付けMの配列要素mc’に設定するステップ1906。続いて、自動対応付け装置300は、再帰関数getincompを呼び出す。続いて自動対応付け装置300は、getcompを呼び出す。そして処理は終了する。図20は、本実施形態に係るコンピュータ50のハードウェア構成の一例を示した図である。コンピュータ50は、バス2に接続されたメインCPU中央処理装置1とメインメモリ4を含んでいる。ハードディスク装置13、30、及びCD-ROM装置26、29、フレキシブルディスク装置20、MO装置28、DVD装置31のようなリムーバブルストレージ記録メディアを交換可能な外部記憶システムがフレキシブルディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。フレキシブルディスク、MO、CD-ROM、DVD-ROMのような記憶メディアが、リムーバブルストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティングシステムと協働してCPU1に命令を与え、本願発明を実施するためのコンピュータプログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ50にインストールされ、コンピュータ50を自動対応付け装置300として機能させる目次および見出しの自動対応付けプログラムや目次データC、本文データD等のデータ、更には、自動対応付けの結果である出力データMを記録することができる。上記自動対応付けプログラムは、入力モジュールと、探索モジュールと、出力モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、入力部302、探索部304と、出力部306としてそれぞれ機能させる。コンピュータプログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。コンピュータ50は、キーボード/マウスコントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。コンピュータ50は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。コンピュータ50は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。コンピュータ50は、ネットワークアダプタ18イーサネット登録商標カードやトークンリングカード等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。以上の説明により、本実施形態に係るコンピュータ50は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本願発明の必須構成要素となるわけではない。以上、実施形態を用いて本願発明の説明をしたが、本願発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本願発明の技術的範囲に含まれる。なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段より前に、先立って等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上まず、、次に、、続いて、等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。