算出された前記重複度スコアと、算出された前記検索時間差とを、前記第1のクエリおよび前記第2のクエリに関連付けて表示するための情報を生成させる、プログラム。従来、検索サイトに入力されたクエリに基づき、シソーラス辞書を作成する技術が用いられてきた。【0004】しかしながら、特許文献1に開示された技術は、生成したシソーラス辞書を用いて検索ワードの変換処理を行うことができるものの、検索するユーザのニーズや、時間経過によるユーザのニーズの変化を、検索サイトに入力されたクエリを用いて分析することができなかった。本発明は、このような事情を考慮してなされたものであり、検索するユーザのニーズや、時間経過によるユーザのニーズの変化を、クエリを用いて分析することができるクエリ分析装置、クエリ分析方法、およびプログラムを提供することを目的の一つとする。よって算出された前記検索時間差とを、前記第1のクエリおよび前記第2のクエリに関連付けて表示するための情報を生成する表示情報生成部と、を備えるクエリ分析装置である。本発明の一態様によれば、検索するユーザのニーズや、時間経過によるユーザのニーズの変化を、クエリを用いて分析することができる。【図1】実施形態に係るクエリ分析システム10の構成を示す図である。【図2】実施形態に係るウェブページの検索処理を示すシーケンス図である。【図3】実施形態に係る記憶部120に記憶されたクエリ情報の一例を示す図である。【図4】実施形態に係る重複度スコアの算出処理を説明するための図である。【図5】実施形態に係る検索時間差の算出処理を説明するための図である。【図6】実施形態に係る分析開始前のクエリ分析ウィンドウWの一例を示す図である。【図7】実施形態に係る分析終了後のクエリ分析ウィンドウWの一例を示す図である。【図8】実施形態に係るクラスタリング処理を説明するための図である。【図9】実施形態に係るヒートマップMの一例を示す図である。【図10】実施形態に係るクエリ分析処理を示すフローチャートである。以下、図面を参照して、クエリ分析装置、クエリ分析方法、およびプログラムの実施形態について説明する。クエリ分析装置は、ネットワークなどを介して行われた検索の履歴を取得し、第1のクエリに対して相関の高い一以上の第2のクエリを抽出し、第1のクエリと第2のクエリとの関係を可視化する装置である。クエリ分析装置は、コンピュータにツール(プログラム)がインストールされることで実現されてもよいし、クラウドサービスによって分析結果を提供する装置であってもよい。クエリ分析装置によって、検索するユーザのニーズや、時間経過によるユーザのニーズの変化を分析することができる。【0010】<1.クエリ分析システムの構成>図1は、実施形態に係るクエリ分析システム10の構成を示す図である。実施形態のクエリ分析システム10は、ウェブサーバ100と、クエリ分析装置200と、ユーザ端末300とを備える。【0011】ウェブサーバ100、クエリ分析装置200、およびユーザ端末300は、ネットワークNWに接続される。うち一部または全部を含む。【0012】ウェブサーバ100は、制御部110と、記憶部120とを備える。Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。Storage)や外部のストレージサーバなど、ウェブサーバ100がアクセス可能な外部装置であってもよい。【0014】クエリ分析装置200は、クエリを分析する分析者によって使用される装置であり、ノート型のコンピュータまたはデスクトップ型のコンピュータであるが、これに限られない。Assistant)であってもよい。250と、クラスタリング部260と、ヒートマップ生成部270と、表示情報生成部280と、記憶部290とを備える。入力部210は、キーボードやマウスなどの入力装置である。クエリ分析装置200がスマートフォンなどの携帯電話またはタブレット端末である場合には、入力部210はタッチパネルなどの入力装置であってもよい。表示部220は、液晶表示装置などの表示装置である。250、クラスタリング部260、ヒートマップ生成部270、および表示情報生成部280は、例えば、クエリ分析装置200のプロセッサがプログラムを実行することで実現されてもよいし、LSI、ASIC、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。記憶部290は、例えば、RAM、ROM、HDD、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部290の一部または全部は、NASや外部のストレージサーバなど、クエリ分析装置200がアクセス可能な外部装置であってもよい。【0018】ユーザ端末300は、ユーザによって使用される端末であり、スマートフォンなどの携帯電話やタブレット端末であるが、これに限られない。ユーザ端末300は、ノート型のコンピュータ、デスクトップ型のコンピュータ、またはPDAであってもよい。【0019】ユーザ端末300は、制御部310と、入力部320と、表示部330とを備える。制御部310は、例えば、ユーザ端末300のプロセッサがプログラムを実行することで実現されてもよいし、LSI、ASIC、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。入力部320は、タッチパネルなどの入力装置である。ユーザ端末300がノート型のコンピュータまたはデスクトップ型のコンピュータである場合には、入力部320はキーボードやマウスなどの入力装置であってもよい。表示部330は、液晶表示装置などの表示装置である。【0021】<2.ウェブページの検索処理>図2は、実施形態に係るウェブページの検索処理を示すシーケンス図である。ユーザは、ユーザ端末300の入力部320を用いて、検索ページを表示部330に表示させるための指示を入力する。検索ページとは、ウェブサーバ100の運営者によって提供される検索サイトのページである。Protocol)リクエストをウェブサーバ100に送信する(S10)。【0022】ウェブサーバ100の制御部110は、ユーザ端末300からHTTPリクエストを受信すると、予め記憶部120に記憶された検索ページ生成情報を読み出す(S11)。次に、ウェブサーバ100の制御部110は、読み出した検索ページ生成情報をユーザ端末300に送信する(S12)。Language)等が記述されたテキストデータや、スタイルシート、画像データ、動画データ、音声データである。【0023】ユーザ端末300の制御部310は、ウェブサーバ100から検索ページ生成情報を受信すると、受信した検索ページ生成情報を用いて、表示部330に検索ページを表示させる(S13)。ユーザは、ユーザ端末300の入力部320を用いて、表示部330に表示された検索ページにクエリを入力する。クエリとは、検索ページに入力された一つの検索ワードまたは複数の検索ワードの組み合わせである。【0024】ユーザ端末300の制御部310は、ユーザによって入力されたクエリに基づいて、クエリ情報を生成する。クエリ情報には、ユーザによって入力されたクエリの他、ユーザの識別情報および検索日時等が含まれる。制御部310は、生成したクエリ情報をウェブサーバ100に送信する(S14)。【0025】ウェブサーバ100の制御部110は、ユーザ端末300からクエリ情報を受信すると、受信したクエリ情報を記憶部120に記憶する(S15)。具体的に、制御部110は、ユーザ端末300から受信したクエリ情報に含まれるユーザの識別情報に基づき、ユーザごとにクエリ情報を分類して記憶部120に記憶する。次に、制御部110は、受信したクエリ情報に含まれるクエリに基づいて検索処理を行う(S16)。制御部110は、検索処理において、クエリによって示される検索ワードが含まれるページの一覧を、検索結果として生成する。その後、制御部110は、生成した検索結果をユーザ端末300に送信する(S17)。【0027】ユーザ端末300の制御部310は、ウェブサーバ100から検索結果を受信すると、受信した検索結果を表示部330に表示させる(S18)。このように、ユーザによって入力されたクエリに基づく検索処理が行われる。【0028】なお、本実施形態においては、説明の簡略化のためにウェブサーバ100に検索機能を持たせることとしたが、これに限られない。クエリ分析システム10は、ウェブサーバと検索サーバとを別々に備えてもよい。【0029】<3.重複度スコアの算出処理>次に、重複度スコアの算出処理について説明する。重複度スコアは、あるクエリを検索したユーザと、他のクエリを検索したユーザとの重複の度合いを示す値であり、クエリ分析の指標として用いられる。クエリ分析装置200の重複度スコア算出部240は、クエリ情報に用いて重複度スコアを算出する。図3は、実施形態に係る記憶部120に記憶されたクエリ情報の一例を示す図である。図3に示されるように、記憶部120には、ユーザごとに分類されたクエリ情報Q1からQn(n:ユーザの総数)が格納されている。クエリ情報Q1はユーザ1のクエリ情報であり、クエリ情報Q2はユーザ2のクエリ情報であり、・・・、クエリ情報Qnはユーザnのクエリ情報である。クエリ情報Q1からQnのそれぞれにおいて、ユーザによって入力されたクエリおよび検索日時が関連付けられている。図4は、実施形態に係る重複度スコアの算出処理を説明するための図である。図4において、ALLuserは全ユーザ数を示し、AuserはクエリAを入力したユーザ数を示し、BuserはクエリBを入力したユーザ数を示す。ここで、ALLuser、Auser、およびBuserはユーザ数であることとしたが、検索回数であってもよい。ALLuser、Auser、およびBuserのそれぞれの値は、クエリ情報に基づいて算出される。【0032】クエリ分析装置200のクエリ情報取得部230は、ウェブサーバ100にクエリ情報要求を送信する。ウェブサーバ100の制御部110は、クエリ情報取得部230からクエリ情報要求を受信すると、記憶部120からクエリ情報Q1からQn(図3)を読み出す。その後、制御部110は、読み出したクエリ情報Q1からQnをクエリ分析装置200に送信する。【0033】クエリ情報取得部230は、ウェブサーバ100の制御部110から送信されたクエリ情報Q1からQnを取得する。クエリ情報取得部230は、取得したクエリ情報Q1からQnを記憶部290に記憶する。重複度スコア算出部240は、記憶部290からクエリ情報Q1からQnを読み出し、読み出したクエリ情報Q1からQnに基づき、全ユーザ数ALLuserと、クエリAのユーザ数Auserと、クエリBのユーザ数Buserとを算出する。【0034】また、重複度スコア算出部240は、以下の式(1)に基づき、クエリAに対するクエリBの重複度スコアScore(A,B)を算出する。重複度スコア算出部240は、クエリAおよびクエリBの両方を検索したユーザの数(Auser∩Buser)をクエリAを検索したユーザの数(Auser)で除算した値と、クエリBを検索したユーザの数(Buser)を全ユーザの数(ALLuser)で除算した値とに基づいて、重複度スコアScore(A,B)を算出する。重複度スコアScore(A,B)は、クエリAを検索したユーザと、クエリBを検索したユーザとの重複の度合いを示す値である。重複度スコアScore(A,B)が大きいほど、クエリAとクエリBの関連性が高いといえる。逆に、重複度スコアScore(A,B)が小さいほど、クエリAとクエリBの関連性が低いといえる。車種1は軽自動車であり、車種2は軽自動車であり、車種3はスポーツカーであるとする。この場合において、クエリAが「車種1」であり、クエリBが「車種2」である場合、重複度スコアScore(A,B)は大きな値であった。クエリAが「車種1」であり、クエリBが「車種3」である場合、重複度スコアScore(A,B)は小さな値であった。これは、軽自動車同士の関連性は高く、軽自動車とスポーツカーとの関連性は低いためである。このように、重複度スコアScore(A,B)を用いることで、例えば、競合製品の抽出や製品のニーズを分析することができる。【0038】<4.検索時間差の算出処理>次に、検索時間差の算出処理について説明する。検索時間差は、あるクエリが検索された時間と、他のクエリが検索された時間との差を示す値であり、クエリ分析の指標として用いられる。クエリ分析装置200の検索時間差算出部250は、クエリ情報に用いて検索時間差を算出する。図5は、実施形態に係る検索時間差の算出処理を説明するための図である。図5において、横軸は検索が行われた時間を示し、縦軸はクエリを入力したユーザ数を示す。クエリ分布QAはクエリAのユーザ数の分布を示し、クエリ分布QBはクエリBのユーザ数の分布を示す。時間T1はクエリ分布QAの検索時間の中央値を示し、時間T2はクエリ分布QBの検索時間の中央値を示す。250は、クエリ情報取得部230によって取得されたクエリ情報Q1からQnに基づき、時間T1および時間T2を導出する。250は、クエリ情報Q1からQnに基づいてクエリAの検索日時を集計し、集計した検索日時の中央値を時間T1として導出する。250は、クエリ情報Q1からQnに基づいてクエリBの検索日時を集計し、集計した検索日時の中央値を時間T2として導出する。250は、導出した時間T2から時間T1を減算することによって、クエリ分布QAとクエリ分布QBとの間の検索時間差D(A,B)を算出する。検索時間差D(A,B)がプラスの値の場合、クエリAの検索よりも後にクエリBの検索が行われた頻度が高いといえる。検索時間差D(A,B)がマイナスの値の場合、クエリAの検索よりも前にクエリBの検索が行われた頻度が高いといえる。検索時間差D(A,B)が0に近いほど、クエリAの検索が行われた時期と同時期にクエリBの検索が行われた頻度が高いといえる。クエリAが「咳止め薬」であり、クエリBが「喉の痛み」である場合、検索時間差はマイナスの値であった。これは、喉の痛みは初期症状であるためである。クエリAが「咳止め薬」であり、クエリBが「肺炎」である場合、検索時間差はプラスの値であった。これは、肺炎は症状が進行した状態であるためである。このように、検索時間差を用いることで、例えば、時間経過によるユーザのニーズの変化を把握することができる。【0043】<5.クエリ分析ウィンドウ>図6は、実施形態に係る分析開始前のクエリ分析ウィンドウWの一例を示す図である。クエリ分析装置200の表示情報生成部280は、クエリ分析ウィンドウWの表示情報を生成する。表示部220は、表示情報生成部280によって生成された表示情報に従って、クエリ分析ウィンドウWを表示する。図6に示されるように、クエリ分析ウィンドウWには、クエリ選択領域221と、データソース選択領域222と、閾値入力領域223と、開始ボタン224と、結果表示領域225とが表示されている。【0044】クエリ選択領域221は、クエリ分析装置200を使用する分析者が、分析対象のクエリを選択するための領域である。データソース選択領域222は、分析者がクエリ情報のデータソースを選択するための領域である。図6に示される例においては、分析対象のクエリとしてクエリAが選択され、データソースとして2015年1月1日から2015年12月31日のデータソースが選択されている。閾値入力領域223は、重複度スコアの閾値の入力を受け付ける入力部として機能する。開始ボタン224は、分析者が分析開始を指示するためのボタンである。結果表示領域225は、分析結果が表示される領域である。結果表示領域225には、分析結果として、クエリと、ユーザ数と、重複度スコアと、検索時間差とが表示される。250は、重複度スコア算出部240によって算出されたクエリAに対する重複度スコアが閾値入力領域223に入力された閾値未満のクエリに対しては、検索時間差を算出しない。図6に示される例においては、閾値として4が入力されている。このため、重複度スコアが4未満のクエリに対しては検索時間差が算出されないこととなり、結果表示領域225から分析結果が省かれることとなる。分析者が、クエリ分析装置200の入力部210を用いて開始ボタン224をクリックすると、クエリ分析処理が開始される。250は検索時間差を算出する。算出された重複度スコアおよび検索時間差は、結果表示領域225に表示される。図7は、実施形態に係る分析終了後のクエリ分析ウィンドウWの一例を示す図である。クエリ分析処理において、重複度スコア算出部240は、クエリ情報取得部230によって取得されたクエリ情報のうち、データソース選択領域222に示されるデータソースを用いて重複度スコアを算出する。具体的には、重複度スコア算出部240は、前述の式(1)に基づいて、クエリ選択領域221に示されるクエリに対する、他のクエリの重複度スコアを算出する。【0049】ただし、重複度スコア算出部240は、算出した重複度スコアが閾値入力領域223に入力された閾値未満である場合、重複度スコアが閾値未満であるクエリについての分析結果を結果表示領域225から除外する。これによって、分析対象のクエリと関連性の低いクエリの分析結果を除外することができ、クエリ分析の精度を向上させることができる。250は、クエリ情報取得部230によって取得されたクエリ情報のうち、データソース選択領域222に示されるデータソースを用いて、検索時間差を算出する。250は、クエリ選択領域221に示されるクエリと他のクエリとの間の検索時間差を算出する。250によって算出された検索時間差とが、クエリごとに関連付けられて表示される。これによって、分析者は、各クエリについての重複度スコアと検索時間差とを容易に把握することができる。【0052】なお、図7において、表示部220は、ユーザ数、重複度スコア、または検索時間差について、昇順または降順に並び替えるためのボタンをクエリ分析ウィンドウW内に表示してもよい。これらの値を並び替えることで、分析者は、分析結果をより容易に把握することができる。【0053】<6.ヒートマップ生成処理>クエリ分析処理が完了すると、クエリ分析ウィンドウW内にヒートマップ表示ボタン226が表示される。分析者が、クエリ分析装置200の入力部210を用いてヒートマップ表示ボタン226をクリックすると、ヒートマップ生成部270はヒートマップ生成処理を開始する。ヒートマップ生成処理において、クエリ分析装置200のクラスタリング部260は、複数のクエリをグループ化してクラスタを生成する。図8は、実施形態に係るクラスタリング処理を説明するための図である。クラスタリング部260は、クエリ情報取得部230によって取得されたクエリ情報に基づき、類似する複数のクエリをグループ化してクラスタを生成する。図8に示される例において、クラスタリング部260は、クエリAからクエリCをグループ化してクラスタAを生成し、クエリDからクエリGをグループ化してクラスタBを生成し、クエリHからクエリKをグループ化してクラスタCを生成している。クラスタリング部260は、同一の検索ワードを所定数以上含むクエリをグループ化してクラスタを生成してもよいし、シソーラス辞書を用いて検索ワードが類似するか否かを判定し、類似する検索ワードを所定数以上含むクエリをグループ化してクラスタを生成してもよい。【0056】クラスタリング部260は、生成したクラスタをヒートマップ生成部270に出力する。ヒートマップ生成部270は、クエリ情報取得部230によって取得されたクエリ情報と、クラスタリング部260から入力されたクラスタとに基づいて、ヒートマップMを生成する。図9は、実施形態に係るヒートマップMの一例を示す図である。ヒートマップMの横軸は検索時間差を示し、縦軸はクラスタを示す。図9に示される例において、横軸の検索時間差の単位を日(day)として示しているが、これに限られない。細かく分析する必要があれば、横軸の検索時間差の単位を時間(hour)として示してもよい。長期間の分析結果が必要とされる場合は、横軸の検索時間差の単位を月(month)として示してもよい。各セル内に記載された数値は、横一列の合計を1とした場合のユーザ数(検索数)の割合を示す。250によって算出された検索時間差と、検索時間差に対応する検索数とが、クラスタリング部260によってグループ化されたクラスタごとに関連づけられた一覧情報である。このように、ヒートマップ生成部270は、横軸において検索時間差の分布を表現し、縦軸において検索時間差ごとにユーザ数(検索数)を正規化した値を表現したヒートマップMを生成する。【0059】ヒートマップ内の各セルは、ユーザ数(検索数)に応じた色でハッチングされる。図9に示される例においては、縦一列の値の合計に対する割合が高いセルほど、濃い色でハッチングされているが、これに限られない。縦一列の値の合計に対する割合が高いセルほど、薄い色でハッチングされてもよい。【0060】クエリ分析装置200の表示部220は、クエリ分析ウィンドウW内にヒートマップMを表示してもよいし、クエリ分析ウィンドウWとは別のウィンドウにヒートマップMを表示してもよい。このように、表示部220がヒートマップMを表示することによって、分析者は、各クラスタについての検索時間差と検索数とを容易に把握することができる。【0061】<7.クエリ分析処理>図10は、実施形態に係るクエリ分析処理を示すフローチャートである。本フローチャートによる処理は、クエリ分析装置200によって実行される。【0062】まず、表示部220は、前述の図6に示されるクエリ分析ウィンドウWを表示する(S20)。次に、クエリ分析装置200は、開始ボタン224がクリックされたか否かを判定する(S21)。開始ボタン224がクリックされたと判定された場合、重複度スコア算出部240は、クエリ情報取得部230によって取得されたクエリ情報に基づいて、クエリごとの重複度スコアを算出する(S22)。250は、クエリ情報取得部230によって取得されたクエリ情報に基づいて、クエリごとの検索時間差を算出する(S23)。250によって算出された検索時間差とを、クエリごとに関連付けて表示するための表示情報を生成する。表示部220は、表示情報生成部280によって生成された表示情報を表示する(S24)。表示部220は、クエリ分析ウィンドウWにヒートマップ表示ボタン226を表示する。次に、クエリ分析装置200は、ヒートマップ表示ボタン226がクリックされたか否かを判定する(S25)。ヒートマップ表示ボタン226がクリックされたと判定された場合、ヒートマップ生成部270は、前述の図9に示されるヒートマップMを生成する(S26)。その後、表示部220は、ヒートマップ生成部270によって生成されたヒートマップMを表示し(S27)、本フローチャートによる処理を終了する。250は、クエリ情報に基づいて、クエリAが検索された時間と、クエリBが検索された時間との差である検索時間差D(A,B)を算出する。250によって算出された検索時間差D(A,B)とを、クエリAおよびクエリBに関連付けて表示するための情報を生成する。これによって、検索するユーザのニーズや、時間経過によるユーザのニーズの変化を、クエリを用いて分析することができる。【0066】なお、上記実施形態によるクエリ分析装置200は、内部にコンピュータシステムを有している。上述したクエリ分析装置200の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって上記各種処理が行われる。ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。【0067】また、クエリ分析装置200は、表示部220および表示情報生成部280の両方を備えることとしたが、これに限られない。クエリ分析装置200をクラウドサービスとして提供する場合、表示部220を省略することができる。280は、分析結果を表示するための表示情報を生成し、生成した表示情報を外部からの要求に応じて送信してもよい。250は、検索時間の中央値を導出し、導出した中央値を用いて検索時間差を算出することとしたが、これに限られない。250は、検索時間の平均値を算出し、算出した平均値を用いて検索時間差を算出してもよい。【0069】また、ヒートマップ生成部270は、クラスタリング部260によってグループ化されたクラスタごとに、検索時間差と検索数とが関連づけられたヒートマップを生成するとしたが、これに限られない。ヒートマップ生成部270は、クエリごとに、検索時間差と検索数とが関連づけられたヒートマップを生成してもよい。これによって、分析者は、クエリごとのヒートマップMを確認することができる。以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。Reserved.10。