(57)【要約】【課題】ネットワーク上に存在する構造化された膨大な文書データから、検索キーワードを含む文書の本文全体を収集する場合、検索エンジンが採用する大規模な設備を構築せずに、検索キーワードを含む文書の本文を収集するようにする。【解決手段】ネットワーク上に存在する検索エンジンに、検索キーワードに基づいて検索させ、検索した文書一覧情報を取得し、取得した文書一覧情報を解析し、各文書にアクセスするリンク情報と、各文書の抜粋文とを取得し、リンク情報に基づいて、ネットワーク上からリンク先ページの文書データを取得し、取得した文書データの構造を解析し、文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、取得したブロックのうちで、抜粋文中に含まれている文字または文字列をより多く含むブロックの文字列または抜粋文を本文であると判定する。【選択図】図１
2008176685.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集する文書収集装置であって、
ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得する文書検索部と；
上記文書検索部が取得した文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得する検索結果解析部と；
上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得するページ取得部と；
上記ページ取得部が取得した文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得するブロック分割部と；
上記ブロック分割部が取得した１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択するブロック選択部と；
上記ブロック選択部が選択した文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定する本文判定部と；
を有することを特徴とする文書収集装置。
【請求項２】
請求項１において、
上記ページ取得部は、タグによって構造化された文書データを取得する手段であり、
上記ブロック分割部は、１組のタグによって挟まれた文字列を、１または複数のブロックに分割する手段であることを特徴とする文書収集装置。
【請求項３】
請求項１または請求項２において、
上記抜粋文から１以上の文字列を漏れなく取得する抜粋文部分文字列取得部を有し、
上記ブロック選択部は、上記抜粋文部分文字列取得部が上記抜粋文から取得した文字列のうちで、上記ブロック内の文字列の一部となっている文字列の個数を集計し、上記個数が最も大きいブロックを選択し、この選択したブロックが１個であれば、上記ブロックを出力し、選択したブロックが複数存在すれば、ブロック内の文字列の長さが同じかまたは短いブロックを出力する手段であることを特徴とする文書収集装置。
【請求項４】
請求項３において、
上記抜粋文部分文字列取得部は、抜粋文の先頭から順に１文字ずつまたは、複数文字ずつずらしながら、固定長の文字列を取得することによって、抜粋文中の部分文字列を取得する手段であることを特徴とする文書収集装置。
【請求項５】
請求項１または請求項２において、
上記本文判定部は、上記ブロック選択部が選択した文字列と、上記抜粋文との長さを比較し、同じまたは長い文字列が本文であると判定する手段であることを特徴とする文書収集装置。
【請求項６】
ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集する文書収集方法であって、
ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得し、記憶装置に記憶する文書検索工程と；
上記文書検索工程で取得された文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得し、記憶装置に記憶する検索結果解析工程と；
上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得し、記憶装置に記憶するページ取得工程と；
上記ページ取得工程で取得された文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、記憶装置に記憶するブロック分割工程と；
上記ブロック分割工程で取得された１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択し、記憶装置に記憶するブロック選択工程と；
上記ブロック選択工程で選択された文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定し、記憶装置に記憶する本文判定工程と；
を有することを特徴とする文書収集方法。
【請求項７】
ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集するプログラムにおいて、
ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得し、記憶装置に記憶する文書検索手順と；
上記文書検索手順で取得された文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得し、記憶装置に記憶する検索結果解析手順と；
上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得し、記憶装置に記憶するページ取得手順と；
上記ページ取得手順で取得された文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、記憶装置に記憶するブロック分割手順と；
上記ブロック分割手順で取得された１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択し、記憶装置に記憶するブロック選択手順と；
上記ブロック選択手順で選択された文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定し、記憶装置に記憶する本文判定手順と；
をコンピュータに実行させるプログラム。
【請求項８】
ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集するプログラムにおいて、
ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得し、記憶装置に記憶する文書検索手順と；
上記文書検索手順で取得された文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得し、記憶装置に記憶する検索結果解析手順と；
上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得し、記憶装置に記憶するページ取得手順と；
上記ページ取得手順で取得された文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、記憶装置に記憶するブロック分割手順と；
上記ブロック分割手順で取得された１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択し、記憶装置に記憶するブロック選択手順と；
上記ブロック選択手順で選択された文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定し、記憶装置に記憶する本文判定手順と；
をコンピュータに実行させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットを始めとするネットワーク上に存在するＨＴＭＬ等の構造化された文書データから、検索エンジンを用いて、任意のキーワードを含む文書データを検索し、ヘッダやフッタ等、本文以外の情報を除いた純粋な本文文字列を収集する技術に関する。
【背景技術】
【０００２】
インターネット等のネットワーク上に存在するＨＴＭＬ形式の文書データには、本文以外の情報として、タイトル、作成日時（タイムスタンプ）、作者、サイト内の他のページに移るためのリンクを含むメニュー欄、また場合によっては企業広告等、様々な付随情報が記述されている。
【０００３】
無数に存在する文書データから、所望の文書データを効率よく獲得するために、検索エンジンが構築され、検索サービスとして提供されている。利用者が、あるキーワードを含む文書を収集しようとする場合、通常は、このような検索サービスを利用する。
【０００４】
様々な付随情報を含む文書データを対象とする検索エンジンにおいて、タイトル、タイムスタンプ、作者、メニュー、広告等の付随情報を含んだままの状態で、検索用インデクスを生成すると、利用者が入力した検索キーワードを、本文中に含む文書のみを必ず発見できるとは限らない。
【０００５】
たとえば、○○新聞社が関与する事件に関するニュース記事を収集するために「○○新聞」というキーワードで検索すると、○○新聞社が発行するニュース記事全てがヒットすることがあり、収集効率が著しく低下する。
【０００６】
一部の検索エンジンでは、このような問題に対処するために、ＨＴＭＬ形式の文書データから、付随情報を除いた本文のみを抽出することによって、本文のみからインデクスを生成する技術を導入している。
【０００７】
ＨＴＭＬ形式の文書データを複数の領域に分割し、これら複数の領域のうちで、同一ドメイン内の多数の文書データ中で、共通して出現する領域は、メニューや広告等であり、共通して出現する頻度が低い領域が本文であると判定する技術が知られている（たとえば、特許文献１参照）。
【０００８】
上記従来例において、本文の領域が決定された後に、本文の出現位置を、抽出規則として保存し、この保存されている抽出規則に基づいて、新規の文書から、本文を自動的に抽出する。このようにして、利用者は、検索キーワードを本文中に含む文書を発見することができる。
【特許文献１】特開２００４−２２０２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、利用者が、通常の検索エンジンを用いて文書を収集する場合、概要を示すために、本文の一部を抜粋した抜粋文のみが、検索エンジンから提供されるので、本文全体を収集するためには、上記文書へのリンク情報を利用して、ネットワーク上から文書データを取得し、そこからさらに本文を抜き出す必要がある。つまり、検索エンジンがインデクス生成のために内部で実行しているのと同様の処理を、利用者が実行する必要がある。
【００１０】
したがって、上記従来例では、本文を抽出する場合、結局、検索エンジンで導入されている設備と同等の大規模な設備を導入するので、一般の利用者が実現することは、事実上不可能であるという問題がある。
【００１１】
また、上記従来技術では、本文を抽出する抽出規則を獲得する場合、同一ドメイン内の多数の文書データを使用するので、同一ドメイン内で多数の文書データが存在していることが前提であり、特定の検索キーワードを含む文書データのみでは、文書データの数が不足することが多いという問題がある。
【００１２】
本発明は、インターネット等のネットワーク上に存在するＨＴＭＬ等の構造化された膨大な文書データから、利用者が入力した検索キーワードを含む文書の本文全体を収集する場合、検索エンジンが採用するような大規模な設備を構築せずに、検索キーワードを含む文書の本文全体を収集することができる文書収集装置、文書収集方法、プログラムおよび記録媒体を提供することを目的とする。
【００１３】
また、本発明は、インターネット等のネットワーク上に存在するＨＴＭＬ等の構造化された膨大な文書データから、利用者が入力した検索キーワードを含む文書の本文全体を収集する場合、上記検索キーワードを含む文書が１件であっても、検索キーワードを含む文書の本文全体を収集することができる文書収集装置、文書収集方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集する文書収集装置であって、ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得する文書検索部と、上記文書検索部が取得した文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得する検索結果解析部と、上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得するページ取得部と、上記ページ取得部が取得した文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得するブロック分割部と、上記ブロック分割部が取得した１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択するブロック選択部と、上記ブロック選択部が選択した文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定する本文判定部とを有する文書収集装置である。
【発明の効果】
【００１５】
本発明によれば、インターネット等のネットワーク上に存在するＨＴＭＬ等の構造化された膨大な文書データから、利用者が入力した検索キーワードを含む文書の本文全体を収集する場合、検索エンジンが採用するような大規模な設備を構築せずに、検索キーワードを含む文書の本文全体を収集することができるという効果を奏する。
【００１６】
また、本発明は、インターネット等のネットワーク上に存在するＨＴＭＬ等の構造化された膨大な文書データから、利用者が入力した検索キーワードを含む文書の本文全体を収集する場合、上記検索キーワードを含む文書が１件であっても、検索キーワードを含む文書の本文全体を収集することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
発明を実施するための最良の形態は、以下の実施例である。
【実施例１】
【００１８】
図１は、本発明の実施例１である文書収集装置１００を示すブロック図である。
【００１９】
文書収集装置１００は、文書検索部１と、検索結果解析部２と、検索結果管理部３と、ページ取得部４と、ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集する文書収集装置であって、ブロック分割部５と、ブロック記録部６と、抜粋文部分文字列取得部７と、ブロック選択部８と、本文判定部９と、文書記録部１０とを有する。
【００２０】
文書検索部１は、ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得する文書検索部である。
【００２１】
文書検索部１は、利用者が入力する検索キーワードを受け付け、インターネット等のネットワークＮＷ上で運営されている検索エンジン２０を利用し、上記検索キーワードを含む文書を検索する文書検索部である。上記検索エンジン２０は、ＨＴＭＬ（HyperText Markup Language）やＲＳＳ（Rich Site Summary）等と呼ばれる構造化された形式で、検索結果を返送する。通常、利用者がネットワークＮＷ上の検索エンジン２０を利用する場合、ＨＴＭＬ形式で取得した検索結果を、ブラウザ（Browser）と呼ぶ閲覧ソフトで、可読性を高め、これを表示、閲覧することが多い。
【００２２】
ＨＴＭＬも、ＲＳＳも、検索結果に関する様々な情報が、タグによって構造化された状態で格納されている点では同じである。つまり、検索結果ページのタイトルや検索時刻、検索によって見つかった文書（以下、「ヒット文書」と呼ぶ）のタイトル、上記ヒット文書の概要を示す本文の抜粋文、上記ヒット文書の全文を表示するためのリンク情報であるＵＲＬ（Uniform Resource Locator）等、検索結果に関する様々な情報が、タグによって構造化された状態で格納されている点では、ＨＴＭＬも、ＲＳＳも、同じである。
【００２３】
図２は、「ｒｅｓｔａｕｒａｎｔ」という検索キーワードについての検索結果（ＲＳＳ）の例を示す図である。
【００２４】
図２において、左端に示す数字は、行数であり、実際のＲＳＳには含まれていない。
【００２５】
０行目は、文字コード等を記述した行である。２行目と３３行目とは、ＲＳＳの開始と終了とを示すタグであり、対になっている。このように、ＲＳＳでは、＜タグ＞……＜／タグ＞の形式でタグの開始と終了とを表わし、開始タグと終了タグとの間に、文字列を挟むことによって、各文字列を構造的に意味付けしている。
【００２６】
４行目〜７行目は、検索結果全体に共通する事項を記述する行であり、本検索結果を再取得するために必要なＵＲＬ、「ｒｅｓｔａｕｒａｎｔ」というキーワードで検索した結果であることを示すタイトル、検索を実行した時刻等が記述されている。
【００２７】
４行目と７行目とは、ｃｈａｎｎｅｌタグの開始と終了とを表わし、ｃｈａｎｎｅｌタグの内側にｔｉｔｌｅタグとｄｃ：ｄａｔｅタグとを含む階層構造を有する。
【００２８】
９行目以降が、ヒット文書を列挙している箇所である。９行目の＜ｉｔｅｍ＞タグから１４行目の＜／ｉｔｅｍ＞タグまでが、１件目のヒット文書を示す。
【００２９】
１０行目のｔｉｔｌｅタグは、上記文書のタイトルであり、１１行目のｌｉｎｋタグは、上記文書を取得するためのＵＲＬであり、１２行目のｄｅｓｃｒｉｐｔｉｏｎタグは、上記文書の概要を把握するために抜粋された本文の一部である。１３行目のｄｃ：ｄａｔｅタグは、上記文書の更新時刻を示す。
【００３０】
１６行目〜２１行目は、２件目のヒット文書の情報を、１件目と同様の構造で記述した箇所である。以下、上記と同様に、２３行目〜２７行目は、３件目の文書、……と続く。
【００３１】
文書検索部１は、上記ＲＳＳを検索結果解析部２に送出し、処理を終わる。
【００３２】
検索結果解析部２は、上記ＲＳＳのタグ構造を解析し、ヒット文書のＵＲＬと抜粋文とを全て取得し、各文書を識別する文書ＩＤを付与し、検索結果管理部３に格納する。つまり、検索結果解析部２は、文書検索部が取得した文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得する検索結果解析部の例である。この処理は、図２に示す例において、＜ｉｔｅｍ＞タグの開始位置と、これに対応する終了タグとを検出し、上記タグ間に含まれているｌｉｎｋタグとｄｅｓｃｒｉｐｔｉｏｎタグとによって提供される文字列を取得し、さらに、この処理を、全てのｉｔｅｍタグについて繰り返す処理である。
【００３３】
図２に示す例において、ｄｅｓｃｒｉｐｔｉｏｎタグで挟まれている文字列には、前後が省略されたことを示す「……」の記号が含まれているが、これらの記号を、記録する際には削除する。
【００３４】
図３は、検索結果管理部３に記録されているデータの例を示す図である。
【００３５】
文書ＩＤ  ｄ１、ｄ２、ｄ３、……は、文書を識別する文書ＩＤであり、各文書ＩＤに対応して、上記ＲＳＳを解析して取得したＵＲＬと、抜粋文とが記録されている。
【００３６】
ページ取得部４は、検索結果管理部３から、文書ＩＤとＵＲＬとによって構成されている組を、１組ずつ取得し、上記ＵＲＬに基づいて、ネットワークＮＷ上からヒット文書の本文を含むＨＴＭＬデータを取得する。そして、文書ＩＤと上記ＨＴＭＬデータとを、ブロック分割部５に送出する。ページ取得部４とブロック分割部５とが行う２つの処理を、全ての文書について繰り返す（図９参照）。すなわち、ページ取得部４は、タグによって構造化された文書データを取得する手段の例である。
【００３７】
つまり、ページ取得部４は、リンク情報に基づいて、ネットワーク上からリンク先ページの文書データを取得するページ取得部の例である。
【００３８】
ブロック分割部５は、ＨＴＭＬデータを、ブロックと呼ぶいくつかの領域に分割し、各ブロックに含まれている文字情報を取得する。つまり、ブロック分割部５は、ページ取得部が取得した文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得するブロック分割部の例である。ブロックに分割する目的は、ＨＴＭＬデータ中の不要な情報を省き、純粋な本文のみを取得するためである。ただし、この時点では、分割されたブロックのうちで、本文であるブロックを特定することが不可能であるので、複数のブロックを本文の候補として取得する。
【００３９】
次に、ＨＴＭＬデータの構造について説明する。
【００４０】
ＨＴＭＬデータは、図２に示すＲＳＳに類する記述形態を持つ文書であり、ページのタイトルや本文の他に、サイト内の各ページに移るためのリンクを含むメニューや、文字のサイズや、フォント、色等、体裁を決定するタグが含まれている。
【００４１】
図４は、取得したＨＴＭＬデータをブラウザで表示している例を示す図であり、Ｗｅｂｌｏｇ（ウェブログ、以下「ブログ」と呼ぶ）と呼ばれる形式のページの例を示す図である。
【００４２】
図４中、文書ＩＤ  ｄ１に対応する本文は、図中の「おいしいレストランを見つけました。……かなりおすすめです！」の部分である。また、図４には、「日々の日記」というブログ全体のタイトル、ブログ内の記事を分類するためのカテゴリ一覧、別の日の記事に移るためのリンク情報を含むカレンダー、記事に対するコメントを列挙しているコメント一覧等、本文以外の情報が多数含まれている。
【００４３】
ページは、ブログのタイトル（「日々の日記」）、図４の左側のメニュー、右側の記事の３つの領域に、大きく分割することができる。たとえば、図４の左側のメニュー領域を、さらに「カテゴリ」、「カレンダー」、「コメント一覧」に分割することができる。また、上記「カテゴリ」を、さらに「グルメ」、「日記」、「ニュース」の３項目に分割することができる。図４の右側を、上半分の２００６年１１月１３日の記事の領域と、下半分のコメントの領域とに分割することができ、それぞれを、さらに細かく分割することができる。
【００４４】
ＨＴＭＬでは、上記のような階層的なデータ構造を、タグを用いて記述している。よく用いられるのは、ｄｉｖタグ（ｄｉｖｉｓｉｏｎタグ）であり、＜ｄｉｖ＞……＜／ｄｉｖ＞で挟まれた領域が、ひとまとまりの領域である。このように、＜ｄｉｖ＞で始まり、＜／ｄｉｖ＞で終わる領域を、以下、「ｄｉｖブロック」という。
【００４５】
たとえば、左半分の「カテゴリ」、「カレンダー」、「コメント一覧」等の項目が並んでいる領域全体が、１つのｄｉｖブロックであり、右半分の領域が、１つのｄｉｖブロックであり、右半分のうちの上半分の記事の領域が、１つのｄｉｖブロックであり、下半分のコメントの領域が、１つのｄｉｖブロックであり、……等である。
【００４６】
また、ｄｉｖタグによる構造化だけではなく、他のタグによって構造化される場合もある。
【００４７】
図５は、２００６年１１月１３日の記事の領域が、３行１列の表構造として記述されている例を示す図である。
【００４８】
図５中、表構造であることを明示するために、破線の罫線を用いているが、実際のＨＴＭＬデータ中、罫線幅が０である表として記述されると、図４に示す表示になる。
【００４９】
図６は、表構造を用いた場合におけるＨＴＭＬデータの例を示す図である。
【００５０】
ＨＴＭＬにおける表は、ｔａｂｌｅタグとして記述され、行を、ｔｒタグで表現し、列を、ｔｄタグで表現する。＜ｔｄ＞……＜／ｔｄ＞で挟まれるｔｄブロックによって、３つの領域に分割することができる。ただし、簡単のために、リンクや表内での右寄せ等に関するタグを省略してある。
【００５１】
また、カレンダー等も、ｔａｂｌｅタグを用いて記述することが多い。このように、ＨＴＭＬデータは、様々なタグを用いた階層構造として記述される。
【００５２】
ブロック分割部５は、文書ＩＤとＨＴＭＬデータとを、ページ取得部４から受け取ると、まず、ＨＴＭＬデータを、ブロックの単位に分割する。各ブロックを識別するブロックＩＤを付与し、それぞれのブロックに含まれている文字情報を、ＨＴＭＬデータ中から取得し、ブロック記録部６に、上記文字情報を、文書ＩＤ，ブロックＩＤとともに記録する。
【００５３】
ＨＴＭＬデータには、データの先頭と末尾に記述されている最も上位階層のＨＴＭＬブロックから、上記ｄｉｖブロック、ｔｄブロック等、様々な種類のブロックが存在する。全てのブロックを、本文の候補としてもよいが、ＨＴＭＬブロックが本文のみを含むブロックである場合は、殆どないと言ってよい。つまり、ＨＴＭＬデータ中に、本文以外の情報を含む場合がほとんどである。また、ｔｉｔｌｅタグは、タイトルを記述するために用いられるタグであるので、これも、本文のみを含むブロックであることはないと言ってよい。そこで、ｄｉｖブロックやｔｄブロック等、予め定めてある一部のブロックのみに注目して、分割すればよい。
【００５４】
同一タグが、入れ子構造になってブロックを形成している場合、それぞれを取得する。ｄｉｖブロックについて見ると、図４に示すＨＴＭＬページの右半分の「おすすめレストランを発見！」から、最下部の「場所をもうちょっと詳しく教えてもらえますか？」のコメントまでの文字情報が、１つのブロックである。そのうちの上半分の「おすすめレストランを発見！」から、「トラックバック（０）」までの文字情報が、１ブロックであり、下半分の「コメント」から、「場所をもうちょっと詳しく教えてもらえますか？」までの文字情報が、１ブロックである。
【００５５】
以下、説明を省略するが、上半分のブロック内にも、複数のｄｉｖブロックが存在し、下半分のコメントのブロック内にも、複数のｄｉｖブロックが存在する。これら全てが、取得の対象である。
【００５６】
図７は、ブロック記録部６に記録されているデータの例を示す図である。
【００５７】
上記方法で取得したブロック内の文字情報は、文書ｄ１における本文の候補として、図７に示すように、ブロック記録部６に記録される。文書ｄ１のブロックｂ１は、「カテゴリ  グルメ  日記ニュース」という文字情報を含むブロックである。これと同様に、文書ＩＤ、ブロックＩＤ、ブロック内の文字情報が列挙されている。文書ｄ１について、ページ取得部４とブロック分割部５とによる処理が終わると、続いて、文書ｄ２、ｄ３を処理し、ブロック内の文字情報を、上記と同様に、ブロック記録部６に記録する。
【００５８】
次に、上記実施例の動作について説明する。
【００５９】
図８は、本発明の実施例１である文書収集装置１００の動作原理を示すフローチャートである。
【００６０】
まず、利用者が入力した検索キーワードに基づいて、インターネット等のネットワークＮＷ上に存在する検索エンジン２０に、検索処理を実行させる（Ｓ１）。この検索処理の結果から、上記キーワードを含む文書にアクセスするためのリンク情報と、上記文書の概要を示す文字列である抜粋文とを取得する（Ｓ２）。
【００６１】
次に、上記取得したリンク情報に基づいて、リンク先のページを取得し（Ｓ３）、上記ページ中に含まれている文字列を、１以上のブロックに分割する（Ｓ４）。つまり、上記ページ中に含まれている文字列を、そのまま取得するか、または複数ブロックに分割する。
【００６２】
なお、上記「ページ中に含まれている文字列を、そのまま取得するか、または複数ブロックに分割下ブロック」を、以下では、「分割された１以上のブロック」という。この分割された１以上のブロックのうちで、最も「本文らしいブロック」を判定し、上記ブロック内の文字列を出力する（Ｓ５）。この出力した文字列と、Ｓ２で取得した抜粋文の文字列とを比較し、より本文らしい文字列が本文であると判定する（Ｓ６）。
【００６３】
図９は、ページ取得からブロック分割までの処理の流れを示すフローチャートである。
【００６４】
最初に、ページ取得部４が、検索結果管理部３から文書ＩＤとＵＲＬとを、１組取得し（Ｓ１１）、ＵＲＬに基づいて、ネットワークＮＷ上からＨＴＭＬデータを取得する（Ｓ１２）。
【００６５】
取得したＨＴＭＬデータと文書ＩＤとを、ブロック分割部５に送出し（Ｓ１３）、
ブロック分割部５が、上記ＨＴＭＬデータ中の各ブロックに含まれている文字情報を取得し、文書ＩＤとブロックＩＤとを付加してブロック記録部６に出力する（Ｓ１４）。検索結果管理部３に記録されている全ての文書について、上記Ｓ１１〜Ｓ１４のステップを実施し（Ｓ１５のＹＥＳ）、処理を終える。
【００６６】
ただし、検索エンジン２０によっては、全角の空白を半角に変換する、半角のカタカナを全角のカタカナに変換する、「カ」と「゛」との２文字で記述されている文字を、「ガ」という１文字に変換する等、元の文字列を一部加工したものを抜粋文として提供する場合がある。これに対し、ブロック内の文字情報は、各ページのＨＴＭＬから、文書収集装置１００が直接取得するので、抜粋文が、実際の本文の文字列の一部と完全に一致することを期待することはできない。
【００６７】
そこで、ブロック選択部８は、検索結果管理部３に記録されている各文書の抜粋文と、ブロック記録部６に記録されている各ブロック内の文字情報とを照合し、いずれか１ブロックを本文であると判定する。
【００６８】
つまり、ブロック選択部８は、ブロック分割部５が取得した１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択するブロック選択部の例である。
【００６９】
図１０は、抜粋文中の部分文字列の取得から本文の判定までの処理の流れを示すフローチャートである。
【００７０】
最初に、抜粋文部分文字列取得部７が、検索結果管理部３から、文書ＩＤと抜粋文との組を取得し（Ｓ２１）、抜粋文から１以上の部分文字列を生成する。
【００７１】
Ｎｇｒａｍという手法で、部分文字列を生成する。上記「Ｎｇｒａｍ」は、元となる文字列から、Ｎ文字の部分文字列を取得し、この場合、１文字ずつずらしながら、Ｎ文字の部分文字列を取得する。図３に示す文書ｄ１（抜粋文）「おいしいレストランを見つけました。メニューは豊富です。横浜にも支店が」について、Ｎ＝５で部分文字列を生成すると、「おいしいレ」、「いしいレス」、「しいレスト」、「いレストラ」、「レストラン」、「ストランを」、……、「。横浜にも」、「横浜にも支」、「浜にも支店」、「にも支店が」の、合計３０個の部分文字列が生成される。上記Ｎの値を、予め決定する。ただ、Ｎの値があまりに大きいと、以下のステップでブロック内の文字情報と照合する際に合致する頻度が低くなり、結果として、本文を抽出する精度が下がるので、上記Ｎの値を１０程度以下に設定することが望ましい。
【００７２】
抜粋文部分文字列取得部７は、生成した３０個の部分文字列と、文書ｄ１（文書ＩＤがｄ１である文書）とを、ブロック選択部８に送出する（Ｓ２２）。抜粋文の文字数が、値Ｎに満たなければ、抜粋文自体を、唯一の部分文字列としてブロック選択部８に送出する。
つまり、抜粋文部分文字列取得部７は、抜粋文の先頭から順に１文字ずつまたは、複数文字ずつずらしながら、固定長の文字列を取得することによって、抜粋文中の部分文字列を取得する手段である。
【００７３】
ブロック選択部８は、受け取った文書ｄ１に対応する文字情報（つまり本文の候補）を、ブロック記録部６から取得する。すなわち、図７で、文書ＩＤがｄ１である文字情報を全て取得する。取得した各文字情報に、上記３０個の部分文字列を照合し、上記文字情報中に含まれている部分文字列の数を集計し、上記文字情報中に含まれている部分文字列の数をブロックのスコアとする（Ｓ２３）。
【００７４】
たとえば、図７に示すｄ１、ｂ１のブロックは、「カテゴリ  グルメ日記  ニュース」という文字情報を持つが、この文字列中に「おいしいレ」「いしいレス」等の３０個の部分文字列が、１個も含まれていないので、文書ｄ１のブロックｂ１のスコアは、０である。同様の処理を行うと、文書ｄ１のブロックｂ１５は、本文からコメントまでを全て包含するブロックであるので、３０個の部分文字列を全て含み、そのスコアは、３０である。また、文書ｄ１のブロックｂ１７は、本文を包含するブロックであるので、上記と同様に、そのスコアは３０である。ブロック選択部８は、各ブロックのスコアを、バッファに保持する。
【００７５】
Ｓ２４で、Ｓ２３で算出したブロックのスコアと、各ブロック内の文字情報の長さとに基づいて、ブロック選択部８が、上記算出したブロックについて、次のように、本文らしさを判定する。
【００７６】
まず、スコアが大きいブロックを選択する。同一スコアのブロックが複数存在する場合、文字情報の長さを算出し、長さが短いブロックを採用する。上記例では、文書ｄ１のブロックｂ１５と、文書ｄ１のブロックｂ１７とが、ともにスコア３０である。スコアは、部分文字列の数である３０を超えることがないので、これら２ブロックが、スコア最大のブロックである。
【００７７】
引き続いて、各文字情報の長さを比較すると、「おしいレストランを見つけました。メニューは豊富です。……かなりおすすめです！」という文字情報を持つ文書ｄ１のブロックｂ１７よりも、コメント等も含む文書ｄ１のブロックｄ１５が長い。ここで、コメントなどを含む文書を、本文候補から除外するために、文字列長の短い文書ｄ１のブロックｂ１７を、本文であると判定する。選択されたブロック内の文字列と、文書ＩＤとを、本文判定部９に送出する。
【００７８】
文字列長が最も短いブロックが複数存在する場合、Ｎの値を少しずつ増加させながら、上記と同様の処理を実行し、ブロック内の文字列と抜粋文とを比較し、より長い文字列が一致するブロックを、本文であると判定すればよい。つまり、抜粋文に最も似ているブロックが本文であると考える。
【００７９】
最後に、Ｓ２５で、本文判定部９が、Ｓ２４で選択した文字列の長さと、Ｓ２１で取得した抜粋文の長さとを比較し、抜粋文の方が長い場合、抜粋文が本文であると判定し、抜粋文の方が短い場合、Ｓ２４で選択した文字列が本文であると判定する。
【００８０】
つまり、本文判定部９は、ブロック選択部が選択した文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定する本文判定部の例である。
【００８１】
そして、判定された本文と、文書ＩＤとを、文書記録部１０に記録する。なお、抜粋文の長さを算出する場合、抜粋文を分割した部分文字列の個数ａと、部分文字列を構成する文字の数Ｎの値とから逆算する。抜粋文の長さ＝ａ＋（Ｎ―１）を計算する。または、検索結果管理部３に記録されている抜粋文の長さを直接算出する。
【００８２】
Ｓ２５の処理は、文書データが正しいＨＴＭＬ形式で記述されていない等の理由で、ブロック分割が正常に行われず、抜粋文よりも短い文字列が本文であると判定される場合に対処するためのステップである。つまり、抜粋文は、本文の一部を抜粋したものであるので、抜粋文よりも本文が短いことはない。したがって、Ｓ２５で、長さを比較し、より本文選択の精度を向上させる。
【００８３】
図１１は、文書記録部１１に記録されているデータの例であり、各文書のＩＤと、文書の本文とを対応して記録している。
【００８４】
上記Ｓ２１〜Ｓ２５の処理を、検索結果管理部３に記録されている全ての文書について実行する（Ｓ２６のＹＥＳ）と、文書記録部１０には、図１１に示すように、各文書の文書ＩＤと上記文書の本文文字列とが記録され、キーワード「ｒｅｓｔａｕｒａｎｔ」を含むヒット文書の本文全体を一覧することができる。
【００８５】
なお、文書検索部１は、タグによって構造化された文書データを収集する手段であり、ＨＴＭＬやＸＭＬ（Extensible Markup Language）のように、タグによって構造化された文書データを対象に収集する。
【００８６】
上記実施例において、ページ取得部４は、タグによって構造化された文書データを取得する手段であり、ブロック分割部５は、１組のタグによって挟まれた文字列を、１または複数のブロックに分割する手段である。また、上記抜粋文から１以上の文字列を漏れなく取得する抜粋文部分文字列取得部を有し、ブロック選択部８は、抜粋文部分文字列取得部７が上記抜粋文から取得した文字列のうちで、上記ブロック内の文字列の一部となっている文字列の個数を集計し、上記個数が最も大きいブロックを選択し、この選択したブロックが１個であれば、上記ブロックを出力し、選択したブロックが複数存在すれば、ブロック内の文字列の長さが同じかまたは短いブロックを出力する手段である。
【００８７】
さらに、上記実施例において、抜粋文部分文字列取得部７は、抜粋文の先頭から順に１文字ずつまたは、複数文字ずつずらしながら、固定長の文字列を取得することによって、抜粋文中の部分文字列を取得する手段である。
【００８８】
そして、本文判定部９は、ブロック選択部８が選択した文字列と、上記抜粋文との長さを比較し、同じまたは長い文字列が本文であると判定する手段である。
【００８９】
また、上記実施例を方法の発明として把握することができる。つまり、上記実施例は、ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集する文書収集方法であって、ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得し、記憶装置に記憶する文書検索工程と、上記文書検索工程で取得された文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得し、記憶装置に記憶する検索結果解析工程と、上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得し、記憶装置に記憶するページ取得工程と、上記ページ取得工程で取得された文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、記憶装置に記憶するブロック分割工程と、上記ブロック分割工程で取得された１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択し、記憶装置に記憶するブロック選択工程と、上記ブロック選択工程で選択された文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定し、記憶装置に記憶する本文判定工程とを有する文書収集方法の例である。
【００９０】
また、上記実施例をプログラムの発明として把握することができる。つまり、上記実施例は、ネットワーク上に存在する構造化された文書データから、特定の検索キーワードを含む文書の一部分である文字情報を収集するプログラムにおいて、ネットワーク上に存在する検索エンジンに対して、上記検索キーワードに基づいて検索を実行させ、上記検索キーワードを含む文書一覧情報を取得し、記憶装置に記憶する文書検索手順と、上記文書検索手順で取得された文書一覧情報を解析し、各文書にアクセスするためのリンク情報と、各文書の概要を示す文字列である抜粋文とを取得し、記憶装置に記憶する検索結果解析手順と、上記リンク情報に基づいて、上記ネットワーク上からリンク先ページの文書データを取得し、記憶装置に記憶するページ取得手順と、上記ページ取得手順で取得された文書データの構造を解析し、上記文書データ中に含まれている文字情報のうちで、一部または全ての文字列を、１または複数のブロックとして取得し、記憶装置に記憶するブロック分割手順と、上記ブロック分割手順で取得された１以上のブロックのうちで、上記抜粋文中に含まれている文字または文字列をより多く含むブロックを選択し、記憶装置に記憶するブロック選択手順と、上記ブロック選択手順で選択された文字列と、上記抜粋文とを比較し、いずれか一方を本文であると判定し、記憶装置に記憶する本文判定手順とをコンピュータに実行させるプログラムの例である。
【００９１】
そして、このプログラムを、記録媒体に記録するようにしてもよい。なお、上記記録媒体として、ＣＤ、ＤＶＤ、ＨＤ、光ディスク、光磁気ディスク、半導体メモリが考えられる。
【図面の簡単な説明】
【００９２】
【図１】本発明の実施例１である文書収集装置１００を示すブロック図である。
【図２】「ｒｅｓｔａｕｒａｎｔ」という検索キーワードについての検索結果（ＲＳＳ）の例を示す図である。
【図３】検索結果管理部３に記録されているデータの例を示す図である。
【図４】取得したＨＴＭＬデータをブラウザで表示している例を示す図であり、Ｗｅｂｌｏｇ（ウェブログ、以下「ブログ」と呼ぶ）と呼ばれる形式のページの例を示す図である。
【図５】２００６年１１月１３日の記事の領域が、３行１列の表構造として記述されている例を示す図である。
【図６】表構造を用いた場合におけるＨＴＭＬデータの例を示す図である。
【図７】ブロック記録部６に記録されているデータの例を示す図である。
【図８】本発明の実施例１である文書収集装置１００の動作原理を示すフローチャートである。
【図９】ページ取得からブロック分割までの処理の流れを示すフローチャートである。
【図１０】抜粋文の分割から本文の判定までの処理の流れを示すフローチャートである。
【図１１】文書記録部１１に記録されているデータの例であり、各文書のＩＤと、文書の本文とを対応して記録している。
【符号の説明】
【００９３】
１００…文書収集装置、
１…文書検索部、
２…検索結果解析部、
３…検索結果管理部、
４…ページ取得部、
５…ブロック分割部、
６…ブロック記録部、
７…抜粋文部分文字列取得部、
８…ブロック選択部、
９…本文判定部、
１０…文書記録部、
２０…検索エンジン、
ＮＷ…ネットワーク。
【図１】
2008176685.tif 000003
【図２】
2008176685.tif 000004
【図３】
2008176685.tif 000005
【図４】
2008176685.tif 000006
【図５】
2008176685.tif 000007
【図６】
2008176685.tif 000008
【図７】
2008176685.tif 000009
【図８】
2008176685.tif 000010
【図９】
2008176685.tif 000011
【図１０】
2008176685.tif 000012
【図１１】
2008176685.tif 000013