(57)【要約】【課題】提案する追加クエリの範囲を広げることができるクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムを提供すること。【解決手段】第１のクエリの入力を受け付ける受付部と、予め記憶部に記憶されたクエリの履歴から、前記受付部により受け付けられた前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する第１の抽出部と、前記クエリの履歴から、前記第１の抽出部により抽出された前記第２のクエリとともに出現する単語を抽出する第２の抽出部と、前記第２の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第２の抽出部により抽出された前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する決定部と、を備える、クエリ提供装置。【選択図】図１
2018022214.tif 000002
【特許請求の範囲】
【請求項１】
第１のクエリの入力を受け付ける受付部と、
予め記憶部に記憶されたクエリの履歴から、前記受付部により受け付けられた前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する第１の抽出部と、
前記クエリの履歴から、前記第１の抽出部により抽出された第２のクエリとともに出現する単語を抽出する第２の抽出部と、
前記第２の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第２の抽出部により抽出された前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する決定部と、
を備える、クエリ提供装置。
【請求項２】
前記第１の抽出部は、前記クエリの履歴に、前記第１のクエリとともに出現するクエリが存在するか否かを判定し、存在しない場合に、前記第２のクエリを抽出する、
請求項１に記載のクエリ提供装置。
【請求項３】
前記決定部は、前記クエリの履歴に前記第１のクエリとともに出現するクエリが存在すると判定された場合に、前記クエリの履歴に含まれ第１のクエリに続いて存在する単語を、前記追加クエリとして決定する、
請求項２に記載のクエリ提供装置。
【請求項４】
前記第１の抽出部は、前記第１のクエリに含まれる単語数と同じ単語数のクエリを前記第２のクエリとして抽出する、
請求項１〜３のうちいずれか１項に記載のクエリ提供装置。
【請求項５】
前記第１の抽出部は、前記抽出した第２のクエリに複数の単語が含まれる場合、前記第１のクエリに含まれる前記単語の属性と、前記第２のクエリに含まれる単語の属性とに基づいて、前記第２のクエリを絞り込む、
請求項１から４のうちいずれか１項に記載のクエリ提供装置。
【請求項６】
前記第１の抽出部は、前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第１のクエリの特徴量として算出する、
請求項１から４のうちいずれか１項に記載のクエリ提供装置。
【請求項７】
前記第１の抽出部は、前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第１のクエリの特徴量として算出する、
請求項１から４のうちいずれか１項に記載のクエリ提供装置。
【請求項８】
前記決定部は、前記第２の抽出部により抽出された前記第２のクエリとともに出現した単語の出現回数または出現頻度の統計値を算出し、算出した前記統計値に基づいて、前記追加クエリを決定する、
請求項１から７のうちいずれか１項に記載のクエリ提供装置。
【請求項９】
前記決定部は、前記第１のクエリを入力する操作を行ったユーザの属性に基づいて、前記第２の抽出部により抽出された前記単語の前記第２のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項８に記載のクエリ提供装置。
【請求項１０】
前記決定部は、前記第１のクエリを入力する操作を行ったユーザの検索履歴に基づいて、前記第２の抽出部により抽出された前記単語の前記第２のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項８または９に記載のクエリ提供装置。
【請求項１１】
コンピュータが、
第１のクエリの入力を受け付け、
予め記憶部に記憶されたクエリの履歴から、受け付けた前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出し、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出し、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する、
クエリ提供方法。
【請求項１２】
コンピュータに、
第１のクエリの入力を受け付けさせ、
予め記憶部に記憶されたクエリの履歴から、受け付けた前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出させ、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出させ、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定させる、
クエリ提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クエリ提供装置、クエリ提供方法、およびクエリ提供プログラムに関する。
【背景技術】
【０００２】
クエリに基づいて検索結果を提供する検索サービスが知られている。このサービスでは、クエリが入力された場合に、既に入力されたクエリとアンド検索を行う候補となるクエリを提案することが行われている。
【０００３】
これに関連して、クエリの入力を受け付けた場合に、クエリに含まれる単語と関係性を有する情報を情報テーブルから抽出し、抽出した情報に付されているタグのうち、クエリに含まれる単語と関係性を有する単語にかかるタグを、追加で提案する候補クエリとして抽出する技術が知られている（特許文献１）。また、クエリの入力を受け付けた場合に第１の組のクエリを決定し、第１の組のクエリに基づいて履歴クエリ結果を含むユーザフィードバックログを取得し、ユーザフィードバックログに基づいて第２の組のクエリを決定し、第２の組のクエリに基づいてクエリを実行する技術が知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２８６９７４号公報
【特許文献２】特表２０１２−５１５３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された技術では、入力したクエリに関連する情報が関連テーブルに無い場合、またはクエリに含まれる単語と関係性がある単語が関連テーブルに無い場合には、候補クエリを抽出することができない可能性があった。また、特許文献２に記載された技術では、第１の組のクエリに基づく履歴クエリ結果がない場合には、ユーザフィードバックログを取得することができない場合があった。
【０００６】
本発明は、このような事情を考慮してなされたものであり、提案する追加クエリの範囲を広げることができるクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、第１のクエリの入力を受け付ける受付部と、予め記憶部に記憶されたクエリの履歴から、前記受付部により受け付けられた前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する第１の抽出部と、前記クエリの履歴から、前記第１の抽出部により抽出された前記第２のクエリに続いて出現する単語を抽出する第２の抽出部と、前記第２の抽出部により抽出された前記単語の出現回数または出現頻度に基づいて、前記第２の抽出部により抽出された前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する決定部と、を備える、クエリ提供装置である。
【発明の効果】
【０００８】
本発明の一態様によれば、第１のクエリに対して提案する追加クエリの範囲を広げることができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態における検索システム１の一例を示す構成図である。
【図２】クエリログ２１２の一例を示す図である。
【図３】ベクトル表現テーブル２１４の一例を示す図である。
【図４】第１の学習処理を示す図である。
【図５】第２の学習処理を示す図である。
【図６】検索処理の一例を示すシーケンス図である。
【図７】検索ページに含まれる検索ウィンドウ４００および検索ボタン４１０の一例を示す図である。
【図８】追加クエリの決定処理の流れの一例を示すフローチャートである。
【図９】追加クエリの決定処理の具体例（１）を示す図である。
【図１０】追加クエリの決定処理の具体例（２）を示す図である。
【図１１】追加クエリの決定処理の他の一例を示すフローチャートである。
【図１２】第２実施形態における検索システム１Ａの一例を示す構成図である。
【図１３】ユーザ端末１００、および検索サーバ３００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照し、本発明のクエリ提供装置、クエリ提供方法、およびクエリ提供プログラムの実施形態について説明する。検索サービスにおいて、ユーザ端末などから受け付けたクエリに続いて、追加する単語（追加クエリ）をサジェスト（提案）することで、クエリの入力を補助することが行われている。実施形態の検索システムは、クエリ（以下、第１のクエリ）を受け付けた場合に、クエリの履歴から、受け付けた第１のクエリの特徴量と類似する特徴量のクエリ（以下、第２のクエリ）を抽出する。次に実施形態の検索システムは、第１のクエリとは別に蓄積されたクエリの履歴を参照する。この履歴に含まれるクエリは、複数の単語を含む場合がある。実施形態の検索システム１は、クエリの履歴から、抽出した第２のクエリとともに出現する単語を抽出し、抽出した単語の出現に関する情報に基づいて、抽出した単語のうち、第１のクエリに続いてサジェストする追加クエリを決定する。これにより、実施形態の検索システム１は、第１のクエリに続いて出現するクエリの履歴がない場合であっても、追加クエリをサジェストすることができる。この結果、実施形態の検索システム１によれば、第１のクエリに対して提案する追加クエリの範囲を広げることができる。
【００１１】
＜第１実施形態＞
［検索システム１の構成］
図１は、第１実施形態における検索システム１の一例を示す構成図である。検索システム１は、例えば、一以上のユーザ端末１００と、クエリデータベース（ＤＢ（DataBase））サーバ２００と、検索サーバ３００とを備える。図１の例では、一以上のユーザ端末１００と、検索サーバ３００とが、ネットワークＮＷに接続されている。また、図１の例では、クエリデータベースサーバ２００が検索サーバ３００と直接接続されているように示しているが、クエリデータベースサーバ２００は検索サーバ３００とネットワークＮＷを介して接続されてもよい。また、クエリデータベースサーバ２００と検索サーバ３００に含まれる構成要素の一部または全部は、統合されて一つの装置に包含されてもよい。
【００１２】
ネットワークＮＷに接続されるユーザ端末１００および検索サーバ３００は、ＮＩＣ（Network Interface Card）や無線通信モジュールなどの通信インターフェースを備えている（図１では不図示）。ネットワークＮＷは、例えば、無線基地局、Ｗｉ−Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、これらの構成要素の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１３】
ユーザ端末１００は、ユーザ（一般利用者）によって使用される装置である。ユーザ端末１００は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどのコンピュータ装置（通信装置）である。ユーザ端末１００は、ウェブブラウザなどのＵＡ（User Agent）が起動し、ユーザによって所定の操作がなされることで、検索サーバ３００に対してクエリを含むＨＴＴＰ（Hypertext Transfer Protocol）リクエストを送信する。そして、ユーザ端末１００は、検索サーバ３００から返信された検索結果を含むウェブページに基づいてウェブ画面を生成し、表示部に表示させる。なお、画像を取得するための手段として、ウェブブラウザに代えて、任意のアプリケーションプログラムが使用されてもよい。
【００１４】
クエリデータベースサーバ２００は、例えば、クエリ履歴情報記憶部２１０と、特徴学習部２２０とを備える。クエリ履歴情報記憶部２１０は、例えば、ＨＤＤ（Hard Disk Drive）やフラッシュメモリ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、或いはこれらのうち複数を組み合わせたハイブリッド型記憶装置により実現される。また、クエリ履歴情報記憶部２１０の一部または全部は、ＮＡＳ（Network Attached Storage）や外部のストレージサーバなど、クエリデータベースサーバ２００がアクセス可能な外部装置であってよい。
【００１５】
図２は、クエリログ２１２の一例を示す図である。クエリログ２１２はクエリ履歴情報記憶部２１０に記憶される。クエリログ２１２は、例えば、検索サーバ３００によりクエリを受け付けた時刻に対して、検索サーバ３００により受け付けられたクエリを示す情報が対応付けられた情報である。クエリとは、文字情報などの一又は複数の検索ワードを含む情報であって、検索サーバ３００に検索処理を実行させるための情報である。
【００１６】
図３は、ベクトル表現テーブル２１４の一例を示す図である。ベクトル表現テーブル２１４は、クエリ履歴情報記憶部２１０に記憶される。ベクトル表現テーブル２１４は、ｋ個の単語のそれぞれに対して分散表現によって生成されるｐ次元のベクトルが対応付けられた情報である。ベクトルは、単語の特徴量の一例である。なお、ベクトル表現テーブル２１４に含まれる各ベクトルは、特徴学習部２２０により更新される。ベクトル表現テーブル２１４において、例えば、単語Ｗ１に対してはベクトルＶ１＝（Ｖ１−１，Ｖ１−２，・・・，Ｖ１−ｐ）が対応付けられており、単語Ｗ２に対してはベクトルＶ２＝（Ｖ２−１，Ｖ２−２，・・・，Ｖ２−ｐ）が対応付けられており、単語Ｗｋに対してはベクトルＶｋ＝（Ｖｋ−１，Ｖｋ−２，・・・，Ｖｋ−ｐ）が対応付けられている。
【００１７】
特徴学習部２２０は、例えば、クエリデータベースサーバ２００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。特徴学習部２２０は、第１のクエリから抽出した全ての単語をベクトルに変換すると共に、学習処理を行うことで、単語のベクトルを更新する。また、特徴学習部２２０は、ベクトル表現テーブル２１４に登録されていない単語が出現した場合、当該単語に初期化したベクトルを付加して、ベクトル表現テーブル２１４に登録する。
【００１８】
図４は、第１の学習処理を示す図である。検索サーバ３００が、単語Ｗ１、単語Ｗ２、単語Ｗ３、単語Ｗ４、および単語Ｗ５の順で配列された単語を含む第１のクエリを受け付けたものとする。この場合、特徴学習部２２０は、単語Ｗ４を学習する場合、ベクトル表現テーブル２１４から単語Ｗ１〜Ｗ３、およびＷ５のベクトルＶ１〜Ｖ３、およびＶ５を抽出する。特徴学習部２２０は、抽出したベクトルＶ１〜Ｖ３、およびＶ５を加算する。特徴学習部２２０は、ベクトルＶ１〜Ｖ３、およびＶ５を加算したベクトルに近づけるように、単語Ｗ４のベクトルＶ２を更新する。第１の学習処理によりベクトルが更新された複数の単語において、ベクトルが近い単語同士は、同じ文脈中で使用される可能性が高い単語同士、または近い意味またはトピックの単語同士と言うことができる。トピックとは、例えば、分野、話題、時期が挙げられる。
【００１９】
なお、第１の学習処理において、学習対象の単語のベクトル以外の単語のベクトルの全てを加算したが、これに限定されず、学習対象の単語のベクトル以外の任意の単語のベクトルを加算してよい。特徴学習部２２０は、例えば、学習対象の単語のベクトル以外の単語をランダムに選択し、選択した単語のベクトルを加算する。
【００２０】
図５は、第２の学習処理を示す図である。第２の学習処理は、例えば、再帰型ニューラルネットワークＲＮＮ（Recurrent Neural Network）により実現される。検索サーバ３００が、単語Ｗ１、単語Ｗ２、および単語Ｗ３の順で配列された単語を含む検索する第１のクエリを受け付けたものとする。この場合、特徴学習部２２０は、先頭の単語Ｗ１に基づいて単語Ｗ１に続く単語Ｗ２を予測するアルゴリズムｆ（Ｖ１）により演算されるベクトルＶ２＃を演算する。特徴学習部２２０は、演算したベクトルＶ２＃に近づけるように、単語Ｗ２のベクトルＶ２を更新する。同様に、特徴学習部２２０は、単語Ｗ２に基づいて単語Ｗ２に続く単語Ｗ３を予測するアルゴリズムｆ（Ｖ２）により演算されるベクトルＶ３＃を演算する。特徴学習部２２０は、演算したベクトルＶ３＃に近づけるように、単語Ｗ３のベクトルＶ３を更新する。第２の学習処理によりベクトルが更新された複数の単語において、ベクトルが近い単語同士は、同じ文脈の次に使用される可能性が高い単語同士、または近い意味またはトピックの単語同士と言うことができる。
【００２１】
（検索サーバ３００の構成）
検索サーバ３００は、図１に示すように、例えば、検索部３１０と、クエリ提供部３２０とを備える。検索部３１０およびクエリ提供部３２０は、例えば、検索サーバ３００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００２２】
検索部３１０は、第１のクエリを解釈し、解釈した結果に基づいて検索処理を行う。検索部３１０は、検索処理を行った結果としての検索結果をユーザ端末１００に返信する。
【００２３】
クエリ提供部３２０は、例えば、クエリ受付部３２２と、第１クエリ抽出部３２４と、第２クエリ抽出部３２６と、クエリ決定部３２８とを備える。クエリ受付部３２２は、ユーザ端末１００から受信した第１のクエリを解釈することにより、第１のクエリを受け付ける。第１クエリ抽出部３２４は、クエリ履歴情報記憶部２１０に記憶されたクエリの履歴から、第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する。第２クエリ抽出部３２６は、クエリ履歴情報記憶部２１０に記憶されたクエリの履歴から、第２のクエリとともに出現する単語を抽出する。クエリ決定部３２８は、抽出された単語の出現に関する情報に基づいて、抽出された単語のうち第１のクエリに続いてサジェストする追加クエリを決定する。
【００２４】
第２のクエリとともに出現する単語とは、第２のクエリに続いて出現する単語、第２のクエリに他の単語が挿入され、挿入された単語に続く単語、および第２のクエリの前に出現する単語を含む。単語の出現に関する情報は、単語が出現することに変化しうる情報である。単語の出現に関する情報は、例えば、単語の出現回数、単語の出現頻度、単語の出現間隔、単語の出現回数および出現頻度の単位時間（例えば１週間）当たりの変化率、これらの単語の出現に関する情報を関数で演算した値が含まれる。単語の出現に関する情報を関数で演算した値は、例えば、単純移動平均値、加重移動平均値、平滑移動平均値など、出現の傾向を分析する各種の値が含まれる。
【００２５】
［検索処理］
図６は、検索処理の一例を示すシーケンス図である。まず、ユーザ端末１００は、ユーザの操作に基づいて、検索ページを表示させるための指示を受け付ける。検索ページとは、例えば、検索サーバ３００によって提供される検索サービスを利用するためのサイトのウェブページである。ユーザ端末１００は、受け付けた指示に基づいて、ＨＴＴＰリクエストを検索サーバ３００に送信する（Ｓ１０）。
【００２６】
検索サーバ３００は、ユーザ端末１００からＨＴＴＰリクエストを受信した場合、検索ページを表示させるための情報を生成し（Ｓ１２）、生成した検索ページを表示させるための情報をユーザ端末１００に返信する（Ｓ１４）。検索ページを表示させるための情報は、例えば、ＨＴＭＬ（HyperText Markup Language）等が記述されたテキストデータや、スタイルシート、画像データなどの情報を含む。
【００２７】
ユーザ端末１００は、検索サーバ３００から検索ページを表示させるための情報を受信すると、受信した情報を用いて、検索ページを表示させる（Ｓ１６）。図７は、検索ページに含まれる検索ウィンドウ４００および検索ボタン４１０の一例を示す図である。ユーザ端末１００は、ユーザの操作に基づいて検索ウィンドウ４００に入力された第１のクエリを受け付け、受け付けた第１のクエリを検索サーバ３００に送信する（Ｓ１８）。
【００２８】
検索サーバ３００は、ユーザ端末１００から第１のクエリを受信した場合、受信した第１のクエリに基づいて追加クエリを決定し（Ｓ２０）、決定した追加クエリをユーザ端末１００に送信する（Ｓ２２）。なお、検索サーバ３００は、第１のクエリに続いて追加された文字を認識した場合、追加クエリのうち、認識した文字を頭文字として含むクエリをユーザ端末１００に送信してもよい。
【００２９】
ユーザ端末１００は、検索サーバ３００から追加クエリを受信した場合、既に受け付けた第１のクエリに加えて、追加クエリを表示する（Ｓ２４）。このとき、ユーザ端末１００は、追加クエリを含む入力補助用のウィンドウ４２０を表示させる。ユーザ端末１００は、第１のクエリを指定した状態で、検索ボタン４１０を選択する操作を受け付けた場合、第１のクエリを含む検索要求を検索サーバ３００に送信する（Ｓ２６）。
【００３０】
検索サーバ３００は、検索要求に含まれる第１のクエリに基づいて、検索処理を行う（Ｓ２８）。検索サーバ３００は、検索処理において、第１のクエリによって示される検索ワードが含まれるページの一覧を、検索結果として生成する。その後、検索サーバ３００は、生成した検索結果をユーザ端末１００に送信する（Ｓ３０）。
【００３１】
ユーザ端末１００は、検索サーバ３００から検索結果を受信すると、受信した検索結果を表示する（Ｓ３２）。
【００３２】
［追加クエリの決定処理］
図８は、追加クエリの決定処理の流れの一例を示すフローチャートである。まず、検索サーバ３００は、ユーザ端末１００から第１のクエリを受け付けたか否かを判定する（Ｓ１００）。検索サーバ３００は、第１のクエリを受け付けた場合、クエリ履歴情報記憶部２１０におけるクエリログ２１２を参照して、第１のクエリに続いて出現した単語の履歴があるか否かを判定する（Ｓ１０２）。
【００３３】
検索サーバ３００は、第１のクエリに続いて出現した単語の履歴がある場合、履歴がある単語を追加クエリとしてクエリ履歴情報記憶部２１０から取得し、取得した追加クエリをユーザ端末１００に送信する。これにより、検索サーバ３００は、追加クエリをサジェストする（Ｓ１０４）。
【００３４】
検索サーバ３００は、第１のクエリに続いて出現した単語の履歴がない場合、第１のクエリのベクトルを算出する（Ｓ１０６）。検索サーバ３００は、第１のクエリに含まれる単語が１つである場合、当該単語に対応するベクトルをベクトル表現テーブル２１４から取得する。検索サーバ３００は、第１のクエリに含まれる単語が複数である場合、複数の単語に対応するベクトルをベクトル表現テーブル２１４からそれぞれ取得し、取得した複数のベクトルを加算する。
【００３５】
次に検索サーバ３００は、クエリ履歴情報記憶部２１０から、加算した結果得た第１のクエリのベクトルから所定範囲のベクトルの第２のクエリを抽出する（Ｓ１０８）。所定範囲は、第１のクエリと同じ文脈で使用される可能性が高いクエリ、および第１のクエリと意味またはトピックが近いクエリを抽出できるよう設定されている。
【００３６】
検索サーバ３００は、第１のクエリのベクトルから所定範囲のベクトルの第２のクエリとして、第１のクエリに含まれる単語数と同じ単語数の第２のクエリをクエリ履歴情報記憶部２１０から抽出してもよい。これにより、検索サーバ３００は、第１のクエリと同じ文脈で使用される可能性が高いクエリ、および第１のクエリと意味が近いクエリを抽出する精度を高くすることができる。
【００３７】
次に検索サーバ３００は、クエリ履歴情報記憶部２１０から、抽出した第２のクエリとともに出現する単語を抽出する（Ｓ１１０）。検索サーバ３００は、例えば、第１のクエリに含まれる単語数が２であり、Ｓ１０８において抽出した第２のクエリに含まれる単語数が２である場合、抽出した第２のクエリの２個の単語とともに出現する履歴がある単語を取得する。
【００３８】
次に検索サーバ３００は、抽出した単語の統計値を算出する（Ｓ１１２）。検索サーバ３００は、例えば、Ｓ１０８において抽出した単語が、第２のクエリとともに出現した回数を、単語の統計値として算出する。また、検索サーバ３００は、単語の出現回数に代えて、抽出した全単語の出現回数に対する各単語の出現回数の割合を、各単語の出現頻度として算出してもよく、さらには出現に関する情報を算出してもよい。
【００３９】
次に検索サーバ３００は、算出した統計値に基づいて、追加クエリを決定する（Ｓ１１４）。検索サーバ３００は、例えば、Ｓ１０８において抽出した単語のうち、出現回数または出現頻度が上位の１０個の単語を追加クエリとして決定する。
【００４０】
次に検索サーバ３００は、決定した追加クエリをユーザ端末１００に送信することで、追加クエリをサジェストする（Ｓ１１６）。
【００４１】
（追加クエリの決定処理の具体例（１））
図９は、追加クエリの決定処理の具体例（１）を示す図である。検索サーバ３００は、例えば、「六本木  イルミネーション」という２つの単語を含む第１のクエリを受け付けた場合、「六本木」のベクトルＶ１および「イルミネーション」のベクトルＶ２を取得して、ベクトルＶ１とベクトルＶ２とを加算する。
【００４２】
次に検索サーバ３００は、算出したベクトル（Ｖ１＋Ｖ２）から所定範囲のベクトルの第２のクエリをクエリ履歴情報記憶部２１０から抽出した結果として、「名古屋  イルミネーション」、「東京  イルミネーション」を含む複数の第２のクエリを取得する。図中、Ｖ３はクエリ「名古屋  イルミネーション」のベクトル、Ｖ４は「東京  イルミネーション」のベクトルであって、ベクトル（Ｖ１＋Ｖ２）から所定範囲の値を有する。
【００４３】
次に検索サーバ３００は、抽出した第２のクエリとともに出現する単語の統計結果として、単語「２０１３」に対してスコア１（例えば出現回数＝３８）、単語「時間」に対してスコア２（例えば出現回数＝３２）、単語「混雑」に対してスコア３（例えば出現回数＝２３）を算出する。次に検索サーバ３００は、統計結果に基づいて、第１のクエリに対する追加クエリとして、スコアが最も高い単語「時間」をサジェストする。
【００４４】
（追加クエリの決定処理の具体例（２））
図１０は、追加クエリの決定処理の具体例（２）を示す図である。検索サーバ３００は、例えば、「六本木  イルミネーション」という２つの単語を含む第１のクエリを受け付けた場合、「六本木」のベクトルＶ１および「イルミネーション」のベクトルＶ２を取得して、ベクトルＶ１とベクトルＶ２とを加算する。
【００４５】
次に検索サーバ３００は、算出したベクトル（Ｖ１＋Ｖ２）から所定範囲のベクトルの第２のクエリをクエリ履歴情報記憶部２１０から抽出した結果として、「点灯式」、「点灯時間」を含む複数の第２のクエリを取得する。図中、Ｖ１１はクエリ「点灯式」のベクトル、Ｖ１２は「点灯時間」のベクトルであって、ベクトル（Ｖ１＋Ｖ２）から所定範囲の値を有する。
【００４６】
次に検索サーバ３００は、抽出した第２のクエリとともに出現する単語の統計結果として、単語「Ｗ１１」に対してスコア１、単語「Ｗ１２」に対してスコア２、単語「Ｗ１３」に対してスコア３を算出する。次に検索サーバ３００は、統計結果に基づいて、第１のクエリに対する追加クエリとして、スコアが最も高い単語「Ｗ１」をサジェストする。
【００４７】
［変形例１］
検索サーバ３００は、第１のクエリに複数の単語が含まれる場合、第１のクエリに含まれる単語のベクトルを加算することに代えて、第１のクエリに含まれる単語のベクトルの平均値を、第１のクエリのベクトルとして算出してもよい。第１のクエリに多数の単語が含まれている場合、多数の単語のベクトルを加算することとなり、加算したベクトルから所定範囲のベクトルの第２のクエリがクエリログ２１２に登録されていない可能性がある。これに対し、検索サーバ３００は、第１のクエリに含まれる単語のベクトルの平均値から所定範囲のベクトルの第２のクエリをクエリログ２１２から抽出する。検索サーバ３００は、抽出した第２のクエリに基づく統計処理の結果に基づいて追加クエリを決定する。
【００４８】
［変形例２］
図１１は、追加クエリの決定処理の他の一例を示すフローチャートである。上述した追加クエリの決定処理において、検索サーバ３００は、第１のクエリのベクトルの加算値または平均値に基づいて第２のクエリを抽出した次の処理として、Ｓ１０８において抽出した第２のクエリを絞り込む処理（Ｓ２００）を行ってもよい。第２のクエリを絞り込む処理において、検索サーバ３００は、第１のクエリに含まれる単語の属性と、抽出した第１のクエリに含まれる単語の属性とを比較する。単語の属性は、例えば、特定の場所や地点の種類や名称、施設の種類、施設の名称が挙げられる。
【００４９】
検索サーバ３００は、例えば、第１のクエリとして「○○温泉  カフェ」を受け付けた場合において、第１のクエリに基づいて抽出した第２のクエリが「△△温泉  カフェ」である場合において、「○○温泉」および「△△温泉」の属性としてそれぞれ「温泉」が対応付けている場合、属性が同じであると判定する。検索サーバ３００は、属性が同じ場合、抽出した第２のクエリの絞り込みをせずに、次の処理（Ｓ１１０）において、抽出した第２のクエリを、単語を抽出する処理の対象の第２のクエリとして残す。
【００５０】
検索サーバ３００は、例えば、クエリとして「○○温泉  カフェ」を受け付けた場合において、第１のクエリに基づいて抽出した第２のクエリが「□□湖  カフェ」である場合において、「○○温泉」の属性と「□□湖」の属性とが異なるので、属性が異なると判定する。検索サーバ３００は、属性が異なる場合、抽出した第２のクエリを絞り込みの対象とする。
【００５１】
［第１実施形態の効果］
以上説明した第１実施形態の検索システム１によれば、クエリ履歴情報記憶部２１０に記憶されたクエリの履歴から、ユーザ端末１００から受け付けた第１のクエリのベクトルに近い第２のベクトルのクエリを抽出し、抽出した第２のクエリとともに出現する単語を抽出する。さらに、検索システム１によれば、抽出した単語が、抽出した第２のクエリとともに出現することに関する情報に基づいて、抽出した単語のうち第１のクエリに続いてサジェストする追加クエリを決定する。これにより、検索システム１によれば、第１のクエリに続いて出現する単語がクエリ履歴情報記憶部２１０に記憶されていない場合であっても、第１のクエリに対して追加クエリをサジェストすることができる。この結果、検索システム１によれば、第１のクエリに対して提案する追加クエリの範囲を広げることができる。このような検索システム１によれば、第１のクエリの入力操作を補助することができ、検索サービスの満足度を向上させることができる。
【００５２】
クエリログ２１２において、第１のクエリに含まれる単語数が多くなるほど、クエリの履歴数が少なくなる。このため、第１のクエリに含まれる単語数が多い場合、第１のクエリに続く単語がクエリログ２１２に登録されていない可能性が高くなる。これに対し、検索サーバ３００は、第１のクエリに続く単語の履歴が登録されていない場合であっても、第１のクエリに対して追加クエリをサジェストすることができる。これにより、検索サーバ３００は、追加クエリをサジェストことができない事態を抑制することができる。
【００５３】
また、検索システム１によれば、クエリログ２１２に登録されたクエリに含まれる単語のベクトルを更新するので、第１のクエリと同じ文脈で使用される可能性が高いクエリ、または、第１のクエリと近い意味またはトピックの第２のクエリとともに出現したことがある単語を、第１のクエリに対する追加クエリとしてサジェストすることができる。これにより、検索システム１によれば、第１のクエリに対して文脈的または意味的（トピック的）に違和感が少ない追加クエリをサジェストすることができる。この結果、検索システム１によれば、検索サービスの満足度を更に向上させることができる。
【００５４】
更に、検索システム１によれば、第１のクエリに含まれる単語数と同じ単語数の第２のクエリをクエリ履歴情報記憶部２１０から抽出するので、第１のクエリに対して文脈的または意味的（トピック的）に違和感が少ない単語を追加クエリとして抽出する精度を高くすることができる。
【００５５】
さらに、検索システム１によれば、第１のクエリに複数の単語が含まれる場合、第１のクエリに含まれる単語の属性と、抽出した第２のクエリに含まれる単語の属性とに基づいて、抽出した第２のクエリを絞り込むので、第１のクエリに意味的（トピック的）に近い第２のクエリに絞り込んで追加クエリをサジェストすることができる。
【００５６】
＜第２実施形態＞
以下、第２実施形態について説明する。第２実施形態の検索システム１Ａは、抽出した第２のクエリとともに出現する単語の回数または頻度などの出現に関する情報に、ユーザ情報に基づく重みを付けて、統計処理を行う点で、第１実施形態とは異なる。以下、この点を中心に説明する。
【００５７】
図１２は、第２実施形態における検索システム１Ａの一例を示す構成図である。検索システム１Ａは、ユーザ情報データベースサーバ５００を備える。ユーザ情報データベースサーバ５００は、例えば、ユーザＩＤに、属性、検索履歴、閲覧履歴などのユーザ情報を対応付けたデータベースを記憶している。
【００５８】
検索サーバ３００Ａは、検索サービスを提供するために、ユーザ端末１００からユーザＩＤを受信した場合、ユーザＩＤに対応付けられたユーザ情報をユーザ情報データベースサーバ５００から取得する。検索サーバ３００は、第１のクエリを入力する操作を行ったユーザの属性に基づいて、第２のクエリに基づいて抽出された単語の重み付けを設定する。検索サーバ３００は、例えば、ユーザの属性として「女性」がユーザ情報データベースサーバ５００に登録されている場合、ユーザ属性が「女性」のユーザに選択された回数が多い単語または頻度が高い単語に対する重み付けを高くする。検索サーバ３００は、第１のクエリを入力する操作を行ったユーザの検索履歴に基づいて、第２のクエリに基づいて抽出された単語の重み付けを設定する。検索サーバ３００は、例えば、抽出された単語と、ユーザ情報データベースサーバ５００に登録されている検索履歴とを比較する。検索サーバ３００は、抽出された単語が検索履歴に含まれている場合、当該単語に対する重み付けを高くする。
【００５９】
検索サーバ３００Ａは、ユーザ情報に基づいて単語に設定した重み付けを当該単語の出現回数または出現頻度に乗算して、統計値を算出する。これにより、検索サーバ３００Ａは、高い重み付けを設定した単語の統計値を、低い重み付けが設定された単語の統計値よりも高い値にする。
【００６０】
以上説明した第２実施形態の検索システム１Ａによれば、ユーザ情報に基づいて抽出した単語の重み付けを変化させるので、統計処理の結果に加えて検索サービスをうけるユーザにとって好ましい追加クエリをサジェストすることができる。
【００６１】
＜ハードウェア構成＞
図１３は、ユーザ端末１００、および検索サーバ３００のハードウェア構成の一例を示す図である。本図は、ユーザ端末１００がスマートフォンなどの携帯電話である例を示している。ユーザ端末１００は、例えば、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、フラッシュメモリなどの二次記憶装置１０４、タッチパネル１０５、および無線通信モジュール１０６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。旅行予約サービスに関連するアプリケーションプログラムは、ネットワークＮＷを介してダウンロードされ、二次記憶装置１０４に格納される。
【００６２】
検索サーバ３００は、例えば、ＮＩＣ３０１、ＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、フラッシュメモリやＨＤＤなどの二次記憶装置３０５、およびドライブ装置３０６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置３０６には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置３０５、またはドライブ装置３０６に装着された可搬型記憶媒体に記憶されたプログラムがＤＭＡコントローラ（不図示）などによってＲＡＭ３０３に展開され、ＣＰＵ３０２によって実行されることで、検索サーバ３００の機能部が実現される。
【００６３】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６４】
１、１Ａ…検索システム
１００…ユーザ端末
２００…検索クエリデータベースサーバ
２１０…クエリ履歴情報記憶部
２１２…クエリログ
２１４…ベクトル表現テーブル
２２０…特徴学習部
３００、３００Ａ…検索サーバ
３１０…検索部
３２０…クエリ提供部
３２２…クエリ受付部
３２４…第１クエリ抽出部
３２６…第２クエリ抽出部
３２８…クエリ決定部
５００…ユーザ情報データベースサーバ
【図１】
2018022214.tif 000003
【図２】
2018022214.tif 000004
【図３】
2018022214.tif 000005
【図４】
2018022214.tif 000006
【図５】
2018022214.tif 000007
【図６】
2018022214.tif 000008
【図７】
2018022214.tif 000009
【図８】
2018022214.tif 000010
【図９】
2018022214.tif 000011
【図１０】
2018022214.tif 000012
【図１１】
2018022214.tif 000013
【図１２】
2018022214.tif 000014
【図１３】
2018022214.tif 000015
【手続補正書】
【提出日】平成29年1月24日(2017.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のクエリの入力を受け付ける受付部と、
前記受付部により受け付けられた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第１のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する第１の抽出部と、
前記クエリの履歴から、前記第１の抽出部により抽出された第２のクエリとともに出現する単語を抽出する第２の抽出部と、
前記第２の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第２の抽出部により抽出された前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する決定部と、
を備える、クエリ提供装置。
【請求項２】
第１のクエリの入力を受け付ける受付部と、
前記受付部により受け付けられた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第１のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出する第１の抽出部と、
前記クエリの履歴から、前記第１の抽出部により抽出された第２のクエリとともに出現する単語を抽出する第２の抽出部と、
前記第２の抽出部により抽出された前記単語の出現に関する情報に基づいて、前記第２の抽出部により抽出された前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する決定部と、
を備える、クエリ提供装置。
【請求項３】
前記第１の抽出部は、前記クエリの履歴に、前記第１のクエリとともに出現するクエリが存在するか否かを判定し、存在しない場合に、前記第２のクエリを抽出する、
請求項１または請求項２に記載のクエリ提供装置。
【請求項４】
前記決定部は、前記クエリの履歴に前記第１のクエリとともに出現するクエリが存在すると判定された場合に、前記クエリの履歴に含まれ第１のクエリに続いて存在する単語を、前記追加クエリとして決定する、
請求項３に記載のクエリ提供装置。
【請求項５】
前記第１の抽出部は、前記第１のクエリに含まれる単語数と同じ単語数のクエリを前記第２のクエリとして抽出する、
請求項１〜４のうちいずれか１項に記載のクエリ提供装置。
【請求項６】
前記第１の抽出部は、前記抽出した第２のクエリに複数の単語が含まれる場合、前記第１のクエリに含まれる前記単語の属性と、前記第２のクエリに含まれる単語の属性とに基づいて、前記第２のクエリを絞り込む、
請求項１から５のうちいずれか１項に記載のクエリ提供装置。
【請求項７】
前記決定部は、前記第２の抽出部により抽出された前記第２のクエリとともに出現した単語の出現回数または出現頻度の統計値を算出し、算出した前記統計値に基づいて、前記追加クエリを決定する、
請求項１から６のうちいずれか１項に記載のクエリ提供装置。
【請求項８】
前記決定部は、前記第１のクエリを入力する操作を行ったユーザの属性に基づいて、前記第２の抽出部により抽出された前記単語の前記第２のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項７に記載のクエリ提供装置。
【請求項９】
前記決定部は、前記第１のクエリを入力する操作を行ったユーザの検索履歴に基づいて、前記第２の抽出部により抽出された前記単語の前記第２のクエリとともに出現する回数または頻度に対する重み付けを変化させて前記統計値を算出する、
請求項７または８に記載のクエリ提供装置。
【請求項１０】
コンピュータが、
第１のクエリの入力を受け付け、
受け付けた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第１のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出し、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出し、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する、
クエリ提供方法。
【請求項１１】
コンピュータに、
第１のクエリの入力を受け付けさせ、
受け付けた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量同士を加算した値を、前記第１のクエリの特徴量として算出すると共に、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出させ、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出させ、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定させる、
クエリ提供プログラム。
【請求項１２】
コンピュータが、
第１のクエリの入力を受け付け、
受け付けた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第１のクエリの特徴量として算出し、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出し、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出し、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定する、
クエリ提供方法。
【請求項１３】
コンピュータに、
第１のクエリの入力を受け付けさせ、
受け付けた前記第１のクエリに複数の単語が含まれる場合、前記単語の特徴量の平均値を、前記第１のクエリの特徴量として算出すると共に、予め記憶部に記憶されたクエリの履歴から、前記第１のクエリの特徴量と類似する特徴量が得られる第２のクエリを抽出させ、
前記クエリの履歴から、前記第２のクエリとともに出現する単語を抽出させ、
抽出した前記単語の出現に関する情報に基づいて、抽出した前記単語のうち前記第１のクエリに続いてサジェストする追加クエリを決定させる、
クエリ提供プログラム。