(57)【要約】【課題】ページ内における文書構成要素の位置が固定された文書を対象として、その文書のアウトラインを生成するようにした情報処理装置を提供する。【解決手段】情報処理装置の文書受付手段は、ページ内における文書構成要素の位置が固定された文書を受け付け、ページ分割手段は、前記文書受付手段によって受け付けられた文書をページ毎に分割し、ページ見出し決定手段は、前記ページ分割手段によって分割されたページ内から該ページの見出しを決定し、処理手段は、前記ページ見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第１レベルのアウトライン情報として該ページに付与する処理を行う。【選択図】図１
2011065621.tif 000002
【特許請求の範囲】
【請求項１】
ページ内における文書構成要素の位置が固定された文書を受け付ける文書受付手段と、
前記文書受付手段によって受け付けられた文書をページ毎に分割するページ分割手段と、
前記ページ分割手段によって分割されたページ内から該ページの見出しを決定するページ見出し決定手段と、
前記ページ見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第１レベルのアウトライン情報として該ページに付与する処理を行う処理手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記分割手段によって分割されたページを段落に分割する段落分割手段と、
前記段落分割手段によって分割された段落内から該段落の見出しを決定する段落見出し決定手段
をさらに具備し、
前記処理手段は、前記段落見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第２レベルのアウトライン情報として該ページに付与する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文書は、文字画像を含み、
前記文書内の文字画像を文字認識する文字認識手段と、
前記ページ見出し決定手段又は前記段落見出し決定手段は、前記文字認識手段による認識結果、前記文字画像の位置、色、大きさのいずれか一つ以上を用いて、前記ページ又は前記段落の見出しを決定する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ページ分割手段によって分割されたページのページ番号を生成するページ番号生成手段
をさらに具備し、
前記ページ見出し決定手段は、前記ページ番号生成手段によって生成されたページ番号を用いて前記ページの見出しを決定する
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記段落分割手段によって分割された段落の段落番号を生成する段落番号生成手段
をさらに具備し、
前記段落見出し決定手段は、前記段落番号生成手段によって生成された段落番号を用いて前記段落の見出しを決定する
ことを特徴とする請求項２から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記文書受付手段は、複数のページを有する文書を受け付け、
前記処理手段は、
前記ページ見出し決定手段によって決定されたページの見出しの属性又は前記段落見出し決定手段によって決定された段落の見出しの属性を抽出する属性抽出手段と、
前記属性抽出手段によって抽出されたページの見出しの属性又は段落の見出しの属性に基づいて、複数ページ間における階層構造を決定する階層構造決定手段
を具備することを特徴とする請求項２から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記階層構造決定手段は、ページ毎に順次階層構造を決定していく
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
コンピュータを、
ページ内における文書構成要素の位置が固定された文書を受け付ける文書受付手段と、
前記文書受付手段によって受け付けられた文書をページ毎に分割するページ分割手段と、
前記ページ分割手段によって分割されたページ内から該ページの見出しを決定するページ見出し決定手段と、
前記ページ見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第１レベルのアウトライン情報として該ページに付与する処理を行う処理手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
複数の文書から対象とする文書を検索するために、文書にタイトル等を付与する技術がある。
これに関連する技術として、例えば、特許文献１には、入力されたイメージ文書データから、文章のタイトル領域を自動的に抽出する手段を提供することを目的とし、イメージ文書上の指定された矩形領域について、イメージ・データについての例えば水平方向への射影をとり、当該射影値が所定のしきい値範囲内にある横行が所定個数連続するところを、タイトル領域として抽出することが開示されている。
【０００３】
また、例えば、特許文献２には、文書の画像を入力し、そのタイトルや著者名などの書誌事項からなる論理構造を認識する場合に、論理構造を簡易な処理で的確に認識することを目的とし、文書画像を画像分割手段により複数の要素に分割し、領域検出手段により特定の要素を書誌事項が位置する書誌領域として検出し、構造認識手段により書誌領域から書誌事項を抽出して論理構造を認識し、文書画像の書誌領域のみを論理構造の認識対象とすることで、論理構造を簡易な処理で的確に認識することが開示されている。
【０００４】
また、例えば、特許文献３には、文書を画像データに変換して得られる文書画像から容易にタイトル部分を抽出することを課題とし、タイトル抽出装置は、文書画像内の黒画素を走査し、それらが連結している領域に外接する矩形領域を文字矩形として抽出し、さらに、隣接する複数の文字矩形を統合して、それらの文字矩形に外接する矩形領域を文字列矩形として抽出し、次に、各文字列矩形の下線属性、枠付き属性、罫線属性等の属性と、文書画像内の文字列矩形の位置や相互の位置関係とに基づいて、タイトルらしさのポイント計算を行い、高ポイントを獲得した文字列矩形をタイトル矩形として抽出し、また、表形式の文書の場合、表内からタイトル矩形を抽出することもでき、抽出されたタイトル矩形内の文字は、認識処理後に文書画像のキーワードとして用いられることが開示されている。
【０００５】
また、例えば、特許文献４には、特定の文書形式に依存せずにタイトル固有の特徴をポイントとして用いることにより、ポイント数の多い文字列領域をタイトルとして自動抽出し、タイトル抽出の的確性及び文書検索時の利便性を向上させることを課題とし、領域識別部で切り出された文字列矩形に対し、該文字列矩形内の文字認識を行う文字認識部と、上記文字列矩形に対し、該文字列矩形内の各文字毎のフォント識別を行うフォント識別部と、文字認識部の認識結果で得られる文字コードに基づいて自然言語的タイトルらしさを解析する自然言語解析部と、上記文字列矩形に対し、センタリング・下線・文字矩形の大きさ等を用いてタイトルらしさのポイント付けを行うポイント付部と、を備えた文書画像からのタイトル領域抽出装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−２７４４７１号公報
【特許文献２】特開平０８−２８７１８９号公報
【特許文献３】特開平０９−１３４４０６号公報
【特許文献４】特開２０００−１４８７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、ページ内における文書構成要素の位置が固定された文書を対象として、その文書のアウトラインを生成するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、ページ内における文書構成要素の位置が固定された文書を受け付ける文書受付手段と、前記文書受付手段によって受け付けられた文書をページ毎に分割するページ分割手段と、前記ページ分割手段によって分割されたページ内から該ページの見出しを決定するページ見出し決定手段と、前記ページ見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第１レベルのアウトライン情報として該ページに付与する処理を行う処理手段を具備することを特徴とする情報処理装置である。
【０００９】
請求項２の発明は、前記分割手段によって分割されたページを段落に分割する段落分割手段と、前記段落分割手段によって分割された段落内から該段落の見出しを決定する段落見出し決定手段をさらに具備し、前記処理手段は、前記段落見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第２レベルのアウトライン情報として該ページに付与することを特徴とする請求項１に記載の情報処理装置である。
【００１０】
請求項３の発明は、前記文書は、文字画像を含み、前記文書内の文字画像を文字認識する文字認識手段と、前記ページ見出し決定手段又は前記段落見出し決定手段は、前記文字認識手段による認識結果、前記文字画像の位置、色、大きさのいずれか一つ以上を用いて、前記ページ又は前記段落の見出しを決定することを特徴とする請求項１又は２に記載の情報処理装置である。
【００１１】
請求項４の発明は、前記ページ分割手段によって分割されたページのページ番号を生成するページ番号生成手段をさらに具備し、前記ページ見出し決定手段は、前記ページ番号生成手段によって生成されたページ番号を用いて前記ページの見出しを決定することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【００１２】
請求項５の発明は、前記段落分割手段によって分割された段落の段落番号を生成する段落番号生成手段をさらに具備し、前記段落見出し決定手段は、前記段落番号生成手段によって生成された段落番号を用いて前記段落の見出しを決定することを特徴とする請求項２から４のいずれか一項に記載の情報処理装置である。
【００１３】
請求項６の発明は、前記文書受付手段は、複数のページを有する文書を受け付け、前記処理手段は、前記ページ見出し決定手段によって決定されたページの見出しの属性又は前記段落見出し決定手段によって決定された段落の見出しの属性を抽出する属性抽出手段と、前記属性抽出手段によって抽出されたページの見出しの属性又は段落の見出しの属性に基づいて、複数ページ間における階層構造を決定する階層構造決定手段を具備することを特徴とする請求項２から５のいずれか一項に記載の情報処理装置である。
【００１４】
請求項７の発明は、前記階層構造決定手段は、ページ毎に順次階層構造を決定していくことを特徴とする請求項６に記載の情報処理装置である。
【００１５】
請求項８の発明は、コンピュータを、ページ内における文書構成要素の位置が固定された文書を受け付ける文書受付手段と、前記文書受付手段によって受け付けられた文書をページ毎に分割するページ分割手段と、前記ページ分割手段によって分割されたページ内から該ページの見出しを決定するページ見出し決定手段と、前記ページ見出し決定手段によって決定された見出しを前記ページ分割手段によって分割されたページの第１レベルのアウトライン情報として該ページに付与する処理を行う処理手段として機能させることを特徴とする情報処理プログラムである。
【発明の効果】
【００１６】
請求項１の情報処理装置によれば、ページ内における文書構成要素の位置が固定された文書を対象として、その文書のアウトラインを生成できる。
【００１７】
請求項２の情報処理装置によれば、ページの見出しの他に段落の見出しを含めた文書のアウトラインを生成できる。
【００１８】
請求項３の情報処理装置によれば、文書が文字画像を含む場合であっても、その文書のアウトラインを生成できる。
【００１９】
請求項４の情報処理装置によれば、文書のアウトラインにおいてページの見出しがないという状態を抑制することができる。
【００２０】
請求項５の情報処理装置によれば、文書のアウトラインにおいて段落の見出しがないという状態を抑制することができる。
【００２１】
請求項６の情報処理装置によれば、複数のページを有する文書を対象とする場合にあって、複数ページ間における階層構造を決定することができる。
【００２２】
請求項７の情報処理装置によれば、複数ページ間における階層構造を順次決定することができる。
【００２３】
請求項８の情報処理プログラムによれば、ページ内における文書構成要素の位置が固定された文書を対象として、その文書のアウトラインを生成できる。
【図面の簡単な説明】
【００２４】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の実施の形態による処理例を示すフローチャートである。
【図３】第１の実施の形態のページ処理モジュールによって処理が行われた文書と文書フォーマット処理モジュールによる出力文書のフォーマットの例を示す説明図である。
【図４】第１の実施の形態による出力文書の表示例を示す説明図である。
【図５】第２の実施の形態による処理例を示すフローチャートである。
【図６】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図７】第３の実施の形態による処理例を示すフローチャートである。
【図８】第３の実施の形態による出力文書のフォーマットの例を示す説明図である。
【図９】第３の実施の形態による出力文書の表示例を示す説明図である。
【図１０】第３の実施の形態の段落分割処理モジュールの構成例についての概念的なモジュール構成図である。
【図１１】ライン認識処理モジュールによるラインの抽出処理例を示す説明図である。
【図１２】ライン認識処理モジュールによるラインの抽出処理例を示す説明図である。
【図１３】ライン特徴算出モジュールによるライン特徴の抽出処理例を示す説明図である。
【図１４】第３の実施の形態による段落の認識処理例を示すフローチャートである。
【図１５】段落情報の更新に関する処理例を示す説明図である。
【図１６】第３の実施の形態による段落登録の可否処理例を示すフローチャートである。
【図１７】左右のずれによって段落登録が行われない場合の例を示す説明図である。
【図１８】文字サイズによって段落登録が行われない場合の例を示す説明図である。
【図１９】同じ行に複数行がある状態例を示す説明図である。
【図２０】段落統合処理モジュールによる段落の統合処理例を示すフローチャートである。
【図２１】文字情報の補正の処理例を示す説明図である。
【図２２】第４の実施の形態の文書フォーマット処理モジュールの構成例についての概念的なモジュール構成図である。
【図２３】第３の実施の形態による出力文書の例を示す説明図である。
【図２４】タイトル・階層テーブルのデータ構造例を示す説明図である。
【図２５】タイトル・属性値テーブルのデータ構造例を示す説明図である。
【図２６】第４の実施の形態の階層処理モジュールによる処理例を示すフローチャートである。
【図２７】タイトル・階層テーブルのデータ構造例を示す説明図である。
【図２８】第４の実施の形態によるアウトラインビューア表示領域の例を示す説明図である。
【図２９】第５の実施の形態による処理例を示すフローチャートである。
【図３０】階層・属性テーブルのデータ構造例を示す説明図である。
【図３１】階層・属性テーブルのデータ構造例を示す説明図である。
【図３２】第１〜５の実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２５】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウエア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、一つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、一つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
【００２６】
本実施の形態である情報処理装置は、ページ内における文書構成要素の位置が固定された文書を受け付けて、その文書のアウトラインを生成するものであって、図１の例に示すように、ページ処理モジュール１１０、ページタイトル決定処理モジュール１２０、文書フォーマット処理モジュール１３０を有している。
【００２７】
ここで、アウトラインについて説明する。
背景技術で説明した技術は、複数の文書の中から対象とする文書を検索するものである。
一方、ワードプロセッサや、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）（登録商標）などの文書を表示するソフトウエアにはアウトライン、又は、しおりと呼ばれる機能（以下、アウトライン機能と呼ぶ）がある。アウトライン機能は複数の文書の中から文書を検索するための機能ではなく、一つの文書の中にある１あるいは複数のページの中から、所望の場所を検索するための機能である。
このアウトライン機能は、木構造を持った章立てを表示するものである（以下、木構造を持った章立てのことをアウトラインと呼ぶ）。アウトラインは、文書をページや段落（部、章、節、項等を含む）単位の“かたまり”として管理するための書式であり、文書の表示、その文書内における検索等に用いられるものである。ソフトウエアにも依存するが、一般にアウトライン上の段落のテキストはハイパーテキストとなっている。そのため、アウトライン上の段落のテキスト（例えば、段落の見出し）をクリックすると、それに対応する段落の本文を表示するようになっている。このようなアウトライン機能は、主に、文書を閲覧する場合に用いられる。木構造としては部、章、節、項等は一例であって、最も上のレベルが部ではなく、章や節であってもよい。
なお、文書とは、テキストデータ、場合によっては画像、動画、音声等の電子データ、又はこれらの組み合わせであり、記憶、編集及び検索等の対象となり、システム又は利用者間で個別の単位として交換できるものをいい、これらに類似するものを含む。
【００２８】
次に、「ページ内における文書構成要素の位置が固定された文書」について説明する。
一般にワードプロセッサなどでは、編集中においては、対象としてテキストコード列（さらに、各種の編集情報を含む場合もある）があるのみであり、紙に印刷されたような固定したページの概念がない。そして、編集が終了し、最終的に各ページにテキストや図が割り当てられることになる。例えば、ワードプロセッサにおいて、テキストを入力した後で、出来上がりの紙サイズを変更すると、ページの内容が変化する。つまり、このような文書は、「ページ内における文書構成要素の位置が変化してしまう文書」である。
【００２９】
これに対して、ポストスクリプトやＰＤＦ等の文書では、ページ毎に独立に内容を記述するため、ページの内容が変化しない。つまり、「ページ内における文書構成要素の位置が固定された文書」である。より具体的には、あるページに記載されている文書構成要素が、文書編集（特に文字列を追加する編集等）によって別のページに移ってしまうことがない文書である。ポストスクリプトやＰＤＦの他に、１あるいは複数の画像データから構成される文書の場合もページの内容が変化しない。画像データとは、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＧＩＦ（Ｇｒａｐｈｉｃ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）等のフォーマットからなるラスタ画像データのことを指す。１枚の画像を１ページとすることができる。さらに、マルチページＴＩＦＦなどのように、一つのファイル内に複数枚数のラスタ画像データを包含するフォーマットも、ページの内容が変化しない文書である。
【００３０】
ページ処理モジュール１１０は、ページタイトル決定処理モジュール１２０、文書フォーマット処理モジュール１３０と接続されており、ページ内における文書構成要素の位置が固定された文書を受け付ける。「ページ内における文書構成要素の位置が変化してしまう文書」を受け付けた場合は、「ページ内における文書構成要素の位置が固定された文書」に変換する。もちろん、「ページ内における文書構成要素の位置が固定された文書」を受け付けた場合は、変換は不要であるが、受け付けた文書のフォーマットとは異なる「ページ内における文書構成要素の位置が固定された文書」のフォーマットに変換するようにしてもよい。以下、受け付ける文書としてマルチページＴＩＦＦを例示して説明する。
【００３１】
ページ処理モジュール１１０は、受け付けた文書をページ毎に分割する。例えば、受け付けたマルチページＴＩＦＦを１又は複数のラスタ画像に分割する。そして、分割されたページのページ番号を生成する。例えば、画像の順番にページ番号を振ってもよいし、画像内のページ番号を文字認識するようにしてもよい。ページ処理モジュール１１０からページタイトル決定処理モジュール１２０、文書フォーマット処理モジュール１３０への出力は、ページ番号とそのページ番号に対応するページ情報（例えば、１ページ分の画像）である。例えば、図３（Ａ）に示すように、ページ番号が付与された１ページ目の画像３００−１、２ページ目の画像３００−２・・・Ｎページ目の画像３００−Ｎを出力する。
【００３２】
ページタイトル決定処理モジュール１２０は、ページ処理モジュール１１０、文書フォーマット処理モジュール１３０と接続されている。ページ処理モジュール１１０によって分割されたページ内からそのページのタイトルを決定する。例えば、具体的には、１ページの画像を受け取って、その画像のタイトル（ページタイトル）を決定する。ページタイトルの決定方法は、背景技術で説明した特許文献１から４に示されている方法を用いてもよい。
【００３３】
文書フォーマット処理モジュール１３０は、ページ処理モジュール１１０、ページタイトル決定処理モジュール１２０と接続されている。ページタイトル決定処理モジュール１２０によって決定されたページのタイトルをページ処理モジュール１１０によって分割されたページの第１レベルのアウトライン情報とし、ページ処理モジュール１１０によって生成されたページ番号を該ページに付与する処理を行う。例えば、ページのタイトルを木構造の第１レベル（前述の例では「部」）とし、ページ番号にしたがって、ＰＤＦフォーマットの文書に変換する。
【００３４】
より具体的には、例えば、ページ番号とページタイトルをそれぞれページ処理モジュール１１０、ページタイトル決定処理モジュール１２０から受け取り、これを用いてページタイトルを第１レベルのアウトラインとするメタ情報を文書フォーマットに付与する。それとともに、ページ情報（１ページ分の画像）をページ処理モジュール１１０から受け取り、その画像を出力用の文書フォーマットに変換する処理を行う。
一例として、ここではＰＤＦフォーマットを出力文書フォーマットとする。ＰＤＦでは、複数ページの文書を作成することが可能である。そして、各ページの内容をＪＰＥＧ画像フォーマットで格納することができる。さらに、アウトライン機能として、アウトライン情報を画像情報とは別に持つことができる。このようなＰＤＦを出力文書フォーマットとした場合の例を図３（Ｂ）に示す。出力文書フォーマットとして、図３（Ｂ）に例示するように、その文書全体（Ｎページからなる文書）のＰＤＦ制御情報を先頭にし、その後にページ毎に１ページ目からＮページ目までの画像情報（例えば、ＪＰＥＧ）３１１、その他のＰＤＦ制御情報３１２（ページ毎のＰＤＦ制御情報）の組を付与し、その後に各ページのタイトルを格納した第１レベルアウトライン３２１とアウトラインに関するその他のＰＤＦ制御情報３２２の組を付与する。
【００３５】
図２は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ２０２では、ページ処理モジュール１１０が、文書を受け付ける。
ステップＳ２０４では、ページ処理モジュール１１０が、ページ毎の画像に分割する。
ステップＳ２０６では、ページ処理モジュール１１０が、ページ毎にページ番号を付与する。
ステップＳ２０８では、ページタイトル決定処理モジュール１２０が、ページ毎にページタイトルを決定する。
ステップＳ２１０では、ページタイトル決定処理モジュール１２０が、最終ページまで終了したか否かを判断する。最終ページまで終了した場合はステップＳ２１２へ進み、それ以外の場合はステップＳ２０８へ戻る。
ステップＳ２１２では、最終ページまでページタイトルが決定された後に、文書フォーマット処理モジュール１３０が、文書フォーマット処理を行い、その文書を出力する。
【００３６】
このように作成された文書は、そのフォーマットに適した文書ビューアを用いて、図４に例示するような表示が行われる。
文書ビューアは文書ビューア表示領域４００内に、アウトラインビューア表示領域４１０、ページ画像表示領域４２０を表示する。この文書ビューアにおいては、ページ画像表示領域４２０に各ページの画像を表示する。さらに、文書ビューアのオプションとしてアウトラインビューアを持っている。アウトラインビューアを開くと、各ページのタイトルをアウトラインビューア表示領域４１０に表示する。このアウトラインビューア表示領域４１０内のテキスト（ページのタイトル）が利用者の操作（クリック等）によって選択されると、ページ画像表示領域４２０に表示されているページを選択されたページに変更する。つまり、ページのタイトルを第１レベルのアウトラインとすることにより、このような処理が行えるようになる。
【００３７】
＜第２の実施の形態＞
前述の第１の実施の形態では、ページのタイトルを求めるのに背景技術で説明した特許文献に記載の技術を用いた。しかし、それらの技術は文書のタイトルを取得する手法であるため、ページタイトルを取得するには必ずしも適さない場合がある。
そこで、本実施の形態では、ページのタイトル取得に適した手法を示す。
【００３８】
図５は、第２の実施の形態のページタイトル決定処理モジュール１２０による処理例を示すフローチャートである。なお、ページ処理モジュール１１０が受け付ける文書は、主として画像であり、ページタイトルも文字画像である場合を例示している。そして、ページタイトル決定処理モジュール１２０は、文字認識モジュールを含んでいる。文字認識モジュールは、文書内の文字画像を文字認識する。
この処理を行う前に、文字認識モジュールが文書内の文字画像を認識する。また、この処理は１ページ毎に行う。複数ページある場合は、そのページ数の回数だけ、この処理を行うこととなる。文字認識結果は、文字認識結果である文字コードが順番に並んでおり、ステップＳ５０４でその順番に取り出される。順番として、例えば、横書きの場合は左から右へ、縦書きの場合は上から下へである。なお、文書画像解析によって、横書き、縦書きを判定する。
【００３９】
ステップＳ５０２では、ページタイトルの文字列長の変数を０とする。
ステップＳ５０４では、その文字認識処理結果から次の１文字分の文字コード（つまり、対象とする文字コード）を取り出す。文字列長を計数するために、文字列長の変数に１を加える。
【００４０】
ステップＳ５０６では、文字認識処理結果の文字列が終了したか否かを判断する。文字列が終了した場合はステップＳ５０８へ進み、それ以外の場合はステップＳ５０４へ戻る。
文字列が終了したか否かを判断する方法としては、以下のようなものがある。
（Ａ）認識結果の文字コード
（Ａ１）改行コード（「ＣＲ（Ｃａｒｒｉａｇｅ  Ｒｅｔｕｒｎ）」、「ＬＦ（Ｌｉｎｅ  Ｆｅｅｄ）」など）を検出した段階で文字列が終了したとする。
（Ａ２）句読点（「、」、「。」等）を検出した段階で文字列が終了したとする。
（Ｂ）文字画像の位置（ここでの文字画像とは、文字認識による一つの認識結果に対応する文字画像をいい、いわゆる１文字分の文字画像である）
次の文字との相対位置が予め定めておいた閾値より大であるときに文字列が終了したとする。ここで、「相対位置が大」とは、横方向又は縦方向の文字位置の差分とする。又は、「相対位置が大」とは、横方向かつ縦方向の文字位置の差分とする。ページタイトルが他の文字とは異なる位置で表現されている場合（例えば、他の文字よりも左方向に寄っている等）に対応するものである。なお、この場合、文字認識モジュールは、文字認識結果として、文字コードの他に、文字位置も出力する。
（Ｃ）文字画像の色
次の文字との色の差が予め定めておいた閾値よりも大であるときに文字列が終了したとする。ページタイトルが他の文字とは異なる色で表現されている場合に対応するものである。ここで、「色の差」とは、ＲＧＢ３次元空間のユークリッド距離、ＹＣｂＣｒ空間のユークリッド距離、その他の色差計算手法による距離を用いてもよい。なお、この場合、文字認識モジュールは、文字認識結果として、文字コードの他に、その文字の色も出力する。
（Ｄ）文字画像の大きさ
次の文字との大きさの相対的な差が予め定めておいた閾値よりも大であるときに文字列が終了したとする。ページタイトルが他の文字とは異なる大きさで表現されている場合に対応するものである。なお、この場合、文字認識モジュールは、文字認識結果として、文字コードの他に、その文字のサイズ（縦と横の画素数、ポイント数等）も出力する。
【００４１】
ステップＳ５０８では、文字列長が十分か否かを判断する。文字列長が十分の場合はステップＳ５１０へ進み、それ以外の場合はステップＳ５１２へ進む。文字列長が十分か否かの判断とは、文字列長の変数が予め定められた閾値以上であるか否かを判断することである。
【００４２】
ステップＳ５１０では、ページタイトル候補登録処理を行う。
一度も登録されていない場合（そのページおいて、ステップＳ５１０が最初に処理される場合）は、無条件に登録する。既に登録されている場合は、既登録済みの候補と、今回抽出した新候補のどちらがページタイトルとしてふさわしいかを判断して、ページタイトルとしてふさわしい方を登録する。
例えば、以下のような方法がある。
新候補の文字の大きさが既登録済み候補よりも、α倍以上大きいときに限り、新候補をページタイトル候補として登録する。ここでαは予め定めておいた閾値である。例えば、α＝１．５等の数値を用いる。
又は、文字認識が失敗したときに出現しやすい記号（例えば、カンマ記号）などを登録しておいて、そのような記号の割合が閾値よりも大である場合、その文字列は登録しない処理を行ってもよい。
又は、新候補の文字の位置が予め定められた位置の範囲内（例えば、横書きの場合は予め定められた位置よりも上方向にあること、縦書きの場合は予め定められた位置よりも右方向にあること等）にある場合に登録するようにしてもよい。
又は、新候補の文字の色が予め定められた色の範囲内（例えば、黒以外の色、予め定められた色等）にある場合に登録するようにしてもよい。
なお、これらの方法を組み合わせて判断してもよい。例えば、新候補の文字の大きさと位置で判断するようにしてもよい。
【００４３】
ステップＳ５１２では、全文字（そのページにおける文字認識結果）が入力済みか否かを判断する。入力済みの場合はステップＳ５１４へ進み、それ以外の場合はステップＳ５０２へ戻る。
ステップＳ５１４では、ステップＳ５１０で登録されているページタイトルを出力する。ここでページタイトルが未登録の場合には、例えば空白文字列を出力すればよい。
【００４４】
＜第３の実施の形態＞
前述の実施の形態では第１レベルのアウトライン情報を付与していたが、第３の実施の形態は、ページ内をさらに段落に分割して、第２レベルのアウトライン情報を抽出、付与してもよい。第２レベルのアウトライン情報としては、例えば、前述した「章」のレベルのものを指している。第３の実施の形態においては、段落のタイトルが該当する。
図６は、第３の実施の形態の構成例についての概念的なモジュール構成図である。図１に例示した第１、第２の実施の形態のモジュールと同等のものは、その旨を示し、重複した説明を省略する。
【００４５】
第３の実施の形態は、図６の例に示すように、ページ処理モジュール６１０、ページタイトル決定処理モジュール６２０、段落分割処理モジュール６３０、段落タイトル決定処理モジュール６４０、文書フォーマット処理モジュール６５０を有している。
ページ処理モジュール６１０は、ページタイトル決定処理モジュール６２０、段落分割処理モジュール６３０、文書フォーマット処理モジュール６５０と接続されている。図１に例示したページ処理モジュール１１０と同等である。ただし、ページ情報をページタイトル決定処理モジュール６２０、文書フォーマット処理モジュール６５０の他に段落分割処理モジュール６３０へも渡す。
ページタイトル決定処理モジュール６２０は、ページ処理モジュール６１０、文書フォーマット処理モジュール６５０と接続されている。図１に例示したページタイトル決定処理モジュール１２０と同等である。
【００４６】
段落分割処理モジュール６３０は、ページ処理モジュール６１０、段落タイトル決定処理モジュール６４０、文書フォーマット処理モジュール６５０と接続されている。ページ処理モジュール６１０からページ情報を受け取り、そのページを段落に分割して、その分割された段落の段落番号を生成する。そして、段落番号を段落タイトル決定処理モジュール６４０、文書フォーマット処理モジュール６５０へ渡し、段落情報（例えば、１ページ内の分割された段落の画像）を段落タイトル決定処理モジュール６４０へ渡す。
【００４７】
段落分割処理モジュール６３０内のモジュール構成、その処理内容について、図１０から図２１を用いて説明する。
図１０は、第３の実施の形態の段落分割処理モジュール６３０の構成例についての概念的なモジュール構成図である。
【００４８】
以下、行又は列をラインと称する。また、横書きの文書を対象とした場合を主に説明する。したがって、横書きの場合の行の高さ又は縦書きの場合の列の幅として、行の高さを主に例示して説明する。
また、画素塊とは、４連結又は８連結で連続する画素領域を少なくとも含み、これらの画素領域の集合をも含む。これらの画素領域の集合とは、４連結等で連続した画素領域が複数あり、その複数の画素領域は近傍にあるものをいう。ここで、近傍にあるものとは、例えば、互いの画素領域が距離的に近いもの、文章としての１行から１文字ずつ切り出すように縦又は横方向に射影し、空白地点で切り出した画像領域、又は予め定められた間隔で切り出した画像領域等がある。例えば、文字認識処理を行って、１文字として認識された画像を一つの画素塊としてもよい。
なお、一つの画素塊として、１文字の画像となる場合が多い。本実施の形態では、画素塊のことを文字又は文字画像ともいう。
【００４９】
本実施の形態は、図１０に例示するように、ライン認識処理モジュール１０１０、ライン特徴算出モジュール１０２０、段落認識処理モジュール１０３０、段落統合処理モジュール１０４０、文字情報補正処理モジュール１０５０を有している。
【００５０】
ライン認識処理モジュール１０１０は、ライン特徴算出モジュール１０２０と接続されており、文字情報データを用いて、その文書内の行又は列であるラインを抽出し、その抽出したラインに関する情報をライン特徴算出モジュール１０２０へ渡す。
【００５１】
ライン認識処理モジュール１０１０について、より詳細に説明する。
ライン認識処理モジュール１０１０は、文字情報データを受け付ける。ここでいう文字情報データとは、ページ処理モジュール６１０から受け取ったページ情報を用いて段落分割処理モジュール６３０が生成するものであり、文書内の画素塊の矩形に関する情報を少なくとも含む。矩形に関する情報としては、例えば、文字外接矩形情報（その文書内の座標値（絶対座標値又は相対座標値のいずれであってもよい））、フォント情報（文字形状情報）であってもよい。また、画素塊に対応している文字の認識順序に関する情報（文字認識モジュールによって認識順に順序付けられた番号）が含まれていてもよい。例えば、文書中における文字の座標（例えば、文字を囲む外接矩形の左上座標）、文字の大きさを表す外接矩形サイズ（外接矩形幅、高さ）、文字形状、文字コード、文字の順序情報、縦書き文字なのか横書き文字なのかを表す情報などである。本実施の形態では、これらの文字情報データを文字認識モジュールから受け取った場合について説明する。ただし、文字認識モジュールに限る必要はなく、文字の外接矩形を受け取って、同等の文字情報データを生成するようにしてもよい。
【００５２】
次にライン認識処理モジュール１０１０は、受け付けた文字情報データに基づいて、文書内のラインを抽出する。例えば、横書きの場合、外接矩形の高さ方向の位置（ｙ座標）を用いて、その外接矩形を含むラインである各行の高さを抽出する。縦書きの場合、外接矩形の幅方向の位置（ｘ座標）を用いて、その外接矩形を含むラインである各列の幅を抽出する。より詳細な例について、図１１、図１２に行抽出の手法例を示す。
【００５３】
図１１は、ライン認識処理モジュール１０１０が外接矩形の座標値に基づいて行を認識する手法の例を示している。
ライン認識処理モジュール１０１０は、図１１（ａ）の例に示すように、注目文字情報データの外接矩形（注目外接矩形１１１２）の左上ｙ座標（ｕｐｐｅｒ＿ｙ）が、その一つ前の文字情報データの外接矩形（注目外接矩形１１１１）の左下ｙ座標（ｌｏｗｅｒ＿ｙ）より小さいときは（ｕｐｐｅｒ＿ｙ＜ｌｏｗｅｒ＿ｙ）、その注目文字情報データの外接矩形（注目外接矩形１１１２）は、注目外接矩形１１１１と同じ行であると認識する。なお、左上を原点（０，０）として、ｘ座標は右方向へ、ｙ座標は下方向へ向かうと数値が増える座標系である。
また、図１１（ｂ）の例に示すように、注目文字情報データの外接矩形（注目外接矩形１１２２）の左上ｙ座標（ｕｐｐｅｒ＿ｙ）が、その一つ前の文字情報データの外接矩形（注目外接矩形１１２１）の左下ｙ座標（ｌｏｗｅｒ＿ｙ）より大きいときは（ｌｏｗｅｒ＿ｙ＜ｕｐｐｅｒ＿ｙ）、異なる行であると認識する。
そして、同じライン内にあると認識された文字情報データの列をライン特徴算出モジュール１０２０へ渡す。
なお、受け付けた文字情報データは、文字画像の外接矩形の出現順序（例えば、横書きの場合は、左上から右へ走査し、次の行ではまた左から右へ走査した順番に並んでいる）となっているので、一つ前の文字情報データの外接矩形とは、出現順序で一つ前である。また、外接矩形の左上の座標を用いてソートしてもよい。
【００５４】
図１２は、ライン認識処理モジュール１０１０が外接矩形間の距離に基づいて行を認識する手法の例を示している。
ライン認識処理モジュール１０１０は、図１２（ａ）の例に示すように、注目文字情報データの外接矩形（注目外接矩形１２０３）と、その一つ前の文字情報データの外接矩形（外接矩形１２０２）との外接矩形間距離１２１１（以下、現外接矩形間距離ともいう）が、現在処理している行において、既に同一行であると認識された各外接矩形間の距離の平均値（以下、平均外接矩形間距離ともいう）をα倍した値以下である場合は（つまり、現外接矩形間距離≦平均外接矩形間距離×αを満たす場合）、注目外接矩形１２０３は外接矩形１２０２と同じ行であると認識する。なお、αは、ライン認識パラメータであり、予め定められた値である。例えば、文字情報データに応じて定められる。
また、図１２（ｂ）の例に示すように、注目文字情報データの外接矩形（注目外接矩形１２２３）と、その一つ前の文字情報データの外接矩形（外接矩形１２２２）との外接矩形間距離１２３１が、現在処理している行における平均外接矩形間距離をα倍した値より大である場合は（現外接矩形間距離＞平均外接矩形間距離×α）、注目外接矩形１２２３は外接矩形１２２２とは異なる行であると認識する。
【００５５】
ライン特徴算出モジュール１０２０は、ライン認識処理モジュール１０１０、段落認識処理モジュール１０３０と接続されており、行高列幅算出モジュール１０２１、矩形間距離算出モジュール１０２２を有している。ライン認識処理モジュール１０１０により同じラインと認識された文字情報データを受け取り、そのラインに関する特徴を算出し、その算出したラインに関する情報を段落認識処理モジュール１０３０へ渡す。行高列幅算出モジュール１０２１は行の高さを算出し、矩形間距離算出モジュール１０２２は矩形間の距離を算出する。
つまり、ライン認識処理モジュール１０１０によって同じ行と認識された文字情報データ列から行高さ、行幅、行外接矩形座標、平均外接矩形間距離などのラインに関する特徴を算出する。
【００５６】
ライン特徴算出モジュール１０２０は、同じ行に属する文字情報データの外接矩形を含む矩形を求める。例えば、図１３の例に示すように、同一行内の外接矩形１３０１から外接矩形１３１９を囲む矩形である行外接矩形１３５０を求める。そして、行外接矩形座標として、図１３の例に示すように行外接矩形の左上（ｍｉｎ＿ｘ，  ｍｉｎ＿ｙ）、右下（ｍａｘ＿ｘ，  ｍａｘ＿ｙ）を求める。
また、行高列幅算出モジュール１０２１は、行高さ（ｈ）を先に求めた行外接矩形座標を用いて、ｈ  ＝  ｍａｘ＿ｙ  −  ｍｉｎ＿ｙ  として求める。同様に、行幅（ｗ）を行外接矩形座標を用いて、ｗ  ＝  ｍａｘ＿ｘ  −  ｍｉｎ＿ｘ  として求める。これらの行高さ、行幅は、各外接矩形のサイズ（高さ、幅）又はその座標を用いて求める。
また、矩形間距離算出モジュール１０２２は、平均文字外接矩形間距離を、同じ行に属する隣接する文字情報データの外接矩形間距離ｇ０，  ｇ１，  ……，  ｇｎの平均値として求める。また、最大外接矩形間距離ｍａｘ＿ｇを、ｇ０，  ｇ１，  ……，  ｇｎのうちの最大値として求める。なお、リストデータとしてｇ０，  ｇ１，  ……  ，  ｇｎのそれぞれの値も保持するようにしてもよい。
【００５７】
段落認識処理モジュール１０３０は、ライン特徴算出モジュール１０２０、段落統合処理モジュール１０４０と接続されており、ライン認識処理モジュール１０１０で認識された各行、それら各行についてライン特徴算出モジュール１０２０で算出されたライン特徴量から、文書内の段落を抽出し、その段落に関する情報を算出する。また、横書きの場合、段落の抽出は、ライン認識処理モジュール１０１０によって抽出された各行の高さ及びそのラインの座標（高さ方向の位置（ｙ座標））を用いて行うようにしてもよい。縦書きの場合、段落の抽出は、ライン認識処理モジュール１０１０によって抽出された各列の幅及びそのラインの座標（幅方向の位置（ｘ座標））を用いて行うようにしてもよい。また、ライン認識処理モジュール１０１０によって抽出されたラインと、処理対象としている段落との位置関係に基づいて段落を抽出するようにしてもよい。また、その抽出した段落に関する情報として、その段落を囲む外接矩形の位置に関する情報を算出してもよく、又はその段落の順序に関する情報をその段落に含まれる文字の出現順序に関する情報から算出するようにしてもよい。また、横書きの場合、同一行に属するラインが複数存在する場合には、そのラインを順序付けするようにしてもよい。縦書きの場合、同一列に属するラインが複数存在する場合には、そのラインを順序付けするようにしてもよい。段落を囲む外接矩形の位置に関する情報として、例えば、段落外接矩形の左上角の座標値、段落外接矩形の幅、高さ等がある。また、段落認識処理モジュール１０３０は、それが認識した段落に関する情報として、その段落に含まれるラインの高さ又は幅（横書きの場合は各行の高さ、縦書きの場合は各列の幅）を用いて、その段落の代表値を算出するようにしてもよい。段落の代表値として、より具体的には、横書きの場合、同一段落として認識された段落内に含まれている行のうち、最も行高さが大きい値をいう。縦書きの場合、同一段落として認識された段落内に含まれている列のうち、最も列幅が大きい値をいう。
【００５８】
図１４は、第３の実施の形態による段落の認識処理例を示すフローチャートである。つまり、段落認識処理モジュール１０３０が行う処理例を示すものである。
ステップＳ１４０２では、まず初めにライン認識処理モジュール１０１０で認識された行に関して、行外接矩形のｙ座標値であるｍｉｎ＿ｙ値で昇順にソートする。
ステップＳ１４０４では、ステップＳ１４０２でソートされた行を全て探索（ステップＳ１４０６からステップＳ１４１４までの処理）したか否かを判定する。全て探索されていればステップＳ１４１６に、探索が終了していなければステップＳ１４０６に処理を移す。
ステップＳ１４０６では、注目する行（以降は、現探索行ともいう）をソート順に選択する。
ステップＳ１４０８では、現探索行に関して段落に登録されているか否かを判定する。現探索行が段落に登録されているならば処理をステップＳ１４０４に戻し、登録されていなければステップＳ１４１０に処理を移す。
【００５９】
ステップＳ１４１０では、現探索行が現段落における最初の登録行か否かを判定する。現探索行が現段落における最初の登録行であれば処理をステップＳ１４１４に移し、最初の登録行でなければステップＳ１４１２に処理を移す。
ステップＳ１４１２では、現段落に対して現探索行が登録できるか否かを判定する。現探索行が現段落に登録可能ならば処理をステップＳ１４１４に移し、登録できないならば処理をステップＳ１４０４に戻す。なお、ステップＳ１４１２における現探索行の登録可否処理の詳細は、図１６を用いて後で詳しく説明する。
【００６０】
ステップＳ１４１４では、現段落に対して、最初の登録行であるか、又は登録可能な行であると、それぞれステップＳ１４１０又はステップＳ１４１２で判定されている現探索行を現段落に登録し、段落に関する情報を算出又は更新する。その後、処理をステップＳ１４０４に移す。
ここで、図１５に段落に関する情報の具体的な例を示す。段落に関する情報として、例えば、その段落の位置情報（例えば、左上座標及び右下座標）、段落順序値（その段落を読む際の順序）を含む。段落認識処理モジュール１０３０は、図１５の例に示すように、段落に登録されている行情報（登録行情報）を用いて、段落に登録された全ての行の行外接矩形（登録行０  １５００から登録行８  １５０８）を含む矩形を段落外接矩形１５１０として、その左上座標（ｍｉｎ＿ｘ，  ｍｉｎ＿ｙ）及び右下座標（ｍａｘ＿ｘ，  ｍａｘ＿ｙ）を算出する。また図１５には図示していないが、同一段落に登録された各行のうち、最も行高さが大きい値ｍａｘ＿ｈを算出し、段落代表値とする。同一段落に登録された文字情報データ中で最も小さい文字認識順序の値ｍｉｎ＿ｏｒｄｅｒを算出し、段落順序値とする。
【００６１】
次に、段落に関する情報の更新について説明する。段落認識処理モジュール１０３０は、本ステップにおいて、現段落に新たな行を登録する場合は、先述の段落外接矩形座標及び段落順序値を更新する。図１５に示す具体例では、新たに処理対象とする行を登録行８  １５０８とすると、その登録行８  １５０８の行外接矩形の幅は、現段落外接矩形座標の幅（ｍｉｎ＿ｘ，  ｍａｘ＿ｘ）内に収まっているので、ｍｉｎ＿ｘ及びｍａｘ＿ｘは更新せず、ｍａｘ＿ｙだけ更新する（図１５では、更新前ｍａｘ＿ｙから更新後ｍａｘ＿ｙへ更新する）。さらに、現段落の段落代表値と新たに登録される登録行８  １５０８の行高さを比較して、現段落の段落代表値より登録行８  １５０８の行高さが大きい場合には段落代表値ｍａｘ＿ｈも更新する。つまり、登録行８  １５０８の行高さを段落代表値ｍａｘ＿ｈとし、段落代表値ｍａｘ＿ｈをその段落内で最も大きい行高さとする。さらに、現段落順序値と新たに登録される登録行８  １５０８中の全ての文字情報データの文字認識順序値を比較して、現段落順序値よりも小さい値がある場合には、段落順序値ｍｉｎ＿ｏｒｄｅｒをその小さい値（文字認識順序値）に更新する。
【００６２】
ステップＳ１４１６では、ステップＳ１４０４でソート順に行の探索を終了しているので、現段落に登録すべき行は全て登録しているとして現段落の抽出処理を終了する。
ステップＳ１４１８では、全ての行が段落登録されたかを判定する。全ての行がいずれかの段落に登録されていれば段落抽出処理を終了する（ステップＳ１４９９）。いずれの段落にも登録されていない行がある場合には、ステップＳ１４０４に処理を戻し、次の段落抽出処理を行う。
【００６３】
次に、図１４の例に示したフローチャートのステップＳ１４１２において、段落認識処理モジュール１０３０が処理する現探索行の登録可否処理例の詳細について、図１６の例に示すフローチャートを用いて説明する。
ステップＳ１６０２において、現探索行が現段落の段落外接矩形に対して、右又は左にずれているかを判定する。つまり、現探索行の左端が現段落の右端より右にあるか否か、又は現探索行の右端が現段落の左端より左にあるか否かを判定する。例えば、図１７（ａ）の例に示すように、現探索行１７１２が現段落１７１０より右にずれているか否か、又は図１７（ｂ）の例に示すように、現探索行１７３２が現段落１７３０よりも左にずれているか否かを判定する。現探索行が図１７の例のように右あるいは左にずれている場合には、現探索行は現段落に登録せず、図１４の例に示したステップＳ１４０４に処理を戻す。それ以外の場合は、ステップＳ１６０４に処理を移す。
【００６４】
ステップＳ１６０４において、現探索行と現段落に登録された行の文字サイズ（行高さを含む）に基づいて、その現探索行を登録すべきか否かを判定する。つまり、現探索行が現段落内の登録行より文字サイズが大きいか小さいかを判定する。例えば、ステップＳ１６０４における文字サイズの判定は、図１８の例に示すように行高さを用いて行う。つまり、現段落１８２０，１８５０に既に登録された各行（行１８００から行１８０８、行１８３０から行１８３８）の平均行高さと現探索行１８１０，１８４０の行高さを比較して、図１８（ａ）の例に示すように、現探索行１８１０の行高さが平均行高さより予め定められた量より大きい場合、又は図１８（ｂ）の例に示すように、現探索行１８４０の行高さが平均行高さより予め定められた量より小さい場合は、現探索行１８１０，１８４０は現段落１８２０，１８５０に登録せず、図１４の例に示したステップＳ１４０４に処理を戻す。それ以外の場合は、ステップＳ１６０６に処理を移す。
【００６５】
ステップＳ１６０６において、現探索行が現段落の段落外接矩形に対して、下にずれたか否かを判定する。つまり、図１５の例に示した現段落の段落外接矩形１５１０のｍａｘ＿ｙ（図１５では更新後ｍａｘ＿ｙ）と図１３の例に示した現探索行の行外接矩形１３５０のｍｉｎ＿ｙとを比較して、ｍａｘ＿ｙ  ≦  ｍｉｎ＿ｙなら処理をステップＳ１６０８に移し、ｍａｘ＿ｙ  ＞  ｍｉｎ＿ｙなら図１４の例に示したステップＳ１４１４に処理を移して、現探索行を現段落に登録し、段落に関する情報を更新する。
【００６６】
ステップＳ１６０８において、ステップＳ１６０４と同様に現段落に登録された各行の平均行高さと現探索行の行高さを比較して、現探索行の行高さが平均行高さより予め定められた量より大きい場合、又は現探索行の行高さが平均行高さより予め定められた量より小さい場合は、現探索行は現段落に登録せず、図１４の例に示したステップＳ１４０４に処理を戻す。それ以外の場合は、ステップＳ１６１０に処理を移す。
【００６７】
ステップＳ１６１０において、現探索行と現段落の行間と現段落に既に登録された各行の行間とを比較する。つまり、現段落に既に登録された各行の行間の平均値と現探索行と現段落の段落外接矩形との距離（ｍｉｎ＿ｙ  −  ｍａｘ＿ｙ）を比較して、その差分が予め定められた量より大きい場合は行間が広がったと判定して現探索行は現段落に登録せず、図１４の例に示したステップＳ１４０４に処理を戻す。前記差分が予め定められた量より小さい場合は、行間は一定であると判定して、ステップＳ１６１２に処理を移す。
【００６８】
ステップＳ１６１２において、現探索行の一つ前の同一行に登録行が複数あるか否かを判定し、同一行に複数登録行がある場合は、行外接矩形のｘ座標値であるｍｉｎ＿ｘ値で昇順にソートする。ここで、同一行とは、行外接矩形のｙ座標が現探索行のそれと予め定められた範囲内にある行であって、ライン認識処理モジュール１０１０では別々の行であると認識されたが、段落認識処理モジュール１０３０による現段落の生成過程において、現探索行よりも前に登録された行（複数の場合もあり得る）のことをいう。ここで、ｙ座標が予め定められた範囲内にあるとは、その段落において１行が存在するｙ座標の範囲内にあることをいう。同一行に複数登録行がない場合はそのまま図１４の例に示したステップＳ１４１４に処理を移して、現探索行を現段落に登録し、段落に関する情報を更新する。図１９の例は、同一行上に３つの登録行（登録行１９１０、登録行１９１１、登録行１９１２）がある場合を表しており、この図１９の例では前記３つの登録行の行外接矩形の各ｘ座標値である、「ｍｉｎ＿ｘ」：登録行１９１０、「ｍｉｎ＿ｘ」：登録行１９１１、「ｍｉｎ＿ｘ」：登録行１９１２を用いて昇順でソートを行う。ソート処理終了後、図１４の例に示したステップＳ１４１４に処理を移して、現探索行を現段落に登録し、段落に関する情報を更新する。
【００６９】
段落統合処理モジュール１０４０は、段落認識処理モジュール１０３０、文字情報補正処理モジュール１０５０と接続されており、段落認識処理モジュール１０３０によって抽出された段落を統合して、その段落に関する情報を算出する。そして、その算出した段落に関する情報を文字情報補正処理モジュール１０５０に渡す。
より具体的に説明すると、段落統合処理モジュール１０４０は、段落認識処理モジュール１０３０で認識された段落を、各段落の段落代表値（ｍａｘ＿ｈ）を用いて統合する。
【００７０】
図２０は、段落統合処理モジュール１０４０が行う段落の統合処理例を示すフローチャートである。
ステップＳ２００２において、段落認識処理モジュール１０３０で認識された全ての段落の段落代表値ｍａｘ＿ｈの差分値を算出し、その差分値が最小となる２つの段落を抽出する（このときの差分値を以下では「差分最小値」ともいう）。
ステップＳ２００４において、ステップＳ２００２で算出された差分最小値を予め定めた閾値と比較する。前記差分最小値が予め定めた閾値より大きい場合（ステップＳ２００４でＮＯ）は、これ以上統合すべき段落はないと判断して、段落統合処理モジュール１０４０における段落統合処理を終了する（ステップＳ２０９９）。前記差分最小値がある所定の閾値より小さい場合（ステップＳ２００４でＹＥＳ）は、ステップＳ２００６に処理を移す。
【００７１】
ステップＳ２００６において、ステップＳ２００２で差分最小値であるとして抽出された２つの段落を統合する。ここでいう段落の統合とは、段落代表値が近い段落同士であることを示すために、例えば２つの段落の段落に関する情報に同じ識別番号などを付与あるいは追加するという意味である。
ステップＳ２００８において、ステップＳ２００６において統合された段落の段落代表値ｍａｘ＿ｈを、統合元の２つの段落の段落代表値の大きい方で設定し、処理をステップＳ２００２に戻す。つまり、統合後の段落の段落代表値ｍａｘ＿ｈを、元の段落の段落代表値ｍａｘ＿ｈのうち大きい値とする。
このように段落統合処理モジュール１０４０は、前述したように、ステップＳ２００２で算出する差分最小値がステップＳ２００４において予め定めた閾値より大きくなるまでステップＳ２００２からステップＳ２００８の統合処理を繰り返して段落を統合する。
【００７２】
文字情報補正処理モジュール１０５０は、段落統合処理モジュール１０４０と接続されており、段落統合処理モジュール１０４０で統合された段落中のラインである行の高さ及びラインを構成する画素塊間の間隔に基づいて、その統合された段落内の画素塊を囲む矩形の位置及び大きさを算出して、ライン認識処理モジュール１０１０が受け付けた文字情報データを補正する。例えば、段落統合処理モジュール１０４０によって統合された段落内で、ラインである行の高さ又は列の幅を統一し、文字間に隙間が生じないように、その統合された段落内の画素塊を囲む矩形の位置及び大きさを算出するようにしてもよい。また、文書内に同等の形状（つまり、文字画像として同等である場合又は外接矩形として同等である場合をいう。文字画像として同等であるとは、その文字画像の特徴を抽出し、特徴空間内で予め定めた閾値内の距離にあることをいう。外接矩形として同等であるとは、外接矩形の高さ及び幅が、他の外接矩形の幅及び高さと予め定めた閾値以下である場合をいう）の文字がある場合には、その文字を囲む矩形の位置及び大きさを同等の値とするようにしてもよい。また、文書内の文字の言語に基づいて、外接矩形の大きさを算出するようにしてもよい。
【００７３】
文字情報補正処理モジュール１０５０は、段落統合処理モジュール１０４０で統合された段落の段落代表値ｍａｘ＿ｈ及びライン特徴算出モジュール１０２０で算出された最大外接矩形間距離ｍａｘ＿ｇに基づいて、矩形補正値を算出して、各行毎に分類された文字情報データを補正する。図２１は文字情報補正処理モジュール１０５０における文字情報の補正の具体的な一例を示すものである。
文字情報補正処理モジュール１０５０では、図２１の例に示す各補正値を以下のように算出する。
補正矩形高さＨには、補正対象の文字情報データが属する統合段落の段落代表値ｍａｘ＿ｈを設定する。
補正矩形幅Ｗは、補正対象の文字情報データが属する行の最大外接矩形間距離ｍａｘ＿ｇを用いて、以下の式（１）で算出する。
Ｗ  ＝  ｍａｘ＿ｇ  ＋  ｗ          ・・・・・      式（１）
ここでｗは、補正前（ライン認識処理モジュール１０１０が受け付けた元の文字情報データのもの）の外接矩形幅である。
【００７４】
補正矩形２１２０の左上ｘ座標値（ｎｅｗ＿ｘ，ｎｅｗ＿ｙ）は、以下の式（２）で算出する。
ｎｅｗ＿ｘ  ＝  ｘ  −  ｍａｘ＿ｇ／２
ｎｅｗ＿ｙ  ＝  ｍｉｎ＿ｙ  −  （Ｈ  −  ｈ）／２  ・・・・・      式（２）
ここでｘは補正前の外接矩形２１１０の左上ｘ座標値、ｍａｘ＿ｇは補正対象の文字情報データが属する行の最大外接矩形間距離の代表値、ｍｉｎ＿ｙは補正対象の文字情報データが属する行のｙ座標の最小値、Ｈは補正矩形２１２０の高さ、ｈは補正前の外接矩形高さである。
【００７５】
補正矩形２１２０から外接矩形２１１０への相対移動量ｓｈｉｆｔｘ、ｓｈｉｆｔｙは、以下の式（３）で算出する。
ｓｈｉｆｔｘ  ＝  ｍａｘ＿ｇ／２
ｓｈｉｆｔｙ  ＝  ｙ  −  ｎｅｗ＿ｙ          ・・・・・      式（３）
ここでｙは補正前の外接矩形２１１０の左上ｙ座標値である。
【００７６】
前述したように文字情報補正処理モジュール１０５０では、入力された文字情報データの外接矩形情報から補正文字矩形を生成し、文字同士の矩形高さが揃い、また矩形同士の隙間が空かないような補正を行う。
【００７７】
また文字情報補正処理モジュール１０５０は、文書内に同等の形状の文字がある場合（文字画像として同等である場合又は外接矩形として同等である場合）には、補正文字矩形の位置及び大きさを同等の値とするようにしてもよい。そして、それら補正文字矩形のデータを補正文字情報データ内で共有することによって、文書全体のデータ量を削減するようにしてもよい。
【００７８】
また文字情報補正処理モジュール１０５０は、前述した補正に加えて、文書内の文字の言語に基づいて、補正後の文字矩形の大きさを算出するようにしてもよい。例えば、対象とする文書が日本語の場合には、補正後の文字矩形が正方形となるように、補正矩形幅Ｗを補正矩形高さＨと等しくなるよう設定するようにしてもよい。なお、対象とする文書内の文字の言語の判断は、その文書内に含まれている言語に関するヘッダ、文字コード、画像である場合は文字認識処理の結果等を用いて行う。
【００７９】
また、同等の文字情報データの場合には補正後のデータも同等として設定し、それら補正データを文字情報データに対応付けて共有することで文書全体のデータ量を削減するようにしてもよい。つまり、ライン認識処理モジュール１０１０が受け付けた文字情報データ内で同じものを抽出し、その抽出した同等の文字情報データに対して、本実施の形態によるその文字情報データの処理結果である補正後のデータを一つ対応付けるようにしてもよい。
【００８０】
段落分割処理モジュール６３０は、文字情報補正処理モジュール１０５０の出力（段落認識処理モジュール１０３０、段落統合処理モジュール１０４０の出力であってもよい）に基づいて、段落番号を生成し、段落情報を抽出する。つまり、段落に関する情報内のその段落の順序に関する情報から段落番号を生成し、段落に関する情報内のその段落を囲む外接矩形の位置に関する情報から段落の画像を抽出する。また、段落の順序に関する情報（段落順序値）を段落番号として段落タイトル決定処理モジュール６４０と文書フォーマット処理モジュール６５０へ渡し、段落に関する情報を段落情報として段落タイトル決定処理モジュール６４０へ渡してもよい。
【００８１】
なお、段落分割処理モジュール６３０が行う処理は、前述のものに限らず、ページを複数の部分に分割する方法であればよい。
例えば、句点の文字コードを段落の区切りとして用いるようにしてもよい。具体的には、例えば、段落分割処理モジュール６３０が文字認識モジュールを含んでおり、その文字認識モジュールの文字認識結果として、文字コードを順番に受け取り、このとき、句点コード（又はピリオドコード等）を受け取った時点で、段落の区切りと判断する。
又は、文字認識モジュールの文字認識結果として、文字コードと文字の位置を順番に受け取る。ここで、文字の位置として、例えば、文字の外接矩形の左上の位置ＸＹ座標とする。そのＸＹ座標は、画像の左上端をＸ＝０、Ｙ＝０として、右に行くにつれてＸが増加し、下に行くにつれてＹが増加するような座標とする。なお、文字の位置としては、外接矩形の左上の位置以外であってもよい。そして、順番に受け取った文字位置のＸ座標の差分と、Ｙ座標の差分を計算する。このＸとＹの差分がどちらも予め定められた閾値よりも大であるときに、段落の区切りとするようにしてもよい。
【００８２】
又は、ページ内の段落区切りを固定としてもよい。例えば、ページを真ん中で縦に２分割、横に２分割すると、ページを４つの領域に分割し、これらを４つの段落としてもよい。
又は、特開２０００−９０１９４号公報に示された手法、又は、その公報に従来技術として示された手法で、画像を分割して、各分割領域を段落としてもよい。具体的には、例えば、文書に含まれる文章が縦書きであるか又は横書きであるかを算定し、その算定した結果を参照して前記文書を分割する境界を設定し、その設定した境界において前記文書を分割する。また、前記文書を横書き文章方向に膨張処理した画像と、前記文書を縦書き文章方向に膨張処理した画像との論理積を求め、この論理積画像を新たな文書として受け付ける。境界の設定に際しては、前記文書を構成する画素の横書き文章方向及び縦書き文章方向における投影分布を算出し、この算出した投影分布を用いて前記境界を設定する。前記算定の結果において、前記文書に含まれる文章が縦書き主体である場合には、縦書き文章方向に境界を設定する確率を高め、横書き主体である場合には、横書き文章方向に境界を設定する確率を高める。前記文書に含まれる文章が縦書き主体であるか又は横書き主体であるかを、前記文書の連結成分の中で文字画像の配置情報から算出する。
またその他の手法であってもよい。
【００８３】
段落タイトル決定処理モジュール６４０は、段落分割処理モジュール６３０、文書フォーマット処理モジュール６５０と接続されている。段落分割処理モジュール６３０によって分割された段落内からその段落のタイトルを決定する。例えば、具体的には、段落の画像を受け取って、その画像のタイトル（段落タイトル）を決定する。段落タイトルの決定方法は、段落の最初のＰ文字を段落タイトルとして抽出するようにしてもよい。Ｐは予め定めておいた段落タイトルの文字数である。又は、前述した第１又は第２の実施の形態におけるページタイトル決定処理モジュール１２０によるページタイトルの決定方法を段落タイトル決定方法としてもよい。
【００８４】
文書フォーマット処理モジュール６５０は、ページ処理モジュール６１０、ページタイトル決定処理モジュール６２０、段落分割処理モジュール６３０、段落タイトル決定処理モジュール６４０と接続されている。図１に例示した文書フォーマット処理モジュール１３０と同等の処理を行い、さらに、段落に関する処理を行う。つまり、さらに、段落タイトル決定処理モジュール６４０によって決定された見出しをページ処理モジュール６１０によって分割されたページの第２レベルのアウトライン情報とする。アウトライン情報内の階層（具体的には、段落がどのページに属しているかについての情報）は、ページ処理モジュール６１０から受け取ったページ番号との対応によって決定する。
【００８５】
より具体的には、文書フォーマット処理モジュール１３０と同等の処理、例えば、ページ番号とページタイトルをそれぞれページ処理モジュール１１０、ページタイトル決定処理モジュール１２０から受け取り、これを用いてページタイトルを第１レベルのアウトラインとするメタ情報を文書フォーマットに付与し、さらに、段落分割処理モジュール６３０から段落番号を受け取り、それに対応する段落のタイトルを段落タイトル決定処理モジュール６４０から受け取り、そのページに対応する第２レベルのアウトラインとするメタ情報を文書フォーマットに付与する。それとともに、ページ情報（１ページ分の画像）をページ処理モジュール１１０から受け取り、その画像を出力用の文書フォーマットに変換する処理を行う。
一例として、ＰＤＦを出力文書フォーマットとした場合の例を図８に示す。図８に例示の出力文書フォーマットは、図３（Ｂ）に例示した出力文書フォーマットのその他のＰＤＦ制御情報３２２−１と第１レベルアウトライン（２ページ目の画像のタイトル）３２１−２の間に、１ページ目の第２レベルのアウトライン情報を追加したものである。１ページ目のタイトルを格納した第１レベルアウトライン（１ページ目の画像のタイトル）３２１−１と第１レベルのアウトラインに関するその他のＰＤＦ制御情報３２２−１の組を付与した後に、その１ページ目内の一つ目の段落のタイトルを格納した第２レベルアウトライン（１ページ目の画像の１段落目のタイトル）８３１−１とその段落の第２レベルのアウトラインに関するその他のＰＤＦ制御情報８３２−１の組を付与し、以後、２つ目以降の段落についての組（第２レベルアウトライン（１ページ目の画像のＭ段落目のタイトル）８４１−１、その他のＰＤＦ制御情報８４２−１等）を順に付与したものである。２ページ目以降についても、第１ページ目と同等の第１レベル、第２レベルのアウトライン情報を付与する。
【００８６】
図７は、第３の実施の形態による処理例を示すフローチャートである。
ステップＳ７０２では、ページ処理モジュール６１０が、文書を受け付ける。
ステップＳ７０４では、ページ処理モジュール６１０が、ページ毎の画像に分割する。
ステップＳ７０６では、ページ処理モジュール６１０が、ページ毎にページ番号を付与する。
ステップＳ７０８では、ページタイトル決定処理モジュール６２０が、ページ毎にページタイトルを決定する。
ステップＳ７１０では、段落分割処理モジュール６３０が、ページ毎に段落に分割する。
ステップＳ７１２では、段落タイトル決定処理モジュール６４０が、段落毎に段落タイトルを決定する。
ステップＳ７１４では、段落タイトル決定処理モジュール６４０が、そのページ内の最終段落まで終了したか否かを判断する。最終段落まで終了した場合はステップＳ７１６へ進み、それ以外の場合はステップＳ７１２へ戻る。
ステップＳ７１６では、ページタイトル決定処理モジュール６２０が、最終ページまで終了したか否かを判断する。最終ページまで終了した場合はステップＳ７１８へ進み、それ以外の場合はステップＳ７０８へ戻る。
ステップＳ７１８では、最終ページまでページタイトル、段落タイトルが決定された後に、文書フォーマット処理モジュール６５０が、文書フォーマット処理を行い、その文書を出力する。
【００８７】
このように作成された文書は、そのフォーマットに適した文書ビューアを用いて、図９に例示するような表示が行われる。
文書ビューアは文書ビューア表示領域９００内に、アウトラインビューア表示領域９１０、ページ画像表示領域９２０を表示する。この文書ビューアにおいては、ページ画像表示領域９２０に各ページの画像を表示する。さらに、文書ビューアのオプションとしてアウトラインビューアを持っている。アウトラインビューアを開くと、各ページのタイトルとそのページ内に含まれている段落のタイトルを階層的にアウトラインビューア表示領域９１０に表示する。このアウトラインビューア表示領域９１０内のページのタイトルが利用者の操作によって選択されると、ページ画像表示領域９２０に表示されているページを選択されたページに変更し、アウトラインビューア表示領域９１０内の段落のタイトルが利用者の操作によって選択されると、ページ画像表示領域９２０に表示されている段落を選択表示に変更する。つまり、ページのタイトルを第１レベルのアウトラインとし、段落のタイトルを第２レベルのアウトラインにすることにより、このような処理が行えるようになる。
【００８８】
＜第４の実施の形態＞
前述の実施の形態では各ページ内における第１レベルのアウトライン情報、第２レベルのアウトライン情報を抽出している。つまり階層構造（第１レベル、第２レベル）として、各ページ独立のものである。第４の実施の形態では、ページ間の関連を用いて、ページ独立に設定されたタイトルの階層構造を変更するものである。
第４の実施の形態は、前述の第３の実施の形態の文書フォーマット処理モジュール６５０に機能を追加するものである。したがって、他のモジュールの構成、働き等は同等のものである。したがって、第３の実施の形態と同種のモジュールには同一符号を付し重複した説明を省略する。
第４の実施の形態は複数ページの文書を対象としているので、ページ処理モジュール６１０は複数のページを有する文書を受け付ける。
【００８９】
複数ページの文書を対象とした場合、第３の実施の形態における出力文書は、図２３に例示するような出力文書２３００となる。
つまり、各ページ毎にページタイトルが付与されている。各ページは複数の段落から構成されている場合がある。例えば出力文書２３００では、ページ１は３つの段落を有している。そして、各段落は複数のサブ段落から構成されている場合がある。例えば出力文書２３００では、ページ２は段落１の下にサブ段落１がある。なお、段落は、ページよりも１段階下がった階層に属する。サブ段落は、段落よりも１段階下がった階層に属する。
【００９０】
図２３に例示した出力文書２３００は、第３の実施の形態を用いて取得したタイトルであるので、ページ毎に独立に階層構造を有している。この場合、ページタイトルの階層は最上位階層となっている。また、ページ内の段落の階層はページタイトルの１段下の階層となっている。サブ段落は段落のさらに１段下の階層となっている。
実際の文書において、ページ１ページタイトルとページ２ページタイトルが同一階層であるとは限らないということがある。例えば、ページ１ページタイトルは、文書のタイトルであって、ページ２ページタイトルは、章のタイトルであるかもしれない。そのような場合には、ページ１ページタイトルより下位の階層としてページ２ページタイトルとして抽出すべきである。
そこで、以下、第４の実施の形態では、ページ間の階層構造の関係を抽出し、ページにまたがる階層に変更する。
【００９１】
図２２は、第４の実施の形態の文書フォーマット処理モジュール６５０の構成例についての概念的なモジュール構成図である。文書フォーマット処理モジュール６５０は、属性値処理モジュール２２１０、階層処理モジュール２２２０を有している。
属性値処理モジュール２２１０は、ページタイトル決定処理モジュール６２０によって決定されたページの見出しの属性又は段落タイトル決定処理モジュール６４０によって決定された段落の見出しの属性を抽出する。
階層処理モジュール２２２０は、属性値処理モジュール２２１０によって抽出されたページの見出しの属性又は段落の見出しの属性に基づいて、複数ページ間における階層構造を決定する。
第３の実施の形態における文書フォーマット処理モジュール６５０の処理が終了した後に、属性値処理モジュール２２１０、階層処理モジュール２２２０が処理を行う。
【００９２】
ここで、階層番号を定義する。階層番号は階層の上位下位を示す番号であり、階層番号：１が最上位、階層番号：２がその下位、階層番号：３がさらにその下位であるとする。この階層番号を用いて、図２３に例示した出力文書２３００の階層構造を、図２４に例示するタイトル・階層テーブル２４００のように記述することができる。タイトル・階層テーブル２４００はタイトル欄２４１０と階層番号欄２４２０を有しており、タイトル欄２４１０は各階層におけるタイトルを記憶し、階層番号欄２４２０はその階層番号を記憶する。例えば、各ページのページタイトルは階層番号：１である。そして、段落タイトルは階層番号：２であり、サブ段落タイトルは階層番号：３である。タイトル・階層テーブル２４００は、文書フォーマット処理モジュール６５０内に記憶されており、各値は文書フォーマット処理モジュール６５０によって記憶される。この段階では、ページタイトルであるならば階層番号：１であり、段落タイトルであるならば階層番号：２であり、サブ段落タイトルであるならば階層番号：３であるというように対応している。
【００９３】
属性値処理モジュール２２１０は、各タイトルの属性値を取得する。属性値は、そのタイトルが上位の階層であれば大きな値、下位の階層であれば小さな値となるような評価値を示すものである。
属性値としては、例えば、各タイトルの文字の大きさ、文字を構成する線の太さ、文字の色、最初の文字の位置、前後の行（又は列、以下同様）との距離等がある。又は、複数の属性値（文字の太さ、文字の大きさ、前後の行との距離など）の重み付け線形和を用いてもよい。
文字の大きさとしては、タイトルが横書きであれば、タイトルの文字列の外接矩形の高さ等を取得すればよい。タイトルが縦書きであれば、タイトルの文字列の外接矩形の幅等を取得すればよい。
文字の太さは、タイトルの文字列の外接矩形の濃度等を取得すればよい。また、文字を構成する線のうち、予め定められた値以上の長さの線を対象とし、その太さを計測するようにしてもよい。
文字の色は、タイトルの文字の画素値を取得すればよい。
最初の文字の位置の場合、横書きの場合はタイトル内の左端にある文字からページの左端までの距離、縦書きの場合はタイトル内の上端にある文字からページの上端までの距離を計測して取得すればよい。
前後の行との距離の場合、横書きであれば、上下の行との距離を計測し、縦書きであれば、左右の列との距離を計測して取得すればよい。
【００９４】
文字が大きければ大きいほど、上位の階層である可能性が高くなる。文字が太ければ太いほど、上位の階層である可能性が高くなる。また、文字の色の場合、文字の色と属性値との対応テーブルを予め用意しておき、その対応テーブルを用いて、属性値が大きいほど上位の階層である可能性が高くなるように設定しておけばよい。最初の文字の位置の逆数が大きければ大きいほど、上位の階層である可能性が高くなる。前後の行（又は列、以下同様）との距離が大きければ大きいほど、上位の階層である可能性が高くなる。
本実施の形態では、ページ内の階層構造として、上位階層のタイトルは、下位階層のタイトルよりも本属性値の値が大きくなるようにする。
【００９５】
このようにして取得した属性値を各タイトルにリンクさせたのが図２５に例示するタイトル・属性値テーブル２５００である。タイトル・属性値テーブル２５００は、タイトル欄２５１０と属性値欄２５２０を有している。タイトル欄２５１０は各階層におけるタイトルを記憶し、属性値欄２５２０はその階層の属性値を記憶する。例えば、属性値欄２５２０は属性値として文字の大きさをポイント数で記憶している。ページ１のページタイトルは属性値：２０であり、ページ１の段落タイトルは属性値：１２であり、ページ２のページタイトルは属性値：１２であり、ページ２の段落タイトルは属性値：１２であり、サブ段落タイトルは属性値：１０である。タイトル・属性値テーブル２５００は、文書フォーマット処理モジュール６５０内に記憶されており、各値は属性値処理モジュール２２１０によって記憶される。
【００９６】
属性値処理モジュール２２１０がタイトル・属性値テーブル２５００を生成した後、階層処理モジュール２２２０が、階層番号を変更する。以下、図２６に例示したフローチャートを用いて説明する。
ステップＳ２６０２では、タイトル・属性値テーブル２５００から各タイトルの属性値を取得する。
ステップＳ２６０４では、属性値のクラスタリングを行う。クラスタリングとしては、一般的なクラスタリングアルゴリズムを用いればよい。例えば、具体的には、Ｋ−ｍｅａｎｓ法、クラスター分析法等を用いればよい。より単純には、同じ値のものを一つのクラスにする。例えば、図２５に例示したタイトル・属性値テーブル２５００の場合、属性値が、１０、１２、１８、２０の４つのクラスに分割することができる。又は、ある属性値から予め定められた範囲内にあれば（つまり、微小なずれは無視するとすれば）、属性値が、１０、２０の２つのクラスに分割するようにしてもよい。
このように属性値をクラスタリングして、クラス分けする。ここでは属性値が、１０、１２、１８、２０の４つのクラスに分ける。
【００９７】
ステップＳ２６０６では、属性値のクラスのソートを行う。ソートはクラスの代表値を用いる。前述の例では、２０、１８、１２、１０の順にソート（降順）できる。
ステップＳ２６０８では、クラスに階層番号を付与する。つまり、クラスの属性値が大きな順に小さな階層番号を与える。前述の例では、クラス２０に対して、階層番号１を与える。クラス１８に対して、階層番号２を与える。クラス１２に対して、階層番号３を与える。クラス１０に対して、階層番号４を与える。
ステップＳ２６１０では、最終的に、タイトルに階層番号を付与する。結果として、前述の例では、図２７に例示するタイトル・階層テーブル２７００の階層番号を得ることができる。タイトル・階層テーブル２７００はタイトル・階層テーブル２４００を書き換えたものである。つまり、階層番号はタイトル・階層テーブル２４００の状態では３であったが、階層処理モジュール２２２０の処理によって階層番号は４に増えている。そして、階層番号：１はページ１のページタイトルだけであり、階層番号：２はページ３のページタイトルとなり、ページ２のページタイトルはページ１内の段落タイトルと同じ階層番号：３となる。
【００９８】
そして、文書フォーマット処理モジュール６５０は、この処理結果を含めた文書を生成して出力する。
このように作成された文書は、そのフォーマットに適した文書ビューアを用いて、図２８に例示するような表示が行われる。これは、図９に例示したアウトラインビューア表示領域９１０に対応するものである。アウトラインビューア表示領域２８００内では、右に行くほど下位の階層であるような表示の仕方をしている。つまり、アウトラインビューア表示領域２８００では、文書内のページタイトル、段落タイトル、サブ段落タイトルを階層的に表示しており、ページ１のページタイトルは最上位の階層にあり、ページ３のページタイトルは次の階層にあり、ページ２のページタイトルは段落のタイトルと同じ第３階層にあり、サブ段落タイトルはページ２の段落１タイトルの下の階層に位置していることが示されている。
【００９９】
＜第５の実施の形態＞
第４の実施の形態では、複数のページ（例示したものは全てのページ）を対象として、階層構造を決定した。第５の実施の形態は、これをページ毎の逐次的処理としたものである。第５の実施の形態のモジュール構成は、第４の実施の形態と同等のものである。ただし、文書フォーマット処理モジュール６５０は、以下に示す処理を行う。
【０１００】
図２９は、第５の実施の形態の文書フォーマット処理モジュール６５０による処理例を示すフローチャートである。文書フォーマット処理モジュール６５０内の階層処理モジュール２２２０は、最初のページからページ毎に順次、ページ間にまたがる階層構造を決定していく。このフローチャートによる処理を行う前に、文書フォーマット処理モジュール６５０は第３の実施の形態で説明した処理を行っているものとする。なお、各ページ内は、ページ、段落、サブ段落、…などのように既に階層構造になっているとする。ただし、複数ページ間における既階層はないとする。
【０１０１】
ステップＳ２９０２では、第１ページを取得する。ここでは、複数ページ間における既階層はない。
ステップＳ２９０４では、対象とする文書内のページが終了したか否かを判断する。ページが終了した場合（次のページがない場合）は処理を終了（ステップＳ２９９９）し、それ以外の場合はステップＳ２９０６へ進む。
ステップＳ２９０６では、そのページにおける第１クラスを取得する。
ステップＳ２９０８では、既階層にマッピング可か否かを判断する。マッピング可の場合はステップＳ２９１２へ進み、それ以外の場合はステップＳ２９１０へ進む。この判断は、既階層がなればマッピング不可と判断し、既階層があってもその既階層の属性と対象としているクラスの属性値が対応していない場合もマッピング不可と判断し、既階層があり、その既階層の属性と対象としているクラスの属性値が対応している場合はマッピング可と判断する。
【０１０２】
ステップＳ２９１０では、新階層を登録し、その新階層にマッピングする。
ステップＳ２９１２では、既階層にマッピングする。
ステップＳ２９１４では、そのページ内における次のクラスを取得する。
ステップＳ２９１６では、そのページ内におけるクラスが終了したか否かを判断する。クラスが終了した場合（そのページ内に次のクラスがない場合）はステップＳ２９１８へ進み、それ以外の場合はステップＳ２９０８へ戻る。
ステップＳ２９１８では、次のページを取得する。
【０１０３】
ここで、図２５に例示したタイトル・属性値テーブル２５００を対象とした場合の処理の説明を行う。
ページ１は、ページタイトル、段落タイトルの２層構造であるため、２クラス構成となる。
ページ１の最上位の階層（ページタイトル）を第１クラスとする（ステップＳ２９０６）。
そして、１ページ目の場合、既階層はないので、既階層にマッピング不可であり、ステップＳ２９０８ではステップＳ２９１０へ進むことになる。
１ページ目の第１クラスの場合、新階層１を登録して、さらに、第１クラスをその新階層１にマッピングする（ステップＳ２９１０）。
ページ１の第２クラスは、段落階層である。このクラスに対しても既階層はないため、既階層にマッピング不可であり、２巡目のステップＳ２９０８でもステップＳ２９１０へ進むことになる。そして、新階層２を登録して、さらに、ページ１の第２クラスをその新階層２にマッピングする（ステップＳ２９１０）。
これで、ページ１のクラスは終了した（ステップＳ２９１６でＹ）ので、ページ２を取得する（ステップＳ２９１８）。
【０１０４】
ページ２は、ページタイトル、段落タイトル、サブ段落タイトルの３層構造であるため、３クラス構成となる。
まずページ２のクラス１は、ページ２のページタイトルである。この属性値は１２である。なお、属性値は、属性値処理モジュール２２１０が予め抽出してタイトル・属性値テーブル２５００を生成していてもよいし、必要となる毎に抽出してもよい。属性値：１２の既階層は階層２であるため、ページ２のページタイトルは階層２にマッピングする（ステップＳ２９１２）。つまり、対象とするタイトルの属性値に対応する、既に階層にマッピングされたタイトルの属性値をタイトル・属性値テーブル２５００から検索し、その検索された属性値を有するタイトルの階層を対象とするタイトルに付与するものである。
次のクラスであるページ２の段落の属性値は１２であるため、ページ２の段落も階層２にマッピングする（ステップＳ２９１２）。
次のクラスであるページ２のサブ段落の属性値は１０である。これに対応する既階層はない（ステップＳ２９０８でＮ）ため、新階層を設定する。属性値１０は、既階層のどれよりも小さな値であるため、新階層３を登録する。ページ２のサブ段落は、その新階層３にマッピングする（ステップＳ２９１０）。
【０１０５】
次にページ３を取得する（ステップＳ２９１８）。
ページ３のページタイトルの属性値は１８である。これに対応する既階層はない（ステップＳ２９０８でＮ）ため、新階層を設定する（ステップＳ２９１０）。
これまで登録された階層は、図３０に例示する階層・属性テーブル３０００のようになっている。階層・属性テーブル３０００は、階層番号欄３０１０、属性値欄３０２０を有している。階層番号欄３０１０はページ間にまたがる階層構造を記憶し、属性値欄３０２０はその階層構造のタイトルが有する属性値を記憶する。つまり、階層１は属性値：２０を有するものであり、階層２は属性値：１２を有するものであり、階層３は属性値：１０を有するものである。
属性値：１８は、階層１と階層２の間であるため、その間に新階層を作る。階層２以降の番号は１ずつずらす（階層番号を増加させる）。つまり、図３１に例示する階層・属性テーブル３１００のようになる。階層３の属性値として１８を登録し、階層４として階層・属性テーブル３０００の階層３を登録する。なお、階層・属性テーブル３０００（階層・属性テーブル３１００）は、文書フォーマット処理モジュール６５０内に記憶されており、各値は階層処理モジュール２２２０によって記憶される。
そして、ページ３のページタイトルは、階層２にマッピングする（ステップＳ２９１０）。
ページ３のクラス２である段落は、属性値１２であるため、階層３にマッピングする（ステップＳ２９１２）。
【０１０６】
前述の例では、属性値に一致する既階層があれば、その階層に登録し、なければ、新階層を作成して、その新階層に登録する例を述べた。
しかし、既階層に一致しない場合でも、ある程度の誤差を許容してもよい。例えば、既階層との差分が予め定めた閾値以下であれば、その階層に登録してもよい。閾値以内の既階層が複数ある場合には、比較した場合に属性値が近い既階層に登録すればよい。閾値以内の既階層がない場合に限り、新階層を登録する。
【０１０７】
図３２を参照して、前述の実施の形態の情報処理装置のハードウェア構成例について説明する。図３２に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部３２１７と、プリンタなどのデータ出力部３２１８を備えたハードウェア構成例を示している。
【０１０８】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２０１は、前述の実施の形態において説明した各種のモジュール、すなわち、ページ処理モジュール１１０、ページタイトル決定処理モジュール１２０、文書フォーマット処理モジュール１３０、段落分割処理モジュール６３０、段落タイトル決定処理モジュール６４０、ライン認識処理モジュール１０１０、ライン特徴算出モジュール１０２０、段落認識処理モジュール１０３０、段落統合処理モジュール１０４０、文字情報補正処理モジュール１０５０、属性値処理モジュール２２１０、階層処理モジュール２２２０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【０１０９】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２０２は、ＣＰＵ３２０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２０３は、ＣＰＵ３２０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス３２０４により相互に接続されている。
【０１１０】
ホストバス３２０４は、ブリッジ３２０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス３２０６に接続されている。
【０１１１】
キーボード３２０８、マウス等のポインティングデバイス３２０９は、操作者により操作される入力デバイスである。ディスプレイ３２１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【０１１２】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３２１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ３２０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた文書、出力文書などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【０１１３】
ドライブ３２１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体３２１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース３２０７、外部バス３２０６、ブリッジ３２０５、及びホストバス３２０４を介して接続されているＲＡＭ３２０３に供給する。リムーバブル記録媒体３２１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【０１１４】
接続ポート３２１４は、外部接続機器３２１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート３２１４は、インタフェース３２０７、及び外部バス３２０６、ブリッジ３２０５、ホストバス３２０４等を介してＣＰＵ３２０１等に接続されている。通信部３２１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部３２１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部３２１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【０１１５】
なお、図３２に示す情報処理装置のハードウェア構成は、一つの構成例を示すものであり、前述の実施の形態は、図３２に示す構成に限らず、前述の実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図３２に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【０１１６】
前述の実施の形態のページ処理モジュール１１０、ページ処理モジュール６１０が受け付ける文書は、マルチページＴＩＦＦを例示したが、他の形態でもよい。例えば、複数の画像ファイルであってもよい。画像ファイルとしては、ＴＩＦＦ、ＧＩＦ、ＰＮＧ、ＰＢＭ、ＪＰＥＧ等でもよい。この場合、その複数の画像ファイルにページ番号を付与する。
【０１１７】
又は、前述の実施の形態のページ処理モジュール１１０、ページ処理モジュール６１０が受け付ける文書は、ＰＤＦ等の電子化文書としてもよい。ＰＤＦ等の各ページにはテキストコードが付与されていたり、画像が貼り付けられていたりする。これらのテキストコードをそのまま（前述の文字認識結果として）用いてもよい。又は、貼り付けられている画像を文字認識処理してもよい。
【０１１８】
又は、前述の実施の形態のページ処理モジュール１１０、ページ処理モジュール６１０が受け付ける文書は、ワードプロセッサのファイルとしてもよい。その場合、ページ処理モジュール１１０、ページ処理モジュール６１０は、ワードプロセッサのファイル形式をページを固定するように処理する。例えば、プリント処理を行うことによって、プリント画像を生成してページを固定してもよい。又は、一旦ＰＤＦやＰＳ等に変換することでページを固定してもよい。ページを固定した結果、テキストコードが付与されていたり、画像が貼り付けられていたりする。これらのテキストコードをそのまま（前述の文字認識結果として）用いてもよい。又は、貼り付けられている画像を文字認識処理してもよい。
【０１１９】
前述のページ処理モジュール１１０、ページ処理モジュール６１０では、ページ番号を生成、出力しているが、これを行わなくてもよい。また、その場合、文書フォーマット処理モジュール１３０、文書フォーマット処理モジュール６５０は、ページにページ番号を付与しなくてもよい。同様に、段落分割処理モジュール６３０は、段落番号を生成、出力しているが、これを行わなくてもよい。また、その場合、文書フォーマット処理モジュール６５０は、段落に段落番号を付与しなくてもよい。なお、各モジュール間で、同じページ又は段落に対する処理を行う場合は、ページ又は段落を一意に特定できる符号を用いてもよい。
【０１２０】
前述の実施の形態の文書フォーマット処理モジュール１３０、文書フォーマット処理モジュール６５０が出力する文書フォーマットとして、ＰＤＦのみならず、アウトライン情報を付与することができる形式であればよい。
【０１２１】
前述の実施の形態では、ページ情報として、ページの画像情報を例示したが、ページ情報としては画像情報ではなくてもよい。ページ処理モジュール１１０、ページ処理モジュール６１０においてページ全体に文字認識処理を行い、ページ情報として文字認識結果と画像情報を渡すようにしてもよい。その場合、文書フォーマット処理モジュール１３０、文書フォーマット処理モジュール６５０が行う文書フォーマット処理において、文字認識結果を出力文書内に付与してもよい。
【０１２２】
前述の実施の形態においては、ページ又は段落のタイトル候補が空白となってしまう場合がある。このような場合に、アウトライン表示が空白になってしまうのを避けるため、ページ番号をページタイトルに与えてもよい。つまり、ページタイトル決定処理モジュール１２０、ページタイトル決定処理モジュール６２０は、ページ処理モジュール１１０、ページ処理モジュール６１０によって生成されたページ番号を用いてページのタイトルを決定するようにしてもよい。そして、段落タイトル決定処理モジュール６４０は、段落分割処理モジュール６３０によって生成された段落番号を用いて段落のタイトルを決定するようにしてもよい。なお、ページ又は段落のタイトル候補が空白となってしまう場合に限られず、タイトルの先頭又は後尾にページ番号又は段落番号を付加してもよい。
例えば、文書フォーマット処理モジュール１３０、文書フォーマット処理モジュール６５０が出力する文書フォーマット内のページタイトルとして、
＜Ｐａｇｅ＃＞ページタイトル
のような記述を与える。なお、この記述内の「＃」はページ番号を示す。また、「ページタイトル」は、ページタイトル決定処理モジュール１２０、ページタイトル決定処理モジュール６２０で決定したページタイトル（ページ番号）を示す。
また、例えば、段落タイトルとして、
＜Ｐａｒａ＃＞段落タイトル
のような記述を与える。なお、この記述内の「＃」は段落番号を示す。また、「段落タイトル」は、段落分割処理モジュール６３０で決定した段落タイトル（段落番号）を示す。
【０１２３】
前述の実施の形態では、アウトラインレベルを、１のみ、又は２までの例を示した。段落をさらに小段落、文、行等に分割して、アウトラインレベルを３としてもよい。又は、その小段落を文、行等に分割して、アウトラインレベルを４としてもよい。
アウトラインレベルを増加させたときの処理は、アウトラインレベルを１から２へ増加させたときの処理と同等である。つまり、段落分割処理モジュール６３０が出力する段落情報を受け取って、小段落、文、行等に分割して、そのタイトルを決定するモジュールを付加させればよい。
【０１２４】
段落分割処理モジュール６３０等の説明においては、主に横書き文書の場合の行の高さを用いることを示したが、縦書きの場合は列の幅を同様に用いる。
なお、数式を用いて説明したが、数式には、その数式と同等のものを含めてもよい。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
【０１２５】
なお、前述の各種の実施の形態を組み合わせてもよく（例えば、ある実施の形態内のモジュールを他の実施の形態内に適用する、入れ替えする等も含む）、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」等としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」等としてもよい。
【０１２６】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【０１２７】
１１０…ページ処理モジュール
１２０…ページタイトル決定処理モジュール
１３０…文書フォーマット処理モジュール
６１０…ページ処理モジュール
６２０…ページタイトル決定処理モジュール
６３０…段落分割処理モジュール
６４０…段落タイトル決定処理モジュール
６５０…文書フォーマット処理モジュール
１０１０…ライン認識処理モジュール
１０２０…ライン特徴算出モジュール
１０２１…行高列幅算出モジュール
１０２２…矩形間距離算出モジュール
１０３０…段落認識処理モジュール
１０４０…段落統合処理モジュール
１０５０…文字情報補正処理モジュール
２２１０…属性値処理モジュール
２２２０…階層処理モジュール
【図１】
2011065621.tif 000003
【図２】
2011065621.tif 000004
【図３】
2011065621.tif 000005
【図４】
2011065621.tif 000006
【図５】
2011065621.tif 000007
【図６】
2011065621.tif 000008
【図７】
2011065621.tif 000009
【図８】
2011065621.tif 000010
【図９】
2011065621.tif 000011
【図１０】
2011065621.tif 000012
【図１１】
2011065621.tif 000013
【図１２】
2011065621.tif 000014
【図１３】
2011065621.tif 000015
【図１４】
2011065621.tif 000016
【図１５】
2011065621.tif 000017
【図１６】
2011065621.tif 000018
【図１７】
2011065621.tif 000019
【図１８】
2011065621.tif 000020
【図１９】
2011065621.tif 000021
【図２０】
2011065621.tif 000022
【図２１】
2011065621.tif 000023
【図２２】
2011065621.tif 000024
【図２３】
2011065621.tif 000025
【図２４】
2011065621.tif 000026
【図２５】
2011065621.tif 000027
【図２６】
2011065621.tif 000028
【図２７】
2011065621.tif 000029
【図２８】
2011065621.tif 000030
【図２９】
2011065621.tif 000031
【図３０】
2011065621.tif 000032
【図３１】
2011065621.tif 000033
【図３２】
2011065621.tif 000034