グループ化装置およびエレメント抽出装置
【課題】ネット上において特定ユーザーの個人領域ページを特定し、ページ内に含まれるエレメントを抽出する。
【解決手段】第1のアドレスキーと第2のアドレスキーの類似度がしきい値以上と判断された場合に、URLを特定のアドレス群として関連付ける(個人領域の特定)。さらに、イメージ化したWebページ上に点を配置し、配置した点を含むエレメントの階層構造を統合などして、対応する内容データを抽出する(エレメントの抽出)。
【解決手段】第1のアドレスキーと第2のアドレスキーの類似度がしきい値以上と判断された場合に、URLを特定のアドレス群として関連付ける(個人領域の特定)。さらに、イメージ化したWebページ上に点を配置し、配置した点を含むエレメントの階層構造を統合などして、対応する内容データを抽出する(エレメントの抽出)。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、インターネット上におけるWebページを解析するための技術に関し、特に、Webページ群のグループ化および各Webページの分割処理に関するものである。
【背景技術】
【0002】
従来から、Webページを解析するために様々な方法が考えられている。例えば、特許文献1には、アクセスログに含まれるURIを解析し,Webページをグループ化する手法が開示されている。特許文献2には、主要コンテンツを自動的に抽出する手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−123000号公報
【特許文献2】特開2010−117941号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術は、アクセスログを対象としてWebページをグループ化するものであり,グループ化する対象は,同様のドメインや同様のURI構造をもつWebページ群である。よって、個人領域を特定するものではない。また、特許文献1の技術は、ドメイン部,ディレクトリ部,クエリ部に分割し,特徴ベクトル間の類似度を算出する手法を提案しており,類似度の算出アルゴリズムが複雑である。
【0005】
特許文献2の技術は、HTMLデータに対して所定の分割規則に基づいてセグメントに分割するものであり,対象となるHTMLデータ毎にルールを予め決定する必要がある。よって,汎用性の高い記事抽出が困難であり、記事を抽出する処理量が膨大である。
【0006】
この発明は、(i)個人領域の特定により、当該特定された個人領域に対して対象者の解析を正確に行うことを目的とする。また、この発明は、(ii)分割処理により、Webサイトの構造にのみ着目して重要な記事部分だけを容易に抽出することを目的とする。
【課題を解決するための手段】
【0007】
(1)この発明のグループ化プログラムは、
Webページのアドレスをグループ化するためのグループ化プログラムであって、
コンピュータを、
特定のアドレスからWebページを取得するWebページ取得手段、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段、
前記第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上であると判断されたリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段、
として機能させることを特徴とする。
【0008】
これにより、特定ユーザーの個人領域をグループ化して特定することができ、当該個人領域のWebページ群に対して解析を行うことができる。
【0009】
(2)この発明のグループ化プログラムは、
前記類似度算出手段が、
前記第1のアドレスキーと前記第2のアドレスキーとの間で、第1のアドレスキーを構成するキーの1つと一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合し、
第2のアドレスキーを構成するキーの中に対応するキーが存在する場合には、第1および第2のアドレスキーにおいて一致するとして検出されたキーの次のキーから、後方に向けて一致するキーの組み合わせ数を計数し、
第1のアドレスキーを構成するキーの総数に対する前記第2のアドレスキーとの間で対応付けられたキーの組み合わせ数の割合を類似度として算出する、
ことを特徴とする。
【0010】
これにより、第1のアドレスキーから第2のアドレスキーを照合して算出した類似度に基づいて、特定ユーザーの個人領域をグループ化して特定することができ、当該個人領域のWebページ群に対して解析を行うことができる。
【0011】
(3)この発明のグループ化プログラムは、
前記特定のアドレスから所定数のリンク階層数まで、類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化探索手段であって、
前記グループ化手段により特定のアドレス群として関連付けられた前記アドレスから取得したWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第3のアドレスキーを生成し、前記第1のアドレスキーと前記第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出するグループ化探索手段、
を備えたこと、を特徴とする。
【0012】
これにより、所定のリンク階層数まで、特定ユーザーの個人領域をグループ化して特定することができる。
【0013】
(4)この発明のグループ化プログラムは、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、前記特定のアドレスにおいてユーザーを特定する識別子だけを置き換えたアドレスであると判断されたアドレスを削除する、
ことを特徴とする。
【0014】
これにより、異なるユーザーのURLを容易に削除することができる。
【0015】
(5)この発明のグループ化プログラムは、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、削除対象として登録されたアドレスに一致すると判定されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【0016】
これにより、予め登録された広告サイトなどのURLを容易に削除することができる。
【0017】
(6)この発明のグループ化プログラムは、
前記特定のアドレスを、サーバにアクセスすることにより所定時間毎に自動的に蓄積するアドレス蓄積手段、
を備えた、ことを特徴とする。
【0018】
これにより、個人領域をグループ化して特定する特定ユーザーを自動的に蓄積することができる。
【0019】
(9)この発明のエレメント抽出プログラムは、
Webページから所定のエレメントを抽出するためのエレメント抽出プログラムであって、
コンピュータを、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とする。
【0020】
これにより、Webページに含まれる記事などの単位で分割して解析することが可能となる。例えば、記事単位でも検索システムに用いたり、有害であると判断されたWebページの一部だけを非表示としたり、特定商品に関する書き込みだけを抽出して商品の評価を収集するといった処理に利用することができる。
【0021】
(10)この発明のエレメント抽出プログラムは、
コンピュータを、さらに、
隣接するエレメントの前記階層構造の類似度の平均を上位方向に算出して類似度ピラミッドを生成し、前記類似度がしきい値以上であるか否かを検出し、検出された類似度の底辺に含まれるエレメントの階層構造のうち、所定のルールに合致する階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とする。
【0022】
これにより、内容データの抽出対象となる記事の階層構造を容易に特定することができる。
【0023】
(11)この発明のエレメント抽出プログラムは、
前記内容データ取得手段が、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントが包含関係にあるかを判断し、
隣接するエレメントが包含関係にない場合には、各階層構造について対応する内容データを取得する、
ことを特徴とする。
【0024】
これにより、内容データの抽出対象となる記事の階層構造を正確に特定することができる。
【0025】
(12)この発明のエレメント抽出プログラムは、
前記エレメント抽出手段が、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントの階層構造が包含関係にあるかを判断し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値以下の場合に、包含される下位の階層構造を削除して、包含する上位の階層構造に対応する内容データを取得し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値を超える場合に、包含する上位の階層構造を削除して、包含される下位の階層構造に対応する内容データを取得する、
ことを特徴とする。
【0026】
これにより、内容データの抽出対象となる記事の階層構造をより正確に特定することができる。
【0027】
(13)この発明のエレメント抽出プログラムは、
前記エレメント選択手段が、前記表示領域上において、所定方向に等間隔で複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する、
ことを特徴とする。
【0028】
これにより、内容データの抽出対象となる階層構造を特定するために必要な階層キーを取得することができる。
【0029】
(14)この発明のエレメント抽出プログラムは、
前記エレメント選択手段が、前記表示領域上において、前記所定方向に垂直の直線上に複数の点を配置し、同一直線上に配置した点を最も多く表示範囲に含むエレメントを選択する、
ことを特徴とする。
【0030】
これにより、内容データの抽出対象となる階層構造を特定するために必要な階層キーを取得することができる。
【0031】
(15)この発明のエレメント抽出プログラムは、
前記エレメント抽出手段が、エレメントに含まれるAタグのURLまたは自然言語でマッチングして得た属性を、エレメントに関連付けて記憶した、
ことを特徴とする。
【0032】
これにより、Webページから抽出した内容データの属性を区別して記憶することができる。
【0033】
この発明において、「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【0034】
「ネットサイト」とは、例えば、前略プロフィール、モバゲータウン、GREE(いずれも商標)などのホームページサービスその他の個人毎にページを持つことが可能なサイトを含む概念である。
【図面の簡単な説明】
【0035】
【図1】本発明のグループ化装置100のブロック図である。
【図2】第1のアドレスキーおよび第2のアドレスキーとの間で照合する手順を示す図である。
【図3】グループ化装置100のハードウェア構成を示す図である。
【図4】グループ化プログラム32(図3)による処理を示すフローチャートである。
【図5】取得されたユーザーAのトップページから抽出されたURLのデータ例を示す図である。
【図6】広告URLリスト36に登録されたURLと一致するリンクを削除した状態を示す図である。
【図7】ユーザーフィルタルールと一致するリンクを削除した状態を示す図である。
【図8】第1のアドレスキーを生成した状態を示す図である。
【図9】図8に示すリンクα3のWebページから抽出されたリンクのURLのデータ例を示す図である。
【図10】広告URLリスト36に登録されたURLと一致するリンクを削除した状態を示す図である。
【図11】ユーザーフィルタルールと一致するリンクを削除した状態を示す図である。
【図12】第2のアドレスキーを生成した状態を示す図である。
【図13a】キーの照合方法を示す図である。
【図13b】類似度の算出方法および類似度を算出した結果を示す図である。
【図14】特定のアドレス群として関連付けて記憶されたデータ例を示す図である。
【図15】本発明のエレメント抽出装置200のブロック図である。
【図16】エレメント抽出装置200のハードウェア構成を示す図である。
【図17】エレメント抽出プログラム38(図16)による処理を示すフローチャートである。
【図18】イメージデータに変換される前の掲示板のHTMLデータ(ソースコード)(図18A)およびこれをイメージデータに変換して画面上に表示した表示例(図18B)である。
【図19】エレメントの座標を算出する方法を示す図である。
【図20】Webページ上に点を配置した状態(図20A)および配置した点を含むエレメントの階層構造を配列した状態(図20B)を示す図である。
【図21】各階層構造から階層キーを生成した状態を示す図である。
【図22】エレメント間の階層構造の類似度を算出する方法および類似度を算出した結果を示す図である。
【図23】類似値ピラミッドを生成した状態を示す図である。
【図24】しきい値以上の類似度を頂点とするピラミッドを検出した状態を示す図である。
【図25】階層構造を特定する処理(図17のステップS220)の詳細を示す図である。
【図26】包含関係にあるエレメントの階層構造を統合する方法(テキスト差分がしきい値以下のとき)を示す図である。
【図27】包含関係にあるエレメントの階層構造を統合する方法(テキスト差分がしきい値を超えるとき)を示す図である。
【図28】最終的に抽出されたエレメントのデータ例およびその属性を示す図である。
【図29】その他の実施形態を示す図である。
【図30】本発明の応用例を示す図である。
【発明を実施するための形態】
【0036】
1.本発明の意義
近年、モバイルインターネットにおけるネットサイトには様々な問題が指摘されており、ネットパトロールシステムを自動化し、ネットサイトにおける子供たちの行動を継続的に監視し、また問題がある子供を的確に指導することが課題となっている。
【0037】
しかし、ネットパトロールを自動化するためには、ネット上の膨大なWebページの中から、各ユーザーの個人領域を特定する必要がある。さらに、1つのWebページに複数人の書き込みが含まれる場合に、より正確に対象者の解析を行うためには、Webページ単位ではなく、記事単位でWebページから内容を抽出する必要がある。
【0038】
本発明は、ネットパトロール支援システムの自動化に寄与するものであり、本発明のグループ化装置100(図1)は、膨大なWebページの中から、ネット上のユーザーの個人領域を特定するために有効な手段である。ネット上の個人領域の特定するために、例えば、各ユーザーのトップページからリンクされたURL(アドレス)が類似するか否かという観点から、同一ユーザーのページをリンクに沿って探索することで、各ユーザーの個人領域を容易に特定することができる。
【0039】
また、本発明のエレメント抽出プログラム(図15)は、掲示板のように1つのWebページに複数の内容が繰り返しで出現するような場合に、書き込まれた内容を抽出するために有効な手段である。すなわち、1ページ内に異なるユーザーの書き込みなど様々なデータが混在する場合であっても、重要であると推測される部分だけを容易に抽出することができる。
【0040】
1−1.グループ化装置100の構造
まず、図1などを用いて、本発明のグループ化装置100について説明する。図1は本発明のグループ化装置100のブロック図である。
【0041】
図1に示すように、本発明のグループ化装置100は、Webページ取得手段2と、第1のアドレスキー生成手段4と、第2のアドレスキー生成手段6と、類似度算出手段8と、アドレスグループ化手段10と、グループ化探索手段12と、を備えている。
【0042】
Webページ取得手段2(図1)は、特定のURLからWebページを取得する。例えば、ネットサイトに登録されているユーザーAのトップページを取得する。
【0043】
第1のアドレスキー生成手段4(図1)は、Webページ取得手段2が取得したWebページ(トップページ)からリンクだけを抽出し、抽出した各リンクのURLを区切り文字で分割して第1のアドレスキーを生成する。
【0044】
さらに、第2のアドレスキー生成手段6(図1)は、第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのURLを区切り文字で分割して第2のアドレスキーを生成する。このようにして所定のリンク階層までアドレスキーを生成する。
【0045】
類似度算出手段8(図1)は、第1のアドレスキー生成手段4が生成した第1のアドレスキーと、第2のアドレスキー生成手段6が生成した第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する。
【0046】
図2を用いて、第1のアドレスキーおよび第2のアドレスキーの間で照合する手順について説明する。
【0047】
照合処理は、図2に示すように、ユーザーAのトップページ(http:top・)から抽出される1つのURL「リンクURL01」から生成される第1のアドレスキーと、当該URL「リンクURL01」のWebページ(http://link1・)から抽出される各リンク(例えば、「リンクURL11」)から生成される第2のアドレスキーと、の間で行われる。なお、当該照合に基づく類似度の算出方法については、後述する。
【0048】
グループ化手段10(図1)は、第1のアドレスキーと第2のアドレスキーの類似度がしきい値以上と判断されたリンクのURL(例えば、「リンクURL01」および「リンクURL11」)を、特定のアドレス群として関連付ける。
【0049】
グループ化探索手段12(図1)は、さらに、特定のURL(例えば、トップページ)から所定のリンク階層数まで、類似度がしきい値以上のリンクのURLを、特定のアドレス群として関連付けるための手段である。
【0050】
そのために、図2に示すように、グループ化手段10により特定のアドレス群として関連付けられたURL(例えば、「リンクURL11」)からWebページ(トップページから2リンク先の階層数http://link2・)を取得して当該Webページからリンクを抽出し、抽出した各リンク(例えば、「リンクURL21」)のURLを区切り文字で分割して第3のアドレスキーを生成する。さらに、「リンクURL01」から生成した第1のアドレスキーと、「リンクURL21」から生成した第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出する。nリンク先の階層についても、同様に、「リンクURL01」から生成した第1のアドレスキーと、nリンク先のWebページから抽出されるリンクから生成した第nのアドレスキーとの間で、一致するアドレスキーの数を計数して、その結果に基づいて類似度を算出し、類似度がしきい値以上のリンクのURLを、特定のアドレス群として関連付ける。
【0051】
以上のように、特定のユーザーに関するURLがグループ化されることで、特定ユーザーの個人領域を正確に解析することができる。
【0052】
1−2.グループ化装置100のハードウェア構成
図3に、グループ化装置100のハードウェア構成を示す。グループ化処理装置100は、図2に示すCPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータで構成される。
【0053】
図3のハードディスク26には、特定のユーザーの個人領域、すなわち、特定のユーザーに属するWebページ群を特定してグループ化するためのグループ化プログラム32が記録されている。グループ化プログラム32は、CPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータを、図1に示すWebページ取得手段2、第1のアドレスキー生成手段4、第2のアドレスキー生成手段6、類似度算出手段8、アドレスグループ化手段10、グループ化探索手段12として機能させるプログラムである。
【0054】
また、図3のハードディスク26には、ネットサイトのユーザーリスト34が記憶されている。例えば、ユーザーリスト34には、ネットサイトから所定時間毎に予め収集されたユーザーのトップページに対応するURLが蓄積されている。
【0055】
また、図3のハードディスク26には、広告のURLを削除するために用いられる広告URLリスト36が記憶されている。例えば、広告URLリスト34には、予めネット上から収集された広告のURLが蓄積されている。
【0056】
1−3.グループ化プログラム32による処理
図4は、グループ化プログラム32(図3)による処理を示すフローチャートである。
【0057】
グループ化プログラム32が起動されると、CPU20は、ユーザーリスト34を参照し、特定ユーザーのURLからWebページを取得する(ステップS102)。例えば、ユーザーAのトップページが取得される。
【0058】
さらに、CPU20は、取得したWebページからリンクを抽出する(ステップS104)。具体的には、HTMLデータに含まれるハイパーリンク(いわゆる、Aタグ)を検索することで、図5に示すようなリンクのURLが抽出される。
【0059】
つぎに、不要なリンクを削除するために、広告フィルタ処理が行われる(ステップS106)。すなわち、CPU20は、広告URLリスト36を参照し、ステップS104で抽出したリンクのうち、広告サイトのWebページとURLが一致するリンクを削除する。これにより、ユーザーAとは明らかに無関係な広告サイトのWebページを削除することができる。例えば、図6に示すように、広告URLリスト36に登録されたURLと一致するリンクα1が全て削除される。なお、広告URLリストに登録されていないものが上記広告フィルタ処理を通過したとしても、通常は、後述する類似度に基づく削除処理(図4のステップS122)において削除される。
【0060】
さらに、不要なリンクを削除するために、ユーザーフィルタ処理が行われる(ステップS108)。ユーザーフィルタ処理とは、特定のURLについて、ユーザーを特定する識別子だけを置き換えたURLのリンクを削除するというものである。例えば、URL「http://pr.cccboy.com/16378304」のうちユーザーIDを示す「16378304」の部分だけが異なる場合は、別のユーザーのURL(トップページ)であるため、当該URLのリンクを削除することとした。
【0061】
具体的な処理としては、「http://pr.cccboy.com/*」のように、トップページのURLのうち、ユーザーIDの部分のみをワイルドカード(正規表現)として検索し、その結果、検出された図7に示すリンクα2(URL「http://pr.cccboy.com/12345678」)を削除した。
【0062】
上記ステップS106およびステップS108において不要なリンクを削除した後、CPU20は、残りのリンクについて、URLを区切り文字で分割して第1のアドレスキーを生成する(ステップS110)。
【0063】
具体的には、各リンクのURLを、プロトコル名を除いて、区切り文字(英数字以外のスラッシュ「/」、ピリオド「.」など)でテキストを分割することで、各キーが生成される。例えば、図8に示すリンクα3のURL「http://bbs.cccboy.com/Guestbook/BBS/16378304/」から、第1のアドレスキーとして、6つのキー「bbs」、「cccboy」、「com」、「Guestbook」、「BBS」「16378304」が生成される。CPU20は、これらのキーを配列順序と併せて、後述する照合処理のためにRAM22に記憶する。さらに、第1のアドレスキーを生成する元になった図8に示す各リンクのURLを、ユーザーAのトップページに属するアドレス群として関連付けて記憶する(ステップS111)。
【0064】
次に、CPU20は、第1のアドレスキーを生成した各リンクのURLからWebページを取得し(ステップS112)、当該Webページからリンクを抽出する(ステップS114)。図8に示すリンクα3のWebページから抽出されたリンクを、図9に示す。
【0065】
さらに、ステップS106およびステップS108と同様、不要URLの削除処理が行われる(ステップS116)。例えば、図10に示すように、CPU20は、ステップS114で抽出したリンクから、広告サイトのWebページとURLが一致するリンクβ1、β2を削除する(ステップS106と同じ処理)。さらに、CPU20は、ユーザーフィルタ処理を行って、図11に示すように、特定のURLにおいてユーザーを特定する識別子だけを置き換えたURLのリンクβ3〜β5を削除する(ステップS108と同じ処理)。
【0066】
上記ステップS116において不要なリンクを削除した後、CPU20は、ステップS110と同様、残りの各リンクについて、URLを所定のテキスト単位に分割し、第2のアドレスキーを生成する(ステップS118)。
【0067】
前述のように、各リンクのURLを、プロトコル名を除いて、区切り文字(英数字以外のスラッシュ「/」、ピリオド「.」など)でテキスト単位に分割することで、各キーが生成される。例えば、図12に示すリンクβ6〜β9それぞれのURLから、各リンクについての第2のアドレスキーが生成される(図12を参照)。
【0068】
なお、図12に示す例では、「=」の後に英数字列が連続する場合の当該英数字列(リンクβ7〜β9における「0」など)はキーとして生成しないように設定している。一般に、「=」の後には、コメントなどの記述を特定するIDが入り、かかるIDは同一人のコメントであったとしても、各コメント毎に異なる。したがって、これらをキーとして同一人の判定に用いると、邪魔になると考えられるからである。このため、結果として、リンクβ7〜β9の第2のアドレスキーは同じものとなっている。
【0069】
さらに、CPU20は、ステップS110で生成した第1のアドレスキーと、ステップS118で算出した第2ののアドレスキーとの間で、それぞれを構成するキーを照合することにより、同じ順序で、かつ、一致するキーの組み合わせ数を計数し、その結果に基づいて類似度を算出する(ステップS120)。この実施形態では、途中に異なるキーが存在したとしても、出現順序が同じであれば一致するキーであるとしている。
【0070】
キーの照合方法について、図13aを用いて説明する。図13aのパターン1に示すように、第1のアドレスキーが{a,b,c}の3つであり、第2のアドレスキーが{a,d,b,e,c}の5つであるとき、まず、第1のアドレスキーを構成するキーの1つ{a}と一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合する。これにより、まず、図13aに示す{a}の組み合わせが検出される。
【0071】
さらに、第1のアドレスキーを構成する次のキー{b}が第2のアドレスキーに存在するか、第2のアドレスキーのキー{d}から照合することにより、後方に向けて一致するキーの組み合わせ数を計数する。これにより、図13aに示す{b}{c}の組み合わせが検出され、一致するキーの出現順序が同じである組み合わせ数は3となる。
【0072】
なお、第1のアドレスキーを{a,b,c,d}の4つとしたパターン2の場合は、キー{c}同士の組み合わせが検出された後は、第1のアドレスキーの4番目のキー{d}は、第2のアドレスキーの5番目の{c}から後方に向けて検出するため、図13a中、点線の矢印で示す第2のアドレスキーの2番目のキー{d}との組み合わせはカウントされず、パターン1と同様に、組み合わせ数は3となる。
【0073】
類似度は、上記組み合わせ数などに基づいて、次式から算出することができる。なお、次式における類似度Ext(wni, wnij)は、第1のアドレスキーwniと、第2のアドレスキーwnijの間の類似度を表す。
【0074】
【数1】
【0075】
ここで、式の分母count(Element(wni))は、第1のアドレスキーを構成するキーElement(wni)の総数を表す。また、式の分子count(LCS(Element(wni), Element(wnij))は、第1のアドレスキーを構成するキーElement(wni)と、第2のアドレスキーを構成するキーElement(wnij)との間で、同じ順序で、かつ、一致するキーの組み合わせ数を表す。
【0076】
上記の式から、例えば、図13bに示す第1のアドレスキーwn1と、リンクβ6の第2のアドレスキーwn11との間の類似度Ext(wn1,wn11)は、Ext(wn1,wn11)= 0 / 6 = 0となる。また、図13bに示す第1のアドレスキーwn1と、リンクβ7の第2のアドレスキーwn12との間の類似度Ext(wn1,wn12)は、Ext(wn1,wn12)= 5 / 6 = 0.83333....となる(Ext(wn1,wn13)、Ext(wn1,wn14)も同じ)。
【0077】
CPU20は、類似度がしきい値以下であると判断したリンクを除去する(ステップS122)。例えば、図13bにおいて類似度が「0」と算出されたリンクβ6(図12)が削除される。一方、CPU20は、類似度がしきい値(例えば、「0.6」)以上であると判断したリンクについては、そのURLを、特定のアドレス群として関連付けて記憶する(ステップS124)。例えば、図13bにおいて類似度が「0.83333....」と算出されたリンクβ7〜β9(図12)のURLは、ユーザーAのトップページに属するアドレス群として関連付けられ、グループ化される。
【0078】
起点となったURLから所定のリンク数(例えば、10リンク)に達するまで、上記処理を繰り返す(ステップS126)。なお、同じ記事であっても次のページにとして取り扱われていれば、リンク数はカウントされることになる。
【0079】
以上の処理により、特定のアドレス群(例えば、特定のサイトユーザーについてのWebページ)として関連付けて記憶されたデータ例を、図14に示す。図14に示すグループ化したURLの例では、ユーザーAのトップページのURLに、ステップS111において記憶された第1の判別キーを生成する元となったリンクのURL(図8)、およびステップS122において類似度の判定により削除されなかったURL(図14)が、ユーザーAの個人領域として関連付けて記憶されている。
【0080】
個人領域が全てトップページのURLに文字列を追加したものであるときは、トップページのURLと前方一致の関係にあるか否かを検索することで、個人領域のURLをグループ化することも可能である。しかし、個人領域の全てがトップページのURLに文字列を追加したものではない場合(例えば、トップページのURLの間に異なる文字列が挿入されているようなとき)には、本実施形態による上記処理が特に有効である。
【0081】
1−4.他の実施形態
なお、上記実施形態では、リンク階層数を1または2までとしたが、これに限定されるものではなく、3以上(例えば、10リンク)のリンク階層先まで探索してもよい。
【0082】
なお、上記実施形態では、トップページに含まれるリンクのURLから第1のアドレスキーを生成したが(図2など)、トップページ自体のURLから第1のアドレスキーを生成してもよい。この場合、トップページに含まれるリンクのURLから第2のアドレスキーを生成すればよい。
【0083】
なお、上記実施形態では、類似値算出の式において、第1のアドレスキーの総数を分母としたが、これに限定されるものではなく、第2のアドレスキーの総数を分母としたり、これらのいずれか大きい方を分母としてもよい。
【0084】
なお、上記実施形態では、一致するキーの数を前方から後方まで照合することとしたが、これに限られるものではなく、後方から前方に向けて照合してもよい。
【0085】
なお、上記実施形態では、一致するキーの数を前方から後方まで照合することとしたが、これに限られるものではなく、照合を途中で停止してもよい。例えば、一致しないキーが出現した場合に、以降の照合を行わないようにしてもよい。
【0086】
なお、上記実施形態では、類似度を算出するためにキーの一致数だけを考慮したが、特定のキーに重みを持たせて類似度を算出してもよい。例えば、ドメイン名から生成されるキーに、他のキーよりも重み付けを行うようにしてもよい。
【0087】
なお、上記実施形態では、URLを対象としたが、他のアドレス(例えば、URN)を対象としてもよい。URLとURNはいずれもURIの概念に含まれるものである。なお、URLの削除処理を設けなくてもよい。
【0088】
上記のようにして、特定ユーザーの個人領域を特定することができるが、同じWebページ内に複数の個人による書き込みが存在する場合がある。そのような場合には、他のユーザーが書き込んだ部分と区別できればより高度な解析を行うことができる。Webページを特定の単位で分割するための処理について以下に説明する。
【0089】
2−1.エレメント抽出装置200の構造(図15)
本発明のエレメント抽出装置200は、Webページから所定のエレメント抽出するために、図15に示すWebページ展開手段52、座標取得手段54、エレメント選択手段56、エレメント配列手段58、階層キー生成手段60、類似度算出手段62、内容データ取得手段64を備える。これらの手段を用いることで、Webページの中に膨大な数のエレメントが含まれる場合でも、重要なエレメントだけを抽出すための記事抽出ルールが、Webページ毎に自動的に決定されるため,汎用性の高い記事抽出が可能となる。
【0090】
Webページ展開手段52(図15)は、Webページ(HTML文書)を表示領域に展開し、座標取得手段54(図15)は、表示されたWebページ(HTML文書)に含まれる各エレメントの表示範囲を特定する座標を取得する。ここで、「エレメント」とは、表示位置があるHTML文書の要素を意味する。
【0091】
エレメント選択手段56(図15)は、表示領域上に、エレメントの配置方向に複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する。エレメント配列手段58(図15)は、選択した前記エレメントの階層構造を順に配列する。階層キー生成手段60(図15)は、前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する。
【0092】
類似度算出手段62(図15)は、隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する。内容データ取得手段64(図15)は、前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する。
【0093】
2−2.エレメント抽出装置200のハードウェア構成
図16に、エレメント抽出装置200のハードウェア構成を示す。エレメント抽出装置200は、図16に示すCPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータで構成される。
【0094】
図16のハードディスク26には、エレメント抽出プログラム38が記録されている。エレメント抽出プログラム38は、CPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータを、図16に示すWebページ展開手段52、座標取得手段54、エレメント選択手段56、エレメント配列手段58、階層キー生成手段60、類似度算出手段62、内容データ取得手段64として機能させるプログラムである。
【0095】
また、図16のハードディスク26には、ブラウザ40が記憶されている。ブラウザ40は、コンピュータ内部において、Webページ(HTML文書)を仮想的に表示領域(例えば、縦2040px×横1200px)に展開する。
【0096】
また、図16のハードディスク26には、エレメント座標DB42が記憶されている。エレメント座標DB42には、ブラウザ40の表示領域におけるエレメントの表示範囲を示す座標(例えば、表示領域上にX、Y座標を設定した場合における各エレメントの左上および右下の座標)が蓄積される。
【0097】
2−3.エレメント抽出処理のフロー
図17は、エレメント抽出プログラム38(図16)による処理を示すフローチャートである。なお、以下の例では、掲示板のページに複数人の書き込みがあった場合に、ユーザーによって書き込まれた内容の単位で、テキストを抽出する場合について説明する。
【0098】
エレメント抽出プログラム38が起動されると、ブラウザ40(図16)は、Webから抽出対象となるHTML文書を取得して、エレメントを表示領域上に配置(すなわち、イメージデータに変換)する(ステップS202)。図18は、イメージデータに変換される前の掲示板のHTMLデータ(ソースコード)(図18A)およびこれをイメージデータに変換して画面上に表示した表示例(図18B)である。
【0099】
さらに、CPU20は、イメージデータ上における各エレメントの表示領域を示す座標(例えば、左上および右下)を取得し、エレメント座標DB42(図17)に記憶する(ステップS204)。図19に、エレメントの座標を算出する方法を示す。例えば、図19において「山田花子」を表示するエレメントEl4の表示範囲を示す左上座標(X4,Y4)は、X 4 = x1 + x2 + x3 + x4、Y 4 = y1 + y2 + y3 + y4で算出される。右下座標は、各エレメントの高さおよび幅を左上座標に加算すれば得られる。なお、図19に示すような画像を実際に画面上に表示しない場合であっても、コンピュータ内部において(すなわち、図16のディスプレイ24に表示せずに)上記処理が行うことは可能である。
【0100】
つぎに、エレメントの選択処理に移行する。まず、CPU20は、エレメントの長さ方向(幅方向)に対して垂直方向(縦方向)の仮想直線を設定する(ステップS206)。図20に示す例では、1本の直線L1を中央に設定している。これは、特にプロフなどにおいては、重要な要素は中央に配置されている可能性が高いためである。
【0101】
さらに、CPU20は、設定した上記直線上に、所定の間隔で点をプロットする(ステップS208)。図20に示す例では、等間隔(例えば、10px〜20px程度)で点をプロットしている。CPU20は、エレメント座標DB42(図17)を参照して、プロットされた点を表示範囲内に含むエレメントを抽出し、順に配列する(ステップS210)。
【0102】
CPU20は、抽出したエレメントの階層構造をタグ単位に分割して、階層キーを抽出する(ステップS212)。例えば、図20の上から3つ目の点P3を例として、階層キーの抽出を説明すると次のとおりである。3つ目の点P3は、図18のHTML文書では、12行目の「友達なろ〜よ」に対応している。この「友達なろ〜よ」を挟んで記述されている一対のタグ(<body>と</body>のように、制御の開始と終了を示すタグをいう)を探し出し、これを階層キーとしている。
【0103】
「友達なろ〜よ」を挟む一対のタグは、2行目の<body>と下から2行目の</body>、7行目の<form>と15行目の</form>、8行目の<table>と14行目の</table>、8行目の<tr>と14行目の</tr>、8行目の<td>と14行目の</td>、9行目の<div>と12行目の</div>である。したがって、body,form,table,tr,td,divが階層キーとして抽出される。図21に、各エレメントの階層構造をタグ単位で分割して生成した階層キーの例を示す。
【0104】
階層キーを抽出した後、隣接する各エレメント間における階層キーの類似度を、図22に示す式(図13bに示す式と同じ)に基づいて算出する(ステップS214)。図22に、類似度算出した結果の例を示す。なお、この実施形態では、式の分母count(Element(wni))を、隣接する階層キーの数のうち、大きい方の数としている。
【0105】
つぎに、CPU20は、図23に示すような、類似値ピラミッドをコンピュータ内部において生成する(ステップS216)。なお、図23に示す類似値ピラミッドを生成するには、隣接する2つの類似度の平均を計算して上位に積み上げて行けばよい。
【0106】
CPU20は、類似値ピラミッドの中から、しきい値以上(例えば、0.7)の類似度を頂点とするピラミッドを探索する(ステップS218)。このとき、ピラミッドの底辺が重ならないように探索する。例えば、図24に点線で示すピラミッドが検出された場合、当該ピラミッドの底辺を含まないように、N1またはN2を底辺とするピラミッドについて探索を行う。なお、探索の方向は、図24において、上位から下位の方向または底辺の左から右の方向もしくは底辺の右から左に行うことができる。なお、類似度ピラミッドの中にしきい値以上の類似度が全く含まれていない場合には、全ての類似度を探索して処理を終了することになる。
【0107】
さらに、探索された各ピラミッドに対して以下の統合処理を実行し、エレメント抽出の対象となる階層構造を特定する(ステップS220)。図25を用いて、階層構造を特定する処理の詳細について説明する。
【0108】
CPU20は、まず、探索された対象ピラミッドの底辺について、包含関係を判定する(ステップS2221)。包含関係にあるか否かは、エレメント座標DB42に記憶されている各エレメントの座標を比較し、またはエレメント間におけるタグの階層構造の関係を参照して判定することができる。なお、図24に点線で示すピラミッドの底辺に含まれる異なる階層構造の「/body/form/table/tr/td」と、「/body/form/table/tr/td/div」とは包含関係にある。
【0109】
エレメントが包含関係にない場合(ステップS2221のNo)は、各エレメントを抽出対象として特定する(ステップS2222)。例えば、図21に示す第1列のエレメント「/body/div」と第2列のエレメント「/body/form/table/tr/td」は包含関係にない。
【0110】
エレメントが包含関係にあると判定した場合(ステップS2221のYes)は、各エレメントに含まれるテキストの文字数の差がしきい値(例えば、当該差が、上位階層のエレメントに含まれるテキスト文字数の0.8)以下のとき(ステップS2223のYes)には、包含するエレメントを抽出対象として特定する(ステップS2224)。すなわち、階層構造がより上位の方(図26に示すdata2に対応する階層構造)を抽出対象として特定する。これにより、下位の階層構造(図26に示すdata1に対応)は、上位の階層構造(図26に示すdata2に対応)に統合されることになる。
【0111】
一方、各エレメント内のテキスト差分がしきい値を超えるとき(ステップS2223のNo)には、包含されるエレメントを抽出対象として特定する(ステップS2225)。すなわち、階層構造がより下位の方を抽出対象として特定する。
【0112】
例えば、図27に示す階層構造「/body/div」(data3に対応)と「/body/form/table/tr/td/div」(data1に対応)が抽出された場合は、テキスト差分がしきい値を超えるので、階層構造がより下位の方(図26のdata1に対応)を抽出対象として特定する。この場合、上位の階層は、主要エレメント自体ではなく、主要エレメントを複数集めた上位エレメントである可能性が高いからである。これにより、上位の階層構造(図27に示すdata3に対応)は、下位の階層構造(図26のdata1に対応)に統合されることになる。
【0113】
以上により、抽出する対象の区分となるタグが特定される。その上で、CPU20は、抽出対象の階層構造がWebページに複数含まれるか否かを判定し、該当する階層構造の内容データを当該WebページのHTML文書から抽出する(ステップS226)。なお、ステップS218において複数のピラミッドが探索された場合には、各ピラミッド内で統合された階層構造が同じであれば、同じものだけを抽出対象とすればよく、階層構造が異なる場合には、それぞれについてデータを抽出すればよい。
【0114】
HTML文書から対応する階層構造の内容データを抽出した上で、さらに、CPU20は、抽出した内容データの属性をAタグなどで判別し(ステップS228)、抽出したデータと共にその属性を記憶する(ステップS230)。
【0115】
図28は、最終的に抽出されたデータ例およびその属性を示す図である。図28に示す例では、図26に示すdata1から抽出された、タグ以外のテキストデータ「山田 太郎」「プロフみたよ!」「友達なろ〜よ」を内容データとして記憶している。なお、タグを含めた図26に示すdata1の全てを、内容データとして記憶してもよい。
【0116】
また、図28に示す例では、図26に示すdata1に含まれるAタグの部分data4から得られるURL「http://pr.cccboy.com/0123456」が、データの属性として関連付けて記憶されている。これにより、URL「http://pr.cccboy.com/0123456」でソートすれば、山田 太郎のトップページURLのデータだけを取得することができる。
【0117】
なお、上記のようなAタグのURLに限らず、自然言語によるマッチングで得られた属性を、エレメントに関連付けて記憶してもよい。自然言語処理によるマッチングとは、例えば、予め属性を決定するための辞書(女性用語辞書など)を用意しておき、マッチングした度合いによりその属性を付するか否かを決定する手法である(参考文献「Webリンク構造解析と自然言語処理による組織関係の抽出についての研究」、情報処理学会論文誌、2006年6月号)。エレメントの属性としては、例えば、エレメントの作成者名、エレメントの作成者、作成日、エレメント作成者の性別、年齢、所属団体の他、エレメントに記載されている話題(特定の商品、サービスなどに関するもの)などが該当する。
【0118】
以上のように、Webページから各タグ(エレメント)の表示位置情報と、記事などの内容データが(i)Webページ内で繰り返し登場する、(ii)Webページの大部分を占める(iii)中央部に存在するといった特性とに基づき,記事部分の可能性の高い領域を特定し、抽出した前後の階層構造(XPATH)の類似度を見ることで記事部分の抽出規則を生成し、そのルールに基づき自動的に記事部分を抽出することができる。
【0119】
2−4.他の実施形態
なお、上記実施形態では、掲示板ページから書き込みデータを抽出する場合を例に説明したが、これに限定されるものではなく、他の要素(ニュース記事など)の抽出に用いてもよい。
【0120】
なお、上記実施形態では、点を配置する仮想線を中央に1本だけ設定したが(図20)、これに限定されるものではなく、複数の仮想線を設定して点を配置してもよい。例えば、図29に示す点の配置例では、5本の直線とし、表示されたWebページに含まれるエレメントのx座標の最大値と最小値の中間位置に第1の直線を設定し、当該第1の直線から等間隔で両側に2本ずつ所定幅だけオフセットした直線をさらに設定している。この場合、図17に示すステップS210において、同一y座標にプロットされた5つの点を最も多く含むエレメントを抽出すればよい。
【0121】
なお、上記実施形態では、仮想線に沿って等間隔で点を配置したが(図20)、これに限定されるものではなく、異なる間隔で点を配置してもよい。
【0122】
なお、上記実施形態では、ステップS216において類似度ピラミッドを事前に生成したが、これに限定されるものではなく、類似度ピラミッドを前もって生成しないで階層構造を探索してもよい。
【0123】
なお、上記実施形態では、ステップS216において類似度ピラミッドを生成したが、類似度ピラミッドを生成しないで階層構造を探索してもよい。例えば、類似度の同じ階層構造が隣接はしていないが、1つ離れて存在するよう場合には間の階層構造を両側の階層構造に統合するといった方法が考えられる。
【0124】
なお、上記実施形態では、抽出するエレメントがテキストである場合について説明したが、抽出するエレメントが、画像、グラフ、動画であってもよい。
【0125】
なお、上記実施形態では、HTML文書の表示を、仮想ブラウザを用いて内部的に実行するとしたが、実際に画面上に表示しながら行ってもよい。
【0126】
3.データ解析への応用例
(i)個人領域として特定し、または分割されたデータから抽出される言葉からSupport Vector Machine (SVM)を用いたサンプリングを行って分離平面を生成し、対象となるユーザーのページで用いられる言葉について当該分離平面との距離を算出することで、対象ユーザーの有害度を算出することができる。
【0127】
「有害度」とは、対象者が、他のユーザーにとってどの程度の悪影響を与える存在であるかを数値化した指標である。以下の(a)事前準備、(b)有害判定、(c)有害度の算出の各段階に分けて説明する。
【0128】
(a)事前準備
まず、ネット上に存在するユーザーの中から典型的な有害者と無害者と考えられる者を選び出す。その上で、複数の有害者について、プロフィール・日記内の頻出単語を抽出する。同様に、複数の無害者について、プロフィール・日記内の頻出単語を抽出する。その上で、これら有害者および無害者を、全ての頻出単語の出現数を軸とする多次元空間(図30Aに示す)上にプロットする。その際、有害人と無害人とを区別してプロットする。この多次元空間上において、SVMの手法を用いて、分離平面が決定される。
【0129】
(b)有害・無害判定
つぎに、対象者のプロフ・日記内に含まれる単語の数を計数し、上記多次元空間上にプロットする。プロットされた対象者(△で示す)が、分離平面のどちら側にあるかで、有害または無害のユーザーを判定することができる。実施形態では、有害側にプロットされた対象者の全てを有害と判断するのではなく、分離平面からの距離がしきい値以上離れている場合のみ有害と判断する。分離平面からの距離がしきい値以内の場合は、無害と取り扱う。
【0130】
(c)有害度の算出
最後に、有害と判断された対象者について、以下の式から有害度を算出する。
【0131】
有害度=「分離平面からの距離」×「非行辞書単語出現数」
ここで、非行辞書とは、非行に関連すると考えられる単語を予め登録しておいた辞書である。対象者のプロフ・日記内の非行単語の数を計数する。
【0132】
(ii)また、対象ユーザーの人間関係が更新された場合、または新たなユーザーが発見された場合に、個人領域として特定し、または分割されたデータについて、危険度を更新すればリアルタイムで個人の追跡を行える。「危険度」とは、対象者が、他のユーザーからの危険にどの程度さらされているかを数値化した指標である。
【0133】
各ユーザーの危険度は、上記有害度などに基づいて算出できる。具体的には、対象者の危険度は、リンク先ユーザーの有害度を親密度で乗算した値を算出し、直接または間接的にリンクされている各ユーザーについてこれを合計して得られる。なお、ユーザー間の親密度は、リンク関係(図30B)または自然言語処理による関係から算出できる。
【0134】
図30Bにおける対象者Aの有害度は、例えば、(Bの有害度×ABの新密度)+(Dの有害度×ADの新密度)で得た値を合計すれば得られる。なお、親密度が低い対象者Cとの関係は考慮していない。
【0135】
(iii)その他にも、検索システムにおける日付やユーザー単位での検索、フィルタリング(有害と判断された記事のみのフィルタリング処理)、口コミ記事の効率的な収集といった分野にも本発明を利用することができる。
【技術分野】
【0001】
この発明は、インターネット上におけるWebページを解析するための技術に関し、特に、Webページ群のグループ化および各Webページの分割処理に関するものである。
【背景技術】
【0002】
従来から、Webページを解析するために様々な方法が考えられている。例えば、特許文献1には、アクセスログに含まれるURIを解析し,Webページをグループ化する手法が開示されている。特許文献2には、主要コンテンツを自動的に抽出する手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−123000号公報
【特許文献2】特開2010−117941号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術は、アクセスログを対象としてWebページをグループ化するものであり,グループ化する対象は,同様のドメインや同様のURI構造をもつWebページ群である。よって、個人領域を特定するものではない。また、特許文献1の技術は、ドメイン部,ディレクトリ部,クエリ部に分割し,特徴ベクトル間の類似度を算出する手法を提案しており,類似度の算出アルゴリズムが複雑である。
【0005】
特許文献2の技術は、HTMLデータに対して所定の分割規則に基づいてセグメントに分割するものであり,対象となるHTMLデータ毎にルールを予め決定する必要がある。よって,汎用性の高い記事抽出が困難であり、記事を抽出する処理量が膨大である。
【0006】
この発明は、(i)個人領域の特定により、当該特定された個人領域に対して対象者の解析を正確に行うことを目的とする。また、この発明は、(ii)分割処理により、Webサイトの構造にのみ着目して重要な記事部分だけを容易に抽出することを目的とする。
【課題を解決するための手段】
【0007】
(1)この発明のグループ化プログラムは、
Webページのアドレスをグループ化するためのグループ化プログラムであって、
コンピュータを、
特定のアドレスからWebページを取得するWebページ取得手段、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段、
前記第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上であると判断されたリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段、
として機能させることを特徴とする。
【0008】
これにより、特定ユーザーの個人領域をグループ化して特定することができ、当該個人領域のWebページ群に対して解析を行うことができる。
【0009】
(2)この発明のグループ化プログラムは、
前記類似度算出手段が、
前記第1のアドレスキーと前記第2のアドレスキーとの間で、第1のアドレスキーを構成するキーの1つと一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合し、
第2のアドレスキーを構成するキーの中に対応するキーが存在する場合には、第1および第2のアドレスキーにおいて一致するとして検出されたキーの次のキーから、後方に向けて一致するキーの組み合わせ数を計数し、
第1のアドレスキーを構成するキーの総数に対する前記第2のアドレスキーとの間で対応付けられたキーの組み合わせ数の割合を類似度として算出する、
ことを特徴とする。
【0010】
これにより、第1のアドレスキーから第2のアドレスキーを照合して算出した類似度に基づいて、特定ユーザーの個人領域をグループ化して特定することができ、当該個人領域のWebページ群に対して解析を行うことができる。
【0011】
(3)この発明のグループ化プログラムは、
前記特定のアドレスから所定数のリンク階層数まで、類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化探索手段であって、
前記グループ化手段により特定のアドレス群として関連付けられた前記アドレスから取得したWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第3のアドレスキーを生成し、前記第1のアドレスキーと前記第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出するグループ化探索手段、
を備えたこと、を特徴とする。
【0012】
これにより、所定のリンク階層数まで、特定ユーザーの個人領域をグループ化して特定することができる。
【0013】
(4)この発明のグループ化プログラムは、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、前記特定のアドレスにおいてユーザーを特定する識別子だけを置き換えたアドレスであると判断されたアドレスを削除する、
ことを特徴とする。
【0014】
これにより、異なるユーザーのURLを容易に削除することができる。
【0015】
(5)この発明のグループ化プログラムは、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、削除対象として登録されたアドレスに一致すると判定されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【0016】
これにより、予め登録された広告サイトなどのURLを容易に削除することができる。
【0017】
(6)この発明のグループ化プログラムは、
前記特定のアドレスを、サーバにアクセスすることにより所定時間毎に自動的に蓄積するアドレス蓄積手段、
を備えた、ことを特徴とする。
【0018】
これにより、個人領域をグループ化して特定する特定ユーザーを自動的に蓄積することができる。
【0019】
(9)この発明のエレメント抽出プログラムは、
Webページから所定のエレメントを抽出するためのエレメント抽出プログラムであって、
コンピュータを、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とする。
【0020】
これにより、Webページに含まれる記事などの単位で分割して解析することが可能となる。例えば、記事単位でも検索システムに用いたり、有害であると判断されたWebページの一部だけを非表示としたり、特定商品に関する書き込みだけを抽出して商品の評価を収集するといった処理に利用することができる。
【0021】
(10)この発明のエレメント抽出プログラムは、
コンピュータを、さらに、
隣接するエレメントの前記階層構造の類似度の平均を上位方向に算出して類似度ピラミッドを生成し、前記類似度がしきい値以上であるか否かを検出し、検出された類似度の底辺に含まれるエレメントの階層構造のうち、所定のルールに合致する階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とする。
【0022】
これにより、内容データの抽出対象となる記事の階層構造を容易に特定することができる。
【0023】
(11)この発明のエレメント抽出プログラムは、
前記内容データ取得手段が、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントが包含関係にあるかを判断し、
隣接するエレメントが包含関係にない場合には、各階層構造について対応する内容データを取得する、
ことを特徴とする。
【0024】
これにより、内容データの抽出対象となる記事の階層構造を正確に特定することができる。
【0025】
(12)この発明のエレメント抽出プログラムは、
前記エレメント抽出手段が、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントの階層構造が包含関係にあるかを判断し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値以下の場合に、包含される下位の階層構造を削除して、包含する上位の階層構造に対応する内容データを取得し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値を超える場合に、包含する上位の階層構造を削除して、包含される下位の階層構造に対応する内容データを取得する、
ことを特徴とする。
【0026】
これにより、内容データの抽出対象となる記事の階層構造をより正確に特定することができる。
【0027】
(13)この発明のエレメント抽出プログラムは、
前記エレメント選択手段が、前記表示領域上において、所定方向に等間隔で複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する、
ことを特徴とする。
【0028】
これにより、内容データの抽出対象となる階層構造を特定するために必要な階層キーを取得することができる。
【0029】
(14)この発明のエレメント抽出プログラムは、
前記エレメント選択手段が、前記表示領域上において、前記所定方向に垂直の直線上に複数の点を配置し、同一直線上に配置した点を最も多く表示範囲に含むエレメントを選択する、
ことを特徴とする。
【0030】
これにより、内容データの抽出対象となる階層構造を特定するために必要な階層キーを取得することができる。
【0031】
(15)この発明のエレメント抽出プログラムは、
前記エレメント抽出手段が、エレメントに含まれるAタグのURLまたは自然言語でマッチングして得た属性を、エレメントに関連付けて記憶した、
ことを特徴とする。
【0032】
これにより、Webページから抽出した内容データの属性を区別して記憶することができる。
【0033】
この発明において、「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【0034】
「ネットサイト」とは、例えば、前略プロフィール、モバゲータウン、GREE(いずれも商標)などのホームページサービスその他の個人毎にページを持つことが可能なサイトを含む概念である。
【図面の簡単な説明】
【0035】
【図1】本発明のグループ化装置100のブロック図である。
【図2】第1のアドレスキーおよび第2のアドレスキーとの間で照合する手順を示す図である。
【図3】グループ化装置100のハードウェア構成を示す図である。
【図4】グループ化プログラム32(図3)による処理を示すフローチャートである。
【図5】取得されたユーザーAのトップページから抽出されたURLのデータ例を示す図である。
【図6】広告URLリスト36に登録されたURLと一致するリンクを削除した状態を示す図である。
【図7】ユーザーフィルタルールと一致するリンクを削除した状態を示す図である。
【図8】第1のアドレスキーを生成した状態を示す図である。
【図9】図8に示すリンクα3のWebページから抽出されたリンクのURLのデータ例を示す図である。
【図10】広告URLリスト36に登録されたURLと一致するリンクを削除した状態を示す図である。
【図11】ユーザーフィルタルールと一致するリンクを削除した状態を示す図である。
【図12】第2のアドレスキーを生成した状態を示す図である。
【図13a】キーの照合方法を示す図である。
【図13b】類似度の算出方法および類似度を算出した結果を示す図である。
【図14】特定のアドレス群として関連付けて記憶されたデータ例を示す図である。
【図15】本発明のエレメント抽出装置200のブロック図である。
【図16】エレメント抽出装置200のハードウェア構成を示す図である。
【図17】エレメント抽出プログラム38(図16)による処理を示すフローチャートである。
【図18】イメージデータに変換される前の掲示板のHTMLデータ(ソースコード)(図18A)およびこれをイメージデータに変換して画面上に表示した表示例(図18B)である。
【図19】エレメントの座標を算出する方法を示す図である。
【図20】Webページ上に点を配置した状態(図20A)および配置した点を含むエレメントの階層構造を配列した状態(図20B)を示す図である。
【図21】各階層構造から階層キーを生成した状態を示す図である。
【図22】エレメント間の階層構造の類似度を算出する方法および類似度を算出した結果を示す図である。
【図23】類似値ピラミッドを生成した状態を示す図である。
【図24】しきい値以上の類似度を頂点とするピラミッドを検出した状態を示す図である。
【図25】階層構造を特定する処理(図17のステップS220)の詳細を示す図である。
【図26】包含関係にあるエレメントの階層構造を統合する方法(テキスト差分がしきい値以下のとき)を示す図である。
【図27】包含関係にあるエレメントの階層構造を統合する方法(テキスト差分がしきい値を超えるとき)を示す図である。
【図28】最終的に抽出されたエレメントのデータ例およびその属性を示す図である。
【図29】その他の実施形態を示す図である。
【図30】本発明の応用例を示す図である。
【発明を実施するための形態】
【0036】
1.本発明の意義
近年、モバイルインターネットにおけるネットサイトには様々な問題が指摘されており、ネットパトロールシステムを自動化し、ネットサイトにおける子供たちの行動を継続的に監視し、また問題がある子供を的確に指導することが課題となっている。
【0037】
しかし、ネットパトロールを自動化するためには、ネット上の膨大なWebページの中から、各ユーザーの個人領域を特定する必要がある。さらに、1つのWebページに複数人の書き込みが含まれる場合に、より正確に対象者の解析を行うためには、Webページ単位ではなく、記事単位でWebページから内容を抽出する必要がある。
【0038】
本発明は、ネットパトロール支援システムの自動化に寄与するものであり、本発明のグループ化装置100(図1)は、膨大なWebページの中から、ネット上のユーザーの個人領域を特定するために有効な手段である。ネット上の個人領域の特定するために、例えば、各ユーザーのトップページからリンクされたURL(アドレス)が類似するか否かという観点から、同一ユーザーのページをリンクに沿って探索することで、各ユーザーの個人領域を容易に特定することができる。
【0039】
また、本発明のエレメント抽出プログラム(図15)は、掲示板のように1つのWebページに複数の内容が繰り返しで出現するような場合に、書き込まれた内容を抽出するために有効な手段である。すなわち、1ページ内に異なるユーザーの書き込みなど様々なデータが混在する場合であっても、重要であると推測される部分だけを容易に抽出することができる。
【0040】
1−1.グループ化装置100の構造
まず、図1などを用いて、本発明のグループ化装置100について説明する。図1は本発明のグループ化装置100のブロック図である。
【0041】
図1に示すように、本発明のグループ化装置100は、Webページ取得手段2と、第1のアドレスキー生成手段4と、第2のアドレスキー生成手段6と、類似度算出手段8と、アドレスグループ化手段10と、グループ化探索手段12と、を備えている。
【0042】
Webページ取得手段2(図1)は、特定のURLからWebページを取得する。例えば、ネットサイトに登録されているユーザーAのトップページを取得する。
【0043】
第1のアドレスキー生成手段4(図1)は、Webページ取得手段2が取得したWebページ(トップページ)からリンクだけを抽出し、抽出した各リンクのURLを区切り文字で分割して第1のアドレスキーを生成する。
【0044】
さらに、第2のアドレスキー生成手段6(図1)は、第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのURLを区切り文字で分割して第2のアドレスキーを生成する。このようにして所定のリンク階層までアドレスキーを生成する。
【0045】
類似度算出手段8(図1)は、第1のアドレスキー生成手段4が生成した第1のアドレスキーと、第2のアドレスキー生成手段6が生成した第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する。
【0046】
図2を用いて、第1のアドレスキーおよび第2のアドレスキーの間で照合する手順について説明する。
【0047】
照合処理は、図2に示すように、ユーザーAのトップページ(http:top・)から抽出される1つのURL「リンクURL01」から生成される第1のアドレスキーと、当該URL「リンクURL01」のWebページ(http://link1・)から抽出される各リンク(例えば、「リンクURL11」)から生成される第2のアドレスキーと、の間で行われる。なお、当該照合に基づく類似度の算出方法については、後述する。
【0048】
グループ化手段10(図1)は、第1のアドレスキーと第2のアドレスキーの類似度がしきい値以上と判断されたリンクのURL(例えば、「リンクURL01」および「リンクURL11」)を、特定のアドレス群として関連付ける。
【0049】
グループ化探索手段12(図1)は、さらに、特定のURL(例えば、トップページ)から所定のリンク階層数まで、類似度がしきい値以上のリンクのURLを、特定のアドレス群として関連付けるための手段である。
【0050】
そのために、図2に示すように、グループ化手段10により特定のアドレス群として関連付けられたURL(例えば、「リンクURL11」)からWebページ(トップページから2リンク先の階層数http://link2・)を取得して当該Webページからリンクを抽出し、抽出した各リンク(例えば、「リンクURL21」)のURLを区切り文字で分割して第3のアドレスキーを生成する。さらに、「リンクURL01」から生成した第1のアドレスキーと、「リンクURL21」から生成した第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出する。nリンク先の階層についても、同様に、「リンクURL01」から生成した第1のアドレスキーと、nリンク先のWebページから抽出されるリンクから生成した第nのアドレスキーとの間で、一致するアドレスキーの数を計数して、その結果に基づいて類似度を算出し、類似度がしきい値以上のリンクのURLを、特定のアドレス群として関連付ける。
【0051】
以上のように、特定のユーザーに関するURLがグループ化されることで、特定ユーザーの個人領域を正確に解析することができる。
【0052】
1−2.グループ化装置100のハードウェア構成
図3に、グループ化装置100のハードウェア構成を示す。グループ化処理装置100は、図2に示すCPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータで構成される。
【0053】
図3のハードディスク26には、特定のユーザーの個人領域、すなわち、特定のユーザーに属するWebページ群を特定してグループ化するためのグループ化プログラム32が記録されている。グループ化プログラム32は、CPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータを、図1に示すWebページ取得手段2、第1のアドレスキー生成手段4、第2のアドレスキー生成手段6、類似度算出手段8、アドレスグループ化手段10、グループ化探索手段12として機能させるプログラムである。
【0054】
また、図3のハードディスク26には、ネットサイトのユーザーリスト34が記憶されている。例えば、ユーザーリスト34には、ネットサイトから所定時間毎に予め収集されたユーザーのトップページに対応するURLが蓄積されている。
【0055】
また、図3のハードディスク26には、広告のURLを削除するために用いられる広告URLリスト36が記憶されている。例えば、広告URLリスト34には、予めネット上から収集された広告のURLが蓄積されている。
【0056】
1−3.グループ化プログラム32による処理
図4は、グループ化プログラム32(図3)による処理を示すフローチャートである。
【0057】
グループ化プログラム32が起動されると、CPU20は、ユーザーリスト34を参照し、特定ユーザーのURLからWebページを取得する(ステップS102)。例えば、ユーザーAのトップページが取得される。
【0058】
さらに、CPU20は、取得したWebページからリンクを抽出する(ステップS104)。具体的には、HTMLデータに含まれるハイパーリンク(いわゆる、Aタグ)を検索することで、図5に示すようなリンクのURLが抽出される。
【0059】
つぎに、不要なリンクを削除するために、広告フィルタ処理が行われる(ステップS106)。すなわち、CPU20は、広告URLリスト36を参照し、ステップS104で抽出したリンクのうち、広告サイトのWebページとURLが一致するリンクを削除する。これにより、ユーザーAとは明らかに無関係な広告サイトのWebページを削除することができる。例えば、図6に示すように、広告URLリスト36に登録されたURLと一致するリンクα1が全て削除される。なお、広告URLリストに登録されていないものが上記広告フィルタ処理を通過したとしても、通常は、後述する類似度に基づく削除処理(図4のステップS122)において削除される。
【0060】
さらに、不要なリンクを削除するために、ユーザーフィルタ処理が行われる(ステップS108)。ユーザーフィルタ処理とは、特定のURLについて、ユーザーを特定する識別子だけを置き換えたURLのリンクを削除するというものである。例えば、URL「http://pr.cccboy.com/16378304」のうちユーザーIDを示す「16378304」の部分だけが異なる場合は、別のユーザーのURL(トップページ)であるため、当該URLのリンクを削除することとした。
【0061】
具体的な処理としては、「http://pr.cccboy.com/*」のように、トップページのURLのうち、ユーザーIDの部分のみをワイルドカード(正規表現)として検索し、その結果、検出された図7に示すリンクα2(URL「http://pr.cccboy.com/12345678」)を削除した。
【0062】
上記ステップS106およびステップS108において不要なリンクを削除した後、CPU20は、残りのリンクについて、URLを区切り文字で分割して第1のアドレスキーを生成する(ステップS110)。
【0063】
具体的には、各リンクのURLを、プロトコル名を除いて、区切り文字(英数字以外のスラッシュ「/」、ピリオド「.」など)でテキストを分割することで、各キーが生成される。例えば、図8に示すリンクα3のURL「http://bbs.cccboy.com/Guestbook/BBS/16378304/」から、第1のアドレスキーとして、6つのキー「bbs」、「cccboy」、「com」、「Guestbook」、「BBS」「16378304」が生成される。CPU20は、これらのキーを配列順序と併せて、後述する照合処理のためにRAM22に記憶する。さらに、第1のアドレスキーを生成する元になった図8に示す各リンクのURLを、ユーザーAのトップページに属するアドレス群として関連付けて記憶する(ステップS111)。
【0064】
次に、CPU20は、第1のアドレスキーを生成した各リンクのURLからWebページを取得し(ステップS112)、当該Webページからリンクを抽出する(ステップS114)。図8に示すリンクα3のWebページから抽出されたリンクを、図9に示す。
【0065】
さらに、ステップS106およびステップS108と同様、不要URLの削除処理が行われる(ステップS116)。例えば、図10に示すように、CPU20は、ステップS114で抽出したリンクから、広告サイトのWebページとURLが一致するリンクβ1、β2を削除する(ステップS106と同じ処理)。さらに、CPU20は、ユーザーフィルタ処理を行って、図11に示すように、特定のURLにおいてユーザーを特定する識別子だけを置き換えたURLのリンクβ3〜β5を削除する(ステップS108と同じ処理)。
【0066】
上記ステップS116において不要なリンクを削除した後、CPU20は、ステップS110と同様、残りの各リンクについて、URLを所定のテキスト単位に分割し、第2のアドレスキーを生成する(ステップS118)。
【0067】
前述のように、各リンクのURLを、プロトコル名を除いて、区切り文字(英数字以外のスラッシュ「/」、ピリオド「.」など)でテキスト単位に分割することで、各キーが生成される。例えば、図12に示すリンクβ6〜β9それぞれのURLから、各リンクについての第2のアドレスキーが生成される(図12を参照)。
【0068】
なお、図12に示す例では、「=」の後に英数字列が連続する場合の当該英数字列(リンクβ7〜β9における「0」など)はキーとして生成しないように設定している。一般に、「=」の後には、コメントなどの記述を特定するIDが入り、かかるIDは同一人のコメントであったとしても、各コメント毎に異なる。したがって、これらをキーとして同一人の判定に用いると、邪魔になると考えられるからである。このため、結果として、リンクβ7〜β9の第2のアドレスキーは同じものとなっている。
【0069】
さらに、CPU20は、ステップS110で生成した第1のアドレスキーと、ステップS118で算出した第2ののアドレスキーとの間で、それぞれを構成するキーを照合することにより、同じ順序で、かつ、一致するキーの組み合わせ数を計数し、その結果に基づいて類似度を算出する(ステップS120)。この実施形態では、途中に異なるキーが存在したとしても、出現順序が同じであれば一致するキーであるとしている。
【0070】
キーの照合方法について、図13aを用いて説明する。図13aのパターン1に示すように、第1のアドレスキーが{a,b,c}の3つであり、第2のアドレスキーが{a,d,b,e,c}の5つであるとき、まず、第1のアドレスキーを構成するキーの1つ{a}と一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合する。これにより、まず、図13aに示す{a}の組み合わせが検出される。
【0071】
さらに、第1のアドレスキーを構成する次のキー{b}が第2のアドレスキーに存在するか、第2のアドレスキーのキー{d}から照合することにより、後方に向けて一致するキーの組み合わせ数を計数する。これにより、図13aに示す{b}{c}の組み合わせが検出され、一致するキーの出現順序が同じである組み合わせ数は3となる。
【0072】
なお、第1のアドレスキーを{a,b,c,d}の4つとしたパターン2の場合は、キー{c}同士の組み合わせが検出された後は、第1のアドレスキーの4番目のキー{d}は、第2のアドレスキーの5番目の{c}から後方に向けて検出するため、図13a中、点線の矢印で示す第2のアドレスキーの2番目のキー{d}との組み合わせはカウントされず、パターン1と同様に、組み合わせ数は3となる。
【0073】
類似度は、上記組み合わせ数などに基づいて、次式から算出することができる。なお、次式における類似度Ext(wni, wnij)は、第1のアドレスキーwniと、第2のアドレスキーwnijの間の類似度を表す。
【0074】
【数1】
【0075】
ここで、式の分母count(Element(wni))は、第1のアドレスキーを構成するキーElement(wni)の総数を表す。また、式の分子count(LCS(Element(wni), Element(wnij))は、第1のアドレスキーを構成するキーElement(wni)と、第2のアドレスキーを構成するキーElement(wnij)との間で、同じ順序で、かつ、一致するキーの組み合わせ数を表す。
【0076】
上記の式から、例えば、図13bに示す第1のアドレスキーwn1と、リンクβ6の第2のアドレスキーwn11との間の類似度Ext(wn1,wn11)は、Ext(wn1,wn11)= 0 / 6 = 0となる。また、図13bに示す第1のアドレスキーwn1と、リンクβ7の第2のアドレスキーwn12との間の類似度Ext(wn1,wn12)は、Ext(wn1,wn12)= 5 / 6 = 0.83333....となる(Ext(wn1,wn13)、Ext(wn1,wn14)も同じ)。
【0077】
CPU20は、類似度がしきい値以下であると判断したリンクを除去する(ステップS122)。例えば、図13bにおいて類似度が「0」と算出されたリンクβ6(図12)が削除される。一方、CPU20は、類似度がしきい値(例えば、「0.6」)以上であると判断したリンクについては、そのURLを、特定のアドレス群として関連付けて記憶する(ステップS124)。例えば、図13bにおいて類似度が「0.83333....」と算出されたリンクβ7〜β9(図12)のURLは、ユーザーAのトップページに属するアドレス群として関連付けられ、グループ化される。
【0078】
起点となったURLから所定のリンク数(例えば、10リンク)に達するまで、上記処理を繰り返す(ステップS126)。なお、同じ記事であっても次のページにとして取り扱われていれば、リンク数はカウントされることになる。
【0079】
以上の処理により、特定のアドレス群(例えば、特定のサイトユーザーについてのWebページ)として関連付けて記憶されたデータ例を、図14に示す。図14に示すグループ化したURLの例では、ユーザーAのトップページのURLに、ステップS111において記憶された第1の判別キーを生成する元となったリンクのURL(図8)、およびステップS122において類似度の判定により削除されなかったURL(図14)が、ユーザーAの個人領域として関連付けて記憶されている。
【0080】
個人領域が全てトップページのURLに文字列を追加したものであるときは、トップページのURLと前方一致の関係にあるか否かを検索することで、個人領域のURLをグループ化することも可能である。しかし、個人領域の全てがトップページのURLに文字列を追加したものではない場合(例えば、トップページのURLの間に異なる文字列が挿入されているようなとき)には、本実施形態による上記処理が特に有効である。
【0081】
1−4.他の実施形態
なお、上記実施形態では、リンク階層数を1または2までとしたが、これに限定されるものではなく、3以上(例えば、10リンク)のリンク階層先まで探索してもよい。
【0082】
なお、上記実施形態では、トップページに含まれるリンクのURLから第1のアドレスキーを生成したが(図2など)、トップページ自体のURLから第1のアドレスキーを生成してもよい。この場合、トップページに含まれるリンクのURLから第2のアドレスキーを生成すればよい。
【0083】
なお、上記実施形態では、類似値算出の式において、第1のアドレスキーの総数を分母としたが、これに限定されるものではなく、第2のアドレスキーの総数を分母としたり、これらのいずれか大きい方を分母としてもよい。
【0084】
なお、上記実施形態では、一致するキーの数を前方から後方まで照合することとしたが、これに限られるものではなく、後方から前方に向けて照合してもよい。
【0085】
なお、上記実施形態では、一致するキーの数を前方から後方まで照合することとしたが、これに限られるものではなく、照合を途中で停止してもよい。例えば、一致しないキーが出現した場合に、以降の照合を行わないようにしてもよい。
【0086】
なお、上記実施形態では、類似度を算出するためにキーの一致数だけを考慮したが、特定のキーに重みを持たせて類似度を算出してもよい。例えば、ドメイン名から生成されるキーに、他のキーよりも重み付けを行うようにしてもよい。
【0087】
なお、上記実施形態では、URLを対象としたが、他のアドレス(例えば、URN)を対象としてもよい。URLとURNはいずれもURIの概念に含まれるものである。なお、URLの削除処理を設けなくてもよい。
【0088】
上記のようにして、特定ユーザーの個人領域を特定することができるが、同じWebページ内に複数の個人による書き込みが存在する場合がある。そのような場合には、他のユーザーが書き込んだ部分と区別できればより高度な解析を行うことができる。Webページを特定の単位で分割するための処理について以下に説明する。
【0089】
2−1.エレメント抽出装置200の構造(図15)
本発明のエレメント抽出装置200は、Webページから所定のエレメント抽出するために、図15に示すWebページ展開手段52、座標取得手段54、エレメント選択手段56、エレメント配列手段58、階層キー生成手段60、類似度算出手段62、内容データ取得手段64を備える。これらの手段を用いることで、Webページの中に膨大な数のエレメントが含まれる場合でも、重要なエレメントだけを抽出すための記事抽出ルールが、Webページ毎に自動的に決定されるため,汎用性の高い記事抽出が可能となる。
【0090】
Webページ展開手段52(図15)は、Webページ(HTML文書)を表示領域に展開し、座標取得手段54(図15)は、表示されたWebページ(HTML文書)に含まれる各エレメントの表示範囲を特定する座標を取得する。ここで、「エレメント」とは、表示位置があるHTML文書の要素を意味する。
【0091】
エレメント選択手段56(図15)は、表示領域上に、エレメントの配置方向に複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する。エレメント配列手段58(図15)は、選択した前記エレメントの階層構造を順に配列する。階層キー生成手段60(図15)は、前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する。
【0092】
類似度算出手段62(図15)は、隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する。内容データ取得手段64(図15)は、前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する。
【0093】
2−2.エレメント抽出装置200のハードウェア構成
図16に、エレメント抽出装置200のハードウェア構成を示す。エレメント抽出装置200は、図16に示すCPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータで構成される。
【0094】
図16のハードディスク26には、エレメント抽出プログラム38が記録されている。エレメント抽出プログラム38は、CPU20、RAM22、ディスプレイ24、ハードディスク26、キーボード/マウス28、記録媒体ドライブ30を備えたコンピュータを、図16に示すWebページ展開手段52、座標取得手段54、エレメント選択手段56、エレメント配列手段58、階層キー生成手段60、類似度算出手段62、内容データ取得手段64として機能させるプログラムである。
【0095】
また、図16のハードディスク26には、ブラウザ40が記憶されている。ブラウザ40は、コンピュータ内部において、Webページ(HTML文書)を仮想的に表示領域(例えば、縦2040px×横1200px)に展開する。
【0096】
また、図16のハードディスク26には、エレメント座標DB42が記憶されている。エレメント座標DB42には、ブラウザ40の表示領域におけるエレメントの表示範囲を示す座標(例えば、表示領域上にX、Y座標を設定した場合における各エレメントの左上および右下の座標)が蓄積される。
【0097】
2−3.エレメント抽出処理のフロー
図17は、エレメント抽出プログラム38(図16)による処理を示すフローチャートである。なお、以下の例では、掲示板のページに複数人の書き込みがあった場合に、ユーザーによって書き込まれた内容の単位で、テキストを抽出する場合について説明する。
【0098】
エレメント抽出プログラム38が起動されると、ブラウザ40(図16)は、Webから抽出対象となるHTML文書を取得して、エレメントを表示領域上に配置(すなわち、イメージデータに変換)する(ステップS202)。図18は、イメージデータに変換される前の掲示板のHTMLデータ(ソースコード)(図18A)およびこれをイメージデータに変換して画面上に表示した表示例(図18B)である。
【0099】
さらに、CPU20は、イメージデータ上における各エレメントの表示領域を示す座標(例えば、左上および右下)を取得し、エレメント座標DB42(図17)に記憶する(ステップS204)。図19に、エレメントの座標を算出する方法を示す。例えば、図19において「山田花子」を表示するエレメントEl4の表示範囲を示す左上座標(X4,Y4)は、X 4 = x1 + x2 + x3 + x4、Y 4 = y1 + y2 + y3 + y4で算出される。右下座標は、各エレメントの高さおよび幅を左上座標に加算すれば得られる。なお、図19に示すような画像を実際に画面上に表示しない場合であっても、コンピュータ内部において(すなわち、図16のディスプレイ24に表示せずに)上記処理が行うことは可能である。
【0100】
つぎに、エレメントの選択処理に移行する。まず、CPU20は、エレメントの長さ方向(幅方向)に対して垂直方向(縦方向)の仮想直線を設定する(ステップS206)。図20に示す例では、1本の直線L1を中央に設定している。これは、特にプロフなどにおいては、重要な要素は中央に配置されている可能性が高いためである。
【0101】
さらに、CPU20は、設定した上記直線上に、所定の間隔で点をプロットする(ステップS208)。図20に示す例では、等間隔(例えば、10px〜20px程度)で点をプロットしている。CPU20は、エレメント座標DB42(図17)を参照して、プロットされた点を表示範囲内に含むエレメントを抽出し、順に配列する(ステップS210)。
【0102】
CPU20は、抽出したエレメントの階層構造をタグ単位に分割して、階層キーを抽出する(ステップS212)。例えば、図20の上から3つ目の点P3を例として、階層キーの抽出を説明すると次のとおりである。3つ目の点P3は、図18のHTML文書では、12行目の「友達なろ〜よ」に対応している。この「友達なろ〜よ」を挟んで記述されている一対のタグ(<body>と</body>のように、制御の開始と終了を示すタグをいう)を探し出し、これを階層キーとしている。
【0103】
「友達なろ〜よ」を挟む一対のタグは、2行目の<body>と下から2行目の</body>、7行目の<form>と15行目の</form>、8行目の<table>と14行目の</table>、8行目の<tr>と14行目の</tr>、8行目の<td>と14行目の</td>、9行目の<div>と12行目の</div>である。したがって、body,form,table,tr,td,divが階層キーとして抽出される。図21に、各エレメントの階層構造をタグ単位で分割して生成した階層キーの例を示す。
【0104】
階層キーを抽出した後、隣接する各エレメント間における階層キーの類似度を、図22に示す式(図13bに示す式と同じ)に基づいて算出する(ステップS214)。図22に、類似度算出した結果の例を示す。なお、この実施形態では、式の分母count(Element(wni))を、隣接する階層キーの数のうち、大きい方の数としている。
【0105】
つぎに、CPU20は、図23に示すような、類似値ピラミッドをコンピュータ内部において生成する(ステップS216)。なお、図23に示す類似値ピラミッドを生成するには、隣接する2つの類似度の平均を計算して上位に積み上げて行けばよい。
【0106】
CPU20は、類似値ピラミッドの中から、しきい値以上(例えば、0.7)の類似度を頂点とするピラミッドを探索する(ステップS218)。このとき、ピラミッドの底辺が重ならないように探索する。例えば、図24に点線で示すピラミッドが検出された場合、当該ピラミッドの底辺を含まないように、N1またはN2を底辺とするピラミッドについて探索を行う。なお、探索の方向は、図24において、上位から下位の方向または底辺の左から右の方向もしくは底辺の右から左に行うことができる。なお、類似度ピラミッドの中にしきい値以上の類似度が全く含まれていない場合には、全ての類似度を探索して処理を終了することになる。
【0107】
さらに、探索された各ピラミッドに対して以下の統合処理を実行し、エレメント抽出の対象となる階層構造を特定する(ステップS220)。図25を用いて、階層構造を特定する処理の詳細について説明する。
【0108】
CPU20は、まず、探索された対象ピラミッドの底辺について、包含関係を判定する(ステップS2221)。包含関係にあるか否かは、エレメント座標DB42に記憶されている各エレメントの座標を比較し、またはエレメント間におけるタグの階層構造の関係を参照して判定することができる。なお、図24に点線で示すピラミッドの底辺に含まれる異なる階層構造の「/body/form/table/tr/td」と、「/body/form/table/tr/td/div」とは包含関係にある。
【0109】
エレメントが包含関係にない場合(ステップS2221のNo)は、各エレメントを抽出対象として特定する(ステップS2222)。例えば、図21に示す第1列のエレメント「/body/div」と第2列のエレメント「/body/form/table/tr/td」は包含関係にない。
【0110】
エレメントが包含関係にあると判定した場合(ステップS2221のYes)は、各エレメントに含まれるテキストの文字数の差がしきい値(例えば、当該差が、上位階層のエレメントに含まれるテキスト文字数の0.8)以下のとき(ステップS2223のYes)には、包含するエレメントを抽出対象として特定する(ステップS2224)。すなわち、階層構造がより上位の方(図26に示すdata2に対応する階層構造)を抽出対象として特定する。これにより、下位の階層構造(図26に示すdata1に対応)は、上位の階層構造(図26に示すdata2に対応)に統合されることになる。
【0111】
一方、各エレメント内のテキスト差分がしきい値を超えるとき(ステップS2223のNo)には、包含されるエレメントを抽出対象として特定する(ステップS2225)。すなわち、階層構造がより下位の方を抽出対象として特定する。
【0112】
例えば、図27に示す階層構造「/body/div」(data3に対応)と「/body/form/table/tr/td/div」(data1に対応)が抽出された場合は、テキスト差分がしきい値を超えるので、階層構造がより下位の方(図26のdata1に対応)を抽出対象として特定する。この場合、上位の階層は、主要エレメント自体ではなく、主要エレメントを複数集めた上位エレメントである可能性が高いからである。これにより、上位の階層構造(図27に示すdata3に対応)は、下位の階層構造(図26のdata1に対応)に統合されることになる。
【0113】
以上により、抽出する対象の区分となるタグが特定される。その上で、CPU20は、抽出対象の階層構造がWebページに複数含まれるか否かを判定し、該当する階層構造の内容データを当該WebページのHTML文書から抽出する(ステップS226)。なお、ステップS218において複数のピラミッドが探索された場合には、各ピラミッド内で統合された階層構造が同じであれば、同じものだけを抽出対象とすればよく、階層構造が異なる場合には、それぞれについてデータを抽出すればよい。
【0114】
HTML文書から対応する階層構造の内容データを抽出した上で、さらに、CPU20は、抽出した内容データの属性をAタグなどで判別し(ステップS228)、抽出したデータと共にその属性を記憶する(ステップS230)。
【0115】
図28は、最終的に抽出されたデータ例およびその属性を示す図である。図28に示す例では、図26に示すdata1から抽出された、タグ以外のテキストデータ「山田 太郎」「プロフみたよ!」「友達なろ〜よ」を内容データとして記憶している。なお、タグを含めた図26に示すdata1の全てを、内容データとして記憶してもよい。
【0116】
また、図28に示す例では、図26に示すdata1に含まれるAタグの部分data4から得られるURL「http://pr.cccboy.com/0123456」が、データの属性として関連付けて記憶されている。これにより、URL「http://pr.cccboy.com/0123456」でソートすれば、山田 太郎のトップページURLのデータだけを取得することができる。
【0117】
なお、上記のようなAタグのURLに限らず、自然言語によるマッチングで得られた属性を、エレメントに関連付けて記憶してもよい。自然言語処理によるマッチングとは、例えば、予め属性を決定するための辞書(女性用語辞書など)を用意しておき、マッチングした度合いによりその属性を付するか否かを決定する手法である(参考文献「Webリンク構造解析と自然言語処理による組織関係の抽出についての研究」、情報処理学会論文誌、2006年6月号)。エレメントの属性としては、例えば、エレメントの作成者名、エレメントの作成者、作成日、エレメント作成者の性別、年齢、所属団体の他、エレメントに記載されている話題(特定の商品、サービスなどに関するもの)などが該当する。
【0118】
以上のように、Webページから各タグ(エレメント)の表示位置情報と、記事などの内容データが(i)Webページ内で繰り返し登場する、(ii)Webページの大部分を占める(iii)中央部に存在するといった特性とに基づき,記事部分の可能性の高い領域を特定し、抽出した前後の階層構造(XPATH)の類似度を見ることで記事部分の抽出規則を生成し、そのルールに基づき自動的に記事部分を抽出することができる。
【0119】
2−4.他の実施形態
なお、上記実施形態では、掲示板ページから書き込みデータを抽出する場合を例に説明したが、これに限定されるものではなく、他の要素(ニュース記事など)の抽出に用いてもよい。
【0120】
なお、上記実施形態では、点を配置する仮想線を中央に1本だけ設定したが(図20)、これに限定されるものではなく、複数の仮想線を設定して点を配置してもよい。例えば、図29に示す点の配置例では、5本の直線とし、表示されたWebページに含まれるエレメントのx座標の最大値と最小値の中間位置に第1の直線を設定し、当該第1の直線から等間隔で両側に2本ずつ所定幅だけオフセットした直線をさらに設定している。この場合、図17に示すステップS210において、同一y座標にプロットされた5つの点を最も多く含むエレメントを抽出すればよい。
【0121】
なお、上記実施形態では、仮想線に沿って等間隔で点を配置したが(図20)、これに限定されるものではなく、異なる間隔で点を配置してもよい。
【0122】
なお、上記実施形態では、ステップS216において類似度ピラミッドを事前に生成したが、これに限定されるものではなく、類似度ピラミッドを前もって生成しないで階層構造を探索してもよい。
【0123】
なお、上記実施形態では、ステップS216において類似度ピラミッドを生成したが、類似度ピラミッドを生成しないで階層構造を探索してもよい。例えば、類似度の同じ階層構造が隣接はしていないが、1つ離れて存在するよう場合には間の階層構造を両側の階層構造に統合するといった方法が考えられる。
【0124】
なお、上記実施形態では、抽出するエレメントがテキストである場合について説明したが、抽出するエレメントが、画像、グラフ、動画であってもよい。
【0125】
なお、上記実施形態では、HTML文書の表示を、仮想ブラウザを用いて内部的に実行するとしたが、実際に画面上に表示しながら行ってもよい。
【0126】
3.データ解析への応用例
(i)個人領域として特定し、または分割されたデータから抽出される言葉からSupport Vector Machine (SVM)を用いたサンプリングを行って分離平面を生成し、対象となるユーザーのページで用いられる言葉について当該分離平面との距離を算出することで、対象ユーザーの有害度を算出することができる。
【0127】
「有害度」とは、対象者が、他のユーザーにとってどの程度の悪影響を与える存在であるかを数値化した指標である。以下の(a)事前準備、(b)有害判定、(c)有害度の算出の各段階に分けて説明する。
【0128】
(a)事前準備
まず、ネット上に存在するユーザーの中から典型的な有害者と無害者と考えられる者を選び出す。その上で、複数の有害者について、プロフィール・日記内の頻出単語を抽出する。同様に、複数の無害者について、プロフィール・日記内の頻出単語を抽出する。その上で、これら有害者および無害者を、全ての頻出単語の出現数を軸とする多次元空間(図30Aに示す)上にプロットする。その際、有害人と無害人とを区別してプロットする。この多次元空間上において、SVMの手法を用いて、分離平面が決定される。
【0129】
(b)有害・無害判定
つぎに、対象者のプロフ・日記内に含まれる単語の数を計数し、上記多次元空間上にプロットする。プロットされた対象者(△で示す)が、分離平面のどちら側にあるかで、有害または無害のユーザーを判定することができる。実施形態では、有害側にプロットされた対象者の全てを有害と判断するのではなく、分離平面からの距離がしきい値以上離れている場合のみ有害と判断する。分離平面からの距離がしきい値以内の場合は、無害と取り扱う。
【0130】
(c)有害度の算出
最後に、有害と判断された対象者について、以下の式から有害度を算出する。
【0131】
有害度=「分離平面からの距離」×「非行辞書単語出現数」
ここで、非行辞書とは、非行に関連すると考えられる単語を予め登録しておいた辞書である。対象者のプロフ・日記内の非行単語の数を計数する。
【0132】
(ii)また、対象ユーザーの人間関係が更新された場合、または新たなユーザーが発見された場合に、個人領域として特定し、または分割されたデータについて、危険度を更新すればリアルタイムで個人の追跡を行える。「危険度」とは、対象者が、他のユーザーからの危険にどの程度さらされているかを数値化した指標である。
【0133】
各ユーザーの危険度は、上記有害度などに基づいて算出できる。具体的には、対象者の危険度は、リンク先ユーザーの有害度を親密度で乗算した値を算出し、直接または間接的にリンクされている各ユーザーについてこれを合計して得られる。なお、ユーザー間の親密度は、リンク関係(図30B)または自然言語処理による関係から算出できる。
【0134】
図30Bにおける対象者Aの有害度は、例えば、(Bの有害度×ABの新密度)+(Dの有害度×ADの新密度)で得た値を合計すれば得られる。なお、親密度が低い対象者Cとの関係は考慮していない。
【0135】
(iii)その他にも、検索システムにおける日付やユーザー単位での検索、フィルタリング(有害と判断された記事のみのフィルタリング処理)、口コミ記事の効率的な収集といった分野にも本発明を利用することができる。
【特許請求の範囲】
【請求項1】
Webページのアドレスをグループ化するためのグループ化プログラムであって、
コンピュータを、
特定のアドレスからWebページを取得するWebページ取得手段、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段、
前記第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上であると判断されたリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段、
として機能させることを特徴とするグループ化プログラム。
【請求項2】
請求項1のグループ化プログラムにおいて、
前記類似度算出手段は、
前記第1のアドレスキーと前記第2のアドレスキーとの間で、第1のアドレスキーを構成するキーの1つと一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合し、
第2のアドレスキーを構成するキーの中に対応するキーが存在する場合には、第1および第2のアドレスキーにおいて一致するとして検出されたキーの次のキーから、後方に向けて一致するキーの組み合わせ数を計数し、
第1のアドレスキーを構成するキーの総数に対する前記第2のアドレスキーとの間で対応付けられたキーの組み合わせ数の割合を類似度として算出する、
ことを特徴とするグループ化プログラム。
【請求項3】
請求項1または請求項2のグループ化プログラムにおいて、さらに、
前記特定のアドレスから所定のリンク階層数まで、類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化探索手段であって、
前記グループ化手段により特定のアドレス群として関連付けられた前記アドレスから取得したWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第3のアドレスキーを生成し、前記第1のアドレスキーと前記第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出するグループ化探索手段、
を備えたこと、を特徴とするグループ化プログラム。
【請求項4】
請求項1〜3のいずれかのグループ化プログラムにおいて、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、前記特定のアドレスにおいてユーザーを特定する識別子だけを置き換えたアドレスであると判断されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【請求項5】
請求項1〜4のいずれかのグループ化プログラムにおいて、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、削除対象として登録されたアドレスに一致すると判定されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【請求項6】
請求項1〜5のいずれかのグループ化プログラムにおいて、さらに、
前記特定のアドレスを、サーバにアクセスすることにより所定時間毎に自動的に蓄積するアドレス蓄積手段、
を備えた、ことを特徴とするグループ化プログラム。
【請求項7】
Webページのアドレスをグループ化するためのグループ化装置であって、
特定のアドレスからWebページを取得するWebページ取得手段と、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段と、
前記第1のアドレスキーを生成したリンクに対応するWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段と、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段と、
を備えたこと、を特徴とするグループ化装置。
【請求項8】
コンピュータにより、Webページのアドレスをグループ化するためのグループ化方法であって、前記コンピュータが、
特定のアドレスからWebページを取得し、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成し、
前記第1のアドレスキーを生成したリンクに対応するWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成し、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出し、
前記類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けること、
を特徴とするグループ化方法。
【請求項9】
Webページから所定のエレメントを抽出するためのエレメント抽出プログラムであって、
コンピュータを、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とするエレメント抽出プログラム。
【請求項10】
請求項9のエレメント抽出プログラムにおいて、
コンピュータを、さらに、
隣接するエレメントの前記階層構造の類似度の平均を上位方向に算出して類似度ピラミッドを生成し、前記類似度がしきい値以上であるか否かを検出し、検出された類似度の底辺に含まれるエレメントの階層構造のうち、所定のルールに合致する階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とするエレメント抽出プログラム。
【請求項11】
請求項9または請求項10のエレメント抽出プログラムにおいて、
前記内容データ取得手段は、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントが包含関係にあるかを判断し、
隣接するエレメントが包含関係にない場合には、各階層構造について対応する内容データを取得する、
ことを特徴とするエレメント抽出プログラム。
【請求項12】
請求項9〜11のいずれかのエレメント抽出プログラムにおいて、
前記エレメント抽出手段は、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントの階層構造が包含関係にあるかを判断し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値以下の場合に、包含される下位の階層構造を削除して、包含する上位の階層構造に対応する内容データを取得し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値を超える場合に、包含する上位の階層構造を削除して、包含される下位の階層構造に対応する内容データを取得する、
ことを特徴とするエレメント抽出プログラム。
【請求項13】
請求項9〜12のいずれかのエレメント抽出プログラムにおいて、
前記エレメント選択手段が、前記表示領域上において、所定方向に等間隔で複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する、
ことを特徴とするエレメント抽出プログラム。
【請求項14】
請求項9〜13のいずれかのエレメント抽出プログラムにおいて、
前記エレメント選択手段が、前記表示領域上において、前記所定方向に垂直の直線上に複数の点を配置し、同一直線上に配置した点を最も多く表示範囲に含むエレメントを選択する、
ことを特徴とするエレメント抽出プログラム。
【請求項15】
請求項9〜14のいずれかのエレメント抽出プログラムにおいて、
前記エレメント抽出手段が、エレメントに含まれるAタグのURLまたは自然言語でマッチングして得た属性を、エレメントに関連付けて記憶した、
ことを特徴とするエレメント抽出プログラム。
【請求項16】
Webページから所定のエレメントを抽出するためのエレメント抽出装置であって、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
を備えたこと、を特徴とするエレメント抽出装置。
【請求項17】
コンピュータにより、Webページから所定のエレメントを抽出するためのエレメント抽出方法であって、前記コンピュータが、
Webページを表示領域に展開し、
各エレメントの表示範囲を特定する座標を取得し、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択し、
選択した前記エレメントの階層構造を順に配列し、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成し、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出し、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得すること、
を特徴とするエレメント抽出方法。
【請求項1】
Webページのアドレスをグループ化するためのグループ化プログラムであって、
コンピュータを、
特定のアドレスからWebページを取得するWebページ取得手段、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段、
前記第1のアドレスキーを生成したリンクから取得されるWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上であると判断されたリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段、
として機能させることを特徴とするグループ化プログラム。
【請求項2】
請求項1のグループ化プログラムにおいて、
前記類似度算出手段は、
前記第1のアドレスキーと前記第2のアドレスキーとの間で、第1のアドレスキーを構成するキーの1つと一致するキーが第2のアドレスキーを構成するキーの中に存在するか否かを前方から照合し、
第2のアドレスキーを構成するキーの中に対応するキーが存在する場合には、第1および第2のアドレスキーにおいて一致するとして検出されたキーの次のキーから、後方に向けて一致するキーの組み合わせ数を計数し、
第1のアドレスキーを構成するキーの総数に対する前記第2のアドレスキーとの間で対応付けられたキーの組み合わせ数の割合を類似度として算出する、
ことを特徴とするグループ化プログラム。
【請求項3】
請求項1または請求項2のグループ化プログラムにおいて、さらに、
前記特定のアドレスから所定のリンク階層数まで、類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化探索手段であって、
前記グループ化手段により特定のアドレス群として関連付けられた前記アドレスから取得したWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第3のアドレスキーを生成し、前記第1のアドレスキーと前記第3のアドレスキーとの間で、一致するアドレスキーの数を計数し、その結果に基づいて類似度を算出するグループ化探索手段、
を備えたこと、を特徴とするグループ化プログラム。
【請求項4】
請求項1〜3のいずれかのグループ化プログラムにおいて、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、前記特定のアドレスにおいてユーザーを特定する識別子だけを置き換えたアドレスであると判断されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【請求項5】
請求項1〜4のいずれかのグループ化プログラムにおいて、
前記第1のアドレスキー生成手段または前記第2のアドレスキー生成手段が、少なくとも第1のアドレスキーまたは第2のアドレスキーを生成する前に、削除対象として登録されたアドレスに一致すると判定されたアドレスを削除する、
ことを特徴とするグループ化プログラム。
【請求項6】
請求項1〜5のいずれかのグループ化プログラムにおいて、さらに、
前記特定のアドレスを、サーバにアクセスすることにより所定時間毎に自動的に蓄積するアドレス蓄積手段、
を備えた、ことを特徴とするグループ化プログラム。
【請求項7】
Webページのアドレスをグループ化するためのグループ化装置であって、
特定のアドレスからWebページを取得するWebページ取得手段と、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成する第1のアドレスキー生成手段と、
前記第1のアドレスキーを生成したリンクに対応するWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成する第2のアドレスキー生成手段と、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けるグループ化手段と、
を備えたこと、を特徴とするグループ化装置。
【請求項8】
コンピュータにより、Webページのアドレスをグループ化するためのグループ化方法であって、前記コンピュータが、
特定のアドレスからWebページを取得し、
前記Webページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第1のアドレスキーを生成し、
前記第1のアドレスキーを生成したリンクに対応するWebページからリンクを抽出し、抽出した各リンクのアドレスを区切り文字で分割して第2のアドレスキーを生成し、
前記第1のアドレスキーと前記第2のアドレスキーとの間で一致するキーを照合し、当該一致するキーの出現順序が同じである組み合わせ数を計数し、その結果に基づいて類似度を算出し、
前記類似度がしきい値以上のリンクのアドレスを、特定のアドレス群として関連付けること、
を特徴とするグループ化方法。
【請求項9】
Webページから所定のエレメントを抽出するためのエレメント抽出プログラムであって、
コンピュータを、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とするエレメント抽出プログラム。
【請求項10】
請求項9のエレメント抽出プログラムにおいて、
コンピュータを、さらに、
隣接するエレメントの前記階層構造の類似度の平均を上位方向に算出して類似度ピラミッドを生成し、前記類似度がしきい値以上であるか否かを検出し、検出された類似度の底辺に含まれるエレメントの階層構造のうち、所定のルールに合致する階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
として機能させることを特徴とするエレメント抽出プログラム。
【請求項11】
請求項9または請求項10のエレメント抽出プログラムにおいて、
前記内容データ取得手段は、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントが包含関係にあるかを判断し、
隣接するエレメントが包含関係にない場合には、各階層構造について対応する内容データを取得する、
ことを特徴とするエレメント抽出プログラム。
【請求項12】
請求項9〜11のいずれかのエレメント抽出プログラムにおいて、
前記エレメント抽出手段は、
類似度ピラミッドの底辺に含まれるエレメントのうち、隣接するエレメントの階層構造が包含関係にあるかを判断し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値以下の場合に、包含される下位の階層構造を削除して、包含する上位の階層構造に対応する内容データを取得し、
隣接するエレメントが包含関係にある場合には、テキスト差分がしきい値を超える場合に、包含する上位の階層構造を削除して、包含される下位の階層構造に対応する内容データを取得する、
ことを特徴とするエレメント抽出プログラム。
【請求項13】
請求項9〜12のいずれかのエレメント抽出プログラムにおいて、
前記エレメント選択手段が、前記表示領域上において、所定方向に等間隔で複数の点を配置し、配置した点を表示範囲に含むエレメントを選択する、
ことを特徴とするエレメント抽出プログラム。
【請求項14】
請求項9〜13のいずれかのエレメント抽出プログラムにおいて、
前記エレメント選択手段が、前記表示領域上において、前記所定方向に垂直の直線上に複数の点を配置し、同一直線上に配置した点を最も多く表示範囲に含むエレメントを選択する、
ことを特徴とするエレメント抽出プログラム。
【請求項15】
請求項9〜14のいずれかのエレメント抽出プログラムにおいて、
前記エレメント抽出手段が、エレメントに含まれるAタグのURLまたは自然言語でマッチングして得た属性を、エレメントに関連付けて記憶した、
ことを特徴とするエレメント抽出プログラム。
【請求項16】
Webページから所定のエレメントを抽出するためのエレメント抽出装置であって、
Webページを表示領域に展開するWebページ展開手段、
各エレメントの表示範囲を特定する座標を取得する座標取得手段、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択するエレメント選択手段、
選択した前記エレメントの階層構造を順に配列するエレメント配列手段、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成する階層キー生成手段、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出する類似度算出手段、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得する内容データ取得手段、
を備えたこと、を特徴とするエレメント抽出装置。
【請求項17】
コンピュータにより、Webページから所定のエレメントを抽出するためのエレメント抽出方法であって、前記コンピュータが、
Webページを表示領域に展開し、
各エレメントの表示範囲を特定する座標を取得し、
前記表示領域上に、エレメントの配置方向に複数の点を配置し、当該配置した点を表示範囲に含むエレメントを選択し、
選択した前記エレメントの階層構造を順に配列し、
前記エレメントの各階層構造をタグ単位で分割して階層キーを生成し、
隣接するエレメントの間で、一致する階層キーの数を計数し、その結果に基づいて類似度を算出し、
前記類似度に基づいて、2以上の隣接するエレメントの階層構造を特定し、当該階層構造に対応する内容データをWebページから取得すること、
を特徴とするエレメント抽出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13a】
【図13b】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13a】
【図13b】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【公開番号】特開2012−168892(P2012−168892A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−31228(P2011−31228)
【出願日】平成23年2月16日(2011.2.16)
【出願人】(500063228)
【出願人】(502235692)
【出願人】(501069555)株式会社関西総合情報研究所 (6)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月16日(2011.2.16)
【出願人】(500063228)
【出願人】(502235692)
【出願人】(501069555)株式会社関西総合情報研究所 (6)
【Fターム(参考)】
[ Back to top ]