以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、ショッピングシステムに対して本発明を適用した場合の実施形態である。
[1.ショッピングシステムの構成及び機能概要]
[1−1.ショッピングシステムの構成]
先ず、本実施形態に係るショッピングシステムSの構成について、図1を用いて説明する。図1は、本実施形態に係るショッピングシステムSの概要構成の一例を示す図である。
図1に示すように、ショッピングシステムSは、電子商店街サーバ1と、複数のユーザ端末2と、を含んで構成されている。そして、電子商店街サーバ1と各ユーザ端末2とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
電子商店街サーバ1(本発明における情報処理装置の一例)は、商品の購入が可能な電子商店街に関する各種処理を実行するサーバ装置である。ユーザは、電子商店街を利用することにより、所望の店舗から所望の商品を購入することができる。電子商店街サーバ1は、ユーザ端末2からのリクエストに応じて、例えば、電子商店街のWebページを送信したり、商品の検索や購入等に関する処理を行ったりする。
ユーザ端末2は、電子商店街を利用するユーザの端末装置である。ユーザ端末2は、ユーザからの操作に基づいて電子商店街サーバ1にアクセスすることにより、電子商店街サーバ1からWebページを受信して表示する。ユーザ端末2は、CPU、メモリ、ユーザ操作を受ける操作部、情報を画面表示するディスプレイ等を備える。また、ユーザ端末2には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末2としては、例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
[1−2.検索条件の指定]
次に、電子商店街において商品の検索に用いられる検索条件、及び検索条件を指定するためのWebページについて、図2を用いて説明する。
電子商店街では、商品を検索するときに、検索条件として、キーワード、商品のジャンル等を指定可能である。検索条件として指定されるキーワードを、「検索キーワード」という。ユーザは、検索条件として、検索キーワード及びジャンルの両方を同時に指定することも、何れか一方を指定することもできる。また、ユーザは、複数の検索キーワードを組み合わせて指定することができる。なお、複数のキーワードが組み合わせて指定された場合、指定された複数のキーワードを、「キーワードの組み合わせ」という。
商品のジャンル(本発明における区分の一例)は、商品を、例えば種類、性質、用途等で区分したときに、同じような種類、性質、用途等の商品が属する範囲である。商品のジャンルは、木構造で階層的に定義されている。具体的に、木構造の各ノードが、ジャンルに相当する。ノードの深さが、そのノードに相当するジャンルのレベル(木構造においてノードが位置する階層の深さ)に相当する。ノードの深さは、根に位置するノード(以下、「根ノード」という)からの距離である。木構造において、根ノードには、ジャンルトップというジャンルが便宜的に定義されている。レベルの値が大きいほど、階層の深さが深く、レベルの値が小さいほど、階層の深さが浅い。ジャンルトップは、ユーザがジャンルを何も指定していない状態を示す。ジャンルトップは、レベル0のジャンルである。ジャンルトップに対して、子ノードに相当するジャンルがレベル1のジャンルである。レベル1のジャンルが、ユーザが指定可能なジャンルとして実質的に最上位のジャンルである。レベル1のジャンルとしては、例えば、「水・ソフトドリンク」、「美容・コスメ・香水」、「ペット・ペットグッズ」、「レディースファッション」、「メンズファッション」等がある。レベル1の各ジャンルに対しては、子ノードに相当するジャンルが、レベル2のジャンルとして定義されている。ここで、あるジャンルc1の子ノードに相当するジャンルc2を、ジャンルc1の「子ジャンル」という。子ジャンルを、サブジャンルともいう。また、このときのジャンルc1を、ジャンルc2の「親ジャンル」という。子ジャンルは、親ジャンルを更に複数に区分したときに、同じような商品が属する範囲である。従って、子ジャンルは親ジャンルに属する。また、あるジャンルに対して、子孫のノードに相当するジャンルを、「子孫ジャンル」という。例えば、ジャンルc3がジャンルc2の子ジャンルであるとする。この場合、ジャンルc2及びc3は、ジャンルc1の子孫ジャンルである。あるジャンルが子ジャンルを有するとき、通常複数の子ジャンルが定義されている。例えば、「水・ミネラルウォーター」の子ジャンルとして、例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」等が定義されている。同一の親ジャンルに属するジャンル同士を、兄弟ジャンルという。つまり、或るジャンルc4と兄弟関係にある全てのジャンルは、ジャンルc4の兄弟ジャンルである。例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」は、互いに兄弟ジャンルである。レベル2以降のジャンルについては、必要に応じて子ジャンルが定義されている。
検索条件を指定するためのWebページとして、例えば、トップページと検索結果ページとがある。トップページは、電子商店街において最上位に位置するWebページである。検索結果ページは、商品の検索結果を示すWebページである。また、検索結果ページは、検索された商品の中から商品を絞り込んで検索するための検索条件(以下、「絞り込み条件」という)を指定したり、検索条件を指定し直したりするためのWebページである。トップページにおいてユーザが検索条件を指定すると、指定された検索条件で電子商店街サーバ1により商品が検索され、その検索結果を示す検索結果ページがユーザ端末2により表示される。また、検索結果ページにおいてユーザが検索条件を指定すると、指定された検索条件で電子商店街サーバ1により再度商品が検索され、その検索結果を表示する新たな検索結果ページがユーザ端末2により表示される。
検索結果ページにおいてユーザが検索条件を指定したとき、この検索結果ページの直前に表示されていたトップページまたは検索結果ページ(以下、「直前ページ」という)において指定された検索条件が引き継がれる場合がある。例えば、トップページまたは検索結果ページにおいて、検索条件として検索キーワードk1が指定されたとする。すると、検索キーワードk1による検索結果を示す検索結果ページが表示される。ここで、ユーザが検索条件としてジャンルc1を指定すると、検索条件として、検索キーワードk1及びジャンルc1が指定されたとみなされる。そして、検索キーワードk1及びジャンルc1による検索結果を示す新たな検索結果ページが表示される。つまり、ユーザは、ジャンルc1を絞り込み条件として指定したことになる。また、トップページまたは検索結果ページにおいて、検索条件としてジャンルc2が指定されたとする。すると、ジャンルc2による検索結果を示す検索結果ページが表示される。ここで、ユーザが検索条件として検索キーワードk2を指定すると、検索条件として、ジャンルc2及び検索キーワードk2が指定されたとみなされる。そして、ジャンルc2及び検索キーワードk2による検索結果を示す新たな検索結果ページが表示される。つまり、ユーザは、検索キーワードk2を絞り込み条件として指定したことになる。以降の説明において、直前ページにおいて検索条件として検索キーワードまたはジャンルが指定されたとは、直前ページにおいてユーザが検索キーワードを入力したりジャンルを選択したりすることによりユーザが明示的に指定した場合と、検索条件の引き継ぎによって指定したとみなされる場合とを含む。
図2(a)は、電子商店街のトップページの表示例を示す図である。図2(a)に示すように、トップページは、検索条件設定領域110、ジャンル一覧表示領域120等を含む。
検索条件設定領域110は、キーワード入力欄111、ジャンル選択メニュー112、検索ボタン113等を含む。キーワード入力欄111は、1つまたは複数の検索キーワードを入力するための入力領域である。各検索キーワードの区切りとして空白を入力することにより、ユーザは複数の検索キーワードを入力することができる。これにより、ユーザは、複数のキーワードを検索条件として指定することができる。ジャンル選択メニュー112は、レベル1のジャンルの中から、検索条件として指定するジャンルを選択するためのプルダウンメニューである。検索ボタン113は、キーワード入力欄111に入力された検索キーワードと、ジャンル選択メニュー112において選択されたジャンルとを、検索条件として指定するためのボタンである。検索キーワードが入力されている場合に検索ボタン113が選択されると、その検索キーワードが検索条件として指定され、この検索条件で検索が行われる。また、ジャンルが選択されている場合に検索ボタン113が選択されると、そのジャンルが検索条件として指定され、この検索条件で検索が行われる。ユーザは、検索条件設定領域110に対する操作によって、検索キーワード及びジャンルの両方または何れか一方を検索条件として指定することができる。
図2(b)は、検索キーワード候補表示領域114の表示例を示す図である。キーワード入力欄111は、キーワードサジェスト機能に対応している。キーワードサジェスト機能は、検索キーワードの候補を表示し、その候補を検索キーワードとして指定可能とする機能である。具体的に、キーワード入力欄111に対してユーザが検索キーワードを入力し始めると、図2(b)に示すように、キーワード入力欄111の直下に、検索キーワード候補表示領域114が表示される。検索キーワード候補表示領域114には、検索キーワードの候補が一覧表示される。候補として表示されるキーワードは、キーワード入力欄111に入力されている文字列に前方一致する検索キーワードである。キーワード入力欄111に仮名が入力されている場合、候補として表示されるキーワードは、その読みが、入力されている仮名に前方一致するキーワードである。
例えば、最初に「デ」が入力された場合、キーワード候補表示領域114には、例えば、「ディーゼル」、「デニム」、「デッキシューズ」、「デジタルフォトフレーム」等が表示される。その後、「ジタル」が入力されると、キーワード入力欄111には、「デジタル」が入力されている状態となる。この場合、検索キーワード候補表示領域114には、例えば、「デジタルフォトフレーム」、「デジタルカメラ」、「デジタルスケール」、「デジタル 腕時計」、「デジタルカメラ 本体」等のキーワードが表示される。「デジタル 腕時計」のように、複数のキーワードを組み合わせたものが候補として表示される場合もある。検索キーワード候補表示領域114に表示可能なキーワードの上限数は予め設定されている。検索キーワード候補表示領域114に表示されたキーワードの中から何れかのキーワードをユーザが選択すると、選択されたキーワードが検索条件として指定され、この検索条件で検索が行われる。このときにジャンル選択メニュー112においてジャンルが選択されていると、そのジャンルも検索条件として指定される。
ジャンル一覧表示領域120には、ジャンルの一覧が表示される。ジャンル一覧表示領域120に表示される各ジャンルは、複数のレベル1のジャンルを統合したものである。ジャンル一覧表示領域120に表示されたジャンルの中から何れかのジャンルをユーザが選択すると、選択されたジャンルに属するレベル1のジャンルの一覧が表示される。そして、表示されたレベル1のジャンルの中から何れかのジャンルをユーザが選択すると、選択されたジャンルが検索条件として指定され、この検索条件で検索が行われる。
図3は、検索結果ページの表示例である。図3に示すように、検索結果ページは、検索条件設定領域210、ジャンル指定領域220、関連キーワード表示領域230、検索結果表示領域240等を含む。
検索条件設定領域210は、キーワード入力欄211、ジャンル選択メニュー212、検索ボタン213等を含む。キーワード入力欄211、ジャンル選択メニュー212及び検索ボタン213の機能は、キーワード入力欄111、ジャンル選択メニュー112及び検索ボタン113の機能と同じである。直前ページにおいて、検索条件として検索キーワードが指定された場合、キーワード入力欄211には、その検索キーワードが予め入力されている。キーワード入力欄211に検索キーワードが入力されている場合に検索ボタン213が選択されると、その検索キーワードが検索条件として指定され、この検索条件で検索が行われる。ここで、直前ページにおいてジャンルが検索条件として指定されていた場合、そのジャンルも検索キーワードとともに検索条件として指定されたとみなされる。
ジャンル指定領域220は、1つ以上のジャンルリンク221を含む。ジャンルリンク221は、絞り込み条件としてジャンルを指定するためのリンクであり、指定の対象となるジャンルの名称を示す。ジャンル指定領域220から何れかのジャンルリンク221をユーザが選択すると、選択されたジャンルリンク221に対応するジャンルが検索条件として指定され、この検索条件で検索が行われる。ここで、直前ページにおいて検索キーワードが検索条件として指定されていた場合、その検索キーワードもジャンルとともに検索条件として指定されたとみなされる。直前ページにおいてジャンルが検索条件として指定された場合、ジャンル指定領域220には、指定されたジャンルの子ジャンルに対応するジャンルリンク221が表示される。一方、トップページにおいて検索キーワードのみが検索条件として指定されたことによって検索結果ページが表示された場合、その検索結果ページのジャンル指定領域220には、レベル1のジャンルに対応するジャンルリンク221が表示される。
関連キーワード表示領域230は、直前ページにおいて検索キーワードが検索条件として指定された場合に表示される。関連キーワード表示領域230は、関連キーワードリンク231を含む。関連キーワードリンク231は、直前ページにおいて指定された検索キーワードに関連するキーワード(以下、「関連キーワード」という)を検索条件として指定し直して商品を検索するためのリンクであり、指定の対象となる関連キーワードを示す。ある検索キーワードの関連キーワードとしては、例えば、検索キーワードの類似語、検索キーワードが意味する物事と関連する物事を意味する語、検索キーワードを含む語等がある。また、キーワードの組み合わせが関連キーワードとして表示される場合もある。検索キーワード候補表示領域114に表示可能な関連キーワードの上限数は予め設定されている。関連キーワード表示領域230から何れかの関連キーワードリンク231をユーザが選択すると、選択された関連キーワードリンク231に対応する関連キーワードが検索キーワードとして指定され、この検索条件で検索が行われる。ここで、直前ページにおいてジャンルが検索条件として指定されていた場合、そのジャンルも検索キーワードとともに検索条件として指定されたとみなされる。
検索結果表示領域240には、検索された商品の情報の一覧が表示される。具体的に、検索結果表示領域240には、検索された商品の画像、商品名、価格、店舗名等を含む該当商品情報241が商品ごとに表示される。該当商品情報241は、検索された商品の表示順位に従って表示される。具体的に、表示順位が高いほど、検索結果表示領域240内の上方に該当商品情報241が表示される。また、検索結果表示領域240に情報が表示可能な該当商品情報241の上限数が決められている。例えば、上限数が30である場合、検索結果表示領域240には、表示順位が1位から30位までの商品の該当商品情報241が表示される。ここで、ユーザが「次の30件」と表示されたリンクを選択すると、ユーザ端末2の画面には新たな検索結果ページが表示され、その検索結果ページの検索結果表示領域240に、表示順位が31位から60位までの該当商品情報241が表示される。該当商品情報241の表示順位は、リスティングスコアに基づいて決定される。リスティングスコアは、商品またはその商品の商品ページに対して決定された評価を示す値である。リスティングスコアが高いほど、評価が高いことを示す。そして、リスティングスコアが高い商品ほど、その商品の該当商品情報241の表示順位が高くなる。例えば、商品ページに対するアクセス数(閲覧数)が多いほどリスティングスコアが高くなるようにしてもよいし、商品の購入数が多いほどリスティングスコアが高くなるようにしてもよい。検索結果表示領域240に表示された該当商品情報241の中から何れかの該当商品情報241をユーザが選択すると、商品ページが画面に表示される。商品ページは、選択された該当商品情報241に対応する商品の詳細な情報が表示されるWebページである。商品ページにおいてユーザが購入操作を行うことにより、その商品ページに情報が表示されている商品を購入することができる。
[1−3.検索キーワードとジャンルとの組の抽出、抽出結果の用途]
電子商店街サーバ1は、検索結果ページにおけるユーザの利便性を高めるため、検索キーワードと、その検索キーワードに関連性が高いジャンルとを抽出する。また、電子商店街サーバ1は、検索キーワードの組み合わせと、その組み合わせに関連性が高いジャンルとを抽出する。
検索キーワードと関連性が高いジャンルとは、これまでに、その検索キーワードとともに検索条件として指定された回数が多いジャンルである。この回数を「指定回数」という。検索キーワードの組み合わせと関連性が高いジャンルの1つの例として、これまでに、その組み合わせを構成する複数の検索キーワードとともに検索条件として指定された回数が多いジャンルが挙げられる。ユーザが検索条件を指定すると、ユーザ端末2から電子商店街サーバ1へ検索クエリが送信される。検索クエリは、商品の要求を示すメッセージである。検索条件として検索キーワードが指定されると、検索クエリには、指定された1つ以上の検索キーワードが検索キーワード情報として設定される。また、検索条件としてジャンルが指定されると、検索クエリにはジャンルIDが設定される。ジャンルIDは、ジャンルの識別情報である。電子商店街サーバ1は、ユーザ端末2から検索クエリを受信すると、クエリログを記録する。クエリログは、受信された検索クエリの履歴である。電子商店街サーバ1は、クエリログに基づいて、検索条件として指定された検索キーワード及びジャンルの各組の指定回数を計算する。
指定回数は、ユーザが明示的に検索キーワード及びジャンルの両方を同時に指定した回数と、直前ページにおいてユーザが検索キーワード及びジャンルの何れか一方を指定し、これによって表示された検索結果ページにおいてユーザが他方を絞り込み条件として指定することで、検索キーワード及びジャンルの両方が指定されたとみなされる場合の回数とを含む。ユーザが検索キーワードとジャンルとを指定した場合、例えば、指定した検索キーワードによって探したい商品が、指定したジャンルの商品の中にあるとユーザが意図していると考えられる。つまり、ユーザは、指定した検索キーワードとジャンルとの間に関連性があると考えている。それは、ユーザが検索しようとする商品が、指定する検索キーワード及びジャンルが示す検索条件を満たす商品であるからである。従って、ある検索キーワードとジャンルの組の指定回数が多いほど、検索キーワードとジャンルとの関連性が高いといえる。そして、検索キーワードと、その検索キーワードに関連性が高いジャンルとが関連付けられていれば、検索の際のユーザの利便性を高めることができる場合がある。
ある検索キーワードkとジャンルcとの組の指定回数が多いか否かは、検索キーワードkと、ジャンルcの兄弟ジャンルとの組の指定回数に基づいて決定される。ジャンルcの相対的な指定回数が多いほど、他のジャンルと比較して検索キーワードkとの関連性が高いといる。
関連性が高いとして抽出された検索キーワードとジャンルとの組には、関連性スコアが決定される。関連性スコアは、検索キーワードとジャンルとの間の関連度を示す値である。関連性スコアが高いほど、当該検索キーワードとジャンルの関連度が高いことを示す。
なお、関連性が高い検索キーワードとジャンルとの組の抽出方法の詳細については後述する。以下では、この検索キーワードとジャンルとの組の抽出結果の用途について説明する。
第1の用途は、検索結果ページのジャンル指定領域220におけるジャンルリンク221の表示の制御である。具体的に、直前ページにおいて検索キーワードが検索条件として指定された場合、ジャンル指定領域220には、指定された検索キーワードと関連性が高いジャンルのジャンルリンク221が優先的に表示される。ジャンル指定領域220におけるジャンルリンク221の表示順位は、指定された検索キーワードと、ジャンルとの関連性スコアが高いほど高くなる。ジャンルの一連としてジャンルリンク221が表示された場合、ユーザは、先に指定した検索キーワードに関連するとユーザが考えるジャンルのジャンルリンク221を選択すると考えられる。そのため、指定された検索キーワードとの関連性が高いジャンルであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、絞り込み条件として指定するジャンルをユーザがジャンル指定領域220から容易に探し出すことができる。
図4(a)乃至図4(c)は、ジャンル指定領域220におけるジャンルリンク221の表示例を示す図である。例えば、「水」という検索キーワードと、「水・ソフトドリンク」、「水・ミネラルウォーター」及び「ペット・ペットグッズ」とがそれぞれ関連性が高いとする。この場合に、トップページにおいて、ユーザが検索キーワードとして「水」を指定すると、検索結果ページのジャンル指定領域220には、図4(a)に示すように、「水・ソフトドリンク」、「水・ミネラルウォーター」及び「ペット・ペットグッズ」のジャンルリンク221がそれぞれ表示される。「水・ソフトドリンク」の方が「ペット・ペットグッズ」よりも上方に表示されているため、「水・ソフトドリンク」の方が「ペット・ペットグッズ」よりも「水」との関連性が高いことが分かる。また、「水・ソフトドリンク」の下に「水・ミネラルウォーター」が表示される。このとき、「水・ソフトドリンク」と「水・ミネラルウォーター」とが親子関係にあることが分かる態様で、それぞれのジャンルリンク221が表示される。ジャンル指定領域220には、更に全ジャンル表示ボタン222が表示される。全ジャンル表示ボタン222をユーザが選択すると、ジャンル指定領域220には、レベル1の全てのジャンルのジャンルリンク221が表示される。この場合も、「水・ソフトドリンク」と「ペット・ペットグッズ」のジャンルリンク221の表示位置は変わらない。なお、各ジャンルリンク221の横には、ジャンルリンク221が示すジャンルに属する商品の件数が表示されてもよい。つまり、ジャンルリンク221が示すジャンルが検索条件として指定された場合に検索される商品の件数が表示されてもよい。図4(a)の例において、「ペット・ペットグッズ」に属する商品の件数が「水・ソフトドリンク」に属する商品の件数よりも多かったとする。仮にそうであったとしても、「水」という検索キーワードとの関連性が高い方の「水・ソフトドリンク」が「ペット・ペットグッズ」よりも上方に表示される。
ここで、ユーザが「水・ソフトドリンク」のジャンルリンク221を選択すると、新たな検索結果ページが表示される。この検索結果ページのジャンル指定領域220には、図4(b)に示すように、「水・ソフトドリンク」の子ジャンルのうち、「水・ミネラルウォーター」のジャンルリンク221が表示される。ここで、全ジャンル表示ボタン222をユーザが選択すると、ジャンル指定領域220には、「水・ソフトドリンク」の全ての子ジャンルのジャンルリンク221が表示される。
また例えば、「デジタルカメラ AAA社」というキーワードの組み合わせと、「デジタルカメラ」というジャンルとの関連性が高いとする。また、「デジタルカメラ AAA社」というキーワードの組み合わせと、「デジタルカメラ」の子ジャンルである「AAA社」というジャンルとの関連性が高いとする。「デジタルカメラ」の子ジャンルの「AAA社」は、デジタルカメラのメーカーがAAA社であることを示すジャンルである。この場合に、トップページにおいて、ユーザが検索キーワードとして「デジタルカメラ AAA社」を指定すると、検索結果ページのジャンル指定領域220には、図4(c)に示すように、「デジタルカメラ」のジャンルリンク221と、「デジタルカメラ」の子ジャンルである「AAA社」のジャンルリンク221とが表示される。このように、直前ページにおいて指定された検索キーワードによって、ジャンル指定領域220にジャンルリンク221が表示されるジャンルが変化する。
第2の用途は、検索結果ページのキーワード入力欄211におけるキーワードサジェスト機能における検索キーワードの候補の表示制御である。これは、直前ページにおいてジャンルが検索条件として指定された場合に実行される。具体的に、ユーザがキーワード入力欄211に入力した文字列に前方一致するキーワードのうち、直前ページにおいて指定されたジャンルと関連性が高いキーワードが、検索キーワードの候補として優先的に表示される。このときのキーワードの表示順位は、指定されたジャンルと、キーワードとの関連性スコアが高いほど高くなる。指定されたジャンルとの関連性が高い検索キーワードであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、絞り込み条件としての検索キーワードをユーザが容易に指定することができる。
なお、キーワード入力欄211には、入力された文字列を含むキーワード(入力された文字列を読み仮名に含むキーワードも含む)が表示されればよい。従って、例えば、入力された文字列に後方一致するキーワードが表示されるようになってもよい。
図5(a)は、検索キーワード候補表示領域214におけるキーワードの表示例を示す図である。トップページにおいて、ユーザがジャンルとして、例えば「デジタルカメラ」を指定することにより、検索結果ページが表示される。この検索結果ページのキーワード入力欄211に対して、ユーザが、例えば「デジタルカメラ」を入力すると、図5(a)に示すように、キーワード入力欄211の直下に、検索キーワード候補表示領域214が表示される。この検索キーワード候補表示領域214には、例えば、「デジタルカメラ」、「デジタルカメラ 本体」、「デジタルカメラ AAA社」、「デジタルカメラ 一眼」、「デジタルカメラ BBB社」等が検索キーワードの候補として表示される。つまり、これらのキーワードは、「デジタルカメラ」というジャンルとの関連性が高いキーワードである。一方、「デジタルフォトフレーム」、「デジタルスケール」及び「デジタル 腕時計」は、検索キーワードの候補として表示されない。これらのキーワードは、「デジタルカメラ」というジャンルとの関連性が低いキーワードである。ユーザがキーワード入力欄211に同一の文字列を入力した場合であっても、直前ページにおいて指定されたジャンルによって、検索キーワード候補表示領域214に表示されるキーワードが変化する。
なお、ユーザがジャンル選択メニュー212からあるジャンルに対応するチェックボックスを選択してキーワード入力欄211に文字列を入力した場合、入力されている文字列を含むキーワードのうち、選択されたジャンルと関連性が高いキーワードが検索キーワード候補表示領域214に表示されるようにしてもよい。また、トップページにおいても、ユーザがジャンル選択メニュー112からあるジャンルを選択してキーワード入力欄111に文字列を入力した場合、入力されている文字列を含むキーワードのうち、選択されたジャンルと関連性が高いキーワードが検索キーワード候補表示領域114に表示されるようにしてもよい。
第3の用途は、関連キーワード表示領域230における関連キーワードリンク231の表示制御である。これは、直前ページにおいて検索キーワード及びジャンルが検索条件として指定された場合に実行される。具体的に、関連キーワード表示領域230には、直前ページにおいて指定された検索キーワードの関連キーワードのうち、直前ページにおいて指定されたジャンルと関連性が高い関連キーワードの関連キーワードリンク231が優先的に表示される。関連キーワード表示領域230における関連キーワードリンク231の表示順位は、指定されたジャンルと、関連キーワードとの関連性スコアが高いほど高くなる。指定されたジャンルとの関連性が高い関連キーワードであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、関連キーワードを検索キーワードとしてユーザが容易に指定することができる。
図5(b)は、関連キーワード表示領域230における関連キーワードリンク231の表示例を示す図である。例えば、トップページにおいて、ユーザが検索キーワードとして「AAA社」を指定し、且つ、ジャンルとして「デジタルカメラ」を指定すると、検索結果ページの関連キーワード表示領域230には、図5(b)に示すように、例えば「デジタルカメラ」、「デジタルカメラ 本体」、「デジタルカメラ AAA社」及び「デジタルカメラ 一眼」のキーワードの関連キーワードリンク231が表示される。つまり、これらのキーワードは、「AAA社」の関連キーワードのうち、「デジタルカメラ」との関連性が高いキーワードである。ユーザが直前ページにおいて同一の検索キーワードを指定した場合であっても、直前ページにおいて指定されたジャンルによって、関連キーワード表示領域230に関連キーワードリンク231が表示される関連キーワードが変化する。
第4の用途は、検索結果表示領域240における各商品の該当商品情報241の表示順位を決定するためのリスティングスコアの調整である。これは、直前ページにおいて検索キーワードが指定された場合に実行される。具体的に、直前ページにおいて指定された検索キーワードで検索された商品のうち、その検索キーワードとの関連性が高いジャンルの商品のリスティングスコアが引き上げられる。ただし、直前ページにおいてジャンルが検索条件として指定されていた場合、指定されたジャンルの子孫ジャンルに属する商品のリスティングスコアのみが引き上げられる。これにより、検索キーワードとの関連性が高いジャンルの商品の表示順位が上がる可能性がある。従って、検索結果表示領域240から検索キーワードと関連性が高い商品をユーザが容易に探し出すことができる。なお、検索キーワードとの関連性が高いジャンルの商品以外の商品のリスティングスコアが引き下げられるようになっていてもよい。
例えば、トップページにおいて、ユーザが検索キーワードとして「デジタルカメラ AAA社」を指定すると、検索結果ページの検索結果表示領域240には、「デジタルカメラ AAA社」で検索された商品の情報の一覧が表示される。このとき、「デジタルカメラ AAA社」との関連性が高い「デジタルカメラ」のジャンルの商品、及び、「デジタルカメラ」の子ジャンルである「AAA社」のジャンルの商品については、リスティングスコアが引き上げられる。
[2.電子商店街サーバの構成]
次に、電子商店街サーバ1の構成について、図6及び図7を用いて説明する。
図6は、本実施形態に係る電子商店街サーバ1の概要構成の一例を示すブロック図である。図6に示すように、電子商店街サーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWに接続して、ユーザ端末2等との通信状態を制御するようになっている。
記憶部12は、例えば、ハードディスクドライブ等により構成されている。この記憶部12には、会員情報DB12a、商品情報DB12b、ジャンル情報DB12c、キーワードDB12d、関連キーワードDB12e、クエリログDB12f、指定回数情報DB12g等のデータベースが構築されている。
図7(a)は、会員情報DB12aに登録される内容の一例を示す図である。会員情報DB12aには、ショッピングシステムSに会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報DB12aには、ユーザID、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス、保有ポイント数等のユーザの属性が、ユーザごとに対応付けて登録される。ユーザIDは、ユーザの識別情報である。保有ポイント数は、ユーザが保有しているポイントの数である。このポイントは、ユーザが電子商店街で商品を購入するときに、金銭と同等の価値を有するものとして購入代金に充てることができるものである。また、ユーザが電子商店街で商品を購入すると、例えば、購入金額に応じたポイントがユーザに付与される。
図7(b)は、商品情報DB12bに登録される内容の一例を示す図である。商品情報DB12bには、電子商店街で販売されている商品に関する商品情報が登録される。具体的に、商品情報DB12bには、商品ID、店舗ID、商品コード、ジャンルID、商品名、商品画像のURL(Uniform Resource Locator)、商品説明、商品価格等の商品の属性が、店舗が販売する商品ごとに対応付けて登録される。商品IDは、店舗等が、販売する商品を管理するための商品の識別情報である。店舗IDは、商品の販売元の店舗を示す。商品コードは、商品を識別するコード番号である。商品コードとしては、例えば、JAN(Japanese Article Number Code)コード等がある。ジャンルIDは、商品が属するジャンルのジャンルIDである。検索キーワードを用いた検索では、例えば、商品名及び商品説明の少なくとも何れか一方に検索キーワードを含む商品が検索される。
図7(c)は、ジャンル情報DB12cに登録される内容の一例を示す図である。ジャンル情報DB12cには、商品のジャンルに関するジャンル情報が登録されている。具体的に、ジャンル情報DB12cには、ジャンルID、ジャンル名、ジャンルのレベル、親ジャンルID及び子ジャンルIDリスト等のジャンルの属性が、ジャンルごとに対応付けて登録される。ジャンル情報は、例えば、電子商店街の管理者等により設定される。親ジャンルIDは、ジャンル情報によって定義されるジャンルの親ジャンルのジャンルIDである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルの子ジャンルのジャンルIDのリストである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルが子ジャンルを有する場合に設定される。ジャンル情報DB12cには、ジャンルトップのジャンル情報も登録される。ジャンルトップのジャンルIDには、例えば、予め設定された識別情報が設定される。これによって、どのジャンル情報がジャンルトップのジャンル情報であるかを識別することができる。
図7(d)は、キーワードDB12dに登録される内容の一例を示す図である。キーワードDB12dには、キーワードサジェスト機能において、検索キーワードの候補となるキーワード情報が複数登録されている。キーワード情報には、1つ以上のキーワードが設定される。例えば、予め設定された期間において各ユーザが検索条件として指定した検索キーワードのうち、指定された回数が予め設定された回数以上である検索キーワードが、キーワードDB12dに登録される。
図7(e)は、関連キーワードDB12eに登録される内容の一例を示す図である。関連キーワードDB12eには、キーワード情報と関連キーワード情報との組が複数登録されている。関連キーワード情報には、キーワード情報に設定されている1つ以上のキーワードに関連する1つのキーワードと、キーワード情報が示す1つ以上のキーワードに関連するキーワードの組み合わせとの何れかが設定される。なお、関連するキーワードや関連するキーワードの組み合わせの抽出方法としては、例えば、公知の方法を用いることができる。よって、関連するキーワードの抽出方法の詳細な説明は省略する。
図7(f)は、クエリログDB12fに登録される内容の一例を示す図である。クエリログDB12fには、クエリログが登録される。具体的に、クエリログDB12fには、受信日時、検索キーワード情報、ジャンルID、性別、年齢、都道府県等が、検索クエリが受信されるごとに対応付けて登録される。受信日時は、検索クエリが受信された日時である。検索キーワード情報には、検索条件として指定された1つの検索キーワードと、検索条件として指定された検索キーワードの組み合わせとの何れかが設定される。ジャンルIDは、検索条件として指定されたジャンルのジャンルIDである。性別、年齢及び都道府県は、検索クエリを送信したユーザ端末2を利用するユーザの属性である。つまり、検索を要求したユーザの属性として、ユーザの性別と年齢、及びユーザが住む都道府県等が登録される。性別、年齢及び都道府県は、検索を要求したユーザが電子商店街にログインしている場合に登録される。
図7(g)は、指定回数情報DB12gに登録される内容の一例を示す図である。指定回数情報DB12gには、検索キーワードとジャンルの組の検索条件としての指定回数に関する指定回数情報が登録される。具体的に、指定回数情報DB12gには、検索キーワード情報に対応付けて、ジャンルIDと指定回数との組が1つ以上登録される。ジャンルIDは、検索キーワード情報に設定された1つ以上の検索キーワードとともに検索条件として指定されたジャンルのジャンルIDである。指定回数は、そのジャンルが、検索キーワード情報に設定された1つ以上の検索キーワードとともに検索条件として指定された回数である。
次に、記憶部12に記憶されるその他の情報について説明する。記憶部12には、Webページを表示するためのHTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。また、記憶部12には、管理者等により設定された各種の設定値が記憶されている。
また、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、DBMS(Database Management System)、電子商取引管理プログラム、商品評価プログラム等の各種プログラムが記憶されている。電子商取引管理プログラムは、関連性が高い検索キーワードとジャンルとの組の抽出、検索結果ページの生成、商品の検索、商品の注文等の電子商店街に関する処理を実行するためのプログラムである。商品評価プログラムは、各商品のリスティングスコアを決定するためのプログラムである。商品評価プログラムにより、各商品のリスティングスコアが随時更新され、例えば、リスティングスコアが商品IDと対応付けて記憶部12に記憶される。システム制御部14は、例えば、専用のAPI(Application Programming Interface)を介して、商品評価プログラムからリスティングスコアを取得することができる。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしてもよいし、DVD(Digital Versatile Disc)等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
入出力インターフェース13は、通信部11及び記憶部12とシステム制御部14との間のインターフェース処理を行うようになっている。
システム制御部14は、CPU14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c等により構成されている。そして、システム制御部14は、CPU14aが、各種プログラムを読み出し実行することにより、本発明における第1抽出手段、第2抽出手段、第3抽出手段及び決定手段として機能するようになっている。
なお、電子商店街サーバ1が、複数のサーバ装置で構成されてもよい。例えば、関連性が高い検索キーワードとジャンルとの組を抽出するサーバ装置、商品の検索や注文等の処理を行うサーバ装置、ユーザ端末2からのリクエストに応じてWebページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されてもよい。
[3.関連性が高い検索キーワードとジャンルとの組の抽出方法]
次に、関連性が高い検索キーワードとジャンルとの組の抽出方法の詳細について、図8、図9及び図26を用いて説明する。
ここで、抽出対象となり得る検索キーワードを、kとする。また、説明の便宜上、レベル1のジャンルの中から、キーワードkとの関連性が高いジャンルが抽出されるものとする。レベル1のジャンルの集合を、Gとする。先ず、システム制御部14は、レベル1のジャンルの中にキーワードkとの関連性が高いジャンルが存在し得るかを判定する。具体的に、各ジャンルについて、キーワードkとともに検索条件として指定された指定回数のばらつき(偏り)の程度が判定される。各ジャンルの指定回数のばらつきが少ないほど、すなわち、均一性が高いほど、各ジャンルについて、キーワードkとの関連性に差がないということである。そして、関連性に差がないということは、レベル1のジャンルの中で、キーワードkと特に関連性が高いジャンルが存在しないことを意味する。そこで、システム制御部14は、指定回数のばらつきの大きさが、可変設定されたある大きさを超える場合に、レベル1のジャンルの中にキーワードkとの関連性が高いジャンルが存在すると判定する。この判定には、例えば、エントロピーが用いられる。エントロピーをEとすると、Eは、下記の式1により計算される。
式1において、p(g)は、キーワードkがレベル1のジャンルとともに検索条件として指定される場合において、ジャンルgが指定される確率(以下、「指定確率」という)である。レベル1のジャンルに含まれる或るジャンルcの指定確率p(c)は、下記の式2により計算される。
式2において、sc(k,c)は、ジャンルcがキーワードkとともに検索条件として指定された回数である。p(c)は、過去に、ジャンルcがキーワードkとともに指定された回数に基づいて計算されるため、p(c)は、レベル1の全てのジャンルに対して、ジャンルcが指定された割合でもある。
システム制御部14は、エントロピーEを計算すると、エントロピーEと閾値とを比較する。この閾値をαとすると、E≦αを満たす場合に、キーワードkとの関連性が高いジャンルが存在すると判定される。エントロピーEは、レベル1のジャンル数が多いほど、大きくなる傾向にある。エントロピーEの最大値は、ジャンル数が多いほど大きくなるからである。そのため、閾値αを、ジャンル数に応じてを可変に設定する必要がある。レベル1のジャンル数をnとすると、エントロピーEの最大値は、log(n)となる。そこで、システム制御部14は、閾値αを、例えば下記の式3により計算する。
式3において、K1は、0<K1<1を満たす定数である。K1は、例えば管理者により設定される。なお、閾値αの決定方法は、ここで説明した方法に限られるものではない。ジャンル数が多くなるほど、閾値αが大きくなるように決定されれば良い。また、エントロピーを計算する以外の方法で、指定回数のばらつきを示す値を計算してもよい。
システム制御部14は、レベル1のジャンルの中にキーワードkとの関連性が高いジャンルが存在し得ると判定すると、次に、レベル1のジャンルの中から、どのジャンルがキーワードkとの関連性が高いかを判定する。具体的に、システム制御部14は、指定確率と閾値とを比較する。βは、本発明における第1の閾値、第2の閾値及び第3の閾値の一例である。この閾値をβとすると、p(c)≧βを満たす場合に、ジャンルcがキーワードkに関連性が高いと判定される。閾値βは、ジャンルcがキーワードkに関連性が高いと判定される指定確率の最小値である。指定確率は、レベル1のジャンル数が少ないほど高くなる傾向にある。そのため、閾値βを、ジャンル数に応じてを可変に設定する必要がある。そこで、システム制御部14は、閾値βを、例えば下記の式4により計算する。
式4において、K2は、K2≦2を満たす定数である。また、K3は3以上の整定数である。K2及びK3は、例えば管理者により設定される。K2として1以上の値を設定すると、閾値βに、指定確立の平均値である1/n以上の値を設定することができる。ジャンル数がK3未満である場合にジャンル数に応じて閾値βを設定するとしたのは、ジャンル数が少ないときは、ジャンル数の変化に対して1/nの変化が大きいからである。その一方、ジャンル数がK3以上である場合に閾値βを一定としたのは、閾値βをあまりにも小さくすると、実際にはキーワードkとの関連性が高くはないジャンルについて、関連性が高いと判定される確率が高まるからである。なお、閾値βの決定方法は、ここで説明した方法に限られるものではない。ジャンル数が少なくなるほど、閾値βが大きくなるように決定されれば良い。
ここで、指定確率p(c)は、レベル1の全てのジャンルの指定回数の合計値に対するジャンルcの相対的な指定回数である。従って、指定確率が閾値β以上であるか否かを判定することは、ジャンルcの指定回数sc(k,c)が、下記の式5で計算される回数の閾値β2以上であるか否かを判定することである。
閾値β2は、ジャンルcがキーワードkに関連性が高いと判定される指定回数の最小値である。システム制御部14は、指定確率と閾値βとを比較する代わりに、指定回数を閾値β2と比較することにより、キーワードkとの関連性が高いか否かを判定してもよい。
システム制御部14は、ジャンルcとキーワードkとの関連性が高いと判定した場合には、このジャンルcとキーワードkとの組に対する関連性スコアを決定する。例えば、指定回数が多いほど、関連性スコアが高くなるようにしてもよい。例えば、指定回数そのものが関連性スコアとして用いられてもよい。また、指定回数が多いほど関連性スコアが高くなるようにするとともに、指定確率が高いほど関連性スコアが高くなるように、関連性スコアを決定してもよい。例えば、指定回数と指定確率とを変数とする計算式を用いて関連性スコアを計算してもよい。
ここで、関連性が高いキーワードとジャンルとの組の抽出結果の例を示す。図8(a)及び図8(b)は、レベル1のジャンルごとの指定確率を示すグラフである。なお、図8(a)及び図8(b)においては、レベル1の全てのジャンルのうち一部のジャンルについてのみのグラフを示している。
図8(a)は、キーワードkを「水」とした場合の例である。図8(a)において、実線のグラフが、指定確率のグラフである。図8(a)に示すように、各ジャンルの指定確率のばらつきが大きい。例えば、レベル1のジャンルのうち、「水・ソフトドリンク」及び「ペット・ペットグッズ」の指定確率が、他のジャンルの指定確率よりも高くなっている。特に、「水・ソフトドリンク」の指定確率の高さが顕著である。そのため、エントロピーEが閾値α以下であると判定される。つまり、「水」との関連性が高いジャンルが存在し得ると判定される。そして、「水・ソフトドリンク」及び「ペット・ペットグッズ」の指定確率が閾値β以上であるため、「水」と「水・ソフトドリンク」、及び、「水」と「ペット・ペットグッズ」が、関連性が高いキーワードとジャンルとの組として抽出される。
図8(a)においては、破線のグラフも示されている。この破線のグラフは、キーワードkを「水」とした場合に、レベル1の全てのジャンルにおいて「水」で検索された商品の数(以下、「該当商品数」という)に対する各ジャンルの該当商品数の割合である。図8(a)に示すように、該当商品数の割合と指定確率とは相関していない。つまり、該当商品数の割合とキーワードkとの関連性の高さとが相関していない。例えば、レベル1のジャンルのうち、「美容・コスメ・香水」の該当商品数の割合が、他のジャンルの割合に比べて大きくなっている。これは、「美容・コスメ・香水」の商品名や商品説明に「香水」という文字が含まれていることが多いため、「水」を商品名や商品説明に含む商品が検索された結果によるものと考えられる。一方で、「美容・コスメ・香水」の指定確率は決して高くはない。これに対し、「水・ソフトドリンク」の該当商品数の割合はきわめて小さい。
図8(b)は、キーワードkを「ポイント」とした場合の例である。図8(b)に示すように、各ジャンルの指定確率のばらつきが小さい。これは、商品名や商品説明におけるポイントに関する記載は、どのジャンルにおいても一様に見られるためであると考えられるからである。そのため、エントロピーEが閾値αより大きいと判定される。つまり、「ポイント」との関連性が高いジャンルが存在しないと判定される。
次に、レベル2以降のジャンルの場合について説明する。図9は、各レベルについてキーワードkに関連するジャンルの抽出の様子を示す図である。システム制御部14は、レベル1のジャンルの中から、キーワードkとの関連性が高いジャンルを抽出した場合には、抽出したジャンルの子ジャンルの中からキーワードkとの関連性が高いジャンルの抽出を試みる。例えば、図9に示すように、レベル1のジャンルg1、g2、g3等のうち、ジャンルg1がキーワードkとの関連性が高いジャンルとして抽出されたとする。この場合、ジャンルg1の子ジャンルg11、g12、g13等の中から、キーワードkとの関連性が高いジャンルの抽出が行われる。これは、あるジャンルが検索キーワードとの関連性が高い場合に、そのジャンルの子ジャンルの中にも検索キーワードとの関連性が高いジャンルが存在し得ると考えられるからである。一方、ジャンルg2の子ジャンル及びジャンルg3の子ジャンルの中からは、抽出が行われない。
レベル2以降についてのキーワードkとの関連性が高いジャンルの抽出方法は、基本的にはレベル1の場合と同様である。エントロピーEを計算するための式1及び式2においては、キーワードkとの関連性が高いと判定されたジャンルの子ジャンルの集合をGとすれば良い。また、閾値を計算するための式3及び式4においては、キーワードkとの関連性が高いと判定されたジャンルの子ジャンルのジャンル数をnに設定すれば良い。
図26(a)は、「水・ソフトドリンク」の子ジャンルごとの指定確率を示すグラフである。例えば、図8(a)の例において、レベル1のジャンルの数が、35であるとする。図8(a)は、レベル1の全ジャンルのうち一部のジャンルの指定確率を示す。図26(a)に示すように、「水・ソフトドリンク」の子ジャンルの数は、8である。式3により、「水・ソフトドリンク」の子ジャンルのエントロピーの閾値α2は、レベル1のジャンルのエントロピーの閾値α1よりも小さい。「水・ソフトドリンク」の子ジャンルの中で、「水・ミネラルウォーター」の指定確率が90%を超えている。そのため、「水・ソフトドリンク」の子ジャンルのエントロピーEは、閾値α2以下となる。そして、「水」と「水・ミネラルウォーター」が、関連性が高いキーワードとジャンルとの組として抽出される。図26(b)は、「水・ソフトドリンク」の子ジャンルである「水・ミネラルウォーター」の子ジャンルごとの指定確率を示すグラフである。図26(b)に示すように、「水・ミネラルウォーター」の子ジャンルの数は、22である。従って、「水・ミネラルウォーター」の子ジャンルのエントロピーの閾値α3は、レベル1のジャンルのエントロピーの閾値α1よりも小さく、「水・ソフトドリンク」の子ジャンルのエントロピーの閾値α2よりも大きい。このように、エントロピーの閾値αは、ジャンルの数に応じて変化する。「水・ミネラルウォーター」の子ジャンルの中で、「ブランドA」の指定確率が30%程度であり、「国内天然水」の指定確率が50%程度である。その他のジャンルの指定確率は10%未満である。そのため、「水・ミネラルウォーター」の子ジャンルのエントロピーEは、閾値α3以下となる。
図9においては、ジャンルg1の子ジャンルについて、エントロピーEが閾値α1以下であったため、ジャンルg1の子ジャンルの中からキーワードkとの関連性が高いジャンルが抽出される。例えば、ジャンルg11の指定確率と、ジャンルg13の指定確率とがそれぞれ閾値β1以上であったため、ジャンルg11及びジャンルg13が、それぞれキーワードkとの関連性が高いジャンルとして抽出される。更に、ジャンルg11の子ジャンルについて、エントロピーEが閾値α以下であるか否かが判定される。ここで、エントロピーEは閾値α11以下ではなかったためジャンルg11の子ジャンルの中からは抽出が行われない。一方、ジャンルg13の子ジャンルについては、エントロピーEが閾値α13以下であったため、ジャンルg13の子ジャンルg131、g132、g132等の中からキーワードkとの関連性が高いジャンルが抽出される。ここで、例えば、ジャンルg132の指定確率が閾値β13以上であったため、ジャンルg132がキーワードkとの関連性が高いジャンルとして抽出される。更に、ジャンルg132の子ジャンルについて、エントロピーEが閾値α132以下であるか否かが判定される。このように、システム制御部14は、例えば、深さ優先探索で、キーワードkと関連性が高いジャンルを階層的に抽出していく。
ところで、システム制御部14は、キーワードkとともに各ジャンルが指定された指定回数を計算するとき、子ジャンルの指定回数を、その親ジャンルの実際の指定回数に対して加算する。例えば、図9において、レベル3のジャンルg111、g112、g113の指定回数が、5、7、3であるとする。ここで、ジャンルg111等の親ジャンルであるジャンルg11の指定回数が10であるとする。この場合、ジャンルg111、g112、g113の指定回数の合計値がジャンルg11の指定回数に加算される。従って、ジャンルg11の指定回数は25となる。更に、ジャンルg11の指定回数である25が、ジャンルg11の親ジャンルであるジャンルg1にも加算される。このように、あるジャンルの指定回数が、そのジャンルの親ジャンルからレベル1のジャンルまでの各ジャンルに反映される。あるジャンルがキーワードkとともに指定されたということは、そのジャンルの親ジャンル全体の中の一部分がキーワードkとともに指定されたということを意味する。従って、この場合、親ジャンルもキーワードkとともに指定されたと考えることができるからである。なお、子ジャンルの指定回数を親ジャンルの指定回数に加算しなくてもよい。
[4.検索キーワードの組み合わせの場合の抽出方法]
次に、検索キーワードの組み合わせと関連性が高いジャンルの抽出方法について、図10乃至図14を用いて説明する。
[4−1.課題及び抽出方法]
検索キーワードの組み合わせと関連性が高いジャンルも、第3項で説明された方法で抽出することができる。具体的に、システム制御部14は、商品の複数のジャンルのそれぞれについて、ある複数の検索キーワードとともに検索条件として指定された回数を取得する。そして、システム制御部14は、取得された回数が閾値以上であるジャンルを、その複数の検索キーワードの組み合わせとの関連性が高いジャンルとして抽出する。第3項の説明中のキーワードkを、検索キーワードの組み合わせに置き換えればよい。しかしながら、検索キーワードの数と比較して、検索キーワードを組み合わせることが可能なパターンの数は極めて多い。従って、組み合わせごとに考える場合、ユーザが検索キーワードの組み合わせを検索条件として指定する回数は、ユーザが1つの検索キーワードを検索条件として指定する回数よりも少ない蓋然性がある。或る検索キーワードの組み合わせが指定された回数が少ない場合、システム制御部14は、その組み合わせと関連するジャンルを抽出することができないことがある。また、その組み合わせと関連するジャンルの抽出結果の信頼性が低くなる。
そこで、システム制御部14は、木構造で階層化された複数のジャンルの中から、検索キーワードの組み合わせに含まれる1つの検索キーワードとの関連性が高いジャンルを抽出する。この検索キーワードをKE1とする。抽出方法は、第3項で説明された方法と同じである。次いで、システム制御部14は、キーワードKE1について抽出されたジャンルの子孫ジャンルの中から、検索キーワードの組み合わせに含まれる別の1つの検索キーワードとの関連性が高いジャンルを抽出する。この検索キーワードをKE2とする。この場合の抽出方法も、第3項で説明された方法と同じである。キーワードKE1の場合、システム制御部14は、関連性が高いジャンルの抽出を、レベル1のジャンルから開始する。一方、キーワードKE2の場合、システム制御部14は、関連性が高いジャンルの抽出を、キーワードKE1との関連性が高いジャンルの子ジャンルから開始する。システム制御部14は、キーワードKE2について抽出されたジャンルを、検索キーワードKE1とKE2との組み合わせに関連するジャンルとして決定する。その理由は、検索キーワードKE2との関連性が高いジャンルのうち、検索キーワードKE1との関連性が高いジャンルに属するジャンルは、検索キーワードKE1との関連性も高いジャンルである蓋然性があるからである。それぞれの抽出処理においては、1つの検索キーワードについて抽出が試みられる。そのため、それぞれの抽出において関連性が高いジャンルを抽出することができる蓋然性を高めることができる。その結果、検索キーワードの組み合わせとの関連性が高いジャンルを抽出することができる蓋然性を高めることができる。
組み合わせが3個以上の検索キーワードを含む場合、3番目以降の検索キーワードについても同様に抽出が行われる。例えば、システム制御部14は、検索キーワードKE1とKE2との組み合わせとの関連性が高いジャンルとして決定したジャンルの子孫ジャンルの中から、検索キーワードの組み合わせに含まれる検索キーワードKE3との関連性が高いジャンルを抽出する。システム制御部14は、このときに抽出されたジャンルを、検索キーワードKE1〜K3の組み合わせとの関連性が高いジャンルとして決定する。
抽出方法を一般化して説明すると、次の通りとなる。システム制御部14は、検索キーワードの組み合わせを構成する各検索キーワードに対して、関連性が高いジャンルの抽出順を割り当てる。システム制御部14は、各検索キーワードとの関連性が高いジャンルの抽出を、割り当てた抽出順で順次実行する。このとき、システム制御部14は、ジャンルの抽出順が1番目の検索キーワードについては、全てのジャンルの中から関連性が高いジャンルを抽出する。一方、システム制御部14は、抽出順が1番目より後の検索キーワードについては、抽出順が1つ前の検索キーワードについて抽出されたジャンルの子ジャンルの中から、関連性が高いジャンルを抽出する。そして、システム制御部14は、抽出順が最後の検索キーワードについて抽出されたジャンルを、検索キーワードの組み合わせと関連するジャンルであると決定する。
次に、具体例を説明する。図10(a)は、「デジタルカメラ AAA社」という検索キーワードの組み合わせに関連するジャンルの抽出結果の一例を示す図である。図10(b)は、「デジタルカメラ」というキーワードに関連するジャンルの抽出結果の一例を示す図である。図10(c)は、「AAA社」というキーワードに関連するジャンルの抽出結果の一例を示す図である。「デジタルカメラ AAA社」の指定回数が少ないため、図10(a)に示すように、第3項で説明された方法では、「デジタルカメラ AAA社」に関連するジャンルが存在しなかった。一方、「デジタルカメラ」というキーワードに関連するジャンル及び「AAA社」に関連するジャンルはそれぞれ存在する。図10(b)に示すように、「デジタルカメラ」に関連するジャンルとして、「家電・AV・カメラ」、「家電・AV・カメラ」の子ジャンルである「デジタルカメラ」、「デジタルカメラ」の子ジャンルである「AAA社」、「BBB社」及び「CCC社」が存在する。また、図10(c)に示すように、「AAA社」というキーワードに関連するジャンルとして、例えば、「家電・AV・カメラ」、「家電・AV・カメラ」の子ジャンルである「デジタルカメラ」、「デジタルカメラ」の子ジャンルである「AAA社」が存在する。また、これらのジャンル以外にも、「AAA社」というキーワードに関連するジャンルが多数存在する。その理由は、AAA社が様々な種類の製品を製造しているからである。
図11は、「デジタルカメラ AAA社」との関連性が高いジャンルが抽出される様子の一例を示す図である。システム制御部14は、例えば、全ジャンルの中から、先ず「デジタルカメラ」というキーワードとの関連性が高いジャンルを抽出する。抽出結果は、図10(b)に示されている。次いで、システム制御部14は、抽出した各ジャンルに対して、「デジタルカメラ」の関連性スコアが高い順に順位を付ける。例えば、第1位が「デジタルカメラ」、第2位が「AAA社」、第3位が「BBB社」であるとする。システム制御部14は、関連性スコアの順位が予め設定された順位以上であるジャンルのそれぞれについて、子ジャンルの中から、「AAA社」というキーワードとの関連性が高いジャンルを抽出する。例えば、3位以上のジャンルが選択されるとする。「デジタルカメラ」というジャンルの子ジャンルのうち、「AAA社」というキーワードとの関連性が高いジャンルは、「AAA社」である。一方、「AAA社」というジャンルの子ジャンルの中に、「AAA社」というキーワードとの関連性が高いジャンルは存在しなかったとする。また、「BBB社」というジャンルの子ジャンルの中にも、「AAA社」というキーワードとの関連性が高いジャンルは存在しなかったとする。従って、図11に示すように、システム制御部14は、「デジタルカメラ AAA社」に関連するジャンルは、「デジタルカメラ」の子ジャンルの「AAA社」であると決定する。なお、システム制御部14は、このときに抽出されたジャンルのうち、関連性スコアの順位が予め設定された順位以上であるジャンルのみを、「デジタルカメラ AAA社」に関連するジャンルであると決定する。
上述した例は、抽出順が2番目の検索キーワードである「AAA社」との関連性が高いジャンルの抽出をレベル1のジャンルから開始した場合に抽出されるジャンルの中に、「デジタルカメラ AAA社」との関連性が高いジャンルが存在する場合の例である。しかしながら、必ずしもそうであるとは限らない場合がある。例えば、検索キーワードの「AAA社」とともにジャンルの「デジタルカメラ」を検索条件として指定された回数が、検索キーワードの「AAA社」とともに「デジタルカメラ」の兄弟ジャンルを検索条件として指定された回数と比較して多くはなかったとする。一方、検索キーワードの「AAA社」とともに「デジタルカメラ」の子ジャンルの「AAA社」を検索条件として指定された回数が、検索キーワードの「AAA社」とともにジャンルの「AAA社」の兄弟ジャンルを検索条件として指定された回数と比較して多かったとする。この場合、「デジタルカメラ」の子ジャンルの「AAA社」は、検索キーワードの「AAA社」との関連性が高いジャンルとしては抽出されない。その理由は、ジャンルの「デジタルカメラ」が検索キーワードの「AAA社」と関連性が高くはないため、システム制御部14は、「デジタルカメラ」の子ジャンルの中から関連性が高いジャンルの抽出を行わないからである。しかしながら、システム制御部14が、検索キーワードの「デジタルカメラ」との関連性が高いジャンルである「デジタルカメラ」の子孫ジャンルの中から、検索キーワードの「AAA社」との関連性が高いジャンルを抽出する場合、システム制御部14は、ジャンルの「デジタルカメラ」と検索キーワードの「AAA社」との関連性が高いか否にかかわらず、抽出を行う。そのため、この場合であっても、「デジタルカメラ」の子孫ジャンルである「AAA社」が、「デジタルカメラ AAA社」との関連性が高いジャンルとして抽出される。このように、システム制御部14は、抽出順が1番目のキーワードに関連するジャンルの子ジャンルから、抽出順が2番目のキーワードに関連するキーワードの抽出を開始する。仮に、抽出順が2番目のキーワードのみで抽出を行った場合、レベル1のジャンルから、抽出順が2番目のキーワードに関連するジャンルを抽出を開始する。このような場合に抽出することができないジャンルを、抽出順が2番目のキーワードに関連するジャンルとして抽出することができる。
システム制御部14が関連性スコアの順位でジャンルを絞り込む理由の1つとして、処理時間を削減することが挙げられる。また、別の理由として、抽出結果の信頼性を高めることが挙げられる。それぞれの抽出処理においては、1つの検索キーワードとの関連性が高いジャンルが抽出される。しかしながら、検索キーワードの組み合わせとの関連性が高いジャンルとして最終的に抽出されるジャンルは、各抽出処理の結果の組み合わせである。従って、最終的に抽出されるジャンルの中に、検索キーワードの組み合わせとの関連性が低いジャンルが含まれている可能性がある。そのため、各抽出処理において、検索キーワードとの関連性が高いジャンルの中でも、相対的に関連性が低いジャンルが除外される。なお、システム制御部14は、関連性スコアの順位でジャンルを絞り込まなくてもよい。
システム制御部14は、検索キーワードの組み合わせに関連するジャンルを抽出した場合、抽出したジャンルの祖先に相当するジャンルも、その組み合わせに関連するジャンルとして決定してもよい。例えば、図11の例の場合、「AAA社」というジャンルに加えて、「家電・AV・カメラ」及び「デジタルカメラ」も、「デジタルカメラ AAA社」に関連するジャンルとして決定される。
[4−2.関連するジャンルを抽出する検索キーワードの順番]
システム制御部14は、ユーザによる検索キーワードの指定順(入力順)と同じ抽出順で、関連性が高いジャンルを抽出する。その理由は、複数の検索キーワードの指定時、ユーザは前の方で広い概念を示すキーワードを指定し、後の方で狭い概念を示す検索キーワードを指定する傾向があるからである。抽出順が後ろの方であるほど、より狭い概念を示すジャンルの中から抽出が行われる。そのため、各抽出処理において、検索キーワードが示す概念と、抽出範囲に含まれるジャンルが示す概念とを合致させることができる。そのため、各抽出処理において、検索キーワードとの関連性が高いジャンルを抽出することができる蓋然性を高めることができる。これにより、検索キーワードの組み合わせとの関連性が高いジャンルを抽出することができる蓋然性を高めることができる。「デジタルカメラ AAA社」の場合、ユーザは、1番目に「デジタルカメラ」を指定し、2番目に「AAA社」を指定している。そのため、1番目に「デジタルカメラ」についてジャンルが抽出され、2番目に「AAA社」についてジャンルが抽出される。
ユーザによる検索キーワードの指定順と同じ抽出順で抽出処理が行われた場合、検索キーワードの組み合わせに関連するジャンルを抽出することができないことも考えられる。その場合、システム制御部14は、抽出順を変更する。そして、システム制御部14は、変更後の抽出順で、検索キーワードの組み合わせに関連するジャンルの抽出を再度試みる。これにより、検索キーワードの組み合わせに関連するジャンルを抽出することができる蓋然性を高めることができる。
次に、具体例を説明する。図12(a)は、「20インチ ディスプレイ」という検索キーワードの組み合わせに関連するジャンルの抽出結果の一例を示す図である。図12(b)は、「20インチ」というキーワードに関連するジャンルの抽出結果の一例を示す図である。図12(c)は、「ディスプレイ」というキーワードに関連するジャンルの抽出結果の一例を示す図である。
図12(a)に示すように、第3項で説明された方法では、「20インチ ディスプレイ」に関連するジャンルは存在しない。一方、図12(b)に示すように、「20インチ」に関連するジャンルとして、「スポーツ・アウトドア」、「スポーツ・アウトドア」の子ジャンルである「自転車」、「自転車」の子ジャンルである「子供用自転車」及び「折りたたみ自転車」、「折りたたみ自転車」の子ジャンルである「EEE社」が存在する。また、図12(c)に示すように、「ディスプレイ」に関連するジャンルとして、「インテリア・寝具・収納」、「インテリア・寝具・収納」の子ジャンルである「収納家具」が存在する。更に、「ディスプレイ」に関連するジャンルとして、「パソコン・周辺機器」、「パソコン・周辺機器」の子ジャンルである「ディスプレイ・モニター」が存在する。
図13(a)は、検索キーワードの指定順で抽出処理が行われた場合の抽出例である。システム制御部14は、先ず全ジャンルの中から「20インチ」との関連性が高いジャンルを抽出する。次いで、システム制御部14は、関連性スコアの順位が高いジャンルである「子供用自転車」、「折りたたみ自転車」及び「EEE社」を選択する。次いで、システム制御部14は、「子供用自転車」、「折りたたみ自転車」及び「EEE社」のそれぞれの子ジャンルの中から、「ディスプレイ」との関連性が高いジャンルの抽出を試みる。しかしながら、「子供用自転車」、「折りたたみ自転車」及び「EEE社」の子ジャンルの中に、「ディスプレイ」との関連性が高いジャンルが存在しなかったとする。この場合、システム制御部14は、「20インチ ディスプレイ」に関連するジャンルを抽出することができない。そこで、システム制御部14は、抽出順を変更する。
図13(b)は、ジャンルの抽出順を変更して抽出処理が行われた場合の抽出例である。システム制御部14は、先ず全ジャンルの中から「ディスプレイ」との関連性が高いジャンルを抽出する。次いで、システム制御部14は、関連性スコアの順位が高い「インテリア・寝具・収納」、「収納家具」及び「ディスプレイ・モニター」を選択する。次いで、システム制御部14は、「インテリア・寝具・収納」、「収納家具」及び「ディスプレイ・モニター」のそれぞれの子ジャンルの中から、「20インチ」との関連性が高いジャンルの抽出を試みる。このとき、図13(b)に示すように、「ディスプレイ・モニター」の子ジャンルの中から、「液晶18〜20インチ」というジャンルが、「20インチ」との関連性が高いジャンルとして抽出された。一方、「インテリア・寝具・収納」及び「収納家具」のそれぞれの子ジャンルの中に、「ディスプレイ」との関連性が高いジャンルが存在しなかったとする。この場合、システム制御部14は、「液晶18〜20インチ」を、「20インチ ディスプレイ」に関連するジャンルであると決定する。
検索キーワードの数が多くなると、抽出順の組み合わせの数が多くなる。システム制御部14は、検索キーワードの組み合わせに関連するジャンルを抽出することができるまで、抽出順を変更して抽出処理を行ってもよい。または、システム制御部14は、抽出順を変更することができる回数の上限を制限してもよい。
なお、電子商店街サーバ1は、ジャンルの抽出を最初に行うとき、指定された複数の検索キーワード間で概念の広さを比較してもよい。そして、電子商店街サーバ1は、広い概念を示す検索キーワードほど、抽出順が上位になるように各検索キーワードの抽出順を決定してもよい。その理由は、前の方で狭い概念を示すキーワードを指定するユーザが存在する可能性があるからである。この場合、抽出順がユーザによる検索キーワードの指定順と異なってもよい。例えば、電子商店街サーバ1は、単語間の意味的関係を定義する概念辞書(意味辞書)に基づいて、各検索キーワードのジャンルの抽出順を決定してもよい。この概念辞書は、上位語と下位語との関係も定義する。電子商店街サーバ1に、概念辞書のデータベースが予め構築されていてもよい。あるいは、電子商店街サーバ1は、概念辞書のWebサイトを利用してもよい。また、電子商店街サーバ1は、複数の検索キーワードのそれぞれを検索条件として検索を行った場合に検索される商品の件数を取得してもよい。そして、電子商店街サーバ1は、検索される商品の件数が多い検索キーワードほど、抽出順が上位になるように各検索キーワードの抽出順を決定してもよい。その理由は、検索される商品の件数が多い検索キーワードほど、広い概念を示す検索キーワードである蓋然性があるからである。
[5.関連性が高いジャンルの選択]
ある検索キーワードの組み合わせについては、第3項で説明された方法で関連性が高いジャンルを抽出ことができる場合がある。システム制御部14は、第3項で説明された方法と第4項で説明された方法との2通りの方法で、関連性が高いジャンルの抽出を試みてもよい。そして、システム制御部14は、何れか一方の方法のみでジャンルを抽出することができた場合、抽出されたジャンルを、関連性が高いジャンルとして決定する。一方、システム制御部14は、それぞれの方法でジャンルを抽出することができた場合、予め定められた基準に基づいて、何れか一方の方法で抽出されたジャンルを、関連性が高いジャンルとして決定してもよい。この判断基準は、検索キーワードの組み合わせに関連するジャンルとして、より適切なジャンルが選択されるように定められる。
例えば、抽出されたジャンルのレベルを判断基準としてもよい。具体的に、システム制御部14は、レベルが大きい方のジャンルを、検索キーワードの組み合わせに関連するジャンルとして決定する。その理由は、レベルが大きいジャンルであるほど、検索キーワードの組み合わせとの関連性が高い蓋然性があるからである。レベルが大きいほど、ジャンルが示す範囲が狭くなる。これは、レベルが大きいほど、ジャンルに属する商品の特定性が高くなることを示す。つまり、ジャンルに属する商品の条件が具体的になることを示す。特定性が高いジャンルであるほど、検索キーワードの組み合わせとの関連性が高いと考えられる。
次に、具体例を説明する。図14(a)は、「X Y」という検索キーワードの組み合わせに関連するジャンルを、第3項で説明された方法で抽出した場合の抽出結果の一例を示す図である。図14(b)は、「X Y」という検索キーワードの組み合わせに関連するジャンルを、第4項で説明された方法で抽出される様子の一例を示す図である。
図14(a)に示すように、第3項で説明された方法では、「X Y」に関連するジャンルとして、ジャンルg1及びg11が抽出された。ジャンルg1のレベルは1であり、ジャンルg11のレベルは2である。一方、図14(b)に示すように、「X」に関連するジャンルとして、ジャンルg1、g11、g111、g112、g2及びg21が存在する。ジャンルg11はジャンルg1の子ジャンルである。ジャンルg111及びg112は、ジャンルg11の子ジャンルである。ジャンルg21は、ジャンルg2の子ジャンルである。また、「Y」に関連するジャンルとして、ジャンルg2、g21及びg212が存在する。ジャンルg212はジャンルg21の子ジャンルである。第4項で説明された方法では、「X Y」に関連するジャンルとしてジャンルg212が抽出される。ジャンルg212のレベルは3である。従って、ジャンルg212が、「X Y」に関連するジャンルとして決定される。
仮に、第3項で説明された方法でジャンルg1111が抽出されたとする。ジャンルg1111のレベルは4である。従って、この場合、ジャンルg212ではなく、ジャンルg1111が、「X Y」に関連するジャンルとして決定される。なお、ジャンルが同一である場合、何れの方法で抽出されたジャンルを関連性が高いジャンルとしてシステム制御部14が決定するかは任意である。
判断基準は、指定回数であってもよい。この指定回数は、第3項で説明された方法で抽出されたジャンルが、関連性が高いジャンルを抽出する検索キーワードの組み合わせとともに検索条件として指定された回数である。具体的に、システム制御部14は、指定回数が、予め設定された閾値以上である場合、第3項で説明された方法で抽出されたジャンルを、関連性が高いジャンルとして決定する。指定回数が多いほど、抽出結果の精度が高くなるからである。
判断基準は、ジャンルのレベルと指定回数の両方であってもよい。レベルが大きくなるほど、指定回数が減る傾向にある。つまり、ジャンルのレベルと指定回数とは相関関係があると考えられる。ジャンルと検索キーワードの組み合わせとの関連性に関して、ジャンルのレベルと指定回数とは相反する関係にある。そこで、システム制御部14が両方を考慮することで、バランスをとることができる。例えば、システム制御部14は、第3項で説明された方法で抽出されたジャンルのレベルとそのジャンルの指定回数とを掛け合わせて、指標値を計算してもよい。そして、システム制御部14は、指標値が、予め設定された閾値以上である場合、第3項で説明された方法で抽出されたジャンルを、関連性が高いジャンルとして決定する。システム制御部14は、例えば、第4項で説明された方法で抽出されたジャンルのレベルに応じて、指標値と比較する閾値を決定してもよい。具体的に、システム制御部14は、第4項で説明された方法で抽出されたジャンルのレベルが大きいほど、閾値を高くする。
なお、システム制御部14は、第3項で説明された方法で抽出されたジャンルと、第4項で説明された方法で抽出されたジャンルとの両方を、関連性が高いジャンルとして決定してもよい。
[6.ショッピングシステムの動作]
次に、ショッピングシステムSの動作について、図15乃至図24を用いて説明する。
図15は、本実施形態に係る電子商店街サーバ1のシステム制御部14の指定回数集計処理における処理例を示すフローチャートである。指定回数集計処理は、各検索キーワードについて、各ジャンルとともに検索条件として指定された回数を集計する処理である。指定回数集計処理は、例えば定期的に(例えば、1日ごと等に)実行される。
先ず、システム制御部14は、指定回数DB12gを初期化する(ステップS1)。具体的に、システム制御部14は、指定回数DB12gに登録されている全ての情報を削除する。次いで、システム制御部14は、キーワード・ジャンルリストを初期化する(ステップS2)。キーワード・ジャンルリストは、検索キーワード、ジャンルID及び指定回数の組が登録されるリストである。
次いで、システム制御部14は、クエリログDB12fに登録されたクエリログから、検索キーワード情報とジャンルIDとの組を取得する(ステップS3)。具体的に、システム制御部14は、受信日時が予め設定された期間内(例えば、現時点から30日前までの期間内)であるクエリログから、それぞれ検索キーワード情報とジャンルIDとの組を取得する。このとき、システム制御部14は、検索キーワード情報及びジャンルIDの両方が設定されているクエリログから取得を行う。
次いで、システム制御部14は、各ジャンルについて、検索キーワード情報とともに検索条件として指定された回数を取得する(ステップS4)。具体的に、システム制御部14は、クエリログから取得した検索キーワード情報とジャンルIDとの各組のうち、一組を選択する。次いで、システム制御部14は、クエリログから取得した組のうち、選択した組と検索キーワード情報及びジャンルIDが同一である組の数を、指定回数として数える。このとき、システム制御部14は、選択した組自体も、1つとして、指定回数に含める。次いで、システム制御部14は、既に選択したことがある組と同一の組を除いて、クエリログから取得した組のうち、一組を選択する。そして、システム制御部14は、選択した組について、上述した方法と同様に指定回数を数える。以降、システム制御部14は、選択可能な組がなくなるまで同様の処理を行う。
システム制御部14は、ステップS4の処理を終えると、指定回数が計算された検索キーワード情報及びジャンルIDの各組について、検索キーワード情報、ジャンルID及び指定回数を対応付けてキーワード・ジャンルリストに登録する(ステップS5)。
次いで、システム制御部14は、キーワード・ジャンルリストに登録された検索キーワード情報のうち1つを選択する(ステップS6)。ここで、選択された検索キーワード情報を、「選択キーワード情報」と称する。次いで、システム制御部14は、キーワード・ジャンルリストから、選択キーワード情報と同一の検索キーワード情報を含む組を検索する。そして、システム制御部14は、検索した組からなる検索リストを生成する(ステップS7)。次いで、システム制御部14は、検索リストに登録された組のうち、その組に含まれるジャンルIDに対応するジャンルのレベルが最も大きいものを1つ選択する(ステップS8)。ジャンルのレベルは、ジャンル情報DB12cに登録されているジャンル情報のうち、ジャンルIDに対応するジャンル情報に含まれているレベルである。ここで、選択された組に含まれるジャンルIDに対応するジャンルを、「選択ジャンル」と称する。
次いで、システム制御部14は、選択ジャンルのレベルがレベル1であるか否かを判定する(ステップS9)。このとき、システム制御部14は、選択ジャンルのレベルがレベル1ではないと判定した場合には(ステップS9:NO)、検索リストに登録された組の中に、選択ジャンルの親ジャンルのジャンルIDを含む組があるか否かを判定する(ステップS10)。選択ジャンルの親ジャンルのジャンルIDは、選択ジャンルのジャンルIDに対応するジャンル情報に含まれている親ジャンルIDである。システム制御部14は、選択ジャンルの親ジャンルのジャンルIDを含む組があると判定した場合には(ステップS10:YES)、選択した組に含まれる指定回数を、親ジャンルのジャンルIDを含む組に含まれる指定回数に加算する(ステップS11)。一方、システム制御部14は、選択ジャンルの親ジャンルのジャンルIDを含む組がないと判定した場合には(ステップS10:NO)、選択キーワード情報、親ジャンルのジャンルID及び指定回数の組を新たに検索クリストに追加する(ステップS12)。システム制御部14は、このときの指定回数を、選択した組に含まれる指定回数と同一とする。
システム制御部14は、ステップS9において選択ジャンルのレベルがレベル1であると判定した場合(ステップS9:YES)、ステップS11の処理を終えた場合、または、ステップS12の処理を終えた場合には、検索リストに登録された組の中にまだ選択していない組があるか否かを判定する(ステップS13)。このとき、システム制御部14は、まだ選択していない組があると判定した場合には(ステップS13:YES)、まだ選択していない組のうち、その組に含まれるジャンルIDに対応するジャンルのレベルが最も大きいものを1つ選択する(ステップS14)。次いで、システム制御部14は、ステップS9に移行する。システム制御部14は、ステップS9〜S13の処理を繰り返すことにより、各ジャンルの指定回数を、そのジャンルの親ジャンルからレベル1のジャンルまでの各ジャンルに加算する。
一方、システム制御部14は、全ての組を選択したと判定した場合には(ステップS13:NO)、指定回数情報DB12gに指定回数情報を登録を行う(ステップS15)。具体的に、システム制御部14は、選択キーワード情報を指定回数情報DB12gに登録するとともに、検索リストに登録された各組に含まれるジャンルID及び指定回数を、選択キーワード情報に対応付けて登録する。
次いで、システム制御部14は、既に選択したことがある検索キーワード情報と同一のキーワード情報を除いて、キーワード・ジャンルリストに登録された検索キーワード情報のうちまだ選択していない検索キーワード情報があるか否かを判定する(ステップS16)。このとき、システム制御部14は、まだ選択していない検索キーワード情報があると判定した場合には(ステップS16:YES)、まだ選択していない検索キーワード情報のうち1つを選択する(ステップS17)。次いで、システム制御部14は、ステップS7に移行する。システム制御部14は、ステップS7〜S17の処理を繰り返すことにより、関連性が高い検索キーワード情報とジャンルとの組を全て抽出する。そして、システム制御部14は、全ての検索キーワード情報を選択したと判定した場合には(ステップS16:NO)、指定回数集計処理を終了させる。
図16は、本実施形態に係る電子商店街サーバ1のシステム制御部14の関連ジャンル抽出制御処理における処理例を示すフローチャートである。関連ジャンル抽出制御処理は、1つのキーワードまたはキーワードの組み合わせとの関連性が高いジャンルを抽出する処理である。関連ジャンル抽出制御処理は、必要に応じて実行される。例えば、ユーザが検索条件として1つ以上の検索キーワードを指定した場合に、指定された1つ以上の検索キーワードについて、関連ジャンル抽出制御処理が実行される。また、例えば、電子商店街の管理者が1つ以上のキーワードを指定した場合に、指定された1つ以上のキーワードについて、関連ジャンル抽出制御処理が実行される。管理者は、例えば、電子商店街において特定のキーワードまたは特定のキーワードの組み合わせに関連するWebページを予め用意しておく場合がある。特定のキーワードまたは特定のキーワードの組み合わせに関連するジャンルの一覧が表示されるようにWebページを生成する場合、管理者は、関連するジャンルを知る必要がある。
関連ジャンル抽出制御処理の引数として、1つ以上のキーワードを含むキーワード情報が設定される。先ず、システム制御部14は、引数のキーワード情報に複数のキーワードが設定されているか否かを判定する(ステップS31)。このとき、システム制御部14は、引数のキーワード情報に1つのキーワードのみが設定されていると判定した場合には(ステップS31:NO)、次に実行する関連ジャンル抽出処理の引数として、ジャンルトップのジャンルID、及び関連ジャンル抽出制御処理の引数のキーワード情報を設定する(ステップS32)。次いで、システム制御部14は、関連ジャンル抽出処理を実行する(ステップS33)。このときの関連ジャンル抽出処理では、引数のキーワード情報に設定された1つのキーワードとの関連性が高いジャンルが抽出される。関連ジャンル抽出処理の詳細については後述する。
一方、システム制御部14は、引数のキーワード情報に複数のキーワードが設定されていると判定した場合には(ステップS31:YES)、複数キーワード対応関連ジャンル抽出処理を実行する(ステップS34)。複数キーワード対応関連ジャンル抽出処理では、引数のキーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルが抽出される。複数キーワード対応関連ジャンル抽出処理の詳細については後述する。
システム制御部14は、ステップS33またはS34の処理を終えると、関連ジャンル抽出制御処理を終了させる。このとき、システム制御部14は、関連ジャンル抽出制御処理の戻り値として、関連ジャンルリストを出力する。関連ジャンルリストは、引数のキーワード情報との関連性が高いジャンルのリストである。具体的に、関連ジャンルリストには、引数のキーワード情報、抽出されたジャンルのジャンルID及び関連性スコアを含むレコードが、抽出されたジャンルごとに登録されている。
図17は、本実施形態に係る電子商店街サーバ1のシステム制御部14の関連ジャンル抽出処理における処理例を示すフローチャートである。
先ず、システム制御部14は、引数のジャンルIDに対応するジャンルの子ジャンルの数を計算する(ステップS41)。具体的に、システム制御部14は、引数のジャンルIDに対応するジャンル情報に含まれている子ジャンルIDリストに登録されているジャンルIDの数を数える。次いで、システム制御部14は、計算した子ジャンルの数に基づいて、エントロピーの閾値αを計算する(ステップS42)。例えば、システム制御部14は、上述した式3を用いて計算する。
次いで、システム制御部14は、引数のジャンルIDに対応するジャンルの各子ジャンルについて、引数のキーワード情報に対応する指定確率を計算する(ステップS43)。つまり、システム制御部14は、上述した式2の計算に相当する処理を実行する。具体的に、システム制御部14は、引数のジャンルIDに対応するジャンル情報に含まれている子ジャンルIDリストから、ジャンルIDを取得する。次いで、システム制御部14は、引数のキーワード情報に対応する指定回数情報から、取得したジャンルIDに対応する指定回数を検索する。このとき、指定回数情報に、取得したジャンルIDに対応する指定回数が登録されていない場合には、そのジャンルIDのジャンルについての指定回数を0とする。システム制御部14は、この検索を子ジャンルIDリストに登録されているジャンルID分実行する。次いで、システム制御部14は、検索された指定回数の合計値を計算する。そして、システム制御部14は、検索された各指定回数を合計値で除算することにより、指定確率を計算する。
次いで、システム制御部14は、計算した指定回数に基づいて、エントロピーEを計算する(ステップS44)。つまり、システム制御部14は、上述した式1の計算を行う。次いで、システム制御部14は、エントロピーEが閾値α以下であるか否かを判定する(ステップS45)。このとき、システム制御部14は、エントロピーEが閾値α以下ではないと判定した場合には(ステップS45:NO)、関連ジャンル抽出処理を終了させる。一方、システム制御部14は、エントロピーEが閾値α以下であると判定した場合には(ステップS45:YES)、子ジャンルの数に基づいて、指定確率の閾値βを計算する(ステップS46)。例えば、システム制御部14は、上述した式4を用いて計算する。
次いで、システム制御部14は、引数のジャンルIDに対応するジャンルの子ジャンルのうち1つを選択する(ステップS47)。ここで、選択した子ジャンルを、「選択子ジャンル」と称する。次いで、システム制御部14は、選択子ジャンルの指定確率が閾値β以上であるか否かを判定する(ステップS48)。このとき、システム制御部14は、指定確率が閾値β以上であると判定した場合には(ステップS48:YES)、選択子ジャンルの関連性スコアを、選択子ジャンルの指定回数に応じて決定する(ステップS49)。次いで、システム制御部14は、引数のキーワード情報、選択子ジャンルのジャンルID及び決定した関連性スコアを関連付けて、1つのレコードとして関連ジャンルリストに登録する(ステップS50)。
次いで、システム制御部14は、選択子ジャンルについて、そのジャンルの子ジャンルが設定されているか否かを判定する(ステップS51)。具体的に、システム制御部14は、選択子ジャンルのジャンルIDに対応するジャンル情報に子ジャンルリストが設定されている場合には、子ジャンルが設定されていると判定し、子ジャンルリストが設定されていない場合には、子ジャンルが設定されていないと判定する。このとき、システム制御部14は、子ジャンルが設定されていると判定した場合には(ステップS51:YES)、関連ジャンル抽出処理の引数として、選択子ジャンルのジャンルID及び引数のキーワード情報を設定する(ステップS52)。次いで、システム制御部14は、関連ジャンル抽出処理を実行する(ステップS53)。
システム制御部14は、ステップS48において選択子ジャンルの指定確率が閾値β以上ではないと判定した場合(ステップS48:NO)、ステップS51において子ジャンルが設定されていないと判定した場合(ステップS51:NO)、または、ステップS53の処理を終えた場合には、引数のジャンルIDに対応するジャンルの子ジャンルのうち、まだ選択していない子ジャンルがあるか否かを判定する(ステップS54)。このとき、システム制御部14は、まだ選択していない子ジャンルがあると判定した場合には(ステップS54:YES)、まだ選択していない子ジャンルのうち1つを選択する(ステップS55)。次いで、システム制御部14は、ステップS48に移行する。一方、システム制御部14は、全ての子ジャンルを選択したと判定した場合には(ステップS54:NO)、関連ジャンル抽出処理を終了させる。
なお、システム制御部14は、引数のキーワード情報が検索条件として指定された回数が少ない場合、関連性が高いジャンルを抽出しなくてもよい。この場合、各ジャンルについて、引数のキーワード情報とともに検索条件として指定された回数が少なくなるため、引数のキーワード情報との関連性が高いと判定することは妥当とはいえないからである。
図18は、本実施形態に係る電子商店街サーバ1のシステム制御部14の複数キーワード対応関連ジャンル抽出処理における処理例を示すフローチャートである。
先ず、システム制御部14は、次に実行する関連ジャンル抽出処理の引数として、ジャンルトップのジャンルID、及び関連ジャンル抽出制御処理の引数のキーワード情報を設定する(ステップS501)。次いで、システム制御部14は、関連ジャンル抽出処理を実行する(ステップS502)。このときの関連ジャンル抽出処理では、引数のキーワード情報に設定されたのキーワードの組み合わせとの関連性が高いジャンルが、第3項で説明された方法で抽出される。
次いで、システム制御部14は、第4項で説明された方法でジャンルを抽出するキーワードの順番を、引数のキーワード情報に設定された各キーワードの指定順で設定する(ステップS503)。次いで、システム制御部14は、設定抽出順対応関連ジャンル抽出処理を実行する(ステップS504)。設定抽出順対応関連ジャンル抽出処理では、引数のキーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルが、第4項で説明された方法で抽出される。このとき、ステップS503で設定された抽出順で関連性が高いジャンルの抽出が行われる。なお、設定抽出順対応関連ジャンル抽出処理の詳細については後述する。
次いで、システム制御部14は、設定抽出順対応関連ジャンル抽出処理により関連性が高いジャンルを抽出することができたか否かを判定する(ステップS505)。このとき、システム制御部14は、抽出することができなかったと判定した場合には(ステップS505:NO)、まだ試していない抽出順があるか否かを判定する(ステップS506)。このとき、システム制御部14は、まだ試していない抽出順があると判定した場合には(ステップS506:YES)、抽出順をまだ試していない抽出順の1つに変更する(ステップS507)。そして、システム制御部14は、設定抽出順対応関連ジャンル抽出処理を実行する(ステップS504)。
一方、システム制御部14は、全ての抽出順を試したと判定した場合には(ステップS506:NO)、ステップS502の関連ジャンル抽出処理により関連性が高いジャンルが抽出されたか否かを判定する(ステップS508)。このとき、システム制御部14は、関連性が高いジャンルが抽出されたと判定した場合には(ステップS508:YES)、関連ジャンル抽出処理により抽出されたジャンルを、引数のキーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルであると決定する(ステップS509)。システム制御部14は、この処理を終えると、複数キーワード対応関連ジャンル抽出処理を終了させる。一方、システム制御部14は、関連性が高いジャンルが抽出されなかったと判定した場合には(ステップS508:NO)、複数キーワード対応関連ジャンル抽出処理を終了させる。この場合、引数のキーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルは存在しない。
ステップS505において、システム制御部14は、設定抽出順対応関連ジャンル抽出処理により関連性が高いジャンルを抽出することができたと判定した場合には(ステップS505:YES)、抽出されたジャンルのレベル同士を比較する。具体的に、システム制御部14は、関連ジャンル抽出処理により抽出されたジャンルのレベルの値が、設定抽出順対応関連ジャンル抽出処理により抽出されたジャンルのレベルの値よりも大きいか否かを判定する(ステップS510)。つまり、システム制御部14は、第3項で説明された方法で抽出されたジャンルのレベルが第4項で説明された方法で抽出されたジャンルのレベルよりも大きいか否かを判定する。このとき、システム制御部14は、関連ジャンル抽出処理により抽出されたジャンルのレベルの値の方が大きいと判定した場合には(ステップS510:YES)、ステップS509に移行する。
一方、システム制御部14は、関連ジャンル抽出処理により抽出されたジャンルのレベルの値が、設定抽出順対応関連ジャンル抽出処理により抽出されたジャンルのレベルの値よりも大きくはないと判定した場合には(ステップS510:NO)、設定抽出順対応関連ジャンル抽出処理により抽出されたジャンルについて、引数のキーワード情報に設定されたキーワードの組み合わせに対する関連性スコアを決定する(ステップS511)。例えば、システム制御部14は、設定抽出順対応関連ジャンル抽出処理において、各キーワードについて抽出したジャンルの関連性スコアを取得する。そして、システム制御部14は、取得した関連性スコアの平均値を、キーワードの組み合わせに対する関連性スコアとして算出する。
次いで、システム制御部14は、設定抽出順対応関連ジャンル抽出処理により抽出されたジャンルを、引数のキーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルであると決定する(ステップS512)。このとき、システム制御部14は、設定抽出順対応関連ジャンル抽出処理により関連ジャンルリストに登録されたレコードに、決定した関連性スコアを登録する。システム制御部14は、この処理を終えると、複数キーワード対応関連ジャンル抽出処理を終了させる。
図19は、本実施形態に係る電子商店街サーバ1のシステム制御部14の設定抽出順対応関連ジャンル抽出処理における処理例を示すフローチャートである。
先ず、システム制御部14は、ジャンルトップのジャンルIDが登録されたジャンルリスト0を生成する(ステップS601)。次いで、システム制御部14は、抽出順iに1を設定する(ステップS602)。ここで、ジャンルリストiは、抽出順がi番目のキーワードについて抽出されたジャンルのリストである。
次いで、システム制御部14は、ジャンルのインデックスjに1を設定する(ステップS603)。次いで、システム制御部14は、次に実行する関連ジャンル抽出処理の引数として、ジャンルリストi−1のj番目に登録されているジャンルID、及び抽出順がi番目のキーワードを設定する(ステップS604)。次いで、システム制御部14は、関連ジャンル抽出処理を実行する(ステップS605)。このときの関連ジャンル抽出処理では、引数に設定されたジャンルIDが示すジャンルの子孫ジャンルの中から、i番目のキーワードとの関連性が高いジャンルが抽出される。次いで、システム制御部14は、インデックスjが、ジャンルリストi−1に登録されているジャンルIDの数の値より小さいか否かを判定する(ステップS606)。このとき、インデックスjがジャンルIDの数の値より小さいと判定した場合には(ステップS606:YES)、インデックスjに1を加算する(ステップS607)。そして、システム制御部14は、ステップS604に移行する。システム制御部14は、ステップS604〜S607の処理を繰り返すことにより、ジャンルリストi−1にジャンルIDが登録されているジャンルの子孫ジャンルの中から、i番目のキーワードとの関連性が高いジャンルを抽出する。
そして、システム制御部14は、インデックスjがジャンルの数の値以上であると判定した場合には(ステップS606:NO)、ステップS605の関連ジャンル抽出処理によりジャンルを抽出することができたか否かを判定する(ステップS608)。このとき、システム制御部14は、抽出することができなかったと判定した場合には(ステップS608:NO)、抽出結果として失敗を設定する(ステップS609)。システム制御部は、この処理を終えると、設定抽出順対応関連ジャンル抽出処理を終了させる。
一方、システム制御部14は、抽出することができたと判定した場合には(ステップS608:YES)、抽出されたジャンルを関連性スコアの高い順に順位付けする。そして、システム制御部14は、順位が、予め設定された順位以上であるジャンルのジャンルIDが登録されたジャンルリストiを生成する(ステップS610)。
次いで、システム制御部14は、抽出順iが、指定されたキーワードの数の値より小さいか否かを判定する(ステップS611)。このとき、抽出順iがキーワードの数の値より小さいと判定した場合には(ステップS611:YES)、抽出順iに1を加算する(ステップS612)。そして、システム制御部14は、ステップS603に移行する。システム制御部14は、ステップS603〜S612の処理を繰り返すことにより、キーワード情報に設定されたキーワードの組み合わせとの関連性が高いジャンルを抽出する。
そして、システム制御部14は、抽出順iがキーワードの数の値以上であると判定した場合には(ステップS611:NO)、関連ジャンルリストを生成する(ステップS613)。具体的に、システム制御部14は、ジャンルリストiに登録されたジャンルIDごとに、ジャンルID及び引数のキーワード情報を含むレコードを、関連ジャンルリストに登録する。次いで、システム制御部14は、抽出結果として成功を設定する(ステップS614)。システム制御部は、この処理を終えると、設定抽出順対応関連ジャンル抽出処理を終了させる。
図20は、本実施形態に係る電子商店街サーバ1のシステム制御部14の検索クエリ受信時処理における処理例を示すフローチャートである。検索クエリ受信時処理は、電子商店街サーバ1が、電子商店街のトップページまたは検索結果ページを表示しているユーザ端末2から検索クエリを受信したときに開始される。
先ず、システム制御部14は、ユーザにより指定された検索条件を満たす商品を検索する(ステップS71)。具体的に、システム制御部14は、検索クエリに検索キーワード情報が設定されている場合には、商品情報DB12bから、商品名及び商品説明の少なくとも一方に検索キーワード情報を含む商品情報を検索する。また、システム制御部14は、検索クエリにジャンルIDが設定されている場合には、商品情報DB12bから、このジャンルIDに対応するジャンルに属する商品の商品情報を、商品情報に含まれるジャンルIDに基づいて検索する。システム制御部14は、検索クエリに検索キーワード情報及びジャンルIDが設定されている場合には、商品名及び商品説明の少なくとも一方に検索キーワード情報を含む商品情報であり、且つ、このジャンルIDに対応するジャンルに属する商品の商品情報を検索する。
次いで、システム制御部14は、クエリログを記録する(ステップS72)。具体的に、システム制御部14は、受信日時として現在日時を取得する。そして、システム制御部14は、受信日時と、検索クエリに設定されている検索キーワード情報及びジャンルIDを含むクエリログを生成する。このとき、システム制御部14は、検索を要求したユーザがログインしている場合には、性別、年齢及び都道府県をクエリログに含める。例えば、システム制御部14は、ユーザによる電子商店街へのログイン時に、ユーザ端末2からユーザIDを受信し、受信したユーザIDをクッキーとしてユーザ端末2に保存させている。そのため、ユーザがログインしている場合には、検索クエリに、ユーザIDを含むクッキーが付加されている。そこで、システム制御部14は、検索クエリに付加されているクッキーからユーザIDを取得する。そして、システム制御部14は、会員情報DB12aからユーザIDに対応する会員情報を取得する。そして、システム制御部14は、会員情報に基づいて、性別、年齢及び都道府県を特定する。システム制御部14は、生成したクエリログを、クエリログDB12fに登録する。
次いで、システム制御部14は、検索クエリに検索キーワード情報が設定されているか否かを判定する(ステップS73)。このとき、システム制御部14は、検索キーワード情報が設定されていると判定した場合には(ステップS73:YES)、検索クエリに設定されている検索キーワード情報を、関連ジャンル抽出制御処理の引数として設定する(ステップS74)。そして、システム制御部14は、関連ジャンル抽出制御処理を実行する(ステップS75)。
システム制御部14は、検索クエリに検索キーワード情報が設定されていないと判定した場合(ステップS73:NO)、または、ステップS75の処理を終えた場合には、記憶部12から、検索結果ページのHTML文書のテンプレートを取得する(ステップS76)。次いで、システム制御部14は、検索条件設定領域設定処理を実行する(ステップS77)。具体的に、システム制御部14は、検索クエリにジャンルIDが設定されている場合には、検索結果ページの検索ボタン213が選択されたときに、キーワード入力欄211に入力された1つ以上の検索キーワードとともにこのジャンルIDが送信されるよう、このジャンルIDを、取得したテンプレートに設定する。
次いで、システム制御部14は、ジャンル指定領域設定処理を実行する(ステップS78)。ジャンル指定領域設定処理では、検索結果ページのジャンル指定領域220にジャンルリンク221を表示するためのデータが、取得したテンプレートに設定される。次いで、システム制御部14は、関連キーワード表示領域設定処理を実行する(ステップS79)。関連キーワード表示領域設定処理では、検索結果ページの関連キーワード表示領域230に関連キーワードリンク231を表示するためのデータが、取得したテンプレートに設定される。次いで、システム制御部14は、検索結果表示領域設定処理を実行する(ステップS80)。検索結果表示領域設定処理では、検索結果ページの検索結果表示領域240に、該当商品情報241を表示するためのデータが、取得したテンプレートに設定される。なお、ジャンル指定領域設定処理、関連キーワード表示領域設定処理及び検索結果表示領域設定処理の詳細については後述する。
次いで、システム制御部14は、各情報の設定により完成した検索結果ページのHTML文書を、検索クエリの送信元のユーザ端末2へ送信する(ステップS81)。システム制御部14は、この処理を終えると、検索クエリ受信時処理を終了させる。
図21は、本実施形態に係る電子商店街サーバ1のシステム制御部14のジャンル指定領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、検索条件として1つ以上の検索キーワードが指定されているか否かを判定する(ステップS101)。つまり、システム制御部14は、検索クエリに検索キーワード情報が設定されているか否かを判定する。このとき、システム制御部14は、1つ以上の検索キーワードが指定されていないと判定した場合には(ステップS101:NO)、ジャンルリンク221を表示するための通常の処理を実行する(ステップS102)。具体的に、システム制御部14は、検索クエリにジャンルIDが設定されていない場合には、レベル1の各ジャンルについてジャンルリンク221用のデータを生成する。一方、システム制御部14は、検索クエリにジャンルIDが設定されている場合には、このジャンルIDに対応するジャンルの各子ジャンルについてジャンルリンク221用のデータを生成する。ジャンルリンク221用のデータを生成するとき、システム制御部14は、aタグのhref属性に商品検索用のURLを設定する。ここで、システム制御部14は、検索クエリの送信先を示すURLに、対応するジャンルのジャンルIDを付加して、商品検索用のURLを生成する。また、システム制御部14は、aタグの開始タグと終了タグとの間に、対応するジャンルのジャンル名を設定する。システム制御部14は、生成したジャンルリンク221用のデータを、取得したテンプレートにおいて、ジャンル指定領域220に対応する領域に追加設定する。システム制御部14は、この処理を終えると、ジャンル指定領域設定処理を終了させる。
一方、システム制御部14は、1つ以上の検索キーワードが指定されていると判定した場合には(ステップS101:YES)、検索条件としてジャンルが指定されているか否かを判定する(ステップS103)。つまり、システム制御部14は、検索クエリにジャンルIDが設定されているか否かを判定する。ここで、検索クエリに設定されたジャンルIDに対応するジャンルを、「指定ジャンル」という。このとき、システム制御部14は、ジャンルが指定されていると判定した場合には(ステップS103:YES)、検索クエリに設定されているジャンルIDを取得する(ステップS104)。一方、システム制御部14は、ジャンルが指定されていないと判定した場合には(ステップS103:NO)、ジャンルトップのジャンルIDを取得する(ステップS105)。
システム制御部14は、ステップS104またはS105の処理を終えると、取得したジャンルIDが示すジャンルの子孫ジャンルの中のうち、検索キーワード情報に設定された1つ以上の検索キーワードとの関連性が高いジャンルのレコードを、図20に示すステップS75の関連ジャンル抽出制御処理により出力された関連ジャンルリストから検索する(ステップS106)。具体的に、システム制御部14は、関連ジャンルリストに登録されている各レコードからジャンルIDを取得する。次いで、システム制御部14は、レコードから取得したジャンルIDと、ジャンル情報DB12cに登録されているジャンル情報とに基づいて、レコードから取得したジャンルIDが示すジャンルの中から、ステップS104またはS105において取得されたジャンルIDが示すジャンルの子孫ジャンルを特定する。そして、システム制御部14は、検索されたレコードの中から、特定されたジャンルのジャンルIDを含むレコードを抽出する。
次いで、システム制御部14は、ステップS106の検索の結果、該当するレコードがあったか否かを判定する(ステップS107)。このとき、システム制御部14は、該当するレコードがなかったと判定した場合には(ステップS107:NO)、ステップS102に移行する。これは、ユーザにより指定された検索キーワード情報との関連性が高いジャンルがなかった場合である。
一方、システム制御部14は、該当するレコードがあったと判定した場合には(ステップS107:YES)、検索したレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを選択する(ステップS108)。次いで、システム制御部14は、選択したレコードに含まれるジャンルIDに対応するジャンルのジャンルリンク221用のデータを生成する(ステップS109)。この生成方法は、ステップS102において説明した方法と同様である。ただし、システム制御部14は、商品検索用のURLを生成するとき、検索クエリの送信先を示すURLに、対応するジャンルのジャンルIDと検索キーワード情報に含まれる1つ以上の検索キーワードとを付加して生成する。次いで、システム制御部14は、生成したジャンルのジャンルリンク221用のデータを、取得したテンプレートにおいて、ジャンル指定領域220に対応する領域に追加設定する(ステップS110)。
次いで、システム制御部14は、検索したレコードのうちまだ選択していないレコードがあるか否かを判定する(ステップS111)。このとき、システム制御部14は、まだ選択していないレコードがあると判定した場合には(ステップS111:YES)、まだ選択していないレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを1つ選択する(ステップS112)。次いで、システム制御部14は、ステップS109に移行する。システム制御部14は、ステップS109〜S112の処理を繰り返すことにより、検索キーワード情報と関連性が高いジャンルのジャンルリンク221の表示順位を関連性スコアに基づいて決定する。つまり、システム制御部14は、関連性スコアが高いジャンルであるほどそのジャンルリンク221が優先的に表示されるようにする。そして、システム制御部14は、全てのレコードを選択したと判定した場合には(ステップS111:NO)、ジャンル指定領域設定処理を終了させる。
図22は、本実施形態に係る電子商店街サーバ1のシステム制御部14の関連キーワード表示領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、検索条件として1つ以上の検索キーワードが設定されているか否かを判定する(ステップS201)。このとき、システム制御部14は、1つ以上の検索キーワードが指定されていないと判定した場合には(ステップS201:NO)、関連キーワード表示領域設定処理を終了させる。一方、システム制御部14は、1つ以上の検索キーワードが指定されていると判定した場合には(ステップS201:YES)、検索条件としてジャンルが設定されているか否かを判定する(ステップS202)。
このとき、システム制御部14は、ジャンルが指定されていないと判定した場合には(ステップS202:NO)、関連キーワードリンク231を表示するための通常の処理を実行する(ステップS203)。具体的に、システム制御部14は、関連キーワードDB12eから、検索クエリに設定された検索キーワード情報に対応する関連キーワード情報を検索する。次いで、システム制御部14は、検索した関連キーワード情報の関連キーワードリンク231用のデータを生成する。このとき、システム制御部14は、aタグのhref属性に商品検索用のURLを設定する。ここで、システム制御部14は、検索クエリの送信先を示すURLに、関連キーワード情報を付加して、商品検索用のURLを生成する。また、システム制御部14は、aタグの開始タグと終了タグとの間に、関連キーワード情報を設定する。システム制御部14は、生成した関連キーワードリンク231用のデータを、取得したテンプレートにおいて、関連キーワード表示領域230に対応する領域に追加設定する。システム制御部14は、この処理を終えると、関連キーワード表示領域設定処理を終了させる。
一方、システム制御部14は、ジャンルが指定されていると判定した場合には(ステップS202:YES)、関連キーワードDB12eから、検索キーワード情報に対応する関連キーワード情報を検索する(ステップS204)。
次いで、システム制御部14は、検索された関連キーワード情報を、関連ジャンル抽出制御処理の引数として設定する(ステップS205)。そして、システム制御部14は、検索された関連キーワード情報ごとに、関連ジャンル抽出制御処理を実行する(ステップS206)。これにより、ユーザにより指定された1つ以上の検索キーワードに関連する1つ以上のキーワードについて、関連性が高いジャンルが抽出される。
次いで、システム制御部14は、ステップS206の関連ジャンル抽出制御処理により出力された関連ジャンルリストから、指定ジャンルのジャンルIDを含むレコードを検索する(ステップS207)。
次いで、システム制御部14は、検索したレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを選択する(ステップS208)。次いで、システム制御部14は、選択したレコードにキーワード情報として含まれる関連キーワード情報の関連キーワードリンク231用のデータを生成する(ステップS209)。この生成方法は、ステップS203において説明した方法と同様である。ただし、システム制御部14は、商品検索用のURLを生成するとき、検索クエリの送信先を示すURLに、関連キーワード情報と、指定ジャンルのジャンルIDとを付加して生成する。次いで、システム制御部14は、生成した関連キーワードリンク231用のデータを、取得したテンプレートにおいて、関連キーワード表示領域230に対応する領域に追加設定する(ステップS210)。
次いで、システム制御部14は、関連キーワードリンク231を表示可能な上限数まで関連キーワードリンク231用のデータを追加したか否かを判定する(ステップS211)。このとき、システム制御部14は、上限数まで追加したと判定した場合には(ステップS211:YES)、関連キーワード表示領域設定処理を終了させる。一方、システム制御部14は、上限数まで追加していないと判定した場合には(ステップS211:NO)、検索したレコードのうちまだ選択していないレコードがあるか否かを判定する(ステップS212)。このとき、システム制御部14は、まだ選択していないレコードがあると判定した場合には(ステップS212:YES)、まだ選択していないレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを1つ選択する(ステップS213)。次いで、システム制御部14は、ステップS209に移行する。システム制御部14は、ステップS209〜S213の処理を繰り返すことにより、検索キーワード情報の関連キーワード情報であって、且つ、指定ジャンルとの関連性が高い関連キーワード情報の関連キーワードリンク231の表示順位を関連性スコアに基づいて決定する。つまり、システム制御部14は、関連性スコアが高い関連キーワード情報であるほどその関連キーワードリンク231が優先的に表示されるようにする。そして、システム制御部14は、全てのレコードを選択したと判定した場合には(ステップS212:NO)、関連キーワード表示領域設定処理を終了させる。
図23は、本実施形態に係る電子商店街サーバ1のシステム制御部14の検索結果表示領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、検索クエリ受信時処理のステップS71において検索された各商品のリスティングスコアを、例えば、商品評価プログラムのAPIを介して取得する(ステップS301)。次いで、システム制御部14は、検索条件として1つ以上の検索キーワードが指定されているか否かを判定する(ステップS302)。このとき、システム制御部14は、1つ以上の検索キーワードが指定されていると判定した場合には(ステップS302:YES)、検索された商品のうち1つを選択する(ステップS303)。ここで、選択された商品を、「選択商品」と称する。
次いで、システム制御部14は、指定ジャンルの子ジャンルのうち、選択商品が属する子ジャンルのジャンルIDを取得する。選択商品が属するジャンルとは、選択商品の商品情報に含まれるジャンルIDに対応するジャンルと同一のジャンルであるか、または、選択商品の商品情報に含まれるジャンルIDに対応するジャンルを子孫ジャンルに有するジャンルである。次いで、システム制御部14は、図20に示すステップS75の関連ジャンル抽出制御処理により出力された関連ジャンルリストから、取得したジャンルIDを含むレコードを検索する(ステップS304)。次いで、システム制御部14は、検索の結果、該当するレコードがあったか否かを判定する(ステップS305)。このとき、システム制御部14は、該当するレコードがあったと判定した場合には(ステップS305:YES)、選択商品のリスティングスコアを引き上げる(ステップS306)。例えば、システム制御部14は、リスティングスコアに、予め設定された値を加算してもよいし、予め設定されたの係数を乗算してもよい。また、システム制御部14は、検索されたレコードに含まれる関連性スコアが高いほど、リスティングスコアの引き上げ幅を大きくしてもよい。
システム制御部14は、ステップS305において該当するレコードがなかったと判定した場合(ステップS305:NO)、または、ステップS306の処理を終えた場合には、検索した商品のうちまだ選択していない商品があるか否かを判定する(ステップS307)。このとき、システム制御部14は、まだ選択していない商品があると判定した場合には(ステップS307:YES)、まだ選択していない商品のうち1つを選択する(ステップS308)。次いで、システム制御部14は、ステップS304に移行する。システム制御部14は、ステップS304〜S308の処理を繰り返すことにより、検索した商品のうち、検索キーワード情報との関連性が高いジャンルの商品のリスティングスコアを引き上げる。
システム制御部14は、ステップS302において1つ以上の検索キーワードが指定されていないと判定した場合(ステップS302:NO)、または、全ての商品を選択したと判定した場合には(ステップS307:NO)、検索した商品のうち、リスティングスコアが最も高い商品を選択する(ステップS309)。次いで、システム制御部14は、選択した商品の商品情報に基づいて、該当商品情報241用のデータを生成する。そして、システム制御部14は、生成したデータを、取得したテンプレートにおいて、検索結果表示領域240に対応する領域に追加設定する(ステップS310)。
次いで、システム制御部14は、該当商品情報241を表示可能な上限数まで該当商品情報241用のデータを追加したか否かを判定する(ステップS311)。このとき、システム制御部14は、上限数まで追加したと判定した場合には(ステップS311:YES)、検索結果表示領域設定処理を終了させる。一方、システム制御部14は、上限数まで追加していないと判定した場合には(ステップS311:NO)、検索した商品のうちまだ選択していない商品があるか否かを判定する(ステップS312)。このとき、システム制御部14は、まだ選択していない商品があると判定した場合には(ステップS312:YES)、まだ選択していない商品のうち、リスティングスコアが最も高い商品を1つを選択する(ステップS313)。次いで、システム制御部14は、ステップS310に移行する。システム制御部14は、ステップS310〜S313の処理を繰り返すことにより、リスティングスコアが高い商品であるほどその該当商品情報241が優先的に表示されるようにする。そして、システム制御部14は、全ての商品を選択したと判定した場合には(ステップS312:NO)、検索結果表示領設定処理を終了させる。
電子商店街サーバ1から検索結果ページのHTML文書を受信したユーザ端末2は、このHTML文書に基づいて、検索結果ページを画面に表示する。このとき、ユーザ端末2のCPUは、ジャンルリンク221用のデータに基づいて、このデータの設定順にジャンルリンク221をジャンル指定領域220に表示する。また、ユーザ端末2のCPUは、関連キーワードリンク231用のデータに基づいて、このデータの設定順に関連キーワードリンク231を関連キーワード表示領域230に表示する。また、ユーザ端末2のCPUは、該当商品情報241用のデータに基づいて、このデータの設定順に該当商品情報241を検索結果表示領域240に表示する。
図24は、本実施形態に係る電子商店街サーバ1のシステム制御部14の検索キーワード候補要求受信時処理における処理例を示すフローチャートである。ユーザ端末2により表示されている検索結果ページのキーワード入力欄211に対してユーザが入力操作を行う都度、ユーザ端末2は、検索キーワード候補要求を電子商店街サーバ1へ送信する。入力操作には、キーワード入力欄211への文字の追加、キーワード入力欄211からの文字の削除等の操作が含まれる。検索キーワード候補要求には、送信時点でキーワード入力欄211に入力されている文字列が設定される。また、直前ページにおいてジャンルが検索条件として指定された場合、検索キーワード候補要求には、そのジャンルのジャンルIDが設定される。検索キーワード候補要求受信時処理は、電子商店街サーバ1が、検索キーワード候補要求を受信したときに開始される。
先ず、システム制御部14は、検索キーワード候補要求にジャンルIDが設定されているか否かを判定する(ステップS401)。このとき、システム制御部14は、ジャンルIDが設定されていないと判定した場合には(ステップS401:NO)、キーワードDB12dから、検索キーワード候補要求に設定されている文字列に前方一致するキーワード情報を検索する。そして、システム制御部14は、検索したキーワード情報のリストを、1つ以上の検索キーワードの候補としてユーザ端末2へ送信する(ステップS402)。システム制御部14は、この処理を終えると、検索キーワード候補要求受信時処理を終了させる。
一方、システム制御部14は、ジャンルIDが設定されていると判定した場合には(ステップS401:YES)、キーワードDB12dから、検索キーワード候補要求に設定されている文字列に前方一致する検索キーワード情報を含むキーワード情報を検索する(ステップS403)。次いで、システム制御部14は、検索されたキーワード情報を、関連ジャンル抽出制御処理の引数として設定する(ステップS404)。そして、システム制御部14は、検索されたキーワード情報ごとに、関連ジャンル抽出制御処理を実行する(ステップS405)。これにより、ユーザにより入力された文字列を含む1つ以上のキーワードについて、関連性が高いジャンルが抽出される。
次いで、システム制御部14は、ステップS405の関連ジャンル抽出制御処理により出力された関連ジャンルリストに登録されたレコードの中から、検索キーワード候補要求に設定されているジャンルIDを含むレコードを抽出する(ステップS406)。次いで、システム制御部14は、抽出したレコードを、そのレコードに含まれる関連性スコアが高い順に並べ替える。次いで、システム制御部14は、関連性スコアが高い順に、抽出したレコードからキーワード情報を取得する。このとき、システム制御部14は、最大でも検索キーワード候補表示領域214に表示可能なキーワードの上限数まで取得する。そして、システム制御部14は、レコードから取得したキーワード情報を、関連性スコアが高い順に示すリストを生成する。こうして、システム制御部14は、検索キーワード候補要求に設定されている文字列に前方一致するキーワード情報のうち、検索キーワード候補要求に設定されているジャンルIDに対応するジャンルと関連性が高いキーワード情報が優先的に表示されるように、検索キーワード候補表示領域214に表示されるキーワード情報を決定する。そして、システム制御部14は、生成したキーワード情報のリストをユーザ端末2へ送信する(ステップS407)。システム制御部14は、この処理を終えると、検索キーワード候補要求受信時処理を終了させる。
ユーザ端末2は、電子商店街サーバ1からキーワード情報のリストを受信すると、検索結果ページに検索キーワード候補表示領域214を表示する。そして、ユーザ端末2のCPUは、受信したリストに登録されているキーワード情報を、登録順に検索キーワード候補表示領域214に表示するとともに、1つ以上の検索キーワードとして指定可能に表示する。
以上説明したように、本実施形態によれば、システム制御部14が、商品の複数のジャンルの中から、抽出順が1番目のキーワードとともに検索条件として指定された回数が閾値以上であるジャンルを抽出する。次いで、システム制御部14は、抽出されたジャンルの中から、抽出順が2番目のキーワードとともに検索条件として指定された回数が閾値以上であるジャンルを、1番目のキーワードと2番目のキーワードとの組み合わせに関連するジャンルとして抽出する。従って、キーワードの組み合わせとの関連性が高いジャンルを抽出することができる。また、キーワードの組み合わせとの関連性が高いジャンルが抽出される蓋然性を高めることができる。
なお、システム制御部14は、1番目のキーワードに対応する閾値(第1の閾値の一例)と、2番目のキーワードに対応する閾値(第2の閾値の一例)とを、別々に決定する。そのため、これらの閾値が互いに同一となることもあれば、これらの閾値が互いに異なることもある。
また、システム制御部14が、キーワードの組み合わせとの関連性が高いジャンルを抽出するとき、検索キーワードの指定順と同じ抽出順で、各キーワードとの関連性が高いジャンルを抽出する。従って、最初の抽出で、キーワードの組み合わせに関連性が高いジャンルが抽出される蓋然性を高めることができる。
また、システム制御部14が、抽出順が1番目のキーワードとの関連性が高いジャンル及び抽出順が2番目のキーワードとの関連性が高いジャンルの少なくとも何れか一方を抽出することができなかったことにより、検索キーワードの指定順と同じ抽出順ではキーワードの組み合わせとの関連性が高いジャンルを抽出できなかった場合、抽出順を変更して抽出を行う。従って、キーワードの組み合わせに関連性が高いジャンルが抽出される蓋然性を高めることができる。
また、システム制御部14が、第3項で説明された方法により、抽出順が1番目のキーワードと及び2番目のキーワードとともに検索条件として指定された回数が閾値以上であるジャンルを抽出する。次いで、システム制御部14が、予め定められた判断基準に基づいて、第3項で説明された方法で抽出されたジャンルと、第4項で説明された方法で抽出されたジャンルと、の何れか一方を、キーワードの組み合わせに関連するジャンルとして決定する。従って、基準の設定により、キーワードの組み合わせに関連性が高いジャンルとしての信頼性が高いジャンルを抽出することができる。
なお、システム制御部14は、第3項で説明された方法で抽出を行う場合の閾値(第3の閾値の一例)を、第4項で説明された方法で抽出を行う場合の閾値(第1の閾値及び第2の閾値の一例)とは別に決定する。そのため、これらの閾値が互いに同一となることもあれば、これらの閾値が互いに異なることもある。
また、システム制御部14が、レベルが大きい方のジャンルを、キーワードの組み合わせに関連するジャンルとして決定する。従って、キーワードの組み合わせに関連性が高いジャンルとしての信頼性が高いジャンルを抽出することができる。
また、システム制御部14が、兄弟関係にある複数のジャンル間での指定回数のばらつきの少なさを示すエントロピーが閾値以下である場合に、兄弟関係にある複数のジャンルの中から指定回数が閾値以上であるジャンルを抽出する。従って、兄弟関係にある複数のジャンルのうち指定回数が他のジャンルと比較して多いジャンルをキーワードとの関連性が高いジャンルとして抽出することができる。
また、システム制御部14が、1つ以上の検索キーワードとの関連性が高いジャンルに対して、そのジャンルに属する複数の子ジャンルが設定されている場合、その複数の子ジャンルのそれぞれについてその1つ以上の検索キーワードとともに検索条件として指定された回数を取得し、取得された回数が閾値以上である子ジャンルを抽出する。従って、キーワードに関連性が高いジャンルを階層的に抽出することができる。
また、システム制御部14が、兄弟関係にある複数のジャンルのうち、指定回数が兄弟関係にあるジャンルの数に応じて決定された閾値以上であるジャンルを、検索キーワードとの関連性が高いジャンルとして抽出する。従って、キーワードに関連性が高いジャンルを、兄弟関係にあるジャンルの数に応じて適切に抽出することができる。
また、システム制御部14が、検索クエリをユーザ端末2から受信し、複数のジャンルのうち、検索クエリに含まれる1つ以上の検索キーワードとの関連性が高いジャンルのジャンルリンク221をジャンル指定領域220に表示するユーザ端末2によるジャンルの表示順位を、取得された回数に応じた関連性スコアに基づいて決定する。従って、検索条件として指定するジャンルをジャンル指定領域220からユーザが容易に探し出すことができる。
また、システム制御部14が、キーワード入力欄211に入力されている文字列を、検索条件として指定されたジャンルのジャンルIDとともにユーザ端末2から受信し、受信された文字列を含む1つ以上のキーワードを検索キーワード候補表示領域214に表示するユーザ端末2により表示されるキーワードを決定するとき、受信されたジャンルIDが示すジャンルとの関連性が高い1つ以上のキーワードが優先的に表示されるように決定する。従って、検索キーワード候補表示領域214からユーザが検索キーワードを容易に指定することができる。
また、システム制御部14が、検索クエリをユーザ端末2から受信し、検索クエリに含まれる1つ以上の検索キーワードに基づいて検索された商品のリスティングスコアを取得し、検索された商品のうち、検索クエリに含まれる1つ以上の検索キーワードとの関連性が高いジャンルに属する商品のリスティングスコアを、他の商品のリスティングスコアに対して相対的に上げる。従って、検索結果表示領域240から1つ以上のキーワードと関連性が高い商品の情報をユーザが容易に探し出すことができる。
なお、電子商店街サーバ1は、関連性が高い1つ以上の検索キーワードとジャンルとの組を、検索条件を指定したユーザの属性ごとに抽出してもよい。これは、ユーザの属性によって、検索条件としての1つ以上の検索キーワードとジャンルとの組の指定の傾向が異なる場合があるからである。クエリログDB12fにユーザの属性が登録されるため、1つ以上の検索キーワードとジャンルの組の指定回数を、検索条件を指定したユーザの属性ごとに計算することが可能である。属性ごとに抽出する理由は、検索結果ページの表示内容をパーソナライズするためである。
具体的に、システム制御部14は、例えば、図15に示す指定回数集計処理のステップS3において、クエリログから、検索キーワード情報、ジャンルID、性別、年齢及び都道府県の組を抽出する。このとき、システム制御部14は、性別、年齢及び都道府県が登録されていないクエリログからは、検索キーワード情報とジャンルIDのみを抽出する。そして、システム制御部14は、ステップS4〜S17の処理を、上述した通りに実行する。つまり、システム制御部14は、先ず、ユーザの属性を考慮しないで、指定回数を集計する。
次いで、システム制御部14は、ユーザの属性ごとに、ステップS4〜S17と基本的には同様の処理を実行する。一例として、男女別に実行する場合について説明する。ステップS4において、システム制御部14は、クエリログDB12fから取得した組のうち、性別として男性が設定された組を抽出する。そして、システム制御部14は、クエリログDB12fから取得した組のうち抽出した組に基づいて、各ジャンルについて、検索キーワードとともに検索条件として指定された回数を計算する(ステップS4)。そして、システム制御部14は、キーワード・ジャンルリストへの登録を行う(ステップS5)。ステップS15において、システム制御部14は、指定回数情報DB12gに指定回数情報を登録するとき、男性を示す属性情報を含む指定回数情報を登録する。システム制御部14は、男性についての処理が終わると、女性についても同様に処理を行う。
システム制御部14は、ユーザ端末2から検索クエリを受信したとき、検索を要求したユーザがログインしているか否かを判定する。これは、検索クエリにユーザIDを含むクッキーが付加されているかを確認することで判定可能である。システム制御部14は、ユーザがログインしていないと判定した場合には、図17に示す関連ジャンル抽出処理のステップS43において、属性情報を含まない指定回数情報に基づいて、指定確率を計算する。ユーザがログインしていない場合には、ユーザの属性を特定することができないからである。従って、システム制御部14は、ユーザの属性を考慮しないで処理を行う。一方、システム制御部14は、ユーザがログインしていると判定した場合には、ユーザの属性を特定する。そして、システム制御部14は、ユーザの属性を示す属性情報を含む指定回数情報に基づいて、指定確率を計算する。これにより、検索結果ページにおける表示内容を、閲覧するユーザの属性に適した内容にすることができる。なお、検索キーワード候補要求受信時処理においても同様に処理が行われる。
また、上記実施形態において、電子商店街サーバ1は、検索条件として1つ以上の検索キーワードとジャンルとが指定された回数に基づいて、関連性が高い1つ以上の検索キーワードとジャンルとの組を抽出していた。しかしながら、電子商店街サーバ1は、検索条件として1つ以上の検索キーワードとジャンルとが指定された回数のうち、その検索条件で商品が検索されたことに基づいて検索された商品の購入された回数(注文が成立した回数)に基づいて、関連性が高い1つ以上の検索キーワードとジャンルとの組を抽出してもよい。この回数を「購入条件付指定回数」という。ユーザが検索条件を指定しただけの場合よりも、その検索条件で検索が行われることによって商品が購入された場合の方が、検索条件として指定された検索キーワードとジャンルとの関連性は高いと考えられるからである。
そこで、記憶部12には、購入履歴DB12hが構築される。図25は、購入履歴DB12hに登録される内容の一例を示す図である。購入履歴DB12hには、ユーザによる商品の購入履歴が登録される。具体的に、購入履歴DB12hには、注文コード、購入日時、ユーザID、商品ID、店舗ID、商品コード、性別、年齢、都道府県、検索キーワード情報、検索ジャンルID等が、商品の購入ごとに対応付けて登録される。注文コードは、商品の注文が行われるたびに付与される注文の識別情報である。ユーザIDは、購入したユーザを示す。商品ID及び商品コードは、購入された商品を示す。店舗IDは、購入先の店舗を示す。性別、年齢及び都道府県は、購入したユーザの属性である。検索キーワード情報及び検索ジャンルIDは、検索条件として指定された1つ以上の検索キーワード及びジャンルのジャンルIDである。
例えば、システム制御部14は、ユーザ端末2から検索クエリを受信したことに応じて、検索結果ページのHTML文書をユーザ端末2へ送信するとき、検索クエリに含まれる検索キーワード情報及びジャンルIDを含むクッキーを、ユーザ端末2へ送信する。これにより、システム制御部14は、検索条件として直近に指定された検索キーワード情報及びジャンルIDを、ユーザ端末2からクッキーとして受信することができる。ユーザが検索結果ページの検索結果表示領域240から何れかの該当商品情報241を選択することにより、ユーザ端末2の画面に商品ページが表示される。商品ページにおいてユーザが購入操作を行うことにより、ユーザ端末2は購入要求を電子商店街サーバ1へ送信する。システム制御部14は、購入要求を受信すると、購入履歴を登録する。このとき、システム制御部14は、購入日時として現在日時を取得する。また、システム制御部14は、ユーザの性別、年齢、都道府県を取得する。また、システム制御部14は、購入要求に付加されたクッキーから、検索キーワード情報及びジャンルIDを取得する。そして、システム制御部14は、取得したこれらの情報を含む購入履歴を購入履歴DB12hに登録する。
システム制御部14は、例えば、図15に示す指定回数集計処理のステップS3においては、購入履歴DB12hに登録された購入履歴から、検索キーワード情報と検索ジャンルIDとの組を取得する。その後、システム制御部14は、ステップS4〜S17を、上述した通りに実行する。このとき、システム制御部14は、指定回数の代わりに、購入条件付指定回数に基づいて処理を行えば良い。
また、ユーザが検索結果ページのキーワード入力欄211に対してユーザが入力操作を行う都度、キーワード入力欄211に入力されている文字列に応じて、ジャンル指定領域220におけるジャンルリンク221の表示が動的に変化してもよい。具体的には、入力されている文字列を含む検索キーワードに関連するジャンルのジャンルリンク221が表示されるようにしてもよい。例えば、システム制御部14は、ユーザ端末2から検索キーワード候補要求を受信したとき、検索キーワード候補要求に設定されている文字列に前方一致する検索キーワード情報との関連性が高いジャンルを抽出する。システム制御部14は、抽出した各ジャンルについて、ジャンルリンク221用のデータを追加する。
また、上記実施形態において、電子商店街サーバ1は、クエリログを記録しておき、クエリログに基づいて指定回数を計算していた。しかしながら、電子商店街サーバ1は、クエリログを記録せずに、別の方法で指定回数を計算してもよい。例えば、システム制御部14は、ユーザ端末2から検索キーワード情報及びジャンルIDを含む検索クエリを受信した場合、この検索キーワード情報及びジャンルIDが指定回数情報DB12gに登録されているか否かを判定する。このとき、システム制御部14は、登録されていないと判定した場合には、検索クエリに含まれる検索キーワード情報及びジャンルIDと、指定回数との組を、指定回数情報DB12gに登録する。このとき、システム制御部14は、指定回数を1とする。一方、システム制御部14は、登録されていると判定した場合には、指定回数情報DB12gにおいて、検索クエリに含まれる検索キーワード情報及びジャンルIDに対応する指定回数に1を加算する。
また、上記実施形態においては、本発明の区分をジャンルに適用していた。しかしながら、本発明の区分を、例えば、カテゴリー、価格帯、地域等に適用してもよい。
また、上記実施形態においては、検索対象として、商品を検索する場合に本発明を適用していた。しかしながら、本発明を、例えば、サービス、Webページ、画像、動画、音声、地図、ニュース、ブログ等の検索に適用してもよい。