[1.商品情報表示システムのハードウェア構成]
以下、本発明に関わる商品情報表示システムの実施形態の例を説明する。図1は、商品情報表示システムの全体構成を示す図である。図1に示すように、商品情報表示システム1は、サーバ10及びユーザ端末20を含み、これらはネットワークを介してデータ送受信可能に接続される。なお、図1では、サーバ10及びユーザ端末20を1台ずつ示しているが、これらは複数台あってもよい。
サーバ10は、サーバコンピュータであり、例えば、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースを含み、例えば、ネットワークを介してデータ通信を行う。
ユーザ端末20は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。ユーザ端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部24は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部24は、ユーザの操作内容を制御部21に伝達する。表示部25は、例えば、液晶表示部又は有機EL表示部等である。
なお、記憶部12,22に記憶されるものとして説明するプログラム及びデータは、ネットワークを介してこれらに供給されるようにしてもよい。また、サーバ10及びユーザ端末20のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、サーバ10及びユーザ端末20は、それぞれコンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して、サーバ10又はユーザ端末20に供給されるようにしてもよい。
[2.商品情報表示システムの概要]
商品情報表示システム1は、オンラインショッピングモールで取り扱われる商品の検索が可能である。商品情報表示システム1では、キーワードを利用した検索が可能であってもよいし、カテゴリを利用した検索が可能であってもよいし、これらを組み合わせた検索が可能であってもよい。例えば、ユーザがユーザ端末20を操作してサーバ10にアクセスすると、オンラインショッピングモールのトップページが表示部25に表示され、商品の検索が可能となる。
図2は、ユーザが商品を検索する様子を示す図である。図2に示すように、トップページG1は、キーワードの入力とカテゴリの選択とが可能となっている。本実施形態では、カテゴリがツリー構造で定義されており、個々のカテゴリは、ノードに相当する。例えば、トップページG1には、一部のカテゴリのみが表示される。ユーザがトップページG1に表示されたカテゴリを選択すると、当該カテゴリの子ノードのカテゴリが選択可能になるようにしてよい。
例えば、ユーザがトップページG1から「ビール・洋酒」というカテゴリを選択すると、当該カテゴリの子ノードである「ビール」、「ウイスキー」、及び「ワイン」のカテゴリが選択可能になる。そして、ユーザが「ワイン」というカテゴリを選択すると、当該カテゴリの子ノードである「赤ワイン」、「白ワイン」、及び「ワイングッズ」のカテゴリが選択可能になる。以降、子ノードが存在しない葉ノードのカテゴリに至るまで、各カテゴリを順番に選択可能であってよい。
例えば、ユーザが「ワイン」というカテゴリを選択し、かつ、「ボルドー」というキーワードを入力すると、図2の検索結果画面G2に示すように、これら2つの条件にヒットする商品の一覧が表示される。ここでは、「ワイン」の子ノードとして、「赤ワイン」、「白ワイン」、及び「ワイングッズ」の3つが存在するので、検索結果画面G2には、これら3つのカテゴリの何れかに属し、かつ、「ボルドー」というキーワードにヒットする商品が表示される。
図2の例では、ボルドー産の赤ワインである商品A、ボルドー産の白ワインである商品B、及びボルドーで製造されたワイングラスである商品Cが、同じ検索結果画面G2に表示される。即ち、検索結果画面G2には、ワインそのものである商品A及びBとともに、ワインではない商品Cが表示される。ボルドー産のワインは世界的に人気があるので、上記の条件は多数のユーザによって入力されるが、各ユーザは、ワインそのものを探している蓋然性が高く、ワイングッズを探している蓋然性は低い。このため、検索結果画面G2からは、商品Aの商品ページG3や商品Bの商品ページG4に遷移することがほとんどであり、たまたまヒットした商品Cの商品ページには遷移しない。
サーバ10は、検索結果画面G2から各ユーザが選択した商品を分析し、関連性のあるカテゴリの組み合わせを特定する。関連性のあるカテゴリとは、商品の特徴に共通項が存在するカテゴリである。別の言い方をすれば、関連性のあるカテゴリは、ユーザが興味を持つ商品の特徴が似ているカテゴリである。図2の例の場合、兄弟ノードの3つのカテゴリのうち、よく選択される「赤ワイン」と「白ワイン」は、ワインそのものが属するカテゴリであり、関連性のあるカテゴリの組み合わせである。一方、選択されない「ワイングッズ」は、ワインそのものは属しないカテゴリであり、他の兄弟ノードとは関連性のないカテゴリである。このように、カテゴリの定義上は兄弟の関係にあったとしても、表記が部分的に一致するだけで実際には関連性の薄いカテゴリも存在するので、サーバ10は、検索結果画面G2からユーザが実際に選択した商品が属するカテゴリの組み合わせに基づいて、カテゴリの関連性を特定する。
本実施形態では、サーバ10は、過去に入力されたキーワードごとに、検索結果画面G2から選択された商品のカテゴリを記録している。このため、サーバ10は、商品が選択された場合に何のキーワードが入力されたかを、カテゴリごとに特定可能となっている。サーバ10は、複数のカテゴリ間で共通のキーワードが閾値以上存在すれば、当該複数のカテゴリに関連性があると判断する。この閾値は、任意であってよく、1でもよいし、2以上であってもよい。例えば、図2の「ワイン」のカテゴリであれば、閾値を2とすると、2つ以上の共通のキーワードに対して、「赤ワイン」の商品と「白ワイン」の商品とが選択されていた場合、「赤ワイン」と「白ワイン」が関連性のあるカテゴリの組み合わせとして特定される。
なお、上記の説明では、あるカテゴリの商品が1つでも選択されていれば、関連性のある組み合わせの候補となる場合を説明したが、商品が複数選択された場合に、関連性のある組み合わせの候補となるようにしてもよい。この数は、任意であってよく、2つであってもよいし、3つ以上であってもよい。このようにすれば、例えば、ユーザが間違って「ワイングッズ」の商品を選択してしまったとしても、この1回の誤選択によって、「ワイングッズ」が関連性のあるカテゴリの組み合わせに含まれてしまうことを防止できる。
サーバ10は、「赤ワイン」と「白ワイン」の関連性を特定すると、これら2つのカテゴリ内の商品の共通項を見つけるために、「赤ワイン」に属する全商品の商品説明と、「白ワイン」に属する全商品の商品説明と、を参照し、各商品の属性と属性値を抽出する。属性は、商品の特徴を分類する文字列であり、属性値は、その具体的な内容を示す文字列又は数値である。
例えば、サーバ10は、商品Aの商品説明(図2の商品ページG3)から、属性「産地」と属性値「フランス」、属性「生産年」と属性値「2016」、属性「種類」と属性値「赤」、及び属性「度数」と属性値「11%」を抽出する。また例えば、サーバ10は、商品Bの商品説明(図2の商品ページG4)から、属性「産地」と属性値「フランス」、属性「生産年」と属性値「2015」、属性「種類」と属性値「白」、及び属性「度数」と属性値「12%」を抽出する。サーバ10は、抽出した属性と属性値の組み合わせを商品に関連付けて記憶し、当該属性と属性値をユーザに提供する。
図3は、属性と属性値がユーザに提供される様子を示す図である。図3に示すように、トップページG1が表示された後に、ユーザが「ビール・洋酒」の子ノードである「ワイン」のカテゴリを選択すると、属性表示画面G5に遷移し、「赤ワイン」と「白ワイン」の商品から抽出した属性と、当該属性の代表的な属性値と、が選択可能に表示される。
例えば、ユーザが属性表示画面G5の中から属性「産地」の属性値「フランス」を選択すると、「フランス」が属性値の商品の一覧が検索結果画面G6に表示される。また例えば、ユーザが属性表示画面G5の中から属性「生産年」を選択すると、「生産年」の属性が抽出された商品の一覧が検索結果画面G7に表示される。なお、この場合、「生産年」の属性が選択されただけなので、属性値は特に参照されない。
検索結果画面G6及びG7には、属性と属性値が抽出されなかった商品は検索結果にヒットしないので、キーワード検索とは異なり、無関係の商品が文字列一致でたまたまヒットすることを回避できる。例えば、関連性がないとされた「ワイングッズ」の商品は、属性と属性値が抽出されないので、検索結果画面G6及びG7には、「ワイングッズ」の商品は表示されない。更に、属性と属性値は、「赤ワイン」と「白ワイン」との間で共通なので、これらのカテゴリをまたいで商品を探すことが可能となる。更に、属性と属性値は、商品説明から抽出されたものなので、システム管理者が予め用意した属性のキーワードよりも、商品の特徴をより的確に表した情報を提供できる。
以上のように、商品情報表示システム1は、ユーザが入力したキーワードの検索結果に対して選択した商品に基づいて、関連性のあるカテゴリの組み合わせを特定する。そして、商品情報表示システム1は、当該組み合わせの中で抽出した属性と属性値をユーザに提供する。このため、一部無関係の商品が検索結果に表示されることを防止しつつ、関連性のあるカテゴリ間をまたいだ情報の提供が可能になり、所望の商品を見つけるのに有用な情報を提供することができる。以降、商品情報表示システム1が有する構成の詳細を説明する。
[3.本実施形態において実現される機能]
図4は、商品情報表示システム1で実現される機能の一例を示す機能ブロック図である。図4に示すように、本実施形態では、データ記憶部100、取得部101、特定部102、記録部103、及び表示制御部104がサーバ10で実現される。データ記憶部100は、記憶部12を主として実現され、取得部101、特定部102、記録部103、及び表示制御部104は、制御部11を主として実現される。
[3−1.データ記憶部]
データ記憶部100は、オンラインショッピングモールに関する種々のデータを記憶する。ここでは、データ記憶部100が記憶するデータとして、カテゴリ定義データ、商品データ、検索クエリデータ、PV(Property-Value)シードデータ、及び拡張商品メタデータを説明する。
図5は、カテゴリ定義データの一例を示す図である。図5に示すように、カテゴリ定義データは、オンラインショッピングモールにおいて用意された全カテゴリを定義したマスタデータである。先述したように、本実施形態では、各商品はツリー構造で定義されたカテゴリに属するので、カテゴリ定義データには、カテゴリのツリー構造が定義される。カテゴリのツリーは、複数の階層(深さ)を有する。
例えば、カテゴリ定義データには、カテゴリを一意に識別するカテゴリIDに関連付けて、カテゴリのパスが格納される。カテゴリのパスとしては、根ノードから当該カテゴリに至るまでの情報が格納される。なお、図5の「>>」の文字列は、ノード間の枝を意味する。図5に示すように、階層が上位であるほどカテゴリ名が一般化され、階層が下位であるほどカテゴリ名が具体化される。
図6は、商品データの一例を示す図である。図6に示すように、商品データには、商品に関する種々の情報が格納される。例えば、商品データには、商品を一意に識別する商品IDに関連付けて、商品名、カテゴリID、及び商品説明が格納される。なお、商品データには、商品のタイトル、取り扱いショップ、単価、在庫数、又は商品ページのURLなどの種々の情報が格納されてよい。
商品説明は、ショップ担当者により入力され、例えば、テーブル形式の説明、半構造化テキスト形式の説明、及び自由入力テキスト形式の説明を含む。なお、商品説明は、これら全てを含む必要はなく、何れか1つ又は2つだけ含んでいてもよい。例えば、商品説明は、テーブル形式の説明と半構造化テキスト形式の説明の少なくとも一つを含んでよい。テーブル形式の説明には、ショップ担当者が入力した属性と属性値の組み合わせが格納される。テーブルを構成する行数及び列数は任意であってよい。半構造化テキストの説明には、定型文の一部の単語をショップ担当者が入力したテキストが格納される。例えば、複数の半構造化テキストが用意されており、ショップ担当者が入力可能な単語の位置は予め決まっている。自由入力テキスト形式の説明には、ショップ担当者が自由に入力したテキストが格納される。自由入力テキストとして、HTMLのタグ情報を入力可能であってもよい。
図7は、検索クエリデータの一例を示す図である。図7に示すように、検索クエリデータには、ユーザが入力した検索条件と、検索結果に対するユーザのアクションと、の関係が格納される。例えば、検索クエリデータには、ユーザが入力したキーワードと、検索結果から実際にユーザが選択した商品の商品ID、及び当該商品のカテゴリIDが関連付けられている。
なお、キーワード検索は、複数のキーワードを組み合わせることもできるので、検索クエリデータには、複数のキーワードの各々と、これらの組み合わせの条件(「AND」又は「OR」)が格納されるようにしてよい。また、キーワードだけでなく、ユーザが検索の際に選択したカテゴリも検索クエリデータに格納されていてもよい。
本実施形態では、ユーザがキーワードを入力して検索するたびに、検索クエリデータが更新される。例えば、サーバ10は、ユーザが入力したキーワードを受信すると、当該キーワードを検索クエリデータに格納する。そして、サーバ10は、検索結果に対する選択結果を受信すると、ユーザが選択した商品の商品ID及びカテゴリIDを検索クエリデータに格納する。
図8は、PVシードデータの一例を示す図である。PVシードとは、属性と属性値の組み合わせを定義するマスタデータである。即ち、PVシードは、商品説明から属性と属性値の組み合わせを抽出するために参照される辞書(見本)の役割を果たす。例えば、PVシードデータには、関連性のあるカテゴリの組み合わせに関連付けて、当該組み合わせの中で抽出されたPVシードが格納される。
なお、本実施形態では、同じ意味であっても表記が異なる属性は1つに統合される。例えば、「産地」という属性は、ショップによっては「生産地」や「原産地」と記載されていることがある。これらの意味は同じなので、図8に示すように1つの属性として統合される。このため、ある1つの属性は、複数通りの表記から構成されることがある。この点は、属性値も同じであり、1つの属性値は、複数通りの表記から構成されてもよい。
また、統合された属性の中で代表的な表記を識別する情報がPVシードデータに格納されるようにしてよい。例えば、「産地」、「生産地」、「原産地」の中で、「産地」が代表的な表記とされてよい。また、ある1つの属性には、複数個の属性値が存在するので、その中で代表的な属性値を識別する情報が、PVシードデータに格納されるようにしてよい。例えば、属性「産地」の中で、属性値として多く登場する「フランス」、「イタリア」、「スペイン」などが代表的な属性値とされてもよい。代表的な属性及び属性値は、これらが抽出される商品数に基づいて定まってよいし、システム管理者が指定してもよい。商品数に基づいて定まる場合には、最も商品数が多い属性及び属性値が代表値になってもよいし、商品数が多い順番に所定個数のものが代表値になってもよい。
図9は、拡張商品メタデータの一例を示す図である。図9に示すように、拡張商品メタデータは、各商品に関連付けられた属性と属性値の組み合わせを示すデータである。例えば、拡張商品メタデータには、商品IDに関連付けて、属性と属性値の組み合わせが格納される。拡張商品メタデータに格納される属性と属性値は、PVシードデータに格納された属性と属性値のうち、各商品の商品説明でヒットしたものである。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、実施形態に係る処理のために必要なデータを記憶すればよい。例えば、データ記憶部100は、各画面のHTMLデータを記憶してもよい。
[3−2.取得部]
取得部101は、キーワード検索が可能な複数の商品の各々のカテゴリを示す商品データを取得する。取得部101は、データ記憶部100から商品データを取得する。なお、データ記憶部100が、商品情報表示システム1とは異なるシステム内にある場合には、取得部101は、当該異なるシステムから商品データを取得するようにしてよい。
[3−3.特定部]
特定部102は、複数のユーザがそれぞれ入力したキーワード(キーワードは、1つでもよいし、複数でもよい。)に対し、検索結果の中から選択された商品のカテゴリを商品データに基づいて特定する。本実施形態では、商品データに基づいて更新される検索クエリデータにカテゴリIDが格納されるので、特定部102は、検索クエリデータを参照し、キーワードを入力した各ユーザが検索結果から実際に選択した商品のカテゴリを特定する。なお、検索クエリデータにカテゴリIDが格納されない場合には、特定部102は、商品データを参照し、検索クエリデータに格納された商品IDに関連付けられたカテゴリIDを取得することになる。
[3−4.記録部]
記録部103は、特定部102により同じキーワード(キーワードは、1つでもよいし、複数でもよい。)に対して複数のカテゴリが特定された場合、当該複数のカテゴリの組み合わせをデータ記憶部100に記録する。別の言い方をすれば、記録部103は、複数のカテゴリに共通のキーワードが存在する場合、当該複数のカテゴリを関連性のある組み合わせとして特定する。
本実施形態では、記録部103は、カテゴリの組み合わせに基づいて、当該組み合わせに含まれる複数のカテゴリをまたいだ検索を可能とする検索情報を生成する。検索情報は、商品検索で使用可能な情報であればよく、文字列であってもよいし、数値であってもよいし、これらの組み合わせであってもよい。検索情報は、関連性のある複数のカテゴリ間をまたいで検索するものであり、関連性のないカテゴリ内の商品はヒットしない。例えば、関連性のある複数のカテゴリ内の商品から生成された検索情報は、当該複数のカテゴリ内の商品に関連付けられ、それ以外のカテゴリの商品には関連付けられない。検索情報は、関連性のあるカテゴリの組み合わせ内の商品の共通項といえる。なお、検索情報は、属性と属性値の組み合わせでなくてもよく、ある商品の特徴を示す文字列であってもよいし、商品名の一部の文字列であってもよい。
また、関連性のあるカテゴリの組み合わせは、必ずしも検索に利用されなくてもよく、情報の提示に利用されるようにすればよい。例えば、記録部103が記録したカテゴリの組み合わせが、そのまま表示部25に表示されるようにしてもよいし、抽出された属性と属性の組み合わせが、特に検索可能ではない状態で単に情報として提示されるようにしてもよい。更に、関連性のあるカテゴリの組み合わせが、当該組み合わせを特定する際に参照されたキーワードとともに情報として提示されるようにしてもよい。
本実施形態では、記録部103は、主に下記の6つの処理を実行する場合を説明する。
(1)カテゴリ抽出処理
(2)カテゴリ統合処理
(3)PVシード抽出処理
(4)属性統合処理
(5)属性値拡張処理
(6)リンク処理
[カテゴリ抽出処理]
カテゴリ抽出処理は、カテゴリ統合処理以降の対象となるカテゴリを特定する処理である。即ち、カテゴリ抽出処理は、関連性を判定する対象となるカテゴリを特定する処理である。別の言い方をすれば、カテゴリ抽出処理は、属性と属性値の組み合わせを抽出する対象となるカテゴリを特定する処理である。
例えば、カテゴリ内の商品数が多すぎると、商品が多様すぎるため属性と属性値を抽出してもあまり意味がなく、逆に商品数が少なすぎると、商品の種類が少なすぎるため属性と属性値を抽出してもあまり役に立たない。このため、本実施形態では、カテゴリ抽出処理によって、程よい商品数のカテゴリを処理対象としている。
例えば、記録部103は、カテゴリ定義データ及び商品データに基づいて、ツリー全体の中から、商品数が第1閾値(例えば、27)以上であり、かつ、第2閾値(例えば、215)未満である部分木を特定し、当該部分木の根ノードのカテゴリを抽出する。なお、記録部103は、根ノードだけではなく、当該部分木に含まれる全てのカテゴリを抽出してもよい。また、第1閾値と第2閾値は、データ記憶部100に記憶されており、固定値であってもよいし、可変値であってもよい。
[カテゴリ統合処理]
カテゴリ統合処理は、関連性のあるカテゴリの組み合わせを特定する処理である。即ち、カテゴリ統合処理は、関連性のあるカテゴリの組み合わせを1つのグループとして統合する処理である。記録部103は、カテゴリ抽出処理で抽出したカテゴリと、検索クエリデータと、に基づいて、カテゴリ統合処理を実行する
本実施形態では、カテゴリ抽出処理により、ある一定数の商品が属する部分木の根ノードが抽出されるので、カテゴリ統合処理では、記録部103は、当該根ノードの子ノードのカテゴリごとに、当該カテゴリの商品が選択された場合に入力されたキーワードを集計する。そして、記録部103は、複数のカテゴリの中で共通するキーワードが基準個数(例えば、30個)以上存在する場合、当該複数のカテゴリを、関連性のあるカテゴリの組み合わせとして特定する。記録部103は、特定したカテゴリの組み合わせをPVシードデータに格納する。
なお、カテゴリ間の関連性の判定方法は、上記の例に限られない。例えば、記録部103は、あるキーワードに対して複数のカテゴリが特定され、かつ、キーワードを入力したユーザが基準人数以上である場合に、カテゴリ間の関連性があると判定してもよい。即ち、例えば、ある1組のユーザだけが選択したのではなく、多数のユーザが商品を選択したカテゴリ同士を、関連性があるカテゴリの組み合わせとしてもよい。更に、先述したように、あるキーワードに対してカテゴリ内の複数の商品が選択された場合に、当該カテゴリが関連性の判定の候補とされるようにしてもよい。
[PVシード抽出処理]
PVシード抽出処理は、商品説明の中からPVシードを抽出する処理である。PVシード抽出処理により抽出されるPVシードは、初期値であり、後述する属性統合処理と属性値拡張処理によって、同意の属性が統合されたり属性値のバリエーションが増加されたりする。
記録部103は、カテゴリ統合処理で特定したカテゴリの組み合わせと、商品データと、に基づいて、PVシード抽出処理を実行する。例えば、PVシードを抽出するアルゴリズムに、商品説明の中で属性が格納されている場所が定められている。属性の格納場所は、過去に入力された商品説明の傾向から予め定めておけばよい。記録部103は、商品説明のうち、当該アルゴリズムにより定まる場所の文字列を属性として抽出する。更に、このアルゴリズムには、属性の格納場所に対する属性値の相対的な格納場所が定められている。記録部103は、抽出した属性と所定の位置関係を有する場所にある文字列又は数値を属性値として抽出する。
例えば、テーブル形式の説明は、セルごとに文字列が入力されるので、テキスト形式の商品説明に比べて、属性と属性値の格納場所を特定しやすい。このため、記録部103は、テーブル形式の説明から属性と属性値を抽出するようにしてよい。テーブル形式の説明では、特定の列(例えば、第1列)に属性が格納されており、その隣の列(例えば、第2列)に属性値が格納されていることが多い。このため、記録部103は、特定の列のセルに格納された文字列を属性とし、その隣の列に格納された文字列を属性値として取得する。そして、記録部103は、これらの組み合わせをPVシードとして抽出し、PVシードデータに格納する。
例えば、図2の商品A及びBの場合、商品ページP3及びP4に示すように、テーブル形式の商品説明のうち、1列目に属性の名称が格納され、2列目に属性値が格納される。このため、記録部103は、1列目の各セルに格納された文字列を属性とし、2列目の各セルに格納された文字列を属性値として取得する。例えば、記録部103は、商品Aから、属性「産地」と属性値「フランス」、属性「生産年」と属性値「2016」、属性「種類」と属性値「赤」、及び属性「度数」と属性値「11%」の4つの組み合わせをPVシードとして抽出する。また例えば、商品Bから、属性「産地」と属性値「フランス」、属性「生産年」と属性値「2015」、属性「種類」と属性値「白」、及び属性「度数」と属性値「12%」の4つの組み合わせをPVシードとして抽出する。
なお、テーブルによっては、特定の列はなく特定の行に属性が格納されている場合もあるので、この場合は、記録部103は、特定の行のセルに格納された文字列を属性とし、その隣の行のセルに格納された文字列を属性値として取得するようにしてよい。
また例えば、半構造化テキスト形式の説明は、単語の挿入場所が決まっているので、属性と属性値の格納場所を特定しやすい。このため、記録部103は、半構造化テキストに基づいて、PVシードを抽出してもよい。半構造化テキストは、全体のフォーマットが決まっているため、第1の位置に挿入される単語が属性であり、第2の位置に挿入される単語が属性値である蓋然性が高い。このため、記録部103は、半構造化テキストの第1の位置を参照して属性を取得し、第2の位置を参照して属性値を取得し、これらの組み合わせをPVシードとして抽出するようにしてもよい。
更に、記録部103は、抽出したPVシードを、自由入力テキスト形式の説明を利用して拡張してもよい。この場合、記録部103は、自由入力テキスト形式の説明の中に、テーブル形式又は半構造化テキスト形式の説明から抽出されたPVシードの属性と属性値の少なくとも一方と類似する文字列が存在するかを判定する。例えば、記録部103は、現在のPVシードと類似する文字列が文章形式の説明の中にある場合、当該文字列を新たな属性としてPVシードに追加する。また例えば、記録部103は、現在のPVシードの属性値と類似する文字列又は数値が文章形式の説明にある場合、当該文字列又は数値を新たな属性値としてPVシードに追加する。
なお、文字列の類否を判定する方法自体は、公知の種々の類否判定アルゴリズムを適用可能である。以降の他の処理において、文字列の類否を判定する場合も同様である。例えば、入力した文字列の特徴量ベクトルを返すWord2vecというアルゴリズムを利用してもよい。例えば、2つの文字列の特徴量ベクトルの差が閾値未満である場合に類似と判定され、差が閾値以上である場合に非類似と判定されるようにしてよい。また、日本語のように単語同士の間にスペースがない言語の場合、記録部103は、単語の区切り位置を判定するためのアルゴリズムを利用し、文章形式の説明を単語に分割したうえで、PVシードに格納された属性と属性値の類否判定を実行してもよい。更に、区切った単語の集合を利用して文字列の類似を判定してもよいし、複数の単語からなる連語を利用して文字列の類似を判定してもよい。
[属性統合処理]
属性統合処理は、PVシードとして抽出した属性のうち、表記は異なるが同じ意味の属性同士を統合する処理である。属性統合処理により、同種の属性が1つに統合され、PVシードの冗長性が軽減される。
例えば、同じ属性であったとしても、異なる言い回しが存在するので、属性統合処理では、異なる言い回しがなされた複数の属性が同じ属性として統合される。例えば、「製造元」と記載された属性と、「メーカ」と記載された属性と、がPVシードに存在する場合、これらは単に日本語と英語の違いだけであり、意味は同じなので、属性統合処理により、これらが同じ属性として統合される。
また例えば、日本語のように複数種類の文字が混在する言語では、同じ言葉でも、使用される文字の種類が異なることがある。例えば、ひらがな、カタカナ、及び漢字の3種類の文字が混在する日本語の場合、ある単語が、ひらがなで記載された場合、カタカナで記載された場合、及び漢字で記載された場合、意味は同じなので、属性統合処理により、これらが同じ属性として統合される。
記録部103は、PVシード抽出処理で抽出したPVシードに基づいて、属性統合処理を実行する。本実施形態では、属性値の共通性に基づいて属性の類否が判定される場合を説明する。例えば、記録部103は、下記の数式1に基づいて、PVシードに格納された属性同士の類似度Lを算出する。
数式1のP1とP2は、それぞれ、PVシードに抽出された任意の属性である。即ち、属性を統合するか否かの判定対象となる2つの属性の組みあわせである。数式1の左辺は、2つの属性P1とP2の類似度Lである。ここでは、類似度Lが高いほど属性P1とP2が類似し、これらを同じ属性として統合すべきことを示す。一方、類似度Lが低いほど属性P1とP2が類似しておらず、これらを同じ属性として統合すべきでないことを示す。
数式1のm1は、属性P1のレンジサイズであり、m2は、属性P2のレンジサイズである。なお、レンジサイズは、属性が及ぶ範囲であり、ここでは、属性値の多様性を意味する。例えば、ある属性の属性値の種類が多いほどレンジサイズが大きくなり、属性値の種類が少ないほどレンジサイズが小さくなる。また例えば、属性値が数値で表されるのであれば、属性値の最大値と最小値の差が大きいほどレンジサイズが大きくなり、当該差が小さいほどレンジサイズが小さくなる。数式1のnは、m1とm2の共通部分のサイズである。即ち、属性P1の属性値と属性P2の属性値との間で共通する属性値の種類数である。
数式1のLconfは、2つの属性が似ている確率を返す増加関数である。この確率は、属性P1の属性値と属性P2の属性値との共通部分が大きいほど(即ち、共通する属性値の個数が多いほど)大きくなり、共通部分が小さいほど小さくなる。関数Lconfは、属性P1と属性P2との間で、どの程度属性値が共通しているかを評価するために用いられる。
数式1のLsizeは、Lconfが示す確率を和らげるための減少関数である。関数Lsizeは、属性P1のレンジサイズと、属性P2のレンジサイズと、の差が小さい場合に大きくなり、当該差が大きい場合に小さくなる。属性P1と属性P2との間で共通部分が多かったとしても、そのサイズに差があるときは、これらを同じとみなしてよいか疑わしいため、関数Lsizeは、これらが統合されることを防止するために用いられる。数式1のLerrorは、右辺第1項が非常に大きい場合又は非常に小さい値である場合に、類似度Lを調整するための増加関数である。
数式1に示すように、関数Lconfは、m1、m2、及びnを変数とする数式であり、関数Lsizeは、m1及びm2を変数とする数式であり、関数Lsizeは、nを変数とする数式である。例えば、Lconf(x)=xであり、Lsize=exp(−ax)であり、かつ、Lerror(x)=bxであってよい。なお、aとbは係数であり、例えば、a=0.33であり、かつ、b=0.1であってよい。
記録部103は、ある2つの属性の類似度Lが基準値(例えば、0.1)以上である場合に、これら2つの属性を同種として統合する。なお、関連性のあるカテゴリの中で同種の属性が統合されるので、2つの属性が抽出された商品のカテゴリ同士が関連していることも、統合のための条件である。
なお、属性統合処理は、上記の例に限られず、他の評価方法によって同種の属性が推定されてもよい。例えば、公知の類語判定アルゴリズムを利用し、記録部103は、類語判定アルゴリズムに基づいて同意と判定した属性同士を統合してもよい。類語判定アルゴリズムでは、類語を定義した類語辞書データに基づいて、類語が判定されるようにしてよい。また例えば、記録部103は、PVシードとして抽出された複数の属性の各々の属性値を参照し、特定の属性値を有する属性同士を同種として推定してもよい。当該特定の属性値は、予め指定された属性値であってよいが、例えば、業者間で一般的に用いられる業界用語であってよい。
また例えば、記録部103は、ある同じ属性について、1つの商品説明の中で複数の言い回しが共存することは考えにくいので、ある商品説明の中で重複して登場した属性は同種と推定しないように制限してもよい。また、属性統合処理において、記録部103は、属性値のフィルタリング処理を実行してもよい。属性値のフィルタリング処理では、PVシードデータとして抽出された属性値が破棄されたり、ある属性値と他の属性値が同種として統合されたりしてもよい。例えば、記録部103は、検索クエリデータに格納されたキーワードとして登場しない属性値は破棄してもよい。
[属性値拡張処理]
属性値拡張処理は、属性値のバリエーションを増加させ、属性のレンジサイズを拡張する処理である。即ち、属性値拡張処理は、各属性に対して新たな属性値を追加する処理である。
例えば、記録部103は、商品データに基づいて、属性値拡張処理を実行する。記録部103は、カテゴリ統合処理で特定した組み合わせに含まれるカテゴリに属する商品の商品説明の中から、新たな属性値の候補を抽出する。例えば、記録部103は、現在のPVシードに格納された属性値と類似する文字列又は数値を属性値の候補として抽出してよい。また例えば、記録部103は、現在のPVシードに格納された属性と一致する文字列の付近にある文字列又は数値を属性値の候補として抽出してよい。
記録部103は、上記のように抽出した候補を、PVシードに追加するかを判定する。記録部103は、新たな候補が無くなるまで、この処理を繰り返す。例えば、記録部103は、2つの条件が満たされた場合に、抽出した候補を新たな属性値としてPVシードに追加するようにしてよい。第1の条件は、文字の類否判定アルゴリズムに基づいて、候補が現在の属性値と類似すると判定されることである。第2の条件は、候補と似ている属性値を有する属性が他にないことである。もし、候補と似ている属性値を有する属性が他にある場合には、当該他の属性に属性値が追加されるようにしてよい。
例えば、記録部103は、数式2に基づいて、評価値を計算するようにしてもよい。数式2の左辺は評価値である。SPは、属性である。Miは、利用する文字の類否判定アルゴリズムである。右辺は、候補が示す文字の特徴量ベクトルと、既存の属性値の特徴量ベクトルと、ずれ具合である。右辺に示すようにこれらの余弦を取っているので、ベクトルが同じ方向を向いているほど(即ち、文字として似ているほど)評価値が高くなる。記録部103は、評価値が閾値以上であれば候補を新たな属性値として追加し、評価値が閾値未満の候補は破棄する。
[リンク処理]
リンク処理は、関連性があるとされた各カテゴリの商品に対して属性と属性値を付与する処理である。先述したように、PVシードは、あくまで辞書として利用するので、PVシードを抽出した時点では、まだ商品に属性と属性値は付与されていない。リンク処理によって、商品に属性と属性値が付与されて、拡張商品メタデータが生成される。
例えば、記録部103は、商品データとPVシードデータとに基づいて、リンク処理を実行する。記録部103は、各商品のテーブル形式の説明と、PVシードデータと、に基づいて、属性と属性値を抽出する。即ち、記録部103は、各商品のテーブル形式の説明の中に、PVシードが示す属性と属性値の組み合わせと一致するものがあれば、当該商品の属性と属性値として抽出する。
また例えば、記録部103は、各商品の半構造化テキスト形式又は自由入力テキスト形式の説明と、PVシードデータと、に基づいて、属性と属性値を抽出する。即ち、記録部103は、これらのテキスト形式の説明の中に、PVシードが示す属性と属性値の組み合わせと一致するものがあれば、当該商品の属性と属性値として抽出する。
なお、属性と属性値の抽出の際には、上記のような一致ではなく、先述した文字列の類似を判定するための類似判定アルゴリズムが用いられてもよい。また例えば、属性値が数値であれば、記録部103は、商品説明の数値とPVシード内の属性値との差が閾値未満であれば、当該属性値が商品説明の中にあるとみなしてもよい。
以上のように、本実施形態の記録部103は、組み合わせが示す複数のカテゴリに含まれる複数の商品の各々の商品説明に基づいて、当該商品の属性と属性値を抽出してデータ記憶部100に記録する。本実施形態では、記録部103は、関連性があるものとして特定された複数のカテゴリ内の全ての商品に対して属性と属性値を抽出する。ただし、全ての商品を必ず属性と属性値の抽出対象としなければならないわけではなく、当該複数のカテゴリ内の一部の商品だけが属性と属性値の抽出対象となってもよい。
また例えば、記録部103は、商品説明の中のテーブル形式の説明と半構造化テキスト形式の説明の少なくとも一つから属性と属性値を抽出する。例えば、記録部103は、商品説明の中のテーブル形式の説明から属性と属性値を抽出する。記録部103は、テーブル形式の説明内の特定のセルの文字列を属性として抽出し、当該セルと所定の位置関係にある他のセルの文字列又は数値を属性値として抽出する。また例えば、記録部103は、半構造化テキスト形式の説明の所定位置の文字列を属性として抽出し、当該位置と所定の位置関係にある他の位置の文字列又は数値を属性値として抽出する。この位置関係は、使用される言語によって異なってよい。例えば、主語が属性であり述語が属性値である蓋然性が高いので、日本語の場合は、属性は文章の最初の名詞であり、属性値は述語の前の名詞とし、英語の場合は、属性は文章の最初の名詞であり、属性値は述語の後の名詞としてよい。
例えば、記録部103は、テーブル形式の説明からPVシードの属性を抽出し、テーブル形式の説明と半構造化テキスト形式の説明の両方からPVシードの属性値を抽出するようにしてよい。記録部103は、これら抽出した属性と属性値を含むPVシードに基づいて、自由入力テキスト形式の説明から属性と属性値を抽出して商品と関連付けて保存するようにしてよい。
また例えば、記録部103は、少なくとも一つの商品から抽出した属性と属性値に基づいて、他の商品の自由入力テキスト形式の説明から属性と属性値を抽出する。なお、記録部103は、別々の商品から抽出された属性と属性値に基づいて、他の商品の属性と属性値を抽出してもよい。即ち、記録部103は、商品Xから抽出した属性と、商品Yから抽出した属性値と、に基づいて、商品Zから属性と属性値を抽出してもよい。例えば、記録部103は、少なくとも一つの商品のテーブル形式又は半構造化テキスト形式の説明から抽出した属性と一致又は類似する文字列を、他の商品の自由入力テキスト形式の説明から特定した場合は、新たな属性として抽出する。同様に、記録部103は、少なくとも一つの商品のテーブル形式又は半構造化テキスト形式の説明から抽出した属性値と一致又は類似する文字列又は数値を、他の商品の自由入力テキスト形式の説明から見つけた場合は、新たな属性値として抽出する。
また例えば、記録部103は、表記の異なる複数の属性が互いに同じ意味であるかを判定し、同じ意味であると判定した複数の属性を統合する。先述したように、本実施形態では、記録部103は、複数の属性間で共通の属性値の種類数に基づく類似度L(例えば、数式1)が閾値以上であるかを判定することによって、当該複数の属性が互いに同じ意味であるかを判定する。例えば、記録部103は、属性同士の類似度Lが閾値以上であれば、同じ意味の属性として判定し、これらを統合する。なお、類似度の算出方法は、数式1に限られず、他の数式を用いてもよい。この数式は、共通の属性値の種類数を引数とした数式であってよく、当該種類数が多いほど類似度が高くなるような数式であってよい。他にも例えば、共通の属性値の種類数がそのまま類似度となるようにしてもよい。また、単語同士の類似を判定する方法は、他の方法を利用してもよく、例えば、データ記憶部100に類語辞書データを記憶させておき、記録部103は、類語辞書データに基づいて、複数の属性を統合してもよい。
また例えば、記録部103は、各カテゴリに属する商品の数に基づいて、自身の処理対象とするカテゴリを決定する。記録部103は、一定範囲の商品数があるカテゴリに対し、他のカテゴリとの関連性を判定したり、属性と属性値を抽出したりする。また例えば、本実施形態では、カテゴリがツリー構造なので、記録部103は、特定部102により同じキーワードに対して複数の兄弟ノードのカテゴリが特定された場合に、当該複数の兄弟ノードのカテゴリの組み合わせを記録する。そして、記録部103は、特定部102により同じキーワードに対して兄弟ノードのカテゴリの組み合わせが特定された場合に属性と属性値の組み合わせを生成することになる。
[3−5.表示制御部]
表示制御部104は、組み合わせに基づく情報を表示部25に表示させる。例えば、表示制御部104は、属性と属性値に基づく情報を表示部25に表示させる。例えば、表示制御部104は、表示部25に表示された属性と属性値のうち、ユーザが選択したものに基づく検索結果を表示部25に表示させてもよい。また例えば、先述したように、表示制御部104は、抽出された属性と属性値を表示部25に表示させるようにしてもよいし、検索に関する情報以外の情報を表示部25に表示させるようにしてもよい。他にも例えば、表示制御部104は、カテゴリツリーの中で関連性のあるサブカテゴリ同士を識別可能に表示部25に表示させてもよい。表示制御部104が情報を提供するのは、オンラインショッピングモールを利用するユーザだけではなく、オンラインショッピングモールの管理者であってもよい。即ち、表示制御部104は、ユーザ端末20の表示部25以外の任意の表示部に情報を表示可能であってよい。
本実施形態では、表示制御部104は、属性と属性値の組み合わせに基づいて、関連性のあるカテゴリの組み合わせが示す各カテゴリをまたいだ検索を実行する。カテゴリをまたいだ検索とは、複数のカテゴリを横断的に検索することであり、ある1つの検索条件に基づいて、第1のカテゴリ内の商品と、第2のカテゴリ内の商品と、を同時に検索することである。
例えば、表示制御部104は、属性と属性値の少なくとも一つを選択可能な属性表示画面G5,G6を各ユーザに提供し、当該画面に対する選択結果に基づく検索結果を、表示部25に表示させることになる。例えば、表示制御部104は、属性表示画面G5,G6に対する選択結果に基づいて、組み合わせが示す各カテゴリをまたいだ検索を実行するようにしてよい。表示制御部104は、ユーザが属性を選択した場合、拡張商品メタデータを参照し、当該属性が関連付けられた商品を検索結果に表示させる。また、表示制御部104は、ユーザが属性値を選択した場合、拡張商品メタデータを参照し、当該属性値が関連付けられた商品を検索結果に表示させる。
本実施形態では、カテゴリがツリー構造で定義されているので、表示制御部104は、関連性のあるカテゴリの組み合わせの親ノードのカテゴリが選択された場合に情報を表示部25に表示させることになる。例えば、表示制御部104は、親ノードのカテゴリが選択された場合に、属性と属性値の組み合わせに基づいて、関連性のあるカテゴリの組み合わせが示す各カテゴリをまたいだ検索を実行することになる。即ち、表示制御部104は、ユーザが選択したカテゴリの子ノードのうち、関連性のあるカテゴリから抽出された属性と属性値を示す属性表示画面G5,G6を表示させ、当該画面に対する選択結果に基づいて、関連性のある子ノードをまたいだ検索を実行することになる。
[4.本実施形態において実行される処理]
次に、商品情報表示システム1で実行される処理の流れを説明する。ここでは、関連性のあるカテゴリの組み合わせを特定して拡張商品メタデータを生成するメタデータ生成処理と、拡張商品メタデータに基づいて商品を検索する情報表示処理と、を説明する。メタデータ生成処理及び情報表示処理は、図4に示す機能ブロックにより実行される処理の一例である。
[4−1.メタデータ生成処理]
図10は、メタデータ生成処理を示すフロー図である。メタデータ生成処理は、制御部11が、記憶部12に記憶されたプログラムに従って動作することによって実行される。メタデータ生成処理は、所定のタイミングで実行されるようにすればよく、例えば、システム管理者の指示に応じて実行されてもよいし、予め定められた日時に実行されてもよい。
図10に示すように、まず、制御部11は、カテゴリ定義データ及び商品データに基づいて、カテゴリ抽出処理を実行する(S1)。S1においては、制御部11は、全カテゴリの中から、ある一定の商品数を有するカテゴリを特定し、以降の処理対象として当該カテゴリを抽出する。制御部11は、S1で抽出したカテゴリと、検索クエリデータと、に基づいて、カテゴリ統合処理を実行する(S2)。S2においては、制御部11は、共通のキーワードによって商品ページが表示された商品のカテゴリの組み合わせを特定し、関連性のあるカテゴリの組み合わせとして保持する。
制御部11は、カテゴリ統合処理で特定したカテゴリの組み合わせと、商品データと、に基づいて、PVシード抽出処理を実行する(S3)。S3においては、制御部11は、テーブル形式又は半構造化テキスト形式の商品説明からPVシードを抽出し、それを自由入力テキスト形式の商品説明に展開する。制御部11は、PVシードデータに基づいて、属性統合処理を実行する(S4)。S4においては、制御部11は、表記が異なる複数の属性が同じ意味であるかを判定し、同じ意味の複数の属性同士を統合する。
制御部11は、商品データに基づいて、属性値拡張処理を実行する(S5)。S5においては、制御部11は、商品説明の中から新たな属性値を抽出して、PVシードに追加する。制御部11は、商品データとPVシードデータとに基づいて、リンク処理を実行し(S6)、本処理は終了する。S6においては、制御部11は、商品説明の中にPVシードと一致又は類似するものがあれば、属性及び属性値の組み合わせとして抽出し、商品に関連付けて拡張商品メタデータに記録する。
[4−2.情報表示処理]
図11は、情報表示処理を示すフロー図である。情報表示処理は、制御部11が、記憶部12に記憶されたプログラムに従って動作し、制御部21が、記憶部22に記憶されたプログラムに従って動作することによって実行される。
図11に示すように、まず、ユーザ端末20において、制御部21は、ユーザが操作部24からトップページG1のリンクを選択したことに応じて、トップページG1の表示要求をサーバ10に送信する(S10)。なお、ユーザ端末20からサーバ10に対してデータが送信される場合には、ユーザ端末20のIPアドレスやセッションIDなどが送信され、サーバ10は、どのユーザ端末20がアクセスしているかを特定可能となっている。
サーバ10においては、トップページG1の表示要求を受信すると、制御部11は、トップページG1の表示データを生成してユーザ端末20に送信する(S11)。S11においては、制御部11は、カテゴリ定義データに基づいて選択可能なカテゴリを含むトップページG1を生成したり、商品データに基づいて任意の商品を選択して当該商品のリンクを含むトップページG1を生成したりする。トップページG1は、任意のデータ形式であればよく、例えば、HTMLデータであってよい。
ユーザ端末20において、トップページG1の表示データを受信すると、制御部21は、トップページG1を表示させる(S12)。制御部21は、操作部24の検出信号に基づいて、トップページG1に対するユーザの操作内容をサーバ10に送信する(S13)。ここでは、キーワードの入力と、カテゴリの選択と、の何れかが行われるものとするが、他の操作が可能であってもよい。
サーバ10においては、ユーザの操作内容を受信すると、制御部11は、ユーザがカテゴリを選択したかを判定する(S14)。ユーザがカテゴリを選択したと判定されない場合(S14;N)、本処理は終了し、制御部11は、操作内容に基づいた処理を実行する。例えば、ユーザがキーワードを入力した場合は、制御部11は、キーワード検索を実行して検索結果をユーザ端末20に送信する。その後に、ユーザが選択した商品を示す情報をサーバ10が受信した場合には、ユーザが入力したキーワードと検索結果から選択した商品のカテゴリとを関連付けて検索クエリデータに格納する。
一方、ユーザがカテゴリを選択したと判定された場合(S14;Y)、制御部11は、PVシードデータに基づいて、属性と属性値を選択可能な属性表示画面の表示データを生成してユーザ端末20に送信する(S15)。S15においては、制御部11は、ユーザが選択したカテゴリの子ノードのうち、関連性のあるカテゴリとして抽出された組み合わせを特定する。そして、制御部11は、当該組み合わせに関連付けられたPVシードを選択可能な属性表示画面を生成する。なお、属性表示画面には、PVシードの全てが表示される必要はなく、その代表的な属性及び属性値のみが表示されればよい。
ユーザ端末20において、画面の表示データを受信すると、制御部21は、属性表示画面を表示させる(S16)。制御部21は、操作部24の検出信号に基づいて、ユーザの操作内容をサーバ10に送信する(S17)。ここでは、属性の選択又は属性値の選択が行われるものとするが、他の操作が可能であってもよい。
サーバ10においては、ユーザの操作内容を受信すると、制御部11は、その操作内容を参照する(S18)。ユーザが属性を選択したと判定された場合(S18;属性)、制御部11は、拡張商品メタデータに基づいて、ユーザが選択した属性が関連付けられた商品を検索する(S19)。S19においては、制御部11は、ユーザが選択した属性と、拡張商品メタデータに格納された属性と、を比較し、ユーザが選択した属性にヒットする商品を抽出する。
一方、ユーザが属性値を選択したと判定された場合(S18;属性値)、制御部11は、拡張商品メタデータに基づいて、ユーザが選択した属性値が関連付けられた商品を検索する(S20)。S20においては、制御部11は、ユーザが選択した属性値と、拡張商品メタデータに格納された属性値と、を比較し、ユーザが選択した属性値にヒットする商品を抽出する。
制御部11は、S19又はS20の検索結果に基づいて、検索結果画面の表示データを生成してユーザ端末20に送信する(S21)。検索結果画面には、S19又はS20でヒットした商品のサムネイル画像やリンクなどが含まれている。
ユーザ端末20において、検索結果画面の表示データを受信すると、制御部21は、検索結果画面を表示させ(S22)、本処理は終了する。以降、ユーザは検索結果画面から所望の商品を選択して商品ページに遷移することになる。
以上説明した商品情報表示システム1によれば、関連性のあるカテゴリの組み合わせを記録して、当該組み合わせに基づく情報が表示されるので、複数のカテゴリに商品が分散していたとしても、所望の商品を見つけるのに有用な情報を提示することができる。例えば、関連性のあるカテゴリの組み合わせに共通する検索情報に基づいて複数のカテゴリをまたいだ検索を実行するようにすれば、複数のカテゴリに分散する商品を1つの検索結果に載せることができ、所望の商品を見つけやすい検索結果を提示することができる。他にも例えば、関連性のあるカテゴリの組み合わせをそのまま表示させたとしても、ユーザはどのカテゴリに所望の商品が分散しているかを把握することができるので、ユーザにとって有用な情報を提示することができる。また、商品情報表示システム1は、実際にユーザが選択した商品に基づいてカテゴリ間の関連性を特定するので、実状に沿ったカテゴリ間の関連性を見出すことができる。また、先述したように、特定部102は、複数のカテゴリ間で共通のキーワードが閾値以上存在する場合に、これら複数のカテゴリを関連性のある組み合わせとして特定するが、当該閾値を2以上(複数)とした場合には、ユーザが間違って商品を選択したことにより、関連性のないカテゴリが関連性のあるものとして特定されてしまうことを防止することができる。更に、関連性のあるカテゴリの候補とするために、2以上の商品が選択されたことを条件とすることでも、ユーザの誤選択によって関連性のないカテゴリが関連性のあるものとして特定されてしまうことを防止することができる。
また、商品情報表示システム1は、商品説明から抽出した属性と属性値に基づく情報を提示するので、関連性のあるカテゴリ間の共通項を情報として提示することができる。ユーザは、当該共通項をもとに、複数のカテゴリに分散する商品を探すヒントを得ることができる。例えば、属性と属性値を検索情報とするようにすれば、関連性のあるカテゴリ間の共通項に基づいて検索を実行することができる。このため、関連性のある商品が複数のカテゴリ間に分散していたとしても、各カテゴリ内にある所望の商品をピンポイントで抽出して検索結果に載せることができる。更に、属性と属性値は、商品説明から抽出されたものなので、システム管理者が予め用意した属性のキーワードよりも、商品の特徴をより的確に表した情報を提示することが可能になる。
また、商品情報表示システム1は、属性と属性値の格納場所を特定しやすいテーブル形式の説明から各商品の属性と属性値を抽出する場合には、商品の特徴を示さない情報が誤って抽出されることを防止することができ、属性と属性値の精度を高めることができる。また、商品情報表示システム1は、属性と属性値の格納場所を特定しやすい半構造化テキスト形式の説明から各商品の属性と属性値を抽出する場合にも、商品の特徴を示さない情報が誤って抽出されることを防止することができ、属性と属性値の精度を高めることができる。
また、商品情報表示システム1は、テーブル形式と半構造化テキスト形式の説明の少なくとも一つから抽出した属性と属性値を使って、自由入力テキストの中から属性と属性値を抽出するので、より情報量の多い自由入力テキストを利用して属性と属性値のバリエーションを増やすことができる。
また、商品情報表示システム1は、表記は異なるが同じ意味の属性同士を統合することで、同じ意味の属性が異なる属性として抽出されてしまうことを防止することができ、属性の冗長性を軽減することができる。
また、商品情報表示システム1は、属性間で共通の属性値の種類数に基づく類似度を参照して同じ意味の属性であるかを判定することで、同義語の判定の精度を高めることができる。例えば、属性値の個数によって同義語を判定する場合には、ある店舗が同じ属性値を繰り返し商品説明で使用すると、個数が増加してしまい、この店舗の商品説明のせいで本当は同義ではない属性同士が同義とされてしまう可能性がある。これに対し、実施形態で説明したように、属性値の種類数によって同義語を判定する場合には、商品説明として何回使用されたとしても、種類数としては1つに変わりはないので、上記のように同義ではない属性同士が同義とされてしまうことを防止でき、同義語の判定精度を高めることができる。
また、商品情報表示システム1は、属性と属性値の少なくとも一方を選択可能な属性表示画面をユーザ端末20に表示させることで、どのような観点で共通項があるかをユーザに把握させることができる。例えば、ユーザが選択した属性又は属性値により検索を実行すれば、ユーザの好みに応じた観点での検索が可能となる。
また、商品情報表示システム1は、一定の商品数があるカテゴリの子ノードに相当するカテゴリ同士の関連性を判定して属性と属性値を抽出することにより、より効果的な情報の提供が可能となる。例えば、「ドリンク」のように、一般的な名称のカテゴリが存在した場合、当該カテゴリに属する商品の数が多すぎるので、このカテゴリ内の商品は、特徴が違いすぎてしまい、属性と属性値を分析しても意味がない。逆に商品数が少なすぎるカテゴリでは、所望の商品がすぐ見つかるため分析しても意味がないため、属性と属性値による検索が効果的なカテゴリ内で検索を実行することができる。このため、例えば、「ワイン」のように、程よく具体的なカテゴリであり、程よい数の商品が存在するカテゴリを処理対象とし、「ワイン」の子ノードに相当するカテゴリ(ここでは、「赤ワイン」、「白ワイン」、「ワイングッズ」)の中で、関連性があるカテゴリの組み合わせを特定することで、ユーザにとってより有益な情報を提供することができる。
また、商品情報表示システム1は、ユーザが選択したカテゴリの子ノードのカテゴリ同士に関連性がある場合、これらを横断する情報を提供することができる。このため、ユーザに大まかなカテゴリを選択させた後に、属性と属性値の観点から関連性のあるカテゴリをまたいだ情報を提供することができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、実施形態では、抽出された属性と属性値を選択可能な属性表示画面が表示される場合を説明したが、抽出された属性と属性値に基づく検索結果がユーザに提示されればよく、属性と属性値に基づいて検索した商品をユーザにリコメンドしてもよい。
変形例(1)の表示制御部104は、各ユーザが商品ページの表示を要求した商品の属性と属性値の少なくとも一つと一致する他の商品を検索し、当該検索した他の商品へのリンクを商品ページに含ませることによって、情報を表示部25に表示させる。商品ページの要求は、検索結果画面から商品が選択されることにより行われるようにしてよい。
例えば、表示制御部104は、拡張商品メタデータに基づいて、商品ページの表示が要求された商品の属性と属性値を取得し、これらと同じ属性と属性値を有する商品を検索して、当該商品のリンクを商品ページに含ませるようにしてもよい。また例えば、表示制御部104は、商品データに基づいて、商品ページの表示が要求された商品のカテゴリIDを特定し、PVシードデータに当該カテゴリIDが登録されていれば、当該カテゴリIDに関連付けられたPVシードの何れかを取得する。そして、表示制御部104は、拡張商品メタデータと取得したPVシードとに基づいて商品を検索し、当該商品のリンクを商品ページに含ませるようにしてもよい。
上記変形例(1)によれば、ユーザが興味を湧く商品をリコメンドすることができる。また、属性と属性値に基づいてリコメンドすることで、より興味が湧く蓋然性の高い商品に関する情報を提供することができるので、効果的なリコメンドをすることができる。
(2)また例えば、実施形態では、記録部103が、各カテゴリに属する商品の数に基づいて、自身の処理対象とするカテゴリを決定したが、特定部102が、各カテゴリに属する商品の数に基づいて、自身の処理対象とするカテゴリを決定してもよい。即ち、特定部102は、ある一定の商品数があるカテゴリしか検索クエリデータから参照しないようにしてもよい。
(3)また例えば、カテゴリは特にツリー構造でなくてもよい。即ち、カテゴリは、階層的を有しておらず、全てのカテゴリが同列の扱いであってもよい。この場合でも、実施形態と同様に、キーワード検索の検索結果に対するユーザの選択結果に基づいて、互いの関連性が判定されるようにすればよい。
また例えば、実施形態では、属性と属性値の組み合わせが検索情報として用いられる場合を説明したが、属性だけが抽出されて検索情報として用いられてもよい。更に、特に属性は関係なく、関連性のあるカテゴリの組み合わせ内の商品で共通するキーワードを抜き出して検索情報としてもよい。更に、カテゴリの組み合わせ自体が検索情報として用いられてもよい。この場合、例えば、ユーザが「ワイン」というカテゴリを選択すると、関連性のある「赤ワイン」と「白ワイン」のカテゴリの商品だけが検索結果に載るようにしてもよい。
また例えば、テーブル形式の説明から属性と属性値の組み合わせが抽出される場合を説明したが、自由入力テキスト形式の説明だけから属性と属性値の組み合わせが抽出されてもよい。同様に、半構造化テキスト形式の説明から属性と属性値の組み合わせが抽出されなくてもよい。また例えば、同意の属性を統合する処理は必須でなく、表記の異なる文字列を互いに異なる属性としてもよい。また例えば、商品数が一定のカテゴリが処理対象とされるのではなく、全カテゴリ又は管理者が指定したカテゴリが処理対象とされてもよい。
また例えば、取得部101、特定部102、記録部103、及び表示制御部104は、それぞれユーザ端末20で実現されるようにしてもよい。この場合、これら各機能は、制御部11を主として実現される。取得部101は、サーバ10からネットワークを介して各データを取得し、特定部102、記録部103、及び表示制御部104が、当該データに基づいて処理を実行すればよい。