(57)【要約】  ウェブページを構成している構造化文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを行ごとに付与するとともに、キーワードが含まれる行については当該キーワードに応じたキーワードポイントを深さポイントに加算する。そして、深さポイントとキーワードポイントとに基づいて、キーワードが含まれている行およびその前後の数行を含む所定範囲を対象ブロックとして抽出し、抽出した対象ブロック内から所定の条件を満たす情報を抽出するようにすることにより、キーワードから近い距離に掲載されることが多い所望の情報をウェブページから自動的に抽出することができるようにする。
2013038519.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページを構成している構造化文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを上記構造化文書の行ごとに付与する深さポイント付与部と、
上記構造化文書の中でキーワードが含まれる行については当該キーワードに応じたキーワードポイントを上記深さポイントに加算するキーワードポイント付与部と、
上記キーワードポイントが加算されて上記深さポイントとの差分が生じている行およびその前後の数行を含む所定範囲を対象ブロックとして抽出するブロック抽出部と、
上記ブロック抽出部により抽出された対象ブロック内から、所定の条件を満たす情報を抽出する情報抽出部とを備えたことを特徴とするウェブページ解析装置。
【請求項２】
上記ブロック抽出部は、上記キーワードポイントが加算されて上記深さポイントとの差分が生じている行を含み、当該差分が生じている行よりも後の行で上記キーワードポイントが加算されておらず且つ上記深さポイントが極小となっている最初の行を終点とし、上記差分が生じている行よりも前の行で上記終点と同じ値で深さポイントが極小となっている行を始点とする範囲を上記対象ブロックとして抽出することを特徴とする請求項１に記載のウェブページ解析装置。
【請求項３】
ユーザにより入力された単語を上記キーワードとして設定するキーワード設定部を更に備えたことを特徴とする請求項１に記載のウェブページ解析装置。
【請求項４】
上記キーワード設定部は、上記ブロック抽出部により抽出された上記対象ブロックの中に含まれる単語を更に上記キーワードとして追加設定することを特徴とする請求項３に記載のウェブページ解析装置。
【請求項５】
上記キーワード設定部は、解析対象とされたウェブページから上記ブロック抽出部により抽出された上記対象ブロックの総数と、上記キーワードとして設定された単語の出現数とを用い、上記対象ブロックの総数に対する上記単語の出現数の割合に応じた値を、上記キーワードに対するキーワードポイントとして設定することを特徴とする請求項３または４に記載のウェブページ解析装置。
【請求項６】
上記情報抽出部により上記対象ブロック内から抽出された情報について、あらかじめ定めた１以上の種類の情報が揃っているか否かを判定し、揃っている場合にのみ上記対象ブロック内から抽出された情報を出力するフィルタリング部を更に備えたことを特徴とする請求項１に記載のウェブページ解析装置。
【請求項７】
ウェブページを構成している構造化文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを上記構造化文書の行ごとに付与する深さポイント付与手段、
上記構造化文書の中でキーワードが含まれる行については当該キーワードに応じたキーワードポイントを上記深さポイントに加算するキーワードポイント付与手段、
上記キーワードポイントが加算されて上記深さポイントとの差分が生じている行およびその前後の数行を含む所定範囲を対象ブロックとして抽出するブロック抽出手段、および
上記ブロック抽出手段により抽出された対象ブロック内から、所定の条件を満たす情報を抽出する情報抽出手段、
としてコンピュータを機能させるためのコンピュータ読み取り可能なウェブページ解析用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブページ解析装置およびウェブページ解析用プログラムに関し、特に、ＨＴＭＬ（HyperText Markup Language）等で記述されたウェブページの構造化文書を解析する装置およびプログラムに関するものである。
【背景技術】
【０００２】
現在、インターネット上には多数のウェブページが存在し、多種多様な情報が提供されている。ユーザは、これらのウェブページを閲覧することにより、所望の情報を取得することが可能である。【０００３】
従来、所望の情報が掲載されたウェブページを探し出すために、検索エンジンと呼ばれるプログラムが提供されている。基本的には、ユーザが所望の情報に関連するキーワードを検索サイトにて入力すると、当該検索サイトに組み込まれている検索エンジンが、入力されたキーワードを含むウェブページを検索し、検索された複数のウェブページをＵＲＬのリストとして提示するようになっている。【０００４】
しかし、検索エンジンでは、単純にキーワードを含むウェブページを探索して抽出するだけなので、抽出されたウェブページの中には、ユーザが希望しないノイズとなるウェブページも多く含まれている。そのため、ユーザは、検索エンジンによってリストアップされたＵＲＬに対して順にアクセスして、ウェブページの内容を１つ１つ確認していく手作業が必要であった。【０００５】
例えば、各種商品の価格調査をするために、商品と価格とが掲載されたＥＣ（電子商取引）サイトのウェブページを検索エンジンで検索する場合を考える。例えば、どのＥＣサイトにも記述されていそうな「価格」というキーワードを入力して検索すると、ＥＣサイトのウェブページが多く抽出されるが、ＥＣサイト以外のウェブページも抽出結果の中にノイズとして含まれてしまう。この場合ユーザは、多くのノイズも含めてウェブページを１つ１つ開いて内容を確認していく必要があるので、作業効率が悪化するという問題があった。【０００６】
これに対して、ウェブページのような構造化文書の種別を判定する手法が提案されている（例えば、特許文献１，２参照）。この判定手法を用いれば、例えばＥＣサイトのウェブページだけを検索することが可能となる。
【特許文献１】特開２０００−２９９０２号公報
【特許文献２】特開２００３−３０８３２７号公報
【０００７】
特許文献１では、あらかじめＨＴＭＬ文書すべてについて、タグとキーワードによる特徴、イメージ情報による特徴、リンク情報による特徴、タグ構造による特徴から構造的な特徴を抽出し、ルールと照合することによって、分類する種別への適合度を計算する。そして、入力されたキーワードと種別を用いて、ある適合度以下の文書を削除して絞り込んだ結果を表示する。【０００８】
しかしながら、この特許文献１に記載の技術では、構造的特徴ルールベースおよび調整ルールの構築や調整が必須である。このために、ルールのベースとなる特徴を選び出し、各ルールに与える点数を設定するなどのチューニングが必要であるので、精度のよい判定を行うには多くの手間と時間を要するという問題があった。【０００９】
また、特許文献１に記載の技術では、インターネット上のウェブページの変化に即座に対応できないという問題もあった。すなわち、ウェブページの特徴は日々変化しており、この変化に応じて、最初に判定ルールベースを作成したのと同様に、経験知識を積み重ねながら試行錯誤を繰り返してルールを再構築する必要がある。【００１０】
このような問題の解消を目的として、特許文献２では、ネットワークを介して収集された複数の構造化文書の種別を教師データとして入力する教師データ入力手段と、構造化文書および教師データに基づいて、複数の構造化文書の種別を判定するための判定ルールを作成する判定ルール作成手段と、判定ルール作成手段により作成された判定ルールに従って構造化文書の種別を判定する判定ルール実行手段とを備える。
【発明の開示】
【００１１】
しかしながら、上記特許文献１，２に記載の技術では、ウェブページの種別までは判定することができるものの、ウェブページの内容までは解析することができないという問題があった。通常、１つのウェブページの中にも多くの情報が含まれている。ユーザが所望する情報というのは、ウェブページ全体にある場合よりも、ウェブページの中の一部に存在している場合の方が多い。そのため、仮にユーザが希望する種別のウェブページに絞って抽出することができたとしても、更にウェブページの内容をユーザが目視により確認していく作業が必要となる。
【００１２】
例えば、上述のようにウェブページの情報を解析して各種商品の価格調査をしたい場合、特許文献１，２に記載の技術によれば、種別の判定によりＥＣサイトのウェブページだけを抽出することまでは可能である。しかしながら、そのウェブページの中のどこに商品と価格が掲載されているかまでは解析することができない。そのため、ユーザは、抽出されたＥＣサイトのウェブページを１つ１つ開いて内容を確認していく手作業が必要であり、作業効率が悪化するという問題があった。
【００１３】
本発明は、このような問題を解決するために成されたものであり、インターネット上のウェブサイトにある多くのウェブページから所望の情報を効率的に抽出できるようにすることを目的とする。
【００１４】
この目的を達成するために、本発明では、ウェブページを構成している構造化文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを構造化文書の行ごとに付与するとともに、キーワードが含まれる行については当該キーワードに応じたキーワードポイントを深さポイントに加算する。そして、深さポイントとキーワードポイントとに基づいて、キーワードが含まれている行およびその前後の数行を含む所定範囲を対象ブロックとして抽出し、抽出した対象ブロック内から所定の条件を満たす情報を抽出するようにしている。
【００１５】
このように構成した本発明によれば、ウェブページを構成している構造化文書において、キーワードが含まれている行から近い距離にある所定範囲の行の集合が対象ブロックとして抽出され、当該対象ブロックから所定の条件を満たす情報が抽出される。よって、所望の情報を抽出するために必要な条件を上記所定の条件として設定しておけば、キーワードから近い距離に掲載されることが多い所望の情報をウェブページから自動的に抽出することができる。これにより、インターネット上のウェブサイトにある多くのウェブページから所望の情報を効率的に抽出することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態によるウェブページ解析装置を含むウェブページ解析システムの構成例を示す図である。
【図２】本実施形態によるウェブページ解析装置の機能構成例を示すブロック図である。
【図３】本実施形態のウェブページ解析装置により解析対象とするウェブページの一例を示す図である。
【図４】図３に示したウェブページのＨＴＭＬ文書の一例を示す図である。
【図５】図４に示したＨＴＭＬ文書の行ごとのポイントを示す図である。
【図６】図５に示したポイントをグラフ化して対象ブロックの抽出例を説明するための図である。
【図７】本実施形態によるウェブページ解析装置の動作例を示すフローチャートである。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本実施形態によるウェブページ解析装置を含むウェブページ解析システムの構成例を示す図である。図１に示すように、本実施形態のウェブページ解析システムは、ウェブページ収集部１０、ウェブページ記憶部２０、ウェブページ解析装置３０、表示部４０および操作部５０を備えて構成されている。【００１８】
ウェブページ収集部１０は、インターネット上にある多くのウェブサイトから多くのウェブページを収集してくるものである。このウェブページ収集部１０の機能は、例えば、「クローラ」と呼ばれるページ収集ロボットのプログラムにより実現される。ウェブページ記憶部２０は、ウェブページ収集部１０により収集された多くのウェブページを記憶する。【００１９】
ウェブページ解析装置３０は、ウェブページ記憶部２０に記憶された多くのウェブページを解析して、ユーザが所望する情報をウェブページから抽出して出力する。本実施形態では、ウェブページ解析装置３０が抽出した所望の情報をディスプレイ等の表示部４０に出力する。ただし、出力先は表示部４０に限定されない。例えば、プリンタ等の印刷部であってもよいし、ハードディスクや半導体メモリ等の記録媒体であってもよい。【００２０】
操作部５０は、ユーザがウェブページ解析装置３０に対してキーワードを入力する際に使用するものであり、例えばキーボードやマウスにより構成される。また、操作部５０は、所望の情報としてどのような種類の情報を抽出したいのかを表す情報タイプをユーザが指定する際にも使用する。【００２１】
例えば、ユーザは、商品の価格情報を抽出したいのか、会社情報を抽出したいのか、求人情報を抽出したいのかといった情報の種類を所望の情報タイプとして指定する。また、ユーザは、指定した情報タイプとの関連性があると思われる単語をキーワードとして入力する。例えば、商品の価格情報であれば「税込」、会社情報であれば「代表」、求人情報であれば「勤務」などの単語をキーワードとして入力する。【００２２】
なお、ここではユーザが所望の情報タイプとキーワードとの両方を操作部５０の操作により入力する例について説明したが、本発明はこれに限定されない。例えば、情報タイプと所定のキーワードとをあらかじめ関連付けて記憶しておき、ユーザが操作部５０を操作して所望の情報タイプを指定したら、その情報タイプに関連付けられたキーワードを自動的に入力するようにしてもよい。【００２３】
ウェブページ解析装置３０は、解析処理部３１、キーワード設定部３２およびキーワード記憶部３３を備えて構成されている。解析処理部３１は、ウェブページ記憶部２０に記憶された多くのウェブページを解析し、ユーザが所望する情報をウェブページから抽出して出力する処理を実行する。なお、この解析処理部３１の詳細な機能構成については、図２を用いて後述する。【００２４】
キーワード設定部３２は、解析処理部３１がウェブページを解析する際に使用するキーワードを設定する。また、キーワード設定部３２は、設定したキーワードに対して付与すべきキーワードポイント（詳細は後述する）の値も設定する。キーワード記憶部３３は、キーワード設定部３２により設定されたキーワードおよびそれに対応するキーワードポイントを記憶する。【００２５】
本実施形態において、キーワード設定部３２は、操作部５０の操作を通じてユーザにより入力された単語をキーワードとして設定する。また、キーワード設定部３２は、解析処理部３１によるウェブページの解析処理の過程において、解析対象とされたウェブページの中から抽出された単語もキーワードとして追加設定する。【００２６】
そして、キーワード設定部３２は、このようにして設定したキーワードに対して付与すべきキーワードポイントの値を設定し、各キーワードおよびキーワードポイントを互いに関連付けてキーワード記憶部３３に記憶する。【００２７】
なお、キーワード設定部３２は、ユーザが操作部５０の操作を通じて入力したキーワードについては、その入力時点においては例えば所定の値をキーワードポイントとして初期設定する。一方、解析処理の過程でウェブページから追加設定されたキーワードについては、キーワード設定部３２は、所定の計算によって求められる値をキーワードポイントとして初期設定する。このようにしてキーワードポイントを初期設定した後も、キーワード設定部３２は、ウェブページの解析を進めるごとに、上記所定の計算を行ってキーワードポイントを随時更新する。【００２８】
解析処理部３１は、ウェブページ記憶部２０に記憶されているウェブページのうち、キーワード記憶部３３に記憶されたキーワードが含まれるウェブページを対象として解析処理を実行する。上述したように、解析処理の過程でウェブページの中から抽出された単語がキーワードとして追加設定されるので、キーワード記憶部３３に記憶されるキーワードは学習効果により変化していく。また、キーワードに対して与えられらるキーワードポイントの値も学習効果により増減していく。【００２９】
このため、キーワードが追加されていない解析当初は、操作部５０の操作を通じてユーザにより入力されたキーワード（例えば、情報タイプが商品の価格情報の場合は「税込」という単語）だけがキーワード記憶部３３に記憶されており、当該キーワードを含むウェブページだけが解析処理部３１による解析対象とされる。これに対して、複数のウェブページに対する解析処理が進むにつれて、ウェブページから抽出されたキーワードがキーワード記憶部３３に追加して記憶され、当初の「税込」というキーワードが含まれていないウェブページも解析処理部３１による解析対象に含まれることとなる。【００３０】
図２は、本実施形態によるウェブページ解析装置３０の機能構成例を示すブロック図である。図３は、本実施形態のウェブページ解析装置により解析対象とするウェブページの一例を示す図である。図４は、図３に示したウェブページの構造化文書（ＨＴＭＬ文書）の一例を示す図である。図５は、図４に示したＨＴＭＬ文書の行ごとのポイントを示す図である。図６は、図５に示したポイントをグラフ化して対象ブロックの抽出例を説明するための図である。【００３１】
以下、これらの図２〜図６を用いて、本実施形態によるウェブページ解析装置３０の機能構成について説明する。なお、図３および図４は、ウェブページの一例として、ＥＣサイトのウェブページおよびそのＨＴＭＬ文書を示している。また、図５および図６は、図３および図４に示すウェブページの解析例を示している。【００３２】
図２に示すように、本実施形態のウェブページ解析装置３０は、その機能構成として、上述したキーワード設定部３２およびキーワード記憶部３３の他に、深さポイント付与部３４、キーワードポイント付与部３５、ブロック抽出部３６、情報抽出部３７およびフィルタリング部３８を備えている。なお、深さポイント付与部３４、キーワードポイント付与部３５、ブロック抽出部３６、情報抽出部３７およびフィルタリング部３８により図１の解析処理部３１が構成される。【００３３】
本実施形態のウェブページ解析装置３０は、実際には各種演算処理を実行するＣＰＵ、ウェブページ解析用プログラムを格納するＲＯＭ、データ格納やプログラム実行のためのワークエリアとして利用されるＲＡＭおよびハードディスクを有し、ＲＯＭに格納されたウェブページ解析用プログラムに従ってＣＰＵが動作することにより、各機能ブロック３２〜３８による処理を実行する。【００３４】
ウェブページ解析用プログラムを記憶する記録媒体として、ＲＯＭの代わりに、ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、ＤＶＤ、不揮発性メモリカード等を用いることができる。また、ウェブページ解析用プログラムをインターネット等のネットワークを介してコンピュータにダウンロードするようにしてもよい。【００３５】
深さポイント付与部３４は、ウェブページ記憶部２０に記憶されたウェブページのうち、解析対象とされたウェブページを構成している構造化文書（ＨＴＭＬ文書）のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを構造化文書の行ごとに付与する。【００３６】
通常、ＨＴＭＬは、“<”および“>”の記号によって囲まれたタグと呼ばれる命令文を用いて、ウェブページ上に色々な表現をすることができるようになっている。タグには、命令の開始場所であることを示す開始タグと、命令の終了場所であることを示す終了タグとがある。原則として、開始タグは、“<”と“>”と命令文との組み合わせによって表記される。一方、終了タグは、“</”と“>”と命令文との組み合わせによって表記される。【００３７】
また、ＨＴＭＬ文書はタグによってツリー構造の形をとっている。通常、<html>タグの下階層（子階層）には<head>タグと<body>タグとがあり、<body>タグの下階層においてウェブページの内容に応じたツリー構造が展開される。１つの命令文に関する開始タグおよび終了タグは必ず同じ階層になるが、当該開始タグと終了タグとの間に別の命令文のタグが挿入されると、当該別の命令文のタグについては階層が１つ下がる。【００３８】
例えば、図３に示すウェブページを記述した図４のＨＴＭＬ文書の例において、１行目の“<html>”は開始タグ、それに対応する終了タグは最終行にある“</html>”であり、この２つのタグは第１階層（ルート階層）に属する。また、２行目の“<head>”は開始タグ、それに対応する終了タグは６行目にある“</head>”であり、この２つのタグは第２階層に属する。【００３９】
上述したように、深さポイント付与部３４は、ＨＴＭＬ文書のルートからの階層の深さに応じた深さポイントを行ごとに付与する。なお、本実施形態において「行ごと」というのは、「開始タグごと」ということと同義である。すなわち、ＨＴＭＬ文書の表記において見かけ上は複数の開始タグが同じ行に存在していても、開始タグごとに行が変わったとみなして深さポイントを付与する。また、ＨＴＭＬ文書において１つの命令文に関する開始タグおよび終了タグは必ず同じ階層になるので、開始タグの行に対して深さポイントを付与すれば十分である。【００４０】
例えば、図４の例において、１行目の<html>タグは第１階層であるから、深さポイントは“１”である（図５参照。以下同様）。また、２行目の<head>タグは第２階層であるから、深さポイントは“２”である。さらに、第３行目の<meta>タグ、第４行目の<link>タグ、第５行目の<title>タグについては何れも深さポイントは“３”である。次の６行目にある“</head>”は終了タグであるから第２階層に上がる。そのため、７行目の<body>タグは第２階層となり、深さポイントは“２”である。【００４１】
キーワードポイント付与部３５は、ＨＴＭＬ文書の中でキーワードが含まれる行については当該キーワードに応じたキーワードポイントを深さポイントに加算する。ここで使用するキーワードおよびそれに対応するキーワードポイントは、キーワード設定部３２により設定されキーワード記憶部３３に記憶されたものである。【００４２】
上述したように、キーワード記憶部３３に記憶されるキーワードは、最初は操作部５０の操作を通じてユーザにより入力されたものだけであるが、繰り返しの学習によって徐々に追加されていく。また、キーワード記憶部３３に記憶されるキーワードポイントの値は、複数のウェブページの解析が進むにつれて随時更新される。【００４３】
図４および図５の例では、２４行目の<span>タグが属する第６階層に記述された「特価」というキーワードが学習によって追加設定されており、この「特価」というキーワードに対してキーワードポイントとして“２．３１”が設定されている。そのため、キーワードポイント付与部３５は、「特価」というキーワードに対して設定されているキーワードポイント“２．３１”を<span>タグの深さポイント“６”に加算することによって、<span>タグがある２４行目のポイントを“８．３１”としている。【００４４】
また、図４および図５の例では、２８行目の<input>タグが属する第７階層に記述された「カート」というキーワードも学習によって追加設定されており、この「カート」というキーワードに対してキーワードポイントとして“２．０２”が設定されている。そのため、キーワードポイント付与部３５は、「カート」というキーワードに対して設定されているキーワードポイント“２．０２”を<input>タグの深さポイント“７”に加算することによって、<input>タグがある２８行目のポイントを“９．０２”としている。【００４５】
なお、キーワード設定部３２が設定してキーワード記憶部３３に記憶させるキーワードポイントの計算方法については後述する。【００４６】
ブロック抽出部３６は、キーワードポイントが加算されて深さポイントとの差分が生じている行（図４の例では、「特価」のキーワードが含まれる<span>タグの２４行目および「カート」のキーワードが含まれる<input>タグの２８行目）を含む所定範囲の行の集合を、所望の情報やキーワードを抽出する対象とすべきブロック（対象ブロックという）として抽出する。対象ブロックは、所望の情報が含まれている可能性が高い範囲を規定したものである。【００４７】
対象ブロックを規定する所定範囲の終点は、上記差分が生じている行よりも後の行で、キーワードポイントが加算されておらず且つ深さポイントが極小となっている最初の行とする。また、所定範囲の始点は、上記差分が生じている行よりも前の行で、終点と同じ値で深さポイントが極小となっている行とする。【００４８】
ここで、対象ブロックの始点および終点について、図６に示すグラフを参照して説明する。なお、図６は、図４に示すＨＴＭＬ文書の各行に対して付与されたポイント（図５に示す深さポイントおよびこれとキーワードポイントとの加算結果）を単純に折れ線グラフにしたものであり、横軸は行数、縦軸はポイントの値を示している。【００４９】
図６において、破線の折れ線グラフ６１が深さポイントをグラフ化したものであり、実線の折れ線グラフ６２が深さポイントとキーワードポイントとの加算結果をグラフ化したものである。また、破線の四角で囲んだ範囲が対象ブロック６３である。また、この対象ブロック６３の対応箇所を図３に示すウェブページ上で示すと、破線の四角で囲んだ範囲６３’が該当する。【００５０】
図６に示すように、２４行目と２８行目でグラフの値に差分が生じている。そこで、ブロック抽出部３６は、２８行目よりも後の行で、キーワードポイントが加算されておらず（すなわち、深さポイントとの差分が生じておらず）、且つ深さポイントが極小となっている最初の行を所定範囲の終点とする。図６の例では２９行目が終点となる。この終点における深さポイントの値は“３”である。一方、ブロック抽出部３６は、２４行目よりも前の行で、終点と同じ値“３”で深さポイントが極小となっている行を所定範囲の始点とする。図６の例では１５行目が始点となる。【００５１】
情報抽出部３７は、ブロック抽出部３６により抽出された対象ブロック内から、所定の条件を満たす情報を抽出する。例えば、ユーザが操作部５０の操作を通じて、ウェブページから抽出したい情報のタイプとして商品の価格情報を指定した場合、情報抽出部３７は、所定の条件を満たす情報として、商品名および価格を抽出する。すなわち、情報抽出部３７は、図３に示すＥＣサイトのウェブページに設定された対象ブロック６３内から商品名および価格を抽出する。【００５２】
具体的には、情報抽出部３７は、形態素解析によって商品名を抽出する。一般的に、商品名は未知語と名詞で構成されていることが多い。そこで、情報抽出部３７は、商品名を含む文や単語を形態素解析して、形態素のうちの７割が未知語と名詞で占められていれば、それは商品名であると判断する。また、価格であれば、数値と,（カンマ）との羅列があり、その羅列の前または後に“￥”または“円”といった文字が含まれていることが多い。そこで、情報抽出部３７は、こういった正規表現の条件を利用して価格を判別する。【００５３】
なお、情報タイプとして会社情報が指定されている場合、情報抽出部３７は、所定の条件を満たす情報として、所在地、代表者氏名、資本金、電話番号、従業員数、設立年月日などの情報を抽出する。例えば、情報抽出部３７は、形態素解析をして地名と数値との組み合わせから成る部分を所在地であると判断する。また、数字と（）または−との組み合わせから成る部分を電話番号であると判断する。また、数値と,（カンマ）との羅列があり、その羅列の近くに資本金という文字列がある場合はその数値が資本金であると判断する。他の情報についても、形態素解析や正規表現の条件、近くに存在する文字列の条件により判別する。【００５４】
また、情報タイプとして求人情報が指定されている場合、情報抽出部３７は、所定の条件を満たす情報として、勤務時間、給与、手当、勤務地などの情報を抽出する。これらの情報を抽出する際にも、情報抽出部３７は、形態素解析や正規表現の条件、近くに存在する文字列の条件により所望の情報か否かを判別する。【００５５】
フィルタリング部３８は、情報抽出部３７により対象ブロック内から抽出された情報について、情報タイプに応じてあらかじめ定めた１以上の種類の情報が揃っているか否かを判定し、揃っている場合にのみ、対象ブロック内から抽出された情報を表示部４０に出力する。例えば、ユーザの指定した情報タイプが商品の価格情報である場合、フィルタリング部３８は、商品名と価格の２つが揃っているか否かを判定する。対象ブロック内から抽出された情報がどちらか一方だけの場合は、フィルタリング部３８はその情報を表示部４０に出力しない。【００５６】
なお、情報タイプとして会社情報が指定されている場合、フィルタリング部３８は、例えば、所在地、代表者氏名および資本金の３つが揃っているか否かを判定する。また、情報タイプとして求人情報が指定されている場合、情報抽出部３７は、例えば、給与、手当および勤務地の３つが揃っているか否かを判定する。そして、対象ブロック内から抽出された情報が３つとも揃っていない場合は、フィルタリング部３８はその情報を表示部４０に出力しない。【００５７】
ここで、キーワード設定部３２によるキーワードポイントの計算方法について説明する。上述のように、キーワード設定部３２は、ウェブページ記憶部２０に記憶されたウェブページの解析を開始する前の最初の段階では、操作部５０の操作を通じてユーザにより入力された単語をキーワードとして設定し、キーワード記憶部３３に記憶する。また、キーワード設定部３２は、ウェブページの解析処理の過程において、ブロック抽出部３６により抽出された対象ブロックの中に含まれる単語を抽出してキーワードとして追加設定し、キーワード記憶部３３に記憶する。【００５８】
例えば、商品の価格情報が情報タイプとして指定されている場合、キーワード設定部３２は、対象ブロック内に含まれている商品名や価格以外の単語を対象ブロック内から抽出し、新しいキーワードとしてキーワード記憶部３３に追加設定する。ここで、対象ブロック内に含まれている商品名および価格の情報については、その情報を抽出した情報抽出部３７からキーワード設定部３２が通知を受ける。キーワード設定部３２は、この通知を受けて把握した商品名や価格以外の単語を対象ブロック内から抽出する。【００５９】
また、キーワード設定部３２は、既存のキーワードおよび新たに設定したキーワードを含めて、キーワード記憶部３３に記憶されているキーワードに対応するキーワードポイントを計算して記憶する。例えば、キーワード設定部３２は、解析対象とされたウェブページからブロック抽出部３６により抽出された対象ブロックの総数と、キーワードとして設定された単語の出現数とを用い、対象ブロックの総数に対する単語の出現数の割合に応じた値を計算してキーワードポイントとして設定する。【００６０】
以下に、この計算方法をもう少し詳しく説明する。すなわち、ブロック抽出部３６によって、１つのウェブページから０個または１個以上の対象ブロックが抽出される。複数のウェブページを解析すれば、ブロック抽出部３６により複数のウェブページから総数でＮ個の対象ブロックが抽出され得る。そして、キーワード設定部３２によって、当該Ｎ個の対象ブロック内から様々な単語がキーワードとして抽出される。このとき、同じ単語が１個または複数の対象ブロックからＭ回抽出され得る。この場合、キーワード設定部３２は、Ｍ／Ｎの値を計算してキーワードポイントとして設定する。【００６１】
これにより、単語の出現数Ｍが多くなるほど、その単語に与えられるキーワードポイントは大きな値となる。また、単語の出現数Ｍが同じであれば、対象ブロックの総数Ｎが少ないほど、キーワードポイントは大きな値となる。本実施形態では、商品名や価格が含まれる可能性が高い対象ブロックをキーワードポイントと深さポイントとに基づいて特定し、その対象ブロック内から商品名や価格以外の新たな単語をキーワードとして抽出する仕組みとしている。そのため、商品名や価格と近い距離に置かれることが多い単語については出現数Ｍが多くなり、キーワードポイントも大きくなる傾向となる。【００６２】
図３に示したＥＣサイトのウェブページの例では、商品名や価格と近い距離に置かれることが多い単語の一例として、「特価」という単語に対して２．３１ポイント、「カート」という単語に対して２．０２ポイントがキーワードポイントとして与えられている。【００６３】
ただし、これはある時点において設定されたキーワードポイントの値である。複数のウェブページの解析を進めていくと、複数のウェブページから抽出される対象ブロックの総数Ｎおよび対象ブロック内から抽出される単語の出現数Ｍは変動する。よって、キーワードポイントも絶えず変動する。そこで、キーワード設定部３２は、キーワードとして抽出した単語に対して、その出現数Ｍと、抽出した対象ブロックの総数Ｎとを関連付けて記憶しておき、キーワードポイントの計算に使用する。【００６４】
そして、キーワード設定部３２は、計算したキーワードポイントを、キーワードに関連付けてキーワード記憶部３３に記憶する。ここで、新しく設定されたキーワードについては、新規に計算されたキーワードポイントをキーワード記憶部３３に記憶する。既存のキーワードについては、再計算されたキーワードポイントをキーワード記憶部３３に更新して記憶する。【００６５】
次に、上記のように構成した本実施形態によるウェブページ解析装置３０の動作を説明する。図７は、本実施形態によるウェブページ解析装置３０の動作例を示すフローチャートである。図７に示すフローチャートは、ユーザが操作部５０を操作してウェブページ解析の指示をウェブページ解析装置３０に与えたときに開始する。なお、図７に示すフローチャートの開始時点において、ウェブページ記憶部２０には複数のウェブページが既に記憶されているものとする。【００６６】
図７において、まずユーザが操作部５０の操作を通じて、所望の情報としてどのような種類の情報を抽出したいのかを表す情報タイプを指定する（ステップＳ１）。ここでは一例として、商品の価格情報を情報タイプとして指定したとする。また、ユーザが操作部５０の操作を通じて、指定した情報タイプとの関連性があると思われる単語をキーワードとして入力する（ステップＳ２）。ここでは、「税込」という単語を入力したとする。キーワード設定部３２は、入力された単語をキーワードとして設定し、キーワード記憶部３３に記憶する。【００６７】
次に、深さポイント付与部３４は、ウェブページ記憶部２０に記憶されている複数のウェブページの中から何れか１つを取得し（ステップＳ３）、そのウェブページ中にキーワード（今の場合は「税込」）が含まれているか否かを判定する（ステップＳ４）。キーワードが含まれていなければ、処理はステップＳ１３に進む。これにより、キーワードが全く含まれていないウェブページについては、解析対象から外されることとなる。【００６８】
一方、ウェブページの中にキーワードが含まれている場合は、以下に説明する解析処理を実行する。すなわち、まず深さポイント付与部３４は、現在解析対象とされているウェブページを構成しているＨＴＭＬ文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを行ごとに付与する（ステップＳ５）。【００６９】
さらに、キーワードポイント付与部３５は、キーワード記憶部３３に記憶されているキーワードおよびそれに対応するキーワードポイントに基づいて、ＨＴＭＬ文書の中でキーワードが含まれる行について、当該キーワードに応じたキーワードポイントを深さポイントに加算する（ステップＳ６）。１つ目のウェブページの解析では、「税込」というキーワードが含まれる行について、当該キーワードに応じたキーワードポイント（例えば、所定の値）を深さポイントに加算する。【００７０】
次に、ブロック抽出部３６は、深さポイントおよびキーワードポイントに基づいて、現在解析対象としているウェブページ内から対象ブロックを抽出する（ステップＳ７）。ここで、ブロック抽出部３６は、キーワードポイントが加算されて深さポイントとの差分が生じている行を含み、その行よりも前および後の行でキーワードポイントが加算されておらず且つ深さポイントが極小となっている行を始点および終点とする所定範囲を対象ブロックとして抽出する。【００７１】
次に、情報抽出部３７は、ブロック抽出部３６により抽出された対象ブロック内から、所定の条件を満たす所望の情報を抽出する（ステップＳ８）。ここでは、情報タイプとして商品の価格情報が指定されているので、情報抽出部３７は、所定の条件を満たす所望の情報として、商品名および価格を対象ブロック内から抽出する。【００７２】
そして、フィルタリング部３８は、情報抽出部３７により対象ブロック内から抽出された所望の情報について、情報タイプに応じてあらかじめ定めた１以上の種類の情報が揃っているか否かを判定する（ステップＳ９）。ここでは、商品の価格情報という情報タイプに応じてあらかじめ定められた商品名と価格の２つが揃っているか否かを判定する。【００７３】
ここで、対象ブロック内から抽出された所望の情報として、必要な情報が揃っていない場合は、処理はステップＳ１３に進む。一方、必要な情報が揃っている場合は、フィルタリング部３８は、対象ブロック内から抽出された所望の情報（商品名と価格）を表示部４０に出力する（ステップＳ１０）。【００７４】
その後、キーワード設定部３２は、ブロック抽出部３６により抽出された対象ブロックの中に含まれる単語（商品名および価格以外の単語）を抽出してキーワードとして追加設定し、キーワード記憶部３３に記憶する（ステップＳ１１）。また、キーワード設定部３２は、新たに設定したキーワードを含めて、キーワード記憶部３３に記憶されているキーワードに対応するキーワードポイントを計算し、キーワード記憶部３３に記憶する（ステップＳ１２）。【００７５】
最後に、深さポイント付与部３４は、ウェブページ記憶部２０に記憶されている複数のウェブページを全て処理し終えたか否かを判定する（ステップＳ１３）。全てのウェブページについて処理が終了した場合、図７に示すフローチャートの処理は終了する。一方、全てのウェブページについて処理がまだ終了していない場合は、ステップＳ３に戻り、別のウェブページを取得して以上と同様の処理を繰り返す。【００７６】
ステップＳ３に戻って別のウェブページを取得する前に、ステップＳ１１，Ｓ１２で新たなキーワードが追加設定されていた場合は、ユーザが入力した「税込」というキーワードが当該別のウェブページ中に含まれていなくても、追加設定されたキーワードが当該別のウェブページ中に含まれていれば、その別のウェブページは所望の情報の抽出処理（ステップＳ５〜Ｓ１０）およびキーワードの学習処理（ステップＳ１１〜Ｓ１２）の対象とされる。【００７７】
なお、図７に示すフローチャートでは、ウェブページ記憶部２０に記憶されている複数のウェブページの処理が一巡したところで処理を終了するようにしているが、本発明はこの例に限定されない。例えば、自動的に、あるいはユーザによる操作部５０の操作を通じて、ウェブページ記憶部２０に記憶されている複数のウェブページの処理を複数回行うようにしてもよい。【００７８】
上述のように、複数のウェブページの解析処理を進めていくうちに、キーワードが学習効果によって徐々に増えていく。よって、一巡目で解析処理の対象とされなかった（ステップＳ４でキーワードが含まれないと判断された）ウェブページも、二巡目以降では解析処理の対象とされる可能性もある。これにより、より多くのウェブページから所望の情報を抽出できる可能性が高くなるというメリットがある。なお、二巡目以降では、一度も解析処理の対象とされていないウェブページだけに絞って解析を行うようにすれば、処理効率を上げることもできる。【００７９】
以上詳しく説明したように、本実施形態では、ウェブページを構成しているＨＴＭＬ文書のタグの階層構造を解析し、ルートからの深さに応じた深さポイントを行ごとに付与するとともに、キーワードが含まれる行については当該キーワードに応じたキーワードポイントを深さポイントに加算する。そして、深さポイントとキーワードポイントとに基づいて、キーワードが含まれている行を含む前後の所定範囲を対象ブロックとして抽出し、抽出した対象ブロック内から所定の条件を満たす情報（例えば、商品名および価格）を抽出するようにしている。【００８０】
このように構成した本実施形態によれば、ウェブページを構成しているＨＴＭＬ文書において、キーワードが含まれている行から近い距離にある所定範囲の行の集合が対象ブロックとして抽出され、当該対象ブロック内から所定の条件を満たす所望の情報が抽出される。例えば、形態素解析や正規表現を利用した所定の条件を満たす所望の情報として、商品名および価格が抽出される。【００８１】
したがって、情報タイプ（商品の価格情報、会社情報、求人情報など）に応じて所望の情報を抽出するために必要な条件を所定の条件として設定しておけば、キーワードから近い距離に掲載されることが多い所望の情報をウェブページから自動的に抽出することができる。これにより、インターネット上のウェブサイトにある多くのウェブページから所望の情報を効率的に抽出することができる。【００８２】
また、本実施形態では、ブロック抽出部３６を設け、単に所定の条件を満たす情報をウェブページから抽出するのではなく、ウェブページの中から対象ブロックを抽出し、当該対象ブロックの中だけから所定の条件を満たす情報を抽出している。そのため、例えば商品名と価格が１つのウェブページ内に存在していても、両者が構造的に遠い位置に配置されていて互いの関連性が乏しいものについては、所望の情報には該当しないとして抽出の対象から外すことができる。【００８３】
ある１つの商品に関して商品名と価格を表記したものであれば、図３に示したように両者は近い距離に配置されるのが通常である。本実施形態では、このようなケースだけを対象として商品名と価格を抽出することができるので、所望の情報ではないノイズの抽出を少なくすることができる。【００８４】
また、本実施形態では、フィルタリング部３８を設け、対象ブロック内から抽出される商品名や価格であっても、その両者が揃っていなければ所望の情報として出力しないようにしている。これにより、商品名と価格のどちらか一方だけがたまたま対象ブロック内に存在するケースについては、所望の情報には該当しないとして除外することができる。したがって、所望の情報ではないノイズの抽出をより少なくすることができる。【００８５】
また、本実施形態では、キーワード設定部３２を設け、対象ブロックの抽出に使用するキーワードを学習によって可変設定できるようにしている。そして、可変設定するキーワードは、対象ブロック内から抽出するようにしている。つまり、本実施形態では、対象ブロック内に含まれる既存のキーワードや所望の情報から近い距離にある単語をキーワードとして追加設定できるようにしている。【００８６】
キーワードを固定で使用すると、所望の情報の抽出精度が殆どのそのキーワードの良し悪しに依存してしまうことになる。これに対して、本実施形態によれば、最初は所定のキーワードを設定する必要があるものの、ウェブページの解析を進めるにつれて、所望の情報を抽出するために好ましい単語（実際にインターネット上に存在する複数のウェブページにおいて所望の情報の近くで使用されている単語）が順次キーワードとして追加設定されていく。これにより、所望の情報の抽出精度を上げることができる。【００８７】
なお、上記実施形態では、キーワードポイントの計算方法の一例として、対象ブロックの総数に対する単語の出現数の割合に応じた値を計算してキーワードポイントとして設定する例について説明したが、本発明はこれに限定されない。例えば、所望の情報から単語までの構造上の距離の大きさを更に加味してキーワードポイントを計算してもよい。具体的には、所望の情報からの構造上の距離が近い単語ほどキーワードポイントが大きくなるように係数を乗算するという方法が考えられる。ここで言う「構造上の距離」とは、例えば行数の差分としてもよいし、階層数の差分としてもよい。あるいは、階層のツリー構造を擬似的に家系図として見た場合の親等数の差分としてもよい。【００８８】
また、上記実施形態では、情報抽出部３７により対象ブロックから抽出された情報について、情報タイプとして必要な情報が揃っている場合にのみキーワードの学習を行う例について説明したが、必要な情報が揃っていない場合にもキーワードの学習を行うようにしてもよい。ただし、必要な情報が揃っている場合にのみ所望の情報を出力するようにフィルタリング部３８で制御しているので、キーワードの学習も必要な情報が揃っている場合にのみ行うのが好ましい。【００８９】
また、上記実施形態において、キーワード設定部３２により計算されたキーワードポイントが閾値以下のときは、キーワードポイントを“０”とするようにしてもよい。キーワードとして設定された単語の出現頻度が極めて少なくてキーワードポイントが小さな値となる場合でも、それをそのまま設定しておくと、その単語が含まれる行に関しては、深さポイントとの差分が僅かではあるが存在することになる。【００９０】
そのため、その僅かな差分しかない行を含む所定範囲も、対象ブロックの抽出対象となってしまう。この場合、その対象ブロック内には所望の情報が含まれていない可能性が高いため、抽出した対象ブロック自体がノイズとなってしまう可能性がある。これに対して、キーワードポイントが閾値以下のときは全て値を“０”に丸めるようにすれば、ノイズとなる対象ブロックの抽出を少なくすることができ、処理効率を上げることができる。【００９１】
また、上記実施形態では、ブロック抽出部３６による対象ブロックの抽出方法を一例として示したが、本発明はこれに限定されない。例えば、キーワードポイントが加算されて深さポイントとの差分が生じている行と、当該差分が生じている行から前の所定数の行と、当該差分が生じている行から後の所定数の行とを含む範囲を対象ブロックとして抽出するようにしてもよい。ただし、上記実施形態による抽出方法によれば、対象ブロックを過不足のない的確な範囲に絞って設定できる可能性が高くなるので、所望の情報の抽出漏れを低減しつつ処理効率を上げることができる。【００９２】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図１】
2013038519.tif 000003
【図２】
2013038519.tif 000004
【図３】
2013038519.tif 000005
【図４】
2013038519.tif 000006
【図５】
2013038519.tif 000007
【図６】
2013038519.tif 000008
【図７】
2013038519.tif 000009
【国際調査報告】
2013038519.tif 000010
2013038519.tif 000011
2013038519.tif 000012
2013038519.tif 000013