以下に、本願の開示する検索支援プログラム、検索支援装置および検索支援方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[検索支援装置の構成]
図1は、実施例に係る検索支援装置の構成を示す機能ブロック図である。図1に示す検索支援装置1は、既存の検索サービスシステム9に用いられる検索エンジン90の検索処理にアドインする方式で検索支援を実現する。ここでいう検索エンジン90には、例えば、Google(登録商標)の検索エンジンやYahoo(登録商標)の検索エンジンが挙げられる。検索支援装置1は、検索条件を入力する際に、検索の際に用いられるキーワード(検索キーワードという)のほかに検索キーワードの優先順位および検索対象期間を入力した検索条件を受け付ける。検索支援装置1は、検索条件に含まれる検索キーワードをキーとして検索した検索結果から、検索条件に含まれる優先順位および検索対象期間に基づいて対象の検索結果を絞り込み、絞り込んだ検索結果の第1の集合をユーザに提示する。そして、検索支援装置1は、提示した検索結果の第1の集合から少なくとも1つの検索結果の指定を受け付けると、以下の処理を行う。すなわち、検索支援装置1は、指定された検索結果から得られる所定の検索キーワードで検索した検索結果の第2の集合に含まれる検索結果と、指定された検索結果との類似度を算出する。そして、検索支援装置1は、算出した類似度に基づいて第2の集合に含まれる検索結果をソートし、ソートした検索結果を提示する。
検索支援装置1は、制御部10と、記憶部20とを有する。制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、検索キーワード解析部11、検索エンジン実行部12、検索結果絞込み部13、検索結果解析部14、検索結果表示順変更部15、検索結果グラフ化部16および再検索部17を有する。なお、検索結果表示順変更部15は、第1の提示部の一例である。再検索部17は、受付部、算出部、ソート部および第2の提示部の一例である。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、検索管理テーブル21、検索キーワード管理テーブル22、時間指定キーワード管理テーブル23、検索結果管理テーブル24、構文解析結果管理テーブル25および表示順管理テーブル26を有する。
検索管理テーブル21は、検索を一意に識別する識別子を管理するテーブルである。ここで、検索管理テーブル21のデータ構造の一例を、図2を参照して説明する。
図2は、実施例に係る検索管理テーブルのデータ構造の一例を示す図である。図2に示すように、検索管理テーブル21は、ユーザ識別子21a、実行時間21bおよび検索ID(Identifier)21cを対応付けて記憶する。ユーザ識別子21aは、検索を依頼したユーザを一意に識別する識別子である。実行時間21bは、検索の実行時間である。検索ID21cは、検索を一意に識別する識別子である。一例として、ユーザ識別子21aが「user1」である場合に、実行時間21bとして「yy/mm/dd hh:mm:ss」、検索ID21cとして「10」と記憶している。
図1に戻って、検索キーワード管理テーブル22は、検索IDごとに、検索キーワードを管理する。ここで、検索キーワード管理テーブル22のデータ構造の一例を、図3を参照して説明する。
図3は、実施例に係る検索キーワード管理テーブルのデータ構造の一例を示す図である。図3に示すように、検索キーワード管理テーブル22は、検索ID22a、優先順位22bおよび検索キーワード22cを対応付けて記憶する。検索ID22aは、検索を一意に識別する識別子である。優先順位22bは、検索キーワードが複数指定される場合に検索キーワードとともに設定される検索キーワードの優先順位を示す。検索キーワード22cは、検索キーワードの文字列を示す。検索キーワードの文字列は、例えば、語句を示す。
一例として、検索ID22aが「10」である場合に、優先順位22bとして「1」、検索キーワード22cとして「語句A」と記憶している。優先順位22bとして「2」、検索キーワード22cとして「語句C」と記憶している。優先順位22bとして「3」、検索キーワード22cとして「語句B」と記憶している。
図1に戻って、時間指定キーワード管理テーブル23は、検索IDごとに、時間指定のキーワードを管理する。時間指定のキーワードは、文書に記述されている日付の範囲を示す。すなわち、時間指定のキーワードは、検索対象期間を表す。ここで、時間指定キーワード管理テーブル23のデータ構造の一例を、図4を参照して説明する。
図4は、実施例に係る時間指定キーワード管理テーブルのデータ構造の一例を示す図である。図4に示すように、時間指定キーワード管理テーブル23は、検索ID23a、開始23bおよび終了23cを対応付けて記憶する。検索ID23aは、検索を一意に識別する識別子である。開始23bは、検索対象の開始時点を示す。終了23cは、検索対象の終了時点を示す。
一例として、検索ID23aが「10」である場合に、開始23bとして「−5日」、終了23cとして「現在の時刻」と記憶している。「−5日」とは、現在の時刻から5日前の時刻を意味する。終了23cとして「現在の時刻」と記憶している。
図1に戻って、検索結果管理テーブル24は、検索IDごとに、検索結果のURL(uniform resource locator)および更新時刻を管理する。ここで、検索結果管理テーブル24のデータ構造の一例を、図5を参照して説明する。
図5は、実施例に係る検索結果管理テーブルのデータ構造の一例を示す図である。図5に示すように、検索結果管理テーブル24は、検索ID24a、検索結果No24b、URL24cおよび更新時刻24dを対応付けて記憶する。検索ID24aは、検索を一意に識別する識別子である。検索結果No24bは、検索結果の追番である。URL24cは、検索結果のURLである。更新時刻24dは、検索結果の更新時刻である。
一例として、検索ID24aが「10」である場合に、検索結果No24bとして「1」、URL24cとして「http://www.xxxxxxxa.co.jp/」、更新時刻として「yy/mm/dd hh:mm:ss」と記憶している。検索結果No24bとして「2」、URL24cとして「http://www.xxxxxxxb.co.jp/」、更新時刻24dとして「yy/mm/dd hh:mm:ss」と記憶している。
図1に戻って、構文解析結果管理テーブル25は、検索結果ごとに、検索結果が構文解析された語句の出現数を管理する。ここで、構文解析結果管理テーブル25のデータ構造の一例を、図6を参照して説明する。
図6は、実施例に係る構文解析結果管理テーブルのデータ構造の一例を示す図である。図6に示すように、構文解析結果管理テーブル25は、検索ID25a、検索結果No25b、語句No25c、出現数25dおよび語句25eを対応付けて記憶する。検索ID25aは、検索を一意に識別する識別子である。検索結果No25bは、検索結果の追番である。語句No25cは、語句の追番である。出現数25dは、検索結果に含まれる語句が出現する数を示す。語句25eは、語句の文字列を示す。
一例として、検索ID25aが「10」である場合に、検索結果No25bとして「1」、語句No25cとして「1」、出現数25dとして「10」、語句25eとして「語句A」と記憶している。検索結果No25bとして「1」、語句No25cとして「2」、出現数25dとして「8」、語句25eとして「語句B」と記憶している。
図1に戻って、表示順管理テーブル26は、検索IDごとに、検索結果の表示順を管理する。ここで、表示順管理テーブル26のデータ構造の一例を、図7を参照して説明する。
図7は、実施例に係る表示順管理テーブルのデータ構造の一例を示す図である。図7に示すように、表示順管理テーブル26は、検索ID26a、検索結果No26b、表示順26cおよび相関係数26dを対応付けて記憶する。検索ID26aは、検索を一意に識別する識別子である。検索結果No26bは、検索結果の追番である。表示順26cは、検索結果の表示順である。相関係数26dは、検索結果と基準となる検索結果との間の相関を表す係数である。なお、相関係数26dは、再検索の際に使用される。
一例として、検索ID26aが「10」である場合に、検索結果No26bとして「2」、表示順26cとして「1」、相関係数26dとして「」と記憶している。検索結果No26bとして「3」、表示順26cとして「2」、相関係数26dとして「」と記憶している。
図1に戻って、検索キーワード解析部11は、検索キーワードを解析する。例えば、検索キーワード解析部11は、ユーザから指定された検索キーワードを受け取ると、検索キーワードに優先順位が指定されているか否かを判定する。検索キーワード解析部11は、検索キーワードに優先順位が指定されている場合には、検索キーワードから優先順位を取り出す。また、検索キーワード解析部11は、検索キーワードに時間指定のキーワードが指定されているか否かを判定する。検索キーワード解析部11は、検索キーワードに時間指定のキーワードが指定されている場合には、検索キーワードから時間指定のキーワードを取り出す。そして、検索キーワード解析部11は、時間指定のキーワードから、現在時刻を元に検索対象期間の開始および終了を求める。また、検索キーワード解析部11は、取り出した検索キーワード、優先順位の情報を検索キーワード管理テーブル22に格納するとともに、取り出した時間指定のキーワードの情報を時間指定キーワード管理テーブル23に格納する。なお、時間指定のキーワードは、指定されても指定されなくても良い。すなわち、時間指定のキーワードは、任意の指定であれば良い。
検索エンジン実行部12は、検索エンジンを実行する。例えば、検索エンジン実行部12は、検索キーワード解析部11によって解析された結果の検索キーワードから優先順位と時間指定を除外する。そして、検索エンジン実行部12は、除外した結果の検索キーワードを検索エンジン90に引き渡し、検索エンジン90を実行する。
検索結果絞込み部13は、検索エンジン90によって実行された検索結果を絞り込む。例えば、検索結果絞込み部13は、ユーザから指定された検索キーワードに時間指定のキーワードが指定されていた場合には、時間指定に一致しない検索結果を除外する。一例として、検索結果絞込み部13は、検索結果から対象のURLを取り出し、取り出したURLを元に検索結果の内容にアクセスし、検索結果の内容の更新時刻を取得する。そして、検索結果絞込み部13は、取得した更新時刻が時間指定と一致していない場合には、一致していない検索結果を除外する。そして、検索結果絞込み部13は、取得した更新時刻が時間指定と一致している場合には、一致している検索結果を検索結果管理テーブル24に格納する。
検索結果解析部14は、検索結果を構文解析する。例えば、検索結果解析部14は、検索結果絞込み部13によって絞り込まれた検索結果の内容から構文解析する。なお、構文解析処理は、例えばMeCabやKNP等の既存の構文解析システムを用いれば良い。そして、検索結果解析部14は、解析結果に基づいて、語句と出現数とを対応付けて構文解析結果管理テーブル25に格納する。ここでいう語句には、単独の語句、語句を組み合わせた語句が含まれる。そして、検索結果解析部14は、絞り込まれた検索結果全てについて、検索結果解析処理を行う。
検索結果表示順変更部15は、検索キーワード、優先順位および構文解析結果に基づいて、絞り込まれた検索結果の表示順を変更する。例えば、検索結果表示順変更部15は、検索結果管理テーブル24に格納された検索結果について、構文解析結果管理テーブル25を参照し、優先順位が最上位を示す検索キーワードの出現数が多い順に表示順を変更する。検索結果表示順変更部15は、出現数が同じである場合には、優先順位が次に上位の検索キーワードの出現数が多い順に表示順を変更する。そして、検索結果表示順変更部15は、全ての優先順位の検索キーワードで表示順を変更しても出現数が同じである場合には、更新時刻24dの新しい順に表示順を変更する。そして、検索結果表示順変更部15は、検索結果および表示順を対応付けて表示順管理テーブル26に格納する。
また、検索結果表示順変更部15は、表示順を並べ替えた検索結果の一覧をユーザに対して提示する。
検索結果グラフ化部16は、ユーザから指定された検索結果をグラフ化する。例えば、検索結果グラフ化部16は、ユーザからマウスオーバーされた検索結果の指定を受け付けると、構文解析結果管理テーブル25を参照し、指定を受け付けた検索結果の語句ごとに出現数をグラフ化する。検索結果グラフ化部16は、グラフ化する際に、語句が検索キーワードを含むか否かに基づいて、グラフの色を変更する。ここでいうマウスオーバーとは、検索結果の一覧の中からマウスカーソルを対象の検索結果の上に重ねる操作のことをいう。
また、検索結果グラフ化部16は、ユーザからマウスオーバーにより指定された検索結果から生成されたグラフをユーザに対して提示する。
再検索部17は、ユーザから指定された検索結果から得られる所定の検索条件に基づいて再検索する。
例えば、再検索部17は、ユーザからマウスクリックされた検索結果の指定を受け付けると、検索結果グラフ化部16によってグラフ化された情報を含む再検索用画面を表示する。再検索用画面には、ユーザが検索キーワードを選択し直す際に用いられるチェックボックスが含まれる。再検索部17は、再検索用画面からチェックボックスが選択された語句を取り出し、取り出した語句を新たな検索キーワードとして検索エンジン実行部12により検索エンジン90を実行する。ここでいうマウスクリックとは、検索結果の一覧の中からマウスカーソルを対象の検索結果の上に重ねてクリックする操作のことをいう。
また、再検索部17は、新たな検索キーワードで検索した検索結果について、検索結果絞込み部13による処理および検索結果解析部14による処理を行う。
また、再検索部17は、検索結果解析部14によって解析された検索結果と、指定を受け付けた検索結果(再検索元)との類似度を算出する。一例として、再検索部17は、構文解析結果管理テーブル25を参照し、再検索元の新たな検索キーワードに対する出現数を取得する。再検索部17は、構文解析結果管理テーブル25を参照し、検索結果解析部14によって解析された検索結果における新たな検索キーワードに対する出現数を取得する。そして、再検索部17は、解析された検索結果ごとに、検索結果における新たな検索キーワードに対する出現数と、再検索元の新たな検索キーワードに対する出現数との相関係数を計算する。すなわち、再検索部17は、再検索元の新たな検索キーワードに対する出現数のパターンの類似度を相関係数を用いて表現する。
また、再検索部17は、正の相関係数の高い順に検索結果を並べ替える。すなわち、再検索部17は、再検索元の新たな検索キーワードに対する出現数のパターンに似たパターンを持つ検索結果の表示順を上位にする。そして、再検索部17は、表示順で並べた検索結果をユーザに対して提示する。なお、類似度を相関係数として説明したが、これに限定されない。すなわち、新たな検索キーワードに対する出現数のパターン同士の類似度を算出可能な所定の係数であれば良い。
[再検索用画面の一例]
図8は、実施例に係る再検索用画面の一例を示す図である。なお、再検索部17は、ユーザからマウスクリックされた検索結果の指定として検索結果No「2」を受け付けたものとする。
図8に示すように、再検索部17は、検索結果No「2」を受け付けると、検索結果グラフ化部16によってグラフ化された情報を含む再検索用画面を表示する。ここでは、再検索用画面には、検索結果Noとして「2」、更新時刻として「YYYY/MM/DD HH:MM:SS」が表示される。また、構文解析された語句に対する出現数のグラフが表示される。また、検索キーワードとして語句を選択し直すために用いられるチェックボックスが表示される。一例として、語句B、語句C、語句H、語句B+E、語句B+Cおよび語句E+Hのそれぞれのチェックボックスが選択されている。チェックボックスが選択された語句が新たな検索キーワードとして設定される。
そして、再検索部17は、再検索ボタンが押下されると、再検索元(検索結果No「2」)から得られた新たな検索キーワードで再検索する。そして、再検索部17は、再検索元の新たな検索キーワードに対する出現数のパターンに似たパターンを持つ検索結果を上位に表示する。つまり、再検索部17は、語句Bが16件、語句Cが12件、語句Hが7件、語句B+Eが10件、語句B+Cが8件、語句E+Hが6件のパターンに似たパターンを持つ検索結果を上位に表示する。
[検索支援処理の流れの一例]
図9Aおよび図9Bは、実施例に係る検索支援処理の流れの一例を示す図である。図9Aでは、検索キーワード解析部11から検索結果解析部14までの処理を説明する。図9Bでは、検索結果表示順変更部15から検索結果グラフ化部16までの処理を説明する。
図9Aに示すように、検索キーワード解析部11は、ユーザから指定された検索キーワードk1を受け取ると(S101)、検索キーワードk1を解析する(S102)。ここでは、ユーザから指定された検索キーワードk1は、「1>語句A 3>語句B 2>語句C」である。すなわち、検索キーワードk1には、検索キーワードとして、優先順位が「1」の「語句A」、優先順位が「3」の「語句B」、優先順位が「2」の「語句C」が指定されている。検索キーワードk1には、時間指定のキーワードとして、5日前の時刻から現在の時刻を示す「−5日〜」が指定されている。
検索キーワード解析部11は、検索キーワードおよび優先順位の情報を解析結果<1>として検索キーワード管理テーブル22に格納する(S103)。検索キーワード解析部11は、時間指定のキーワードの情報を時間指定キーワード管理テーブル23に格納する。ここでは、検索キーワード管理テーブル22は、優先順位22bが「1」である場合に、検索キーワード22cとして「語句A」と記憶している。優先順位22bが「2」である場合に、検索キーワード22cとして「語句C」と記憶している。優先順位22bが「3」である場合に、検索キーワード22cとして「語句B」と記憶している。時間指定キーワード管理テーブル23は、開始23bが「−5日」、終了23cが「現在の時刻」と記憶している。
次に、検索エンジン実行部12は、検索キーワードk1から優先順位と時間指定を除外する。ここでは、除外した結果の検索キーワードk2は、「語句A 語句B 語句C」となる。検索エンジン実行部12は、除外した結果の検索キーワードk2を検索エンジン90に引き渡し、検索エンジン90を実行する(S104)。
次に、検索結果絞込み部13は、検索エンジン90によって実行された検索結果を、時間指定のキーワードを用いて絞り込む(S105)。ここでは、検索結果絞込み部13は、時間指定のキーワード「−5日〜」に一致する検索結果を取得する。そして、検索結果絞込み部13は、取得した検索結果を解析結果<2>として検索結果管理テーブル24に格納する。ここでは、検索結果管理テーブル24は、検索結果No24bが「1」である場合のURL24cおよび更新時刻24dを記憶する。検索結果No24bが「2」である場合のURL24cおよび更新時刻24dを記憶する。検索結果No24bが「3」である場合のURL24cおよび更新時刻24dを記憶する。
次に、検索結果解析部14は、絞り込まれた検索結果を構文解析する(S106)。そして、検索結果解析部14は、検索結果ごとに、構文解析結果を構文解析結果管理テーブル25に格納する。ここでは、構文解析結果管理テーブル25は、検索結果No25bが「1」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「10件」、「語句B」の出現数25dを「8件」、「語句C」の出現数25dを「3件」、「語句D」の出現数25dを「2件」と記憶する。構文解析結果管理テーブル25は、検索結果No25bが「2」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「10件」、「語句B」の出現数25dを「7件」、「語句C」の出現数25dを「6件」、「語句E」の出現数25dを「4件」と記憶する。構文解析結果管理テーブル25は、検索結果No25bが「3」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「10件」、「語句B」の出現数25dを「7件」、「語句C」の出現数25dを「4件」、「語句F」の出現数25dを「7件」と記憶する。
図9Bに示すように、検索結果表示順変更部15は、解析結果<1>に含まれる検索キーワードおよび優先順位並びに構文解析結果に基づいて、構文解析をした検索結果の表示順を変更する(S107)。なお、解析結果<1>に含まれる検索キーワードおよび優先順位は、検索キーワード管理テーブル22に記憶されている。ここでは、検索キーワード管理テーブル22は、優先順位22bが「1」である場合に、検索キーワード22cとして「語句A」と記憶している。優先順位22bが「2」である場合に、検索キーワード22cとして「語句C」と記憶している。優先順位22bが「3」である場合に、検索キーワード22cとして「語句B」と記憶している。そこで、検索結果表示順変更部15は、検索結果管理テーブル24に格納された検索結果について、構文解析結果管理テーブル25を参照し、優先順位が最上位を示す検索キーワード「語句A」の出現数が多い順に表示順を変更する。ここでは、検索結果No25bが「1」、「2」、「3」の「語句A」の出現数25dは、全て「10件」である。そこで、検索結果表示順変更部15は、優先順位が次の順位を示す検索キーワード「語句C」の出現数が多い順に表示順を変更する。ここでは、「語句C」の出現数25dについて、検索結果No25b「1」は「3件」であり、検索結果No25b「2」は「6件」であり、検索結果No25b「3」は「4件」であるので、表示順は、検索結果No26bとして「2」、「3」、「1」となる。
そして、検索結果表示順変更部15は、検索結果Noおよび表示順を対応付けて表示順管理テーブル26に格納する(S108)。
そして、検索結果表示順変更部15は、表示順を並べ替えた検索結果一覧をユーザに対して提示する(S109)。ここでは、符号D1で示すように、検索結果一覧には、検索結果No2、検索結果No3、検索結果No1の順に、それぞれの検索結果の情報が表示される。
次に、ユーザが、検索結果一覧上のいずれかをマウスで位置付け(マウスオーバーし)たとする(S110)。ここでは、ユーザは、検索結果No2上をマウスオーバーしたとする。すると、検索結果グラフ化部16は、マウスオーバーされた検索結果Noを取得する。そして、検索結果グラフ化部16は、構文解析結果管理テーブル25を参照し、取得した検索結果Noが示す検索結果の語句ごとに出現数をグラフ化する(S111)。ここでは、符号D2で示すように、検索結果No2の検索結果グラフが表示される。
[再検索支援処理の流れの一例]
図10Aおよび図10Bは、実施例に係る再検索支援処理の流れの一例を示す図である。
図10Aに示すように、ユーザが、検索結果一覧上のいずれかをマウスで位置付け、クリック(マウスクリック)したとする(S201)。ここでは、ユーザは、検索結果No2上をマウスクリックしたとする。すると、再検索部17は、検索結果グラフ化部16によってグラフ化された検索結果No2の検索結果グラフを含む再検索用画面を表示する。ここでは、符号D3で示すように、検索結果No2の検索結果グラフとともに語句の隣にチェックボックスが配置される。なお、初期表示には、全てのチェックボックスは、選択有りに指定されていたとする。また、便宜上、検索結果No2を「再検索元」というものとする。
ここで、ユーザは、検索キーワードを選択するために、検索キーワードとして除外する語句のチェックボックスを選択無しに指定する(S202)。ここでは、「語句A」、「語句C」および「語句E」が検索キーワードとして選択される。
そして、再検索ボタンが押下されると(S203)、再検索部17は、検索結果No2の語句で選択された語句を検索キーワードk2とし(S204)、再検索する(S205)。すなわち、再検索部17は、検索キーワードk2を「語句A 語句C 語句E」として、検索エンジン実行部12により検索エンジン90を実行する(S206)。
次に、再検索部17は、検索結果絞込み部13による処理を行う。すなわち、検索結果絞込み部13は、検索エンジン90によって実行された検索結果を、時間指定のキーワードを用いて絞り込む(S207)。ここでは、検索結果絞込み部13は、時間指定のキーワード「−5日〜」に一致する検索結果を取得する。そして、検索結果絞込み部13は、取得した検索結果を解析結果<2>として検索結果管理テーブル24に格納する。ここでは、検索結果管理テーブル24は、検索結果No24bが「1」である場合のURL24cおよび更新時刻24dを記憶する。検索結果No24bが「2」である場合のURL24cおよび更新時刻24dを記憶する。検索結果No24bが「3」である場合のURL24cおよび更新時刻24dを記憶する。検索結果No24bが「4」である場合のURL24cおよび更新時刻24dを記憶する。
次に、再検索部17は、検索結果解析部14による処理を行う。すなわち、検索結果解析部14は、絞り込まれた検索結果を構文解析する(S208)。そして、検索結果解析部14は、検索結果ごとに、構文解析結果を構文解析結果管理テーブル25に格納する。ここでは、構文解析結果管理テーブル25は、検索結果No25bが「1」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「5件」、「語句B」の出現数25dを「2件」、「語句C」の出現数25dを「8件」、「語句E」の出現数25dを「3件」と記憶する。構文解析結果管理テーブル25は、検索結果No25bが「2」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「6件」、「語句C」の出現数25dを「7件」、「語句E」の出現数25dを「6件」、「語句G」の出現数25dを「4件」と記憶する。構文解析結果管理テーブル25は、検索結果No25bが「3」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「8件」、「語句C」の出現数25dを「6件」、「語句E」の出現数25dを「5件」、「語句F」の出現数25dを「4件」と記憶する。構文解析結果管理テーブル25は、検索結果No25bが「4」である場合の語句25eおよび出現数25dを以下のように記憶する。「語句A」の出現数25dを「10件」、「語句C」の出現数25dを「6件」、「語句E」の出現数25dを「4件」と記憶する。
図10Bに示すように、再検索部17は、再検索元の検索キーワードに対する出現数と、検索結果解析部14によって解析された構文解析結果の検索結果ごとの検索キーワードに対する出現数との相関係数を計算する(S209)。ここでは、検索キーワードは、「語句A 語句C 語句E」である。再検索元について、検索キーワード「語句A」に対する出現数は「10件」であり。検索キーワード「語句C」に対する出現数は「6件」であり、検索キーワード「語句E」に対する出現数は「4件」である。これに対して、構文解析結果の検索結果No「1」について、検索キーワード「語句A」に対する出現数は「5件」であり、検索キーワード「語句C」に対する出現数は「8件」であり、検索キーワード「語句E」に対する出現数は「3件」である。構文解析結果の検索結果No「2」について、検索キーワード「語句A」に対する出現数は「6件」であり、検索キーワード「語句C」に対する出現数は「7件」であり、検索キーワード「語句E」に対する出現数は「6件」である。構文解析結果の検索結果No「3」について、検索キーワード「語句A」に対する出現数は「8件」であり。検索キーワード「語句C」に対する出現数は「6件」であり、検索キーワード「語句E」に対する出現数は「5件」である。構文解析結果の検索結果No「4」について、検索キーワード「語句A」に対する出現数は「10件」であり、検索キーワード「語句C」に対する出現数は「6件」であり、検索キーワード「語句E」に対する出現数は「4件」である。そこで、再検索部17は、再検索元と構文解析結果の検索結果No「1」との相関係数を「0.59」と計算する。再検索部17は、再検索元と構文解析結果の検索結果No「2」との相関係数を「0.59」と計算する。再検索部17は、再検索元と構文解析結果の検索結果No「3」との相関係数を「0.65」と計算する。再検索部17は、再検索元と構文解析結果の検索結果No「4」との相関係数を「1.00」と計算する。なお、構文解析結果の検索結果No「4」は、再検索元と同一の内容である。
次に、再検索部17は、計算した相関係数に基づいて、正の相関係数の高い順に、構文解析をした検索結果の表示順を変更する(S210)。検索結果No「1」に対する相関係数は「0.59」、検索結果No「2」に対する相関係数は「0.59」、検索結果No「3」に対する相関係数は「0.65」、検索結果No「4」に対する相関係数は「1.00」であるので、表示順は、検索結果Noとして「4」、「3」、「1」、「2」となる。
そして、再検索部17は、検索結果No、表示順および相関係数を対応付けて表示順管理テーブル26に格納する(S211)。
そして、再検索部17は、表示順を並べ替えた検索結果一覧をユーザに対して提示する(S212)。ここでは、検索結果一覧には、検索結果No4、検索結果No3、検索結果No1、検索結果No2の順に、それぞれの検索結果の情報が表示される。
[検索キーワード解析部のフローチャート]
図11は、実施例に係る検索キーワード解析部のフローチャートの一例を示す図である。なお、検索キーワード解析部11は、入力された検索キーワードを受け付けたものとする。入力された検索キーワードは、図9Aで示す検索キーワードk1のことをいう。
図11に示すように、検索キーワード解析部11は、入力された検索キーワードk1からキーワードを1つずつ読み込む(ステップS11)。キーワードには、例えば、語句を示す検索キーワードおよび時間指定キーワードが存在する。検索キーワード解析部11は、入力された検索キーワードk1が終了したか否かを判定する(ステップS12)。入力された検索キーワードk1が終了したと判定した場合には(ステップS12;Yes)、検索キーワード解析部11は、ステップS17に移行する。
一方、入力された検索キーワードk1が終了していないと判定した場合には(ステップS12;No)、検索キーワード解析部11は、読み込んだキーワードが時間指定キーワードであるか否かを判定する(ステップS13)。時間指定キーワードでないと判定した場合には(ステップS13;No)、検索キーワード解析部11は、読み込んだキーワードが検索キーワードであるので、検索キーワードの優先順位を抽出する(ステップS14)。そして、検索キーワード解析部11は、ステップS16に移行する。
一方、時間指定キーワードであると判定した場合には(ステップS13;Yes)、検索キーワード解析部11は、時間指定キーワードを解析する(ステップS15)。そして、検索キーワード解析部11は、ステップS16に移行する。
ステップS16において、検索キーワード解析部11は、検索キーワードk1の解析結果を、検索キーワード管理テーブル22および時間指定キーワード管理テーブル23に登録する。そして、検索キーワード解析部11は、次のキーワードを読み込むべく、ステップS11に移行する。
ステップS17において、検索キーワード解析部11は、検索キーワードを出力する(ステップS17)。例えば、検索キーワード解析部11は、検索キーワードk1から優先順位と時間指定キーワードを除外した検索キーワードを出力する。出力される検索キーワードは、図9Aで示す検索キーワードk2のことをいう。そして、検索キーワード解析部11は、検索キーワード解析処理を終了する。
[検索結果絞込み部のフローチャート]
図12は、実施例に係る検索結果絞込み部のフローチャートの一例を示す図である。なお、検索エンジン実行部12は、検索キーワード解析部11によって出力された検索キーワードk2で検索エンジン90を実行し、検索結果を取得したものとする。
図12に示すように、検索結果絞込み部13は、検索キーワードk1に時間指定キーワードがあるか否かを判定する(ステップS21)。時間指定キーワードがないと判定した場合には(ステップS21;No)、検索結果絞込み部13は、取得された検索結果を絞り込まれた検索結果とする。そして、検索結果絞込み部13は、検索結果絞込み処理を終了する。
時間指定キーワードがあると判定した場合には(ステップS21;Yes)、検索結果絞込み部13は、取得された検索結果から1件の検索結果を取り出す(ステップS22)。そして、検索結果絞込み部13は、検索結果が終了したか否かを判定する(ステップS23)。検索結果が終了していないと判定した場合には(ステップS23;No)、検索結果絞込み部13は、検索結果の更新日時を検索結果の内容から取り出す(ステップS24)。
そして、検索結果絞込み部13は、取り出した更新日時が時間指定キーワードと一致するか否かを判定する(ステップS25)。時間指定キーワードと一致しないと判定した場合には(ステップS25;No)、検索結果絞込み部13は、現に取り出した検索結果を除外する。そして、検索結果絞込み部13は、次の検索結果を取り出すべく、ステップS22に移行する。
時間指定キーワードと一致すると判定した場合には(ステップS25;Yes)、検索結果絞込み部13は、現に取り出した検索結果を処理対象とする(ステップS26)。そして、検索結果絞込み部13は、処理対象を更新日時とともに、検索結果管理テーブル24に格納する。なお、処理対象が絞り込まれた検索結果である。そして、検索結果絞込み部13は、次の検索結果を取り出すべく、ステップS22に移行する。
一方、検索結果が終了したと判定した場合には(ステップS23;Yes)、検索結果絞込み部13は、検索結果絞込み処理を終了する。
[検索結果解析部のフローチャート]
図13は、実施例に係る検索結果解析部のフローチャートの一例を示す図である。なお、検索結果解析部14は、検索結果絞込み部13から絞り込まれた検索結果を受け取ったものとする。
図13に示すように、検索結果解析部14は、絞り込まれた検索結果(処理対象)から1件の検索結果を取り出す(ステップS31)。検索結果解析部14は、検索結果が終了したか否かを判定する(ステップS32)。検索結果が終了していないと判定した場合には(ステップS32;No)、検索結果解析部14は、検索結果の更新日時を検索結果の内容から取り出す(ステップS33)。そして、検索結果解析部14は、取り出した検索結果を構文解析する(ステップS34)。
検索結果解析部14は、構文解析した結果から1つの語句を取り出す(ステップS35)。検索結果解析部14は、語句が終了したか否かを判定する(ステップS36)。語句が終了したと判定した場合には(ステップS36;Yes)、検索結果解析部14は、取り出した検索結果の構文解析結果を構文解析結果管理テーブル25に登録する(ステップS37)。そして、検索結果解析部14は、次の検索結果を取り出すべく、ステップS31に移行する。
一方、語句が終了していないと判定した場合には(ステップS36;No)、検索結果解析部14は、取り出した語句が単独の語句であるか否かを判定する(ステップS38)。単独の語句であると判定した場合には(ステップS38;Yes)、検索結果解析部14は、取り出した語句が検索キーワードであるか否かを判定する(ステップS39)。検索キーワードであると判定した場合には(ステップS39;Yes)、検索結果解析部14は、検索キーワードをカウントする(ステップS40)。そして、検索結果解析部14は、次の語句を取り出すべく、ステップS35に移行する。
一方、検索キーワードでないと判定した場合には(ステップS39;No)、検索結果解析部14は、検索キーワードでない語句をカウントする(ステップS41)。そして、検索結果解析部14は、次の語句を取り出すべく、ステップS35に移行する。
ステップS38において、単独の語句でないと判定した場合には(ステップS38;No)、検索結果解析部14は、取り出した語句が検索キーワードを含むか否かを判定する(ステップS42)。検索キーワードを含むと判定した場合には(ステップS42;Yes)、検索結果解析部14は、検索キーワードを含む複数語句をカウントする(ステップS43)。そして、検索結果解析部14は、次の語句を取り出すべく、ステップS35に移行する。
一方、検索キーワードを含まないと判定した場合には(ステップS42;No)、検索結果解析部14は、検索キーワードを含まない複数語句をカウントする(ステップS44)。そして、検索結果解析部14は、次の語句を取り出すべく、ステップS35に移行する。
ステップS32において、検索結果が終了したと判定した場合には(ステップS32;Yes)、検索結果解析部14は、検索結果解析処理を終了する。
[検索結果表示順変更部のフローチャート]
図14は、実施例に係る検索結果表示順変更部のフローチャートの一例を示す図である。
図14に示すように、検索結果表示順変更部15は、構文解析された検索結果を更新日時の降順(最新順)に並べ替える(ステップS51)。検索結果表示順変更部15は、検索キーワード管理テーブル22を参照し、検索キーワードk2に優先順位があったか否かを判定する(ステップS52)。優先順位がなかったと判定した場合には(ステップS52;No)、検索結果表示順変更部15は、ステップS59に移行する。
一方、優先順位があったと判定した場合には(ステップS52;Yes)、検索結果表示順変更部15は、検索キーワード管理テーブル22から最上位の検索キーワード22cを取り出す(ステップS53)。
そして、検索結果表示順変更部15は、構文解析結果を解析結果として、解析結果から、取り出した検索キーワード22cの出現数でグループ分けする(ステップS54)。つまり、検索結果表示順変更部15は、取り出した検索キーワード22cの出現数が同数の検索結果を同グループにする。そして、検索結果表示順変更部15は、出現数の降順にグループを並べる(ステップS55)。
そして、検索結果表示順変更部15は、複数の検索結果が含まれたグループがあるか否かを判定する(ステップS56)。複数の検索結果が含まれたグループがないと判定した場合には(ステップS56;No)、検索結果表示順変更部15は、ステップS59に移行する。
一方、複数の検索結果が含まれたグループがあると判定した場合には(ステップS56;Yes)、検索結果表示順変更部15は、検索キーワード管理テーブル22を参照し、検索キーワードk2に次の優先順位があったか否かを判定する(ステップS57)。
次の優先順位がなかったと判定した場合には(ステップS57;No)、検索結果表示順変更部15は、ステップS59に移行する。一方、次の優先順位があったと判定した場合には(ステップS57;Yes)、検索結果表示順変更部15は、検索キーワード管理テーブル22から次の順位の検索キーワード22cを取り出す(ステップS58)。そして、検索結果表示順変更部15は、複数の検索結果が含まれたグループを解析結果としてグループ分けすべく、ステップS54に移行する。
ステップS59において、検索結果表示順変更部15は、表示順を並べ替えた検索結果一覧を提示し(ステップS59)、検索結果表示順変更処理を終了する。
[検索結果グラフ化部のフローチャート]
図15は、実施例に係る検索結果グラフ化部のフローチャートの一例を示す図である。なお、ユーザが検索結果一覧上のいずれかの検索結果をマウスオーバーにより指定したものとする。
図15に示すように、検索結果グラフ化部16は、マウスオーバーされた検索結果の指定を受け付ける(ステップS61)。検索結果グラフ化部16は、構文解析結果管理テーブル25を参照し、受け付けた検索結果に対応する構文解析結果を取り出す(ステップS62)。
検索結果グラフ化部16は、取り出した構文解析結果から、当該構文解析結果に含まれる語句25eを出現数25dの降順に取り出す(ステップS63)。検索結果グラフ化部16は、次の語句があるか否かを判定する(ステップS64)。次の語句があると判定した場合には(ステップS64;Yes)、検索結果グラフ化部16は、次の語句が検索キーワードと一致するか否かを判定する(ステップS65)。
次の語句が検索キーワードと一致すると判定した場合には(ステップS65;Yes)、検索結果グラフ化部16は、この語句の色を赤としてグラフを作成し(ステップS66)、ステップS68に移行する。一方、次の語句が検索キーワードと一致しないと判定した場合には(ステップS65;No)、検索結果グラフ化部16は、この語句の色を青としてグラフを作成し(ステップS67)、ステップS68に移行する。
ステップS68において、検索結果グラフ化部16は、チェックボックスを選択有りに設定し(ステップS68)、次の語句を取り出すべく、ステップS63に移行する。
ステップS64において、次の語句がないと判定した場合には(ステップS64;No)、検索結果グラフ化部16は、取り出した構文解析結果から、当該構文解析結果に含まれる組合せ語句を出現数の降順に取り出す(ステップS69)。検索結果グラフ化部16は、次の語句があるか否かを判定する(ステップS70)。次の語句があると判定した場合には(ステップS70;Yes)、検索結果グラフ化部16は、次の語句が検索キーワードを含むか否かを判定する(ステップS71)。
次の語句が検索キーワードを含むと判定した場合には(ステップS71;Yes)、検索結果グラフ化部16は、この語句の色を赤としてグラフを作成し(ステップS72)、ステップS74に移行する。一方、次の語句が検索キーワードを含まないと判定した場合には(ステップS71;No)、検索結果グラフ化部16は、この語句の色を青としてグラフを作成し(ステップS73)、ステップS74に移行する。
ステップS74において、検索結果グラフ化部16は、チェックボックスを選択有りに設定し(ステップS74)、次の組合せ語句を取り出すべく、ステップS69に移行する。
ステップS70において、次の語句がないと判定した場合には(ステップS70;No)、検索結果グラフ化部16は、作成したグラフを表示し(ステップS75)、検索結果グラフ化処理を終了する。
[再検索部のフローチャート]
図16は、実施例に係る再検索部のフローチャートの一例を示す図である。なお、ユーザが検索結果一覧上の検索結果をマウスクリックにより指定し、再検索部17は、再検索用画面を表示する。そして、ユーザは、再検索用画面の再検索ボタンを押下したものとする。
図16に示すように、再検索部17は、構文解析結果管理テーブル25を参照し、指定された検索結果に対応する構文解析結果を取り出す(ステップS81)。そして、再検索部17は、構文解析結果から語句を取り出す(ステップS82)。そして、再検索部17は、語句が終了であるか否かを判定する(ステップS83)。語句が終了でないと判定した場合には(ステップS83;No)、再検索部17は、取り出した語句に対するチェックボックスが選択されているか否かを判定する(ステップS84)。
取り出した語句に対するチェックボックスが選択されていないと判定した場合には(ステップS84;No)、再検索部17は、次の語句を取り出すべく、ステップS82に移行する。
一方、取り出した語句に対するチェックボックスが選択されていると判定した場合には(ステップS84;Yes)、再検索部17は、語句と出現数を取り出す(ステップS85)。ここでは、語句に対する出現数を(A)とする。そして、再検索部17は、語句を検索キーワードとして特定する(ステップS86)。そして、再検索部17は、次の語句を取り出すべく、ステップS82に移行する。
ステップS83において、語句が終了であると判定した場合には(ステップS83;Yes)、再検索部17は、特定した検索キーワードにより検索を実行する(ステップS87)。例えば、再検索部17は、検索キーワードk2を、特定した検索キーワードとして、検索エンジン実行部12により検索エンジン90を実行する。
そして、再検索部17は、検索結果解析処理を実行する(ステップS88)。すなわち、再検索部17は、検索結果絞込み部13による処理および検索結果解析部14による処理を実行する。検索結果絞込み部13による処理は、図12で示した処理と同様である。検索結果解析部14による処理は、図13で示した処理と同様である。
そして、再検索部17は、全ての検索結果から1件の検索結果を取り出す(ステップS89)。そして、再検索部17は、検索結果が終了であるか否かを判定する(ステップS90)。検索結果が終了でないと判定した場合には(ステップS90;No)、再検索部17は、取り出した検索結果の語句と出現数を取り出す(ステップS91)。ここでは、語句に対する出現数を(B)とする。
そして、再検索部17は、(A)と(B)との相関係数を計算する(ステップS92)。そして、再検索部17は、次の検索結果を取り出すべく、ステップS89に移行する。
ステップS90において、検索結果が終了であると判定した場合には(ステップS90;Yes)、再検索部17は、検索結果の表示順を、正の相関係数の降順になるように変更する(ステップS93)。そして、再検索部17は、表示順を並べ替えた検索結果一覧を提示し(ステップS94)、再検索処理を終了する。
[実施例の効果]
このようにして、検索支援装置1は、検索条件に基づいて検索した検索結果の第1の集合を提示する。検索支援装置1は、提示した検索結果の第1の集合から少なくとも1つの検索結果の指定を受け付ける。検索支援装置1は、指定された検索結果から得られる所定の検索条件に基づいて検索した検索結果の第2の集合に含まれる検索結果と、指定された検索結果との類似度を算出する。検索支援装置1は、算出した類似度に基づいて第2の集合に含まれる検索結果をソートし、ソートした検索結果を提示する。かかる構成によれば、検索支援装置1は、情報検索に関し、ユーザが目的とする検索対象を簡易に絞り込むことができる。すなわち、情報支援装置1は、ユーザが検索結果を開かなくても、ユーザが目的とする検索結果を絞り込むことができ、絞り込みの精度を簡易に上げることができる。
また、検索支援装置1は、指定を受け付けた検索結果を構文解析して得られる語句と当該語句の出現数とに関するグラフを提示する。かかる構成によれば、検索支援装置1は、検索結果に含まれる語句と当該語句の出現数とを用いることで、ユーザに目的とする検索対象であるかどうかを推定させることができる。また、検索支援装置1は、目的とする検索対象を絞り込むために用いられる検索条件を構成する語句を推定させることができる。
また、検索支援装置1は、提示した検索結果におけるグラフを構成する少なくとも1つの語句の指定を受け付ける。検索支援装置1は、指定された語句を含む所定の検索条件に基づいて検索する。検索支援装置1は、検索した検索結果の第2の集合に含まれる検索結果の指定された語句に対する出現数のパターンと、指定された検索結果の指定された語句に対する出現数のパターンとの類似度を算出する。かかる構成によれば、検索支援装置1は、第2の集合に含まれる検索結果の中から、指定された検索結果の指定された語句に対する出現数のパターンに類似する検索結果をみつけることができる。この結果、検索支援装置1は、指定された検索結果に類似する検索結果をみつけることができ、目的とする検索対象を絞り込むことが可能になる。
また、検索支援装置1は、第2の集合に含まれる検索結果の指定された語句に対する出現数のパターンと、指定された検索結果の指定された語句に対する出現数のパターンとの相関度を算出する。かかる構成によれば、検索支援装置1は、類似度を相関度とすることで、容易に指定された検索結果に類似する検索結果をみつけることができる。
[その他]
なお、検索支援装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した制御部10および記憶部20などの各機能を搭載することによって実現することができる。
また、上記実施例では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、検索結果表示順変更部15と検索結果グラフ化部16とを統合しても良い。再検索部17を、検索エンジン実行部12に処理を依頼する処理部と、検索結果絞込み部13に処理を依頼する処理部と、検索結果解析部14に処理を依頼する処理部と、検索結果の表示順を変更する処理部とに分散しても良い。記憶部20を検索支援装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した検索支援装置1と同様の機能を実現する検索支援プログラムを実行するコンピュータの一例を説明する。図17は、検索支援プログラムを実行するコンピュータの一例を示す図である。
図17に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、検索支援プログラム205aおよび検索支援処理関連情報205bを記憶する。
CPU203は、検索支援プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、検索支援装置1の各機能部に対応する。検索支援処理関連情報205bは、記憶部20に記憶された各テーブルに対応する。そして、例えばリムーバブルディスク211が、検索支援プログラム205a等の各情報を記憶する。
なお、検索支援プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから検索支援プログラム205aを読み出して実行するようにしても良い。