以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、ショッピングシステムに対して本発明を適用した場合の実施形態である。
[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の子孫ジャンルである。あるジャンルが子ジャンルを有するとき、通常複数の子ジャンルが定義されている。例えば、「水・ミネラルウォーター」の子ジャンルとして、例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」等が定義されている。同一の親ジャンルに属するジャンル同士を、兄弟ジャンルという。例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」は、互いに兄弟ジャンルである。レベル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は、検索キーワードを入力するための入力領域である。ジャンル選択メニュー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のジャンルの中から何れかのジャンルをユーザが選択すると、選択されたジャンルが検索条件として指定され、この検索条件で検索が行われる。
図2(c)は、検索結果ページの表示例である。図2(c)に示すように、検索結果ページは、検索条件設定領域210、ジャンル指定領域220、関連キーワード表示領域230、検索結果表示領域240等を含む。
検索条件設定領域210は、キーワード入力欄211、検索ボタン212等を含む。キーワード入力欄211は、検索キーワードを入力するための入力領域である。また、キーワード入力欄211は、トップページのキーワード入力欄111と同様に、キーワードサジェスト機能に対応している。直前ページにおいて、検索条件として検索キーワードが指定された場合、キーワード入力欄211には、その検索キーワードが予め入力されている。キーワード入力欄211に検索キーワードが入力されている場合に検索ボタン212が選択されると、その検索キーワードが検索条件として指定され、この検索条件で検索が行われる。ここで、直前ページにおいてジャンルが検索条件として指定されていた場合、そのジャンルも検索キーワードとともに検索条件として指定されたとみなされる。
ジャンル指定領域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は、検索結果ページにおけるユーザの利便性を高めるため、検索キーワードと、その検索キーワードに関連性が高いジャンルとを抽出し、関連付けてデータベースに登録する。
検索キーワードと関連性が高いジャンルとは、これまでに、その検索キーワードとともに検索条件として指定された回数が多いジャンルである。この回数を「指定回数」という。ユーザが検索条件を指定すると、ユーザ端末2から電子商店街サーバ1へ検索クエリが送信される。検索クエリは、商品の要求を示すメッセージである。検索条件として検索キーワードが指定されると、検索クエリには、指定された検索キーワードが設定される。また、検索条件としてジャンルが指定されると、検索クエリにはジャンルIDが設定される。ジャンルIDは、ジャンルの識別情報である。電子商店街サーバ1は、ユーザ端末2から検索クエリを受信すると、クエリログを記録する。クエリログは、受信された検索クエリの履歴である。電子商店街サーバ1は、クエリログに基づいて、検索条件として指定された検索キーワード及びジャンルの各組の指定回数を計算する。
指定回数は、ユーザが明示的に検索キーワード及びジャンルの両方を同時に指定した回数と、直前ページにおいてユーザが検索キーワード及びジャンルの何れか一方を指定し、これによって表示された検索結果ページにおいてユーザが他方を絞り込み条件として指定することで、検索キーワード及びジャンルの両方が指定されたとみなされる場合の回数とを含む。ユーザが検索キーワードとジャンルとを指定した場合、例えば、指定した検索キーワードによって探したい商品が、指定したジャンルの商品の中にあるとユーザが意図していると考えられる。つまり、ユーザは、指定した検索キーワードとジャンルとの間に関連性があると考えている。それは、ユーザが検索しようとする商品が、指定する検索キーワード及びジャンルが示す検索条件を満たす商品であるからである。従って、ある検索キーワードとジャンルの組の指定回数が多いほど、検索キーワードとジャンルとの関連性が高いといる。そして、検索キーワードと、その検索キーワードに関連性が高いジャンルとが関連付けられていれば、検索の際のユーザの利便性を高めることができる場合がある。
ある検索キーワードkとジャンルcとの組の指定回数が多いか否かは、検索キーワードkと、ジャンルcの兄弟ジャンルとの組の指定回数に基づいて決定される。ジャンルcの相対的な指定回数が多いほど、他のジャンルと比較して検索キーワードkとの関連性が高いといる。
関連性が高いとして抽出された検索キーワードとジャンルとの組には、関連性スコアが決定される。関連性スコアは、検索キーワードとジャンルとの間の関連度を示す値である。関連性スコアが高いほど、関連度が高いことを示す。
なお、関連性が高い検索キーワードとジャンルとの組の抽出方法の詳細については後述する。以下では、この組の抽出結果の用途について説明する。
第1の用途は、検索結果ページのジャンル指定領域220におけるジャンルリンク221の表示の制御である。具体的に、直前ページにおいて検索キーワードが検索条件として指定された場合、ジャンル指定領域220には、指定された検索キーワードと関連性が高いジャンルのジャンルリンク221が優先的に表示される。ジャンル指定領域220におけるジャンルリンク221の表示順位は、指定された検索キーワードと、ジャンルとの関連性スコアが高いほど高くなる。ジャンルの一連としてジャンルリンク221が表示された場合、ユーザは、先に指定した検索キーワードに関連するとユーザが考えるジャンルのジャンルリンク221を選択すると考えられる。そのため、指定された検索キーワードとの関連性が高いジャンルであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、絞り込み条件として指定するジャンルをユーザがジャンル指定領域220から容易に探し出すことができる。
図3(a)乃至図3(c)は、ジャンル指定領域220におけるジャンルリンク221の表示例を示す図である。例えば、「水」という検索キーワードと、「水・ソフトドリンク」、「水・ミネラルウォーター」及び「ペット・ペットグッズ」とがそれぞれ関連性が高いとする。この場合に、トップページにおいて、ユーザが検索キーワードとして「水」を指定すると、検索結果ページのジャンル指定領域220には、図3(a)に示すように、レベル1のジャンルのうち、「水・ソフトドリンク」と「ペット・ペットグッズ」のジャンルリンク221がそれぞれ表示される。「水・ソフトドリンク」の方が「ペット・ペットグッズ」よりも上方に表示されているため、「水・ソフトドリンク」の方が「ペット・ペットグッズ」よりも「水」との関連性が高いことが分かる。ジャンル指定領域220には、更に全ジャンル表示ボタン222が表示される。全ジャンル表示ボタン222をユーザが選択すると、ジャンル指定領域220には、レベル1の全てのジャンルのジャンルリンク221が表示される。この場合も、「水・ソフトドリンク」と「ペット・ペットグッズ」のジャンルリンク221の表示位置は変わらない。
ここで、ユーザが「水・ソフトドリンク」のジャンルリンク221を選択すると、新たな検索結果ページが表示される。この検索結果ページのジャンル指定領域220には、図3(b)に示すように、「水・ソフトドリンク」の子ジャンルのうち、「水・ミネラルウォーター」のジャンルリンク221が表示される。ここで、全ジャンル表示ボタン222をユーザが選択すると、ジャンル指定領域220には、「水・ソフトドリンク」の全ての子ジャンルのジャンルリンク221が表示される。
また例えば、「ナース」という検索キーワードと、「レディースファッション」及び「靴」とがそれぞれ関連性が高いとする。この場合に、トップページにおいて、ユーザが検索キーワードとして「ナース」を指定すると、検索結果ページのジャンル指定領域220には、図3(c)に示すように、レベル1のジャンルのうち、「レディースファッション」と「靴」のジャンルリンク221がそれぞれ表示される。このように、直前ページにおいて指定された検索キーワードによって、ジャンル指定領域220にジャンルリンク221が表示されるジャンルが変化する。
第2の用途は、検索結果ページのキーワード入力欄211におけるキーワードサジェスト機能における検索キーワードの候補の表示制御である。これは、直前ページにおいてジャンルが検索条件として指定された場合に実行される。具体的に、ユーザがキーワード入力欄211に入力した文字列に前方一致するキーワードのうち、直前ページにおいて指定されたジャンルと関連性が高いキーワードが、検索キーワードの候補として優先的に表示される。このときのキーワードの表示順位は、指定されたジャンルと、キーワードとの関連性スコアが高いほど高くなる。指定されたジャンルとの関連性が高い検索キーワードであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、絞り込み条件としての検索キーワードをユーザが容易に指定することができる。
なお、キーワード入力欄211には、入力された文字列を含むキーワード(入力された文字列を読み仮名に含むキーワードも含む)が表示されればよい。従って、例えば、入力された文字列に後方一致するキーワードが表示されるようになってもよい。
図4(a)は、検索キーワード候補表示領域213におけるキーワードの表示例を示す図である。トップページにおいて、ユーザがジャンルとして、例えば「水・ソフトドリンク」を指定することにより、検索結果ページが表示される。この検索結果ページのキーワード入力欄211に対して、ユーザが、例えば「は」を入力すると、図4(a)に示すように、キーワード入力欄211の直下に、検索キーワード候補表示領域213が表示される。この検索キーワード候補表示領域213には、例えば「ハーブティー」、「花茶」、「ハイビスカスティー」、「ハトムギ茶」、「はと麦茶」等が検索キーワードの候補として表示される。つまり、これらのキーワードは、「水・ソフトドリンク」との関連性が高いキーワードである。ユーザがキーワード入力欄211に同一の文字列を入力した場合であっても、直前ページにおいて指定されたジャンルによって、検索キーワード候補表示領域213に表示されるキーワードが変化する。
なお、検索結果ページにおいてジャンルを指定可能としてもよい。例えば、ジャンルを選択するためのチェックボックス等が検索結果ページに表示されるようにする。そして、ユーザが、あるジャンルに対応するチェックボックスを選択してキーワード入力欄211に文字列を入力すると、入力されている文字列を含むキーワードのうち、選択されたジャンルと関連性が高いキーワードが検索キーワード候補表示領域213に表示されるようにしてもよい。また、トップページにおいても、ユーザがジャンル選択メニュー112からあるジャンルを選択してキーワード入力欄111に文字列を入力した場合、入力されている文字列を含むキーワードのうち、選択されたジャンルと関連性が高いキーワードが検索キーワード候補表示領域114に表示されるようにしてもよい。
第3の用途は、関連キーワード表示領域230における関連キーワードリンク231の表示制御である。これは、直前ページにおいて検索キーワード及びジャンルが検索条件として指定された場合に実行される。具体的に、関連キーワード表示領域230には、直前ページにおいて指定された検索キーワードの関連キーワードのうち、直前ページにおいて指定されたジャンルと関連性が高い関連キーワードの関連キーワードリンク231が優先的に表示される。関連キーワード表示領域230における関連キーワードリンク231の表示順位は、指定されたジャンルと、関連キーワードとの関連性スコアが高いほど高くなる。指定されたジャンルとの関連性が高い関連キーワードであるほど、ユーザが絞り込み条件として指定する蓋然性が高い。従って、関連キーワードを検索キーワードとしてユーザが容易に指定することができる。
図4(b)は、関連キーワード表示領域230における関連キーワードリンク231の表示例を示す図である。例えば、トップページにおいて、ユーザが検索キーワードとして「水」を指定し、且つ、ジャンルとして「水・ソフトドリンク」を指定すると、検索結果ページの関連キーワード表示領域230には、図4(b)に示すように、例えば「ミネラルウォーター」、「ウォーターサーバー」のキーワードの関連キーワードリンク231が表示される。つまり、これらのキーワードは、「水・ソフトドリンク」との関連性が高いキーワードである。ユーザが直前ページにおいて同一の検索キーワードを指定した場合であっても、直前ページにおいて指定されたジャンルによって、関連キーワード表示領域230に関連キーワードリンク231が表示される関連キーワードが変化する。
第4の用途は、検索結果表示領域240における各商品の該当商品情報241の表示順位を決定するためのリスティングスコアの調整である。これは、直前ページにおいて検索キーワードが指定された場合に実行される。具体的に、直前ページにおいて指定された検索キーワードで検索された商品のうち、その検索キーワードとの関連性が高いジャンルの商品のリスティングスコアが引き上げられる。ただし、直前ページにおいてジャンルが検索条件として指定されていた場合、指定されたジャンルの子孫ジャンルに属する商品のリスティングスコアのみが引き上げられる。これにより、検索キーワードとの関連性が高いジャンルの商品の表示順位が上がる可能性がある。従って、検索結果表示領域240から検索キーワードと関連性が高い商品をユーザが容易に探し出すことができる。なお、検索キーワードとの関連性が高いジャンルの商品以外の商品のリスティングスコアが引き下げられるようになっていてもよい。
例えば、トップページにおいて、ユーザが検索キーワードとして「水」を指定すると、検索結果ページの検索結果表示領域240には、「水」で検索された商品の情報の一覧が表示される。このとき、「水」との関連性が高い「水・ソフトドリンク」の商品及び「ペット・ペットグッズ」の商品については、リスティングスコアが引き上げられる。
[2.電子商店街サーバの構成]
次に、電子商店街サーバ1の構成について、図5及び図6を用いて説明する。
図5は、本実施形態に係る電子商店街サーバ1の概要構成の一例を示すブロック図である。図5に示すように、電子商店街サーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWに接続して、ユーザ端末2等との通信状態を制御するようになっている。
記憶部12は、例えば、ハードディスクドライブ等により構成されている。この記憶部12には、会員情報DB12a、商品情報DB12b、ジャンル情報DB12c、キーワードDB12d、関連キーワードDB12e、クエリログDB12f、指定回数情報DB12g、キーワード関連ジャンル情報DB12h等のデータベースが構築されている。
図6(a)は、会員情報DB12aに登録される内容の一例を示す図である。会員情報DB12aには、ショッピングシステムSに会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報DB12aには、ユーザID、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス、保有ポイント数等のユーザの属性が、ユーザごとに対応付けて登録される。ユーザIDは、ユーザの識別情報である。保有ポイント数は、ユーザが保有しているポイントの数である。このポイントは、ユーザが電子商店街で商品を購入するときに、金銭と同等の価値を有するものとして購入代金に充てることができるものである。また、ユーザが電子商店街で商品を購入すると、例えば、購入金額に応じたポイントがユーザに付与される。
図6(b)は、商品情報DB12bに登録される内容の一例を示す図である。商品情報DB12bには、電子商店街で販売されている商品に関する商品情報が登録される。具体的に、商品情報DB12bには、商品ID、店舗ID、商品コード、ジャンルID、商品名、商品画像のURL(Uniform Resource Locator)、商品説明、商品価格等の商品の属性が、店舗が販売する商品ごとに対応付けて登録される。商品IDは、店舗等が、販売する商品を管理するための商品の識別情報である。店舗IDは、商品の販売元の店舗を示す。商品コードは、商品を識別するコード番号である。商品コードとしては、例えば、JAN(Japanese Article Number Code)コード等がある。ジャンルIDは、商品が属するジャンルのジャンルIDである。検索キーワードを用いた検索では、例えば、商品名及び商品説明の少なくとも何れか一方に検索キーワードを含む商品が検索される。
図6(c)は、ジャンル情報DB12cに登録される内容の一例を示す図である。ジャンル情報DB12cには、商品のジャンルに関するジャンル情報が登録されている。具体的に、ジャンル情報DB12cには、ジャンルID、ジャンル名、ジャンルのレベル、親ジャンルID及び子ジャンルIDリスト等のジャンルの属性が、ジャンルごとに対応付けて登録される。ジャンル情報は、例えば、電子商店街の管理者等により設定される。親ジャンルIDは、ジャンル情報によって定義されるジャンルの親ジャンルのジャンルIDである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルの子ジャンルのジャンルIDのリストである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルが子ジャンルを有する場合に設定される。ジャンル情報DB12cには、ジャンルトップのジャンル情報も登録される。ジャンルトップのジャンルIDには、例えば、予め設定された識別情報が設定される。これによって、どのジャンル情報がジャンルトップのジャンル情報であるかを識別することができる。
図6(d)は、キーワードDB12dに登録される内容の一例を示す図である。キーワードDB12dには、キーワードサジェスト機能において、検索キーワードの候補となるキーワードが複数登録されている。例えば、予め設定された期間において各ユーザが検索条件として指定した検索キーワードのうち、指定された回数が予め設定された回数以上である検索キーワードが、キーワードDB12dに登録される。
図6(e)は、関連キーワードDB12eに登録される内容の一例を示す図である。関連キーワードDB12eには、キーワードと、そのキーワードに関連する関連キーワードとの組が複数登録されている。なお、関連するキーワードの抽出方法としては、例えば、公知の方法を用いることができる。よって、関連するキーワードの抽出方法の詳細な説明は省略する。
図6(f)は、クエリログDB12fに登録される内容の一例を示す図である。クエリログDB12fには、クエリログが登録される。具体的に、クエリログDB12fには、受信日時、検索キーワード、ジャンルID、性別、年齢、都道府県等が、検索クエリが受信されるごとに対応付けて登録される。受信日時は、検索クエリが受信された日時である。検索キーワードは、検索条件として指定された検索キーワードである。ジャンルIDは、検索条件として指定されたジャンルのジャンルIDである。性別、年齢及び都道府県は、検索クエリを送信したユーザ端末2を利用するユーザの属性である。つまり、検索を要求したユーザの属性として、ユーザの性別と年齢、及びユーザが住む都道府県等が登録される。性別、年齢及び都道府県は、検索を要求したユーザが電子商店街にログインしている場合に登録される。
図6(g)は、指定回数情報DB12gに登録される内容の一例を示す図である。指定回数情報DB12gには、検索キーワードとジャンルの組の検索条件としての指定回数に関する指定回数情報が登録される。具体的に、指定回数情報DB12gには、検索キーワードに対応付けて、ジャンルIDと指定回数との組が1つ以上登録される。ジャンルIDは、検索キーワードとともに検索条件として指定されたジャンルのジャンルIDである。指定回数は、そのジャンルが、検索キーワードとともに検索条件として指定された回数である。
図6(h)は、キーワード関連ジャンル情報DB12hに登録される内容の一例を示す図である。キーワード関連ジャンル情報DB12hには、関連性が高い検索キーワードとジャンルとの組の抽出結果が登録される。具体的に、キーワード関連ジャンル情報DB12hには、検索キーワード、ジャンルID及び関連性スコアが、抽出された組ごとに登録される。
次に、記憶部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からのリクエストに応じてWebページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されてもよい。
[3.関連性が高い検索キーワードとジャンルとの組の抽出方法]
次に、関連性が高い検索キーワードとジャンルとの組の抽出方法の詳細について、図7及び図8を用いて説明する。
ここで、抽出対象となり得る検索キーワードを、kとする。また、説明の便宜上、レベル1のジャンルの中から、キーワードkとの関連性が高いジャンルが抽出されるものとする。レベル1のジャンルの集合を、Gとする。先ず、システム制御部14は、レベル1のジャンルの中にキーワードkとの関連性が高いジャンルが存在し得るかを判定する。具体的に、各ジャンルについて、キーワードkとともに検索条件として指定された指定回数のばらつき(偏り)の程度が判定される。各ジャンルの指定回数のばらつきが少ないほど、すなわち、均一性が高いほど、各ジャンルについて、キーワードkとの関連性に差がないということである。そして、関連性に差がないということは、レベル1のジャンルの中で、キーワードkと特に関連性が高いジャンルが存在しないことを意味する。そこで、システム制御部14は、指定回数のばらつきの大きさが、可変設定されたある大きさを超える場合に、レベル1のジャンルの中にキーワードkとの関連性が高いジャンルが存在すると判定する。この判定には、例えば、エントロピーが用いられる。エントロピーをEとすると、Eは、下記の式1により計算される。
式1において、p(c)は、キーワードkがレベル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は、指定確率と閾値とを比較する。この閾値をβとすると、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との組に対する関連性スコアを決定する。例えば、指定回数が多いほど、関連性スコアが高くなるようにしてもよい。例えば、指定回数そのものが関連性スコアとして用いられてもよい。また、指定回数が多いほど関連性スコアが高くなるようにするとともに、指定確率が高いほど関連性スコアが高くなるように、関連性スコアを決定してもよい。例えば、指定回数と指定確率とを変数とする計算式を用いて関連性スコアを計算してもよい。システム制御部14は、関連性スコアを決定すると、キーワードkと、ジャンルcのジャンルIDと、関連性スコアとを関連付けてキーワード関連ジャンル情報DB12hに登録する。
ここで、関連性が高いキーワードとジャンルとの組の抽出結果の例を示す。図7(a)及び図7(b)は、レベル1のジャンルごとの指定確率を示すグラフである。なお、図7(a)及び図7(b)においては、レベル1の全てのジャンルのうち一部のジャンルについてのみのグラフを示している。
図7(a)は、キーワードkを「水」とした場合の例である。図7(a)において、実線のグラフが、指定確率のグラフである。図7(a)に示すように、各ジャンルの指定確率のばらつきが大きい。例えば、レベル1のジャンルのうち、「水・ソフトドリンク」及び「ペット・ペットグッズ」の指定確率が、他のジャンルの指定確率よりも高くなっている。特に、「水・ソフトドリンク」の指定確率の高さが顕著である。そのため、エントロピーEが閾値α以下であると判定される。つまり、「水」との関連性が高いジャンルが存在し得ると判定される。そして、「水・ソフトドリンク」及び「ペット・ペットグッズ」の指定確率が閾値β以上であるため、「水」と「水・ソフトドリンク」、及び、「水」と「ペット・ペットグッズ」が、関連性が高いキーワードとジャンルとの組として抽出される。
図7(a)においては、破線のグラフも示されている。この破線のグラフは、キーワードkを「水」とした場合に、レベル1の全てのジャンルにおいて「水」で検索された商品の数(以下、「該当商品数」という)に対する各ジャンルの該当商品数の割合である。図7(a)に示すように、該当商品数の割合と指定確率とは相関していない。つまり、該当商品数の割合とキーワードkとの関連性の高さとが相関していない。例えば、レベル1のジャンルのうち、「美容・コスメ・香水」の該当商品数の割合が、他のジャンルの割合に比べて大きくなっている。これは、「美容・コスメ・香水」の商品名や商品説明に「香水」という文字が含まれていることが多いため、「水」を商品名や商品説明に含む商品が検索された結果によるものと考えられる。一方で、「美容・コスメ・香水」の指定確率は決して高くはない。これに対し、「水・ソフトドリンク」の該当商品数の割合はきわめて小さい。
図7(b)は、キーワードkを「ポイント」とした場合の例である。図7(b)に示すように、各ジャンルの指定確率のばらつきが小さい。これは、商品名や商品説明におけるポイントに関する記載は、どのジャンルにおいても一様に見られるためであると考えられるからである。そのため、エントロピーEが閾値αより大きいと判定される。つまり、「ポイント」との関連性が高いジャンルが存在しないと判定される。
次に、レベル2以降のジャンルの場合について説明する。図8は、各レベルについてキーワードkに関連するジャンルの抽出の様子を示す図である。システム制御部14は、レベル1のジャンルの中から、キーワードkとの関連性が高いジャンルを抽出した場合には、抽出したジャンルの子ジャンルの中からキーワードkとの関連性が高いジャンルの抽出を試みる。例えば、図8に示すように、レベル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に設定すれば良い。
図8においては、ジャンル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とともに各ジャンルが指定された指定回数を計算するとき、子ジャンルの指定回数を、その親ジャンルの実際の指定回数に対して加算する。例えば、図8において、レベル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.ショッピングシステムの動作]
次に、ショッピングシステムSの動作について、図9乃至図15用いて説明する。
図9は、本実施形態に係る電子商店街サーバ1のシステム制御部14のキーワード・ジャンル関連付け処理における処理例を示すフローチャートである。キーワード・ジャンル関連付け処理は、関連性が高い検索キーワードとジャンルとを関連付けるための処理である。キーワード・ジャンル関連付け処理は、例えば定期的に(例えば、1日ごと等に)実行される。
先ず、システム制御部14は、指定回数DB12g及びキーワード関連ジャンル情報DB12hを初期化する(ステップS1)。具体的に、システム制御部14は、これらのデータベースに登録されている全ての情報を削除する。次いで、システム制御部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は、次に実行する関連ジャンル抽出処理の引数として、ジャンルトップのジャンルIDを設定する(ステップS16)。次いで、システム制御部14は、関連ジャンル抽出処理を実行する(ステップS17)。関連ジャンル抽出処理では、選択キーワードと、選択キーワードとの関連性が高いジャンルとが関連付けて登録される。関連ジャンル抽出処理は、再帰呼び出しが可能な処理である。関連ジャンル抽出処理の詳細については後述する。
次いで、システム制御部14は、既に選択したことがある検索キーワードと同一のキーワードを除いて、キーワード・ジャンルリストに登録された検索キーワードのうちまだ選択していない検索キーワードがあるか否かを判定する(ステップS18)。このとき、システム制御部14は、まだ選択していない検索キーワードがあると判定した場合には(ステップS18:YES)、まだ選択していない検索キーワードのうち1つを選択する(ステップS19)。次いで、システム制御部14は、ステップS7に移行する。システム制御部14は、ステップS7〜S19の処理を繰り返すことにより、関連性が高い検索キーワードとジャンルとの組を全て抽出する。そして、システム制御部14は、全ての検索キーワードを選択したと判定した場合には(ステップS18:NO)、キーワード・ジャンル関連付け処理を終了させる。
なお、システム制御部14は、選択キーワードが検索条件として指定された回数が少ない場合、その選択キーワードについては、関連ジャンル抽出処理を実行しなくてもよい。この場合、各ジャンルについて、選択キーワードとともに検索条件として指定された回数が少なくなるため、選択キーワードとの関連性が高いと判定することは妥当とはいえないからである。例えば、システム制御部14は、ステップS7において検索リストを生成したときに、検索リストに登録されている各組に含まれている指定回数の合計値を計算する。そして、システム制御部14は、合計値が、予め設定された値よりも小さい場合には、ステップS8〜17を実行せずに、ステップS18に移行する。
図10は、本実施形態に係る電子商店街サーバ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つのレコードとしてキーワード関連ジャンルDB12hに登録する(ステップ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)、関連ジャンル抽出処理を終了させる。
図11は、本実施形態に係る電子商店街サーバ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は、記憶部12から、検索結果ページのHTML文書のテンプレートを取得する(ステップS73)。次いで、システム制御部14は、検索条件設定領域設定処理を実行する(ステップS74)。具体的に、システム制御部14は、検索クエリにジャンルIDが設定されている場合には、検索結果ページの検索ボタン212が選択されたときに、キーワード入力欄211に入力された検索キーワードとともにこのジャンルIDが送信されるよう、このジャンルIDを、取得したテンプレートに設定する。
次いで、システム制御部14は、ジャンル指定領域設定処理を実行する(ステップS75)。ジャンル指定領域設定処理では、検索結果ページのジャンル指定領域220にジャンルリンク221を表示するためのデータが、取得したテンプレートに設定される。次いで、システム制御部14は、関連キーワード表示領域設定処理を実行する(ステップS76)。関連キーワード表示領域設定処理では、検索結果ページの関連キーワード表示領域230に関連キーワードリンク231を表示するためのデータが、取得したテンプレートに設定される。次いで、システム制御部14は、検索結果表示領域設定処理を実行する(ステップS77)。検索結果表示領域設定処理では、検索結果ページの検索結果表示領域240に、該当商品情報241を表示するためのデータが、取得したテンプレートに設定される。なお、ジャンル指定領域設定処理、関連キーワード表示領域設定処理及び検索結果表示領域設定処理の詳細については後述する。
次いで、システム制御部14は、各情報の設定により完成した検索結果ページのHTML文書を、検索クエリの送信元のユーザ端末2へ送信する(ステップS78)。システム制御部14は、この処理を終えると、検索クエリ受信時処理を終了させる。
図12は、本実施形態に係る電子商店街サーバ1のシステム制御部14のジャンル指定領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、検索条件として検索キーワードが指定されているか否かを判定する(ステップS101)。つまり、システム制御部14は、検索クエリに検索キーワードが設定されているか否かを判定する。このとき、システム制御部14は、検索キーワードが指定されていないと判定した場合には(ステップ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は、検索キーワードが指定されていると判定した場合には(ステップS101:YES)、検索条件としてジャンルが指定されているか否かを判定する(ステップS103)。つまり、システム制御部14は、検索クエリにジャンルIDが設定されているか否かを判定する。ここで、検索クエリに設定されたジャンルIDに対応するジャンルを、「指定ジャンル」という。このとき、システム制御部14は、ジャンルが指定されていると判定した場合には(ステップS103:YES)、ジャンル情報DB12cに登録されているジャンル情報のうち、指定ジャンルのジャンルIDに対応するジャンル情報から、子ジャンルIDリストを取得する(ステップS104)。一方、システム制御部14は、ジャンルが指定されていないと判定した場合には(ステップS103:NO)、ジャンルトップのジャンル情報から、子ジャンルIDリストを取得する(ステップS105)。つまり、システム制御部14は、レベル1のジャンルのジャンルIDのリストを取得する。
システム制御部14は、ステップS104またはS105の処理を終えると、キーワード関連ジャンルDB12hから、検索キーワードを含むレコードのうち、取得した子ジャンルIDリストに登録されているジャンルIDを含むレコードを検索する(ステップS106)。具体的に、システム制御部14は、子ジャンルIDリストからジャンルIDを1つ取得する。次いで、システム制御部14は、取得したジャンルIDと検索キーワードとを含むレコードを検索する。システム制御部14は、この処理を、子ジャンルIDリストに登録されている全てのジャンルIDについて実行する。
次いで、システム制御部14は、ステップS106の検索の結果、該当するレコードがあったか否かを判定する(ステップS107)。このとき、システム制御部14は、該当するレコードがなかったと判定した場合には(ステップS107:NO)、ステップS102に移行する。これは、ユーザにより指定された検索キーワードとの関連性が高いジャンルがなかった場合である。
一方、システム制御部14は、該当するレコードがあったと判定した場合には(ステップS107:YES)、検索したレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを選択する(ステップS108)。次いで、システム制御部14は、選択したレコードに含まれるジャンルIDに対応するジャンルのジャンルリンク221用のデータを生成する(ステップS109)。この生成方法は、ステップS102において説明した方法と同様である。ただし、システム制御部14は、商品検索用のURLを生成するとき、検索クエリの送信先を示すURLに、対応するジャンルのジャンルIDと検索キーワードとを付加して生成する。次いで、システム制御部14は、生成したジャンルのジャンルリンク221用のデータを、取得したテンプレートにおいて、ジャンル指定領域220に対応する領域に追加設定する(ステップS110)。
次いで、システム制御部14は、検索したレコードのうちまだ選択していないレコードがあるか否かを判定する(ステップS111)。このとき、システム制御部14は、まだ選択していないレコードがあると判定した場合には(ステップS111:YES)、まだ選択していないレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを1つ選択する(ステップS112)。次いで、システム制御部14は、ステップS109に移行する。システム制御部14は、ステップS109〜S112の処理を繰り返すことにより、表示順位決定手段として、検索キーワードと関連性が高いジャンルのジャンルリンク221の表示順位を関連性スコアに基づいて決定する。つまり、システム制御部14は、関連性スコアが高いジャンルであるほどそのジャンルリンク221が優先的に表示されるようにする。そして、システム制御部14は、全てのレコードを選択したと判定した場合には(ステップS111:NO)、ジャンル指定領域設定処理を終了させる。
図13は、本実施形態に係る電子商店街サーバ1のシステム制御部14の関連キーワード表示領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、検索条件として検索キーワードが設定されているか否かを判定する(ステップS201)。このとき、システム制御部14は、検索キーワードが指定されていないと判定した場合には(ステップS201:NO)、関連キーワード表示領域設定処理を終了させる。一方、システム制御部14は、検索キーワードが指定されていると判定した場合には(ステップ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は、検索した関連キーワードごとに、キーワード関連ジャンルDB12hから、関連キーワードと同一の検索キーワードと指定ジャンルのジャンルIDとを含むレコードを検索する(ステップS205)。
次いで、システム制御部14は、検索したレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを選択する(ステップS206)。次いで、システム制御部14は、選択したレコードに検索キーワードとして含まれる関連キーワードの関連キーワードリンク231用のデータを生成する(ステップS207)。この生成方法は、ステップS203において説明した方法と同様である。ただし、システム制御部14は、商品検索用のURLを生成するとき、検索クエリの送信先を示すURLに、関連キーワードと、指定ジャンルのジャンルIDとを付加して生成する。次いで、システム制御部14は、生成した関連キーワードリンク231用のデータを、取得したテンプレートにおいて、関連キーワード表示領域230に対応する領域に追加設定する(ステップS208)。
次いで、システム制御部14は、関連キーワードリンク231を表示可能な上限数まで関連キーワードリンク231用のデータを追加したか否かを判定する(ステップS209)。このとき、システム制御部14は、上限数まで追加したと判定した場合には(ステップS209:YES)、関連キーワード表示領域設定処理を終了させる。一方、システム制御部14は、上限数まで追加していないと判定した場合には(ステップS209:NO)、検索したレコードのうちまだ選択していないレコードがあるか否かを判定する(ステップS210)。このとき、システム制御部14は、まだ選択していないレコードがあると判定した場合には(ステップS210:YES)、まだ選択していないレコードのうち、そのレコードに含まれる関連性スコアが最も高いレコードを1つ選択する(ステップS211)。次いで、システム制御部14は、ステップS207に移行する。システム制御部14は、ステップS207〜S211の処理を繰り返すことにより、検索キーワードの関連キーワードであって、且つ、指定ジャンルとの関連性が高い関連キーワードの関連キーワードリンク231の表示順位を関連性スコアに基づいて決定する。つまり、システム制御部14は、関連性スコアが高い関連キーワードであるほどその関連キーワードリンク231が優先的に表示されるようにする。そして、システム制御部14は、全てのレコードを選択したと判定した場合には(ステップS210:NO)、関連キーワード表示領域設定処理を終了させる。
図14は、本実施形態に係る電子商店街サーバ1のシステム制御部14の検索結果表示領域設定処理における処理例を示すフローチャートである。
先ず、システム制御部14は、評価値取得手段として、検索クエリ受信時処理のステップS71において検索された各商品のリスティングスコアを、例えば、商品評価プログラムのAPIを介して取得する(ステップS301)。次いで、システム制御部14は、検索条件として検索キーワードが指定されているか否かを判定する(ステップS302)。このとき、システム制御部14は、検索キーワードが指定されていると判定した場合には(ステップS302:YES)、検索された商品のうち1つを選択する(ステップS303)。ここで、選択された商品を、「選択商品」と称する。
次いで、システム制御部14は、指定ジャンルの子ジャンルのうち、選択商品が属する子ジャンルのジャンルIDを取得する。選択商品が属するジャンルとは、選択商品の商品情報に含まれるジャンルIDに対応するジャンルと同一のジャンルであるか、または、選択商品の商品情報に含まれるジャンルIDに対応するジャンルを子孫ジャンルに有するジャンルである。次いで、システム制御部14は、キーワード関連ジャンルDB12hから、検索キーワードと、取得したジャンル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において検索キーワードが指定されていないと判定した場合(ステップ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に表示する。
図15は、本実施形態に係る電子商店街サーバ1のシステム制御部14の検索キーワード候補要求受信時処理における処理例を示すフローチャートである。ユーザ端末2により表示されている検索結果ページのキーワード入力欄211に対してユーザが入力操作を行う都度、ユーザ端末2は、検索キーワード候補要求を電子商店街サーバ1へ送信する。入力操作には、キーワード入力欄211への文字の追加、キーワード入力欄211からの文字の削除等の操作が含まれる。検索キーワード候補要求には、送信時点でキーワード入力欄211に入力されている文字列が設定される。また、直前ページにおいてジャンルが検索条件として指定された場合、検索キーワード候補要求には、そのジャンルのジャンルIDが設定される。検索キーワード候補要求受信時処理は、電子商店街サーバ1が、文字列取得手段として検索キーワード候補要求を受信したときに開始される。
先ず、システム制御部14は、検索キーワード候補要求にジャンルIDが設定されているか否かを判定する(ステップS401)。このとき、システム制御部14は、ジャンルIDが設定されていないと判定した場合には(ステップS401:NO)、キーワードDB12dから、検索キーワード候補要求に設定されている文字列に前方一致するキーワードを検索する。そして、システム制御部14は、検索したキーワードのリストを、検索キーワードの候補としてユーザ端末2へ送信する(ステップS402)。システム制御部14は、この処理を終えると、検索キーワード候補要求受信時処理を終了させる。
一方、システム制御部14は、ジャンルIDが設定されていると判定した場合には(ステップS401:YES)、キーワード関連ジャンルDB12hから、検索キーワード候補要求に設定されている文字列に前方一致する検索キーワードを含むレコードを検索する(ステップS403)。次いで、システム制御部14は、検索されたレコードの中から、検索キーワード候補要求に設定されているジャンルIDを含むレコードを抽出する(ステップS404)。次いで、システム制御部14は、抽出したレコードを、そのレコードに含まれる関連性スコアが高い順に並べ替える。次いで、システム制御部14は、関連性スコアが高い順に、抽出したレコードから検索キーワードを取得する。このとき、システム制御部14は、最大でも検索キーワード候補表示領域213に表示可能なキーワードの上限数まで取得する。そして、システム制御部14は、レコードから取得した検索キーワードを、関連性スコアが高い順に示すリストを生成する。こうして、システム制御部14は、キーワード決定手段として、検索キーワード候補要求に設定されている文字列に前方一致する検索キーワードのうち、検索キーワード候補要求に設定されているジャンルIDに対応するジャンルと関連性が高い検索キーワードが優先的に表示されるように、検索キーワード候補表示領域213に表示されるキーワードを決定する。そして、システム制御部14は、生成したキーワードのリストをユーザ端末2へ送信する(ステップS405)。システム制御部14は、この処理を終えると、検索キーワード候補要求受信時処理を終了させる。
ユーザ端末2は、電子商店街サーバ1からキーワードのリストを受信すると、検索結果ページに検索キーワード候補表示領域213を表示する。そして、ユーザ端末2のCPUは、キーワード表示手段として、受信したリストに登録されているキーワードを、登録順に検索キーワード候補表示領域213に表示するとともに、検索キーワードとして指定可能に表示する。
以上説明したように、本実施形態によれば、電子商店街サーバ1のシステム制御部14が、商品の複数のジャンルのそれぞれについて、検索キーワードとともに検索条件として指定された回数を取得し、取得された回数が閾値以上であるジャンルを示すジャンルIDと、その検索キーワードとを関連付けてキーワード関連ジャンルDB12hに登録する。従って、キーワードとそのキーワードに関連性が高いジャンルとを関連付けることができる。
また、システム制御部14が、取得された回数の複数のジャンル間でのばらつきの少なさを示すエントロピーが閾値以下である場合に登録を行う。従って、指定回数が他のジャンルと比較して多いジャンルをキーワードに関連付けることができる。
また、システム制御部14が、検索キーワードと関連付けて登録されたジャンルIDが示すジャンルに対して、そのジャンルに属する複数の子ジャンルが設定されている場合、取得手段は、その複数の子ジャンルのそれぞれについてその検索キーワードとともに検索条件として指定された回数を取得し、取得された回数が閾値以上である子ジャンルを示すジャンルIDと、その検索キーワードとを関連付けて登録する。従って、キーワードに関連性が高いジャンルを階層的に関連付けることができる。
また、システム制御部14が、取得された回数がジャンルの数に応じて決定された閾値以上であるジャンルのジャンルIDと、検索キーワードとを関連付けて登録する。従って、キーワードに関連性が高いジャンルを、ジャンルの数に応じて適切に抽出することができる。
また、システム制御部14が、検索クエリをユーザ端末2から受信し、複数のジャンルのうち、検索クエリに含まれる検索キーワードに関連付けてジャンルIDがキーワード関連ジャンルDB12hに登録されたジャンルのジャンルリンク221をジャンル指定領域220に表示するユーザ端末2によるジャンルの表示順位を、取得された回数に応じた関連性スコアに基づいて決定する。従って、検索条件として指定するジャンルをジャンル指定領域220からユーザが容易に探し出すことができる。
また、システム制御部14が、キーワード入力欄211に入力されている文字列を、検索条件として指定されたジャンルのジャンルIDとともにユーザ端末2から受信し、受信された文字列を含むキーワードを検索キーワード候補表示領域213に表示するユーザ端末2により表示されるキーワードを決定するとき、受信されたジャンルIDに関連付けてキーワード関連ジャンルDB12hに登録されたキーワードが優先的に表示されるように決定する。従って、検索キーワード候補表示領域213からユーザが検索キーワードを容易に指定することができる。
また、システム制御部14が、検索クエリをユーザ端末2から受信し、検索クエリに含まれる検索キーワードに基づいて検索された商品のリスティングスコアを取得し、検索された商品のうち、検索キーワードに関連付けてキーワード関連ジャンルDB12hに登録されたジャンルIDが示すジャンルに属する商品のリスティングスコアを、他の商品のリスティングスコアに対して相対的に上げる。従って、検索結果表示領域240からキーワードと関連性が高い商品の情報をユーザが容易に探し出すことができる。
なお、電子商店街サーバ1は、関連性が高い検索キーワードとジャンルとの組を、検索条件を指定したユーザの属性ごとに抽出してもよい。これは、ユーザの属性によって、検索条件としての検索キーワードとジャンルとの組の指定の傾向が異なる場合があるからである。クエリログDB12fにユーザの属性が登録されるため、検索キーワードとジャンルの組の指定回数を、検索条件を指定したユーザの属性ごとに計算することが可能である。属性ごとに抽出する理由は、検索結果ページの表示内容をパーソナライズするためである。
具体的に、システム制御部14は、例えば、図9に示すキーワード・ジャンル関連付け処理のステップS3において、クエリログから、検索キーワード、ジャンルID、性別、年齢及び都道府県の組を抽出する。このとき、システム制御部14は、性別、年齢及び都道府県が登録されていないクエリログからは、検索キーワードとジャンルIDのみを抽出する。そして、システム制御部14は、ステップS4〜S19の処理を、上述した通りに実行する。つまり、システム制御部14は、先ず、ユーザの属性を考慮しないで、関連性が高い検索キーワードとジャンルとの組を抽出する。
次いで、システム制御部14は、ユーザの属性ごとに、ステップS4〜S19と基本的には同様の処理を実行する。一例として、男女別に実行する場合について説明する。ステップS4において、システム制御部14は、クエリログDB12fから取得した組のうち、性別として男性が設定された組を抽出する。そして、システム制御部14は、クエリログDB12fから取得した組のうち抽出した組に基づいて、各ジャンルについて、検索キーワードとともに検索条件として指定された回数を計算する(ステップS4)。そして、キーワード・ジャンルリストへの登録を行う(ステップS5)。その後、システム制御部14は、ステップS5〜S19を実行する。図10に示す関連ジャンル抽出処理のステップS50において、システム制御部14は、選択キーワード、選択子ジャンルのジャンルID、関連性スコア及び男性を示す属性情報を関連付けて、1つのレコードとしてキーワード関連ジャンルDB12hに登録する。システム制御部14は、男性についての処理が終わると、女性についても同様に処理を行う。年齢別、都道府県別に、関連性が高い検索キーワードとジャンルとの組を抽出する場合も同様である。なお、例えば、年齢別ではなく、年代別に抽出されるようにしてもよい。また、例えば、性別、年齢、都道府県の中から複数の属性を組み合わせて、その組み合わせごとに、関連性が高い検索キーワードとジャンルとの組を抽出してもよい。また、ユーザの属性としては、性別、年齢、都道府に限られるものではない。
システム制御部14は、ユーザ端末2から検索クエリを受信したとき、検索を要求したユーザがログインしているか否かを判定する。これは、検索クエリにユーザIDを含むクッキーが付加されているかを確認することで判定可能である。システム制御部14は、ユーザがログインしていないと判定した場合には、ジャンル指定領域設定処理、関連キーワード表示領域設定処理及び検索結果表示領域設定処理を、上述した通りに実行する。ここで、システム制御部14は、キーワード関連ジャンルDB12hからレコードを検索するとき、属性情報を含まないレコードを検索する。検索を要求したユーザがログインしていない場合には、ユーザの属性を特定することができないからである。従って、システム制御部14は、ユーザの属性を考慮しないで処理を行う。
一方、システム制御部14は、ユーザがログインしていると判定した場合には、ユーザの属性を特定する。そして、システム制御部14は、ジャンル指定領域設定処理、関連キーワード表示領域設定処理及び検索結果表示領域設定処理において、キーワード関連ジャンルDB12hからレコードを検索するとき、特定したユーザの属性を示す属性情報を含むレコードを検索する。これにより、検索結果ページにおける表示内容を、閲覧するユーザの属性に適した内容にすることができる。
検索キーワード候補要求受信時処理においても同様である。システム制御部14は、ユーザがログインしていない場合には、キーワード関連ジャンルDB12hから属性情報を含まないレコードを検索し、ユーザがログインしている場合には、キーワード関連ジャンルDB12hからユーザの属性を示す属性情報を含むレコードを検索する。
また、上記実施形態において、電子商店街サーバ1は、検索条件として検索キーワードとジャンルとが指定された回数に基づいて、関連性が高い検索キーワードとジャンルとの組を抽出していた。しかしながら、電子商店街サーバ1は、検索条件として検索キーワードとジャンルとが指定された回数のうち、その検索条件で商品が検索されたことに基づいて検索された商品の購入された回数(注文が成立した回数)に基づいて、関連性が高い検索キーワードとジャンルとの組を抽出してもよい。この回数を「購入条件付指定回数」という。ユーザが検索条件を指定しただけの場合よりも、その検索条件で検索が行われることによって商品が購入された場合の方が、検索条件として指定された検索キーワードとジャンルとの関連性は高いと考えられるからである。
そこで、記憶部12には、購入歴DB12iが構築される。図16は、購入履歴DB12iに登録される内容の一例を示す図である。購入履歴DB12iには、ユーザによる商品の購入履歴が登録される。具体的に、購入履歴DB12iには、注文コード、購入日時、ユーザID、商品ID、店舗ID、商品コード、性別、年齢、都道府県、検索キーワード、検索ジャンルID等が、商品の購入ごとに対応付けて登録される。注文コードは、商品の注文が行われるたびに付与される注文の識別情報である。ユーザIDは、購入したユーザを示す。商品ID及び商品コードは、購入された商品を示す。店舗IDは、購入先の店舗を示す。性別、年齢及び都道府県は、購入したユーザの属性である。検索キーワード及び検索ジャンルIDは、検索条件として指定された検索キーワード及びジャンルのジャンルIDである。
例えば、システム制御部14は、ユーザ端末2から検索クエリを受信したことに応じて、検索結果ページのHTML文書をユーザ端末2へ送信するとき、検索クエリに含まれる検索キーワード及びジャンルIDを含むクッキーを、ユーザ端末2へ送信する。これにより、システム制御部14は、検索条件として直近に指定された検索キーワード及びジャンルIDを、ユーザ端末2からクッキーとして受信することができる。ユーザが検索結果ページの検索結果表示領域240から何れかの該当商品情報241を選択することにより、ユーザ端末2の画面に商品ページが表示される。商品ページにおいてユーザが購入操作を行うことにより、ユーザ端末2は購入要求を電子商店街サーバ1へ送信する。システム制御部14は、購入要求を受信すると、購入履歴を登録する。このとき、システム制御部14は、購入日時として現在日時を取得する。また、システム制御部14は、ユーザの性別、年齢、都道府県を取得する。また、システム制御部14は、購入要求に付加されたクッキーから、検索キーワード及びジャンルIDを取得する。そして、システム制御部14は、取得したこれらの情報を含む購入履歴を購入履歴DB12iに登録する。
システム制御部14は、例えば、図9に示すキーワード・ジャンル関連付け処理のステップS3においては、購入履歴DB12iに登録された購入履歴から、検索キーワードと検索ジャンルIDとの組を取得する。その後、システム制御部14は、ステップS4〜S19及び関連ジャンル抽出処理を、上述した通りに実行する。このとき、システム制御部14は、指定回数の代わりに、購入条件付指定回数に基づいて処理を行えば良い。
また、上記実施形態において、ジャンル指定領域220に、検索キーワードに関連性が高いジャンルのジャンルリンク221が表示されるとき、1つのレベルのジャンルのジャンルリンク221のみ表示されるようになっていた。しかしながら、複数のレベルのジャンルのジャンルリンク221が表示されるようになっていてもよい。
図17は、ジャンル指定領域220におけるジャンルリンク221の表示例を示す図である。例えば、図3(a)を用いて説明した場合と同様に、トップページにおいて、ユーザが検索キーワードとして「水」を指定する。すると、図17に示すように、レベル1のジャンルのうち、「水・ソフトドリンク」と「ペット・ペットグッズ」のジャンルリンク221がそれぞれ表示されるとともに、「水・ソフトドリンク」の子ジャンルである「水・ミネラルウォーター」のジャンルリンク221が表示される。このとき、「水・ソフトドリンク」と「水・ミネラルウォーター」とが親子関係にあることが分かる態様でジャンルリンク221が表示される。このように、検索キーワードに関連するジャンルとして、より深いレベルのジャンルのジャンルリンク221が表示されるので、ユーザが所望するジャンルを容易に探し出すことができる。
システム制御部14は、図12に示すジャンル指定領域設定処理のステップS104〜S106において、キーワード関連ジャンルDB12hから検索キーワードに関連性が高いジャンルのレコードを検索するとき、指定ジャンルの子ジャンルまたはレベル1のジャンルから、例えば深さ優先探索で、関連性が高いジャンルのレコードを検索する。つまり、システム制御部14は、検索キーワードと取得した子ジャンルIDリストに含まれるあるジャンルIDとを含むレコードがキーワード関連ジャンルDB12hに登録されている場合、次にそのジャンルIDに対応するジャンル情報に含まれる子ジャンルIDリストを取得する。そして、システム制御部14は、検索キーワードを含むレコードのうち、取得した子ジャンルIDリストに登録されているジャンルIDを含むレコードを検索する。システム制御部14は、検索した各レコードについて、ジャンルリンク221用のデータを追加する。
また、ユーザが検索結果ページのキーワード入力欄211に対してユーザが入力操作を行う都度、キーワード入力欄211に入力されている文字列に応じて、ジャンル指定領域220におけるジャンルリンク221の表示が動的に変化してもよい。具体的には、入力されている文字列を含む検索キーワードに関連するジャンルのジャンルリンク221が表示されるようにしてもよい。例えば、システム制御部14は、ユーザ端末2から検索キーワード候補要求を受信したとき、キーワード関連ジャンルDB12hから、検索キーワード候補要求に設定されている文字列に前方一致する検索キーワードを含むレコードを検索する。このとき、システム制御部14は、検索キーワード候補要求にジャンルIDが設定されている場合、このジャンルIDを含むレコードを検索する。一方、システム制御部14は、検索キーワード候補要求にジャンルIDが設定されていない場合、レベル1のジャンルIDを含むレコードを検索する。システム制御部14は、検索した各レコードについて、ジャンルリンク221用のデータを追加する。
また、上記実施形態において、電子商店街サーバ1は、クエリログを記録しておき、クエリログに基づいて指定回数を計算していた。しかしながら、電子商店街サーバ1、クエリログを記録せずに、別の方法で指定回数を計算してもよい。例えば、システム制御部14は、ユーザ端末2から検索キーワード及びジャンルIDを含む検索クエリを受信した場合、この検索キーワード及びジャンルIDが指定回数情報DB12gに登録されているか否かを判定する。このとき、システム制御部14は、登録されていないと判定した場合には、検索クエリに含まれる検索キーワード及びジャンルIDと、指定回数との組を、指定回数情報DB12gに登録する。このとき、システム制御部14は、指定回数を1とする。一方、システム制御部14は、登録されていると判定した場合には、指定回数情報DB12gにおいて、検索クエリに含まれる検索キーワード及びジャンルIDに対応する指定回数に1を加算する。
また、上記実施形態においては、ジャンルが階層的に定義されていたが、階層的に定義されていなくてもよい。ジャンルの階層が1階層のみであってもよい。
また、上記実施形態においては、本発明の区分をジャンルに適用していた。しかしながら、本発明の区分を、例えば、カテゴリー、価格帯、地域等に適用してもよい。
また、上記実施形態においては、検索対象として、商品を検索する場合に本発明を適用していた。しかしながら、本発明を、例えば、サービス、Webページ、画像、動画、音声、地図、ニュース、ブログ等の検索に適用してもよい。