(57)【要約】【課題】Ｗｅｂページ又はＷｅｂページ内のブロックなどの情報ソースに適用すべき情報抽出のためのルールを適応的に選択すること。【解決手段】マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部と、前記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを前記データ記憶部に記憶されている前記２つ以上のルールから選択する選択部と、前記選択部により選択されたルールを用いて、前記部分から情報を抽出する抽出部と、を備える情報処理装置を提供する。【選択図】図２
2011100403.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部と；
前記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを前記データ記憶部に記憶されている前記２つ以上のルールから選択する選択部と；
前記選択部により選択されたルールを用いて、前記部分から情報を抽出する抽出部と；
を備える情報処理装置。
【請求項２】
前記所定の文字列は、前記マークアップ言語において使用可能な少なくとも１つのタグである、請求項１に記載の情報処理装置。
【請求項３】
前記選択部は、タグ以外の少なくとも１つの文字列の前記部分における出現頻度にさらに応じて、前記部分に適用すべきルールを選択する、請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、
前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義する定義データに基づいて、前記入力文書から少なくとも前記定義データに含まれるタグ及び当該タグに関連するテキストをノードとするツリー構造を生成する解析部、
をさらに備え、
前記選択部は、前記解析部により生成された前記ツリー構造のうちの所定の深さの部分ツリーに対応する前記入力文書内の部分ごとに、当該部分に適用すべきルールを選択する、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記抽出部により前記入力文書内の１つ以上の部分ごとに抽出される情報を蓄積するデータベースと、
他の情報処理装置から受信されるキーワードに適合する情報を前記データベースから検索する検索部と、
をさらに備える、請求項１に記載の情報処理装置。
【請求項６】
前記データベースは、前記入力文書内の各部分に対応する見出し文字列と関連付けて、当該部分から抽出される情報を蓄積し、
前記検索部は、前記キーワードに適合する見出し文字列と関連付けられた情報を検索の結果として前記データベースから取得する、
請求項５に記載の情報処理装置。
【請求項７】
前記検索部は、前記データベースから取得される情報のうち、前記他の情報処理装置から受信される表示に関する制約条件に応じて選択した情報を、前記他の情報処理装置へ送信する、請求項６に記載の情報処理装置。
【請求項８】
前記データ記憶部は、前記所定の文字列の出現頻度に応じて分類される２つ以上のパターンのうちの各パターンと前記２つ以上のルールのうちの各ルールとを関連付けて記憶している、請求項１に記載の情報処理装置。
【請求項９】
マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部を備える情報処理装置を用いて：
前記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを前記データ記憶部に記憶されている前記２つ以上のルールから選択するステップと；
選択されたルールを用いて、前記部分から情報を抽出するステップと；
を含む、情報抽出方法。
【請求項１０】
マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部を備える情報処理装置を制御するコンピュータを：
前記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを前記データ記憶部に記憶されている前記２つ以上のルールから選択する選択部と；
前記選択部により選択されたルールを用いて、前記部分から情報を抽出する抽出部と；
として機能させるための、プログラム。
【請求項１１】
検索キーワードを含む検索要求を送信し、当該検索要求に対する応答として提供される情報をユーザインタフェース上に表示させる端末装置と：
マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部；
前記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを前記データ記憶部に記憶されている前記２つ以上のルールから選択する選択部；
前記選択部により選択されたルールを用いて、前記部分から情報を抽出する抽出部；
前記抽出部により前記入力文書内の１つ以上の部分ごとに抽出される情報を蓄積するデータベース；
及び、前記端末装置から受信される検索キーワードに適合する情報を前記データベースから取得し、取得した情報を前記端末装置へ送信する検索部；
を備える情報処理装置と：
を含む情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報抽出方法、プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、インターネットを通して公開されるＷｅｂページは多様なデジタル情報を包含するようになってきている。これらデジタル情報には、ユーザにとって有用な情報と不要な情報とが混在している。そこで、従来、Ｗｅｂページから所望の情報を自動的に抽出する手法の開発が進められている。
【０００３】
例えば、下記非特許文献１では、LR  Wrapperと呼ばれる手法が提案されている。LR  Wrapperによれば、ＨＴＭＬ（HyperText  Markup  Language）文書における所望の情報の前後のタグの配置を規定するルールが予め定義され、そのルールに適合するＷｅｂページ内の情報が抽出される。しかし、LR  Wrapperではマッチングの対象がＷｅｂページの全体であることから、ページ内に複数の異なる分野の情報が含まれる場合には、意図しない情報が抽出されてしまう可能性がある。これに対し、例えば、下記特許文献１及び下記特許文献２は、Ｗｅｂページを複数のブロックに分割した後、ブロックごとにキーワードとのマッチングを行う手法を提案している。また、例えば、下記特許文献３は、Ｗｅｂページを複数のブロックに分割した後、ブロックごとに情報を抽出すべきか否かを評価する手法を提案している。
【０００４】
上述した情報抽出技術の１つの応用例は、チャットや電子メールなどに代表されるテキストコミュニケーションである。例えば、チャットや電子メールにおいて文章を書いている最中に話題となるキーワードに関連する情報を自動的にインターネット等から取得することができれば、取得した情報を文章に盛り込むことで、より充実したコミュニケーションが実現され得る。特に、チャットなどのリアルタイム性の要求されるオンラインテキストコミュニケーションでは、コミュニケーションを円滑に進めるために、ユーザの代わりにアプリケーションが自動的に情報を抽出することのメリットは大きい。なお、インターネット等から取得される情報の１つ１つの断片は、スニペット（snippet）と呼ばれる。即ち、例えば上述したLR  Wrapperは、Ｗｅｂページからスニペットを抽出する技術であるということもできる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Nicholas  Kushmerick,  “Wrapper  induction:  efficiency  and  expressiveness”,  Artificial  Intelligence,  2000,  vol.118,  p15-68
【特許文献】
【０００６】
【特許文献１】特開２００７−２７９９６４号公報
【特許文献２】特開２００４−７０４０５号公報
【特許文献３】特開２００７−４７９７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、多数のＷｅｂページから多様な情報を自動的に抽出するためには、上述した情報抽出技術の精度は未だ十分ではない。例えば、LR  Wrapperなどにおいて用意されるルールを多数のＷｅｂページ（又はブロック）に一律に適用すると、個々のＷｅｂページ（又はブロック）にふさわしくないルールによって、適切でない情報が抽出されてしまう可能性が高まるという課題があった。また、個々のＷｅｂページ（又はブロック）とルールとのペアを予め定義しておくことも１つの手段として考えられるが、この場合には、ペアを予め定義するためのコストが無視できないものとなり、さらに未知のＷｅｂページへの応用が困難となっていた。
【０００８】
これに対し、情報ソース（即ち、Ｗｅｂページ又はＷｅｂページ内のブロックなど）の特徴に応じて、それら情報ソースに適用すべきルールを適応的に選択することができれば、自動的に抽出可能な情報の精度を向上させることができるものと考えられる。
【０００９】
そこで、本発明は、Ｗｅｂページ又はＷｅｂページ内のブロックなどの情報ソースに適用すべき情報抽出のためのルールを適応的に選択することのできる、新規かつ改良された情報処理装置、情報抽出方法、プログラム及び情報処理システムを提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明のある実施形態によれば、マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部と、上記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを上記データ記憶部に記憶されている上記２つ以上のルールから選択する選択部と、上記選択部により選択されたルールを用いて、上記部分から情報を抽出する抽出部と、を備える情報処理装置が提供される。
【００１１】
また、上記所定の文字列は、上記マークアップ言語において使用可能な少なくとも１つのタグであってもよい。
【００１２】
また、上記選択部は、タグ以外の少なくとも１つの文字列の上記部分における出現頻度にさらに応じて、上記部分に適用すべきルールを選択してもよい。
【００１３】
また、上記情報処理装置は、上記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義する定義データに基づいて、上記入力文書から少なくとも上記定義データに含まれるタグ及び当該タグに関連するテキストをノードとするツリー構造を生成する解析部、をさらに備え、上記選択部は、上記解析部により生成された上記ツリー構造のうちの所定の深さの部分ツリーに対応する上記入力文書内の部分ごとに、当該部分に適用すべきルールを選択してもよい。
【００１４】
また、上記情報処理装置は、上記抽出部により上記入力文書内の１つ以上の部分ごとに抽出される情報を蓄積するデータベースと、他の情報処理装置から受信されるキーワードに適合する情報を上記データベースから検索する検索部と、をさらに備えてもよい。
【００１５】
また、上記データベースは、上記入力文書内の各部分に対応する見出し文字列と関連付けて、当該部分から抽出される情報を蓄積し、上記検索部は、上記キーワードに適合する見出し文字列と関連付けられた情報を検索の結果として上記データベースから取得してもよい。
【００１６】
また、上記検索部は、上記データベースから取得される情報のうち、上記他の情報処理装置から受信される表示に関する制約条件に応じて選択した情報を、上記他の情報処理装置へ送信してもよい。
【００１７】
また、上記データ記憶部は、上記所定の文字列の出現頻度に応じて分類される２つ以上のパターンのうちの各パターンと上記２つ以上のルールのうちの各ルールとを関連付けて記憶していてもよい。
【００１８】
また、本発明の別の実施形態によれば、マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部を備える情報処理装置を用いて、上記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを上記データ記憶部に記憶されている上記２つ以上のルールから選択するステップと、選択されたルールを用いて、上記部分から情報を抽出するステップと、を含む情報抽出方法が提供される。
【００１９】
また、本発明の別の実施形態によれば、マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部を備える情報処理装置を制御するコンピュータを、上記マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを上記データ記憶部に記憶されている上記２つ以上のルールから選択する選択部と、上記選択部により選択されたルールを用いて、上記部分から情報を抽出する抽出部と、として機能させるためのプログラムが提供される。
【００２０】
また、本発明の別の実施形態によれば、検索キーワードを含む検索要求を送信し、当該検索要求に対する応答として提供される情報をユーザインタフェース上に表示させる端末装置と、上記マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶しているデータ記憶部、マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度に応じて、当該部分に適用すべきルールを上記データ記憶部に記憶されている上記２つ以上のルールから選択する選択部、上記選択部により選択されたルールを用いて、上記部分から情報を抽出する抽出部、上記抽出部により上記入力文書内の１つ以上の部分ごとに抽出される情報を蓄積するデータベース、及び、上記端末装置から受信される検索キーワードに適合する情報を上記データベースから取得し、取得した情報を上記端末装置へ送信する検索部、を備える情報処理装置と、を含む情報処理システムが提供される。
【発明の効果】
【００２１】
以上説明したように、本発明に係る情報処理装置、情報抽出方法、プログラム及び情報処理システムによれば、Ｗｅｂページ又はＷｅｂページ内のブロックなどの情報ソースに適用すべき情報抽出のためのルールを適応的に選択することができる。
【図面の簡単な説明】
【００２２】
【図１】一実施形態に係る情報処理システムの概要を説明するための説明図である。
【図２】一実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図３】解析部の詳細な構成の一例を示すブロック図である。
【図４】マークアップ言語を用いて記述された文書をブラウザに表示させた表示内容の一例を示す説明図である。
【図５】図３の文書をテキスト形式で示す説明図である。
【図６】解析部のパーサにより図３の文書から生成される第１ツリー構造の一例を示す説明図である。
【図７】“ｈ”タグが使用されている入力文書の一例を示す説明図である。
【図８】図７の入力文書から生成される第１ツリー構造の一例を示す説明図である。
【図９】図７の入力文書をブラウザに表示させた表示内容の一例を示す説明図である。
【図１０】タグの上下関係を定義する定義データの一例を示す説明図である。
【図１１】ツリー構造変換処理の流れの一例を示すフローチャートである。
【図１２】ツリー構造変換処理の結果として生成される第２ツリー構造の一例を示す説明図である。
【図１３】LR  Wrapperの文法に従って記述されるルールの一例を示す説明図である。
【図１４】LR  Wrapperの文法に従って記述されるルールの他の例を示す説明図である。
【図１５Ａ】情報抽出のためのルールに関連するデータ構成の一例を示す説明図である。
【図１５Ｂ】情報抽出のためのルールに関連するデータ構成の他の例を示す説明図である。
【図１６】所定の文字列の出現頻度のパターンとルールとの関連付けを学習するための情報処理装置の構成の一例を示すブロック図である。
【図１７】出現頻度のパターンとルールとの関連付けを学習するための学習処理の流れの一例を示すフローチャートである。
【図１８】第２ツリー構造から認識されるブロックの一例について説明するための説明図である。
【図１９】選択されたルールを用いた情報抽出処理について説明するための説明図である。
【図２０】情報抽出の結果としてデータベースに蓄積されるスニペットの一例を説明するための説明図である。
【図２１】一実施形態に係る端末装置の構成の一例を示すブロック図である。
【図２２】端末装置の画面上に表示される画面の一例を示す説明図である。
【図２３】情報処理装置から端末装置へのスニペットの提供の流れの一例を示すシーケンス図である。
【図２４】汎用コンピュータの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２４】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．情報処理システムの概要
２．情報処理装置の構成例
２−１．入力文書の解析
２−２．データ記憶部の構成
２−３．ルールの学習
２−４．スニペットの抽出と蓄積
３．端末装置の構成例
３−１．ユーザインタフェースの例
３−２．スニペットの検索
４．ハードウェア構成の一例
５．まとめ
【００２５】
＜１．情報処理システムの概要＞
まず、本発明の一実施形態に係る情報処理システムの概要について説明する。図１は、本発明の一実施形態に係る情報処理システム１の概要を説明するための説明図である。図１を参照すると、情報処理システム１は、情報処理装置１００及び端末装置２００を含む。情報処理装置１００は、ネットワーク３を介して端末装置２００と接続されている。さらに、ネットワーク３には、１つ以上のＷｅｂサーバ５ａ、５ｂ…が接続されている。
【００２６】
情報処理装置１００は、マークアップ言語を用いて記述された文書をネットワーク３を介して取得し、取得した文書から情報を抽出するための装置である。情報処理装置１００は、例えば、図１に示したようなＰＣ（Personal  Computer）又はワークステーションなどの汎用的なコンピュータであってよい。その代わりに、情報処理装置１００は、例えば、ホームネットワークに設置されるデジタル家電機器などであってもよい。本実施形態において、情報処理装置１００は、適応的に選択されるルールを用いて抽出した情報をクライアントである端末装置２００に提供するサーバとして動作する。
【００２７】
端末装置２００は、情報処理装置１００により抽出された情報をネットワーク３を介して取得し、取得した情報をユーザに提示するための装置である。端末装置２００もまたＰＣ又はワークステーションなどの汎用的なコンピュータであってよい。その代わりに、端末装置２００は、例えば、携帯電話等を含み得る移動端末装置、又はデジタル家電機器などであってもよい。
【００２８】
ネットワーク３は、情報処理装置１００と端末装置２００との間を接続する通信ネットワークである。ネットワーク３は、例えば、インターネット、ＩＰ−ＶＰＮ（Internet  Protocol−Virtual  Private  Network）、専用線、ＬＡＮ（Local  Area  Network）又はＷＡＮ（Wide  Area  Network）などの任意の通信ネットワークであってよい。また、ネットワーク３が有線であるか無線であるかは問わない。
【００２９】
Ｗｅｂサーバ５ａ及び５ｂは、それぞれ、ネットワーク３を介して情報処理装置１００からアクセス可能なＷｅｂサーバである。Ｗｅｂサーバ５ａ又は５ｂは、情報処理装置１００からの要求に応じて、マークアップ言語を用いて記述された文書の一例であるＷｅｂページを送信する。なお、Ｗｅｂサーバ５ａ及び５ｂは、いずれも一般的なＷｅｂサーバであってよい。また、Ｗｅｂサーバ５ａ及び５ｂの代わりに、マークアップ言語を用いて記述された文書を蓄積したデータサーバ（あるいはファイルサーバ）が配置されてもよい。さらに、これらのサーバは、情報処理装置１００の運用者とは異なる運用者によって運用されるサーバであってもよい。
【００３０】
情報処理装置１００は、このような一例としての情報処理システム１において、ネットワーク３を介してＷｅｂサーバ５ａ若しくは５ｂ又は他のソースからＷｅｂページ等の文書を取得する。そして、情報処理装置１００は、取得したＷｅｂページから情報を抽出し、抽出した情報をデータベースに蓄積する。情報処理装置１００により蓄積される個々の情報の断片を、本明細書ではスニペットと称する。さらに、情報処理装置１００は、データベースに蓄積されたスニペットを、端末装置２００からの要求に応じて端末装置２００に提供する。まず、このような情報処理装置１００の具体的な構成の一例について、次節にて詳しく説明する。
【００３１】
＜２．情報処理装置の構成例＞
図２は、本実施形態に係る情報処理装置１００の構成の一例を示すブロック図である。図２を参照すると、情報処理装置１００は、入力文書取得部１１０、解析部１２０、データ記憶部１３０、選択部１５０、抽出部１６０、データベース１７０、及び検索部１８０を主に備える。
【００３２】
［２−１．入力文書の解析］
入力文書取得部１１０は、例えば、図１に例示したＷｅｂサーバ５ａ若しくは５ｂから（又はその他のデータサーバなどから）、マークアップ言語を用いて記述された文書を取得する。ここでのマークアップ言語とは、例えば、ＳＧＭＬ（Standard  Generalized  Markup  Language）、ＳＧＭＬのサブセットであるＸＭＬ（eXtensible  Markup  Language）、ＨＴＭＬ（HyperText  Markup  Language）又はＴｅｘなどであってよい。マークアップ言語を用いて記述された文書においては、例えば、文章の構成（段落分け、リストなど）やレイアウトなどが、文章をマークアップするタグ（言語によってコマンドとも呼ばれる）を用いて指定され得る。そして、入力文書取得部１１０は、取得した入力文書を解析部１２０へ出力する。
【００３３】
解析部１２０は、入力文書取得部１１０により取得される入力文書から、当該入力文書を記述するために用いられているマークアップ言語において使用可能なタグ及び当該タグに関連するテキストをノードとするツリー構造を生成する。より具体的には、解析部１２０は、上記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義する定義データに基づいて、少なくとも当該定義データに含まれるタグ及び当該タグに関連するテキストをノードとするツリー構造を、入力文書から生成する。
【００３４】
図３は、解析部１２０の詳細な構成の一例を示すブロック図である。図３を参照すると、解析部１２０は、パーサ（parser）１２２及びツリー構造変換部１２４を含む。このうち、パーサ１２２は、マークアップ言語を用いて記述された入力文書をパースする。例えば、入力文書がＨＴＭＬ形式の文書である場合には、パーサ１２２は、公知のＨＴＭＬパーサであってよい。一方、ツリー構造変換部１２４は、パーサ１２２によるパース処理の結果として得られる第１ツリー構造を、より情報の抽出に適した第２ツリー構造に変換する。
【００３５】
（パース処理）
図４〜図６を用いて、パーサ１２２によるパース処理により生成される第１ツリー構造ついて説明する。
【００３６】
図４は、本実施形態において取り扱う文書の一例であるＨＴＭＬ文書をＷｅｂブラウザを通して表示させた画面の一例を示す説明図である。図４を参照すると、タイトルバーに“企業情報”と書かれたＷｅｂページ１２が示されている。
【００３７】
Ｗｅｂページ１２には、文字サイズの大きい“沿革”及び“製品情報”の２つの大見出しが含まれている。そして、見出し“沿革”の下には、文字列“＃ｔｅｘｔ１”が表示されている。また、見出し“製品情報”の下には、中間的な文字サイズの“ＴＶ”及び“ＰＣ”という２つの中見出しが表示されている。さらに、見出し“ＴＶ”の下には、文字列“＃ｔｅｘｔ２”及び製品のサイズに対応する２項目のリスト（“５２  Ｉｎｃｈ”、“４８  Ｉｎｃｈ”）が表示されている。また、見出し“ＰＣ”の下には、文字列“＃ｔｅｘｔ３”が表示されている。
【００３８】
このようなＷｅｂページ１２を見た閲覧者は、例えば、当該Ｗｅｂページ１２により紹介されている企業が製品として“ＴＶ”と“ＰＣ”とを有しており、製品情報が画面領域２２ａに記述されていることを理解することができる。また、例えば、“ＴＶ”に関する製品情報が画面領域２２ｂに記述されていることも理解され得る。
【００３９】
これに対し、図５は、図４に示したＨＴＭＬ文書の内容をＷｅｂブラウザを通すことなくテキスト形式で示した説明図である。
【００４０】
図５を参照すると、ＨＴＭＬタグでマークアップされたＨＴＭＬ文書３２が示されている。ＨＴＭＬ文書３２の内容は、開始タグと終了タグを用いた入れ子構造で記述されている。このうち、文書の一部分であるブロック２６ａは、図４の画面領域２２ａに対応する部分である。また、ブロック２６ｂは、図４の画面領域２２ｂに対応する部分である。
【００４１】
図６は、パース処理の結果として図５に示したＨＴＭＬ文書３２から生成される、ＨＴＭＬタグ及びＨＴＭＬタグによりマークアップされたテキストをノードとする第１ツリー構造の一例を示す説明図である。
【００４２】
図６を参照すると、ＨＴＭＬ文書３２は、ｎ１〜ｎ２１の２１個のノードにより構成されている。このうち、ノードｎ１（“ｈｔｍｌ”タグ）の配下には、ノードｎ２（“ｈｅａｄ”タグ）及びノードｎ５（“ｂｏｄｙ”タグ）が位置している。また、ノードｎ２の配下にはノードｎ３（“ｔｉｔｌｅ”タグ）、ノードｎ３の配下にはノードｎ４（テキスト“企業情報”）が位置している。一方、ノードｎ５の配下には、ノードｎ６、ｎ８、ｎ９、ｎ１１、ｎ１３、ｎ１４、ｎ１９、及びｎ２１の８つのノードが並列に位置しており、８つのノードの配下にさらに下位のノードが位置している。このうち、図５のブロック２６ａに対応するノードは、ノードｎ９〜ｎ２１である。また、図５のブロック２６ｂに対応するノードは、ノードｎ１１〜ｎ１８である。
【００４３】
ここで、例えば、ＨＴＭＬ文書３２から企業の製品情報を自動的に取得しようとして“製品情報”というキーワードでマッチングを行った場合、図６のノードｎ１０がキーワードに一致する。しかし、上述したように、製品情報に対応するノードｎ９〜ｎ２１は並列に位置するノードｎ６〜ｎ２１の一部分でしかないため、マッチングにより特定されたノードｎ１０から適切に製品情報に対応するノードを決定することは難しい。また、例えば、製品“ＴＶ”に関する情報や製品“ＰＣ”に関する情報など、その他の任意の情報を自動的に取得しようとする場合も同様である。
【００４４】
従って、パーサ１２２により生成される図６に例示した第１ツリー構造は、有意な情報の抽出には適していない。そこで、ツリー構造変換部１２４において、以下に図７〜図１２を用いて説明するように、上述した第１ツリー構造をより情報の抽出に適した第２ツリー構造に変換する。
【００４５】
（ツリー構造変換処理）
上述したように、ツリー構造変換部１２４は、パーサ１２２によるパース処理の結果として得られる第１ツリー構造を、より情報の抽出に適した第２ツリー構造に変換する。本実施形態において、第２ツリー構造とは、マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義する定義データに基づいて生成されるツリー構造である。第２ツリー構造は、少なくとも当該定義データに含まれるタグ及び当該タグに関連するテキストをノードとする。
【００４６】
ツリー構造変換部１２４によるツリー構造変換処理において用いられる定義データとは、例えば、入力文書に使用されるタグのうち、少なくとも見出しに関連するタグについての文書構造上の上下関係を定義したデータであってよい。見出しに関連するタグとは、例えば、ＨＴＭＬにおける“ｈ”タグに相当する。
【００４７】
図７〜図９は、“ｈ”タグに関連する文書構造上の上下関係について説明するための説明図である。
【００４８】
まず、図７を参照すると、“ｈ１”、“ｈ２”及び“ｈ３”の各タグを用いて記述された一例としての文書１０が示されている。図７において、文書１０のｂｏｄｙ部には、“ｈ１”タグによりマークアップされた１つの大見出し、大見出しの下の本文、“ｈ２”タグによりマークアップされた２つの中見出し、及び“ｈ３”タグによりマークアップされた２つの小見出しが含まれている。
【００４９】
図８は、図７に示した文書１０をＨＴＭＬパーサを用いて構文解析することにより得られる第１ツリー構造のうち、“ｂｏｄｙ”タグ以下の部分を示している。図８において、“ｈ１”、“ｈ２”及び“ｈ３”の３種類の“ｈ”タグに対応するタグノード、及び“本文”に対応するノードは、いずれも“ｂｏｄｙ”タグの１階層下に並列に位置している。そして、各“ｈ”タグのノードの下位に、各“ｈ”タグによりマークアップされた見出し文字列のノードが位置している。
【００５０】
図９は、図７に示した文書１０をＷｅｂブラウザを通して表示させた表示例を示している。図９を参照すると、“大見出し”は、“本文”及び他の全ての見出しを見出しの対象範囲に含んでいることが理解される。同様に、“中見出し１”は“小見出し１”を、“中見出し２”は“小見出し２”をそれぞれの見出しの対象範囲に含んでいることも理解され得る。即ち、ＨＴＭＬにおける“ｈ”タグを図８の第１ツリー構造のように並列に用いた場合でも、マークアップされたテキストの文書構造上の包含−被包含の関係、即ち上下関係が少なくとも視覚的には表現されている。そこで、本実施形態では、図１０に一例として示したような“ｈ”タグについての文書構造上の上下関係を定義する定義データを設ける。
【００５１】
図１０を参照すると、定義データ４０において、“ｈ”タグについての上下関係が、“ｂｏｄｙ”＞“ｈ１”＞“ｈ２”＞“ｈ３”＞“ｈ４”＞“ｈ５”＞“ｈ６”というように定義されている。定義データ４０における不等号（“＞”）は、左側のタグの方が右側のタグの上位に位置することを表している。定義データ４０においては、“ｈ１”〜“ｈ６”までの“ｈ”タグの上下関係が数字の順に定義され、さらに“ｂｏｄｙ”タグが全ての“ｈ”タグの上位に定義されている。こうした定義データは、例えば、図２に示したデータ記憶部１３０などに予め記憶される。そして、ツリー構造変換部１２４は、かかる定義データを使用して、上述した第１ツリー構造を第２ツリー構造に変換する。
【００５２】
なお、定義データは、“ｂｏｄｙ”タグ及び“ｈ”タグに関連する文書構造上の上下関係について定義したデータに限定されない。例えば、定義データにより上下関係を定義されるタグには、ＨＴＭＬにおいてテキストのフォントサイズを指定する“ｆｏｎｔ”タグが含まれていてもよい。また、定義データにより上下関係を定義されるタグには、スタイルシートにおいて規定される特定のクラスを属性を用いて指定するタグなど、その他の任意のタグが含まれていてもよい。
【００５３】
図１１は、ツリー構造変換部１２４によるツリー構造変換処理の流れの一例を示すフローチャートである。
【００５４】
図１１を参照すると、ツリー構造変換部１２４は、まず“ｂｏｄｙ”タグに対応する“ｂｏｄｙ”ノードを作成し、第２ツリー構造の開始ノードとする。そして、ツリー構造変換部１２４は、“ｂｏｄｙ”ノードを注目ノードＰとする（ステップＳ１０２）。
【００５５】
次に、ツリー構造変換部１２４は、第１ツリー構造において未だ処理されていないノードが残っているか否かを判定する（ステップＳ１０４）。ここで、未処理のノードが残っていれば、処理はＳ１０６へ進む。一方、未処理のノードが残っていなければ、処理は終了する。
【００５６】
Ｓ１０６では、ツリー構造変換部１２４は、第１ツリー構造において未だ処理されていないノードのうち、最先のノードを比較ノードＸとする（ステップＳ１０６）。ここで、最先のノードとは、例えば、文書内で最も先に記載されたタグ又はテキストに対応するノードであってもよい。また、最先のノードとは、例えば、第１ツリー構造内での縦型探索において最も早く参照されるノードであってもよい。例えば、図８に示した第１ツリー構造において、“ｂｏｄｙ”ノードまで処理済みである場合には、“ｈ１”ノードが未処理の最先のノードとなる。また、“ｈ１”ノードまで処理済みである場合には、“大見出し”ノードが未処理の最先のノードとなる。
【００５７】
次に、ツリー構造変換部１２４は、比較ノードＸが上述した定義データにおいて文書構造上の上下関係を定義されたタグに対応するタグノードであるか否かを判定する（ステップＳ１０８）。例えば、図１０に示した定義データ４０が定義されている場合には、比較ノードＸが“ｂｏｄｙ”タグ又は“ｈ１”〜“ｈ６”までの“ｈ”タグに対応するノードであれば、処理はＳ１１２へ進む。一方、比較ノードＸが上記以外のノード（例えばタグにマークアップされた見出し文字列や本文に対応するノードなど）であれば、処理はＳ１１０へ進む。
【００５８】
Ｓ１１０では、注目ノードＰの子ノードに、Ｓ１０６で設定された比較ノードＸが追加される（ステップＳ１１０）。例えば、注目ノードＰが図８に示した第１ツリー構造における“ｈ１”ノードであって、比較ノードＸが“本文”ノードである場合には、第２ツリー構造において“ｈ１”ノードの下位に“本文”ノードが追加される。また、例えば、注目ノードＰが図８に示した第１ツリー構造における“ｈ２”ノードであって、比較ノードＸが“中見出し１”ノードである場合には、第２ツリー構造において“ｈ２”ノードの下位に“中見出し１”ノードが追加される。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００５９】
一方、比較ノードＸが文書構造上の上下関係を定義されたタグに対応するタグノードである場合には、Ｓ１１２において、注目ノードＰと比較ノードＸとの上下関係が比較される（ステップＳ１１２）。例えば、図１０に示した定義データ４０が定義されている場合に、注目ノードＰが“ｂｏｄｙ”ノードであって、比較ノードＸが“ｈ”タグに対応するタグノードである場合には、比較ノードＸ＜注目ノードＰと判定される。また、例えば、注目ノードＰが“ｈ１”ノードであって、比較ノードＸも“ｈ１”ノードである場合には、比較ノードＸ＝注目ノードＰと判定される。また、例えば、注目ノードＰが“ｈ２”ノードであって、比較ノードＸが“ｈ１”ノードである場合には、比較ノードＸ＞注目ノードＰと判定される。ここで、比較ノードＸ＞注目ノードＰである場合には、処理はＳ１１４へ進む。また、比較ノードＸ＝注目ノードＰである場合には、処理はＳ１１６へ進む。また、比較ノードＸ＜注目ノードＰである場合には、処理はＳ１１８へ進む。
【００６０】
次に、比較ノードＸ＞注目ノードＰである場合には、Ｓ１１４において、注目ノードＰの親ノードが新たな注目ノードＰとされる（ステップＳ１１４）。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ３”ノードであって、比較ノードＸが２つ目“ｈ２”ノードである場合には、１つ目の“ｈ３”ノードの親の１つ目の“ｈ２”ノードが注目ノードＰとして再設定される。そして、処理はＳ１１２へ戻り、注目ノードＰと比較ノードＸとの上下関係が再度比較される。
【００６１】
また、比較ノードＸ＝注目ノードＰである場合には、Ｓ１１６において、第２ツリー構造での注目ノードＰの親ノードの子ノード（即ち、兄弟ノード）として比較ノードＸが追加される。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ２”ノードであって、比較ノードＸが２つ目の“ｈ２”ノードである場合には、１つ目の“ｈ２”ノードの親ノードである“ｈ１”ノードの子ノードとして２つ目の“ｈ２”ノードが追加される。そして、追加された２つ目の“ｈ２”ノードが新たな注目ノードＰとなる。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００６２】
また、比較ノードＸ＜注目ノードＰである場合には、Ｓ１１８において、第２ツリー構造での注目ノードＰの子ノードとして比較ノードＸが追加される。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ２”ノードであって、比較ノードＸが１つ目の“ｈ３”ノードである場合には、１つ目の“ｈ２”ノードの子ノードとして“ｈ３”ノードが追加される。そして、追加された“ｈ３”ノードが新たな注目ノードＰとなる。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００６３】
このようなツリー構造変換部１２４によるツリー構造変換処理の結果、図８に一例として示した第１ツリー構造から図１２に示す第２ツリー構造が生成される。
【００６４】
図１２を参照すると、“ｂｏｄｙ”ノードの１つ下の階層に“ｈ１”ノードが位置し、さらに“ｈ１”ノードの１つ下の階層に“大見出し”、“本文”、１つ目の“ｈ２”ノード、及び２つ目の“ｈ２”ノードが位置している。また、各“ｈ２”ノードの１つ下の階層には、“中見出し１”ノード又は“中見出し２”ノード、及び各“ｈ３”ノードがそれぞれ位置している。さらに、各“ｈ３”ノードの１つ下の階層には、“小見出し１”ノード又は“小見出し２”ノードがそれぞれ位置している。この第２ツリー構造は、図９において視覚的に表現されていた文書１０の文書構造上の包含−被包含の関係に対応している。ツリー構造変換部１２４は、かかる第２ツリー構造を例えばＸＭＬ形式などにより表現するデータを、選択部１５０へ出力する。
【００６５】
［２−２．データ記憶部の構成］
データ記憶部１３０は、例えば、ハードディスク又は半導体メモリなどの記憶媒体を用いて構成され、解析部１２０のツリー構造変換部１２４により用いられる上述した定義データを予め記憶している。また、データ記憶部１３０は、マークアップ言語を用いて記述された文書から情報を抽出するための２つ以上のルールを記憶している。データ記憶部１３０により記憶されるルールは、例えば、LR  Wrapperの文法に従って記述されるルールであってよい。その代わりに、データ記憶部１３０により記憶されるルールは、例えば、正規表現の式などであってもよい。より一般には、データ記憶部１３０により記憶されるルールは、マークアップ言語を用いて記述された文書から情報を抽出するための条件を指定する手段であってよい。
【００６６】
（ルールの例）
図１３及び図１４は、LR  Wrapperの文法に従って記述されるルールの例を示す説明図である。
【００６７】
図１３を参照すると、第１の例としてのルールＲ１が示されている。ルールＲ１は、３つの条件Ｃｄ１１、Ｃｄ１２及びＣｄ１３を含む。このうち、第１の条件Ｃｄ１１は、前方に“<h2><h2><p>”、後方に“</p><h3></h3>”というタグのパターンを有する文書に適合する条件である。第２の条件Ｃｄ１２は、前方に“<h3></h3><p>”、後方に“</p><h3></h3>”というタグのパターンを有する文書に適合する条件である。第３の条件Ｃｄ１３は、前方に“<h3></h3><p>”、後方に“</p><h2></h2>”というタグのパターンを有する文書に適合する条件である。これらの条件を含むルールＲ１は、例えば、図１３に示した文書１０ａの部分１１ａに適合する。そして、第１の条件Ｃｄ１１により、例えば、情報Ｓ１（「世界で初めて○○製品を製造・販売し…」）が抽出され得る。また、第３の条件Ｃｄ１３により、例えば、情報Ｓ２（「東京の他、ニューヨーク、ロンドンで上場され…」）が抽出され得る。なお、第２の条件Ｃｄ１２によっても他の文字列が抽出され得るが、ここでは図示を省略している。
【００６８】
次に、図１４を参照すると、第２の例としてのルールＲ２が示されている。ルールＲ２は、３つの条件Ｃｄ２１、Ｃｄ２２及びＣｄ２３を含む。このうち、第１の条件Ｃｄ２１は、前方に“<h2></h2><ul><li>”、後方に“</li><li></li>”というタグのパターンを有する文書に適合する条件である。第２の条件Ｃｄ２２は、前方に“<li></li><li>”、後方に“</li><li></li>”というタグのパターンを有する文書に適合する条件である。第３の条件Ｃｄ２３は、前方に“<li></li><li>”、後方に“</li></ul>”というタグのパターンを有する文書に適合する条件である。これらの条件を含むルールＲ２は、例えば、図１４に示した文書１０ｂの部分１１ｂに適合する。そして、第１の条件Ｃｄ２１により、例えば、情報Ｓ３（「パーソナルコンピュータ」）が抽出され得る。また、第２の条件Ｃｄ２２により、例えば、情報Ｓ４（「デジタルカメラ」）が抽出され得る。また、第３の条件Ｃｄ２３により、例えば、情報Ｓ５（「デジタルフォトフレーム」）が抽出され得る。
【００６９】
なお、図１３及び図１４に示したルールＲ１及びＲ２は一例に過ぎない。データ記憶部１３０には、情報抽出のための少なくとも２つ以上のこのようなルールが、次に説明するデータ構成の下で、予め記憶される。
【００７０】
（データ構成の例）
データ記憶部１３０は、例えば、マークアップ言語を用いて記述された入力文書の少なくとも一部分における所定の文字列の出現頻度と当該部分に適用すべきルールとを関連付けて記憶する。図１５Ａは、上述した情報抽出のためのルールに関連する、データ記憶部１３０におけるデータ構成の一例を示す説明図である。
【００７１】
図１５Ａを参照すると、入力文書の少なくとも一部分における所定の文字列の出現頻度と当該部分に適用すべきルールとを関連付けるためのルール管理テーブルＴ１が示されている。本実施形態において、所定の文字列とは、ＨＴＭＬにおいて使用可能な３種類のタグ“ｈ２”、“ｌｉ”及び“ｐ”である。ルール管理テーブルＴ１において、各タグの出現頻度は、“高”又は“低”の２つのランクに分類されている。この場合、３種類のタグの出現頻度に応じて、最大で８通りの出現頻度のパターンを定義することができる。
【００７２】
例えば、ルール管理テーブルＴ１の第１のエントリは、“ｈ２”の出現頻度が“高”、“ｌｉ”の出現頻度が“低”、“ｐ”の出現頻度が“高”というパターンに、ルールＲ１が関連付けられることを示している。また、ルール管理テーブルＴ１の第２のエントリは、“ｈ２”の出現頻度が“低”、“ｌｉ”の出現頻度が“高”、“ｐ”の出現頻度が“低”というパターンに、ルールＲ２が関連付けられることを示している。また、ルール管理テーブルＴ１の第３のエントリは、“ｈ２”の出現頻度が“高”、“ｌｉ”の出現頻度が“高”、“ｐ”の出現頻度が“低”というパターンに、ルールＲ３が関連付けられることを示している。
【００７３】
なお、図１５Ａに示した３種類のタグ以外のタグが、各ルールと関連付けるべき出現頻度のパターンを区別するために使用されてもよい。また、タグではない文字列（テキストという）が出現頻度のパターンをさらに区別するために使用されてもよい。例えば、同じようなタグの配置が用いられる場合であっても、そこに含まれる見出し文字列（“製品”又は“サービス”など）に応じて情報の内容が異なることは少なくない。その際、一部の種類の情報のみを抽出したい場合には、特定の見出し文字列（例えば、“製品”など）の出現頻度をも考慮してパターンを区別するのが好適である。
【００７４】
図１５Ｂは、情報抽出のためのルールに関連する、データ記憶部１３０におけるデータ構成の他の例を示す説明図である。図１５Ｂを参照すると、ＨＴＭＬにおいて使用可能な３種類のタグ“ｈ２”、“ｌｉ”及び“ｐ”に加えて、テキスト“製品”を識別キーとするルール管理テーブルＴ２が示されている。そして、ルール管理テーブルＴ２において、“ｈ２”の出現頻度が“高”、“ｌｉ”の出現頻度が“低”、“ｐ”の出現頻度が“高”というパターンが、テキスト“製品”の出現頻度に応じてさらに２つのパターンに分類されている。その一方のパターン（第１のエントリ）は、テキスト“製品”の出現頻度が「０より大」であり、当該パターンにルールＲ１ａが関連付けられている。もう一方のパターン（第２のエントリ）はテキスト“製品”の出現頻度が「０」であり、当該パターンにルールＲ１ｂが関連付けられている。それ以外のエントリは、図１５Ａと同様であるため、ここでの説明は省略する。このように、タグ以外のテキストの出現頻度にさらに応じてルールを区別することで、情報抽出の精度をより高めることができる。
【００７５】
ここで、文字列（即ち、タグ又はテキスト）の「出現頻度」は、例えば、１つの入力文書内又は１つのブロック内の当該文字列の出現数であってもよい。また、文字列の「出現頻度」は、一定の文字数（又はバイト数）あたりの当該文字列の出現数であってもよい。さらに、「出現頻度」は、“高”及び“低”の２つのランクに分類される代わりに、より多くのランクに分類されてもよい。また、図１５Ｂに例示したように、「出現頻度」は、例えば、“０”及び“０より大”の２つのランクに分類されてもよい（この場合は、当該文字列が存在しているか存在していないかを表す）。
【００７６】
［２−３．ルールの学習］
図１５Ａ及び図１５Ｂに示したような、文字列の出現頻度のパターンとルールとの関連付けは、典型的には、事前の学習処理によって行われる。学習処理は、情報処理装置１００が実行してもよく、又は他の情報処理装置が実行してもよい。
【００７７】
図１６は、文字列の出現頻度のパターンとルールとの関連付けを学習するための情報処理装置１０２の構成の一例を示すブロック図である。図１６を参照すると、情報処理装置１０２は、入力文書取得部１１０、解析部１２０、データ記憶部１３０、及び学習部１４０を備える。
【００７８】
学習部１４０は、マークアップ言語を用いて記述された学習の対象となる入力文書を入力文書取得部１１０から取得すると共に、当該入力文書から生成される上述した第２ツリー構造を解析部１２０から取得する。そして、学習部１４０は、図１７を用いて説明する学習処理により、文字列の出現頻度のパターンとルールとの関連付けを学習し、その学習の結果をデータ記憶部１３０に記憶させる。
【００７９】
図１７は、学習部１４０による学習処理の流れの一例を示すフローチャートである。図１７を参照すると、まず、学習部１４０は、入力文書を入力文書取得部１１０から取得すると共に、当該入力文書から生成される第２ツリー構造を解析部１２０から取得する（ステップＳ２０２）。
【００８０】
次に、学習部１４０は、入力文書内のブロックごとの処理のループに入る（ステップＳ２０４）。ここで、入力文書内のブロックとは、解析部１２０により生成された第２ツリー構造のうちの所定の深さの部分ツリーに対応する、入力文書内の一部分に相当する。例えば、第２ツリー構造のうちの所定の深さの部分ツリーとは、図１８に示した（図１２に示したものと同じ）第２ツリー構造における、部分ツリー１３ａ及び１３ｂなどであってもよい。この場合、第２ツリー構造の最上位ノードから２レベル下方のノード以下の部分ツリー（又は末端ノードから２レベル上方のノード以下の部分ツリー）に対応する部分がブロックとして認識される。
【００８１】
そして、学習部１４０は、第２ツリー構造から認識したブロックごとに、まず、タグ及びテキストを抽出する（ステップＳ２０６）。次に、出現頻度のパターンを区分するためにテキストも利用する場合には、テキストを形態素解析することにより、当該テキスト内に含まれる個々の単語を抽出する（ステップＳ２０８、Ｓ２１０）。なお、スペース等の記号を用いて個々の単語が予め区切られている英語等の言語によりテキストが記述されている場合には、形態素解析は行われなくてもよい。次に、学習部１４０は、タグ（及びテキスト）の出現頻度のパターンをデータ記憶部１３０に登録する（ステップＳ２１２）。ここで、登録済みのいずれの出現頻度のパターンに新たなブロックの出現頻度のパターンを分類すべきかは、例えばベイジアンフィルタを用いて決定され得る。登録済みのいずれの出現頻度のパターンにも新たなブロックの出現頻度のパターンを分類できない場合には、その出現頻度のパターンが新たな出現頻度のパターンとしてデータ記憶部１３０に登録され得る。次に、学習部１４０は、データ記憶部１３０に登録した出現頻度のパターンを、（学習データとして既知の）当該パターンに適したルールに関連付ける（ステップＳ２１４）。
【００８２】
学習部１４０は、このようなステップＳ２０６〜Ｓ２１４の一連の処理を、第２ツリー構造から認識したブロックごとに繰り返す。そして、全てのブロックのループが終了すると、学習処理は終了する（ステップＳ２１６）。
【００８３】
［２−４．スニペットの抽出と蓄積］
情報処理装置１００の選択部１５０は、上述した学習処理の結果としてデータ記憶部１３０に予め記憶されている図１５Ａ又は図１５Ｂに例示したルール管理テーブルを用いて、入力文書内のブロックごとに適用すべきルールを２つ以上のルールから選択する。
【００８４】
より具体的には、選択部１５０は、解析部１２０により生成された第２ツリー構造のうちの所定の深さの部分ツリーに対応する入力文書内の一部分であるブロックごとに、当該ブロックにおける３種類のタグ“ｈ２”、“ｌｉ”及び“ｐ”の出現頻度を計算する。次に、選択部１５０は、３種類のタグの出現頻度に対応するパターンを特定する。例えば、対象のブロックにおいてタグ“ｈ２”及び“ｐ”の出現頻度が高く、タグ“ｌｉ”の出現頻度が低い場合には、図１５Ａのルール管理テーブルＴ１の第１のエントリのパターンが特定され得る。この場合、選択部１５０は、当該パターンと関連付けられたルールＲ１を、当該ブロックからの情報の抽出のために適用すべきルールとして選択する。
【００８５】
次に、抽出部１６０は、選択部１５０により選択されたルールを用いて、各ブロックから情報を抽出する。そして、抽出部１６０は、ブロックごとに抽出した情報を、順次データベース１７０に蓄積する。このとき、抽出部１６０は、ブロックごとに抽出した情報に情報の検索キーとなるラベルを付す。
【００８６】
図１９は、抽出部１６０による情報抽出処理について説明するための説明図である。図１９を参照すると、入力文書１０ａ内でブロック１１ａが認識されている。そして、ブロック１１ａにおける３種類のタグ“ｈ２”、“ｌｉ”及び“ｐ”の出現頻度に応じて、ブロック１１ａに適用すべきルールとしてルールＲ１が選択されている。かかる例において、抽出部１６０は、ルールＲ１をブロック１１ａに適用する。その結果、例えば、条件Ｃｄ１１と適合する情報Ｓ１が抽出される。そして、抽出部１６０は、情報Ｓ１の上位ノードである見出しタグ（“ｈ１”及び“ｈ２”）によりマークアップされたテキストＬ１ａ（“ＸＸ会社”）及びＬ１ｂ（“沿革”）を、抽出した情報Ｓ１にラベルとして付加し、スニペットを形成する。なお、ラベルとして付加するテキストは、かかる例に限定されず、例えば、Ｗｅｂページのタイトルを指定する“ｔｉｔｌｅ”タグによりマークアップされたテキスト、又はその他の任意のテキストであってよい。
【００８７】
図２０は、データベース１７０に蓄積されるスニペットについて説明するための説明図である。図２０の例において、データベース１７０には、＃１から＃６までの６個のスニペットが蓄積されている。各スニペットは、情報を検索するためのキーとなるラベル、及び情報の内容を示すアイテムをそれぞれ含む。また、各スニペットには、アイテムの長さ（文字数）、及びスコアが与えられている。
【００８８】
スニペット＃１は、図１９の例において入力文書１０ａ内のブロック１１ａにルールＲ１を適用することにより抽出されたスニペットである。スニペット＃１のアイテムの長さは８０、スコアは７０である。スニペットのアイテムの長さは、端末装置２００からの要求に応じてスニペットを提供する際のデータ量を制御するために用いられる。スニペットのスコアは、例えば、特徴的な単語をアイテムが含む場合に高い値となるＴＦ‐ＩＤＦ（Term  Frequency‐Inverse  Document  Frequency）によるスコアであってもよい。その代わりに、スニペットのスコアは、例えば、情報が新しいほど高い値となるスコア、又はそうしたスコアとＴＦ‐ＩＤＦとの組合せなどであってもよい。スニペットのスコアは、端末装置２００からの要求に応じてスニペットを提供する際に、いずれのスニペットを優先的に提供するかを決定するために用いられる。
【００８９】
［２−５．スニペットの提供］
検索部１８０は、端末装置２００から送信されるキーワードに適合するラベル又はアイテムを有するスニペットをデータベース１７０から検索し、検索の結果として取得されるスニペットを端末装置２００へ送信する。このとき、検索部１８０は、データベース１７０から取得したスニペットのうち、端末装置２００から送信される当該端末装置２００での表示に関する制約条件に応じて選択したスニペットを、端末装置２００へ送信してもよい。端末装置２００から情報処理装置１００へのスニペットの要求、及び情報処理装置１００から端末装置２００へのスニペットの提供については、次節においてさらに説明する。
【００９０】
＜３．端末装置の構成例＞
図２１は、本実施形態に係る端末装置２００の概略的な構成の一例を示すブロック図である。図２１を参照すると、端末装置２００は、ユーザインタフェース２１０及び検索要求部２２０を主に備える。
【００９１】
［３−１．ユーザインタフェースの例］
本実施形態において、ユーザインタフェース２１０は、スニペットをユーザに提示することのできるアプリケーションの一例としてのチャット機能を有する。図２２は、ユーザインタフェース２１０により端末装置２００の画面上に表示される画面の一例を示す説明図である。図２２を参照すると、ユーザインタフェース２１０により端末装置２００の画面上に表示される画面の一例としての画面２１２が示されている。画面２１２は、チャットウィンドウ２１４、スニペット一覧ウィンドウ２１６、及び動画表示ウィンドウ２１８を含む。
【００９２】
チャットウィンドウ２１４は、例えば、端末装置２００のユーザ（ユーザＡ）が他の端末装置のユーザ（ユーザＢ）との間でチャットをするためのウィンドウである。チャットウィンドウ２１４において、ユーザＡとユーザＢとの間のテキストコミュニケーションが、画面の上から下に向けて順に表示されている。
【００９３】
スニペット一覧ウィンドウ２１６は、端末装置２００が情報処理装置１００から取得するスニペットの一覧を表示するためのウィンドウである。図２２の例において、スニペット一覧ウィンドウ２１６には、スニペットＳｎ１及びＳｎ２が表示されている。端末装置２００のユーザＡは、例えば、このようにスニペット一覧ウィンドウ２１６に表示されたスニペットＳｎ１をコピーしてチャットウィンドウ２１４の自身の発言に挿入することができる（発言Ｓｔ２参照）。スニペット一覧ウィンドウ２１６に表示されるスニペットは、例えば、検索要求部２２０によりチャットウィンドウ２１４から抽出されるキーワードＫ１に応じて、情報処理装置１００において検索され、提供されたスニペットである。
【００９４】
動画表示ウィンドウ２１８には、例えば、放送されるテレビ番組、又は端末装置２００において再生され若しくは端末装置２００と他の端末装置との間で共有されるムービーなどが表示される。検索要求部２２０は、かかる動画表示ウィンドウ２１８に表示されるコンテンツから（字幕からの抽出又は音声認識などにより）取得されるキーワードを、情報処理装置１００へのスニペットの検索要求に用いてもよい。
【００９５】
［３−２．スニペットの検索］
検索要求部２２０は、例えば、図２２を用いて説明したチャットウィンドウ２１４に表示される発言の中から、特徴的なキーワードを抽出する。例えば、図２２の例では、ユーザＢによる発言Ｓｔ１に「ＸＸ会社」というキーワードＫ１が含まれている。検索要求部２２０は、例えば、このような発言から抽出したキーワードに適合するスニペットの提供を要求するためのスニペット要求を生成し、情報処理装置１００へ送信する。
【００９６】
このとき、検索要求部２２０は、表示に関する制約条件を、スニペット要求に含めてもよい。表示に関する制約条件とは、例えば、スニペット一覧ウィンドウ２１６において表示可能なスニペットの数又はアイテムの長さの合計値などを含み得る。そして、検索要求部２２０は、情報処理装置１００からスニペット要求への応答として提供されるスニペットの一覧を、スニペット一覧ウィンドウ２１６に表示させる。例えば、図２２の例では、キーワードＫ１に応じて情報処理装置１００において取得されたスニペットＳｎ１及びＳｎ２が、スニペット一覧ウィンドウ２１６に表示されている。
【００９７】
図２３は、情報処理装置１００から端末装置２００へのスニペットの提供の流れの一例を示すシーケンス図である。
【００９８】
図２３において、まず、端末装置２００の検索要求部２２０は、チャットウィンドウ２１４内の発言、又は動画表示ウィンドウ２１８に表示されるコンテンツから、キーワードを抽出する（ステップＳ３０２）。次に、検索要求部２２０は、抽出したキーワードと表示上の制約条件とを含むスニペット要求を生成し、当該スニペット要求をネットワーク３を介して情報処理装置１００へ送信する（ステップＳ３０４）。
【００９９】
情報処理装置１００の検索部１８０は、端末装置２００からスニペット要求を受信すると、スニペット要求に含まれるキーワードに適合するスニペットを、データベース１７０から検索する。例えば、スニペット要求に含まれるキーワードが「ＸＸ会社」を表すキーワードＫ１であれば、図２０に例示したスニペット＃１〜＃６のうち、スニペット＃１〜＃５が取得される（ステップＳ３１２）。なお、ここで検索結果にスニペットが１件も含まれない場合（即ち、キーワードに適合するスニペットが存在しない場合）には、その後の処理はスキップされ（ステップＳ３１４）、端末装置２００へエラーが通知される（ステップＳ３１８）。
【０１００】
検索結果に１件以上のスニペットが含まれている場合には、検索部１８０は、当該１件以上のスニペットから、スニペット要求に含まれる制約条件を満たすように、端末装置２００に提供すべきスニペットを選択する（ステップＳ３１６）。例えば、スニペット一覧ウィンドウ２１６において表示可能なスニペットの数が４個、アイテムの長さの合計値が１５０であったと仮定する。その場合、検索部１８０は、まず、検索結果に含まれるスニペット＃１〜＃５（図２０参照）のうち、スコアの高いスニペット＃１、＃２及び＃３を順に選択する。この時点で選択されたスニペットの数は３個、アイテムの長さの合計値は１４１である。その後、次にスコアの高いスニペット＃５（“デジタルフォトフレーム”）を選択すると、アイテムの長さの合計値が１５０を超えて制約条件を満たすことができない。この場合、検索部１８０は、スニペット＃５ではなくスニペット＃４（“デジタルカメラ”）を選択する。そして、検索部１８０は、スニペット要求に含まれる制約条件を満たすように選択したそれらのスニペット＃１〜＃４を、端末装置２００へ送信する（ステップＳ３１８）。
【０１０１】
端末装置２００の検索要求部２２０は、情報処理装置１００からスニペット（例えば上述したスニペット＃１〜＃４）を受信すると、受信したスニペットをユーザインタフェース２１０のスニペット一覧ウィンドウ２１６に表示する（ステップＳ３２２）。それにより、ユーザは、スニペット一覧ウィンドウ２１６に表示されたスニペットに含まれる所望の情報を、チャットに利用することができる（ステップＳ３２４）。
【０１０２】
なお、情報処理装置１００の検索部１８０は、データベース１７０に記憶されているスニペットごとのスコアを、端末装置２００への提供の回数、又は端末装置２００においてスニペットが利用された回数に応じて変化させてもよい。例えば、端末装置２００へ一度提供したスニペットのスコアを下げておくことで、同じスニペットが繰返し端末装置２００に提供されることを避けることができる。
【０１０３】
＜４．ハードウェア構成の一例＞
本明細書において説明した情報処理装置１００及び端末装置２００の各機能は、専用のハードウェアに組み込まれたコンピュータ、又は図２４に示した汎用コンピュータを用いて実行され得る。
【０１０４】
図２４において、ＣＰＵ（Central  Processing  Unit）９０２は、汎用コンピュータの動作全般を制御する。ＲＯＭ（Read  Only  Memory）９０４には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。ＲＡＭ（Random  Access  Memory）９０６には、処理の実行時にＣＰＵ９０２により用いられるプログラムやデータなどが一時的に記憶される。
【０１０５】
ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６は、バス９１０を介して相互に接続される。バス９１０にはさらに、入出力インタフェース９１２が接続される。
【０１０６】
入出力インタフェース９１２は、ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６と、入力装置９２０、出力装置９２２、記憶装置９２４、通信装置９２６、及びドライブ９３０とを接続するためのインタフェースである。
【０１０７】
入力装置９２０は、例えばボタン、スイッチ、レバー、マウスやキーボードなどの入力装置を介して、ユーザからの指示や情報入力を受け付ける。出力装置９２２は、例えばＣＲＴ（Cathode  Ray  Tube）、液晶ディスプレイ、ＯＬＥＤ（Organic  Light  Emitting  Diode）などの表示装置、又はスピーカなどの音声出力装置を介してユーザに情報を出力する。
【０１０８】
記憶装置９２４は、例えばハードディスクドライブ又はフラッシュメモリなどにより構成され、プログラムやプログラムデータなどを記憶する。通信装置９２６は、ネットワーク３を介する通信処理を行う。ドライブ９３０は、必要に応じて汎用コンピュータに設けられ、例えばドライブ９３０にはリムーバブルメディア９３２が装着される。
【０１０９】
上述した一実施形態に係る一連の処理をソフトウェアで実行する場合には、例えば図２４に示したＲＯＭ９０４、記憶装置９２４、又はリムーバブルメディア９３２に格納されたプログラムが、実行時にＲＡＭ９０６に読み込まれ、ＣＰＵ９０２により実行される。
【０１１０】
＜５．まとめ＞
ここまで、図１〜図２４を用いて、本発明の一実施形態について説明した。本実施形態によれば、マークアップ言語を用いて記述された文書から情報を抽出するためのルールが、入力文書の少なくとも一部分（即ち、ブロック）における所定の文字列の出現頻度に応じて選択され、選択されたそのルールを用いて当該部分から情報が抽出される。それにより、用意されたルールのうちの適切なルールのみが各ブロックに適用されるため、Ｗｅｂページ等の情報ソースから不適切な情報が抽出される可能性が低減される。また、未知のＷｅｂページについても、使用されているマークアップ言語が共通する限り、本実施形態を適用して所定の文字列の出現頻度に応じてルールを適応的に選択することができる。従って、より幅広い情報ソースから効率的かつ高い精度で有意な情報を抽出することが可能となる。
【０１１１】
また、本実施形態において、上記所定の文字列は、マークアップ言語において使用可能なタグである。例えば、ＨＴＭＬにおける見出しに関連する“ｈ”タグ、リストに関連する“ｕｌ”タグ若しくは“ｌｉ”タグ、又は段落に関連する“ｐ”タグ等の出現頻度に応じてルールを選択可能とすることで、ＨＴＭＬを用いて記述されたＷｅｂページからの効率的な情報の抽出が可能となる。また、タグ以外の文字列（例えば特定の見出し文字列等）の出現頻度をも用いることで、さらに情報抽出の精度を高めることもできる。
【０１１２】
また、本実施形態において、マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義する定義データに基づいて入力文書から生成される上記第２ツリー構造の部分ツリーごとに、入力文書内のブロックが認識される。そして、適用すべきルールがそれらブロックごとに選択され、選択されたルールを用いて情報が抽出される。それにより、十分に構造的に記述されていないＨＴＭＬ文書についても、視覚的に把握され得る文書構造上の上下関係を的確に反映したブロックごとに、ルールの適応的な選択と情報の抽出を行うことができる。
【０１１３】
また、本実施形態では、適応的に選択されたルールを用いて幅広いソースから抽出された情報がデータベースに蓄積され、端末装置からの要求に応じて提供される。その際、端末側の表示の制約条件に応じて、提供すべき情報が動的に選択される。それにより、チャット等のテキストコミュニケーションを実現する端末装置において、コミュニケーションをより充実させるための有意な情報を、表示の制約条件の範囲内で簡単に利用することが可能となる。即ち、ユーザにとっては、別途の検索画面を立ち上げてキーワード検索等を行うことなく、適応的に選択されたルールを用いて幅広いソースから抽出された情報をコミュニケーションの中で利用することが可能となる。
【０１１４】
なお、ここでは、端末装置２００において検索要求部２２０が自動的にキーワードを取得する例について説明した。しかしながら、ユーザインタフェース２１０にキーワード入力用のテキストボックスを追加的に設けてもよい。また、情報処理装置１００から端末装置２００へ提供されるスニペットのアイテムは、テキストのみならず、人物の顔写真などの画像、又はその他の種類のデータを含んでもよい。
【０１１５】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１６】
１００    情報処理装置
１１０    入力文書取得部
１２０    解析部
１３０    データ記憶部
１５０    選択部
１６０    抽出部
１７０    データベース
１８０    検索部
２００    端末装置（他の情報処理装置）
２１０    ユーザインタフェース
２２０    検索要求部
【図１】
2011100403.tif 000003
【図２】
2011100403.tif 000004
【図３】
2011100403.tif 000005
【図４】
2011100403.tif 000006
【図５】
2011100403.tif 000007
【図６】
2011100403.tif 000008
【図７】
2011100403.tif 000009
【図８】
2011100403.tif 000010
【図９】
2011100403.tif 000011
【図１０】
2011100403.tif 000012
【図１１】
2011100403.tif 000013
【図１２】
2011100403.tif 000014
【図１３】
2011100403.tif 000015
【図１４】
2011100403.tif 000016
【図１５Ａ】
2011100403.tif 000017
【図１５Ｂ】
2011100403.tif 000018
【図１６】
2011100403.tif 000019
【図１７】
2011100403.tif 000020
【図１８】
2011100403.tif 000021
【図１９】
2011100403.tif 000022
【図２０】
2011100403.tif 000023
【図２１】
2011100403.tif 000024
【図２２】
2011100403.tif 000025
【図２３】
2011100403.tif 000026
【図２４】
2011100403.tif 000027