特許第6124489号(P6124489)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特許6124489クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム
<>
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000002
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000003
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000004
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000005
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000006
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000007
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000008
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000009
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000010
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000011
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000012
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000013
  • 特許6124489-クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6124489
(24)【登録日】2017年4月14日
(45)【発行日】2017年5月10日
(54)【発明の名称】クエリ提供装置、クエリ提供方法、およびクエリ提供プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20170424BHJP
【FI】
   G06F17/30 310A
   G06F17/30 350C
   G06F17/30 330Z
【請求項の数】13
【全頁数】16
(21)【出願番号】特願2016-151160(P2016-151160)
(22)【出願日】2016年8月1日
【審査請求日】2016年11月15日
【早期審査対象出願】
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100174986
【弁理士】
【氏名又は名称】林 康旨
(72)【発明者】
【氏名】菅原 晃平
(72)【発明者】
【氏名】チン イショウ
(72)【発明者】
【氏名】丹羽 達洋
(72)【発明者】
【氏名】マク ヒンチュン
【審査官】 小太刀 慶明
(56)【参考文献】
【文献】 特開2004−334638(JP,A)
【文献】 特開2011−180836(JP,A)
【文献】 特開2010−198577(JP,A)
【文献】 国際公開第2012/160693(WO,A1)
【文献】 特開2012−008900(JP,A)
【文献】 特開2009−075662(JP,A)
【文献】 特開2008−242623(JP,A)
【文献】 Kang et al.,"Query2Vec: Learning Deep Intentions from Heterogeneous Search Logs",Technical report,Carnegie Mellon University,2015年,p.1-7,URL,http://www.cs.cmu.edu/~dongyeok/papers/querygram.pdf
【文献】 Vulic et al.,"Monolingual and Cross-Lingual Information Retrieval Models Based on (Bilingual) Word Embeddings",Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval,ACM,2015年 8月,p.363-372
【文献】 Roy et al.,"Using Word Embeddings for Automatic Query Expansion",CoRR,2016年,abs/1606.07608,URL,http://arxiv.org/abs/1606.07608
【文献】 Diaz et al.,"Query Expansion with Locally Trained Word Embeddings",CoRR,2016年,abs/1605.07891,URL,http://arxiv.org/abs/1605.07891
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
第1のクエリの入力を受け付ける受付部と、
前記受付部により受け付けられた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第1のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出する第1の抽出部と、
前記クエリの履歴から、前記第1の抽出部により抽出された第2のクエリとともに出現する単語を抽出する第2の抽出部と、
前記第2の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第2の抽出部により抽出された前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する決定部と、
を備える、クエリ提供装置。
【請求項2】
第1のクエリの入力を受け付ける受付部と、
前記受付部により受け付けられた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第1のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出する第1の抽出部と、
前記クエリの履歴から、前記第1の抽出部により抽出された第2のクエリとともに出現する単語を抽出する第2の抽出部と、
前記第2の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第2の抽出部により抽出された前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する決定部と、
を備える、クエリ提供装置。
【請求項3】
前記第1の抽出部は、前記クエリの履歴に、前記第1のクエリとともに出現するクエリが存在するか否かを判定し、存在しない場合に、前記第2のクエリを抽出する、
請求項1または請求項2に記載のクエリ提供装置。
【請求項4】
前記決定部は、前記クエリの履歴に前記第1のクエリとともに出現するクエリが存在すると判定された場合に、前記クエリの履歴に含まれ第1のクエリに続いて存在する単語を、前記追加クエリとして決定する、
請求項に記載のクエリ提供装置。
【請求項5】
前記第1の抽出部は、前記第1のクエリに含まれる単語数と同じ単語数のクエリを前記第2のクエリとして抽出する、
請求項1〜のうちいずれか1項に記載のクエリ提供装置。
【請求項6】
前記第1の抽出部は、前記抽出した第2のクエリに複数の単語が含まれる場合、前記第1のクエリに含まれる前記単語の属性と、前記第2のクエリに含まれる単語の属性とに基づいて、前記第2のクエリを絞り込む、
請求項1からのうちいずれか1項に記載のクエリ提供装置。
【請求項7】
前記決定部は、前記第2の抽出部により抽出された前記第2のクエリとともに出現した単語の出現回数または出現頻度の統計値を算出し、算出した前記統計値に基づいて、前記追加クエリを決定する、
請求項1からのうちいずれか1項に記載のクエリ提供装置。
【請求項8】
前記決定部は、前記第1のクエリを入力する操作を行ったユーザの属性に基づいて、前記第2の抽出部により抽出された前記単語の前記第2のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項に記載のクエリ提供装置。
【請求項9】
前記決定部は、前記第1のクエリを入力する操作を行ったユーザの検索履歴に基づいて、前記第2の抽出部により抽出された前記単語の前記第2のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項またはに記載のクエリ提供装置。
【請求項10】
コンピュータが、
第1のクエリの入力を受け付け、
受け付けた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第1のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出し、
前記クエリの履歴から、前記第2のクエリとともに出現する単語を抽出し、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する、
クエリ提供方法。
【請求項11】
コンピュータに、
第1のクエリの入力を受け付けさせ、
受け付けた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第1のクエリの特徴量として算出すると共に、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出させ、
前記クエリの履歴から、前記第2のクエリとともに出現する単語を抽出させ、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定させる、
クエリ提供プログラム。
【請求項12】
コンピュータが、
第1のクエリの入力を受け付け、
受け付けた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第1のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出し、
前記クエリの履歴から、前記第2のクエリとともに出現する単語を抽出し、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する、
クエリ提供方法。
【請求項13】
コンピュータに、
第1のクエリの入力を受け付けさせ、
受け付けた前記第1のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第1のクエリの特徴量として算出すると共に、予め記憶部に記憶されたクエリの履歴から、前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出させ、
前記クエリの履歴から、前記第2のクエリとともに出現する単語を抽出させ、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定させる、
クエリ提供プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クエリ提供装置、クエリ提供方法、およびクエリ提供プログラムに関する。
【背景技術】
【0002】
クエリに基づいて検索結果を提供する検索サービスが知られている。このサービスでは、クエリが入力された場合に、既に入力されたクエリとアンド検索を行う候補となるクエリを提案することが行われている。
【0003】
これに関連して、クエリの入力を受け付けた場合に、クエリに含まれる単語と関係性を有する情報を情報テーブルから抽出し、抽出した情報に付されているタグのうち、クエリに含まれる単語と関係性を有する単語にかかるタグを、追加で提案する候補クエリとして抽出する技術が知られている(特許文献1)。また、クエリの入力を受け付けた場合に第1の組のクエリを決定し、第1の組のクエリに基づいて履歴クエリ結果を含むユーザフィードバックログを取得し、ユーザフィードバックログに基づいて第2の組のクエリを決定し、第2の組のクエリに基づいてクエリを実行する技術が知られている(特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−286974号公報
【特許文献2】特表2012−515379号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載された技術では、入力したクエリに関連する情報が関連テーブルに無い場合、またはクエリに含まれる単語と関係性がある単語が関連テーブルに無い場合には、候補クエリを抽出することができない可能性があった。また、特許文献2に記載された技術では、第1の組のクエリに基づく履歴クエリ結果がない場合には、ユーザフィードバックログを取得することができない場合があった。
【0006】
本発明は、このような事情を考慮してなされたものであり、提案する追加クエリの範囲を広げることができるクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
本発明の一態様は、第1のクエリの入力を受け付ける受付部と、予め記憶部に記憶されたクエリの履歴から、前記受付部により受け付けられた前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出する第1の抽出部と、前記クエリの履歴から、前記第1の抽出部により抽出された前記第2のクエリに続いて出現する単語を抽出する第2の抽出部と、前記第2の抽出部により抽出された前記単語の出現回数または出現頻度に基づいて、前記第2の抽出部により抽出された前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する決定部と、を備える、クエリ提供装置である。
【発明の効果】
【0008】
本発明の一態様によれば、第1のクエリに対して提案する追加クエリの範囲を広げることができる。
【図面の簡単な説明】
【0009】
図1】第1実施形態における検索システム1の一例を示す構成図である。
図2】クエリログ212の一例を示す図である。
図3】ベクトル表現テーブル214の一例を示す図である。
図4】第1の学習処理を示す図である。
図5】第2の学習処理を示す図である。
図6】検索処理の一例を示すシーケンス図である。
図7】検索ページに含まれる検索ウィンドウ400および検索ボタン410の一例を示す図である。
図8】追加クエリの決定処理の流れの一例を示すフローチャートである。
図9】追加クエリの決定処理の具体例(1)を示す図である。
図10】追加クエリの決定処理の具体例(2)を示す図である。
図11】追加クエリの決定処理の他の一例を示すフローチャートである。
図12】第2実施形態における検索システム1Aの一例を示す構成図である。
図13】ユーザ端末100、および検索サーバ300のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照し、本発明のクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムの実施形態について説明する。検索サービスにおいて、ユーザ端末などから受け付けたクエリに続いて、追加する単語(追加クエリ)をサジェスト(提案)することで、クエリの入力を補助することが行われている。実施形態の検索システムは、クエリ(以下、第1のクエリ)を受け付けた場合に、クエリの履歴から、受け付けた第1のクエリの特徴量と類似する特徴量のクエリ(以下、第2のクエリ)を抽出する。次に実施形態の検索システムは、第1のクエリとは別に蓄積されたクエリの履歴を参照する。この履歴に含まれるクエリは、複数の単語を含む場合がある。実施形態の検索システム1は、クエリの履歴から、抽出した第2のクエリとともに出現する単語を抽出し、抽出した単語の出現に関する情報に基づいて、抽出した単語のうち、第1のクエリに続いてサジェストする追加クエリを決定する。これにより、実施形態の検索システム1は、第1のクエリに続いて出現するクエリの履歴がない場合であっても、追加クエリをサジェストすることができる。この結果、実施形態の検索システム1によれば、第1のクエリに対して提案する追加クエリの範囲を広げることができる。
【0011】
<第1実施形態>
[検索システム1の構成]
図1は、第1実施形態における検索システム1の一例を示す構成図である。検索システム1は、例えば、一以上のユーザ端末100と、クエリデータベース(DB(DataBase))サーバ200と、検索サーバ300とを備える。図1の例では、一以上のユーザ端末100と、検索サーバ300とが、ネットワークNWに接続されている。また、図1の例では、クエリデータベースサーバ200が検索サーバ300と直接接続されているように示しているが、クエリデータベースサーバ200は検索サーバ300とネットワークNWを介して接続されてもよい。また、クエリデータベースサーバ200と検索サーバ300に含まれる構成要素の一部または全部は、統合されて一つの装置に包含されてもよい。
【0012】
ネットワークNWに接続されるユーザ端末100および検索サーバ300は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェースを備えている(図1では不図示)。ネットワークNWは、例えば、無線基地局、Wi−Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、これらの構成要素の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
【0013】
ユーザ端末100は、ユーザ(一般利用者)によって使用される装置である。ユーザ端末100は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどのコンピュータ装置(通信装置)である。ユーザ端末100は、ウェブブラウザなどのUA(User Agent)が起動し、ユーザによって所定の操作がなされることで、検索サーバ300に対してクエリを含むHTTP(Hypertext Transfer Protocol)リクエストを送信する。そして、ユーザ端末100は、検索サーバ300から返信された検索結果を含むウェブページに基づいてウェブ画面を生成し、表示部に表示させる。なお、画像を取得するための手段として、ウェブブラウザに代えて、任意のアプリケーションプログラムが使用されてもよい。
【0014】
クエリデータベースサーバ200は、例えば、クエリ履歴情報記憶部210と、特徴学習部220とを備える。クエリ履歴情報記憶部210は、例えば、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)、或いはこれらのうち複数を組み合わせたハイブリッド型記憶装置により実現される。また、クエリ履歴情報記憶部210の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、クエリデータベースサーバ200がアクセス可能な外部装置であってよい。
【0015】
図2は、クエリログ212の一例を示す図である。クエリログ212はクエリ履歴情報記憶部210に記憶される。クエリログ212は、例えば、検索サーバ300によりクエリを受け付けた時刻に対して、検索サーバ300により受け付けられたクエリを示す情報が対応付けられた情報である。クエリとは、文字情報などの一又は複数の検索ワードを含む情報であって、検索サーバ300に検索処理を実行させるための情報である。
【0016】
図3は、ベクトル表現テーブル214の一例を示す図である。ベクトル表現テーブル214は、クエリ履歴情報記憶部210に記憶される。ベクトル表現テーブル214は、k個の単語のそれぞれに対して分散表現によって生成されるp次元のベクトルが対応付けられた情報である。ベクトルは、単語の特徴量の一例である。なお、ベクトル表現テーブル214に含まれる各ベクトルは、特徴学習部220により更新される。ベクトル表現テーブル214において、例えば、単語W1に対してはベクトルV1=(V1−1,V1−2,・・・,V1−p)が対応付けられており、単語W2に対してはベクトルV2=(V2−1,V2−2,・・・,V2−p)が対応付けられており、単語Wkに対してはベクトルVk=(Vk−1,Vk−2,・・・,Vk−p)が対応付けられている。
【0017】
特徴学習部220は、例えば、クエリデータベースサーバ200のプロセッサがプログラムを実行することで実現されてもよいし、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。特徴学習部220は、第1のクエリから抽出した全ての単語をベクトルに変換すると共に、学習処理を行うことで、単語のベクトルを更新する。また、特徴学習部220は、ベクトル表現テーブル214に登録されていない単語が出現した場合、当該単語に初期化したベクトルを付加して、ベクトル表現テーブル214に登録する。
【0018】
図4は、第1の学習処理を示す図である。検索サーバ300が、単語W1、単語W2、単語W3、単語W4、および単語W5の順で配列された単語を含む第1のクエリを受け付けたものとする。この場合、特徴学習部220は、単語W4を学習する場合、ベクトル表現テーブル214から単語W1〜W3、およびW5のベクトルV1〜V3、およびV5を抽出する。特徴学習部220は、抽出したベクトルV1〜V3、およびV5を加算する。特徴学習部220は、ベクトルV1〜V3、およびV5を加算したベクトルに近づけるように、単語W4のベクトルV2を更新する。第1の学習処理によりベクトルが更新された複数の単語において、ベクトルが近い単語同士は、同じ文脈中で使用される可能性が高い単語同士、または近い意味またはトピックの単語同士と言うことができる。トピックとは、例えば、分野、話題、時期が挙げられる。
【0019】
なお、第1の学習処理において、学習対象の単語のベクトル以外の単語のベクトルの全てを加算したが、これに限定されず、学習対象の単語のベクトル以外の任意の単語のベクトルを加算してよい。特徴学習部220は、例えば、学習対象の単語のベクトル以外の単語をランダムに選択し、選択した単語のベクトルを加算する。
【0020】
図5は、第2の学習処理を示す図である。第2の学習処理は、例えば、再帰型ニューラルネットワークRNN(Recurrent Neural Network)により実現される。検索サーバ300が、単語W1、単語W2、および単語W3の順で配列された単語を含む検索する第1のクエリを受け付けたものとする。この場合、特徴学習部220は、先頭の単語W1に基づいて単語W1に続く単語W2を予測するアルゴリズムf(V1)により演算されるベクトルV2#を演算する。特徴学習部220は、演算したベクトルV2#に近づけるように、単語W2のベクトルV2を更新する。同様に、特徴学習部220は、単語W2に基づいて単語W2に続く単語W3を予測するアルゴリズムf(V2)により演算されるベクトルV3#を演算する。特徴学習部220は、演算したベクトルV3#に近づけるように、単語W3のベクトルV3を更新する。第2の学習処理によりベクトルが更新された複数の単語において、ベクトルが近い単語同士は、同じ文脈の次に使用される可能性が高い単語同士、または近い意味またはトピックの単語同士と言うことができる。
【0021】
(検索サーバ300の構成)
検索サーバ300は、図1に示すように、例えば、検索部310と、クエリ提供部320とを備える。検索部310およびクエリ提供部320は、例えば、検索サーバ300のプロセッサがプログラムを実行することで実現されてもよいし、LSI、ASIC、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0022】
検索部310は、第1のクエリを解釈し、解釈した結果に基づいて検索処理を行う。検索部310は、検索処理を行った結果としての検索結果をユーザ端末100に返信する。
【0023】
クエリ提供部320は、例えば、クエリ受付部322と、第1クエリ抽出部324と、第2クエリ抽出部326と、クエリ決定部328とを備える。クエリ受付部322は、ユーザ端末100から受信した第1のクエリを解釈することにより、第1のクエリを受け付ける。第1クエリ抽出部324は、クエリ履歴情報記憶部210に記憶されたクエリの履歴から、第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出する。第2クエリ抽出部326は、クエリ履歴情報記憶部210に記憶されたクエリの履歴から、第2のクエリとともに出現する単語を抽出する。クエリ決定部328は、抽出された単語の出現に関する情報に基づいて、抽出された単語のうち第1のクエリに続いてサジェストする追加クエリを決定する。
【0024】
第2のクエリとともに出現する単語とは、第2のクエリに続いて出現する単語、第2のクエリに他の単語が挿入され、挿入された単語に続く単語、および第2のクエリの前に出現する単語を含む。単語の出現に関する情報は、単語が出現することに変化しうる情報である。単語の出現に関する情報は、例えば、単語の出現回数、単語の出現頻度、単語の出現間隔、単語の出現回数および出現頻度の単位時間(例えば1週間)当たりの変化率、これらの単語の出現に関する情報を関数で演算した値が含まれる。単語の出現に関する情報を関数で演算した値は、例えば、単純移動平均値、加重移動平均値、平滑移動平均値など、出現の傾向を分析する各種の値が含まれる。
【0025】
[検索処理]
図6は、検索処理の一例を示すシーケンス図である。まず、ユーザ端末100は、ユーザの操作に基づいて、検索ページを表示させるための指示を受け付ける。検索ページとは、例えば、検索サーバ300によって提供される検索サービスを利用するためのサイトのウェブページである。ユーザ端末100は、受け付けた指示に基づいて、HTTPリクエストを検索サーバ300に送信する(S10)。
【0026】
検索サーバ300は、ユーザ端末100からHTTPリクエストを受信した場合、検索ページを表示させるための情報を生成し(S12)、生成した検索ページを表示させるための情報をユーザ端末100に返信する(S14)。検索ページを表示させるための情報は、例えば、HTML(HyperText Markup Language)等が記述されたテキストデータや、スタイルシート、画像データなどの情報を含む。
【0027】
ユーザ端末100は、検索サーバ300から検索ページを表示させるための情報を受信すると、受信した情報を用いて、検索ページを表示させる(S16)。図7は、検索ページに含まれる検索ウィンドウ400および検索ボタン410の一例を示す図である。ユーザ端末100は、ユーザの操作に基づいて検索ウィンドウ400に入力された第1のクエリを受け付け、受け付けた第1のクエリを検索サーバ300に送信する(S18)。
【0028】
検索サーバ300は、ユーザ端末100から第1のクエリを受信した場合、受信した第1のクエリに基づいて追加クエリを決定し(S20)、決定した追加クエリをユーザ端末100に送信する(S22)。なお、検索サーバ300は、第1のクエリに続いて追加された文字を認識した場合、追加クエリのうち、認識した文字を頭文字として含むクエリをユーザ端末100に送信してもよい。
【0029】
ユーザ端末100は、検索サーバ300から追加クエリを受信した場合、既に受け付けた第1のクエリに加えて、追加クエリを表示する(S24)。このとき、ユーザ端末100は、追加クエリを含む入力補助用のウィンドウ420を表示させる。ユーザ端末100は、第1のクエリを指定した状態で、検索ボタン410を選択する操作を受け付けた場合、第1のクエリを含む検索要求を検索サーバ300に送信する(S26)。
【0030】
検索サーバ300は、検索要求に含まれる第1のクエリに基づいて、検索処理を行う(S28)。検索サーバ300は、検索処理において、第1のクエリによって示される検索ワードが含まれるページの一覧を、検索結果として生成する。その後、検索サーバ300は、生成した検索結果をユーザ端末100に送信する(S30)。
【0031】
ユーザ端末100は、検索サーバ300から検索結果を受信すると、受信した検索結果を表示する(S32)。
【0032】
[追加クエリの決定処理]
図8は、追加クエリの決定処理の流れの一例を示すフローチャートである。まず、検索サーバ300は、ユーザ端末100から第1のクエリを受け付けたか否かを判定する(S100)。検索サーバ300は、第1のクエリを受け付けた場合、クエリ履歴情報記憶部210におけるクエリログ212を参照して、第1のクエリに続いて出現した単語の履歴があるか否かを判定する(S102)。
【0033】
検索サーバ300は、第1のクエリに続いて出現した単語の履歴がある場合、履歴がある単語を追加クエリとしてクエリ履歴情報記憶部210から取得し、取得した追加クエリをユーザ端末100に送信する。これにより、検索サーバ300は、追加クエリをサジェストする(S104)。
【0034】
検索サーバ300は、第1のクエリに続いて出現した単語の履歴がない場合、第1のクエリのベクトルを算出する(S106)。検索サーバ300は、第1のクエリに含まれる単語が1つである場合、当該単語に対応するベクトルをベクトル表現テーブル214から取得する。検索サーバ300は、第1のクエリに含まれる単語が複数である場合、複数の単語に対応するベクトルをベクトル表現テーブル214からそれぞれ取得し、取得した複数のベクトルを加算する。
【0035】
次に検索サーバ300は、クエリ履歴情報記憶部210から、加算した結果得た第1のクエリのベクトルから所定範囲のベクトルの第2のクエリを抽出する(S108)。所定範囲は、第1のクエリと同じ文脈で使用される可能性が高いクエリ、および第1のクエリと意味またはトピックが近いクエリを抽出できるよう設定されている。
【0036】
検索サーバ300は、第1のクエリのベクトルから所定範囲のベクトルの第2のクエリとして、第1のクエリに含まれる単語数と同じ単語数の第2のクエリをクエリ履歴情報記憶部210から抽出してもよい。これにより、検索サーバ300は、第1のクエリと同じ文脈で使用される可能性が高いクエリ、および第1のクエリと意味が近いクエリを抽出する精度を高くすることができる。
【0037】
次に検索サーバ300は、クエリ履歴情報記憶部210から、抽出した第2のクエリとともに出現する単語を抽出する(S110)。検索サーバ300は、例えば、第1のクエリに含まれる単語数が2であり、S108において抽出した第2のクエリに含まれる単語数が2である場合、抽出した第2のクエリの2個の単語とともに出現する履歴がある単語を取得する。
【0038】
次に検索サーバ300は、抽出した単語の統計値を算出する(S112)。検索サーバ300は、例えば、S108において抽出した単語が、第2のクエリとともに出現した回数を、単語の統計値として算出する。また、検索サーバ300は、単語の出現回数に代えて、抽出した全単語の出現回数に対する各単語の出現回数の割合を、各単語の出現頻度として算出してもよく、さらには出現に関する情報を算出してもよい。
【0039】
次に検索サーバ300は、算出した統計値に基づいて、追加クエリを決定する(S114)。検索サーバ300は、例えば、S108において抽出した単語のうち、出現回数または出現頻度が上位の10個の単語を追加クエリとして決定する。
【0040】
次に検索サーバ300は、決定した追加クエリをユーザ端末100に送信することで、追加クエリをサジェストする(S116)。
【0041】
(追加クエリの決定処理の具体例(1))
図9は、追加クエリの決定処理の具体例(1)を示す図である。検索サーバ300は、例えば、「六本木 イルミネーション」という2つの単語を含む第1のクエリを受け付けた場合、「六本木」のベクトルV1および「イルミネーション」のベクトルV2を取得して、ベクトルV1とベクトルV2とを加算する。
【0042】
次に検索サーバ300は、算出したベクトル(V1+V2)から所定範囲のベクトルの第2のクエリをクエリ履歴情報記憶部210から抽出した結果として、「名古屋 イルミネーション」、「東京 イルミネーション」を含む複数の第2のクエリを取得する。図中、V3はクエリ「名古屋 イルミネーション」のベクトル、V4は「東京 イルミネーション」のベクトルであって、ベクトル(V1+V2)から所定範囲の値を有する。
【0043】
次に検索サーバ300は、抽出した第2のクエリとともに出現する単語の統計結果として、単語「2013」に対してスコア1(例えば出現回数=38)、単語「時間」に対してスコア2(例えば出現回数=32)、単語「混雑」に対してスコア3(例えば出現回数=23)を算出する。次に検索サーバ300は、統計結果に基づいて、第1のクエリに対する追加クエリとして、スコアが最も高い単語「時間」をサジェストする。
【0044】
(追加クエリの決定処理の具体例(2))
図10は、追加クエリの決定処理の具体例(2)を示す図である。検索サーバ300は、例えば、「六本木 イルミネーション」という2つの単語を含む第1のクエリを受け付けた場合、「六本木」のベクトルV1および「イルミネーション」のベクトルV2を取得して、ベクトルV1とベクトルV2とを加算する。
【0045】
次に検索サーバ300は、算出したベクトル(V1+V2)から所定範囲のベクトルの第2のクエリをクエリ履歴情報記憶部210から抽出した結果として、「点灯式」、「点灯時間」を含む複数の第2のクエリを取得する。図中、V11はクエリ「点灯式」のベクトル、V12は「点灯時間」のベクトルであって、ベクトル(V1+V2)から所定範囲の値を有する。
【0046】
次に検索サーバ300は、抽出した第2のクエリとともに出現する単語の統計結果として、単語「W11」に対してスコア1、単語「W12」に対してスコア2、単語「W13」に対してスコア3を算出する。次に検索サーバ300は、統計結果に基づいて、第1のクエリに対する追加クエリとして、スコアが最も高い単語「W1」をサジェストする。
【0047】
[変形例1]
検索サーバ300は、第1のクエリに複数の単語が含まれる場合、第1のクエリに含まれる単語のベクトルを加算することに代えて、第1のクエリに含まれる単語のベクトルの平均値を、第1のクエリのベクトルとして算出してもよい。第1のクエリに多数の単語が含まれている場合、多数の単語のベクトルを加算することとなり、加算したベクトルから所定範囲のベクトルの第2のクエリがクエリログ212に登録されていない可能性がある。これに対し、検索サーバ300は、第1のクエリに含まれる単語のベクトルの平均値から所定範囲のベクトルの第2のクエリをクエリログ212から抽出する。検索サーバ300は、抽出した第2のクエリに基づく統計処理の結果に基づいて追加クエリを決定する。
【0048】
[変形例2]
図11は、追加クエリの決定処理の他の一例を示すフローチャートである。上述した追加クエリの決定処理において、検索サーバ300は、第1のクエリのベクトルの加算値または平均値に基づいて第2のクエリを抽出した次の処理として、S108において抽出した第2のクエリを絞り込む処理(S200)を行ってもよい。第2のクエリを絞り込む処理において、検索サーバ300は、第1のクエリに含まれる単語の属性と、抽出した第1のクエリに含まれる単語の属性とを比較する。単語の属性は、例えば、特定の場所や地点の種類や名称、施設の種類、施設の名称が挙げられる。
【0049】
検索サーバ300は、例えば、第1のクエリとして「○○温泉 カフェ」を受け付けた場合において、第1のクエリに基づいて抽出した第2のクエリが「△△温泉 カフェ」である場合において、「○○温泉」および「△△温泉」の属性としてそれぞれ「温泉」が対応付けている場合、属性が同じであると判定する。検索サーバ300は、属性が同じ場合、抽出した第2のクエリの絞り込みをせずに、次の処理(S110)において、抽出した第2のクエリを、単語を抽出する処理の対象の第2のクエリとして残す。
【0050】
検索サーバ300は、例えば、クエリとして「○○温泉 カフェ」を受け付けた場合において、第1のクエリに基づいて抽出した第2のクエリが「□□湖 カフェ」である場合において、「○○温泉」の属性と「□□湖」の属性とが異なるので、属性が異なると判定する。検索サーバ300は、属性が異なる場合、抽出した第2のクエリを絞り込みの対象とする。
【0051】
[第1実施形態の効果]
以上説明した第1実施形態の検索システム1によれば、クエリ履歴情報記憶部210に記憶されたクエリの履歴から、ユーザ端末100から受け付けた第1のクエリのベクトルに近い第2のベクトルのクエリを抽出し、抽出した第2のクエリとともに出現する単語を抽出する。さらに、検索システム1によれば、抽出した単語が、抽出した第2のクエリとともに出現することに関する情報に基づいて、抽出した単語のうち第1のクエリに続いてサジェストする追加クエリを決定する。これにより、検索システム1によれば、第1のクエリに続いて出現する単語がクエリ履歴情報記憶部210に記憶されていない場合であっても、第1のクエリに対して追加クエリをサジェストすることができる。この結果、検索システム1によれば、第1のクエリに対して提案する追加クエリの範囲を広げることができる。このような検索システム1によれば、第1のクエリの入力操作を補助することができ、検索サービスの満足度を向上させることができる。
【0052】
クエリログ212において、第1のクエリに含まれる単語数が多くなるほど、クエリの履歴数が少なくなる。このため、第1のクエリに含まれる単語数が多い場合、第1のクエリに続く単語がクエリログ212に登録されていない可能性が高くなる。これに対し、検索サーバ300は、第1のクエリに続く単語の履歴が登録されていない場合であっても、第1のクエリに対して追加クエリをサジェストすることができる。これにより、検索サーバ300は、追加クエリをサジェストことができない事態を抑制することができる。
【0053】
また、検索システム1によれば、クエリログ212に登録されたクエリに含まれる単語のベクトルを更新するので、第1のクエリと同じ文脈で使用される可能性が高いクエリ、または、第1のクエリと近い意味またはトピックの第2のクエリとともに出現したことがある単語を、第1のクエリに対する追加クエリとしてサジェストすることができる。これにより、検索システム1によれば、第1のクエリに対して文脈的または意味的(トピック的)に違和感が少ない追加クエリをサジェストすることができる。この結果、検索システム1によれば、検索サービスの満足度を更に向上させることができる。
【0054】
更に、検索システム1によれば、第1のクエリに含まれる単語数と同じ単語数の第2のクエリをクエリ履歴情報記憶部210から抽出するので、第1のクエリに対して文脈的または意味的(トピック的)に違和感が少ない単語を追加クエリとして抽出する精度を高くすることができる。
【0055】
さらに、検索システム1によれば、第1のクエリに複数の単語が含まれる場合、第1のクエリに含まれる単語の属性と、抽出した第2のクエリに含まれる単語の属性とに基づいて、抽出した第2のクエリを絞り込むので、第1のクエリに意味的(トピック的)に近い第2のクエリに絞り込んで追加クエリをサジェストすることができる。
【0056】
<第2実施形態>
以下、第2実施形態について説明する。第2実施形態の検索システム1Aは、抽出した第2のクエリとともに出現する単語の回数または頻度などの出現に関する情報に、ユーザ情報に基づく重みを付けて、統計処理を行う点で、第1実施形態とは異なる。以下、この点を中心に説明する。
【0057】
図12は、第2実施形態における検索システム1Aの一例を示す構成図である。検索システム1Aは、ユーザ情報データベースサーバ500を備える。ユーザ情報データベースサーバ500は、例えば、ユーザIDに、属性、検索履歴、閲覧履歴などのユーザ情報を対応付けたデータベースを記憶している。
【0058】
検索サーバ300Aは、検索サービスを提供するために、ユーザ端末100からユーザIDを受信した場合、ユーザIDに対応付けられたユーザ情報をユーザ情報データベースサーバ500から取得する。検索サーバ300は、第1のクエリを入力する操作を行ったユーザの属性に基づいて、第2のクエリに基づいて抽出された単語の重み付けを設定する。検索サーバ300は、例えば、ユーザの属性として「女性」がユーザ情報データベースサーバ500に登録されている場合、ユーザ属性が「女性」のユーザに選択された回数が多い単語または頻度が高い単語に対する重み付けを高くする。検索サーバ300は、第1のクエリを入力する操作を行ったユーザの検索履歴に基づいて、第2のクエリに基づいて抽出された単語の重み付けを設定する。検索サーバ300は、例えば、抽出された単語と、ユーザ情報データベースサーバ500に登録されている検索履歴とを比較する。検索サーバ300は、抽出された単語が検索履歴に含まれている場合、当該単語に対する重み付けを高くする。
【0059】
検索サーバ300Aは、ユーザ情報に基づいて単語に設定した重み付けを当該単語の出現回数または出現頻度に乗算して、統計値を算出する。これにより、検索サーバ300Aは、高い重み付けを設定した単語の統計値を、低い重み付けが設定された単語の統計値よりも高い値にする。
【0060】
以上説明した第2実施形態の検索システム1Aによれば、ユーザ情報に基づいて抽出した単語の重み付けを変化させるので、統計処理の結果に加えて検索サービスをうけるユーザにとって好ましい追加クエリをサジェストすることができる。
【0061】
<ハードウェア構成>
図13は、ユーザ端末100、および検索サーバ300のハードウェア構成の一例を示す図である。本図は、ユーザ端末100がスマートフォンなどの携帯電話である例を示している。ユーザ端末100は、例えば、CPU101、RAM102、ROM103、フラッシュメモリなどの二次記憶装置104、タッチパネル105、および無線通信モジュール106が、内部バスあるいは専用通信線によって相互に接続された構成となっている。旅行予約サービスに関連するアプリケーションプログラムは、ネットワークNWを介してダウンロードされ、二次記憶装置104に格納される。
【0062】
検索サーバ300は、例えば、NIC301、CPU302、RAM303、ROM304、フラッシュメモリやHDDなどの二次記憶装置305、およびドライブ装置306が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置306には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置305、またはドライブ装置306に装着された可搬型記憶媒体に記憶されたプログラムがDMAコントローラ(不図示)などによってRAM303に展開され、CPU302によって実行されることで、検索サーバ300の機能部が実現される。
【0063】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0064】
1、1A…検索システム
100…ユーザ端末
200…検索クエリデータベースサーバ
210…クエリ履歴情報記憶部
212…クエリログ
214…ベクトル表現テーブル
220…特徴学習部
300、300A…検索サーバ
310…検索部
320…クエリ提供部
322…クエリ受付部
324…第1クエリ抽出部
326…第2クエリ抽出部
328…クエリ決定部
500…ユーザ情報データベースサーバ
【要約】
【課題】提案する追加クエリの範囲を広げることができるクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムを提供すること。
【解決手段】第1のクエリの入力を受け付ける受付部と、予め記憶部に記憶されたクエリの履歴から、前記受付部により受け付けられた前記第1のクエリの特徴量と類似する特徴量が得られる第2のクエリを抽出する第1の抽出部と、前記クエリの履歴から、前記第1の抽出部により抽出された前記第2のクエリとともに出現する単語を抽出する第2の抽出部と、前記第2の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第2の抽出部により抽出された前記単語のうち前記第1のクエリに続いてサジェストする追加クエリを決定する決定部と、を備える、クエリ提供装置。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13