以下に添付図面を参照して、この情報提供方法、情報提供装置、情報提供プログラム、および該プログラムをコンピュータに記録した記録媒体の好適な実施の形態を詳細に説明する。
(検索システムのシステム構成)
まず、本実施の形態にかかる検索システム100のシステム構成について説明する。図1は、検索システムのシステム構成図である。図1において、検索システム100は、インターネット、LAN、WANなどのネットワーク110を介して通信可能な情報提供装置101と、データベースサーバ102と、クライアント端末103−1〜103−nと、から構成される。
情報提供装置101は、ネットワーク110上に公開されているページ群の中から、クライアント端末103−1〜103−nから受け付けた検索クエリに適合するページを検索する機能を有するコンピュータ装置である。具体的には、クライアント端末103−1〜103−nから受け付けた検索クエリをデータベースサーバ102に送信することで、その検索クエリに適合するページを検索する。
ここで、ページとは、例えば、インターネット上に公開されているウェブサイトであってもよく、また、LANなどの限定されたネットワーク110上にあるフォルダ内のファイル群であってもよい。ウェブサイトの具体例としては、作成者(著者)を特定可能なウェブログ(以下、「ブログ」という)がある。より詳細に説明すると、ページは、テキストデータやHTMLによるレイアウト情報、文書中に埋め込まれた画像、音声および動画などから構成される電子情報である。
また、ページには、少なくとも一つ以上の掲載情報が含まれている。ここで、掲載情報とは、例えば、ウェブサイトを構成する個々のウェブページであってもよく、また、上述したフォルダ内の個々のファイルであってもよい。具体的には、ページがブログであった場合、更新される都度、新たに登録される1回分の情報(エントリ)を掲載情報としてもよい。また、一画面に表示される内容から分割されたフレーム単位の情報を掲載情報としてもよい。
また、情報提供装置101は、検索されたページごとに検索クエリに対する適合度を算出する。さらに、各ページの適合度に基づいて検索結果をあらわすページ情報を生成し、そのページ情報をクライアント端末103−1〜103−nに提示する。この情報提供装置101は、例えば、情報検索サービスの検索エンジンに適用される。
データベースサーバ102は、不図示のページDB(データベース)を備え、ネットワーク110上のページ群を管理する機能を有するコンピュータ装置である。データベースサーバ102は、情報提供装置101から受信した検索クエリに適合するページをページDBの中から検索し、その検索結果を情報提供装置101に送信する。
クライアント端末103−1〜103−nは、ユーザが操作することで入力された検索クエリを情報提供装置101に送信する機能を有するコンピュータ装置である。また、クライアント端末103−1〜103−nは、検索クエリを送信した結果、その検索クエリに適合する検索結果を情報提供装置101から受信し、その検索結果を表示画面に表示する。
(コンピュータ装置のハードウェア構成)
つぎに、図1に示した情報提供装置101、データベースサーバ102およびクライアント端末103−1〜103−n(ここでは、単に「コンピュータ装置」という)のハードウェア構成について説明する。図2は、コンピュータ装置のハードウェア構成を示す説明図である。
図2において、コンピュータ装置は、コンピュータ本体210と、入力装置220と、出力装置230と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク110に接続可能である。
コンピュータ本体210は、CPU,メモリ,インターフェースを有する。CPUは、コンピュータ装置の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク211,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク211はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク211およびフラッシュメモリはコンピュータ本体210に対し着脱自在である。インターフェースは、入力装置220からの入力、出力装置230への出力、ネットワーク110に対する送受信の制御をおこなう。
また、入力装置220としては、キーボード221、マウス222、スキャナ223などがある。キーボード221は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス222は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ223は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体210内のメモリに格納される。なお、スキャナ223にOCR機能を持たせてもよい。
また、出力装置230としては、ディスプレイ231、スピーカ232、プリンタ233などがある。ディスプレイ231は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ232は、効果音や読み上げ音などの音声を出力する。また、プリンタ233は、画像データや文書データを印刷する。
(本実施の形態の概要)
つぎに、本実施の形態の概要について説明する。図3は、本実施の形態の概要を示す説明図である。図3において、まず、クライアント端末103−1〜103−n(以下、単に「クライアント端末103」と表記する)により、ユーザがキーボード221やマウス222などの入力装置220を操作することで入力された検索クエリを情報提供装置101に送信する。
このあと、情報提供装置101により、クライアント端末103から受け付けた検索クエリに適合するページを検索する。この結果、図4に示す検索結果テーブル400、図5に示す記事リンクテーブル500および図6に示すブログリンクテーブル600が作成される。本実施の形態では、ページとして、少なくとも一つ以上の記事(掲載情報)が掲載されたブログを例に挙げて説明する。
つぎに、検索結果テーブル400および記事リンクテーブル500を用いて、各ブログに掲載されている記事の言語解析を記事ごとに実行する。具体的には、例えば、各記事に対して、形態素解析や係り受け解析などの言語解析を実行する。この結果、図7に示す解析結果テーブル700が作成される。
そして、解析結果テーブル700を用いて、各記事を掲載内容に応じた複数のクラスタにクラスタリングする。この結果、図10に示す記事クラスタテーブル1000および図11に示すブログクラスタテーブル1100が作成される。
このあと、ブログリンクテーブル600、記事クラスタテーブル1000およびブログクラスタテーブル1100を用いて、ネットワークモデル1200(図12参照)を作成する。この結果、図13に示すネットワークテーブル1300が作成される。
つぎに、ネットワークテーブル1300を用いて、ネットワークモデル1200内の各ノードのスコアを算出する。この結果、図14に示すスコアテーブル1400が作成される。そして、スコアテーブル1400を用いて検索結果のランキングをおこなう。
最後に、ランキングに従ってブログ群に関するHTML情報を生成し、そのHTML情報を検索結果としてクライアント端末103に提示する。この結果、クライアント端末103のディスプレイ231に検索結果が表示される。
本実施の形態では、他のページとのリンク関係の有無にかかわらず、検索クエリに適合するページ(ブログ)に掲載されている記事の掲載内容を考慮したスコアリングをおこなう。この結果、他のページとのリンク関係が少ない、あるいは、リンク関係を有していないページについても適合度を適切に評価することができ、ランキングの最適化を図ることができる。
(検索結果テーブルの記憶内容)
つぎに、情報提供装置101に用いられる検索結果テーブルについて説明する。この検索結果テーブルは、検索システム100に検索クエリを与えることで得られる検索結果をテーブル化したものである。具体的には、ブログと、そのブログに掲載されている記事とを関連付けてあらわすテーブル表である。
図4は、検索結果テーブルの記憶内容を示す説明図である。図4において、検索結果テーブル400には、検索クエリに適合するブログに掲載されている記事ごとに、ブログIDおよび記事IDが記憶されている。ブログIDは、ブログを識別する識別子である。記事IDは、記事を識別する識別子である。ここで、ブログB55を例に挙げると、ブログB55には記事P85,P71が掲載されている。
これらブログIDおよび記事IDは、例えば、ブログおよび記事が存在するネットワーク110上の場所を示すURL(Uniform Resource Locator)によって表現される。なお、検索結果テーブル400は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
(記事リンクテーブルの記憶内容)
つぎに、情報提供装置101に用いられる記事リンクテーブルについて説明する。この記事リンクテーブルは、記事内に埋め込まれているハイパーリンクを検出することで得られるリンク関係をテーブル化したものである。具体的には、リンク元(from)の記事とリンク先(to)の記事とを関連付けてあらわすテーブル表である。
図5は、記事リンクテーブルの記憶内容を示す説明図である。図5において、記事リンクテーブル500には、記事内に埋め込まれているハイパーリンクの個数が記事ごとに記憶されている。具体的には、記事ごとに、その記事(from)から他の記事(to)にリンクするハイパーリンクの個数が記憶されている。
ここで、記事P53を例に挙げると、記事P53内には記事P85へリンクするハイパーリンクが2個埋め込まれている。なお、記事リンクテーブル500は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
(ブログリンクテーブルの記憶内容)
つぎに、情報提供装置101に用いられるブログリンクテーブルについて説明する。このブログリンクテーブルは、図4に示した検索結果テーブル400と、図5に示した記事リンクテーブル500と、を用いて得られるブログ間の相関関係をあらわすテーブル表である。
図6は、ブログリンクテーブルの記憶内容を示す説明図である。図6において、ブログリンクテーブル600には、ブログごとに、そのブログとリンク関係を有する他のブログとの相関関係をあらわす数値が記憶されている。この数値は、一方のブログから他方のブログに遷移する遷移確率(詳細は後述)に相当する。
ここで、ブログB25を例に挙げると、ブログB23およびブログB55とリンク関係を有しており、相関関係をあらわす数値はそれぞれ「0.5」である。また、この数値は、ブログリンクテーブル600の行の合計が「1」となるように正規化されている。なお、ブログリンクテーブル600は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
(解析結果テーブルの記憶内容)
つぎに、情報提供装置101に用いられる解析結果テーブルについて説明する。この解析結果テーブルは、各記事に対して言語解析(例えば、形態素解析、係り受け解析)を実行することで得られた解析結果をテーブル化したものである。
図7は、解析結果テーブルの記憶内容を示す説明図である。図7において、解析結果テーブル700には、記事ごとに、記事IDおよび解析結果が記憶されている。ここで、記事P53を例に挙げると、解析結果R1は、記事P53に対して実行された言語解析の解析結果である。解析結果の具体例については図9を用いて後述する。なお、解析結果テーブル700は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
(情報提供装置の機能的構成)
つぎに、情報提供装置101の機能的構成について説明する。図8は、情報提供装置の機能的構成を示すブロック図である。図8において、情報提供装置101は、受付部801と、検索部802と、抽出部803と、分類部804と、算出部805と、作成部806と、提示部807と、決定部808と、選択部809と、を備えている。
これら各機能801〜809は、情報提供装置101の記憶部に記憶された当該機能801〜809に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能801〜809からの出力データは上記記憶部に保持される。また、図8中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、受付部801は、検索クエリの入力を受け付ける機能を有する。検索クエリとは、例えば、検索システム100(図1参照)に対する問い合わせをあらわす文字列である。具体的には、例えば、受付部801は、クライアント端末103(図1参照)から送信される検索クエリの入力を受け付ける。
検索部802は、ネットワーク110上に公開されているページ群の中から、受付部801によって受け付けた検索クエリに適合するページを検索する機能を有する。ページとは、例えば、インターネット上に公開されているブログなどのウェブサイトである。具体的には、例えば、受付部801によって受け付けた検索クエリをデータベースサーバ102に送信することで、検索クエリに適合する検索結果を得ることができる。
抽出部803は、検索部802によって検索された少なくとも一つ以上の掲載情報を含むページの集合の中から選ばれた当該ページに掲載されている掲載情報を抽出する機能を有する。ここで、掲載情報とは、ページを構成する記事、画像、音声、動画などである。より具体的には、例えば、ウェブサイトを構成する個々のウェブページである。本実施の形態では、掲載情報として記事(例えば、ブログが更新される都度、新しく登録される一回分の情報)を例に挙げて説明する。
具体的には、例えば、抽出部803は、図4に示した検索結果テーブル400の中から、各ブログに掲載されている記事を抽出する。なお、抽出部803は、検索されたすべてのページに掲載されている掲載情報を抽出することとしてもよく、また、検索されたページ(例えば、100個のブログ)のうち、任意のページ(例えば、ランダムに選択された50個のブログ)に掲載されている掲載情報を抽出することとしてもよい。
分類部804は、抽出部803によって抽出された掲載情報(記事)を掲載内容に応じた複数のクラスタに分類する機能を有する。具体的には、例えば、抽出部803によって抽出された記事に出現する各単語の出現頻度と単語間の類似度とに基づいて、記事を複数のクラスタに分類することとしてもよい。
より具体的には、例えば、抽出部803によって抽出された各記事に対して、形態素解析(形態素への分割と品詞の付与)および係り受け解析(形態素から文節のまとめ上げと、文節間の係り受け関係の同定)を実行することで得られる解析結果を用いてクラスタリングをおこなう。
ここで、言語解析の解析結果について説明する。図9は、解析結果の一例を示す説明図である。図9において、解析結果900には、『すべての文書に対して、次のクラスタリングを行なうための言語解析を行なう・・・』という記事に対する言語解析の解析結果が示されている。具体的には、解析結果900は、解析対象の記事から分割された文節(単語)ごとに、文節ID、修飾先の文節IDおよび品詞に関する情報を有している。
例えば、符号901は、『すべて』を識別する文節IDである。符号902は、文節『すべて』の修飾先の文節『の』の文節IDである。このように、記事ごとの言語解析をおこなうことにより、記事を該記事内の各文を構成する最小の意味単位である形態素に分割し、さらに、文中の各文節がどの文節に係る(どの文節を修飾する)のかが定まる。
以下、図7に示した解析結果テーブル700を例に挙げて、分類部804による分類処理(クラスタリング)の具体的処理手順について説明する。分類部804は、まず、解析結果テーブル700を参照して、各記事P53,P85,P40,P71中に出現する単語の出現数をそれぞれ計数する。そして、単語ベクトルを用いてコサイン距離を求めることで、記事間の類似度を算出する。
つぎに、予め設定されているクラスタ数に応じてクラスタを作成し、各クラスタの単語ベクトルを作成する。具体的には、クラスタに入っている文書の単語ベクトルを足し合わせることで、各クラスタの単語ベクトルを作成する。上記クラスタ数は、例えば、図2に示したキーボード221やマウス222などの入力装置220をユーザが操作することで、任意に設定可能である。
このあと、クラスタの単語ベクトルと記事の単語ベクトルとのコサイン距離を求める。そして、求めたコサイン距離を各記事のクラスタに対する所属確率とする。なお、抽出部803によって抽出された掲載情報の言語解析は、情報提供装置101において実行することとしたがこれに限らない。例えば、外部のコンピュータ装置を利用して掲載情報の言語解析を実行し、その実行結果を言語解析の解析結果として取得することとしてもよい。
ここで、分類部804によって複数のクラスタに分類された分類結果をあらわす記事クラスタテーブルの具体例について説明する。図10は、記事クラスタテーブルの記憶内容を示す説明図である。図10において、記事クラスタテーブル1000には、記事ごとに、記事IDとクラスタIDとを関連づけて、各クラスタC1〜C4に所属する所属確率が記憶されている。クラスタIDは、クラスタを識別する識別子である。
所属確率とは、各記事のクラスタC1〜C4に対する相関の強さをあらわす数値である。ここで、記事P53を例に挙げると、クラスタC1への所属確率は「0.1」、クラスタC2への所属確率は「0.5」、クラスタC3への所属確率は「0.2」、クラスタC4への所属確率は「0.0」である。なお、記事クラスタテーブル1000は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
図8の説明に戻り、算出部805は、検索部802によって検索されたページと分類部804によって分類されたクラスタとの相関関係に基づいて、検索クエリに対するページの適合度をページごとに算出する機能を有する。具体的には、後述する作成部806によって作成されるページ(例えば、ブログ)とクラスタとをノードとして有向グラフ化されたネットワークモデルを用いて、各ページの適合度を算出することができる。
作成部806は、ページとクラスタとをノードとして有向グラフ化されたネットワークモデルを作成する機能を有する。具体的には、例えば、作成部806は、まず、図10に示した記事クラスタテーブル1000を用いて、ブログ(ページ)のクラスタに対する所属確率をあらわすブログクラスタテーブルを作成する。
より具体的には、ブログごとに、ブログに掲載されているすべての記事のクラスタに対する所属確率を加算し、その加算結果をブログのクラスタに対する所属確率とする。ここで、ブログB55のクラスタC2に対する所属確率を例に挙げると、記事クラスタテーブル1000を参照して、記事P85のクラスタC2に対する所属確率「0.8」と、記事P71のクラスタC2に対する所属確率「0.4」とを加算した所属確率「1.2」となる。
ここで、作成部806によって作成されたブログクラスタテーブルの具体例について説明する。図11は、ブログクラスタテーブルの記憶内容を示す説明図である。図11において、ブログクラスタテーブル1100には、ブログごとに、ブログIDとクラスタIDとを関連付けて、各クラスタC1〜C4に遷移する遷移確率が記憶されている。
ここで、ブログB23を例に挙げると、クラスタC1への遷移確率は「0.1」、クラスタC2への遷移確率は「0.5」、クラスタC3への遷移確率は「0.2」、クラスタC4への遷移確率は「0.0」である。なお、ブログクラスタテーブル1100は、図2で説明したROM,RAM,HDなどの記憶部によりその機能を実現する。
このあと、作成部806は、このブログクラスタテーブル1100と、図6に示したブログリンクテーブル600とを用いて、ブログB23,B55,B25とクラスタC1〜C4とをノードとして有向グラフ化されたネットワークモデルを作成する。
図12は、ネットワークモデルの一例を示す有向グラフである。図12において、ネットワークモデル1200は、ブログB23,B25,B55とクラスタC1〜C4とがノード化された有向グラフである。また、ノード間をつなぐエッジには、各ノード間の遷移確率が付与されている。なお、図面では、ノード間の遷移確率の一部を抜粋して表示している。
ネットワークモデル1200において、実線で示す両向矢印は、ブログをあらわすノードとクラスタをあらわすノードとの間の遷移をあらわしている。この両向矢印には、ブログをあらわすノードからクラスタをあらわすノードへの遷移確率(図12中、下線)と、クラスタをあらわすノードからブログをあらわすノードへの遷移確率(図12中、二重下線)とが付与されている。
さらに、この両向矢印には、ブログクラスタテーブル1100に管理されたブログがクラスタに所属する所属確率(図12中、山括弧)が付与されている。また、ネットワークモデル1200において、点線で示す矢印は、ブログをあらわすノード間の遷移をあらわしている。この矢印には、ブログリンクテーブル600に管理されたブログをあらわすノード間の遷移確率が付与されている。
ブログをあらわすノードとクラスタをあらわすノードとの間の遷移確率は、ブログに掲載されている記事のクラスタに対する所属確率を用いて求めることができる。より具体的には、例えば、ブログBiからクラスタCjへ遷移する遷移確率X(Bi−Cj)は、下記式(1)を用いて求めることができる。ただし、BiはブログID、CjはクラスタID、kは自然数、nはクラスタ数(ここではn=4)である。
ここで、ブログB23をあらわすノードからクラスタC1をあらわすノードへ遷移する遷移確率X(B23)を例に挙げると、『X(B23−C1)=(0.1/0.8)』となる。これは、ブログクラスタテーブル1100に管理されたブログB23のクラスタC1への所属確率「0.1」を、ブログB23の各クラスタC1〜C4への所属確率を足し合わせた所属確率「0.1+0.5+0.2+0.0=0.8」で除算した値である。
また、クラスタCjをあらわすノードからウェブBiをあらわすノードへ遷移する遷移確率X(Cj−Bi)は、下記式(2)を用いて求めることができる。ただし、mはブログ数(ここではm=3)である。
ここで、クラスタC1をあらわすノードからウェブB23をあらわすノードへ遷移する遷移確率X(C1−B23)を例に挙げると、『X(C1−B23)=(0.1/0.3)』となる。これは、ブログクラスタテーブル1100に管理されたブログB23のクラスタC1への所属確率「0.1」を、各ブログB23,B55,B25のクラスタC1への所属確率を足し合わせた所属確率「0.1+0.2+0.0=0.3」で除算した値である。
図12に示したネットワークモデル1200は、以下に説明するネットワークテーブルとして記憶部に保持される。図13は、ネットワークテーブルの記憶内容を示す説明図である。図13において、ネットワークテーブル1300には、クラスタIDとブログIDとを関連付けて、ネットワークモデル1200(図12参照)内の各ノード間の遷移確率が記憶されている。
ここで、クラスタをあらわすノード間の遷移確率はすべて「0」となっている。つまり、クラスタをあらわすノード間では遷移しない。また、ブログをあらわすノードとクラスタをあらわすノードとの間の遷移確率は、上記式(1)または(2)を用いて求めた遷移確率である。また、ブログをあらわすノード間の遷移確率は、ブログリンクテーブル600を参照したものであり、行の合計が「1」となるように正規化されている。
算出部805は、例えば、ネットワークテーブル1300の記憶内容に基づいて、ブログの適合度をブログごとに算出する。具体的には、ネットワークモデル1200内のノード間をつなぐエッジに付与されている遷移確率を用いて、ランダムウォーク手法による各ノードのスコアリングをおこなうことで、各ブログの適合度を算出することができる。
ランダムウォークとは、「つぎに現れるものの確率」が不規則に決定される運動のことである。ここでは、ランダムウォークの概念を各ノードのスコアリングに適用する。ここで、ランダム手法により各ノードのスコアリングをおこなう処理概要について説明する。
まず、ランダムウォークが終了する終了確率Pt(例えば、「0.2」)を予め設定する。そして、ノード間の遷移確率X()と終了確率Ptとを用いて、ネットワークモデル1200内のノード群の中から1個のノードを任意に選択してからノード間の遷移が終了するまでの間に、各ノードに遷移した遷移回数をノードごとに計数する。
そして、1個のノードを任意に選択してからノード間の遷移が終了するまでの一連の処理を予め規定された規定回数N(例えば、「10000」)繰り返す。最終的に、規定回数N繰り返した結果、各ノードに遷移した遷移回数を検索クエリに対する各ノードの適合度とする。なお、上述の終了確率Ptおよび規定回数Nは、ユーザが入力装置220を操作することで任意に設定可能である。
ここでは、ブログとクラスタとをノードとして有向グラフ化することにより、ブログとクラスタとの相関関係をあらわす遷移確率が付与された仮想的なネットワーク(ネットワークモデル1200)を形成することができる。この結果、各ノードのスコアリングにランダムウォーク手法を適用することができる。
ランダムウォーク手法によるスコアリングでは、ノードに遷移する遷移回数が多ければ多いほど高スコアとなる。これは、遷移回数が多ければ多いノードほど、ランダムウォーク中にそのノードに訪れる可能性(期待値)が高くなるという関係に基づいている。ここでは、この関係を利用して、遷移回数が多いノードがあらわすクラスタまたはブログほど、検索者によって閲覧される可能性が高いクラスタまたはブログとして扱うことで(実際に閲覧されるのはページのみ)、検索クエリに対する適合度を高くする。
ここで、算出部805によって算出された各ノードの適合度(スコア)をあらわすスコアテーブルの具体例について説明する。図14は、スコアテーブルの記憶内容を示す説明図である。図14において、スコアテーブル1400には、ネットワークモデル1200内のノードごとに、検索クエリに対する適合度をあらわすスコアが記憶されている。
ここで、クラスタC1をあらわすノードを例に挙げると、検索クエリに対する適合度は「2523」である。また、ブログB23をあらわすノードを例に挙げると、検索クエリに対する適合度は「524」である。
提示部807は、算出部805によって算出された算出結果に基づいて、ページ群に関するページ情報を提示する機能を有する。具体的には、算出部805によって算出された算出結果に基づいてページ群に関するページ情報を生成し、そのページ情報をクライアント端末103(検索クエリの送信元)に送信する。
より具体的には、例えば、図14に示したスコアテーブル1400を参照して、検索クエリに対する適合度が高い順にブログB23,B55,B25を並び替えたインデックス(索引情報)を検索結果として生成することとしてもよい。
このとき、クラスタC1〜C4に相当するウェブサイトは存在していないため、ブログB23,B55,B25のみを考慮したインデックスを生成することとなる。つまり、スコアテーブル1400のうち、クラスタC1〜C4の適合度を除くブログB23,B55,B25の適合度から検索クエリに対する有効性を評価して、ブログB23,B55,B25を並び替える。
決定部808は、分類部804によって複数のクラスタに分類された掲載情報に出現する単語の出現頻度に基づいて、クラスタを特徴付ける単語(トピック)をクラスタごとに決定する機能を有する。具体的には、クラスタごとに、分類された掲載情報(記事)に出現する出現頻度が高い単語をクラスタの特徴をあらわすトピックに決定する。
また、決定部808は、掲載情報に出現する単語の出現回数を、ページ群に掲載されているすべての掲載情報に出現する上記単語の出現回数で除算した値に基づいて、クラスタを特徴付ける単語を決定することとしてもよい。これによれば、掲載内容にかかわらず出現頻度が高くなる傾向にある助詞(例えば、「を」)や記号(例えば、「。」)などの単語を除く他の単語の中から、クラスタを特徴付ける単語を決定することができる。
また、決定部808は、掲載情報に出現する特定の品詞の単語の出現頻度に基づいて、クラスタを特徴付ける単語を決定することとしてもよい。これによれば、クラスタを特徴付ける単語を、名詞や動詞などの特定の品詞に限定することができる。
ここで、クラスタごとに、掲載情報に出現する単語の出現頻度をあらわす特徴語テーブルの具体例について説明する。図15は、特徴語テーブルの記憶内容を示す説明図である。図15において、特徴語テーブル1500には、クラスタC1〜C4ごとに、各クラスタに分類された記事に出現する単語の出現頻度をあらわす数値が記憶されている。
具体的には、単語の出現回数を、ブログ群(B23,B25,B55)に掲載されているすべての記事(P53,P85,P40,P71)に出現する上記単語の出現回数で除算した値が記憶されている。例えば、決定部808は、特徴語テーブル1500を参照して、クラスタC1を特徴付ける単語を「音質」として決定する。
図8の説明に戻り、提示部807は、決定部808によって決定された決定結果を検索クエリに関するトピックとして提示する機能を有する。具体的には、例えば、検索クエリに適合するページに関するページ情報とともにトピックを提示することとしてもよい。
このとき、例えば、各ページと、そのページが所属する所属確率が最大のクラスタを特徴付けるトピックとを関連付けて提示することとしてもよい。具体的には、例えば、ブログB23に関するページ情報を提示する場合、ブログクラスタテーブル1100を参照して、所属確率が最大のクラスタC2を特徴付ける単語をトピックとして提示することとなる。また、スコアテーブル1400を参照して、検索クエリに対する適合度が高い順にクラスタC1〜C4のトピックを並び替えて提示することとしてもよい。
ここで、提示部807によってページ情報が提示された結果、クライアント端末103のディスプレイ231に表示される画面例について説明する。図16は、ディスプレイに表示される画面例を示す説明図(その1)である。図16において、ディスプレイ231には、検索クエリ「FJpod」を与えることで得られた検索結果1600が表示されている。
具体的には、検索クエリ「FJpod」に対する適合度が高い順にページタイトルが表示されている。また、各ページタイトルには、そのページタイトルに応じたクラスタを特徴付けるトピックが関連付けて表示されている。ここで、カーソルCを移動させて任意のタイトルをクリックすると、そのタイトルのWebページがディスプレイ231に表示される。
また、他の画面例として、検索結果をトピックごとに分類して提示することとしてもよい。図17は、ディスプレイに表示される画面例を示す説明図(その2)である。図17において、ディスプレイ231には、検索クエリ「FJpod」を与えることで得られた検索結果1700が表示されている。
具体的には、検索クエリ「FJpod」に関するトピックごとにページタイトルが表示されている。ここで、カーソルCを移動させて『拡張』のトピックをクリックすると、『拡張』の出現頻度が高い記事を掲載しているウェブサイトのページタイトルが表示されることとなる。
選択部809は、提示部807によって提示された複数のトピックの中から任意のトピックの選択を受け付ける機能を有する。具体的には、クライアント端末103のディスプレイ231に複数のトピックが表示された結果、ユーザの操作入力によって選択されたトピックを受け付ける。
この場合、ランダムウォーク手法による適合度の算出処理において、ランダムウォークを開始する最初のノードを任意に選択するのではなく、選択部809によって選択されたトピックによって特徴付けられるクラスタをあらわすノードを選択することとしてもよい。この場合、算出部805は、選択部809によって選択されたトピックによって特徴付けられるクラスタをあらわすノードを選択してからノード間の遷移が終了するまでの間に、各ノードに遷移した遷移回数を計数することにより、ページの適合度を算出することとなる。これにより、選択されたトピックに関する掲載情報(記事)が掲載されているページ(ブログ)のスコアを高くすることができる。
ここで、クライアント端末103における検索手順について説明する。図18は、クライアント端末における検索手順の一例を示す説明図である。図18において、まず、ユーザが検索クエリ「FJpod」を与えると、ディスプレイ231に検索結果1810が表示される。具体的には、検索結果1810には、検索クエリ「FJpod」に関する複数のトピック(デザイン、音質、アクセサリ、販売店)が表示されている。
つぎに、検索結果1810において、カーソルCを移動させて、任意のボタンB1〜B4をクリックすることで、任意のトピックを選択する。ここでは、ボタンB1,B2をクリックしたとする。このあと、キーボード221のエンターボタンを押下すると、検索結果1820がディスプレイ231に表示される。
具体的には、検索結果1820には、『デザイン』および『音質』に関する記事が掲載されているページ(ブログ)の適合度が高くなるようにして得られたページ情報が表示されている。このように、検索クエリに関する複数のトピックの中から任意のトピックを選択させることにより、検索者の意志がより反映された検索結果を提示することができる。
なお、上記受付部801および検索部802の機能は、外部のコンピュータ装置によりその機能を実現することとしてもよい。この場合、抽出部803は、外部のコンピュータ装置から取得したページ群の中から当該ページに掲載されている掲載情報を抽出することとなる。
(情報提供装置の各種処理手順)
つぎに、本実施の形態にかかる情報提供装置101において実行される各種処理手順について説明する。
(ブログリンクテーブルの作成処理手順)
まず、図6に示したブログリンクテーブル600を作成する作成処理手順について説明する。ブログリンクテーブル600は、ブログB23,B55,B40間の相関関係をあらわすテーブル表である。ここでは、作成部806により、図4に示した検索結果テーブル400と、図5に示した記事リンクテーブル500とを用いて、ブログリンクテーブル600を作成する。
図19は、ブログリンクテーブルを作成する作成処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、ブログIDを行と列とに持つブログリンクテーブルを作成して、各セルを「0」で初期化する(ステップS1901)。
このあと、ブログリンクテーブルの中から、遷移確率を格納すべき任意のセルを選択し(ステップS1902)、選択されたセル(以下、「選択セル」という)について遷移元(from)のブログIDと遷移先(to)のブログIDとが同じか否かを判断する(ステップS1903)。
ここで、遷移元(from)と遷移先(to)とが違うと判断された場合(ステップS1903:No)、記事間の相関関係をあらわす記事リンクテーブル500の中から、該当する記事IDの値を読み出して選択セルに加算する(ステップS1904)。具体的には、検索結果テーブル400を参照して選択セルのブログに掲載されている記事を特定し、記事リンクテーブル500の中から特定された記事の値を読み出して加算する。
また、ステップS1903において、遷移元(from)と遷移先(to)とが同じと判断された場合には(ステップS1903:Yes)、ステップS1905に移行する。
つぎに、ブログリンクテーブルの中から選択されていない未選択のセルがあるか否かを判断し(ステップS1905)、未選択のセルがある場合(ステップS1905:Yes)、ステップS1902に戻り、ブログリンクテーブルの中から未選択のセルを選択して一連の処理を繰り返す。
一方、未選択のセルがない場合には(ステップS1905:No)、ブログリンクテーブルの中から任意の行を選択して(ステップS1906)、各セルの値の合計が「1」となるように正規化する(ステップS1907)。これにより、ブログリンクテーブルの各セルの値を平準化することができる。
つぎに、ブログリンクテーブルの中から選択されていない未選択の行があるか否かを判断し(ステップS1908)、未選択の行がある場合(ステップS1908:Yes)、ステップS1906に戻り、ブログリンクテーブルの中から未選択の行を選択して一連の処理を繰り返す。
一方、未選択の行がない場合には(ステップS1908:No)、ブログリンクテーブル600を記憶部に出力(保存)して(ステップS1909)、本フローチャートによる一連の処理を終了する。
これにより、ブログ間の相関関係をあらわすブログリンクテーブル600を作成することができる。また、ブログリンクテーブル600内の行ごとに各セルの値を正規化することにより、各セルの値をブログリンクテーブル600全体で平準化することができる。
(ブログクラスタテーブルの作成処理手順)
つぎに、図11に示したブログクラスタテーブル1100を作成する作成処理手順について説明する。ブログクラスタテーブル1100は、ブログB23,B55,B25とクラスタC1〜C4との相関関係をあらわすテーブル表である。ここでは、作成部806により、図4に示した検索結果テーブル400と、図10に示した記事クラスタテーブル1000とを用いてブログクラスタテーブル1100を作成する。
図20は、ブログクラスタテーブルを作成する作成処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、ブログIDを列に、クラスタIDを行に持つブログクラスタテーブルを作成して、各セルを「0」で初期化する(ステップS2001)。
このあと、検索結果テーブル400の中から、ブログIDおよび記事IDを格納する任意の行を選択して(ステップS2002)、記事クラスタテーブル1000の中から選択された行(以下、「選択行」という)の記事IDの値を読み出す(ステップS2003)。
そして、ブログクラスタテーブルの選択行のブログIDに該当する行に読み出した値を加算する(ステップS2004)。具体的には、選択行の記事IDから特定される記事の各クラスタへの所属確率を、選択行のブログIDから特定されるブログの各クラスタへの遷移確率として加算する。つまり、記事とクラスタとの相関関係を用いて、ブログとクラスタとの相関関係をあらわす。
つぎに、検索結果テーブル400の中から選択されていない未選択の行があるか否かを判断し(ステップS2005)、未選択の行がある場合(ステップS2005:Yes)、ステップS2002に戻り、検索結果テーブル400の中から未選択の行を選択して一連の処理を繰り返す。
一方、未選択の行がない場合には(ステップS2005:No)、ブログクラスタテーブルを記憶部に出力(保存)して(ステップS2006)、本フローチャートによる一連の処理を終了する。これにより、ブログとクラスタとの相関関係をあらわすブログクラスタテーブル1100を作成することができる。
(ネットワークテーブルの作成処理手順)
つぎに、図13に示したネットワークテーブル1300を作成する作成処理手順について説明する。ネットワークテーブル1300は、ブログB23,B55,B25とクラスタC1〜C4との相関関係を有向グラフ化(図12に示したネットワークモデル1200)してあらわすテーブル表である。ここでは、作成部806により、図6に示したブログリンクテーブル600と、図11に示したブログクラスタテーブル1100とを用いて、ネットワークテーブル1300を作成する。
図21は、ネットワークテーブルを作成する作成処理手順の一例を示すフローチャートである。図21のフローチャートにおいて、まず、クラスタIDおよびブログIDを行と列とに持つネットワークテーブルを作成して、遷移確率を格納すべき各セルを「0」で初期化する(ステップS2101)。
このあと、ネットワークテーブルの中から、遷移確率を格納すべき任意のセルを選択して(ステップS2102)、選択されたセル(以下、「選択セル」という)について遷移元(from)のブログIDまたはクラスタIDと、遷移先(to)のブログIDまたはクラスタIDとが同じか否かを判断する(ステップS2103)。ここで、遷移元(from)と遷移先(to)とが同じと判断された場合(ステップS2103:Yes)、ステップS2113に移行する。
一方、遷移元(from)と遷移先(to)とが違うと判断された場合(ステップS2103:No)、選択セルについて両方クラスタIDか否かを判断する(ステップS2104)。ここで、両方クラスタIDと判断された場合(ステップS2104:Yes)、ステップS2113に移行する。
一方、両方クラスタIDと判断されなかった場合には(ステップS2104:No)、選択セルについて両方ブログIDか否かを判断する(ステップS2105)。ここで、両方ブログIDと判断された場合(ステップS2105:Yes)、ブログリンクテーブル600の中から該当するブログIDの値を読み出して(ステップS2106)、その値を選択セルに書き込んで(ステップS2107)、ステップS2113に移行する。
一方、両方ブログIDと判断されなかった場合には(ステップS2105:No)、選択セルについてクラスタIDからブログIDか否かを判断する(ステップS2108)。ここで、クラスタIDからブログIDと判断された場合(ステップS2108:Yes)、上記式(2)を用いて、クラスタCjからブログBiへ遷移する遷移確率X(Cj−Bi)を算出する(ステップS2109)。そして、その遷移確率X(Cj−Bi)を選択セルに書き込んで(ステップS2110)、ステップS2113に移行する。
一方、クラスタIDからブログIDと判断されなかった場合(ステップS2108:No)、上記式(1)を用いて、ブログBiからクラスタCjへ遷移する遷移確率X(Bi−Cj)を算出する(ステップS2111)。そして、その遷移確率X(Bi−Cj)を選択セルに書き込む(ステップS2112)。
このように、ブログとクラスタとの間の遷移確率を、ブログに掲載されている記事のクラスタに対する所属確率を用いて求めることで、ネットワークモデル1200におけるブログをあらわすノードとクラスタをあらわすノードとの間のリンク関係を形成することができる。
つぎに、ネットワークテーブルの中から選択されていない未選択のセルがあるか否かを判断する(ステップS2113)。ここで、未選択のセルがある場合(ステップS2113:Yes)、ステップS2102に戻って、ネットワークテーブルの中から未選択のセルを選択して一連の処理を繰り返す。
一方、未選択のセルがない場合(ステップS2113:No)、ネットワークテーブルを記憶部に出力(保存)して(ステップS2115)、本フローチャートによる一連の処理を終了する。これにより、ネットワークモデル1200内のノード間の相関関係をあらわすネットワークテーブル1300を作成することができる。
(適合度の算出処理手順)
つぎに、検索クエリに対するブログの適合度を算出する算出処理手順について説明する。ここでは、算出部805により、図12に示したネットワークモデル1200(図13に示したネットワークテーブル1300)にランダムウォーク手法を適用することで、各ブログの適合度を算出する。ただし、ランダムウォークの規定回数をN、試行回数をn、終了確率をPtとする。
図22は、ブログの適合度を算出する算出処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、クラスタCjからをウェブBiへ遷移する遷移確率X(Cj−Bi)を「0」で初期化する(ステップS2201)。
ノードをあらわすクラスタIDとブログIDとを列に持つスコアテーブルを作成して、スコアを格納すべき各セルを「0」で初期化し(ステップS2201)、さらに、試行回数nを「0」で初期化する(ステップS2202)。
このあと、試行回数nに「1」をインクリメントして(ステップS2203)、ネットワークテーブル1300のfrom列の中から1つのノードをランダムに選択して(ステップS2204)、スコアテーブルの選択されたノード(以下、「選択ノード」という)のセルに「1」をインクリメントする(ステップS2205)。
そして、選択ノード列の各要素に終了確率Ptを加えた要素群から、1つの要素をランダムに選択する(ステップS2206)。このあと、ランダムウォークの終了が選択されたか否かを判断し(ステップS2207)、終了が選択されなかった場合(ステップS2207:No)、選択された要素に該当するノードを選択して(ステップS2208)、ステップS2205に戻る。
すなわち、遷移終了が選択されるまで、ネットワークモデル1200内のランダムウォークを継続し、各ノードに辿り着く都度、そのノードのスコア(適合度)となる遷移回数を計数する。
一方、ランダムウォークの終了が選択された場合(ステップS2207:Yes)、試行回数n≧規定回数Nか否かを判断する(ステップS2209)。ここで、試行回数n<規定回数Nの場合(ステップS2209:No)、ステップS2203に戻って一連の処理を繰り返す。
一方、試行回数n≧規定回数Nの場合(ステップS2209:Yes)、スコアテーブルを記憶部に出力(保存)して(ステップS2210)、本フローチャートによる一連の処理を終了する。
これにより、検索クエリに対する各ブログの適合度を、当該ブログをあらわすノードに遷移した遷移回数によってあらわすスコアテーブル1400を作成することができる。これによれば、スコア(適合度)の高いトピックに関する記事を掲載しているブログほど高いスコアとなり、また、スコアの高いブログに掲載されている記事内に含まれているトピックは高いスコアとなる。
(特徴語テーブルの作成処理手順)
つぎに、図15に示した特徴語テーブル1500を作成する作成処理手順について説明する。特徴語テーブル1500は、各クラスタC1〜C4に分類された記事に出現する単語の出現頻度をリスト化したテーブル表である。ここでは、作成部806により、図7に示した解析結果テーブル700と、図10に示した記事クラスタテーブル1000とを用いて、特徴語テーブル1500を作成する。
図23は、特徴語テーブルを作成する作成処理手順の一例を示すフローチャートである。図23において、まず、クラスタIDを列に、単語(ブログ群に出現する全単語)を行に持つ特徴語テーブルを作成して数値を格納すべき各セルを「0」で初期化する(ステップS2301)。このあと、記事クラスタテーブル1000の中から任意のクラスタを選択する(ステップS2302)。
つぎに、選択されたクラスタ(以下、「選択クラスタ」という)の列から任意の記事を選択する(ステップS2303)。そして、解析結果テーブル700を参照して、選択された記事(以下、「選択記事」という)の解析結果の中から任意の単語を選択する(ステップS2304)。このあと、特徴語テーブルの該当するセル(列:選択クラスタ、行:選択された単語)に選択記事の所属確率を加算する(ステップS2305)。
つぎに、選択記事の解析結果の中から選択されていない未選択の単語があるか否かを判断し(ステップS2306)、未選択の単語がある場合(ステップS2306:Yes)、ステップS2304に戻り、解析結果の中から未選択の単語を選択して一連の処理を繰り返す。
一方、未選択の単語がない場合には(ステップS2306:No)、選択クラスタの列から選択されていない未選択の記事があるか否かを判断する(ステップS2307)。ここで、未選択の記事がある場合(ステップS2307:Yes)、ステップS2303に戻り、選択クラスタの列から未選択の記事を選択して一連の処理を繰り返す。
一方、未選択の記事がない場合には(ステップS2307:No)、記事クラスタテーブル1000の中から選択されていない未選択のクラスタがあるか否かを判断する(ステップS2308)。ここで、未選択のクラスタがある場合(ステップS2308:Yes)、ステップS2302に戻り、記事クラスタテーブル1000の中から未選択のクラスタを選択して一連の処理を繰り返す。
一方、未選択のクラスタがない場合には(ステップS2308:No)、特徴語テーブルの各セルの値を重み付けする重み付け処理を実行し(ステップS2309)、最後に、特徴語テーブルを記憶部に出力(保存)して(ステップS2310)、本フローチャートによる一連の処理を終了する。これにより、各クラスタC1〜C4に分類された記事に出現する単語の出現頻度をリスト化してあらわす特徴語テーブル1500を作成することができる。
つぎに、図23のステップS2309の重み付け処理の具体的処理手順について説明する。この重み付け処理は、すべての記事に共通して多く出現する単語の値を平準化することで、特定の記事に多く出現する単語の値に重み付けするものである。図24は、重み付け処理の具体的処理手順の一例を示すフローチャートである。
図24のフローチャートにおいて、まず、解析結果テーブル700の記憶内容に基づいて、すべての単語の出現回数を単語ごとに計数する(ステップS2401)。このあと、特徴語テーブルの中から任意の単語を選択する(ステップS2402)。
そして、選択された単語列の各セルの値をステップS2401において計数された該単語の出現回数で除算する(ステップS2403)。つぎに、特徴語テーブルの中から選択されていない未選択の単語があるか否かを判断する(ステップS2404)。
ここで、未選択の単語がある場合(ステップS2404:Yes)、ステップS2402に戻り、特徴語テーブルの中から未選択の単語を選択して一連の処理を繰り返す。一方、未選択の単語がない場合には(ステップS2404:No)、図23に示したステップS2310に移行する。
これにより、記事の掲載内容にかかわらず出現頻度が高くなる助詞や記号などの単語に該当するセルの値が小さくなるため、結果的に、特定の記事に多く出現する単語に該当するセルの値に重み付けすることができる。
(検索結果の提示処理手順)
図25は、検索結果の提示処理手順の一例を示すフローチャートである。ただし、検索結果として提示するブログの規定件数をKとする。図25のフローチャートにおいて、まず、ブログ件数をあらわすkを「0」で初期化する(ステップS2501)。このあと、スコアテーブル1400を参照して最高スコアのブログIDを特定し(ステップS2502)、ブログ件数kに「1」をインクリメントする(ステップS2503)。
つぎに、検索結果テーブル400の中から、特定されたブログIDと、該ブログIDと関連付けられている記事IDとを抽出する(ステップS2504)。また、ブログクラスタテーブル1100を参照して、特定されたブログID行の中から所属確率が最大のクラスタIDを特定する(ステップS2505)。このあと、特徴語テーブル1500を参照して、特定されたクラスタID行の中から値が最大の単語を抽出する(ステップS2506)。
つぎに、ブログ件数k≧規定件数K、または、スコアテーブル1400内の全ブログIDを特定したか否かを判断する(ステップS2507)。ここで、ブログ件数k<規定件数Kと判断された場合(ステップS2507:No)、ステップS2502に戻り、未特定でかつ最高スコアのブログIDを特定して一連の処理を繰り返す。
一方、ブログ件数k≧規定件数K、または、スコアテーブル1400内の全ブログIDを特定したと判断された場合(ステップS2507:Yes)、ステップS2504およびステップS2506において抽出されたブログID、記事IDおよび単語を用いてページ情報を生成する(ステップS2508)。
最後に、生成されたページ情報をクライアント端末103に提示して(ステップS2509)、本フローチャートによる一連の処理を終了する。これによれば、ブログの掲載内容を考慮した適切なスコアリングをおこなうことで最適化されたランキングに基づく検索結果を検索者に提示することができる。
以上説明したように、本実施の形態によれば、各ページ(ブログ)の掲載内容(ブログに掲載されている記事の掲載内容)に基づくページとクラスタ(トピック)との相関関係を用いて、各ページのスコアリングをおこなうことができる。これにより、例えば、他のブログとのリンク関係が少ない、または、リンク関係を有していないブログについても適切なスコアリングをおこなうことができる。この結果、『重要なトピックを扱ったブログは重要』、『重要なブログに扱われているトピックは重要』という関係が成り立ち、ブログの掲載内容を考慮したランキングがおこなわれることとなる。
また、ランダムウォーク手法による各ノードのスコアリングをおこなう際に、正規化されたページ間(ブログ間)の遷移確率を用いることで、リンク関係による影響を低減させることができる。これにより、例えば、他のブログと多くのリンク関係を有するブログが、掲載内容にかかわらず上位にランク付けされてしまう不具合を防ぐことができる。
また、検索者に検索クエリに関する複数のトピックの中から任意のトピックを選択させることにより、特定のトピックに関する掲載情報が掲載されているページのスコアを高くすることができる。この結果、例えば、検索者が興味のあるトピックに関する記事が掲載されているブログが上位にランク付けされやすくなり、検索者の意志がより反映された検索結果を提示することができる。
以上のことから、この情報提供方法、情報提供装置、情報提供プログラム、および該プログラムをコンピュータに記録した記録媒体によれば、ページの掲載内容を考慮した適切なスコアリングをおこなうことにより、検索結果のランキングを最適化し、検索システム100におけるユーザの検索活動の効率化を図ることができる。
なお、本実施の形態で説明した情報提供方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)検索クエリを与えることで得られた少なくとも一つ以上の掲載情報を含むページの集合の中から選ばれた当該ページに掲載されている掲載情報を抽出する抽出工程と、
前記抽出工程によって抽出された掲載情報を掲載内容に応じて複数のクラスタに分類する分類工程と、
前記ページと前記分類工程によって分類されたクラスタとの相関関係に基づいて、前記検索クエリに対する前記ページの適合度を前記ページごとに算出する算出工程と、
前記算出工程によって算出された算出結果に基づいて、前記ページ群に関するページ情報を提示する提示工程と、
を含んだことを特徴とする情報提供方法。
(付記2)前記ページと前記クラスタとをノードとして有向グラフ化されたネットワークモデルを作成する作成工程を含み、
前記算出工程は、
前記作成工程によって作成されたネットワークモデル内の前記ページをあらわすノードと前記クラスタをあらわすノードとの間を遷移する遷移確率に基づいて、前記ページの適合度を算出することを特徴とする付記1に記載の情報提供方法。
(付記3)前記算出工程は、
さらに、前記ネットワークモデル内の前記ページをあらわすノード間を遷移する遷移確率に基づいて、前記ページの適合度を算出することを特徴とする付記2に記載の情報提供方法。
(付記4)前記ページをあらわすノード間を遷移する遷移確率は正規化されていることを特徴とする付記3に記載の情報提供方法。
(付記5)前記算出工程は、
前記ノード間を遷移する遷移確率と前記ノード間の遷移を終了する終了確率とを用いて、前記ノード群の中から1個のノードを任意に選択してから前記ノード間の遷移が終了するまでの間に、前記ノードに遷移した遷移回数を前記ノードごとに計数することにより、前記ページの適合度を算出することを特徴とする付記2〜4のいずれか一つに記載の情報提供方法。
(付記6)前記分類工程は、
前記掲載情報に出現する単語の出現頻度と前記単語間の類似度とに基づいて、前記掲載情報を複数のクラスタに分類することを特徴とする付記1〜5のいずれか一つに記載の情報提供方法。
(付記7)前記クラスタに分類された掲載情報に出現する単語の出現頻度に基づいて、前記クラスタを特徴付ける単語を前記クラスタごとに決定する決定工程を含み、
前記提示工程は、
さらに、前記決定工程によって決定された決定結果を前記検索クエリに関するトピックとして提示することを特徴とする付記6に記載の情報提供方法。
(付記8)前記決定工程は、
前記掲載情報に出現する単語の出現回数を、前記ページ群に掲載されているすべての掲載情報に出現する前記単語の出現回数で除算した値に基づいて、前記クラスタを特徴付ける単語を決定することを特徴とする付記7に記載の情報提供方法。
(付記9)前記決定工程は、
前記掲載情報に出現する特定の品詞の単語の出現頻度に基づいて、前記クラスタを特徴付ける単語を決定することを特徴とする付記7または8に記載の情報提供方法。
(付記10)前記決定工程によって決定された決定結果を前記トピックとして提示するトピック提示工程と、
前記トピック提示工程によって提示された複数のトピックの中から任意のトピックの選択を受け付ける選択工程と、を含み、
前記算出工程は、
前記選択工程によって選択されたトピックによって特徴付けられるクラスタをあらわすノードを選択してから前記ノード間の遷移が終了するまでの間に、前記各ノードに遷移した遷移回数を計数することにより、前記ページの適合度を算出することを特徴とする付記7〜9のいずれか一つに記載の情報提供方法。
(付記11)前記ページ群には、当該ページ群に含まれる他のページとリンク関係を有していないページが少なくとも1つ以上含まれていることを特徴とする付記1〜10のいずれか一つに記載の情報提供方法。
(付記12)検索クエリを与えることで得られた少なくとも一つ以上の掲載情報を含むページの集合の中から選ばれた当該ページに掲載されている掲載情報を抽出する抽出手段と、
前記抽出手段によって抽出された掲載情報を掲載内容に応じて複数のクラスタに分類する分類手段と、
前記ページと前記分類手段によって分類されたクラスタとの相関関係に基づいて、前記検索クエリに対する前記ページの適合度を前記ページごとに算出する算出手段と、
前記算出手段によって算出された算出結果に基づいて、前記ページ群に関するページ情報を提示する提示手段と、
を備えることを特徴とする情報提供装置。
(付記13)コンピュータを、
検索クエリを与えることで得られた少なくとも一つ以上の掲載情報を含むページの集合の中から選ばれた当該ページに掲載されている掲載情報を抽出する抽出手段、
前記抽出手段によって抽出された掲載情報を掲載内容に応じて複数のクラスタに分類する分類手段、
前記ページと前記分類手段によって分類されたクラスタとの相関関係に基づいて、前記検索クエリに対する前記ページの適合度を前記ページごとに算出する算出手段、
前記算出手段によって算出された算出結果に基づいて、前記ページ群に関するページ情報を提示する提示手段、
として機能させることを特徴とする情報提供プログラム。
(付記14)付記12に記載の情報提供プログラムを記録したコンピュータに読み取り可能な記録媒体。