(57)【要約】【課題】ユーザの要求に応えた検索を行うのに相応しいキーワードを簡単な操作で指定して検索できるようにする。【解決手段】検索支援サーバ３０において、関連語抽出部３２は、キーワードの頻度情報と共起情報を生成し、グラフ生成部３５は、共起情報に基づいてキーワードをノードとするバネグラフの座標情報を生成し、クラスタ生成部３７は、ノードをクラスタ化してクラスタ定義情報を生成し、表示情報生成部３９は、バネグラフの表示情報を生成する。また、操作判別部４２は、バネグラフの操作を判別し、レベルの変更が指示されると、表示情報生成部３９が、変更後レベルのバネグラフの表示情報を生成し、ノードの変更が指示されると、クラスタ再生成部４３が、クラスタ定義情報と頻度情報を変更し、検索クエリの生成が指示されると、検索クエリ生成部４４が、選択されたクラスタのキーワードで検索クエリを生成する。【選択図】図２
2010009251.tif 000002
【特許請求の範囲】
【請求項１】
キーワードに基づく文書データの検索を支援する装置であって、
検索対象の文書データから複数のキーワードを抽出する抽出部と、
前記抽出部により抽出された前記複数のキーワードの各々を表す複数のオブジェクトを含み、当該複数のオブジェクトが複数のクラスタに分類されたグラフを生成するグラフ生成部と、
前記グラフ生成部により生成された前記グラフにおける前記複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、当該特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成する検索条件文生成部と
を備えた、装置。
【請求項２】
前記グラフ生成部は、前記複数のオブジェクトが、当該複数のオブジェクトのうちの２つのオブジェクト間の距離が当該２つのオブジェクトが表す２つのキーワードの共起度に応じたものとなるような位置に配置され、当該位置の情報に基づいて前記複数のクラスタに分類された前記グラフを生成する、請求項１の装置。
【請求項３】
前記抽出部は、前記検索対象の文書データに出現するキーワードのうち、特定のレベルの頻度で出現するキーワードを、当該特定のレベルに対応する前記複数のキーワードとして抽出し、
前記グラフ生成部は、前記特定のレベルを指定するユーザ操作に応じて、当該特定のレベルに対応する前記複数のキーワードの各々を表す複数のオブジェクトを含み、当該複数のオブジェクトが複数のクラスタに分類された前記グラフを生成する、請求項１の装置。
【請求項４】
前記グラフ生成部は、前記グラフに含まれる特定のオブジェクトに対するユーザ操作に応じて、当該特定のオブジェクトに関する変更を当該グラフに加える、請求項１の装置。
【請求項５】
前記特定のオブジェクトに関する変更は、第１のクラスタに属する当該特定のオブジェクトを第２のクラスタに属するようにする変更である、請求項４の装置。
【請求項６】
前記特定のオブジェクトに関する変更は、当該特定のオブジェクト及び当該特定のオブジェクト以外の他のオブジェクトをマージして、当該特定のオブジェクトが表すキーワード及び当該他のオブジェクトが表すキーワードを表す１つのオブジェクトとする変更である、請求項４の装置。
【請求項７】
前記特定のオブジェクトに関する変更は、当該特定のオブジェクトを削除する変更である、請求項４の装置。
【請求項８】
前記検索条件文生成部は、前記特定のクラスタに属するオブジェクトが表すキーワードを、ＡＮＤ条件及びＯＲ条件のうち当該キーワードの出現頻度に応じて予め決められた条件として含む前記検索条件文を生成する、請求項１の装置。
【請求項９】
前記検索条件文生成部は、前記特定のクラスタ以外のクラスタに属するオブジェクトが表すキーワードをＮＯＴ条件として含む前記検索条件文を生成する、請求項８の装置。
【請求項１０】
キーワードに基づく文書データの検索を支援する装置であって、
検索対象の文書データから複数のキーワードを抽出する抽出部と、
前記抽出部により抽出された前記複数のキーワードの各々を表す複数のオブジェクトを含むグラフであって、当該複数のオブジェクトが、当該複数のオブジェクトのうちの２つのオブジェクト間の距離が当該２つのオブジェクトが表す２つのキーワードの共起度に応じたものとなるような位置に配置され、当該位置の情報に基づいて複数のクラスタに分類されたグラフを生成するグラフ生成部と、
前記グラフ生成部により生成された前記グラフにおける前記複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、当該特定のクラスタに属するオブジェクトが表すキーワードをＡＮＤ条件及びＯＲ条件の何れかの条件として含み、かつ、当該特定のクラスタ以外のクラスタに属するオブジェクトが表すキーワードをＮＯＴ条件として含む検索条件文を生成する検索条件文生成部とを備えた、装置。
【請求項１１】
キーワードに基づく文書データの検索を支援する方法であって、
検索対象の文書データから複数のキーワードを抽出するステップと、
抽出された前記複数のキーワードの各々を表す複数のオブジェクトを含み、当該複数のオブジェクトが複数のクラスタに分類されたグラフを生成するステップと、
生成された前記グラフにおける前記複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、当該特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成するステップと
を含む、方法。
【請求項１２】
キーワードに基づく文書データの検索を支援する方法であって、
検索対象の文書データから複数のキーワードを抽出するステップと、
抽出された前記複数のキーワードの各々を表す複数のオブジェクトを含み、当該複数のオブジェクトが複数のクラスタに分類されたグラフを生成するステップと、
生成された前記グラフに含まれる特定のオブジェクトに対するユーザ操作に応じて、当該特定のオブジェクトに関する変更を当該グラフに加えるステップと、
変更後の前記グラフにおける前記複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、当該特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成するステップと
を含む、方法。
【請求項１３】
キーワードに基づく文書データの検索を支援する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
検索対象の文書データから複数のキーワードを抽出する抽出部と、
前記抽出部により抽出された前記複数のキーワードの各々を表す複数のオブジェクトを含み、当該複数のオブジェクトが複数のクラスタに分類されたグラフを生成するグラフ生成部と、
前記グラフ生成部により生成された前記グラフにおける前記複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、当該特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成する検索条件文生成部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書データの検索を支援する装置及び方法に関する。特に、本発明は、キーワードに基づく文書データの検索を支援する装置及び方法に関する。
【背景技術】
【０００２】
例えば、インターネットから所望の情報を検索する場合、検索エンジンを用いることが主流となっている。しかし、ＷＷＷ（World Wide Web）が肥大化するに伴い、検索結果として表示されるウェブページも膨大なものとなるため、ユーザが本当に欲する情報が上位に表示されるとは限らない。
ユーザは、検索エンジンに入力として与えるべき検索語に関し、様々な観点から検討を行う必要がある。例えば、その検索語が本当に妥当なものであるか、欲しい情報に絞り込むために適切な検索語は何か、検索語の個数は幾つ程度が適切であるか、等である。このように、一般ユーザにとって、どのような検索語を検索エンジンに与えて検索すればよいかの判断は難しい。
【０００３】
そこで、従来から、検索語を組み合わせた検索クエリを自動的に生成する技術が提案されている（例えば、非特許文献１、２参照）。非特許文献１では、大量の検索結果に対してクラスタリングを行い、そこでユーザが適合と評価したクラスタをチェックする度に漸次的にクエリを修正している。非特許文献２では、オントロジー情報等を利用して検索経路の情報を生成してユーザに提示し、ユーザが検索経路を選択することでクエリ拡張を行っている。
【０００４】
また、その他の検索支援に関する技術としては、情報の所在及び分類情報を分類木を用いて管理し、この分類木の構造と情報源を検索するための検索項目、検索条件を含む情報をクラス定義として管理し、情報の分類木に格納されているエントリを辿ることにより複数の情報源に対する検索を行う技術（例えば、特許文献１参照）や、新しい検索条件で元の検索結果集合の何％がヒットするか等を自動的に表示する技術（例えば、非特許文献３参照）がある。また、検索結果に付与される特徴的な情報を使って、検索結果に含まれるウェブコンテンツを視覚的に配置し、ウェブ特有のリンク関係を表示する技術（例えば、非特許文献４参照）や、検索語候補をノードとし、検索語候補同士の共起関係をエッジとしたバネグラフを表示する技術（例えば、非特許文献５参照）もある。
【０００５】
【特許文献１】特開２０００−２５０９３５号公報
【非特許文献１】江口浩二、外２名、“検索結果のクラスタリングに基づくユーザへの適応性を考慮した漸次的なクエリの拡張”、情報処理学会研究報告、９８−ＤＢＳ−１１４、Ｖｏｌ．９８、Ｎｏ．２、社団法人情報処理学会、平成１０年１月１９日、ｐ．４３ー４８
【非特許文献２】美馬秀樹、外１名、“子供のためのウェブ情報検索支援システムの開発”、［online］、平成１６年２月１４日、独立行政法人情報処理推進機構、［平成２０年４月１０日検索］、インターネット＜URL：http://www.ipa.go.jp/SPC/report/03fy-pro/mito/15-1198d.pdf＞
【非特許文献３】早川和宏、外２名、“ＷＷＷ検索サービスにおける検索結果絞り込み用インタフェースの開発”、情報処理学会研究報告、９８−ＨＩ−７６、９８−ＩＭ−３３、Ｖｏｌ．９８、Ｎｏ．９、社団法人情報処理学会、平成１０年１月２９日、ｐ．２５ー３０
【非特許文献４】小林亜樹、“Ｗｅｂリンク空間における検索のためのユーザーインターフェース”、［online］、平成１５年、電気通信普及財団、［平成２０年４月１０日検索］、インターネット＜URL：http://www.taf.or.jp/publication/kjosei_20/pdf/p453.pdf＞
【非特許文献５】長畑洋臣、外１名、“複数の可視化手法を用いた検索語想起支援、［online］、平成２０年３月１０日、社団法人電子情報通信学会、［平成２０年４月１０日検索］、インターネット＜URL：http://www.ieice.org/~de/DEWS/DEWS2008/proceedings/files/b5/b5-5.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、検索支援に関する技術には、従来から種々のものがあった。
しかしながら、非特許文献１の技術では、文書クラスタに対してユーザが適合を評価することによりクエリを修正しているに過ぎず、ユーザの要求に応えた検索を行うのに相応しいキーワードを指定することによりクエリを修正しているわけではない。また、非特許文献２の技術は、オントロジー情報等を用いて生成された検索経路に基づいてクエリ拡張を行うものであって、ユーザの要求に応えた検索を行うのに相応しいキーワードを含む検索経路に基づいてクエリ拡張を行うものではない。従って、何れの技術においても、ユーザの要求に応えた検索を行うのに相応しいキーワードを指定して検索を行うことはできないという問題点がある。
同様に、特許文献１、非特許文献３〜５の技術も、ユーザの要求に応えた検索を行うのに相応しいキーワードを指定して検索を行うための手段を提供するものではない。
【０００７】
本発明の目的は、ユーザの要求に応えた検索を行うのに相応しいキーワードを簡単な操作で指定して検索できるようにすることにある。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、キーワードに基づく文書データの検索を支援する装置であって、検索対象の文書データから複数のキーワードを抽出する抽出部と、抽出部により抽出された複数のキーワードの各々を表す複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成するグラフ生成部と、グラフ生成部により生成されたグラフにおける複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成する検索条件文生成部とを備えた、装置を提供する。
【０００９】
ここで、グラフ生成部は、複数のオブジェクトが、複数のオブジェクトのうちの２つのオブジェクト間の距離が２つのオブジェクトが表す２つのキーワードの共起度に応じたものとなるような位置に配置され、位置の情報に基づいて複数のクラスタに分類されたグラフを生成する、ものであってよい。
また、抽出部は、検索対象の文書データに出現するキーワードのうち、特定のレベルの頻度で出現するキーワードを、特定のレベルに対応する複数のキーワードとして抽出し、グラフ生成部は、特定のレベルを指定するユーザ操作に応じて、特定のレベルに対応する複数のキーワードの各々を表す複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成する、ものであってよい。
【００１０】
更に、グラフ生成部は、グラフに含まれる特定のオブジェクトに対するユーザ操作に応じて、特定のオブジェクトに関する変更をグラフに加える、ものであってよい。ここで、特定のオブジェクトに関する変更は、第１のクラスタに属する特定のオブジェクトを第２のクラスタに属するようにする変更であってもよいし、特定のオブジェクト及び特定のオブジェクト以外の他のオブジェクトをマージして、特定のオブジェクトが表すキーワード及び他のオブジェクトが表すキーワードを表す１つのオブジェクトとする変更であってもよいし、特定のオブジェクトを削除する変更であってもよい。
更にまた、検索条件文生成部は、特定のクラスタに属するオブジェクトが表すキーワードを、ＡＮＤ条件及びＯＲ条件のうちキーワードの出現頻度に応じて予め決められた条件として含む検索条件文を生成する、ものであってよいし、更に、特定のクラスタ以外のクラスタに属するオブジェクトが表すキーワードをＮＯＴ条件として含む検索条件文を生成する、ものであってもよい。
【００１１】
また、本発明は、キーワードに基づく文書データの検索を支援する装置であって、検索対象の文書データから複数のキーワードを抽出する抽出部と、抽出部により抽出された複数のキーワードの各々を表す複数のオブジェクトを含むグラフであって、複数のオブジェクトが、複数のオブジェクトのうちの２つのオブジェクト間の距離が２つのオブジェクトが表す２つのキーワードの共起度に応じたものとなるような位置に配置され、位置の情報に基づいて複数のクラスタに分類されたグラフを生成するグラフ生成部と、グラフ生成部により生成されたグラフにおける複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、特定のクラスタに属するオブジェクトが表すキーワードをＡＮＤ条件及びＯＲ条件の何れかの条件として含み、かつ、特定のクラスタ以外のクラスタに属するオブジェクトが表すキーワードをＮＯＴ条件として含む検索条件文を生成する検索条件文生成部とを備えた、装置も提供する。
【００１２】
更に、本発明は、キーワードに基づく文書データの検索を支援する方法であって、検索対象の文書データから複数のキーワードを抽出するステップと、抽出された複数のキーワードの各々を表す複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成するステップと、生成されたグラフにおける複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成するステップとを含む、方法も提供する。
また、本発明は、キーワードに基づく文書データの検索を支援する方法であって、検索対象の文書データから複数のキーワードを抽出するステップと、抽出された複数のキーワードの各々を表す複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成するステップと、生成されたグラフに含まれる特定のオブジェクトに対するユーザ操作に応じて、特定のオブジェクトに関する変更をグラフに加えるステップと、変更後のグラフにおける複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成するステップとを含む、方法も提供する。
【００１３】
更にまた、本発明は、キーワードに基づく文書データの検索を支援する装置としてコンピュータを機能させるプログラムであって、コンピュータを、検索対象の文書データから複数のキーワードを抽出する抽出部と、抽出部により抽出された複数のキーワードの各々を表す複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成するグラフ生成部と、グラフ生成部により生成されたグラフにおける複数のクラスタのうちの特定のクラスタを選択するユーザ操作に応じて、特定のクラスタに属するオブジェクトが表すキーワードを用いて検索条件文を生成する検索条件文生成部として機能させる、プログラムも提供する。
【発明の効果】
【００１４】
本発明によれば、ユーザの要求に応えた検索を行うのに相応しいキーワードを簡単な操作で指定して検索できるようになる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
まず、本実施の形態が適用されるコンピュータシステムについて説明する。
図１は、このようなコンピュータシステムの全体構成例を示した図である。
図示するように、このコンピュータシステムは、クライアント１０と、検索サーバ２０と、検索支援サーバ３０とが、ネットワーク８０を介して接続されている。
【００１６】
クライアント１０は、ユーザが使用するＰＣ等の端末装置である。より詳しくは、各ユーザが、検索サーバ２０に対して検索語を入力することによりネットワーク８０から検索結果を得たり、検索支援サーバ３０から送られたバネグラフを用いて変更した検索条件で再び検索したりするために用いる端末装置である。尚、図では、１台のクライアントしか示していないが、２台以上のクライアントを設けてもよい。
【００１７】
検索サーバ２０は、所謂検索エンジンであり、検索条件を伴う検索要求があるとその検索条件に合致する文書データの一例であるウェブページを検索結果として要求元に送信するサーバコンピュータである。詳しくは、クライアント１０から検索語を伴う検索要求があるとその検索語に関連するウェブページをクライアント１０に送信する。また、検索支援サーバ３０から検索条件を伴う検索要求があるとその検索条件に合致するウェブページを検索支援サーバ３０に送信する。
【００１８】
検索支援サーバ３０は、検索サーバ２０による検索を支援するためのサーバコンピュータである。詳しくは、検索サーバ２０から検索結果を受け取り、検索語とそれに関連する関連語とからなるキーワードをクラスタ化したバネグラフをクライアント１０に送信する。そして、バネグラフ上でのクラスタの選択がクライアント１０から伝えられると、そのクラスタ内のキーワードを用いて検索条件文の一例である検索クエリを生成し、検索サーバ２０に送信する。
尚、ここでは、検索サーバ２０と検索支援サーバ３０とを別個のサーバコンピュータとして示したが、これらは１つのサーバコンピュータ内に設けられていてもよい。
ネットワーク８０は、情報の送受信に用いる通信手段である。このネットワーク８０としては、インターネットやＬＡＮ（Local Area Network）が例示される。
【００１９】
このような構成を有するコンピュータシステムにおいて、ユーザは、従来通り、クライアント１０を用いて、検索語（Ｗｏｒｄ１，Ｗｏｒｄ２）を検索サーバ２０に投入する（Ａ）。これに応じて、検索結果は、クライアント１０に返されるだけでなく、検索支援サーバ３０にも渡される（Ｂ）。すると、検索支援サーバ３０は、検索語に加え、検索結果から得られる関連語（Ｗｏｒｄ３，Ｗｏｒｄ４，Ｗｏｒｄ５）をノードとするバネグラフを、ユーザインターフェイスとしてクライアント１０に返す（Ｃ）。ユーザは、このバネグラフを自由に変更することができ、検索したいエリアを抽象的に選択することができる。これにより、検索支援サーバ３０は、検索クエリを自動生成し、検索サーバ２０に検索クエリを投入する。即ち、本実施の形態では、検索支援サーバ３０が、キーワード間の関連性をバネグラフとして表示する。そして、そのバネグラフに対するユーザの操作に従って、新たな検索クエリを自動生成する。
【００２０】
そこで、まず、本実施の形態における検索支援サーバ３０の機能構成について説明する。
図２は、検索支援サーバ３０の機能構成例を示したブロック図である。
図示するように、検索支援サーバ３０は、受信部３１と、関連語抽出部３２と、頻度情報記憶部３３と、共起情報記憶部３４と、グラフ生成部３５と、座標情報記憶部３６と、クラスタ生成部３７と、クラスタ定義情報記憶部３８と、表示情報生成部３９と、送信部４１とを備える。また、操作判別部４２と、クラスタ再生成部４３と、検索クエリ生成部４４とを備える。
【００２１】
受信部３１は、検索サーバ２０から検索結果を受信したり、クライアント１０からバネグラフに対する操作に関する情報（以下、「操作情報」という）を受信したりする。
関連語抽出部３２は、検索結果のウェブページを形態素解析し、頻度分析やＴＦ−ＩＤＦ等を用いて、関連語群を生成し、これらの出現頻度に関する頻度情報を生成する。また、検索語及び関連語を含むキーワード間の共起度を求め、この共起度を行列の各セルに格納した共起行列からなる共起情報を生成する。尚、共起度は、公知の計算方法によって求めればよい。例えば、キーワードｋ１とキーワードｋ２の共起度Ｃ（ｋ１，ｋ２）は、「Ｃ（ｋ１，ｋ２）＝Ｐ（ｋ１，ｋ２）／Ｐａ」によって求めることができる。ここで、Ｐ（ｋ１，ｋ２）はキーワードｋ１とキーワードｋ２を共に含むページの数を、Ｐａは全ページ数を、それぞれ表す。本実施の形態では、文書データから複数のキーワードを抽出する抽出部の一例として、関連語抽出部３２を設けている。
頻度情報記憶部３３は、関連語抽出部３２が生成した頻度情報を記憶する。
共起情報記憶部３４は、関連語抽出部３２が生成した共起情報を記憶する。
【００２２】
グラフ生成部３５は、キーワード間の共起度を利用し、バネグラフを作成する。このバネグラフにおいて、オブジェクトの一例であるノードはキーワードに対応する。また、エッジは、所定の閾値を超えた共起度を持つ２つのキーワードに対応する２つのノードの間に張られる。その際、２つのノードの間の距離は、それらのノードに対応する２つのキーワードの共起度に反比例するように設定される。また、バネグラフは階層構造を持っており、出現頻度が高いキーワードに対応するノードを上位ノードとし、上位ノードとの関連が強く上位ノードに比べてやや出現頻度が低いキーワードに対応するノードを下位ノードとする。但し、本実施の形態において、グラフ生成部３５は、バネグラフそのものを生成するのではなく、バネグラフを生成するのに用いる座標情報を生成するものとする。詳しくは、バネグラフに含まれるノードの位置を示す座標情報（以下、「ノード座標情報」という）とエッジの位置を示す座標情報（以下、「エッジ座標情報」という）とを生成する。尚、バネグラフを生成するに当たっては、コーパス等から得られるキーワードの特徴を利用してもよい。
座標情報記憶部３６は、グラフ生成部３５が生成したノード座標情報及びエッジ座標情報と、後述するクラスタ座標情報とを記憶する。
【００２３】
クラスタ生成部３７は、所定の距離以内にあるノード群をクラスタとしてまとめ、キーワードとクラスタとを対応付けたクラスタ定義情報を生成する。このクラスタリングの手法としては、ｋ−ｍｅａｎｓ法等を用いるとよい。また、バネグラフ上のクラスタの位置を示す座標情報（以下、「クラスタ座標情報」という）を生成する。尚、クラスタの範囲や深さ等はユーザが自由に変更することができる。
クラスタ定義情報記憶部３８は、クラスタ生成部３７が生成したクラスタ定義情報を記憶する。
表示情報生成部３９は、座標情報記憶部３６に記憶されたノード座標情報、エッジ座標情報、クラスタ座標情報に基づいて、クライアント１０にバネグラフを表示するための表示情報（例えば、ウェブページの記述）を生成する。
送信部４１は、表示情報生成部３９が生成した表示情報をクライアント１０に送信したり、検索クエリ生成部４４が生成した検索クエリを検索サーバ２０に送信したりする。
【００２４】
操作判別部４２は、受信部３１がクライアント１０から受信した操作情報に基づいて、ユーザによる指示の内容を判別する。ここで、ユーザによる指示とは、次のようなものである。第一に、あるキーワードを中心としたより詳細なキーワードを用いたより深い階層レベルのクラスタの表示に変更する指示（以下、「階層レベル変更指示」という）である。第二に、生成されたバネグラフを操作してノードに関する変更を加えることで新しいクラスタを生成する指示（以下、「ノード変更指示」という）である。第三に、クラスタを１つ選択して検索クエリを自動的に生成する指示（以下、「検索クエリ生成指示」という）である。
【００２５】
クラスタ再生成部４３は、操作判別部４２によってノード変更指示があったと判断された場合にノードの変更の内容を判別し、その変更の内容に応じて新しいクラスタを生成する。ここで、ノードの変更の内容としては、例えば、あるノードが属するクラスタの変更、２つのノードの融合、あるノードの削除等がある。
尚、本実施の形態では、複数のオブジェクトを含み、複数のオブジェクトが複数のクラスタに分類されたグラフを生成し、特定のオブジェクトに関する変更をグラフに加えるグラフ生成部の一例として、グラフ生成部３５、クラスタ生成部３７、クラスタ再生成部４３を設けている。
【００２６】
検索クエリ生成部４４は、操作判別部４２によって検索クエリ生成指示があったと判断された場合に、選択されたクラスタから、例えば次のような条件を満足するように検索クエリを自動的に生成する。第１の条件は、選択されたクラスタに属するキーワードの中で上位ノードに相当するキーワードをＡＮＤ条件として組み合わせる、というものである。第２の条件は、選択されたクラスタに属するキーワードの中で下位ノードに相当するキーワードをＯＲで連結した条件をＡＮＤ条件として組み合わせる、というものである。第３の条件は、選択されたクラスタ以外の同じ階層レベルのクラスタに属するキーワードの中で、選択されたクラスタに含まれるキーワードとの関連度が限りなく低いキーワードをＮＯＴ条件として組み合わせる、というものである。ここで、ＡＮＤ条件として組み合わせるキーワードの個数は、選択されたクラスタに含まれるキーワードの数に依存する。ＡＮＤ条件として組み合わせるキーワードがウェブページに含まれていなければ、そのウェブページはヒットしない。従って、ＡＮＤ条件として組み合わせるキーワードの数は最小限に抑えるポリシーとし、その数はユーザが決定することとする。また、ＮＯＴ条件として組み合わせるキーワードは、関係のないウェブページを排除するために有用であるため、キーワードの数を限定せずに組み合わせるものとする。
【００２７】
次いで、本実施の形態における検索支援サーバ３０の動作について詳細に説明する。尚、検索支援サーバ３０の動作としては、検索サーバ２０から検索結果を受信してクライアント１０にバネグラフを送信する際の動作と、クライアント１０からバネグラフに対する操作情報を受信して検索サーバ２０に検索クエリを送信する際の動作とがある。そこで、以下では、これらを分けて順に説明する。
【００２８】
まず、検索サーバ２０から検索結果を受信してクライアント１０にバネグラフを送信する際の動作について説明する。
図３は、このときの検索支援サーバ３０の動作例を示したフローチャートである。
検索支援サーバ３０では、まず、受信部３１が、検索サーバ２０から検索結果のウェブページを受信して関連語抽出部３２に渡す（ステップ３０１）。
【００２９】
すると、関連語抽出部３２が、受信部３１から渡されたウェブページからキーワードを抽出し、キーワードの出現頻度及び出現頻度によって決まる頻度レベルを含む頻度情報を生成して頻度情報記憶部３３に記憶する（ステップ３０２）。ここで、ウェブページからのキーワードの抽出は、公知の形態素解析の手法を用いて行えばよく、このキーワードには、ユーザが検索結果を得るために最初に入力した検索語に加え、それに関連する関連語が含まれることになる。また、関連語抽出部３２は、公知の手法を用いてキーワード間の共起度を算出し、例えば共起度が行列の形式で格納された共起行列からなる共起情報を生成して共起情報記憶部３４に記憶する（ステップ３０３）。ここで、共起行列は、ステップ３０２で求めた頻度レベルごとに生成するとよい。尚、頻度情報及び共起情報の具体例については後述する。
【００３０】
次に、グラフ生成部３５が、共起情報記憶部３４に記憶された共起情報を用いて、バネグラフを描画するために必要となる座標情報を生成し、座標情報記憶部３６に記憶する（ステップ３０４）。ここで、バネグラフは、キーワードをノードで表し、キーワード間の共起度をノード間のエッジで表したグラフである。従って、グラフ生成部３５は、ノードの描画位置を示すノード座標情報と、エッジの描画位置を示すエッジ座標情報とを生成する。また、バネグラフは、階層レベルごとに作成しておき、より深い階層レベルのバネグラフの表示要求があった場合にその階層レベルのバネグラフを迅速に表示できるようにすることが望ましい。このような階層レベルごとのバネグラフの作成は、共起情報記憶部３４に記憶された頻度レベルごとの共起行列を用いることにより実現できる。ところで、グラフ生成部３５は、バネグラフを生成する際に、全てのノードに対して、ノードが表すキーワード間の関連性を示す隠しリンクを張る。これは、その後の検索クエリの生成時において、ＮＯＴ条件として組み合わせるべきキーワードを特定する際に暗黙的に利用される。尚、バネグラフの具体例についても後述する。
【００３１】
その後、クラスタ生成部３７が、座標情報記憶部３６に記憶されたノード座標情報を用いて、公知の手法（例えば、ｋ−ｍｅａｎｓ法）によりノードのクラスタリングを行い、ノードに対応するキーワードとノードが分類されたクラスタとを対応付けたクラスタ定義情報を生成してクラスタ定義情報記憶部３８に記憶する（ステップ３０５）。尚、クラスタ定義情報の具体例についても後述する。また、座標情報記憶部３６に記憶されたノード座標情報及びエッジ座標情報から生成されるグラフ上で、ノードが対応するクラスタを示す図形に含まれるように図形の描画位置を決定し、この描画位置を示すクラスタ座標情報を座標情報記憶部３６に追加する（ステップ３０６）。
【００３２】
このようにして座標情報記憶部３６にノード座標情報、エッジ座標情報、クラスタ座標情報が記憶されると、表示情報生成部３９は、これらの座標情報を用いて、バネグラフにクラスタを示す図形が重畳されたイメージを表示するための表示情報を生成し、送信部４１に渡す（ステップ３０７）。尚、この場合は、最初のバネグラフの表示なので、最上位の階層レベル（レベル１）に対応する座標情報を用いて、レベル１のバネグラフを表示するための表示情報を生成する。
すると、送信部４１が、表示情報生成部３９から渡されたレベル１のバネグラフを表示するための表示情報をクライアント１０に送信する（ステップ３０８）。これにより、バネグラフは、クライアント１０の図示しないディスプレイに表示されることになる。
【００３３】
次いで、以上の動作を、具体例を用いて説明する。尚、以下において、「Ｊａｖａ」は米国サンマイクロシステムズ社の米国及びその他の国における商標又は登録商標であり、「Ｗｉｎｄｏｗｓ」は米国マイクロソフト社の米国及びその他の国における登録商標である。
まず、ステップ３０２で生成される頻度情報について説明する。
図４は、頻度情報の具体例を示した図である。
図示するように、頻度情報は、キーワードと出現頻度と頻度レベルとを対応付けたものになっている。ここで、出現頻度は、公知の手法によって求めればよいが、最大値が１００になるように正規化されているものとする。頻度レベルは、予め用意された複数のレベルのうち、出現頻度に応じて決まるレベルである。例えば、出現頻度が７０以上１００以下であれば頻度レベル１、出現頻度が４０以上７０未満であれば頻度レベル２、というような規則が予め決められているものとする。
【００３４】
また、ステップ３０３で生成される共起情報について説明する。
図５は、共起情報に含まれる共起行列の具体例を示した図である。
図示するように、共起行列では、１行目の各セル及び１列目の各セルにキーワードが設定されている。そして、１行目のあるセルを含む列と１列目のあるセルを含む行とが交差するセルには、それらのセルに設定された２つのキーワードの共起度が設定されている。尚、図では、「２０」以上の共起度が設定されたセルを太枠で示しているが、これは共起度が「２０」以上のノード間にエッジを張ることを想定しているからである。
【００３５】
ところで、図示した共起行列は、図４に示した頻度情報からも明らかなように、頻度レベル１のキーワード間の共起度が設定された共起行列（レベル１−レベル１共起行列）である。しかしながら、階層レベルごとのバネグラフを生成するには、上述したように、頻度レベルごとの共起行列を生成することが好ましい。図示しないが、例えば、頻度レベル１のキーワードと頻度レベル２のキーワードとの間の共起度が設定された共起行列（レベル１−レベル２共起行列）や、頻度レベル２のキーワード間の共起度が設定された共起行列（レベル２−レベル２共起行列）も生成するとよい。
【００３６】
更に、ステップ３０４で生成されるノード座標情報及びエッジ座標情報に基づくバネグラフについて説明する。
図６は、バネグラフの具体例を示した図である。このバネグラフは、頻度レベル１のキーワード間の関連性を表すバネグラフであり、図５に示したレベル１−レベル１共起行列から生成されたものである。バネグラフでは、共起度が高いほどノード間の距離が近くなるようにノード座標情報が設定される。例えば、ノード間の距離として、共起度の逆数を正規化したものを用いるとよい。
この例では、最初にユーザが「Ｒｕｂｙ」、「Ｊａｖａ」、「Ｃ＋＋」という検索語を検索サーバ２０に投入して検索を行った場合を想定している。このような検索により、従来通りの検索結果は表示されるが、本実施の形態では、それに加え、「Ｒｕｂｙ」、「Ｊａｖａ」、「Ｃ＋＋」のそれぞれと共起度の高いキーワードが関連語として抽出される。具体的には、「Ｒｕｂｙ」に関しては、「Ｐｅｒｌ」、「Ｐｙｔｈｏｎ」等のスクリプト言語を表す関連語、「Ｊａｖａ」に関しては、「ｈｔｍｌ」等のウェブ系の言語を表す関連語、「Ｃ＋＋」に関しては、「Ｃ」、「ＶＣ＋＋」等のＣ言語系を表す関連語が抽出される。そして、これらのキーワード間の関連性が可視化される。
【００３７】
また、ステップ３０５で生成されるクラスタ定義情報について説明する。
図７は、クラスタ定義情報の具体例を示した図である。
図示するように、クラスタ定義情報は、キーワードとそのキーワードが属するクラスタとを対応付けたものになっている。
ところで、図示したクラスタ定義情報は、図４に示した頻度情報からも明らかなように、頻度レベル１のキーワードと階層レベル１のバネグラフにおけるクラスタとを対応付けたものである。しかしながら、階層レベルごとのバネグラフを生成する場合は、より深い階層レベルについてのクラスタ定義情報も生成することが好ましい。例えば、階層レベル２のバネグラフにおいて、クラスタ３がクラスタ３−１、３−２、３−３に分けられるとする。この場合は、図示しないが、クラスタ３に属する頻度レベル１、２のキーワードと、クラスタ３−１、３−２、３−３とを対応付けたクラスタ定義情報を生成するとよい。
【００３８】
更にまた、図６のバネグラフに対して、ステップ３０６で生成されるクラスタ座標情報に基づく図形を追加したバネグラフについて説明する。
図８は、このようなバネグラフの具体例を示した図である。図示するように、バネグラフにおいては、類似するキーワード群を１つにまとめたクラスタが形成されている。
この例では、まず、階層レベル１のバネグラフであることが全体を囲む図形によって示されている（図では、単に「レベル１」と表記している）。また、図７に示したクラスタ定義情報から分かるように、「Ｐｅｒｌ」、「Ｒｕｂｙ」、「Ｐｙｔｈｏｎ」はクラスタ１に属し、「ｈｔｍｌ」、「Ｊａｖａ」はクラスタ２に属し、「Ｃ」、「Ｃ＋＋」、「ＶＣ＋＋」はクラスタ３に属する。従って、「Ｐｅｒｌ」、「Ｒｕｂｙ」、「Ｐｙｔｈｏｎ」を表すノードを囲むようにクラスタ１を示す図形が描画され、「ｈｔｍｌ」、「Ｊａｖａ」を表すノードを囲むようにクラスタ２を示す図形が描画され、「Ｃ」、「Ｃ＋＋」、「ＶＣ＋＋」を表すノードを囲むようにクラスタ３を示す図形が描画される。尚、このようにクラスタが決定されると、下位の階層レベルのバネグラフの元となる座標情報は、クラスタごとに記憶しておくとよい。
【００３９】
次いで、クライアント１０からバネグラフに対する操作情報を受信して検索サーバ２０に検索クエリを送信する際の動作について説明する。
まず、以下に、ユーザがバネグラフを用いて行うことの可能な操作を列挙する。
第一に、検索サーバ２０に投入するキーワード群を変更する操作である。この操作には、更に、クラスタの選択操作と、階層レベルの変更操作とがある。前者は、検索対象のカテゴリを決める場合の操作であり、後者は、より詳細なキーワード（専門分野等のキーワード）を知りたい場合の操作である。
第二に、バネグラフ自体を変更する操作である。この操作には、ノードのクラスタ間での移動、融合、削除の操作がある。ノードのクラスタ間での移動操作は、検索クエリにおけるＡＮＤ条件やＮＯＴ条件を変更する場合の操作である。ノードの融合操作は、そのノードに対応するキーワードをＯＲで連結する際の操作である。ノードの削除操作は、そのノードに対応するキーワードを無視する際の操作である。また、バネグラフ自体を変更する操作としては、特徴量の重みを変更する操作を行ってもよい。この操作は、キーワード間の共起度に影響を与えるため、クラスタを変更することになる。更に、バネグラフ自体を変更する操作として、エッジの追加、削除の操作を行ってもよい。
【００４０】
図９は、このようなユーザ操作に応じた検索支援サーバ３０の動作例を示したフローチャートである。
クライアント１０から操作情報が送信されると、検索支援サーバ３０では、まず、受信部３１が操作情報を受信して操作判別部４２に受け渡す（ステップ３２１）。
そして、操作判別部４２が、受信部３１が受信した操作情報に基づいて、ユーザによる指示内容を判別する（ステップ３２２）。
【００４１】
その結果、指示内容が階層レベル変更指示であったとする。これは、受信部３１から渡された情報が、選択されたクラスタの識別情報と階層レベルを変更する旨の情報とを含むことを確認することにより判定することができる。この場合、操作判別部４２は、階層レベル変更指示があった旨を表示情報生成部３９に伝える。そして、表示情報生成部３９が、座標情報記憶部３６に記憶された座標情報のうち、選択されたクラスタに対応し、かつ、選択されたクラスタを含むバネグラフの階層レベルの１つ下の階層レベルに対応する座標情報を用いて、バネグラフを表示するための表示情報を生成し、送信部４１に渡す（ステップ３２３）。
すると、送信部４１が、表示情報をクライアント１０に送信する（ステップ３２４）。これにより、バネグラフは、クライアント１０の図示しないディスプレイに表示されることになる。
【００４２】
また、指示内容がノード変更指示であったとする。これは、受信部３１から渡された情報が、選択されたノードの識別情報を含むことを確認することにより判定することができる。この場合、操作判別部４２は、受信部３１から渡された情報をクラスタ再生成部４３に渡し、クラスタ再生成部４３が、ノードの変更内容を判定する（ステップ３２５）。
ここで、操作判別部４２から渡された情報がノードの識別情報とノードの座標情報とを含んでいるとする。これは、あるノードを移動する操作が行われ、移動対象のノードの識別情報と、移動先の座標情報とが渡された場合である。
この場合、クラスタ再生成部４３は、座標情報記憶部３６を参照し、移動先の座標情報を含むクラスタを特定し、一方で、クラスタ定義情報記憶部３８を参照し、移動対象のノードを元々含んでいるクラスタを特定し、これらを比較する。その結果、これらのクラスタが異なっていれば、ノードの変更内容はクラスタ間での移動であると判定する。すると、クラスタ再生成部４３は、クラスタ定義情報記憶部３８に記憶されたクラスタ定義情報において、移動対象のノードに対応するキーワードに対応付けられたクラスタの識別情報を移動先のクラスタの識別情報に書き換える（ステップ３２６）。
【００４３】
また、クラスタ再生成部４３は、座標情報記憶部３６を参照し、移動先の座標情報から所定の距離以内に別のノードの座標情報が存在するかどうかを判定する。その結果、別のノードの座標情報が存在すれば、ノードの変更内容は移動対象のノードとその別のノード（移動先のノード）との融合であると判定する。すると、クラスタ再生成部４３は、クラスタ定義情報記憶部３８に記憶されたクラスタ定義情報を更新する（ステップ３２７）。具体的には、移動対象のノードに対応するキーワードとクラスタの対応と、移動先のノードに対応するキーワードとクラスタの対応とをマージし、移動対象のノードに対応するキーワードと移動先のノードに対応するキーワードとからなるキーワード群と移動先のクラスタの対応に変更する。そして、クラスタ再生成部４３は、頻度情報記憶部３３に記憶された頻度情報において、移動対象のノードに対応するキーワードと移動先のノードに対応するキーワードとからなるキーワード群に対して、これらのキーワードに対する情報を平均化した情報を設定する（ステップ３２８）。具体的には、移動対象のノードに対応するキーワードと出現頻度と頻度レベルの対応と、移動先のノードに対応するキーワードと出現頻度と頻度レベルの対応をマージし、移動対象のノードに対応するキーワードと移動先のノードに対応するキーワードとからなるキーワード群とこれらのキーワードの出現頻度の平均値とその平均値に応じた頻度レベルの対応に変更する。
尚、ここでは、簡単のため、ノードのクラスタ間での移動と、ノードの融合とは同時に起こらないものとした。しかしながら、これらが同時に起こったことを判別し、その場合にステップ３２６〜３２８の処理を同時に行うようにしてもよい。
【００４４】
一方、操作判別部４２から渡された情報がノードの識別情報を含み、ノードの座標情報としては空値を含んでいるとする。これは、あるノードを削除する操作が行われ、削除対象のノードの識別情報が渡された場合である。
この場合、クラスタ再生成部４３は、クラスタ定義情報記憶部３８に記憶されたクラスタ定義情報において、削除対象のノードに対応するキーワードに関する情報を削除する（ステップ３２９）。そして、頻度情報記憶部３３に記憶された頻度情報において、削除対象のノードに対応するキーワードに関する情報を削除する（ステップ３３０）。
【００４５】
また、ステップ３２２で指示内容が検索クエリ生成指示であったとする。これは、受信部３１から渡された情報が、選択されたクラスタの識別情報と検索クエリを生成する旨の情報とを含むことを確認することにより判定することができる。この場合、操作判別部４２は、その旨を検索クエリ生成部４４に伝える。そして、検索クエリ生成部４４が、検索クエリを生成し、送信部４１に渡す（ステップ３３１）。その際、第一に、選択されたクラスタに属するキーワードの中で上位ノードに相当するキーワードをＡＮＤ条件として組み合わせ、第二に、選択されたクラスタに属するキーワードの中で下位ノードに相当するキーワードをＯＲで連結した条件をＡＮＤ条件として組み合わせ、第三に、選択されたクラスタ以外の同じ階層レベルのクラスタに属するキーワードの中で、選択されたクラスタに含まれるキーワードとの関連度が限りなく低いキーワードをＮＯＴ条件として組み合わせる。
すると、送信部４１が、検索クエリを検索サーバ２０に送信する（ステップ３３２）。これにより、検索サーバ２０は、検索クエリに基づいてインターネット上を検索し、検索結果のウェブページを検索支援サーバ３０に返す。そして、検索支援サーバ３０がこの検索結果をクライアント１０に送信し、検索結果がクライアント１０の図示しないディスプレイに表示されることになる。或いは、検索サーバ２０が検索結果を直接クライアント１０に送信するようにしてもよい。
【００４６】
次いで、以上の動作を、具体例を用いて説明する。尚、以下において、「Ｊａｖａ」は米国サンマイクロシステムズ社の米国及びその他の国における商標又は登録商標であり、「Ｗｉｎｄｏｗｓ」は米国マイクロソフト社の米国及びその他の国における登録商標である。
まず、ステップ３２２で指示内容が階層レベル変更指示であると判断される場合の動作の具体例を示す。
図１０は、この場合のバネグラフの変化の具体例を示した図である。
（ａ）に示すように、階層レベル１のバネグラフは、クラスタ１、２、３を含んでいる。このバネグラフを見て、ユーザが、クラスタ３についてより専門的な知識を得たいと考えたとする。その場合、図示するように、クラスタ３の領域をクリックすることで、クラスタ３を選択することができる。尚、図では、クラスタ３を示す破線を太線で示すことにより、クラスタ３が選択されていることを示している。そして、クラスタ３を選択することにより、（ｂ）に示すように、クラスタ３に含まれるキーワードに焦点を当てた階層レベル２のバネグラフを見ることができる。そして、このバネグラフにおいても、階層レベル１の場合と同様、クラスタ３について、更に下位のクラスタであるクラスタ３−１、３−２、３−３が生成されている。
尚、この階層レベル２のバネグラフにおいて、上位ノードは、それよりも下位のノードより大きく表示されている。キーワードの頻度レベルごとに共起行列を生成しており、座標情報記憶部３６に記憶されたノード座標情報にノードが表すキーワードの頻度レベルを付与することができるので、このような表示は実現可能である。
【００４７】
ここで、バネグラフ上でクラスタを選択することで生成される検索クエリの具体例を示す。
例えば、図１０（ｂ）で、ユーザが、「Ｃ」、「ｍａｉｎ」、「ｓｃａｎｆ」、「ｐｒｉｎｔｆ」のクラスタについて検索をかけたいとする。この場合、ユーザは、クラスタ３−２を選択する。尚、図では、クラスタ３−２を示す破線を太線で示すことにより、クラスタ３−２が選択されていることを示している。ここで、クラスタ３−２の上位ノードに対応するキーワードは「Ｃ」である。従って、検索クエリ生成部４４は、まず、「Ｃ」をＡＮＤ条件として検索クエリに含める。また、クラスタ３−２の「Ｃ」の次に上位のノードに対応するキーワードは「ｍａｉｎ」、「ｓｃａｎｆ」、「ｐｒｉｎｔｆ」である。従って、検索クエリ生成部４４は、次に、「ｍａｉｎ」、「ｓｃａｎｆ」、「ｐｒｉｎｔｆ」をＯＲで連結した条件をＡＮＤ条件として検索クエリに含める。更に、クラスタ３−２以外の同階層レベルのクラスタはクラスタ３−１及びクラスタ３−３であり、これらのクラスタに属するキーワードは「Ｃ＋＋」、「ｔｅｍｐｌａｔｅ」、「ｃｌａｓｓ」、「ＶＣ＋＋」、「ｗｉｎｄｏｗｓ」、「．ｎｅｔ」である。従って、最後に、検索クエリ生成部４４は、「Ｃ＋＋」、「ｔｅｍｐｌａｔｅ」、「ｃｌａｓｓ」、「ＶＣ＋＋」、「ｗｉｎｄｏｗｓ」、「．ｎｅｔ」をＯＲで連結した条件をＮＯＴ条件として検索クエリに含める。即ち、ここでの検索クエリとしては、
(C) & (scanf | main | printf) & !(C++ | class | template | VC++ | windows | .net)
となる。尚、ここでは、「ａｎｄ」を「＆」、「ｎｏｔ」を「！」で表わしている。
【００４８】
また、ステップ３２２で指示内容がノード変更指示であると判断される場合の動作の具体例を示す。この場合、ユーザは、ノードのクラスタ間での移動、融合、削除を行うことができるが、ここでは、そのうち、ノードのクラスタ間での移動を行う場合について例示する。
図１１は、この場合のバネグラフの変化の具体例を示した図である。
この例では、図示するように、元々クラスタ１を示す図形内に表示されていた「Ｐｅｒｌ」を表すノードを、クラスタ２を示す図形内に移動させている。これにより、検索支援サーバ３０は、図９のステップ３２６で、クラスタ定義情報記憶部３８で管理されるクラスタ定義情報を更新する。尚、「Ｐｅｒｌ」を表すノードをクラスタ２に移動することにより、「Ｊａｖａ」を表すノードとの間に元々存在しなかったエッジが張られている。これは、「Ｐｅｒｌ」を表すノードと「Ｊａｖａ」を表すノードとの距離が、共起度「２０」の場合の距離よりも近くなったためである。但し、このような新たなエッジの描画は行わなくてもよい。
【００４９】
図１２は、ステップ３２６で更新された後のクラスタ定義情報の具体例を示した図である。
「Ｐｅｒｌ」を表すノードをクラスタ２を示す図形内に移動する前は、図７に示したように、キーワード「Ｐｅｒｌ」に対応するクラスタはクラスタ１であった。しかしながら、図１１に示したような操作を行うと、キーワード「Ｐｅｒｌ」に対応するクラスタは、図１２の太枠内に示すように、クラスタ２となっている。
【００５０】
また、この例において、「ＶＣ＋＋」は、「Visual C++」の省略形であるため、ノードとして「Visual C++」が現れる可能性は非常に高い。ここで、ユーザは「ＶＣ＋＋」と「Visual C++」を融合することで、システムはこの２つのキーワードをＯＲで連結して検索することになる。このようなクエリをユーザがキーワードとして指定することは大変手間であり、現実的には考えられない。しかし、バネグラフを介して自動的に検索条件を作るシステムを提供することで、その手間の削減と検索条件の最適化を行うことができる。
【００５１】
以上、本実施の形態について説明してきた。
ところで、本実施の形態において、グラフ生成部３５は、バネグラフを表示するための表示情報を座標情報のみに基づいて生成するようにした。これは、座標情報の元となる共起情報に各キーワードの頻度レベルが含まれており、座標情報にも頻度レベルの情報が付与されているためである。しかしながら、頻度レベルが共起情報に含まれず、座標情報にも含まれなかった場合には、グラフ生成部３５がバネグラフを生成する際に、頻度情報記憶部３３に記憶された頻度レベルを参照するようにしてもよい。
【００５２】
また、本実施の形態において検索クエリ生成部４４が生成した検索クエリはあくまで一例である。検索クエリは、選択されたクラスタに属するオブジェクトが表すキーワードをＡＮＤ条件及びＯＲ条件の何れかの条件として含み、かつ、選択されたクラスタ以外のクラスタに属するオブジェクトが表すキーワードをＮＯＴ条件として含むものであればよい。また、このとき、ＡＮＤ条件及びＯＲ条件の何れの条件として含むかは、そのキーワードの出現頻度に応じて予め決めておけばよい。
【００５３】
以上説明したように、本実施の形態では、検索語に基づいて検索を行うと、検索結果のウェブページのリストに加えて、検索語と検索結果から抽出した関連語とからなるキーワードに基づいて生成されたバネグラフを返すようにした。そして、ユーザがこのバネグラフを操作してキーワード間の関連性を変更することができ、ユーザがこのバネグラフの所定範囲を選択して検索条件を自動的に作り出すことができるようにした。つまり、ユーザに複雑な検索条件を意識させることなく、ユーザの要望により応えた形での検索が可能となった。
【００５４】
具体的には、各構成により次のようなことが可能となった。
まず、検索結果のリストに加え、検索結果から抽出したキーワードに基づいて生成したバネグラフも返すようにした。これにより、ユーザは、その検索に用いた検索語の妥当性と次の検索に検索語として用いる関連語との関連性を知ることができる。
また、本実施の形態では、バネグラフを用いてキーワード間の関係を可視化し、ユーザにバネグラフを操作させるようにした。これにより、通常、ユーザが用いることが多いＡＮＤ条件に加え、ＯＲ条件（同じ意味の語句）、ＮＯＴ条件（関係ない分野の語句）もまた自動的に作成できるようになった。
更に、本実施の形態では、バネグラフに階層構造を持たせ、キーワードに上位下位概念を持たせるようにした。これにより、ユーザが検索したいページの内容の深さを調整できるようになった。
更にまた、ＡＮＤ条件に数多くの検索語を指定すると、本来有益なページであるのにも関わらず、どれか１つの検索語が含まれていなかったために、検索結果に含まれないという問題が生じることがある。ここで、バネグラフの特徴を利用し、ＮＯＴ条件を数多く生成することで、ＡＮＤ条件に使う検索語数を抑えた形で、ユーザにとって、興味のあるページのみを検索することができる。尚、ＮＯＴ条件を指定したために有益なページが検索されないという場合も考えられるが、検索対象のキーワードとの共起度がある一定以上のものはＮＯＴ条件としても除外することで対応できる。
【００５５】
尚、本実施の形態は、次のような場合に、応用可能である。
第一は、検索語の妥当性が分からない場合である。この場合、ユーザはバネグラフにおいてその検索語の占める位置を見て、別の有用な検索語について知ることができる。
第二は、検索語に一般語が多く、検索結果が大量に存在し、複数の検索語を求められる場合である。ユーザは、検索語を簡単にかつ大量にＡＮＤ、ＯＲ、ＮＯＴ等の検索条件を気にすることなく、検索をかけることができる。その結果、ユーザは検索対象を容易に絞り込むことができる。ＡＮＤ条件の個数は必要ではあるが、検索語を自分で考える必要はなくなる。
【００５６】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図１３は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ(Central Processing Unit）９０ａと、Ｍ／Ｂ(マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００５７】
尚、図１３において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００５８】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００５９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施の形態におけるコンピュータシステムの全体構成を示した図である。
【図２】本発明の実施の形態における検索支援サーバの機能構成例を示した図である。
【図３】本発明の実施の形態における検索支援サーバの動作例を示したフローチャートである。
【図４】本発明の実施の形態において生成される頻度情報の具体例を示した図である。
【図５】本発明の実施の形態において生成される共起行列の具体例を示した図である。
【図６】本発明の実施の形態において生成されるバネグラフの具体例を示した図である。
【図７】本発明の実施の形態において生成されるクラスタ定義情報の具体例を示した図である。
【図８】本発明の実施の形態において生成されるバネグラフにクラスタを示す図形を追加したときの具体例を示した図である。
【図９】本発明の実施の形態における検索支援サーバの動作例を示したフローチャートである。
【図１０】本発明の実施の形態において階層レベル変更指示があったときのバネグラフの変化の具体例を示した図である。
【図１１】本発明の実施の形態においてノードのクラスタ間での移動の指示があったときのバネグラフの変化の具体例を示した図である。
【図１２】本発明の実施の形態においてノードのクラスタ間での移動の指示があった後のクラスタ定義情報の具体例を示した図である。
【図１３】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【符号の説明】
【００６１】
１０…クライアント、２０…検索サーバ、３０…検索支援サーバ、３２…関連語抽出部、３５…グラフ生成部、３７…クラスタ生成部、４４…検索クエリ生成部
【図１】
2010009251.tif 000003
【図２】
2010009251.tif 000004
【図３】
2010009251.tif 000005
【図４】
2010009251.tif 000006
【図５】
2010009251.tif 000007
【図６】
2010009251.tif 000008
【図７】
2010009251.tif 000009
【図８】
2010009251.tif 000010
【図９】
2010009251.tif 000011
【図１０】
2010009251.tif 000012
【図１１】
2010009251.tif 000013
【図１２】
2010009251.tif 000014
【図１３】
2010009251.tif 000015