(57)【特許請求の範囲】
【請求項１】
学習用文書のツリー構造における各ノードの特徴情報と、該各特徴情報が本文部分として正例か否かを分類したラベルとを用いて機械学習した学習結果に基づきツリー構造で構造化された文書から本文部分を抽出する文書抽出方法であって、
本文部分判定手段が、入力文書のノード毎に抽出された特徴情報を前記学習結果に基づき分類して各ノードが本文部分か否かを判定する本文部分判定ステップと、
境界取得手段が、入力文書のツリー構造中、本文部分判定ステップの判定結果が本文部分であるリーフノードを取得し、リーフノードを下位ノードとして、下位ノードに対する前記判定結果に応じて該下位ノードから上位ノードに遡って本文部分の境界を順次に探索し、該境界を取得する境界取得ステップと、
本文抽出手段が、境界取得ステップで取得した境界配下の文字列を本文部分として抽出する本文抽出ステップと、を有し、
境界取得ステップは、前記境界を探索する探索対象ノードの前記判定結果が本文部分のときに、
前記判定結果中、探索対象ノードの兄弟ノードに対する本文部分の割合が閾値以上でなければ、該探索対象ノードを前記境界とする一方、
前記割合が前記閾値以上であれば、探索対象ノードを親ノードに置き換えて前記境界を探索する
ことを特徴とする文書抽出方法。
【請求項２】
境界取得ステップは、探索対象の親ノードに対する前記判定結果が本文部分のときに前記割合が前記閾値以上でなければ、該親ノードの前記判定結果を非本文部分に補正する一方、
探索対象の親ノードに対する前記判定結果が非本文部分のときに前記割合が前記閾値以上であれば、該親ノードの前記判定結果を本文部分に補正する
ことを特徴とする請求項１記載の文書抽出方法。
【請求項３】
境界取得ステップは、前記兄弟ノードが子ノードを有していれば、該子ノードを探索対象ノードとする前記境界の探索を優先し、
該探索を優先した結果、兄弟ノードの前記判定結果が補正されていれば、補正後の判定結果に基づき前記割合を求める
ことを特徴とする請求項２記載の本文抽出方法。
【請求項４】
ツリー構造に構造化された文書から本文領域を抽出する文書抽出装置であって、
学習用文書のツリー構造における各ノードの特徴情報と、該各特徴情報が本文部分として正例か否かを分類したラベルとを用いて機械学習した結果を保持するデータベースと、
入力文書のノード毎に抽出された特徴情報を、データベースの保持情報に基づき分類して各ノードが本文部分か否かを判定する本文部分判定手段と、
入力文書のツリー構造中、本文部分判定手段の判定結果が本文部分であるリーフノードを取得し、リーフノードを下位ノードとして、下位ノードに対する前記判定結果に応じて該下位ノードから上位ノードに遡って本文部分の境界を順次に探索し、該境界を取得する境界取得手段と、
境界取得手段で取得した境界配下の文字列を本文部分として抽出する本文抽出手段と、を備え、
境界取得手段は、前記境界を探索する探索対象ノードの前記判定結果が本文部分のときに、
前記判定結果中、探索対象ノードの兄弟ノードに対する本文部分の割合が閾値以上でなければ、該探索対象ノードを前記境界とする一方、
前記割合が前記閾値以上であれば、探索対象ノードを親ノードに置き換えて前記境界を探索する
ことを特徴とする文書抽出装置。
【請求項５】
境界取得手段は、探索対象の親ノードに対する前記判定結果が本文部分のときに前記割合が前記閾値以上でなければ、該親ノードの前記判定結果を非本文部分に補正する一方、
探索対象の親ノードに対する前記判定結果が非本文部分のときに前記割合が前記閾値以上であれば、該親ノードの前記判定結果を本文部分に補正する
ことを特徴とする請求項４記載の文書抽出装置。
【請求項６】
境界取得手段は、前記兄弟ノードが子ノードを有していれば、該子ノードを探索対象ノードとする前記境界の探索を優先し、
該探索を優先した結果、兄弟ノードの前記判定結果が補正されていれば、補正後の判定結果に基づき前記割合を求める
ことを特徴とする請求項５記載の文書抽出装置。
【請求項７】
請求項４〜請求項６のいずれか１項に記載の本文抽出装置の各手段としてコンピュータを機能させるための本文抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＴＭＬやＸＭＬなどのマークアップ言語で記述され、構造化された文書から本文部分を抽出する技術に関する。
【背景技術】
【０００２】
現在、インターネット上には多数のＷｅｂページが存在している。このＷｅｂページ、即ちＨＴＭＬやＸＭＬなどのタグにより構造化された文書は、ツリー構造（木構造）で表すことができる。このツリー構造は、ノード（節点、頂点）とノード間を結ぶエッジ（枝、辺）あるいはリンクで表現され、下位のノードは上位のノードの範囲の中に含まれるという性質を有している。
【０００３】
このノードは、ツリー構造に含まれる要素やテキストを示す一つの単位を意味している。ＨＴＭＬ文書を一例に説明すれば、「＜ｈｔｍｌ＞＜ｂｏｄｙ＞＜ｐ＞これは特許です。＜／ｐ＞＜ｉ＞ｐａｔｅｎｔ＜／ｉ＞＜／ｂｏｄｙ＞＜／ｈｔｍｌ＞」というＨＴＭＬ文書には，要素ノード「ｈｔｍｌ」・「ｂｏｄｙ」・「ｐ」・「ｉ」と、テキストノード「これは特許です。」・「ｐａｔｅｎｔ」が含まれている。
【０００４】
ここでは要素ノード「ｂｏｄｙ」にとって下位の要素ノード「ｐ」・「ｉ」は子ノード（ｃｈｉｌｄ  ｎｏｄｅ）、要素ノード「ｐ」「ｉ」にとって上位の要素ノード「ｂｏｄｙ」は親ノード（ｐａｒｅｎｔ  ｎｏｄｅ）、要素ノード「ｐ」「ｉ」は同じ親ノードの兄弟ノードである。
【０００５】
各要素ノードは、最上位のノード（ルートノード）から当該要素ノードまでに経由した各ノードを列挙した文字列で表され、これを便宜上タグパスと呼ぶ。これは「ＸＰａｔｈ」と呼ばれる表記法を用いてもよく、例えば「／ｈｔｍｌ／ｂｏｄｙ／ｐ」のように表される。
【０００６】
このようなツリー構造を利用すれば、文書内のある部分を抽出する場合にツリー構造における特定の要素ノードの配下の全ノードを抽出することで、段落や表など文書内の構造的な区切りに沿った範囲を抽出することができる。
【０００７】
構造化された文書から本文部分を抽出する公知技術としては、タグ情報を除去してテキスト情報のみとして、テキスト情報を行単位で解析し、特徴付けを行い、その特徴から本文部分を抽出する手法が非特許文献１に提案されている。ここでは特徴から本文部分を抽出する際には一般的に機械学習が用いられる。この機械学習では判定対象の特徴をベクトル化し、正例か不例かの判定ラベルを付与した訓練データを複数用意し、訓練データから正例と不例の判定基準を作成することで、判定ラベルの付与されていないベクトルを入力した際に本文か否かを判定する２値分類器として利用できる。これらの手法はサポートベクターマシンや単純ベイズなどの手法がある。本文抽出に用いる場合には、判定対象となる部分が本文か否かという２値分類器を作成すればよい。
【０００８】
また、同一サイトのＷｅｂページはヘッダーやフッター及びメニュー部分などに類似性があるという性質からテキスト情報のみとした上で、類似部分を除外することで本文部分を抽出する手法が特許文献１に提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−３３８３６４
【非特許文献】
【００１０】
【非特許文献１】新納浩幸，佐々木稔”Ｗｅｂページ内の目的部分の自動抽出”  情報処理学会自然言語処理研究会  ２００４−ＮＬ・１６２（６）  ｐｐ．３３−４０
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の手法は、ツリー構造を利用して本文部分を抽出しているものの、文書から本部文分を十分に抽出できないおそれがある。すなわち、非特許文献１のようにテキスト情報のみでは、一般的に機械学習を用いても本文か否かを完全に判定することは難しく、すべての本文部分を抽出しえないおそれがある。
【００１２】
また、特許文献１のように、同一サイト内のＷｅｂ文書の類似性を利用する手法では、同一サイトのページを多数取得した上で比較する必要があるため、新しいサイトの少数ページのみを解析する場合には対応できないおそれがある。
【００１３】
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、ツリー構造で表現される文書から本文部分を高い精度で抽出可能な技術の提供を解決課題としている。
【課題を解決するための手段】
【００１４】
そこで、本発明は、まず、機械学習の判定基準を用いた２値分類によるツリー構造で表現される文書のノード毎に本文か否かを判定する。つぎに本文判定範囲を下位ノード（例えば末端のリーフノード）から上位に遡って本文部分の境界を求め、該境界の下位を本文部分とする。
【００１５】
本発明の一態様は、学習用文書のツリー構造における各ノードの特徴情報と、該各特徴情報が本文部分として正例か否かを分類したラベルとを用いて機械学習した学習結果に基づきツリー構造で構造化された文書から本文部分を抽出する文書抽出方法であって、本文部分判定手段が、入力文書のノード毎に抽出された特徴情報を前記学習結果に基づき分類して各ノードが本文部分か否かを判定する本文部分判定ステップと、境界取得手段が、入力文書のツリー構造中、下位ノードに対する本文部分判定ステップの判定結果に応じて該下位ノードから上位ノードに遡って本文部分の境界を順次に探索し、該境界を取得する境界取得ステップと、本文抽出手段が、境界取得ステップで取得した境界配下の文字列を本文部分として抽出する本文抽出ステップと、を有する。
【００１６】
本発明の他の態様は、ツリー構造に構造化された文書から本文領域を抽出する文書抽出装置であって、学習用文書のツリー構造における各ノードの特徴情報と、該各特徴情報が本文部分として正例か否かを分類したラベルとを用いて機械学習した結果を保持するデータベースと、入力文書のノード毎に抽出された特徴情報を、データベースの保持情報に基づき分類して各ノードが本文部分か否かを判定する本文部分判定手段と、入力文書のツリー構造中、下位ノードに対する本文部分判定手段の判定結果に応じて該下位ノードから上位ノードに遡って本文部分の境界を順次に探索し、該境界を取得する境界取得手段と、境界取得手段で取得した境界配下の文字列を本文部分として抽出する本文抽出手段と、を備える。
【００１７】
なお、本発明は、前記装置としてコンピュータを機能させるための本文抽出プログラムの態様としてもよい。このプログラムは、ネットワークや記録媒体を通じて提供することができる。
【発明の効果】
【００１８】
本発明によれば、ツリー構造で表現される文書から本文部分を高い精度で抽出することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る本文抽出装置の構成図。
【図２】同  データ処理図。
【図３】同  境界取得機能部の処理を示すフローチャート。
【図４】同  境界探索機能部の境界探索処理を示すフローチャート。
【図５】同  境界探索処理の実施例１のフローチャート。
【図６】同  境界探索処理の実施例２のフローチャート。
【図７】同  境界探索機能処理の具体例を示すツリー構造図。
【図８】同  対象ノード補正処理のフローチャート。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態に係る本文抽出装置を説明する。この抽出装置は、ＨＴＭＬ文書やＸＭＬ文書などのマークアップ言語で記述された文書、即ちツリー構造で表現される文書から本文部分（本文領域）を抽出する。
【００２１】
具体的には、機械学習による判定基準を用いた２値分類の判定に加え、ツリー構造における末端（最底辺）のリーフノード（葉ノード）から周辺情報（親ノードおよび兄弟ノードの２値分類結果）を考慮して親ノードが本文かを確認し、順次上位ノードに遡って本文と他の部分の境界ノードを探索し、探索の結果として得られた境界ノードの配下のテキストをすべて抽出する。ここではツリー構造では上位ノードが本文であれば、下位ノードはすべて本文である性質を応用し、下位ノードのすべてではなく、最適な閾値以上であればよいとする。
【００２２】
したがって、前記２値分類の判定結果に対して、多数決のような形式で上位ノードが真に本文に該当する否かが再度確認され、前記２値分類の判定結果が間違っていた場合には該判定結果を補正し、本文部分の抽出精度が向上する。
【００２３】
≪装置構成例≫
図１に基づき前記抽出装置の構成例を説明する。この抽出装置１は、様々なタスクに応じてＷｅｂページに記述された特定の情報を収集し、再構築してユーザに提示するシステムなどに利用される。例えば、Ｗｅｂページのニュース記事から該ニュース記事のタイトルと本文とを抽出するタスクなどが挙げられる。
【００２４】
前記抽出装置１は、コンピュータにより構成され、通常のコンピュータのハードウェアリソース、例えばＣＰＵ，メモリ（ＲＡＭ）、ハードディスクドライブ装置などのハードウェアリソースを備えている。このハードウェアリソースとソフトウェアリソース（ＯＳ，アプリケーションなど）の協働の結果、前記抽出装置１は、図１に示すように、機械学習用データ記憶部２，機械学習機能部３，本文部分判定モデルＤＢ４，解析対象文書記憶部５，解析対象データ作成機能部６，解析対象データ記憶部７，本文部分判定機能部８，本文部分判定データ記憶部９，境界取得機能部１０，境界判定データ記憶部１１，本文抽出機能部１２を実装する。
【００２５】
この各記憶部２．５．７．９．１１および前記判定モデルＤＢ４は、それぞれメモリ（ＲＡＭ）あるいはハードディスクドライブ装置などの記憶・保存手段に構築されているものとする。この各部２〜１２により文書のツリー構造およびタグ情報を利用した本文抽出が実行される。
【００２６】
すなわち、機械学習用文書に基づき機械学習の結果を収集する事前処理と、入力された未知の文書から本文部分を抽出する抽出処理とが行われる。この事前処理は前記各部２〜４を通じて行われる一方、抽出処理は前記各部５〜１２を通じて行われる。なお、事前処理は未知の入力文書の抽出処理に先立ってあらかじめ実施しておくものとする。以下、図２に基づき事前処理と抽出処理のデータ処理内容を説明する。
【００２７】
≪事前処理内容≫
まず、事前処理を説明すれば、図示省略の入力部を通じて幅広いジャンルの機械学習用文書、即ちＨＴＭＬ文書やＸＭＬ文書などのツリー構造で表現される文書を入力する。この機械学習用文書の各要素ノードから抽出された特徴情報と、該各特徴情報に事前に付与した判定レベルとを機械学習用データとして前記データ記憶部２に記憶しておく。
【００２８】
この特徴情報には、テキスト内容に関する素性とタグ情報に関する素性とを利用する。このテキスト内容に関する素性には、要素の配下に含まれるテキスト量や上位及び下位の要素ノードの内容などが用いられ、非特許文献１（２．２．２  素性の設定）に記載された１３種類の素性を用いてもよい。また、タグ情報に関する素性は、ＨＴＭＬのタグ情報など機械学習の手法でどのタグが本文かを学習する際に一般的に用いられるものでよい。例えば下位の要素ノードの中での特定タグの割合などが用いられる。この素性に対するマッチング結果を「１  ｏｒ  ０」で示し、例えば特徴情報を「２：１」のように素性Ｎｏとマッチング結果を対に表すものとする。
【００２９】
判定ラベルは、各特徴情報が本文部分として正例であれば「＋１」を付与し、不例であれば「−１」を付与する。この判定ラベルと特徴情報の前記マッチング結果とを併せて機械学習用データを出力する。図２中のＤ１は、前記データ記憶部２に記憶された機械学習用データの一例を示している。ここでは「２：１，３：１，１７：１，３０：１・・・」と「１：１，３：１，１２：１，６０：１・・・」とは特徴情報を示し、「＋１」と「−１」は該特徴情報の判定ラベルを示し、それぞれをペアにデータ格納されている。
【００３０】
機械学習機能部３は、前記データ記憶部２に記憶された機械学習用データを用いて２値分類の機械学習を行い、本文部分判定モデルを作成する（本文部分判定モデル作成ステップ）。例えば機械学習用データを「ｘ＝特徴情報」、「ｙ＝判定ラベル（１  ｏｒ  −１）」とし、正解クラスに最も適合する関数関係「ｙ＝ｆ（ｘ）」を求める。これにより抽出処理時に未知の文書の特徴情報に関係関数を適用し、正解クラスを得ることが可能となる。ここで作成された本文部分判定モデルは、前記判定モデルＤＢ４に格納される。なお、機械学習には、例えばサポートベクターマシン（ＳＶＭ）や単純ベイズなどの手法を用いることができる。
【００３１】
≪抽出処理内容≫
つぎに抽出処理は、前記入力部に解析対象の文書、即ちＨＴＭＬ文書やＸＭＬ文書などのツリー構造で表現される文書を入力することで開始される。例えばインターネット経由で収集したＷｅｂページを解析対象の文書として入力することができる。ここで入力されたれた解析対象の文書は、前記文書記憶部５に記憶される。
【００３２】
その後に前記データ作成機能部６は、前記文書記憶部５を参照して解析対象文書を取得する。この解析対象文書の要素ノード毎に特徴情報を抽出し、該特徴情報を当該要素ノードのタグパスと併せて解析対象データを作成する（解析対象データ作成ステップ）。この特徴情報は事前処理と同様なものとし、作成された解析対象データは出力され、前記データ記憶部７に記憶される。
【００３３】
図２中のＤ２は、前記データ記憶部７に記憶された解析対象データの一例を示している。ここでは「／ｈｔｍｌ／ｂｏｄｙ」と「／ｈｔｍｌ／ｂｏｄｙ／ｄｉｖ」とはタグパスを示し、「１：１，２：１，１１：１，３５：１」と「１：１，３：１，１４：１，４５：１」とは特徴情報を示し、それぞれをペアにデータ格納されている。
【００３４】
前記判定機能部８は、前記データ記憶部７および前記判定モデルＤＢ４を参照して解析対象データと本文部分判定モデルとを取得する。この取得後に解析対象データを素性ベクトルとして、サポートベクターマシンなどにより本文部分判定モデルを用いた２値分類を行い、特徴情報が本文部分か否かの判定結果を「−１」から「＋１」の数値で表し（「＋」＝本文部分、「−」＝非本文部分）、該特徴情報に対応するタグパスと併せて本文部分判定データを作成する（本文部分判定ステップ）。このとき２値分類は、サポートベクターマシンに限らず、機械学習機能部３の学習のときに利用した手法と同様であればよく、単純ベイズなどの手法を用いることもできる。作成された本文部分判定データは出力され、前記データ記憶部９に記憶される。
【００３５】
図２中のＤ３は、前記データ記憶部９に記憶された本文部分判定データの一例を示している。ここでは「／ｈｔｍｌ／ｂｏｄｙ」と「／ｈｔｍｌ／ｂｏｄｙ／ｄｉｖ」とはタグパスを示し、「−０．４２」と「＋０．８６」とは判定結果とを示し、それぞれペアにしてデータ格納されている。
【００３６】
境界取得機能部１０は、前記抽出装置１の主要処理、即ち本文部分判定データを用いて入力文書の本文部分と他の部分との境界となる要素ノード（境界ノード）のタグパスを境界判定データとして取得する（境界取得ステップ）。
【００３７】
ここでは境界取得機能部１０は、まず前記データ記憶部９を参照して本文部分判定データを取得する。この本文部分判定データから入力文書のツリー構造中、末端（最底辺）の要素ノードであって、判定結果が本文部分（判定結果＝「＋」）の各リーフノードを取得する。
【００３８】
そして、取得したリーフノードの情報（タグパス）に対して境界探索処理を実行する。すなわち、リーフノードの親ノードと兄弟ノードの判定結果を考慮し、上位ノードのどこまでが本文部分かを探索する。このとき「親ノードが本分部分と判定されているか否か（親ノード＝「＋」）」と「兄弟ノードの何割が本文部分と判定されているか（兄弟ノードの何割が「＋」と判定されているか否か）」を探索の判断基準とする。この本文部分と判定された兄弟ノードの割合は任意とし、あらかじめ閾値として設定されるものとする。
【００３９】
ここでは各リーフノードから順次に上位の要素ノードに遡って境界探索処理を実施し、最上位の要素ノードを当該リーフノードから得られた本文部分の境界とする。このとき全てのリーフノードから抽出された境界の中で重複している要素ノードや他の要素ノードの下位に含まれている要素ノードを除去し、境界判定データを作成する。作成された境界判定データ（境界ノードのタグパス）は出力され、前記データ記憶部１１に記憶される。
【００４０】
図２中のＤ４は、前記データ記憶部１１に記憶された境界判定データの一例を示している。ここでは境界ノードのタグパスを「／ｈｔｍｌ／ｂｏｄｙ／ｄｉｖ／ｄｉｖ」と「／ｈｔｍｌ／ｂｏｄｙ／ｄｉｖ／ｔｄ」と示している。
【００４１】
前記抽出機能部１２は、前記文書記憶部５．１１を参照して解析対象の文書と境界判定データとを取得し、解析対象の文書から境界判定データのすべての境界ノードの配下のテキスト、即ち境界ノードの成長方向（下方向）における要素ノードのテキストを本文部分として抽出する（本文部分抽出ステップ）。抽出されたテキストは、ロボット型検索エンジンのインデックス作成に利用することもできる。
【００４２】
≪境界取得手段１０の具体的処理内容≫
以下、図３に基づき前記抽出装置１の主要処理、即ち境界取得機能部１０の具体的内容を詳細に説明する。ここでは境界取得機能部１０は、図３に示すように、境界ノードのタグパスを探索する境界探索機能部１０ａを有しているものとする。
【００４３】
Ｓ０１．Ｓ０２：境界取得機能部１０は、前記データ記憶部９の本文部分判定データを参照して本文部分と判定されているリーフノードの情報（タグパス）を取得する（Ｓ０１）。ここで取得したすべてのリーフノードの情報（タグパス）に対して境界探索が実行される（Ｓ０２）。
【００４４】
Ｓ０３：境界取得機能部１０は、Ｓ０１で取得したリーフノードを探索対象ノードとし、そのタグパスを境界探索機能部１０ａに送って、境界探索機能部１０ａに境界ノードのタグパスを探索させる。境界探索機能部１０ａにて探索された境界ノードのタグパスは境界取得機能部１０に送られる。
【００４５】
図４に基づき境界探索機能部１０ａの境界探索処理を説明する。ここでは入力タグパス、即ち境界探索機能部１０ａに送られたリーフノード（探索対象ノード）のタグパスは「ＣＵＲ＿ＰＡＴＨ」とする。まず、境界探索機能部１０ａは、タグパス「ＣＵＲ＿ＰＡＴＨ」の周辺ノードの判定結果の値を取得する（Ｓ１１）。
【００４６】
すなわち、境界探索機能部１０ａは、前記データ記憶部９を参照して、本文部分判定データＤ３からタグパス「ＣＵＲ＿ＰＡＴＨ」の親ノードおよび兄弟ノードの判定結果を取得する。ここで図４中の「ＰＡＲＥＮＴ＿ＰＡＴＨ」は親ノードのタグパスを示し、「ＢＲＯＴＨＥＲ＿ＰＡＴＨ＿ｘｘ」は「ｘｘ番目」の兄弟ノードのタグパスを示している。
【００４７】
つぎにＳ１１で取得した親ノードに対する判定結果が正例か否か、即ち判定結果の値が「０」以上か否かを確認する（Ｓ１２）。確認の結果、親ノードに対する判定結果の値が「０」以上であればＳ１３に進む一方、該値が「０」未満であればＳ１４に進む。
【００４８】
Ｓ１３〜Ｓ１６では、ツリーの構造の性質、即ち親ノードが本文部分であれば子ノードは必ず本文部分であることを利用し、兄弟ノードの本文部分の割合を勘案し、（Ａ）親ノードが本文部分にも拘らず不例と判定されている場合、（Ｂ）親ノードが非本文部分にも拘らず正例と判定されている場合を改善する。
【００４９】
具体的には、Ｓ１３．Ｓ１４では、Ｓ１１で取得した兄弟ノードに対する判定結果が正例か否か、即ち兄弟ノードに対する判定結果の値「０」以上の割合が事前に設定された閾値以上か否かを確認する。このとき兄弟ノードの数量は、自ノード、即ちタグパス「ＣＵＲ＿ＰＡＴＨ」のノード自体も含めるものとする。
【００５０】
Ｓ１３の確認の結果、前記割合が閾値未満であれば、親ノードに対する本文部分判定データの値「０」以上は誤りと最終判定し、タグパス「ＣＵＲ＿ＰＡＴＨ」を境界ノードのタグパスとして境界取得機能部１０に送る（Ｓ１５）。一方、前記割合が閾値以上であれば、親ノードに対する判定結果の値「０」以上は正しと最終判定し、タグパス「ＣＵＲ＿ＰＡＴＨ」を親ノードのタグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」に置き換え、該タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」に対してＳ１１以降の処理を行う（Ｓ１６）。
【００５１】
Ｓ１４の確認の結果、前記割合が閾値未満であれば、親ノードに対する判定結果の値「０」未満は正しいと最終判定し、タグパス「ＣＵＲ＿ＰＡＴＨ」を境界ノードのタグパスとして境界取得機能部１０に送る（Ｓ１５）。一方、前記割合が閾値以上であれば、親ノードに対する判定結果の値「０」未満は誤りと最終判定し、タグパス「ＣＵＲ＿ＰＡＴＨ」を親ノードのタグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」に置き換え、該タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」に対してＳ１１以降の処理を行う（Ｓ１６）。
【００５２】
このようなＳ１３．Ｓ１４中、兄弟ノードが自ノード、即ちタグパス「ＣＵＲ＿ＰＡＴＨ」のノードのみの場合には前記割合が１００％なため、Ｓ１３．Ｓ１４のいずれの場合でも必ずＳ１６にて親ノードのタグパスに置換され、Ｓ１１以降の処理が行われる。なお、Ｓ１１〜Ｓ１６の境界探索の結果、最上位（／ｈｔｍｌ／ｂｏｄｙなど）まで境界探索が終了すれば該最上位のタグパスを、Ｓ１５で境界ノードのタグパスとして出力する。
【００５３】
ここでＳ１３．Ｓ１４の閾値は、親ノードの判定結果に対する検証精度、即ち本文抽出の精度が高くなるように調整されているものとする。この本文抽出の精度を（１）正解率（ｐｒｅｃｉｓｉｏｎ）：本文部分として抽出された文が真に本文部分である割合、（２）再現率（ｒｅｃａｌｌ）：抽出された本文部分が本来抽出される本文部分に対する割合で表して説明すれば、Ｓ１３．Ｓ１４共に閾値を高く設定すると親ノードが満たすべき子ノードの正解割合が高くなり、確実に本文部分のノードのみ上位に遡って探索される。
【００５４】
しかしながら、本来ならば本文部分の親ノードが本文部分と推定されないこともあり、正解率は向上するが再現率が低下するおそれがある。例えば兄弟ノードの前記割合が「７割」であっても、閾値が「８割」に設定されていれば、上位ノードに遡らないため、再現率は低下する。一方、閾値を低く設定すると親ノードは比較的容易に本文部分とみなされるため、再現率は向上するものの、非本文部分の親ノードも本文部分とされ、正解率が低下するおそれがある。
【００５５】
そこで、正解率と再現率のいずれを重視するかは本文抽出の利用目的（タスク）に応じて調整し、Ｓ１３．Ｓ１４の閾値を設定するものとする。例えば非本文部分が若干含まれても問題の無い利用目的であれば閾値を低めに調整すればよく、非本文部分が含まれていると問題の生ずる利用目的であれば閾値を高めに調整すればよい。このときＳ１３．Ｓ１４の閾値は、同じ値に設定してもよいが、異なる値の組合せの評価実験で高精度の本文抽出結果を得られたため、異なる値の組合せを用いることが好ましい。
【００５６】
Ｓ０４．Ｓ０５：境界取得機能部１０は、Ｓ０３で境界探索機能部１０ａから送られた境界ノードのタグパスが既に境界判定データに存在するか否かを確認する（Ｓ０４）。確認の結果、境界判定データに存在しなければ該タグパスを境界判定データとして前記データ記憶部１１に記憶させる。一方、既に境界判定データに存在すれば該タグパスを除去し、処理を終了する（Ｓ０５）。
【００５７】
≪実施例１≫
図５に基づき境界探索処理の実施例を説明する。ここでは各要素ノードには探索フラグ「０  ｏｒ  １」が立てられているものとする。この探索フラグ「１」はリーフノードおよび境界探索時に最終判定が終了済の要素ノードを示し、探索フラグ「０」は、境界探索時の最終判定が未終了の要素ノードを示している。
【００５８】
また、図５中のＳ２１はＳ１１に相当し、Ｓ２３はＳ１２に相当し、Ｓ２５はＳ１３に相当し、Ｓ２６はＳ１４に相当し、Ｓ２９はＳ１５に相当し、Ｓ３０はＳ１６に相当し、Ｓ２２．Ｓ２４．Ｓ２７．Ｓ２８が追加されている点で図４と相違している。また、Ｓ２９．Ｓ３０で探索フラグの切り替えが追加されている点でも図４と相違している。
【００５９】
この実施例の詳細を説明すれば、リーフノードのタグパス「ＣＵＲ＿ＰＡＴＨ」が入力されると、境界探索機能部１０ａは本文部分判定データＤ３からタグパス「ＣＵＲ＿ＰＡＴＨ」の親ノード「ＰＡＲＥＮＴ＿ＰＡＴＨ」および各兄弟ノード「ＢＲＯＴＨＥＲ＿ＰＡＴＨ＿ｘｘ」の判定結果の値を取得する（Ｓ２１）。この取得後に兄弟ノードの探索フラグ「０  ｏｒ  １」を確認する（Ｓ２２）。
【００６０】
このＳ２２の確認の結果、すべての兄弟ノードの探索フラグが「１」であれば、Ｓ２３〜Ｓ２６の処理を実施する。このときＳ２５の確認時に兄弟ノードの正例の割合（前記判定結果の値「０」以上の割合）が前記閾値未満であれば、親ノードの判定結果の値「０」以上は誤りと最終判定し、該値を「０」未満に補正して（Ｓ２７）、Ｓ２９に進む。また、Ｓ２５で前記割合が前記閾値以上であれば、親ノードの判定結果の値「０」以上は正しいと最終判定し、Ｓ３０に進む。
【００６１】
Ｓ２６で前記割合が前記閾値以上であれば、親ノードの判定結果の値「０」未満は誤りと最終判定し、該値を「０」以上に補正して（Ｓ２７）、Ｓ３０に進む。また、Ｓ２６で前記割合が前記閾値未満であれば、親ノードの判定結果の値「０」以上は正しいと最終判定し、Ｓ２９に進む。
【００６２】
Ｓ２９では、親ノードの探索フラグを「１」に切り替え、Ｓ１５と同様に「ＣＵＲ＿ＰＡＴＨ」を境界ノードのタグパスとして境界取得機能部１０に送る。また、Ｓ３０でも、親ノードの探索フラグを「１」に切り替え、Ｓ１６と同様にタグパス「ＣＵＲ＿ＰＡＴＨ」を「ＰＡＲＥＮＴ＿ＰＡＴＨ」に置き換えて、該タグパスに対するＳ２１以降の処理を開始する。
【００６３】
一方、Ｓ２２でいずれかの兄弟ノードの探索フラグが「０」であれば、該兄弟ノードのリーフノードの一つを境界探索機能部１０ａに入力する（Ｓ２４）。この場合には「ＣＵＲ＿ＰＡＴＨ」を入力とする境界探索を待機させ、該兄弟ノードのリーフノードのタグパス入力に基づくＳ２３〜Ｓ３０の境界探索を優先し、Ｓ２９．Ｓ３０で該兄弟ノードの探索フラグを「１」に切り替える。
【００６４】
このとき該兄弟ノードが正例なときにその下位のリーフノードの前記割合が前記閾値未満であれば、Ｓ２７で該兄弟ノードの判定結果が補正される。また、該兄弟ノードが不例なときにその下位のリーフノードの前記割合が前記閾値以上であれば、Ｓ２８で該兄弟ノードの判定結果が補正される。
【００６５】
このような優先探索処理の終了後、即ち探索フラグ「１」への切り替え後に「ＣＵＲ＿ＰＡＴＨ」を入力とする境界探索処理を再開する。このとき優先探索処理時に兄弟ノードの判定結果の値がＳ２７．Ｓ２８で補正されていれば、再開された境界探索処理時におけるＳ２５．Ｓ２６の前記割合は、該補正後の最終判定結果に基づき算出する。これによりＳ２５．Ｓ２６の前記割合の正確性が増し、Ｓ２９の境界として出力されるタグパスの精度を向上させることができる。なお、優先探索処理のＳ２９で出力されたタグパスは、兄弟ノードの部分ツリー（部分木）に関するものであるため、「ＣＵＲ＿ＰＡＴＨ」を入力とする境界探索では無視するものとする。
【００６６】
≪実施例２≫
図６に基づき境界探索処理の他の実施例を説明する。図６中のＳ３１は、Ｓ２１に相当し、Ｓ３４はＳ２２に相当し、Ｓ３５はＳ２３に相当し、Ｓ３６はＳ２４に相当し、Ｓ３７はＳ２５に相当し、Ｓ３８はＳ２６に相当し、Ｓ３９はＳ２７に相当し、Ｓ４０はＳ２８に相当し、Ｓ４１はＳ２９に相当し、Ｓ４２はＳ３０に相当し、Ｓ３２．Ｓ３３．Ｓ３６ａが追加されている点で図５と相違している。
【００６７】
この実施例によれば、リーフノードのタグパス「ＣＵＲ＿ＰＡＴＨ」が入力されると、境界探索機能部１０ａは本文部分判定データＤ３からタグパス「ＣＵＲ＿ＰＡＴＨ」の親ノード「ＰＡＲＥＮＴ＿ＰＡＴＨ」および各兄弟ノード「ＢＲＯＴＨＥＲ＿ＰＡＴＨ＿ｘｘ」の判定結果の値を取得する（Ｓ３１）。この取得後に親ノードの探索フラグが「０  ｏｒ  １」を確認する（Ｓ３２）。
【００６８】
Ｓ３２の確認の結果、親ノードの探索フラグが「０」であれば、「ＣＵＲ＿ＰＡＴＨ」のリーフノードは兄弟ノード中、最初の入力であるから、図５の境界探索処理と同様にＳ３４〜Ｓ４２の処理を実施する。
【００６９】
一方、Ｓ３２の確認の結果、親ノードの探索フラグが「１」であれば、該親ノードの判定結果の値が「０」以上か否かを確認する（Ｓ３３）。ここで親ノードの探索フラグは「１」のときには該親ノードは「ＣＵＲ＿ＰＡＴＨ」と兄弟のリーフノードのタグパス入力時に最終判定が既に行われている。したがって、例えば親ノードの判定結果がＳ３９．Ｓ４０で補正されていれば、該補正後の判定結果の値が「０」以上か否か確認される。
【００７０】
このＳ３２の確認の結果、親ノードの探索フラグが「１」であれば、該親ノードの判定結果の値が「０」以上か否かを確認する（Ｓ３３）。ここで親ノードの探索フラグは「１」のときには該親ノードは「ＣＵＲ＿ＰＡＴＨ」と兄弟のリーフノードのタグパス入力時に最終判定が既に行われている。したがって、例えば親ノードの判定結果がＳ３９．Ｓ４０で補正されていれば、該補正後の判定結果の値が「０」以上か否か確認される。
【００７１】
このＳ３３の確認の結果、判定結果の値が「０」以上であれば、タグパス「ＣＵＲ＿ＰＡＴＨ」を「ＰＡＲＥＮＴ＿ＰＡＴＨ」に置き換えて、該タグパスを入力とするＳ３１以降の処理を実施する。一方、Ｓ３３の確認の結果、判定結果の値「０」未満であれば、「ＣＵＲ＿ＰＡＴＨ」を境界ノードのタグパスとして出力する（Ｓ４１）。このとき親ノードの探索フラグは「１」のままとし、「ＣＵＲ＿ＰＡＴＨ」と兄弟のリーフノード入力時にもＳ３２．Ｓ３３の確認を行う。このように兄弟ノードの入力時における親ノードの最終判定結果（補正結果など）を利用することで、重複処理を回避し、境界探索の処理効率を向上させることができる。
【００７２】
なお、Ｓ３６の兄弟ノードのリーフノード入力による境界探索処理時に該兄弟ノードの親ノードの探索フラグが「１」に切り替えられている場合がある。そこで、Ｓ３６ａでは、該親ノードの探索フラグを再確認し、探索フラグが「１」であればＳ３３に進む一方、「０」であればＳ３５以降の処理を実施させている。
【００７３】
≪具体的な処理例≫
以下、図７に基づき境界探索機能部１０ａの具体的な処理例を説明する。ここでは図６の実施例２に基づきツリー構造Ｔ中から本文部分の境界ノードを探索するものとする。このとき最初にサブツリーＳＴ１のリーフノード「Ｐ」のタグパスが境界探索機能部１０ａに入力されるものとする。また、境界探索機能部１０ａは、不例のリーフノードを入力可能に設定されているものとする。
【００７４】
この図７中、（Ａ）はツリー構造Ｔの各ノードに対する本文部分判定データの判定結果を示し、（Ｂ）はツリー構造Ｔの各ノードに対する最終判定の結果を示している。このツリー構造Ｔ中、サブツリーＳＴ１．ＳＴ２は本来の本文部分とし、サブツリーＳＴ３．ＳＴ４は本来の非本文部分とする。なお、Ｓ２５．Ｓ２６の閾値は、共に７０％に設定されているものとする。
【００７５】
ここでサブツリーＳＴ１のリーフノード「Ｐ」のタグパスは、最初に境界探索機能部１０ａに入力されるため、Ｓ３２では探索フラグ「０」と確認される。また、兄弟ノード「Ｐ」はすべてリーフノードであるから、Ｓ３４では各兄弟ノードの探索フラグ「１」と確認される。
【００７６】
そして、サブツリーＳＴ１は、図７中の（Ａ）に示すように、親ノード「ＤＩＶ」および兄弟ノード「Ｐ」の判定結果がすべて正例と判定されていることから、親ノード「ＤＩＶ」の正例は、図７中の（Ｂ）に示すように、Ｓ３５．Ｓ３７を通じて正しいものと最終判定される。したがって、Ｓ４２で親ノード「ＤＩＶ」の探索フラグを「１」に切り替え、タグパスを該親ノードに置き換えて、該親ノードのタグパスがＳ３１に入力される。
【００７７】
このときＳ３２で「ＤＩＶ」の親ノード「ＢＯＤＹ」の探索フラグ「０」と確認され、Ｓ３４でサブツリーＳＴ２〜ＳＴ４の「ＤＩＶ」の案索フラグ「０」と確認される。したがって、Ｓ３６でサブツリーＳＴ２〜ＳＴ４のリーフノードが順に境界探索機能部１０ａに入力され、サブツリーＳＴ１の「ＤＩＶ」入力の境界探索を待機させ、サブツリーＳＴ２〜ＳＴ４の境界探索を優先させる。
【００７８】
サブツリーＳＴ２は、図７中の（Ａ）に示すように、親ノード「ＤＩＶ」が不例と判定され、兄弟ノード「Ｐ」がすべて正例と判定されている。したがって、親ノード「ＤＩＶ」の不例は、図７中の（Ｂ）に示すように、Ｓ３５．Ｓ３８を通じて誤りと最終判定され、親ノード「ＤＩＶ」をＳ４０で正例に補正し、Ｓ４２で親ノード「ＤＩＶ」の探索フラグを「１」に切り替え、タグパスを親ノード「ＤＩＶ」に置き換える。
【００７９】
ここで置き換えた「ＤＩＶ」のタグパスがＳ３１に入力されるものの、Ｓ３２で親ノード「ＢＯＤＹ」の探索フラグ「０」と確認され、Ｓ３４でサブツリーＳＴ３．ＳＴ４の「ＤＩＶ」の探索フラグ「０」と確認されることから、該「ＤＩＶ」入力の境界探索を待機させ、サブツリーＳＴ３．ＳＴ４の境界探索を優先させる。
【００８０】
サブツリーＳＴ３は、図７中の（Ａ）に示すように、親ノード「ＤＩＶ」が正例と判定され、一つの子ノード「Ｐ」が正例と判定され、他の子ノード「Ｐ」がすべて不例と判定されている。この場合には、親ノード「ＤＩＶ」の判定結果は、図７中の（Ｂ）に示すように、正例の子ノード「Ｐ」を入力とする境界探索時にＳ３９で補正される。
【００８１】
すなわち、該子ノード「Ｐ」は、親ノードの判定結果が「正例」なため（Ｓ３５）、Ｓ３７の確認に移行する。このとき他のすべての兄弟ノードが不例と判定されているため、兄弟ノードの正例の割合は「２５％」にすぎず、Ｓ３７の閾値未満と確認される。そうすると、親ノード「ＤＩＶ」の正例は誤りと最終判定され、該親ノードをＳ３９で不例に補正する。この場合は、Ｓ４１で親ノードの探索フラグが「１」に切り替えられ、入力ノード「Ｐ」のタグパスが境界ノードのタグパスとして出力される。
【００８２】
サブツリーＳＴ４は、親ノード「ＤＩＶ」および各子ノード「Ｐ」の判定結果が不例なため、Ｓ３５．Ｓ３８を通じて親ノード「ＤＩＶ」の判定結果は正しいと判定され、該親ノードの探索フラグが「１」に切り替えられる。このときＳ４１で出力されるタグパスは境界ノードではなく、本文部分判定データに従って不例と扱われる。
【００８３】
サブツリーＳＴ３．ＳＴ４に対する探索フラグ「１」への切り替え後に、親ノード「ＢＯＤＹ」の探索フラグが確認され（Ｓ３６ａ）、サブツリーＳＴ２の「ＤＩＶ」入力による境界探索が再開される。このとき親ノード「ＢＯＤＹ」の探索フラグは「０」であるから、Ｓ３５で該親ノード「ＢＯＤＹ」が正例か否か確認される。ここでは親ノード「ＢＯＤＹ」は、図７中の（Ａ）に示すように、不例と判定されているため、Ｓ３８でサブツリーＳＴ２〜ＳＴ４の「ＤＩＶ」に対する正例の割合が閾値以上か否か確認される。このときサブツリーＳＴ１．ＳＴ２の「ＤＩＶ」は正例と最終判定されているものの、サブツリーＳＴ３の「ＤＩＶ」は不例に補正され、サブツリーＳＴ４の「ＤＩＶ」は不例と判定されている。
【００８４】
そうすると、兄弟ノードの正例の割合は５０％にすぎず、Ｓ３８の閾値未満と確認されるから、図７中の（Ｂ）に示すように、親ノード「ＢＯＤＹ」の不例は正しいものと最終判定され、Ｓ４１で親ノード「ＢＯＤＹ」の探索フラグが「１」に切り替えられる。また、サブツリーＳＴ１の「ＤＩＶ」のタグパスが境界ノードのタグパスとして出力される。
【００８５】
その後にサブツリーＳＴ１の「ＤＩＶ」入力の境界探索が再開されるものの、既に親ノード「ＢＯＤＹ」の探索フラグが「１」に切り替えられているので（Ｓ３６ａ）、Ｓ３３に進む。このとき親ノード「ＢＯＤＹ」は不例と判定されているため、Ｓ４１でサブツリーＳＴ２の「ＤＩＶ」のタグパスが境界ノードのタグパスとして出力される。
【００８６】
このように前記抽出装置１によれば、本文部分判定データの判定結果、即ち２値分類の判定に加えて、兄弟ノードの多数決のような形式で上位ノードの判定結果を再確認し、該本文部分判定データの判定結果に誤りがあれば補正されることから、精度の高い本文抽出が可能となる。特に、本文部分判定データに基づき機械学習データＤ１に含まれないＷｅｂサイト、例えば新しいサイトの少数ページでも高精度に本文抽出することもできる。
【００８７】
≪境界探索処理の他例≫
本発明は、上記実施形態に限定されるものではなく、境界探索処理に探索フラグを補正（切り替え）する対象ノード補正機能部１０ｂを境界取得機能部１０に追加することもできる。
【００８８】
図８に基づき対象ノード補正機能部１０ｂの処理を説明する。ここでは図６中のＳ３６の兄弟ノードを入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」とし、該兄弟ノードのリーフノードの境界探索機能部１０ａに対する入力は行われないものとする。
【００８９】
まず、対象ノード補正機能部１０ｂは、入力タグパスの各子ノード「ＣＨＩＬＤ＿ＰＡＴＨ＿ｘｘ」に対する探索フラグと、本文部分判定データＤ３の判定結果とを取得する（Ｓ５１．Ｓ５２）。この取得後に各子ノードの探索フラグ「０  ｏｒ  １」を確認する（Ｓ５３）。
【００９０】
この確認の結果、各子ノードがリーフノード等であって探索フラグ「１」であれば（Ｓ５４）、入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」に対する判定結果が正例か否かを確認する（Ｓ５６）。この確認の判定結果が正例であればＳ５７に進む一方、不例であればＳ５８に進む。
【００９１】
Ｓ５７．Ｓ５８では、各子ノード「ＣＨＩＬＤ＿ＰＡＴＨ＿ｘｘ」の判定結果が正例の割合が閾値以上か否かを確認する。Ｓ５７の確認の結果、前記割合が前記閾値以上であれば、入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」の探索フラグを「１」に切り替え、図６中のＳ３６に出力し、Ｓ３６ａに進む。一方、前記割合が前記閾値未満であれば、判定結果を不例に補正（Ｓ５９）した後に、同様に入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」の探索フラグを「１」に切り替え、図６中のＳ３６に出力し、Ｓ３６ａに進む。
【００９２】
Ｓ５８の確認の結果、前記割合が前記閾値未満であれば、入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」の探索フラグを「１」に切り替え、図６中のＳ３６に出力し、Ｓ３６ａに進む。一方、前記割合が前記閾値以上であれば、判定結果を正例に補正（Ｓ５９）した後に、同様に入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」の探索フラグを「１」に切り替え、図６中のＳ３６に出力し、Ｓ３６ａに進む。
【００９３】
このようにＳ５９で入力タグパスの判定結果が補正されるため、兄弟ノードの判定結果の補正結果に基づき３７．Ｓ３８の割合を算出でき、境界探索の精度を向上させることができる。
【００９４】
一方、Ｓ５３の確認の結果、探索フラグ「０」の子ノードがあれば、入力タグパス「ＰＡＲＥＮＴ＿ＰＡＴＨ」の対象ノード補正処理を待機させ、該子ノードのタグパスを対象ノード補正機能部１０ｂに入力し（Ｓ５５）、該タグパスを入力とするＳ５１〜Ｓ５９の補正処理を優先させる。この入力タグパスの待機は、すべての子ノードの探索フラグが「１」の親ノード、例えばリーフノードの親ノードの入力まで繰り返される。そして、探索フラグ「１」の親ノードから順次上位ノードまで遡って処理を再開し、待機中の最上位ノードの探索フラグが「１」になれば、Ｓ５６に進む。
【００９５】
≪プログラムなど≫
本発明は、前記各部２〜１２の一部若しくは全部としてコンピュータを機能させる本文抽出プログラムとして構成することもできる。この場合には前記各ステップ（Ｓ０１〜Ｓ０５．Ｓ１１〜Ｓ１６．Ｓ２１〜Ｓ３０．Ｓ３１〜Ｓ４１．Ｓ５１〜Ｓ５９を含む）の全ステップあるいは一部のステップをコンピュータに実行させる。
【００９６】
このプログラムは、Ｗｅｂサイトや電子メールなどネットワークを通じて提供することができる。また、前記プログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＭＯ，ＨＤＤ，ＢＤ−ＲＯＭ，ＢＲ−Ｒ，ＢＤ−ＲＥなどの記録媒体に記録して、保存・配布することも可能である。この記録媒体は、記録媒体駆動装置を利用して読み出され、そのプログラムコード自体が前記実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【符号の説明】
【００９７】
１…本文抽出装置
２…機械学習用データ記憶部
３…機械学習機能部
４…本文部分判定モデルＤＢ（データベース）
５…解析対象文書記憶部
６…解析対象データ作成機能部
７…解析対象データ記憶部
８…本文部分判定機能部（本文部分判定手段）
９…本文部分判定データ記憶部
１０…境界取得機能部（境界取得手段）
１０ａ…境界探索機能部
１０ｂ…対象ノード補正機能部
１１…境界判定データ記憶部
１２…本文抽出機能部（本文抽出手段）
Ｄ１…機械学習用データ
Ｄ２…解析対象データ
Ｄ３…本文部分判定データ
Ｄ４…境界判定データ
【図１】
0005520732.tif 000002
【図２】
0005520732.tif 000003
【図３】
0005520732.tif 000004
【図４】
0005520732.tif 000005
【図５】
0005520732.tif 000006
【図６】
0005520732.tif 000007
【図７】
0005520732.tif 000008
【図８】
0005520732.tif 000009