(57)【特許請求の範囲】
【請求項１】
文書データに用途別の論理構造を付与して、用途別構造化文書データを生成する文書構造化処理装置であって、
前記文書データに含まれる見出し文字列を用いて階層化構造を生成するための汎用論理構造を記憶する汎用構造記憶部と、
入力文書データに含まれている見出し文字列に従って、前記入力文書データの階層化構造を表す候補となる構造化パターンを複数生成する構造生成部と、
前記複数の構造化パターンから、前記汎用論理構造の付与に用いる構造化パターンを判断する判断部と、
前記判断部により判断された前記構造化パターンに従って、前記入力文書データの各行に含まれている文字列に対して、前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する中間生成部と、
前記汎用論理構造と、用途別構造化文書データ毎の利用用途に適した論理構造を示す用途別論理構造と、を対応付けて記憶する用途別構造定義記憶部と、
前記用途別構造定義記憶部に基づいて、前記中間構造化文書データに付与された前記汎用論理構造を、前記用途別論理構造に変換し、前記用途別構造化文書データを生成する用途別文書生成部と、
を備えたことを特徴とする文書構造化処理装置。
【請求項２】
前記入力文書データを行単位で抽出する行単位抽出部と、
抽出された単位毎に、見出し文字列を含むものであると供に文書データを構造化する特徴を抽出する特徴抽出部と、
前記特徴に基づいて、前記構造生成部により生成された複数の前記構造化パターン毎に、各構造化パターンに従って生成された中間構造化文書データを構成する特徴間の関連の度合いを示す関連度を算出する算出部と、をさらに備え、
前記判断部は、前記各関連度に基づいて、前記汎用論理構造の付与に用いる構造化パターンを判断すること、
を特徴とする請求項１に記載の文書構造化処理装置。
【請求項３】
文書データを構造化する特徴を示した属性情報を記憶する属性情報記憶部をさらに備え、
前記算出部は、前記属性情報記憶部が記憶する前記属性情報、及び前記特徴抽出部により抽出された前記特徴に基づいて、前記関連度を算出し、
前記中間生成部は、さらに前記属性情報記憶部に記憶された前記属性情報を用いて、前記入力文書データから、前記汎用論理構造が付与された中間構造化文書データを生成すること、
を特徴とする請求項２に記載の文書構造化処理装置。
【請求項４】
前記属性情報記憶部は、今までに入力された前記入力文書データの各行から抽出した特徴を示した前記属性情報を記憶すること、を特徴とする請求項３に記載の文書構造化処理装置。
【請求項５】
前記中間生成部が用いる前記属性情報に対して修正を行う修正部をさらに備え、
前記中間生成部は、前記修正部により修正された前記属性情報を用いて前記入力文書データから、前記中間構造化文書データを生成すること、
を特徴とする請求項３又は４に記載の文書構造化処理装置。
【請求項６】
前記修正部は、前記属性情報に対する修正として、見出し文字列の追加、削除を行うことを特徴とする請求項５に記載の文書構造化処理装置。
【請求項７】
前記属性情報記憶部は、前記属性情報として、見出し文字列の他、箇条書きを示す記号を記憶し、
前記算出部は、前記属性情報記憶部に記憶される見出し文字列及び箇条書きを示す記号のいずれか一つ以上による階層構造を構成した前記構造化パターンに基づいて、前記関連度を算出すること、
を特徴とする請求項３乃至６のいずれか一つに記載の文書構造化処理装置。
【請求項８】
前記算出部は、前記属性情報が前記入力文書データの章又は節を示す見出し文字列の場合に、前記入力文書データの当該章又は節を組み合わせた入れ子構造による複数の階層構造に対して、階層毎及び上位階層から順に前記関連度を算出し、
前記判断部は、前記算出部により算出された前記関連度により当該章又は節の組み合わせが適切か否か判断を行い、当該組み合わせが不適切と判断した場合に、判断した組み合わせまで構成が一致する全ての論理構造を、前記入力文書データに付与する汎用論理構造として不適当と判断し、
前記中間生成部は、前記判断部により不適切と判断された、前記章又は節の組み合わせ以外の組み合わせによる汎用論理構造が付与された前記中間構造化文書データを生成すること、
を特徴とする請求項２乃至７のいずれか一つに記載の文書構造化処理装置。
【請求項９】
前記算出部は、前記入力文書データの階層ごとに、当該階層を示す前記章又は節を示す前記見出し文字列により区切られた文書の領域を生成し、当該文書の領域に含まれる行の数、及び見出し文字列のうちいずれか一つ以上に基づいて、前記関連度を算出することを特徴とする請求項２乃至８のいずれか一つに記載の文書構造化処理装置。
【請求項１０】
前記中間生成部は、前記汎用論理構造として定義したＤＴＤに基づき、論理構造として、見出し文字列、本文、パラグラフ、箇条書き領域、章節構造で構成される中間構造化文書データを生成することを特徴とする請求項２乃至９のいずれか一つに記載の文書構造化処理装置。
【請求項１１】
文書データに用途別の論理構造を付与して、用途別構造化文書データを生成する文書構造化処理装置で実行される文書構造化処理方法であって、
前記文書構造化処理装置は、前記文書データに含まれる見出し文字列を用いて階層化構造を生成するための汎用論理構造を記憶する汎用構造記憶部と、
前記汎用論理構造と、用途別構造化文書データ毎の利用用途に適した論理構造を示す用途別論理構造と、を対応付けて記憶する用途別構造定義記憶部と、を備え、
生成手段が、入力文書データの行毎に、当該行に含まれる見出し文字列に対して、前記汎用構造記憶部が記憶する前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する生成ステップと、
構造生成手段が、入力文書データに含まれている見出し文字列に従って、入力文書データの構造を表す候補となる構造化パターンを複数生成する構造生成ステップと、
判断手段が、前記複数の構造化パターンから、前記汎用論理構造の付与に用いる構造化パターンを判断する判断ステップと、
中間生成手段が、前記判断ステップにより判断された前記構造化パターンに従って、前記入力文書データの各行に含まれている文字列に対して、前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する中間生成ステップと、
用途別文書生成手段が、前記用途別構造定義記憶部に基づいて、前記中間構造化文書データに付与された前記汎用論理構造論理構造を、前記用途別論理構造に変換し、前記用途別構造化文書データを生成する用途別文書生成ステップと、
を有することを特徴とする文書構造化処理方法。
【請求項１２】
前記入力文書データを行単位で抽出する行単位抽出ステップと、
抽出された単位毎に、見出し文字列を含むものであると供に文書データを構造化する特徴を抽出する特徴抽出ステップと、
前記特徴に基づいて、前記構造生成部により生成された複数の前記構造化パターン毎に、各構造化パターンに従って生成された中間構造化文書データを構成する特徴間の関連の度合いを示す関連度を算出する算出ステップと、をさらに有し、
前記判断ステップは、前記各関連度に基づいて、前記汎用論理構造の付与に用いる構造化パターンを判断すること、
を特徴とする請求項１１に記載の文書構造化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力文書データに対して構造化処理を行う文書構造化処理装置、及び方法に関するものである。
【背景技術】
【０００２】
近年、企業などのオフィス空間においては、日々の業務活動を通じて、メールメッセージや議事録、申請書、報告書など、様々なフォーマットや内容を持つ電子文書が作成されている。そして、作成された電子文書は、ネットワークや記録媒体を介して流通すると共に、記憶装置に蓄積され、閲覧や検索に利用される。
【０００３】
この結果、オフィス空間において、膨大な電子文書が蓄積されることになる。これら電子文書を利用するに際し、ユーザから様々な要求がある。例えば、利用者による電子文書の検索、電子文書群の中から必要箇所のみをすばやく閲覧したいといった要求がある。さらには、電子文書を管理するために、特定の条件（例えば電子文書中に出現するキーワード）によって電子文書を機械的に処理するとともに、電子文書を高度な意味処理などで利用するために、電子文書に対して前処理を施しておきたい、という要求がある。
【０００４】
そして、このような様々な要求に対応するためには、様々な手法が提案されている。現在広く用いられている手法としては、電子文書をＸＭＬ形式にすることで、メタデータとして文書の書誌情報や構造定義、又はその他の情報の付与や関連付けを格納しておく手法がある。
【０００５】
このようなＸＭＬ形式の電子文書を蓄積し、ＸＭＬ形式のタグ情報を検索条件として設定することで、例えば絞込み検索や、自動収集した各電子文書のタイトルタグによる目次を動的に生成するという活用が可能になる。
【０００６】
こうした活用を実現するためには、電子文書に対してＸＭＬ形式のメタデータを予め付与しておく必要がある。メタデータの付与手法としては、作業コストの観点から、大きく分けて二種類存在する。
【０００７】
まず第１の手法としては、人手により電子文書の内容や付与すべき構造を吟味した上で、構造化したい文書に対して直接編集してタグを付与することで、構造化文書を生成する手法がある。
【０００８】
第２の手法としては、電子文書に対してメタデータを含む構造化処理を行うスクリプトやプログラムなどの変換ツールを作成し、当該変換ツールで電子文書を半自動的に一括処理する手法がある。
【０００９】
第１の手法は、企業内に蓄積されている文書を、特定のライブラリ用途として格納しておくために、後々の活用を想定して構造化しておくなどの目的に適している。しかしながら、日々大量に生成、流通している企業内業務文書を、逐一構造化するには、作業コストが膨大となるため適していない。そこで、多量の電子文書に対して処理を行うためには、以下に示す第２の手法を用いることになる。
【００１０】
第２の手法の例としては、ＸＳＬＴ(XML  Stylesheet  Language  Transformations)などが存在する。当該手法では、予め、ＸＭＬ形式の電子文書と、目的となる別形式の構造(例えば表示用のxhtml)との対応付けを直接定義しておくことで、入力の形式や内容が想定した範囲に限り、目的用途に応じた構造化文書を動的に生成することができる。
【００１１】
当該手法によれば、一度スクリプトやプログラムを作成しておくことで、入力文書として想定されている内容の電子文書に対して、一括して半自動で構造の付与を行うことができる。
【００１２】
また、特許文献１の発明によれば、テキストファイルの論理構造を解析し、ＴｅＸやＢｏｏｋＭａｓｔｅｒ（登録商標）のタグを付与できる。特許文献１に記載された技術によれば、辞書パターンと行とのマッチングを行うことで、入力文書に対して付与すべき論理構造を動的に判定している。これにより、テキストファイルに対して、タグなどの論理構造を付与することができる。
【００１３】
【特許文献１】特開平０８−６９４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１の技術を含む第２の手法においては、複数種類の論理構造を用意し、テキストデータに対してこれら複数種類の論理構造のうちいずれかを付与する場合、論理構造毎に構造化を行うための辞書やルールが必要となる。そして、一度作成した構造化文書を、他の種類の論理構造で再生成を行う場合には、各論理構造の特徴を理解した上で、再度、抽出すべき語句を正規表現などで記述するためのスキルが必要なほか、既存のルールや辞書との不整合を避けるために、変更が及ぼす影響を注意深く考慮して、変換するための辞書やルールが必要となり、より多くの作業コストが生じるという問題がある。
【００１５】
本発明は、上記に鑑みてなされたものであって、所望の論理構造の文書データを生成するための作業コストを低減する文書構造化処理装置、及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するために、本発明にかかる文書構造化処理装置は、文書データに用途別の論理構造を付与して、用途別構造化文書データを生成する文書構造化処理装置であって、前記文書データに含まれる見出し文字列を用いて階層化構造を生成するための汎用論理構造を記憶する汎用構造記憶部と、入力文書データに含まれている見出し文字列に従って、前記入力文書データの階層化構造を表す候補となる構造化パターンを複数生成する構造生成部と、前記複数の構造化パターンから、前記汎用論理構造の付与に用いる構造化パターンを判断する判断部と、前記判断部により判断された前記構造化パターンに従って、前記入力文書データの各行に含まれている文字列に対して、前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する中間生成部と、前記汎用論理構造と、用途別構造化文書データ毎の利用用途に適した論理構造を示す用途別論理構造と、を対応付けて記憶する用途別構造定義記憶部と、前記用途別構造定義記憶部に基づいて、前記中間構造化文書データに付与された前記汎用論理構造を、前記用途別論理構造に変換し、前記用途別構造化文書データを生成する用途別文書生成部と、を備える。
【００１７】
また、本発明にかかる文書構造化処理方法は、文書データに用途別の論理構造を付与して、用途別構造化文書データを生成する文書構造化処理装置で実行される文書構造化処理方法であって、前記文書構造化処理装置は、前記文書データに含まれる見出し文字列を用いて階層化構造を生成するための汎用論理構造を記憶する汎用構造記憶部と、前記汎用論理構造と、用途別構造化文書データ毎の利用用途に適した論理構造を示す用途別論理構造と、を対応付けて記憶する用途別構造定義記憶部と、を備え、生成手段が、入力文書データの行毎に、当該行に含まれる見出し文字列に対して、前記汎用構造記憶部が記憶する前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する生成ステップと、構造生成手段が、入力文書データに含まれている見出し文字列に従って、入力文書データの構造を表す候補となる構造化パターンを複数生成する構造生成ステップと、判断手段が、前記複数の構造化パターンから、前記汎用論理構造の付与に用いる構造化パターンを判断する判断ステップと、中間生成手段が、前記判断ステップにより判断された前記構造化パターンに従って、前記入力文書データの各行に含まれている文字列に対して、前記汎用論理構造を付与して、階層化された中間構造化文書データを生成する中間生成ステップと、用途別文書生成手段が、前記用途別構造定義記憶部に基づいて、前記中間構造化文書データに付与された前記汎用論理構造論理構造を、前記用途別論理構造に変換し、前記用途別構造化文書データを生成する用途別文書生成ステップと、を有する。
【発明の効果】
【００１８】
本発明によれば、入力文書データから、汎用論理構造が付与された中間構造化文書データを生成した後、当該中間構造化文書データの汎用論理構造を、用途別論理構造に変換して、用途別構造化文書データを生成するので、用途別構造化文書データ毎に異なる用途別論理構造間で変換する処理が不要となるため、用途別構造化文書データを生成に必要な作業負担を軽減させるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明にかかる文書構造化処理装置、及び方法を適用した文書処理装置の最良な実施の形態を詳細に説明する。
【００２０】
（第１の実施の形態）
図１に示すように、文書処理装置１００は、見出し文字列記憶部１０１と、文書モデル記憶部１０２と、汎用構造定義記憶部１０３と、用途別構造定義記憶部１０４と、中間構造化文書データ記憶部１０５と、マッピング条件記憶部１１６と、文書解析部１０６と、行単位抽出部１０７と、特徴抽出部１０８と、スコア算出部１０９と、判断部１１０と、格納部１１１と、中間生成部１１２と、用途別構造化文書生成部１１３と、修正部１１４と、利用者操作受付部１１５と、行属性特定部１１７と、表示部１１８と、を備える。
【００２１】
本実施の形態にかかる文書処理装置１００は、文書データに用途別の論理構造を付与して、用途別構造化文書データを生成する。用途別構造化文書データとは、社内規定やプレゼンテーション用などの利用用途に応じて適切な論理構造（例えばＸＭＬのタグ）が付与された文書データとする。そして、利用用途に応じた論理構造を用途別論理構造とする。つまり、文書処理装置１００は、用途別構造化文書データとして、社内規定やプレゼンテーション用の用途別論理構造が付与された文書データを生成する。
【００２２】
本実施の形態にかかる文書処理装置１００においては、入力文書データに対して汎用的な論理構造を割り当てることで、用途別構造化文書データを生成する過程での中間結果となる中間構造化文書データを生成する。そして、生成した中間構造化文書データの汎用的な論理構造を、利用者の利用用途に適した論理構造に変換することで、用途別構造化文書データを生成する。
【００２３】
本実施の形態にかかる汎用的な論理構造とは、入力文書データを構造化するために用いられる論理構造とする。この汎用的な論理構造は、文書データに含まれる見出し文字列に対を用いて階層化構造を生成するための論理構造を含むものとする。また、汎用的な論理構造とは、階層化構造を生成する論理構造以外に、文書データに含まれる文字列や段落に対して割り当てる論理構造も含まれる。そして、この汎用的な論理構造は、用途別構造化文書データの論理構造に変換する元となる。このため、汎用的な論理構造には、用途別構造化文書データの論理構造に変換するために必要な情報が欠落なく含まれているものとする。
【００２４】
本実施の形態においては、入力文書データは、プレーンテキストや、文書作成アプリケーションで作成された文書データ等とする。中間構造化文書データは、文書の利用用途に依存しない汎用的な論理構造が割り当てられた文書データとする。また、文書データの利用用途の例としては、社内規程やプレゼンテーション用などが考えられる。つまり、利用用途に依存しないとは、複数種類の用途別構造化文書データのどの論理構造にも変換可能であることを示している。
【００２５】
見出し文字列記憶部１０１は、複数の文書データから抽出した、見出しの候補となる文字列を記憶する。また、見出し文字列記憶部１０１は、利用者が定義した見出しの候補となる文字列も記憶する。以下、見出しの候補となる文字列を見出し候補文字列とする。
【００２６】
図２に示すように、見出し文字列記憶部１０１は、‘，’を区切りとして、複数の見出し候補文字列を記憶する。なお、当該見出し候補文字列は、後述するスコア算出部１０９による、文書データの構造の解析に用いる。
【００２７】
文書モデル記憶部１０２は、今までに入力された文書データから抽出された行毎に、詳細な情報を記憶する。記憶する情報の例としては、行内の文字数、空白を除く文字数、インデントの数、島数、見出し記号の有無、行内空白の有無、見出し候補文字列の有無、見出し候補文字列、特定キーワードの有無、前の行の論理構造名、後ろの行の論理構造名、前の行の構造深さ、該当行の構造深さ、該当行の論理構造名を、行を識別するための属性情報として記憶する。図３に示す例では、行毎にこれら属性情報が順に格納されている。
【００２８】
本実施の形態に係る島とは、空白で区切られた文字列とする。そして、島数とは、空白で区切られた文字列の数とする。
【００２９】
見出し記号の有無、行内空白の有無、見出し候補文字列の有無、特定キーワードの有無は、“true”又は“false”として保持する。
【００３０】
見出し候補文字列は、各行から抽出された見出しの候補となる文字列とする。図３に示す例においては、５行目の“（開発部）”が該当する。
【００３１】
論理構造名とは、予め定義された各行の論理構造の名称とする。本実施の形態では、見出し候補文字列(hd)、箇条書き候補(item)、空行(ws)、境界行(b)、パラグラフ(para)の５種類が定義されているものとする。
【００３２】
そして、本実施の形態にかかる文書モデルでは、各行毎に、前の行の論理構造名と、後ろの行の論理構造名と、当行の論理構造名と、を保持している。
【００３３】
行の構造深さとは、文書データのルート深さを‘０’とした場合の相対値とする。文書モデルにおいては、前の行の構造深さと、該当行の構造深さとを保持する。
【００３４】
また、文書モデル記憶部１０２に記憶される属性情報は、上述した情報に限るものではなく、例えば、入力文書データのページ情報、フォント情報、ファイル情報、また外部から与えられた文書管理情報（文書ジャンルや対応部署名など）を付加しても良い。
【００３５】
汎用構造定義記憶部１０３は、入力文書データに対して、汎用的な論理構造と、当該汎用的な論理構造を割り当てるための定義と、を記憶する。当該定義を用いることで、入力文書データの行毎に、当該行に含まれている文字列に対して汎用的な論理構造を付与し、中間結果となる中間構造化文書データを生成することができる。
【００３６】
図４に示すように、汎用構造定義記憶部１０３では、行毎に、汎用的な論理構造と、汎用的な論理構造を割り当てるための定義と、が記憶している。なお、汎用的な論理構造を割り当てるための定義の記載手法は、図４に示した手法に限らず、さまざまな定義の記載手法を用いて良い。
【００３７】
用途別構造定義記憶部１０４は、汎用的な論理構造を、用途別構造化文書データの用途に適した用途別論理構造に変換するための対応関係の定義を記憶する。図５に示すように、用途別構造定義記憶部１０４は、用途別構造化文書種別と、汎用構造（汎用的な論理構造）と、用途別文書構造（利用用途に適した用途別論理構造）と、設定条件とを対応付けている。
【００３８】
用途別構造化文書種別は、用途別論理構造の種別とする。汎用構造には、汎用的な論理構造で用いられているタグが設定されている。用途別文書構造には、用途別構造化文書データの利用用途に適した用途別論理構造で用いられるタグが設定されている。そして、設定条件は、汎用構造のタグを、用途別文書構造のタグに変換するための条件が設定されている。
【００３９】
用途別構造定義記憶部１０４が上述した情報を保持することで、中間構造化文書データに付与されたタグを、用途別構造化文書データの種別に応じて適切なタグに変換することが可能になる。
【００４０】
中間構造化文書データ記憶部１０５は、汎用的な論理構造が割り当てられた中間構造化文書データを記憶する。
【００４１】
マッピング条件記憶部１１６は、中間構造化文書データから変換する場合に、用途別構造化文書データの種別を特定するための条件を記憶する。
【００４２】
文書解析部１０６は、入力文書データに対して解析処理を行う。本実施の形態にかかる文書解析部１０６は、解析処理を行う際に、入力文書データの書誌情報として、テキスト情報、フォーマット依存で利用されているフォントやページ番号、スタイル情報などのテキスト属性、の組み合わせを抽出する。
【００４３】
ところで、本実施の形態においては、図６に示す入力文書データに対して処理を行う場合について説明する。文書解析部１０６は、図６に示す入力文書データから、テキスト属性として"プレーンテキスト"、エンコーディング情報、"ページ番号1/1"、さらにファイルシステムから得られる"ファイル名"、"タイムスタンプ"等の情報を抽出する。これらの情報は、必要に応じて構造化要素や属性として、中間構造化文書データ、用途別構造化文書データに埋め込まれる。
【００４４】
行単位抽出部１０７は、入力文書データを行単位で抽出する。本実施の形態にかかる行とは、改行コードにより区切られた文字列とする。なお、本実施の形態は、行を改行コードにより区切られた文字列に制限するものではなく、例えば、入力文書データを表示した場合の１行などでもよい。
【００４５】
特徴抽出部１０８は、行単位抽出部１０７により抽出された単位毎に、当該行に含まれる見出し候補文字列などの、文字列の特徴を抽出する。この抽出される単位毎の特徴としては、例えば、冒頭や行全体に出現する文字種の特徴や、特定記号の有無、各島のサイズや数、括弧対応の有無、文字列長などとする。
【００４６】
また、特徴抽出部１０８は、文書モデルを生成するために、各行から属性情報を抽出する。抽出する属性情報は、行内に含まれる文字数、空白を除いた文字数、インデントされている場合の空白の数、島の数、行の冒頭付近に見出し記号が出現しているか否か、行の冒頭付近に数値が出現しているか否か、見出し候補文字列の有無、見出し候補文字列、特定のキーワードが含まれているか否かとする。
【００４７】
例えば、特徴抽出部１０８は、図６に示す入力文書データから、図７に示す行毎の属性情報を抽出する。
【００４８】
図７に示す例の各行は、それぞれ図６の入力文書データの行に対応している。例えば、特徴抽出部１０８は、入力文書データの８行目の『（１）監査の目的について』から、解析結果として属性情報『12,12,0,1,false,false,true,（１）,false』を抽出する。この属性情報のそれぞれのパラメータにおいて、最初の“12”は行内の文字数を、次の“12”は空白を除く文字数を、次の“0”はインデントの数を、次の“1”は島数を、次の“false”は見出し記号の有無の結果を、次の“false”は行内空白の有無の結果を、次の“true”は見出し候補文字列の有無の結果を、次の“（１）”は見出し候補文字列を、最後の“false”は特定キーワードの有無の結果を示している。そして、各行の属性情報では、これらパラメータが、それぞれ","によって連結され、枚挙されているものとする。
【００４９】
なお、見出し候補文字列は、見出し文字列記憶部１０１に格納されている見出し文字列と一致した文字列を抽出しても良いし、既存の処理手順に従い見出しと考えられる文字列を抽出しても良い。
【００５０】
行属性特定部１１７は、特徴抽出部１０８が抽出した各行の特徴、及び入力文書データ全体における行特徴の出現分布を学習し、文書モデルとして格納する各行の属性情報を生成する。
【００５１】
また、行属性特定部１１７は、見出し文字列記憶部１０１に記憶された見出し文字列及び文書モデル記憶部１０２に記憶された文書モデルの各属性情報を適用した場合の暫定的な文書構造を生成する。まず、行属性特定部１１７は、入力文書データから抽出された見出し候補文字列及び文書モデル記憶部１０２に記憶された文書モデルの各属性情報による構造が表された初期論理構造を生成する。換言すれば、行属性特定部１１７は、構造生成部としての役割を果たす。
【００５２】
初期論理構造とは、既存の学習手法を適用し、現在の入力文書に対して暫定的に付与する論理構造を示す構造化パターンとする。以降、行属性特定部１１７は、見出し候補文字列及び文書モデル記憶部１０２に記憶された文書モデルの各属性情報で表された、上記の初期論理構造とは異なる初期論理構造に従った初期論理構造を複数生成する。
【００５３】
なお、文書モデル記憶部１０２に文書モデルが記憶されていない場合には、トレーニングサンプルとして予め読み込まれた文書モデルを利用し、テストサンプルとして入力された入力文書データを処理することとする。
【００５４】
そして、スコア算出部１０９が、初期論理構造毎に、当該初期論理構造による中間構造化文書データを構成する特徴（例えば、見出し候補文字列）間の関連度を示すスコアを算出する。
【００５５】
判断部１１０は、複数の初期論理構造から、前記汎用的な論理構造の付与に用いる初期論理構造を判断する。本実施の形態にかかる判断部１１０は、スコア算出部１０９により算出されたスコアにより、入力文書データに対して適用する初期論理構造を判断する。このような処理を行うことで、生成された初期論理構造から、不適切な初期論理構造を棄却して、構造化の手がかりとなる見出し候補文字列や箇条書き候補の致命的な誤判定結果を削除する。これにより、初期論理構造のうち、相対的に精度の良い論理構造を入力文書データに対して付与することが可能となる。
【００５６】
まず、行属性特定部１１７は、特徴抽出部１０８により抽出された見出し候補文字列群から、階層構造を備える初期論理構造（Ｈx）を生成する。図８に示すように、行属性特定部１１７は、各階層に適用する見出し候補文字列群に応じて、複数の初期論理構造（Ｈx）を生成する。そして、行属性特定部１１７が生成する初期論理構造（Ｈx）は、階層ごとの見出し候補文字列の集合（ｈｘ）で構成される。
【００５７】
図８に示す例では、行属性特定部１１７は、階層深さ“０”の見出し候補文字列の組み合わせを見出し候補文字列ｈ０と、階層深さ“１”の見出し候補文字列の組み合わせを見出し候補文字列ｈ１と、階層深さ“２”の見出し候補文字列の組み合わせを見出し候補文字列ｈ２として設定する。以降の階層深さについても同様に、文書データの部分的な論理構造を定義するための見出し候補文字列の組み合わせを設定する。
【００５８】
次に、行属性特定部１１７は、任意の階層構造の見出し候補文字列群を一つ抽出（例えば、図８のＨ0）し、この見出し候補文字列によって階層深さ“０”に限った上で、入力文書データの暫定的な部分の論理構造を生成する。
【００５９】
行属性特定部１１７が、図８に示した見出し候補文字列群Ｈ0に含まれる見出し候補文字列ｈ０に基づいて、入力文書データについて部分的な構造化処理を行った場合、図９に示すような文書領域群が作成される。
【００６０】
具体的には、図９に示す例においては、見出し候補文字列ｈ０における、見出し候補文字列の組み合わせが、数値を含む見出し文字列『１．』、『２．』、『３．』となる。そして、当該見出し候補文字列と一致する文字列は、入力文書データの、破線の矩形で囲まれた第３行及び第１８行の冒頭と一致する。そこで、行属性特定部１１７は、これら各行を階層深さ“０”における見出しと仮定する。
【００６１】
そして、行属性特定部１１７は、これら各行（第３行及び第１８行）を見出しと仮定した上で、当該見出し候補文字列に基づく初期論理構造に従って分割される部分的な文書領域（１章の内容に該当する文書領域や２章の内容に該当する文書領域）を特定する。図９に示す例においては、行属性特定部１１７は、各文書領域の始点を見出し文字列、各文書領域の終点を次の見出し文字列又は文書データの終端末とすることで、大括弧で示した範囲を文書領域として特定できる。これにより、見出し候補文字列に対応した部分的な文書領域を特定できる。この文書領域の特定は、初期論理構造Ｈ0に限らず、例えば初期論理構造Ｈeなど様々な階層構造についても行うこととする。そして、特定した各階層の文書領域に対して、スコア算出部１０９が、初期論理構造毎に、各初期論理構造に従って生成された中間構造化文書データを構成する特徴間の関連度を示すスコアを算出する。
【００６２】
本実施の形態にかかる初期論理構造は、見出し候補文字列による階層構造で表される構造化パターンとするが、見出し候補文字列による階層構造で表される構造化パターンに制限するものではなく、入力文書データを構造化可能な構造化パターンであればよい。
【００６３】
スコア算出部１０９は、見出し文字列記憶部１０１に記憶された各見出し文字列と、文書モデル記憶部に記憶された文書モデルとを含む属性情報と、に基づいて前記汎用的な論理構造の付与に用いる複数通りの初期論理構造毎に、各初期論理構造に従って生成された中間構造化文書データを構成する属性情報（例えば、見出し候補文字列）間の関連の度合いを示す関連度を算出する。
【００６４】
本実施の形態にかかるスコア算出部１０９は、中間構造化文書データを生成するための適用する初期論理構造を選定する際に、行属性特定部１１７により生成される、見出し文字列記憶部１０１に記憶された見出し文字列及び文書モデル記憶部１０２に記憶された文書モデルの各属性情報に基づく初期論理構造を適用した場合の暫定的な文書構造に対して、予め設定された評価基準を用いてスコアを算出する。
【００６５】
より詳細の例として、スコア算出部１０９は、見出し文字列記憶部１０１に記憶される見出し候補文字列、及び箇条書きのうちいずれか一つ以上の階層的に組み合わせた初期論理構造に基づいて、入力文書データ全体に対して汎用的な論理構造(見出し候補文字列、箇条書き領域、章節構造)を付与した場合における当該論理構造のスコアを算出する。
【００６６】
スコア算出部１０９は、生成した文書構造において、見出し文字列記憶部１０１に記憶された見出し文字列（例えば、章又は節）を組み合わせた入れ子構造による複数の階層構造が存在する場合、当該階層構造の階層毎及び上位階層から順にスコアを算出する。そして、後述する判断部１１０が階層ごとに当該文書構造を用いるか否か判断する。
【００６７】
次に、スコア算出部１０９における、スコアの算出手法について説明する。このスコア算出では、行属性特定部１１７により暫定的に生成された部分的な文書領域における関連度を評価する。
【００６８】
本実施の形態にかかるスコア算出部１０９によるスコアの算出手法は、以下の式（１）を用いる。
スコア  ＝  入力文書データの全行数（空白行を除く）  ＊  現在行の順序制約値  /  (部分的な文書領域のt_iの行数  ＋  部分的な文書領域t_i内の部分構造生成候補可能数)……（１）
【００６９】
式（１）で用いる、現在行の順序制約値は、見出しとして特定されている行において、当該行の指し示す見出しの表記が、部分的な文書領域t_i内の見出しとして初期値から順に出現している数値であれば“１”を、初期値ではない値が出現する場合には初期値との差分＋１の値を設定する。また、該当行が見出し以外の要素である場合には、“１”を設定する。
【００７０】
例えば、部分的な文書領域において、見出しとなる表記“（１）”から順に含まれている場合には、各行に対して“１”を設定し、部分的な文書領域において、見出しとなる表記“５”が突然出現する場合には、“５−１＝４”を差分として、当該行の制約値を設定する。
【００７１】
図１０に示すように、スコア算出部１０９は、当該定義に従って、入力文書データの各行のスコアを算出する。図１０に示す例では、初期論理構造Ｈ0の見出し候補文字列ｈ０に基づいて、部分的な文書領域に分割されている。つまり、“１．”、“２．”……で分割された部分的な文書領域の各行についてスコアＳを算出する。
【００７２】
そして、１行目のスコアを算出する場合、空白行を除く全行数が“２１”で、順序制約値が“１”で、部分的な文書領域t_iの行数が“１”で、部分構造生成候補可能数が“０”となる。そこで、スコア算出部１０９は、スコアＳ＝２１＊１／（１＋０）を計算し、スコアＳとして“２１”を得る。
【００７３】
次に、３行目のスコアを算出する場合、３行目を含む部分的な文書領域t_2が、３行目から１６行目の合計１４行で構成されている。そして、当該部分的な文書領域t_2において、含まれている見出し候補は、“（１）”、“（２）”、“・”×３の５個となる。そこで、スコア算出部１０９が、３行目のスコアＳとして、Ｓ＝２１＊１／（１４＋５）を計算し、スコアＳとして１．１（小数第二位以下は四捨五入）を得る。
【００７４】
スコア算出部１０９は、上述した処理を各行毎に行うことで、図１０に示すスコアを各行毎に得られる。
【００７５】
そして、スコア算出部１０９は、算出された行毎のスコアの総和を計算することで、初期論理構造Ｈ0のスコアを得られる。このスコアＳH0を得る式（２）を示す。
ＳH0＝２１＊１＋１．１＊２０＝４３……（２）
【００７６】
図１１に示すように、スコア算出部１０９は、当該定義に従って、入力文書データの各行のスコアを算出する。図１０に示す例では、初期論理構造Ｈeの見出し候補文字列ｈ０に基づいて、部分的な文書領域に分割されている。つまり、“（１）”、“（２）”……で分割された部分的な文書領域の各行についてスコアＳを算出する。
【００７７】
そして、１〜６行目のスコアを算出する場合、空白行を除く全行数が“２１”で、順序制約値が“１”で、部分的な文書領域t_iの行数が“１”で、部分構造生成候補可能数が“０”となる。そこで、スコア算出部１０９は、スコアＳ＝２１＊１／（１＋０）を計算し、スコアＳとして“２１”を得る。これら図１１に示すように、文書領域t_1〜t_4のスコアは、上述した処理により算出される。
【００７８】
次に、８行目のスコアを算出する場合、８行目を含む部分的な文書領域t_5が、８行目と９行目の合計２行で構成されている。そして、当該部分的な文書領域t_5において、含まれている見出し候補は特にない。そこで、スコア算出部１０９が、８行目のスコアＳとして、Ｓ＝２１＊１／（２＋０）を計算し、スコアＳとして１０．５を得る。なお、９行目についても同様の値となる。
【００７９】
次に、１１行目〜２０行目（ただし１８行目を除く）のスコアを算出する場合、部分的な文書領域t_6が、合計１０行で構成されている。そして、当該部分的な文書領域t_6において、含まれている見出し候補は“・”×３の３個となる。そこで、スコア算出部１０９が、１１行目〜２０行目のスコアＳとして、Ｓ＝２１＊１／（１０＋３）を計算し、スコアＳとして１．６を得る。
【００８０】
また、１８行目については、部分的な文書領域t_6内で、『１．』が出現することなく『２．』が出現していることから、順序制約値が、初期値“１”から見出し表記に含まれている数値“２”の差分“１”に、“１”を加えた“２”となる。そして、スコア算出部１０９が、１８行目のスコアＳとして、Ｓ＝２１＊２／（１０＋３）を計算し、スコアＳとして３．２を得る。
【００８１】
同様に、２２行目及び２３行目のスコアを算出する場合、文書領域t_7の全行数“２”等に基づいて、スコア算出部１０９は、スコアＳとして、Ｓ＝２１＊１／（２＋０）を計算し、スコアＳとして１０．５を得る。
【００８２】
同様に、２５行目〜３２行目のスコアを算出する場合、文書領域t_8の全行数“８”等に基づいて、スコア算出部１０９は、スコアＳとして、Ｓ＝２１＊１／（８＋３）を計算し、スコアＳとして１．９を得る。
【００８３】
これにより、スコア算出部１０９は、初期論理構造Ｈeについて、行毎に、図１１に示すスコアを得られる。
【００８４】
そして、スコア算出部１０９は、算出された行毎のスコアの総和を計算することで、初期論理構造Ｈeのスコアを得られる。このスコアＳH0を得る式（３）を示す。
ＳHe＝２１＊４＋１０．５＊４＋３．２＊１＋１．９＊６＋１．６＊６＝１５０．２……（３）
【００８５】
また、スコア算出部１０９は、他の初期論理構造Ｈxについても同様に、他の初期論理構造Ｈx毎に、必要に応じてスコアを算出する。
【００８６】
なお、スコア算出部１０９は、上記の階層においては出現しなかったが、上述した見出し文字列、章又は節を示す数値による階層構造に限らず、例えば“・”で示す箇条書きや、パラグラフに基づいて設定された部分的な文書領域の各行についてもスコアを算出する。
【００８７】
そして、判断部１１０による判断結果に基づいて、行属性特定部１１７は、入力文書データに出現するパターンや傾向、及び文書モデル記憶部１０２に記憶されている文書モデルを利用して、各行の属性情報(見出し候補文字列とその順序および階層関係、本文候補、箇条書き候補、その他パラグラフ)を特定し、付与する。なお、詳細な処理手順については後述する。
【００８８】
判断部１１０は、スコア算出部１０９により算出されたスコアに基づいて、汎用的な論理構造の付与に用いる初期論理構造を判断する。
【００８９】
本実施の形態にかかる判断部１１０は、算出されたスコアに基づいて、不適切な初期論理構造とそれと類似する初期論理構造の適用を棄却する。そして、棄却されていない初期論理構造を用いて、行属性特定部１１７が、各行の属性情報を特定する。属性情報の例としては、見出し文字列の表記、当該行の階層とし、これら属性情報を対応付けて、各行に属性情報として付与する。
【００９０】
本実施の形態にかかる判断部１１０は、スコア算出部１０９により算出されたスコアにより、部分的な文書領域を設定する初期論理構造の見出し候補文字列ｈｘ（例えば章又は節による見出し候補文字列の組み合わせ）が適切か否か判断する。そして、判断部１１０は、当該初期論理構造が不適切と判断した場合に、当該見出し候補文字列ｈｘを含む全ての初期論理構造を、入力文書データに付与する汎用的な論理構造として不適当と判断する。つまり、見出し候補文字列ｈ０（例えば、（１）、（２）……）で不適切と判断された場合、当該見出し候補文字列ｈ０を含む初期論理構造Ｈx全てを不適切と判断する。
【００９１】
例えば、判断部１１０は、初期論理構造Ｈ1の見出し候補文字列ｈ０のスコア４３と、初期論理構造Ｈeの見出し候補文字列ｈ０のスコア１５０．２を比較し、初期論理構造Ｈeを、不適合候補の棄却処理の対象とし、汎用的な論理構造としてではないと判断する。
【００９２】
その際、判断部１１０は、Ｈeの見出し候補文字列ｈ０で不適合候補と判断したため、見出し候補文字列ｈ０が“（１）”、“（２）”となる初期論理構造Ｈx全てを、汎用的な論理構造ではないと判断する。
【００９３】
つまり、判断部１１０は、図８に示す例において、Ｈeの見出し候補文字列ｈ０のスコアを算出した時点で、当該Ｈeの見出し候補文字列ｈ０と同様の構成を備える初期論理構造Ｈxを候補から除外し、Ｈ0に類似する初期論理構造Ｈ11、Ｈ2、Ｈ3を候補と残した上で、スコア算出部１０９が、初期論理構造Ｈ0と他の初期論理構造Ｈxとについて次の階層のスコアを算出し、スコアの低い初期論理構造を候補として残すという処理を階層ごとに行うことで、最終的な初期論理構造が決定される。なお、図８の分岐は、Ｈ0以降とＨeのみ表示しているが、これは説明を容易にするためであり、実際は見出し候補文字列の組み合わせの数に応じた分岐が存在している。
【００９４】
そして、適切と判断された初期論理構造については、さらに下の階層について行属性特定部１１７による暫定的な階層構造の生成、及びスコア算出部１０９のスコア算出を行った後、判断部１１０が、さらに当該階層毎に、汎用的な論理構造として適切か否か判断していくことになる。
【００９５】
上述した処理を行うことで、見出し候補文字列を含む初期論理構造から、不適切なものを除去し、適切な初期論理構造を特定することができる。
【００９６】
また、本実施の形態においては、見出し文字列の出現制約に基づく論理構造の関連度を示すスコアの算出例を示したが、見出し文字列の順序情報以外の属性情報を用いてスコアを算出しても良い。さらに見出し文字列の順序と他の属性情報を複合的に組み合わせてスコアを算出しても良い。
【００９７】
変形例としては、入力文書データから暫定的に作成された部分の文書領域において、当該文書領域に連続する空行や、境界表現("------")行が存在する場合に、これら行が出現する毎に、上述した評価式の分子に適当な係数(１より大きい値)を乗ずることで、算出されるスコアを高くし、不適切さの度合いを高めても良い。
【００９８】
他の変形例としては、島数が２以上の行などが一定数以上連続したり、ある行属性の出現が周期的に出現している場合には、テーブル表記などが暫定的に作成された部分の文書領域に包含されているとみなし、評価式に適当な係数(１より小さい正の数)を乗ずることで、算出されるスコアを低くし、適切さの度合いを高めても良い。
【００９９】
なお、部分的な文書領域を特定するために適用する学習手法は、ＳＶＭや決定木、NeuralNet、Ｋ＊など、入力文書データに対して特定された属性情報によって行の論理構造を分類・判定できるものであれば、種類や性質を問わないものとする。
【０１００】
格納部１１１は、判断部１１０により適切と判断された、初期論理構造を構成する各行の属性情報を、文書モデル記憶部１０２に格納する。つまり、適切と判断された初期論理構造を構成する属性情報の組み合わせと、ユーザ目的に特化された論理構造名(議事録であれば、参加者、議事タイトル、配布先など)とを対応付けて、文書モデル記憶部１０２に記憶させることで、正解データとして学習させることになる。
【０１０１】
これにより、例えば、文書モデル記憶部１０２は、図１２に示すような文書モデルを、上述した入力文書データから抽出された属性情報を追加した後の文書モデルとして記憶する。図１２に示す例では、文書モデルは、入力文書データに対する見出し候補文字列とその階層関係(heading_hypo)、及び入力文書データにおける行情報(data)からなる。次に、格納部１１１は、入力文書データから上述した処理によって得られたファイル形式などのファイル情報、行単位による各種属性情報を、入力文書データの属性情報として対応付けて、文書モデルとして保持しておく。例えば、行情報（data）には、行属性特定部１１７により生成された各行の属性情報が格納される。
【０１０２】
また、格納部１１１は、入力文書データから抽出された見出し候補文字列を、見出し文字列記憶部１０１に対して格納する。これにより、次以降に入力された入力文書データに対する適切な論理構造の解析精度が向上する。
【０１０３】
中間生成部１１２は、判断部１１０により適切と判断された初期論理構造と、行属性特定部１１７により生成された各行の属性情報とに基づいて、入力文書データから、汎用的な論理構造が付与された中間構造化文書データを生成する。
【０１０４】
中間生成部１１２は、これまでに行われた行毎の解析結果に対して、図４に示す汎用構造定義記憶部１０３に記憶されている汎用的な論理構造の定義を適用し、当該行に含まれる文字列に対して汎用的な論理構造を付与することで、図１３に示すような中間構造化文書データを生成する。この汎用的な論理構造が付与される文字列としては見出し文字列や、箇条書きを示す記号などがある。図１３に示す汎用的な論理構造においては、第一階層をchapter、第二階層をsection、箇条書きをlistitemとして定義されているため、図１３に示す中間構造化文書データにおいても、これら名称が定義されたタグが階層ごとに付与される。そして、タグ等が付与された中間構造化文書データは、中間構造化文書データ記憶部１０５に格納される。
【０１０５】
また、修正部１１４により、属性情報に対して修正が行われた場合、中間生成部１１２は、当該修正された属性情報等を用いて、中間構造化文書データを生成し、再び、中間構造化文書データ記憶部１０５に格納する。次に属性情報を修正するための構成について説明する。
【０１０６】
利用者操作受付部１１５は、入力装置に接続され、入力装置に対して入力された操作情報を受け付ける。
【０１０７】
修正部１１４は、利用者操作受付部１１５が受け付けた操作情報に従って、行属性特定部１１７により生成された各行の属性情報に対して修正を行う。また、修正部１１４は、利用者操作受付部１１５が受け付けた操作情報に従って、中間生成部１１２が生成した中間構造化文書データに対して修正を行う。修正の対象となる属性情報としては、例えば、見出し候補文字列がある。また、修正部１１４は、中間構造化文書データに対して、タグを埋め込むなどの修正も行う。
【０１０８】
表示部１１８は、利用者に対して、様々な情報の表示を行う。例えば、表示部１１８は、属性情報等を修正するための修正インターフェースの表示を行う。
【０１０９】
図１４に示す修正用インターフェースにおいては、入力文書データと、見出し文字列群と、中間構造化文書データと、中間構造化文書データの階層構造が表示される。当該修正用インターフェースにおいて、見出し文字列の追記や、削除などを行うことができる。
【０１１０】
また、利用者が、見出し候補文字列を追加した場合、表示部１１８は、当該追加処理に従って、修正用インターフェース上の中間構造化文書データ及び階層構造の表示を更新する。これに従い、格納部１１１は、見出し文字列記憶部に対しても見出し文字列や箇条書きを示す記号を追加する。また、中間生成部１１２も、追加された見出し文字列や箇条書きを示す記号を使用した上で、中間構造化文書データの再生成を行う。また、見出し候補文字列や箇条書きを示す記号を削除した場合についても同様に、修正用インターフェースの中間構造化文書データ及び階層構造、並びに見出し文字列記憶部１０１の更新が行われる。
【０１１１】
表示部１１８は、図１４に示す修正用インターフェースで表示されている入力文書データにおいて、見出し候補である文字列をハイライト表示したり、入力文書データの行頭の文字列で、見出し候補文字列群として未登録の文字列の中から、数値のみを含む文字列や、特定記号を含む文字列等をハイライト表示してもよい。これにより、見出し文字列の追加等を促すことができるので、生成される中間構造化文書データのより適切なものとなる。
【０１１２】
また、表示部１１８が、修正用インターフェースにおいて、修正部１１４が見出し候補文字列群の修正を行う前後における中間構造化文書データの階層構造を表示しても良い。その際に、構造が変化した差分をハイライト表示してもよい。これにより、利用者は対応関係を認識することが可能となり、修正作業における利便性が向上する。
【０１１３】
修正用インターフェースは利用用途に応じて、様々な種類のインターフェースが提供される。図１５に示す例では、見出し候補文字列の修正に特化したインターフェースであり、見出し文字列群と、修正前の中間構造化文書データと、修正後の中間構造化文書データとを表示するインターフェースである。
【０１１４】
図１５に示す例においては、利用者操作受付部１１５において、見出し文字列“（１）”を追加する操作情報を受け付け、修正部１１４が見出し文字列を追加する際に、表示部１１８が、修正用インターフェースから、利用者に対して確認を要求している。この画面においては、見出し文字列“（１）”を追加する前後の中間構造化文書データの例が画面下部に表示されている。利用者は、当該修正結果例を閲覧することで、変更内容を確定するか、キャンセルするかを選択することができる。そして、当該確定を行うことで、見出し文字列記憶部１０１及び中間構造化文書データを編集することができる。
【０１１５】
他の例としては、図１６に示す修正用インターフェースが考えられる。図１６に示す修正用インターフェースにおいても、見出し文字列“（１）”が追加された例について示している。図１６に示す例では、見出し文字列に対する修正履歴が『改訂ログ』として表示されている。この『改訂ログ』においては、過去の修正履歴１，２が存在し、今回の見出し文字列の追加が、修正履歴３として追加されている。
【０１１６】
図１６に示す例では、修正後の見出し文字列として、修正用インターフェース画面左下に、見出し文字列“（１）”が新たに追加されている。当該追加処理に従って、表示部１１８は、画面中央の上段に修正前の中間構造化文書データと、下段に修正後の中間構造化文書データとを表示する。これら中間構造化文書データは、それぞれ構造化処理が行われている。これにより、利用者は、自己の修正結果を参考にして、修正を確定するか取りやめるかを判断することができる。
【０１１７】
また、図１６に示す例では、修正用インターフェースの右端に、見出し文字列の修正結果に従う、中間構造化文書データの階層構造の変化が表示されている。当該階層構造で変化したノードは、削除や追加、移動等の変化内容に応じて、色分けして表示されても良い。これにより、利用者は、修正した場合に変更される箇所を確認しながら、属性情報を修正することができる。また、属性情報の修正対象は、見出し候補文字列に制限するものではなく、各行の属性情報などさまざまな属性情報が修正の対象となる。
【０１１８】
このようにして、格納部１１１は、修正部１１４による修正結果に従った、各行及び各行に含まれる文字列の属性情報を、見出し文字列記憶部１０１及び文書モデル記憶部１０２に格納する。
【０１１９】
用途別構造化文書生成部１１３は、用途別構造定義記憶部１０４に基づいて、上述した処理によって生成又は修正された中間構造化文書データから、中間構造化文書データに付与された汎用的な論理構造のうち必要な部分の論理構造を、利用用途毎に定義された論理構造を示す用途別論理構造に変換し、用途別構造化文書データを生成する。
【０１２０】
用途別論理構造は、利用用途毎に定義された論理構造を示し、本実施の形態においては利用用途別に提議されたＤＴＤに対応する。
【０１２１】
本実施の形態にかかる用途別構造化文書生成部１１３は、用途別構造化文書データのタグ種別を特定するために、マッピング条件記憶部１１６を参照し、用途別構造定義記憶部１０４に定義された当該種別の用途別構造の定義に従って、中間構造化文書データから、用途別論理構造で構成される用途別構造化文書データを生成する。また、マッピング条件に該当する用途別構造化文書データのタグ種別が複数存在する場合、利用者がタグ種別を選択しても良いし、タグ種別毎に用途別構造化文書データを生成しても良い。また、マッピング条件記憶部１１６に設定されたマッピング条件と関係なく利用者が、選択したタグ種別に従って、中間構造化文書データから用途別構造化文書データを生成しても良い。つまり、中間構造化文書データから、用途別構造化文書データを生成する際に、利用者の要求する利用用途に応じて適宜、中間構造化文書データを用途別構造化文書データに変換することができる。
【０１２２】
図１７に示すように、本実施の形態にかかる用途別構造化文書生成部１１３は、マッピング条件記憶部１１６に記憶されたマッピング条件（例えば条件Ａ１８０１、条件Ｂ１８０２）に一致した場合に、用途別構造化文書データの種別が特定される。その後は、図５に示す用途別構造定義記憶部１０４で用途別構造化文書種別が特定されたことで、変換元のタグ（汎用構造）に対応する変換先のタグ（用途別文書構造）及び変換するための条件（設定条件）が特定されたことになる。
【０１２３】
そして、用途別構造化文書生成部１１３が、特定された設定条件に一致した場合に、汎用構造のタグを、用途別構造化文書データとして適したタグに変換し、用途別構造化文書データを生成する。なお、設定条件が設定されていない場合、単純に汎用構造のタグを、用途別構造化文書データとして適したタグに変換していく。これにより、図１７において、条件Ａ１８０１に一致した場合には、中間構造化文書データから、社内規程文書に適用される用途別論理構造が付与された用途別構造化文書データが生成され、条件Ｂ１８０２に一致した場合には、議事メモに適用される用途別論理構造が付与された用途別構造化文書データが生成される。
【０１２４】
その後、図１８に示すように、表示部１１８が、変換前の中間構造化文書データと、変換後の用途別構造化文書データとを表示する。これにより、利用者は、適切な用途別構造化文書データが得られるか否かを確認することができる。また、当該インターフェースにおいても、ウィンドウ１７０１の対応関係を修正することで、ウィンドウ１７０３に表示される用途別構造化文書データの論理構造を修正することができる。また、各文書データを修正する場合、ウィンドウ１７０２及びウィンドウ１７０３のそれぞれに対して直接修正することもできる。図１８に示すインターフェースから、要素の変更や削除等を可能としたことで、最終的に利用者が所望する構造の用途別構造化文書データを生成することが可能となる。
【０１２５】
また、用途別構造化文書生成部１１３は、タグの変換の他に、利用用途に適した属性情報をメタ情報として、用途別構造化文書データに対して付与する。
【０１２６】
次に、本実施の形態にかかる文書処理装置１００において、中間構造化文書データを介した上で、入力文書データから用途別構造化文書データを生成する利点について説明する。当該説明では、入力文書データを利用者の利用用途に応じて、様々な用途別構造化文書データを生成する場合を想定している。
【０１２７】
この場合、図１９に示すように、従来通り中間構造化文書データを生成しない場合においては、入力文書データから、ある特定のＤＴＤ（Document  Type  Definition、例えばＤＴＤ（１））に変換し、その変換後の構造を付与した用途別構造化文書データを格納したと仮定する。
【０１２８】
その後、さらに異なるＤＴＤ（例えば、ＤＴＤ（２）又はＤＴＤ（３））への変換要求が生じた場合、ＤＴＤ（１）から、ＤＴＤ（２）又はＤＴＤ（３）への対応（マッピング）定義が必要となる。同様に、入力文書データから最初にＤＴＤ（２）やＤＴＤ（３）に変換していた場合についても、同様に他のＤＴＤとの対応定義が必要となる。つまり、用途別構造化文書データが３種類の場合、図１９で示した矢印の数である‘９’通りの対応定義が必要となる。
【０１２９】
さらに、ＤＴＤに応じて入力文書データに対する解析手法や、対応するタグ属性が存在しているとは限らない以上、ＤＴＤから他のＤＴＤに変換する際に解析手法やタグ属性の違いに応じた欠落が生じる。例えば、あるＤＴＤで、“番号あり”と“番号なし”箇条書きの区別をつけずに構造化した用途別構造化文書データを生成した場合、他のＤＴＤの用途別構造化文書データを生成する際に、これらを区別する情報が欠落するため、最初の解析結果を有効に活用した構造化が不可能になる。
【０１３０】
また、逐次、入力文書データから、任意のＤＴＤに変換することも考えられるが、このような変換で修正部による修正が必要な場合、入力文書データから任意のＤＴＤに変換する毎に、適切な構造化が行われるよう、利用者の修正が必要となり、作業負担が増大する。
【０１３１】
これに対して本実施の形態にかかる文書処理装置１００では、図２０に示すように、入力文書データから中間構造化文書データを生成してから、各ＤＴＤに対応する用途別構造化文書データに変換している。この場合、必要となる対応定義の数は、それぞれ出力ＤＴＤの種別数に１追加した数となるため、図１９に示す従来の手法と比べて必要な対応定義数を減少させることができる。また、入力文書データから中間構造化文書データを生成する際に、利用者が修正を行った場合、各ＤＴＤに対応する用途別構造化文書データに対して修正結果を反映させることができる。これにより、利用者の作業負担を減少させると共に、用途別構造化文書データに対して適切な用途別論理構造を付与することが可能となる。
【０１３２】
次に、本実施の形態にかかる文書処理装置１００の全体的な処理手順について、図２１を用いて説明する。
【０１３３】
まず、文書解析部１０６が、入力文書データに対して解析処理を行う（ステップＳ２１０１）。
【０１３４】
次に、行単位抽出部１０７が、解析後の入力文書データの情報を、行単位で抽出する（ステップＳ２１０２）。
【０１３５】
そして、特徴抽出部１０８が、行単位抽出部１０７により抽出された単位毎に、当該行に含まれる文字列の特徴を抽出する（ステップＳ２１０３）。
【０１３６】
その後、行属性特定部１１７、スコア算出部１０９及び判断部１１０などの構成が、各行毎の特徴に基づいて、汎用的な論理構造による中間構造化文書データを生成する（ステップＳ２１０４）。
【０１３７】
次に、中間生成部１１２が、生成された中間構造化文書データを、中間構造化文書データ記憶部１０５に登録する（ステップＳ２１０５）。
【０１３８】
その後、用途別構造化文書生成部１１３が、マッピング条件記憶部１１６及び用途別構造定義記憶部１０４を参照した上で、中間構造化文書データから、用途別構造化文書データを生成する（ステップＳ２１０６）。
【０１３９】
次に、本実施の形態にかかる図２１のステップＳ２１０４における中間構造化文書データの生成手順について、図２２を用いて説明する。
【０１４０】
まず、行属性特定部１１７は、行特徴の抽出結果を読み込む（ステップＳ２２０１）。次に、行属性特定部１１７は、見出し文字列記憶部１０１に記憶された見出し文字列を、見出し候補文字列として読み込む（ステップＳ２２０２）。さらに、行属性特定部１１７は、現在入力文書データから、特徴抽出部１０８により抽出された各行毎の特徴から抽出された見出しの候補となる文字列も、見出し候補文字列として追加する。
【０１４１】
また、行属性特定部１１７は、文書モデル記憶部１０２から文書モデルを読み込む（ステップＳ２２０３）。
【０１４２】
次に、行属性特定部１１７は、読み込んだ見出し候補文字列及び文書モデルを参照した上で、各行の特徴等に基づいて、文書モデルとして格納する各行の属性情報を生成する（ステップＳ２２０４）。なお、この生成された属性情報は、文書モデルに対して追加される。
【０１４３】
そして、行属性特定部１１７は、入力文書データに対応する、初期論理構造Ｈxを生成する（ステップＳ２２０５）。当該初期論理構造Ｈxは、各行の属性情報の組み合わせに応じて複数生成される。なお、この初期論理構造Ｈxの生成手法には、既存の学習手法を適用する。
【０１４４】
その後、行属性特定部１１７は、初期論理構造を一つ選択する（ステップＳ２２０６）。そして、選択した初期論理構造の所定の階層で見出し候補文字列の組み合わせを用いて、部分的な文書領域を生成する（ステップＳ２２０７）。なお、最初の階層は、最も上位の階層となる。
【０１４５】
そして、スコア算出部１０９が、生成された部分的な文書領域に応じて、スコアを算出する（ステップＳ２２０８）。
【０１４６】
そして、判断部１１０が、現在保持している初期論理構造のスコアより、算出したスコアの方が大きいか否か判断する（ステップＳ２２０９）。なお、最初に選択された初期論理構造が、保持している初期論理構造として設定される。
【０１４７】
そして、判断部１１０が、算出したスコアの方が小さいと判断した場合には、特に処理を行わず、ステップＳ２２１２に進む。一方、判断部１１０が、算出したスコアの方が大きいと判断した場合には、今まで保持していた初期論理構造を削除し（ステップＳ２２１０）、今回の初期論理構造を汎用的な論理構造の候補として保持する(ステップＳ２２１１)。これにより、初期論理構造から、不適切な候補を棄却することで、見出し候補文字列や箇条書き候補についての誤判定結果が削除されていくことになる。この結果、相対的に精度の良い汎用的な論理構造が付与された中間構造化文書データを生成することが可能となる。
【０１４８】
そして、判断部１１０は、全ての初期論理構造について検証を行ったか否か判断する（ステップＳ２２１２）。行っていないと判断した場合（ステップＳ２２１２：Ｎｏ）、再びステップＳ２２０６から処理を開始する。
【０１４９】
なお、上述したステップＳ２２０６〜Ｓ２２１２までの処理は、初期論理構造の上位の階層から順に階層ごとに全ての階層について行うものとする。
【０１５０】
一方、判断部１１０が、全ての初期論理構造について検証を終了したと判断した場合（ステップＳ２２１２：Ｙｅｓ）、中間生成部１１２は、保持している初期論理構造に従って、中間構造化文書データを生成する（ステップＳ２２１３）。
【０１５１】
その後、中間生成部１１２は、生成した中間構造化文書データを、中間構造化文書データ記憶部１０５と、用途別構造化文書生成部１１３に対して出力する（ステップＳ２２１４）。
【０１５２】
上述した処理手順により、汎用的な論理構造が適切に付与された中間構造化文書データを生成することができる。
【０１５３】
次に、本実施の形態にかかる図２２のステップＳ２２０８における、スコア算出部１０９によるスコア算出手順について、図２３を用いて説明する。
【０１５４】
まず、スコア算出部１０９は、階層Ｔの初期設定を行う（ステップＳ２３０１）。最上位の階層の場合、階層Ｔに初期値として‘０’が設定される。また、それ以下の階層の場合、階層の数に応じた初期値が階層Ｔに設定される。この場合、見出し候補文字列のｈ０が適用される。初期論理構造の場合、ｈ０の候補には、文字列『１．』『２．』『３．』等が含まれる。
【０１５５】
そして、スコア算出部１０９は、階層Ｔにおける部分的な文書領域を、行属性特定部１１７から取得する（ステップＳ２３０２）。階層Ｔ＝０の場合、部分的な文書領域は、図９の大括弧で示した３つの要素からなる。これら要素をそれぞれt_1,t_2,t_3とする。最初に処理対象となる部分的な文書領域t_1とし、t_2,t_3の順に処理を行っていくものとする。なお、t_1は１行で構成されており、当該行の文字列は『タイトル』である。
【０１５６】
次に、スコア算出部１０９は、全ての見出し候補文字列を、行属性特定部１１７から取得する（ステップＳ２３０３）。
【０１５７】
そして、スコア算出部１０９は、取得した見出し候補文字列と一致する行が存在するか否か判断する（ステップＳ２３０４）。一致する場合には（ステップＳ２３０４：Ｙｅｓ）、当該行を見出し候補文字列と特定する（ステップＳ２３０５）。これにより、例えば、各行に“（１）”、“（２）”、“（３）”が含まれている場合、当該行が見出し候補文字列を含んでいると特定される。当該処理により、スコアの算出に必要な、部分的な文書領域t_i内の部分構造生成候補可能数が特定できる。
【０１５８】
また、スコア算出部１０９は、当該行の順序制約値を設定する（ステップＳ２３０６）。文書領域t_iにおいて初期値から出現しているのであれば“１”を設定し、初期値でない値が出現した場合には、初期値と差分＋１の値を設定する。
【０１５９】
そして、スコア算出部１０９が、処理対象となる行を次の行に移動する（ステップＳ２３０７）。
【０１６０】
その後、スコア算出部１０９が、それ以降の行で、見出し候補文字列と一致する行が存在するか否か判断する（ステップＳ２３０４）。
【０１６１】
そして、スコア算出部１０９が、一致する行が存在しないと判断した場合（ステップＳ２３０４：Ｎｏ）、部分的な文書領域t_iに含まれる各行のスコアを算出する（ステップＳ２３０８）。
【０１６２】
次に、スコア算出部１０９は、変数iに“１”追加する(ステップＳ２３０９)。そして、スコア算出部１０９は、全ての部分的な文書領域t_iについてスコアの算出が終了したか否か判断する（ステップＳ２３１０）。算出が終了していないと判断した場合（ステップＳ２３１０：Ｎｏ）、ステップＳ２３０２から再び処理を開始する。
【０１６３】
一方、スコア算出部１０９は、スコアの算出が終了したと判断した場合（ステップＳ２３１０：Ｙｅｓ）、全ての部分的な文書領域t_iの各行のスコアの総和を出力し（ステップＳ２３１１）、処理を終了する。
【０１６４】
上述した処理手順により、各見出し候補文字列を適用した場合のスコアを算出することができる。
【０１６５】
本実施の形態にかかる文書処理装置１００においては、上述した処理手順により、利用者が所望する構造化文書を生成することが可能となる。
【０１６６】
本実施の形態にかかる文書処理装置１００においては、入力文書データの解析結果から用途別構造化文書データに依存しない汎用的な論理構造が付与された中間構造化文書データを生成した後、当該中間構造化文書データから用途別構造化文書データを生成することとした。このため、利用者の要求に応じて異なる種類の用途別構造化文書データを中間構造化文書データから容易に生成することが可能となり、用途別構造化文書データを生成する際の作業負担を軽減させる。
【０１６７】
換言すれば、本実施の形態にかかる文書処理装置１００は、用途別構造化文書データ間で詳細なルールや辞書を生成することなく、汎用的な論理構造と、利用者が利用する論理構造との対応付を行うことで、利用者が所望とする構造化がなされた用途別構造化文書データを生成できる。
【０１６８】
そして、文書処理装置１００においては、入力文書データの形式変更が生じた場合、汎用的な論理構造の定義のみ変更すればよく、各用途別構造化文書データとの対応関係の変更は生じない。このため、入力文書データの形式変更に対する、作業負担を軽減できる。
【０１６９】
また、用途別構造化文書データの構造変更要求に対しても、汎用的な論理構造と、構造を変更する論理構造との間の修正のみ行えばよく、利用者が他の用途別構造化文書データや入力文書データに対する既存のルールとの整合性や無矛盾性の検証の必要が生じない。このため、作業負担を軽減できる。
【０１７０】
図２４に示すように、本実施の形態にかかる文書処理装置１００は、ＣＰＵ２４０１などの制御装置と、ＲＯＭ（Read  Only  Memory）２４０２やＲＡＭ２４０３などの記憶装置と、ＨＤＤ２４０６と、ディスプレイ装置などの表示装置２４０５と、通信Ｉ／Ｆ２４０４と、キーボードやマウスなどの入力装置２４０７と、バス２４０８とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１７１】
本実施の形態にかかる文書処理装置１００で実行される文書処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１７２】
また、本実施の形態にかかる文書処理装置１００で実行される文書処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態にかかる文書処理装置１００で実行される文書処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１７３】
また、本実施の形態にかかる文書処理プログラムを、ＲＯＭ２４０２等に予め組み込んで提供するように構成してもよい。
【０１７４】
これらの場合、文書処理プログラムは、文書処理装置１００において上記記録媒体又はＲＯＭ２４０２から読み出して実行することによりＲＡＭ２４０３上にロードされ、上記ソフトウェア構成で説明した各部がＲＡＭ２４０３上に生成されるようになっている。
【０１７５】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態の構成を組み合わせたり、上記実施の形態に多様な変更または改良を加えることができる。
【図面の簡単な説明】
【０１７６】
【図１】第１の実施の形態にかかる文書処理装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかる見出し文字列記憶部が記憶する見出し候補文字列例を示す図である。
【図３】第１の実施の形態にかかる文書モデル記憶部が記憶する文書モデル例を示す図である。
【図４】第１の実施の形態にかかる汎用構造定義記憶部が記憶する汎用構造定義例を示す図である。
【図５】第１の実施の形態にかかる用途別構造定義記憶部１０４のテーブル構造を示す図である。
【図６】入力文書データの例を示す図である。
【図７】特徴抽出部１０８が、図６に示す入力文書データから抽出する行毎の属性情報の例を示した図である。
【図８】行属性特定部１１７により生成される複数の初期論理構造において、各階層の見出し候補文字列による相関関係を示した図である。
【図９】入力文書データから生成される部分的な文書領域の例を示した図である。
【図１０】初期論理構造Ｈ0の見出し候補文字列ｈ０に従って算出されるスコアの例を示した図である。
【図１１】初期論理構造Ｈeの見出し候補文字列ｈ０に従って算出されるスコアの例を示した図である。
【図１２】入力文書データを用いた更新後の文書モデル記憶部１０２が記憶する文書モデル例を示す図である。
【図１３】中間構造化文書データの例を示す図である。
【図１４】修正用インターフェースの第１の例を示した図である。
【図１５】修正用インターフェースの第２の例を示した図である。
【図１６】修正用インターフェースの第３の例を示した図である。
【図１７】中間構造化文書データから用途別構造化文書データを生成する際のマッピングの概念を示した説明図である。
【図１８】中間構造化文書データから用途別構造化文書データを生成する際のインターフェースの例を示した図である。
【図１９】従来の手法で必要な入力文書データと用途別構造化文書データとの間のマッピングを示した図である。
【図２０】本実施の形態にかかる文書処理装置における、入力文書データ、中間構造化文書データ及び用途別構造化文書データ間のマッピングを示した図である。
【図２１】第１の実施の形態にかかる文書処理装置における全体的な処理手順を示すフローチャートである。
【図２２】第１の実施の形態にかかる文書処理装置における中間構造化文書データの生成処理手順を示すフローチャートである。
【図２３】第１の実施の形態にかかるスコア算出部におけるスコア算出処理手順を示すフローチャートである。
【図２４】第１の実施の形態にかかる文書処理装置における、ハードウェア構成を示した図である。
【符号の説明】
【０１７７】
１００  文書処理装置
１０１  文字列記憶部
１０２  文書モデル記憶部
１０３  汎用構造定義記憶部
１０４  用途別構造定義記憶部
１０５  中間構造化文書データ記憶部
１０６  文書解析部
１０７  行単位抽出部
１０８  特徴抽出部
１０９  スコア算出部
１１０  判断部
１１１  格納部
１１２  中間生成部
１１３  用途別構造化文書生成部
１１４  修正部
１１５  利用者操作受付部
１１６  マッピング条件記憶部
１１７  行属性特定部
１１８  表示部
２４０１  ＣＰＵ
２４０２  ＲＯＭ
２４０３  ＲＡＭ
２４０４  通信Ｉ／Ｆ
２４０５  表示装置
２４０６  ＨＤＤ
２４０７  入力装置
２４０８  バス
【図１】
0005364296.tif 000002
【図２】
0005364296.tif 000003
【図３】
0005364296.tif 000004
【図４】
0005364296.tif 000005
【図５】
0005364296.tif 000006
【図６】
0005364296.tif 000007
【図７】
0005364296.tif 000008
【図８】
0005364296.tif 000009
【図９】
0005364296.tif 000010
【図１０】
0005364296.tif 000011
【図１１】
0005364296.tif 000012
【図１２】
0005364296.tif 000013
【図１３】
0005364296.tif 000014
【図１４】
0005364296.tif 000015
【図１５】
0005364296.tif 000016
【図１６】
0005364296.tif 000017
【図１７】
0005364296.tif 000018
【図１８】
0005364296.tif 000019
【図１９】
0005364296.tif 000020
【図２０】
0005364296.tif 000021
【図２１】
0005364296.tif 000022
【図２２】
0005364296.tif 000023
【図２３】
0005364296.tif 000024
【図２４】
0005364296.tif 000025