(57)【特許請求の範囲】
【請求項１】
文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、
前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は左揃えであるか否かを判断する判断手段と、
前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、
前記判断手段によって左揃えであると判断された領域内の行の字下げを解析する解析手段と、
前記解析手段による解析結果に基づいて、前記判断手段によって左揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、
前記判断手段によって左揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって左揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記判断手段は、対象としている言語として行末が揃うことを規定していない言語である場合には、行情報が表す行の次の行内にある文字の文字情報に基づいて、該行情報を変更した後に、行情報が表す行を含む領域は左揃えであるか否かを判断する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判断手段は、前記取得手段によって取得された行情報に基づいて該行情報が表す行の中点の座標を算出し、前記領域内の行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて該領域内は左揃えであるか否かを判断する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１の分割手段は、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第１の分割手段は、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記解析手段は、領域の左端から該領域内の各行の左端までの距離に基づいて、該各行を字下げしていないものと字下げしているものとに分類することによって、行の字下げを解析する
ことを特徴とする請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第２の分割手段は、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び前記解析手段による解析結果である分類の境界と前記段落との境界とが重なっているか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
コンピュータを、
文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、
前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は左揃えであるか否かを判断する判断手段と、
前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、
前記判断手段によって左揃えであると判断された領域内の行の字下げを解析する解析手段と、
前記解析手段による解析結果に基づいて、前記判断手段によって左揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、
前記判断手段によって左揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって左揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段
として機能させるための情報処理プログラム。
【請求項９】
文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、
前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は上揃えであるか否かを判断する判断手段と、
前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、
前記判断手段によって上揃えであると判断された領域内の行の字下げを解析する解析手段と、
前記解析手段による解析結果に基づいて、前記判断手段によって上揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、
前記判断手段によって上揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって上揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段
を具備することを特徴とする情報処理装置。
【請求項１０】
前記判断手段は、対象としている言語として行末が揃うことを規定していない言語である場合には、行情報が表す行の次の行内にある文字の文字情報に基づいて、該行情報を変更した後に、行情報が表す行を含む領域は上揃えであるか否かを判断する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記判断手段は、前記取得手段によって取得された行情報に基づいて該行情報が表す行の中点の座標を算出し、前記領域内の行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて該領域内は上揃えであるか否かを判断する
ことを特徴とする請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記第１の分割手段は、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項９から１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記第１の分割手段は、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項９から１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記解析手段は、領域の上端から該領域内の各行の上端までの距離に基づいて、該各行を字下げしていないものと字下げしているものとに分類することによって、行の字下げを解析する
ことを特徴とする請求項９から１３のいずれか一項に記載の情報処理装置。
【請求項１５】
前記第２の分割手段は、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び前記解析手段による解析結果である分類の境界と前記段落との境界とが重なっているか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
コンピュータを、
文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、
前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は上揃えであるか否かを判断する判断手段と、
前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、
前記判断手段によって上揃えであると判断された領域内の行の字下げを解析する解析手段と、
前記解析手段による解析結果に基づいて、前記判断手段によって上揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、
前記判断手段によって上揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって上揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、文書について隣接文書間の関連だけでなく、広域的な関連も考慮に入れることで有用な文書分割を実現することを課題とし、文書分割装置に、電子化された文書から言語要素を、段落、文、行で切り出す言語要素切り出し手段と、任意の２つの言語要素同士の関連度を、例えば共通の文字、単語等で評価する言語要素間関連度評価手段と、前記言語要素間関連度評価手段を用い、全ての言語要素同士の関連度を求める言語要素間関連度行列取得手段と、前記言語要素間関連度行列取得手段により得られた言語要素間関連度行列を関連度の高い部分行列の並びに分割する行列分割手段とを備えることにより、文書を前記部分行列による分割に応じて分割することが開示されている。
【０００３】
特許文献２には、箇条書きラベルを含んだり、特定の記号等がなくても、文字列の長さや行頭の位置情報を使うことによって、ラベル付き箇条書きと本文の単文化についての文書構造を解析することが可能な文書構造解析方法及び装置及び文書構造解析プログラムを格納した記憶媒体を提供することを課題とし、解析対象の文書を入力し、文書の行頭の引用符の有無を調べ、該引用符がある場合には削除し、文書中の日時、場所、期限を含む特定の箇条書きラベルに使用される文字列を検出し、検出された箇条書きラベルの特徴に基づいて、任意の箇条書きラベルを検出し、箇条書きラベルが検出された行の行頭の位置と、その次以降の箇条書きラベルが検出されない行頭の位置を箇条書き範囲として特定し、箇条書き範囲と判定されない行に対し、その次以降の行を接続し、文単位に区切り、特定の箇条書き、任意の箇条書き及び文を示すタグを文書に付与して出力することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５７８６１８号公報
【特許文献２】特許第３７６７１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、文書内の領域を段落領域又は箇条書き領域に分割する場合にあって、箇条書きを示す文字が予め定められた文字とは異なる場合に、誤った分割を行ってしまうことを抑制するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は左揃えであるか否かを判断する判断手段と、前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、前記判断手段によって左揃えであると判断された領域内の行の字下げを解析する解析手段と、前記解析手段による解析結果に基づいて、前記判断手段によって左揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、前記判断手段によって左揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって左揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段を具備することを特徴とする情報処理装置である。
【０００７】
請求項２の発明は、前記判断手段は、対象としている言語として行末が揃うことを規定していない言語である場合には、行情報が表す行の次の行内にある文字の文字情報に基づいて、該行情報を変更した後に、行情報が表す行を含む領域は左揃えであるか否かを判断することを特徴とする請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記判断手段は、前記取得手段によって取得された行情報に基づいて該行情報が表す行の中点の座標を算出し、前記領域内の行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて該領域内は左揃えであるか否かを判断することを特徴とする請求項１又は２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記第１の分割手段は、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記第１の分割手段は、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１１】
請求項６の発明は、前記解析手段は、領域の左端から該領域内の各行の左端までの距離に基づいて、該各行を字下げしていないものと字下げしているものとに分類することによって、行の字下げを解析することを特徴とする請求項１から５のいずれか一項に記載の情報処理装置である。
【００１２】
請求項７の発明は、前記第２の分割手段は、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び前記解析手段による解析結果である分類の境界と前記段落との境界とが重なっているか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項６に記載の情報処理装置である。
【００１３】
請求項８の発明は、コンピュータを、文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は左揃えであるか否かを判断する判断手段と、前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、前記判断手段によって左揃えであると判断された領域内の行の字下げを解析する解析手段と、前記解析手段による解析結果に基づいて、前記判断手段によって左揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、前記判断手段によって左揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって左揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段として機能させるための情報処理プログラムである。
【００１４】
請求項９の発明は、文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は上揃えであるか否かを判断する判断手段と、前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、前記判断手段によって上揃えであると判断された領域内の行の字下げを解析する解析手段と、前記解析手段による解析結果に基づいて、前記判断手段によって上揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、前記判断手段によって上揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって上揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段を具備することを特徴とする情報処理装置である。
【００１５】
請求項１０の発明は、前記判断手段は、対象としている言語として行末が揃うことを規定していない言語である場合には、行情報が表す行の次の行内にある文字の文字情報に基づいて、該行情報を変更した後に、行情報が表す行を含む領域は上揃えであるか否かを判断することを特徴とする請求項９に記載の情報処理装置である。
【００１６】
請求項１１の発明は、前記判断手段は、前記取得手段によって取得された行情報に基づいて該行情報が表す行の中点の座標を算出し、前記領域内の行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて該領域内は上揃えであるか否かを判断することを特徴とする請求項９又は１０に記載の情報処理装置である。
【００１７】
請求項１２の発明は、前記第１の分割手段は、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項９から１１のいずれか一項に記載の情報処理装置である。
【００１８】
請求項１３の発明は、前記第１の分割手段は、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項９から１２のいずれか一項に記載の情報処理装置である。
【００１９】
請求項１４の発明は、前記解析手段は、領域の上端から該領域内の各行の上端までの距離に基づいて、該各行を字下げしていないものと字下げしているものとに分類することによって、行の字下げを解析することを特徴とする請求項９から１３のいずれか一項に記載の情報処理装置である。
【００２０】
請求項１５の発明は、前記第２の分割手段は、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び前記解析手段による解析結果である分類の境界と前記段落との境界とが重なっているか否かに基づいて、前記領域を段落領域及び箇条書き領域に分割することを特徴とする請求項１４に記載の情報処理装置である。
【００２１】
請求項１６の発明は、コンピュータを、文書内の領域に関する情報である領域情報と、該領域内にある行に関する情報である行情報と、該行内にある文字に関する情報である文字情報を取得する取得手段と、前記取得手段によって取得された行情報に基づいて、該行情報が表す行を含む領域は上揃えであるか否かを判断する判断手段と、前記取得手段によって取得された文字情報に基づいて、該文字情報が表す文字を含む領域を段落領域及び箇条書き領域に分割する第１の分割手段と、前記判断手段によって上揃えであると判断された領域内の行の字下げを解析する解析手段と、前記解析手段による解析結果に基づいて、前記判断手段によって上揃えであると判断された領域を段落領域及び箇条書き領域に分割する第２の分割手段と、前記判断手段によって上揃え以外であると判断された領域に対する前記第１の分割手段による分割結果と前記判断手段によって上揃えであると判断された領域に対する前記第２の分割手段による分割結果を出力する出力手段として機能させるための情報処理プログラムである。
【発明の効果】
【００２２】
請求項１の情報処理装置によれば、文書内の領域を段落領域又は箇条書き領域に分割する場合にあって、箇条書きを示す文字が予め定められた文字とは異なる場合に、誤った分割を行ってしまうことを抑制することができる。
【００２３】
請求項２の情報処理装置によれば、言語の特性に合わせて、領域が左揃えであるか否かを判断することができる。
【００２４】
請求項３の情報処理装置によれば、行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて、領域内は左揃えであるか否かを判断することができる。
【００２５】
請求項４の情報処理装置によれば、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００２６】
請求項５の情報処理装置によれば、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００２７】
請求項６の情報処理装置によれば、領域の左端から該領域内の各行の左端までの距離に基づいて、各行を字下げしていないものと字下げしているものとに分類することができる。
【００２８】
請求項７の情報処理装置によれば、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び分類の境界と段落との境界とが重なっているか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００２９】
請求項８の情報処理プログラムによれば、文書内の領域を段落領域又は箇条書き領域に分割する場合にあって、箇条書きを示す文字が予め定められた文字とは異なる場合に、誤った分割を行ってしまうことを抑制することができる。
【００３０】
請求項９の情報処理装置によれば、文書内の領域を段落領域又は箇条書き領域に分割する場合にあって、箇条書きを示す文字が予め定められた文字とは異なる場合に、誤った分割を行ってしまうことを抑制することができる。
【００３１】
請求項１０の情報処理装置によれば、言語の特性に合わせて、領域が上揃えであるか否かを判断することができる。
【００３２】
請求項１１の情報処理装置によれば、行の行頭の座標、中点の座標、行末の座標のいずれか１つ以上に基づいて、領域内は上揃えであるか否かを判断することができる。
【００３３】
請求項１２の情報処理装置によれば、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００３４】
請求項１３の情報処理装置によれば、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００３５】
請求項１４の情報処理装置によれば、領域の上端から該領域内の各行の上端までの距離に基づいて、各行を字下げしていないものと字下げしているものとに分類することができる。
【００３６】
請求項１５の情報処理装置によれば、行に含まれる文字列に予め定められた文字列が含まれているか否か、及び分類の境界と段落との境界とが重なっているか否かに基づいて、領域を段落領域又は箇条書き領域に分割することができる。
【００３７】
請求項１６の情報処理プログラムによれば、文書内の領域を段落領域又は箇条書き領域に分割する場合にあって、箇条書きを示す文字が予め定められた文字とは異なる場合に、誤った分割を行ってしまうことを抑制することができる。
【図面の簡単な説明】
【００３８】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態による処理例を示すフローチャートである。
【図３】レイアウト情報取得モジュールが取得する情報のデータ構造例を示す説明図である。
【図４】レイアウト情報取得モジュールが取得する情報の例を示す説明図である。
【図５】行揃え判断モジュールによる処理例を示す説明図である。
【図６】行揃え判断モジュールによる処理例を示す説明図である。
【図７】行揃え判断モジュールによる処理例を示す説明図である。
【図８】行揃え判断モジュールによる処理例を示すフローチャートである。
【図９】行揃え判断モジュールによる処理例を示す説明図である。
【図１０】行揃え判断モジュールによる処理例を示す説明図である。
【図１１】段落・箇条書き判断Ａモジュールによる処理例を示す説明図である。
【図１２】インデント解析モジュールによる処理例を示す説明図である。
【図１３】インデント解析モジュールによる処理例を示す説明図である。
【図１４】段落・箇条書き判断Ｂモジュールによる処理例を示す説明図である。
【図１５】段落・箇条書き判断Ｂモジュールによる処理例を示す説明図である。
【図１６】本実施の形態による処理例を示す説明図である。
【図１７】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００３９】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００４０】
本実施の形態である情報処理装置は、文書内の領域を段落領域又は箇条書き領域に分割するものであって、図１の例に示すように、レイアウト情報取得モジュール１１０、行揃え判断モジュール１２０、段落・箇条書き判断Ａモジュール１３０、処理切替モジュール１４０、インデント解析モジュール１５０、段落・箇条書き判断Ｂモジュール１６０、判断結果出力モジュール１７０を有している。
【００４１】
レイアウト情報取得モジュール１１０は、行揃え判断モジュール１２０と接続されている。レイアウト情報取得モジュール１１０は、文書内の領域に関する情報である領域情報と、その領域内にある行に関する情報である行情報と、その行内にある文字に関する情報である文字情報を取得する。
なお、文書とは、テキストデータを少なくとも含み、場合によっては画像、動画、音声等の電子データ、又はこれらの組み合わせであり、記憶、編集及び検索等の対象となり、システム又は利用者間で個別の単位として交換できるものをいい、これらに類似するものを含む。
文書内の領域とは、例えば、画像としての文書をスキャナ等で読み取って、その画像を解析することによって、領域に分割したものである。レイアウト情報取得モジュール１１０が受け取る情報として、その文書の画像を文字認識によって認識した結果であるデータ、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）（登録商標）等が該当する。なお、領域内には、段落領域又は箇条書き領域に分割可能な領域が含まれていることがある。また、文字情報には、誤った文字情報がある場合もある。例えば、文字認識による文字認識結果である場合は、誤認識もあり得る。特に、箇条書きの先頭文字を誤認識してしまうことがある。なお、文字には、記号等を含む。
領域情報、行情報、文字情報の具体例は、図３、４の例を用いて後述する。
領域情報、行情報、文字情報を取得するとは、例えば、スキャナ、カメラ等で画像を読み込んだ後（ファックス等で通信回線を介して外部機器から画像を受信した後であってもよい）に、構造認識、文字認識等が行われた結果を受け取ることであってもよい。また、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている領域情報、行情報、文字情報を読み出すこと等であってもよい。
【００４２】
行揃え判断モジュール１２０は、レイアウト情報取得モジュール１１０、段落・箇条書き判断Ａモジュール１３０と接続されている。行揃え判断モジュール１２０は、レイアウト情報取得モジュール１１０によって取得された行情報に基づいて、その行情報が表す行を含む領域は左揃えであるか否かを判断する。この処理の具体例は、図５、８〜１０の例を用いて後述する。
行揃え判断モジュール１２０は、レイアウト情報取得モジュール１１０によって取得された行情報に基づいて、その行情報が表す行の中点の座標を算出し、領域内の行の右端の座標、中点の座標、左端の座標のいずれか１つ以上に基づいて、その領域内は左揃えであるか否かを判断するようにしてもよい。
なお、行揃え判断モジュール１２０は、領域が、左揃え、中央揃え、右揃えのいずれかであるかを判断するようにしてもよい。
【００４３】
行揃え判断モジュール１２０は、対象としている言語として行末が揃うことを規定していない言語である場合には、行情報が表す行の次の行内にある文字の文字情報に基づいて、その行情報を変更した後に、行情報が表す行を含む領域は左揃えであるか否かを判断するようにしてもよい。この処理の具体例は、図６、７の例を用いて後述する。
なお、ここで「行末が揃うことを規定していない言語」とは、行末が揃わないことが一般的な言語のことである。そのような言語であっても、もちろんのことながら、偶然に行末が揃うこともあるが、複数行があった場合に、その行末が揃わないことが一般的であれば、「行末が揃うことを規定していない言語」に該当する。より具体的には、英語、韓国語等が該当する。一方、日本語、中国語等は、行末が揃うことを原則としている。なお、例外として、行の途中で段落が終了すること、行頭に句読点とならないようにぶら下がり等の処理がされている場合は、行末が揃わない場合があるが、複数行があった場合に、その行末が揃うことが一般的であれば、「行末が揃うことを規定していない言語」には該当しない。また、「行情報を変更」とは、行情報のうち、行の長さを表す情報（横書きの場合はレイアウト情報３００のｗｉｄｔｈ３４０、縦書きの場合はレイアウト情報３００のｈｅｉｇｈｔ３３８）を変更することである。
その言語であるか否かの判断は、文字情報内の文字に基づいて判断してもよい。例えば、文字コードによっては、言語に応じて使用される文字コードの範囲が異なっているので、使用されている文字コードがいずれの言語の文字コードの範囲に属するかを判断すればよい。また、予め言語が設定されている場合は、その設定にしたがってもよい。設定とは、言語に応じた値を記憶しているフラグ等が該当する。
【００４４】
段落・箇条書き判断Ａモジュール１３０は、行揃え判断モジュール１２０、処理切替モジュール１４０と接続されている。段落・箇条書き判断Ａモジュール１３０は、レイアウト情報取得モジュール１１０によって取得された文字情報に基づいて、その文字情報が表す文字を含む領域を段落領域又は箇条書き領域に分割する。この処理の具体例は、図１１の例を用いて後述する。
判断結果出力モジュール１７０が出力する段落・箇条書き判断Ｂモジュール１６０による分割結果は、この段落・箇条書き判断Ａモジュール１３０による分割結果に対して、段落・箇条書き判断Ｂモジュール１６０によって分割処理が行われたものである。
段落・箇条書き判断Ａモジュール１３０は、行頭又は行末にある１文字以上の文字列が、予め定められた文字列の条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割するようにしてもよい。なお、文字列とは、複数文字の場合の他に、１文字の場合も含む。
また、段落・箇条書き判断Ａモジュール１３０は、領域内の行の文字数と予め定められた値が予め定められた条件を満たすか否かに基づいて、領域を段落領域又は箇条書き領域に分割するようにしてもよい。
【００４５】
処理切替モジュール１４０は、段落・箇条書き判断Ａモジュール１３０、インデント解析モジュール１５０、判断結果出力モジュール１７０と接続されている。処理切替モジュール１４０は、行揃え判断モジュール１２０によって左揃えであると判断された領域の領域情報、行情報、文字情報をインデント解析モジュール１５０に渡す。そして、行揃え判断モジュール１２０によって左揃え以外であると判断された領域に対する段落・箇条書き判断Ａモジュール１３０による分割結果（その領域の領域情報、行情報、文字情報）を判断結果出力モジュール１７０に渡す。なお、文字が含まれている領域は、左揃え、左揃え以外のいずれか１つに判断される。
【００４６】
インデント解析モジュール１５０は、処理切替モジュール１４０、段落・箇条書き判断Ｂモジュール１６０と接続されている。インデント解析モジュール１５０は、行揃え判断モジュール１２０によって左揃えであると判断された領域内の行の字下げを解析する。この処理の具体例は、図１２、１３の例を用いて後述する。
インデント解析モジュール１５０は、領域の左端からその領域内の各行の左端までの距離に基づいて、その各行を字下げしていないものと字下げしているものとに分類することによって、行の字下げを解析するようにしてもよい。
【００４７】
段落・箇条書き判断Ｂモジュール１６０は、インデント解析モジュール１５０、判断結果出力モジュール１７０と接続されている。段落・箇条書き判断Ｂモジュール１６０は、インデント解析モジュール１５０による解析結果に基づいて、行揃え判断モジュール１２０によって左揃えであると判断された領域を段落領域又は箇条書き領域に分割する。この処理の具体例は、図１４、１５の例を用いて後述する。
段落・箇条書き判断Ｂモジュール１６０は、行に含まれる文字列に予め定められた文字列が含まれているか否か、及びインデント解析モジュール１５０による解析結果である分類の境界と段落との境界とが重なっているか否かに基づいて、領域を段落領域又は箇条書き領域に分割するようにしてもよい。
【００４８】
判断結果出力モジュール１７０は、処理切替モジュール１４０、段落・箇条書き判断Ｂモジュール１６０と接続されている。判断結果出力モジュール１７０は、行揃え判断モジュール１２０によって左揃え以外であると判断された領域に対する段落・箇条書き判断Ａモジュール１３０による分割結果と行揃え判断モジュール１２０によって左揃えであると判断された領域に対する段落・箇条書き判断Ｂモジュール１６０による分割結果を出力する。
段落・箇条書き判断Ａモジュール１３０による分割結果、段落・箇条書き判断Ｂモジュール１６０による分割結果のいずれかがない場合もある。したがって、判断結果出力モジュール１７０は、段落・箇条書き判断Ａモジュール１３０による分割結果、段落・箇条書き判断Ｂモジュール１６０による分割結果のいずれか、又は、段落・箇条書き判断Ａモジュール１３０による分割結果と段落・箇条書き判断Ｂモジュール１６０による分割結果の両方を出力することがある。
分割結果を出力するとは、例えば、文書データベース等の記憶装置へ文書に関する情報として書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置（例えば、翻訳処理等を行う情報処理装置）へ渡すこと等が含まれる。
【００４９】
なお、行揃え判断モジュール１２０と段落・箇条書き判断Ａモジュール１３０は、いずれが先に処理を行うようにしてもよいし、並列して処理を行うようにしてもよい。
【００５０】
図２は、本実施の形態による処理例を示すフローチャートである。
ステップＳ２０２では、レイアウト情報取得モジュール１１０が、レイアウト情報を取得する。レイアウト情報としては、前述の領域情報、行情報、文字情報がある。
図３は、レイアウト情報取得モジュール１１０が取得する情報のデータ構造例を示す説明図である。レイアウト情報３００は、領域情報３１０と行情報３３０を含む。ここで領域とは矩形領域である例を示している。なお、行情報３３０は、領域情報３１０内の領域情報が表す領域内にある行を示している情報を記憶している。領域情報３１０は、その領域の情報として、座標情報３１２、文章方向情報３２２を含む。座標情報３１２は、その領域の位置、大きさを記憶している。座標情報３１２は、ｘ３１４、ｙ３１６、ｈｅｉｇｈｔ３１８、ｗｉｄｔｈ３２０を含む。ｘ３１４は、その領域の左上座標のｘ座標を記憶している。ｙ３１６は、その領域の左のｙ座標を記憶している。ｈｅｉｇｈｔ３１８は、その領域の高さを記憶している。ｗｉｄｔｈ３２０は、その領域の幅を記憶している。なお、座標情報として、左上座標のｘ、ｙ座標、高さ、幅を挙げているが、矩形の位置を示す情報であれば、これ以外の情報、例えば、右上座標のｘ、ｙ座標、高さ、幅であってもよいし、左上座標のｘ、ｙ座標、右下座標のｘ、ｙ座標等であってもよい。以下、座標情報３３２、座標情報３４８内の情報についても同様である。文章方向情報３２２は、その領域内にある文章の方向（行方向）を記憶している。文章の方向とは、横書き、縦書き等が含まれる。また、横書きについては、右から左、左から右への方向を含めてもよい。具体的には、横書き、縦書き等を示す符号を記憶している。
【００５１】
行情報３３０は、その領域に含まれている行毎に座標情報３３２、文字サイズ３４２、文字情報３４４を含む。したがって、領域内に複数の行がある場合は、行情報３３０が複数ある。座標情報３３２は、その行の位置、大きさを記憶している。ここで行は矩形領域である例を示している。座標情報３３２は、ｘ３３４、ｙ３３６、ｈｅｉｇｈｔ３３８、ｗｉｄｔｈ３４０を含む。ｘ３３４は、その行の左のｘ座標を記憶している。ｙ３３６は、その行の左上座標のｙ座標を記憶している。ｈｅｉｇｈｔ３３８は、その行の高さを記憶している。ｗｉｄｔｈ３４０は、その行の幅を記憶している。文字サイズ３４２は、その行内に含まれている文字の大きさを記憶している。例えば、ポイントサイズ、ドットサイズ等がある。
文字情報３４４は、その行に含まれている文字に関する情報を文字毎に記憶している。したがって、行内に複数の文字がある場合は、文字情報３４４が複数ある。文字情報３４４は、文字コード３４６、座標情報３４８を含む。文字コード３４６は、その文字を示す文字コードと記憶している。座標情報３４８は、ｘ３５０、ｙ３５２、ｈｅｉｇｈｔ３５４、ｗｉｄｔｈ３５６を含む。ここで文字は矩形領域である例を示している。ｘ３５０は、その文字の左のｘ座標を記憶している。ｙ３５２は、その文字の左上座標のｙ座標を記憶している。ｈｅｉｇｈｔ３５４は、その文字の高さを記憶している。ｗｉｄｔｈ３５６は、その文字の幅を記憶している。
【００５２】
レイアウト情報取得モジュール１１０が取得する情報は、例えば、文書のレイアウト解析、文字認識、電子文書抽出の処理結果の２つ以上を統合したものである。例えば、領域情報はレイアウト解析の処理結果、行情報、文字情報は文字認識又は電子文書抽出の処理結果である。具体的には、文書をスキャンした画像を対象とした場合は、行情報、文字情報は文字認識結果であり、電子文書を対象とした場合は、文書内の文字コードを優先して取得し、文字コードがない部分には文字認識を行い、その認識結果を取得する。
【００５３】
図４は、レイアウト情報取得モジュール１１０が取得する情報の例を示す説明図である。この領域情報４１０内には、全体が３つの箇条書きであり、さらに最初の箇条書きには２つの箇条書き（行情報４２０ｂ、４２０ｃ）が含まれており、また、行情報４２０ｅに示すように、字下げが行われている行がある。
領域情報４１０内には、行情報４２０ａから行情報４２０ｆまでの６個の行情報が含まれている。そして、行情報４２０ａ内には、文字情報４３０ａから文字情報４３０ｒまでの１８個の文字情報が含まれている。なお、図４の例では、行情報４２０ｂ以降の行情報内の文字情報は省略しているが、各行には、それぞれ文字情報が含まれている。
【００５４】
ステップＳ２０４では、行揃え判断モジュール１２０が、判断材料となる数値統計量を算出する。ここでは、領域内の文字サイズ、行の中点座標の２つを算出する例を示す。少なくとも行の中点座標を算出し、これら以外の情報を算出するようにしてもよい。
領域内の文字サイズは、領域内の文字サイズを取得し、最頻値を算出し、領域内の代表文字サイズとする。最頻値の他に、平均値、中央値等であってもよい。この値が今後の補正や判断の処理の基準となり得る。なお、部分的に大きい文字が混在している等の対策として、最頻値を採用している。また、例えば、違う文字サイズの場合は、その文字を含む行を異なる行として分離する処理を行い、行間の文字サイズの差が予め定められた値よりも大きい場合は、領域を分離するようにして、違うサイズの文字は同じ領域には含まれないようにしてもよい。
【００５５】
文章方向情報に基づいて、中点座標の算出の方向を定める。具体的には、縦書きはＹ軸方向、横書きはＸ軸方向となる。ここで算出した値は、ステップＳ２０８での行揃え判断に利用する。図５は、行揃え判断モジュール１２０による処理例（中点座標の算出処理例）を示す説明図である。行情報４２０ａ〜行情報４２０ｆの中点は、それぞれ中点座標５１０ａ〜中点座標５１０ｆである。
【００５６】
ステップＳ２０６では、行揃え判断モジュール１２０が、言語特性に応じて情報を修正する。なお、ステップＳ２０６の処理は行わなくてもよい。例えば、行末が揃うことを規定している言語（日本語、中国語等）を対象としている場合は、ステップＳ２０６の処理は行わない。また、行末が揃うことを規定していない言語（英語、韓国語等）であるか否かを判断するようにしてもよい。この判断は、前述のように、文字コード等を用いて判断するようにしてもよい。
行末が揃うことを規定していない言語（英語、韓国語等）の場合、行末が揃わないケースがあるので、行末が揃うことを規定している言語（日本語、中国語等）と処理が同じになるように補正する。図６、７は、文章方向情報が横書きの場合の行揃え判断モジュール１２０による処理例を示す説明図である。なお、文章方向情報が縦書きである場合は、９０度右回転させた同じ処理が実行される。
【００５７】
まず、対象としている行の次の行の開始の単語幅を文字情報より取得する。対象としている行の幅に、その取得した単語幅と調整幅の値を行情報内の幅情報に加え、領域幅を超えるか否かを判断する。この処理で行情報が領域幅を超えていると判断した場合、行情報を領域情報の端まで拡張する。
具体的には、次の行の開始の単語幅とは、対象としている行の次の行（横書きの場合は対象としている行の直下の行、縦書きの場合は対象としている行の直左の行）内であって、空白で区切られている単語までの幅を対象としている行に加える。さらに、予め定められた値である調整幅の値を加える。この状態で、対象としている行が領域内に収まるか否かを判断する。図６の例をもって示すと、行情報６２０ａの次の行情報６２０ｂ内の開始単語幅６３０ｂ（次行開始単語幅６４０ａ）と調整幅６５０ａを、行情報６２０ａの右端（ｘ座標）に加える。この結果が領域情報６１０の右端をはみ出しているか否かを判断する。図６の例では、領域情報６１０内の行情報６２０ａ、行情報６２０ｂ、行情報６２０ｃは、領域情報６１０の右端をはみ出していると判断される。行情報６２０ｄは、その右端が領域情報６１０の右端と一致しているため、このような処理は不要である。なお、調整幅は、その領域内の代表文字サイズに基づいて定めてもよい。空白の大きさを調整して文字が配置されているケースもあるため、このような調整幅を設けている。例えば、調整幅として、代表文字サイズの３文字分の長さとしてもよい。
そして、対象としている行がその行が含まれている領域内に収まっていないと判断した場合は、その行の右端を領域の右端と一致するように、その行を示している行情報の幅を修正する。図７の例をもって示すと、領域情報７１０内の行情報７２０ａ、行情報７２０ｂ、行情報７２０ｃの右端を、領域情報７１０の右端に延長している。
【００５８】
ステップＳ２０８では、行揃え判断モジュール１２０が、行揃えを判断（左揃え、中央揃え、右揃えの判断）する。領域内の行頭・行末・中点の座標の並びにより判断する。文章方向情報が横書きの場合は、行頭の座標は行の左端のｘ座標、行末の座標は行の右端のｘ座標、中点の座標はステップＳ２０４で算出した中点の座標ｘ座標である。図８、９、１０の例は横書きの場合の説明であり、文章方向情報が縦書きの場合は、９０度右回転させて同等の処理を行えばよい。また、領域内に１行だけである場合は、左揃えと判断する。
【００５９】
図８は、行揃え判断モジュール１２０によるステップＳ２０８の処理例を示すフローチャートである。
ステップＳ８０２では、行揃え判断モジュール１２０が、「右座標（行の右端のｘ座標）が揃っている」かつ「左座標（行の左端のｘ座標）が揃っていない」か否かを判断し、その条件を満たしている場合はステップＳ８０４へ進み、それ以外の場合はステップＳステップＳ８０６へ進む。ここで「揃っているか否かの判断」は、領域座標との差を算出し、その差の分散が予め定められた値よりも小さければ、揃っていると判断する。例えば、予め定められた値として、代表文字サイズの２．５文字分としてもよい。以下のステップＳ８０６においても同様である。なお、左座標が揃っていないことを条件とするのは、文章が長方形矩形内にびっしりと埋まっているケースは「左揃え」と判断したいためである。
ステップＳ８０４では、行揃え判断モジュール１２０が、その領域は右揃えであると判断する。
図９の例をもって示すと、左座標と領域座標の左端座標との差である左側間隔情報９４０ａ、左側間隔情報９４０ｂ、左側間隔情報９４０ｄの分散が予め定められた値よりも大きいので、「左座標が揃っていない」と判断され、各行の右座標は領域右側情報９３０ｃと一致しているので、「右座標が揃っている」と判断されることになり、ステップＳ８０４で、領域情報９１０は右揃えであると判断する。
【００６０】
ステップＳ８０６では、行揃え判断モジュール１２０が、「中点座標が揃っている」かつ「左座標が揃っていない」か否かを判断し、その通りである場合はステップＳ８０８へ進み、それ以外の場合はステップＳステップＳ８１０へ進む。
ステップＳ８０８では、行揃え判断モジュール１２０が、その領域は中央揃えであると判断する。
図１０の例をもって示すと、左座標と領域座標の左端座標との差である左側間隔情報１０４０ａ、左側間隔情報１０４０ｂ、左側間隔情報１０４０ｄの分散が予め定められた値よりも大きいので、「左座標が揃っていない」と判断され、各行の中点座標は領域右側情報１０３０ｃと一致しているので、「中点座標が揃っている」と判断されることになり、ステップＳ８０８で、領域情報１０１０は中央揃えであると判断する。
ステップＳ８１０では、行揃え判断モジュール１２０が、その領域は左揃えであると判断する。なお、左揃えに関しては、文章中で段落がインデントされていたりすることもあるため、左座標が揃っている等の条件で判断はしていない。
なお、ステップＳ８０２、ステップＳ８０６の順番に判断しているが、逆であってもよいし、これらを組み合わせた条件として、１回の判断で区別するようにしてもよい。
【００６１】
ステップＳ２１０では、段落・箇条書き判断Ａモジュール１３０が、文字列により箇条書き記号を検出する。
領域情報内の、行の先頭から予め定められた数の文字である文字列と、行末から予め定められた数の文字である文字列を比較することで、箇条書き記号を検出する。
例えば、次の条件に当てはまった場合に、箇条書き記号だと認識する。なお、同じ箇条書き記号でインデントされているケースでも検知可能なようにするため、座標情報を利用していない。ただし、座標情報を利用してもよい。
【００６２】
（１）予め定められた箇条書き記号が文頭にある場合
先頭の文字列が予め定められた文字列か否かで、箇条書き記号か否かを判断する。ただし、領域内に同じ記号で始まる行が複数あった場合に限り、箇条書き記号と判断する。文字認識の誤認識による分離ミスを減らすためである。
例えば、予め定められた文字列として、正規表現で表して、“[・\-−−‐―+*○☆※◎●□■◇◆△▲▼.？?]”等が該当する。
【００６３】
（２）括弧付き箇条書き記号が文頭にある場合
先頭の文字列が括弧で囲まれているかを検出し、領域内に同じ括弧で囲まれた文字列で開始された行が複数あった場合に箇条書き記号と判断する。
例えば、予め定められた文字列として、正規表現で表して、“[(（\[〔<＜［]”等、終了括弧として、正規表現で表して、“[)）\]〕>＞］]”等が該当する。なお、この他に明細書に用いることができない括弧記号（「半角かぎかっこ」、段落番号の記載に用いられている「すみつきパーレン（ブラケット等ともいわれる）」）等を含んでいてもよい。
また、判断対象の文字数を予め定めた数に設定してもよい。例えば、先頭から４文字以内の範囲としてもよい。
【００６４】
（３）英数字が文頭にある、かつ条件に当てはまる場合
条件（３−１）  「最初の文字が英数字、漢数字、ローマ字」かつ「２文字目が“．．−−”のいずれか」であること。さらに、前者の条件を満たす行が複数存在し、最初の文字の文字コードが連続している場合に、箇条書きと判断する。例えば、「Ａ」「Ｂ」等、連続していれば検知されることになる。
条件（３−２）  「最初の文字より数字が連続している行」であること。そして、それを満たす行が複数存在し、数字を数値に置き換えて、その数値順に並べた際、行として隣合う数値の差が０又は１になっている場合に、箇条書きと判断する。なお、例えば、「１２−１」、「１２−２」等、後半の文字だけ変わることもあるので、差（最初の数字である１２と１２の差）が０である場合もある。
【００６５】
ステップＳ２１２では、段落・箇条書き判断Ａモジュール１３０が、文末記号により段落境界を検出する。
前の行の文章が、句点やピリオド等で終了している場合、段落境界がその間にあると判断する。検知する文末列は予め定められている。
例えば、予め定められた文字列として、正規表現で表して、“.．。?!？！”としてもよい。
なお、次の行で文頭字下げされていることを条件に加えてもよい。たまたま行の端で句点が配置された文章は、段落の境界ではない箇所で段落の区切りがあると判断されてしまうことを防ぐためである。
【００６６】
ステップＳ２１４では、段落・箇条書き判断Ａモジュール１３０が、文字数により段落境界を検出する。
領域内の行の平均文字数が予め定められた値より小さい場合、単語が羅列されていると判断し、全ての行を単独行として分離する（各行の境界を段落境界とする）。なお、英語については、空白で区切られた単語数を対象としている。例えば、予め定められた値として、日本語、中国語、韓国語の場合は、文字数平均を８文字として、英語の場合は３単語としてもよい。ただし、条件として、１行全てが数字列を“＋「.’,\$%-」”（正規表現）で構成されている場合、それは文字数に関係なく分離するようにしてもよい。罫線のない表等に対応するためである。
ステップＳ２１４では、表のセル内にある文字であるか否かを判断し、表のセル内にある文字である場合は、その文字に対してはこの処理は行わないようにしてもよい。セル内の文字が不規則に並ぶことに対応するためである。
【００６７】
ステップＳ２１６では、段落・箇条書き判断Ａモジュール１３０が、文頭、文末にある記号により、段落境界を検出する。
括弧で囲まれた文章の羅列に対しての対策である。行の先頭の文字と行末の文字が対応している括弧である場合、その行は単独行と判断し、分割する（その行の境界を段落境界とする）。
例えば、予め定められた括弧の文字として、[],「」,（）,「」,“”,’’があり、これらのいずれかで囲まれた行が対象をなる。
なお、ステップＳ２１０からステップＳ２１６までの処理は、いずれかの１つ以上のステップの処理であってもよい。また、ステップＳ２１０からステップＳ２１６までの処理は、この順番に行われなくてもよい。例えば、逆順であってもよいし、並列して処理が行われるようにしてもよい。また、これらの処理の代わりに、又は、これらの処理とともに先行技術文献に挙げた技術を用いるようにしてもよい。
【００６８】
ステップＳ２１８では、段落・箇条書き判断Ａモジュール１３０が、箇条書き記号があると判断した行と、前行の境で分離し、段落情報とする。ステップＳ２１０からステップＳ２１６までの処理で検出した段落境界を境として、領域情報を分離し、段落情報とする。
ステップＳ２１０からステップＳ２１６までの処理で検知した情報を統合し、文章を段落情報毎に分離することを行う。箇条書き記号が検出された行は、その前に文章の区切れがあると判断して分離する。段落境界はそのままその情報を境界として利用して分離する。
この時点で、領域情報は、図１１の例に示すように点線で囲われた段落情報１１２０ａ〜１１２０ｅのように、「段落領域」毎にまとめられたことになる。
【００６９】
ステップＳ２２０では、処理切替モジュール１４０が、左揃え（縦書きの場合は上揃え）か否かを判断し、左揃え（上揃え）の場合はステップＳ２２２へ進み、それ以外の場合はＳ２２８へ進む。
ステップＳ２０８で処理対象の領域情報が左揃えと判断されている場合、領域情報内の文章がインデントされているかの判断処理（ステップＳ２２２からステップＳ２２６までの処理）を加える。中央揃え、右揃えの場合は、ステップＳ２２８へ進むことになる。縦書きの場合、上揃えであればステップＳ２２２へ進み、それ以外であればステップＳ２２８へ進む。
【００７０】
ステップＳ２２２では、インデント解析モジュール１５０が、領域・行の行頭座標を利用してインデントを検出し、インデント候補を選出する。
領域の左端の座標から、その領域に含まれている行の左端の座標までの距離で、行をグループ分けする。
図１２は、インデント解析モジュール１５０による処理例を示す説明図である。領域情報１１００内に段落情報１１２０ａ〜１１２０ｅまでの５つの段落が含まれている。また、段落情報１１２０ｄ内には２つの行が含まれている。他の段落には１つの行だけが含まれている。
領域情報１１００の左端から段落情報１１２０ａ内の行の左端までの距離は０であり（領域左座標Ａ：１２１０、つまり、重なっている）、同様に領域情報１１００の左端から段落情報１１２０ｄ内の第１行、段落情報１１２０ｅ内の行の左端までの距離は０であり、グループＡとする。領域情報１１００の左端から段落情報１１２０ｂ内の行の左端までの距離と、領域情報１１００の左端から段落情報１１２０ｃ内の行の左端までの距離と、領域情報１１００の左端から段落情報１１２０ｄ内の第２行の左端までの距離（領域インデント座標Ｂ：１２２０）は等しいので、グループＢとする。なお、ここで距離が等しいとは、比較する距離の差が予め定められた値以内であることをいう。例えば、その領域における代表文字サイズの０．７文字分以内としてもよい。
【００７１】
そして、順番に行のグループを検査して、違うグループに変わった境界で、インデント候補を選出する。つまり、同じグループに分類された行が続いている場合、その複数の行が同じインデント候補となる。
具体的に図１２の例では、段落情報１１２０ａ内の行と段落情報１１２０ｂ内の行の境界、段落情報１１２０ｃ内の行と段落情報１１２０ｄ内の第１行の境界、段落情報１１２０ｄ内の第１行と段落情報１１２０ｄ内の第２行の境界、段落情報１１２０ｄ内の第２行と段落情報１１２０ｅ内の行との境界が該当する。したがって、領域情報１１００内には、５つのインデント候補があることになる。具体的には、図１３の例に示すように、段落情報１１２０ａとインデント候補情報１３１０ａは重なり、インデント候補情報１３１０ｂ内には段落情報１１２０ｂと段落情報１１２０ｃが含まれ、逆に段落情報１１２０ｄにはインデント候補情報１３１０ｃとインデント候補情報１３１０ｄが含まれ、段落情報１１２０ｅとインデント候補情報１３１０ｅは重なっている。なお、インデント候補はインデントではないものも含まれている可能性がある。次のステップでインデント候補からインデントであるものを選定する。
【００７２】
なお、縦書きの場合は上端の座標を利用してインデントを検出すればよい。
また、領域の左端から行の左端までの距離が閾値以上である場合に、インデント候補の行を選出するようにしてもよい。インデント候補の行と判断する閾値は予め定められた値である。例えば、領域の左端から行の左端までの距離がその領域における代表文字サイズの２．５文字分以上である行を、インデント候補の行とする。図１２の例では、Ｂグループは領域の左端から行の左端までの距離（領域インデント座標Ｂ：１２２０）が２．５文字分以上であるので、段落情報１１２０ｂ内の行、段落情報１１２０ｃ内の行、段落情報１１２０ｄ内の第２行が、インデント候補の行となる。
【００７３】
ステップＳ２２４では、段落・箇条書き判断Ｂモジュール１６０が、箇条書き情報でインデント候補を絞り込む。
前述のステップＳ２２２でグループ分けされたインデント候補の境界について、以下の条件を２つとも満たす場合、その境界はないものとして、後ろのインデント候補のグループを前のインデント候補のグループに含める。
（条件１）境界の前の行に予め定められた箇条書き記号（ステップＳ２１０等で用いた箇条書き記号）が含まれている。
（条件２）段落の境界と、インデント候補の境界が重なっていない。
具体的に説明する。図１４（ａ）の例に示すように、領域情報１１００内には、５つの段落（段落情報１１２０ａ〜１１２０ｅ）、５つのインデント候補（インデント候補情報１３１０ａ〜１３１０ｅ）がある。対象としているインデント候補の境界は、インデント候補情報１３１０ａとインデント候補情報１３１０ｂの境界、インデント候補情報１３１０ｂとインデント候補情報１３１０ｃの境界、インデント候補情報１３１０ｃとインデント候補情報１３１０ｄの境界、インデント候補情報１３１０ｄとインデント候補情報１３１０ｅの境界である。条件１及び条件２を満たしているのは、インデント候補情報１３１０ｃとインデント候補情報１３１０ｄの境界である。つまり、インデント候補情報１３１０ｃには、「●」という予め定められた箇条書き記号が含まれている。そして、インデント候補情報１３１０ｃとインデント候補情報１３１０ｄの境界と同じ位置にある段落の境界はない。段落情報１１２０ｄには、インデント候補情報１３１０ｃとインデント候補情報１３１０ｄが含まれているからである。
したがって、インデント候補情報１３１０ｄはＢグループであるが、これをインデント候補情報１３１０ｃのグループであるＡグループに変更し、インデント候補情報１３１０ｃとインデント候補情報１３１０ｄで１つのインデント候補とする。
【００７４】
そして、ステップＳ２２２で行ったインデント候補分けを行う。つまり、順番に行のグループを検査して、同じグループに分類された行が続いている場合、その複数の行を同じインデント候補とする。具体的には、インデント候補情報１３１０ｄがＡグループに変更されたので、インデント候補情報１３１０ｃ、インデント候補情報１３１０ｄ、インデント候補情報１３１０ｅは、同じＡグループであり、続いているので、これをＡグループのインデント候補とする。これを領域情報１１００内の行に対して適用した後の状態のインデント候補が、インデント（箇条書き領域）となる。
図１４（ａ）の例は、図１４（ｂ）の例のようになる。つまり、領域情報１１００内の第１行だけのインデント情報１４１０ａ、領域情報１１００内の第２行、第３行からなるインデント情報１４１０ｂ、領域情報１１００内の第４行、第５行、第６行からなるインデント情報１４１０ｃの３つのインデント（箇条書き領域）となる。なお、インデント情報１４１０ａはＡグループであり、インデント情報１４１０ｂはＢグループであり、インデント情報１４１０ｃはＡグループである。
【００７５】
また、領域内の第１行と第２行との間に、インデント候補の境界があり、第１行が第２行より下がっている場合（いわゆる逆方向のインデント状態であり、具体的には、横書きの場合は第１行が第２行より右側にあり、縦書きの場合は第１行が第２行より下側にある状態）、第１行のグループを第２行のグループに変更させるようにしてもよい。これは、段落の先頭の字下げ幅が大きい場合の対策であり、第１行はインデントではないと判断すべきだからである。
【００７６】
ステップＳ２２６では、段落・箇条書き判断Ｂモジュール１６０が、段落情報を行末情報を利用して分割する。
段落毎に、連続している行の行末座標を比較する。後の行の行末が前の行の行末から予め定められた値より下がっている場合（横書きの場合、後の行の行末が前の行の行末よりも右側にある状態、縦書きの場合、後の行の行末が前の行の行末よりも下側にある状態）、段落の境界が比較した行の間にあるとし、段落情報を分割する。予め定められた値として、例えば、３文字以上等がある。なお、英語等の場合は行末の揃わないケースがあるが、ステップＳ２０６での修正が行われているので、このステップＳ２２６の処理をそのまま行ってもよい。
具体的に説明する。図１５（ａ）の例に示すように、行情報１５２０ｃと行情報１５２０ｄの行末座標を比較することによって、行情報１５２０ｃの行末（行末情報１５４０）よりも行情報１５２０ｄの行末は予め定められた値よりも右側にあることが判明する。そこで、行情報１５２０ｃと行情報１５２０ｄの間（行境界情報１５３０）で、段落情報１５１５を分割する。図１５（ｂ）の例のように、領域情報１５１０内の段落情報１５５０ａと段落情報１５５０ｂの２つの段落があることになる。
【００７７】
また、領域内の行数が予め定められた値よりも少ない場合、ステップＳ２２６の処理を行わないようにしてもよい。予め定められた値として、例えば、３行以内等がある。少ない行で構成されている領域は、タイトルである可能性が高い。タイトルの場合は、行末が揃っていないことが一般的であるため、このステップＳ２２６の処理を除外している。
【００７８】
ステップＳ２２８では、判断結果出力モジュール１７０が、分割結果を出力する。左揃えの領域についてはステップＳ２２２からステップＳ２２６までの処理による結果であり、左揃え以外の領域についてはステップＳ２１８の処理結果である。
【００７９】
前述の例では、レイアウト情報取得モジュール１１０が取得するレイアウト情報として、誤った文字は含まれていない場合を主に説明した。しかし、レイアウト情報取得モジュール１１０が取得するレイアウト情報として、文字認識結果を取得する場合がある。例えば、図１６（ａ）に示す対象画像１６１０に対して構造認識、文字認識を行った結果が、図１６（ｂ）に示す認識結果１６２０となる。この認識結果１６２０に関する情報がステップＳ２０２のレイアウト情報として取得される。文字認識技術では、記号類は誤認識する場合があり、箇条書き記号や、箇条書きを表す文字列が正確に取得できないケースがある。段落・箇条書き判断Ａモジュール１３０による処理だけでは、文字コードを参照するだけであるため、誤認識があると文章の切れ目を探すのが困難となる。本実施の形態では、インデント解析モジュール１５０、段落・箇条書き判断Ｂモジュール１６０による処理として、文字列の情報と行の位置情報を組み合わせて解析を行うようにしている。
【００８０】
図１７を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１７に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１７１７と、プリンタなどのデータ出力部１７１８を備えたハードウェア構成例を示している。
【００８１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７０１は、前述の実施の形態において説明した各種のモジュール、すなわち、レイアウト情報取得モジュール１１０、行揃え判断モジュール１２０、段落・箇条書き判断Ａモジュール１３０、処理切替モジュール１４０、インデント解析モジュール１５０、段落・箇条書き判断Ｂモジュール１６０、判断結果出力モジュール１７０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００８２】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１７０２は、ＣＰＵ１７０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１７０３は、ＣＰＵ１７０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１７０４により相互に接続されている。
【００８３】
ホストバス１７０４は、ブリッジ１７０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１７０６に接続されている。
【００８４】
キーボード１７０８、マウス等のポインティングデバイス１７０９は、操作者により操作される入力デバイスである。ディスプレイ１７１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００８５】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１７１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１７０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、レイアウト情報取得モジュール１１０が受け付けたレイアウト情報、段落・箇条書き判断Ａモジュール１３０による処理結果などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００８６】
ドライブ１７１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１７１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１７０７、外部バス１７０６、ブリッジ１７０５、及びホストバス１７０４を介して接続されているＲＡＭ１７０３に供給する。リムーバブル記録媒体１７１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００８７】
接続ポート１７１４は、外部接続機器１７１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１７１４は、インタフェース１７０７、及び外部バス１７０６、ブリッジ１７０５、ホストバス１７０４等を介してＣＰＵ１７０１等に接続されている。通信部１７１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１７１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１７１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００８８】
なお、図１７に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１７に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１７に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００８９】
前述の実施の形態においては、主に横書きの場合の例を用いて説明したが、縦書きの場合は、９０度回転した座標系として適用すればよい。その場合、横書きにおいて左揃えは縦書きにおいて上揃えとなり、横書きにおいて右揃えは縦書きにおいて下揃えとなり、また、行の中点とは、横書きにおいて行の横幅における中点であり、縦書きにおいて行の高さにおける中点である。
また、横書きであるか否か（又は縦書きであるか否か）をレイアウト情報取得モジュール１１０が、レイアウト情報に基づいて判断し、その後の処理は、その判断結果にしたがった処理（横書きの場合は横書き用の処理、縦書きの場合は縦書き用の処理）を行ってもよい。なお、レイアウト情報に基づいて、横書きであるか否かを判断するとは、レイアウト情報内に横書きであるか否かを示す情報がある場合は、その情報に従った判断を行う。また、そのような情報がない場合は、レイアウト情報内の行情報内の行の高さ（ｈｅｉｇｈｔ）と幅（ｗｉｄｔｈ）の比率で判断すればよい。例えば、その比率が予め定められた比率よりも横長であることを示していれば横書きであると判断し、その比率が予め定められた比率よりも縦長であることを示していれば縦書きであると判断すればよい。
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００９０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００９１】
１１０…レイアウト情報取得モジュール
１２０…行揃え判断モジュール
１３０…段落・箇条書き判断Ａモジュール
１４０…処理切替モジュール
１５０…インデント解析モジュール
１６０…段落・箇条書き判断Ｂモジュール
１７０…判断結果出力モジュール
【図１】
0005862260.tif 000002
【図２】
0005862260.tif 000003
【図３】
0005862260.tif 000004
【図４】
0005862260.tif 000005
【図５】
0005862260.tif 000006
【図６】
0005862260.tif 000007
【図７】
0005862260.tif 000008
【図８】
0005862260.tif 000009
【図９】
0005862260.tif 000010
【図１０】
0005862260.tif 000011
【図１１】
0005862260.tif 000012
【図１２】
0005862260.tif 000013
【図１３】
0005862260.tif 000014
【図１４】
0005862260.tif 000015
【図１５】
0005862260.tif 000016
【図１６】
0005862260.tif 000017
【図１７】
0005862260.tif 000018