(57)【要約】【課題】  文字列を用いた検索において検索結果をより適切にする。【解決手段】  検索システムであるサーバ１０は、検索対象であるコンテンツを格納するコンテンツ格納部１１と、クエリを入力する文字列入力部１２と、クエリから特殊文字列を抽出する特殊文字列抽出部１３と、検索用文字列とコンテンツとを比較して、当該検索用文字列と当該コンテンツとの一致度合いを示す検索スコアを算出する検索スコア算出部１４と、抽出された特殊文字列とコンテンツに対応付けられた比較用文字列とを比較する特殊文字列比較部１５と、当該比較の結果に応じて、検索スコア及びコンテンツに対応付けられた人気度スコアに重み付けを行って当該コンテンツの最終スコアを算出する最終スコア算出部１６と、コンテンツ毎の最終スコアに応じてクエリに対する検索結果を出力する出力部１７とを備える。【選択図】  図１
2018045588.tif 000002
【特許請求の範囲】
【請求項１】
検索対象であると共にそれぞれにコンテンツの人気度合いを示す人気度スコア及び比較用文字列が対応付けられたコンテンツを格納するコンテンツ格納部と、
検索用文字列を入力する文字列入力部と、
前記文字列入力部によって入力された検索用文字列から予め設定された特殊文字列を抽出する特殊文字列抽出部と、
前記文字列入力部によって入力された検索用文字列と前記コンテンツ格納部に格納されたコンテンツとを比較して、当該検索用文字列と当該コンテンツとの一致度合いを示す検索スコアを算出する検索スコア算出部と、
前記特殊文字列抽出部によって抽出された前記特殊文字列と前記コンテンツ格納部に格納されたコンテンツに対応付けられた比較用文字列とを比較する特殊文字列比較部と、
前記特殊文字列比較部による比較の結果に応じて、前記検索スコア算出部によって算出された検索スコア及びコンテンツに対応付けられた人気度スコアに重み付けを行って当該コンテンツの最終スコアを算出する最終スコア算出部と、
前記最終スコア算出部によって算出されたコンテンツ毎の最終スコアに応じて、前記文字列入力部によって入力された検索用文字列に対する検索結果を出力する出力部と、
を備える検索システム。
【請求項２】
前記特殊文字列比較部は、前記特殊文字列と前記比較用文字列とを比較して、当該特殊文字列と当該比較用文字列との一致度合いを示す特殊文字列の検索スコアを算出し、
前記最終スコア算出部は、前記特殊文字列比較部によって算出された特殊文字列の検索スコアの加算を行ってコンテンツの最終スコアを算出する、請求項１に記載の検索システム。
【請求項３】
前記検索スコア算出部は、形態素解析手法及びＮ−ｇｒａｍ手法によって検索スコアを算出する請求項１又は２に記載の検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索システムに関する。
【背景技術】
【０００２】
検索エンジンにおいて、クエリに対して返却されるＷｅｂページ等のコンテンツの順序は非常に重要な要素である。従来から、検索に対してコンテンツについてのスコアを生成して、スコアに基づいてコンテンツを順序付けすることが行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１２８５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
検索結果をより適切にするために、コンテンツの人気度を利用する手法がある。コンテンツの人気度とは、コンテンツ毎にコンテンツの人気に応じて予め付与されているスコア（以下、人気度スコアと呼ぶ）である。
【０００５】
ユーザへ表示する順序を決定するスコアを最終スコアと呼ぶ。最終スコアは、コンテンツが保有するデータ（名称やカテゴリ、住所情報等）とクエリ（文字列）とのマッチ度により算出される検索スコアと、上述の人気度スコアの２つのスコアによって計算される。例えば、（最終スコア）＝ａ（検索スコア）＋ｂ（人気度スコア）との式から最終スコアが算出される。ここで、ａ，ｂはそれぞれのスコアに掛かる重みパラメータである。
【０００６】
また、多くの検索エンジンは、Ｐｒｅｃｉｓｉｏｎ（適合率）及びＲｅｃａｌｌ（再現率）の両立のため、クエリを用いた検索に形態素解析手法とＮ−ｇｒａｍ手法を採用することが多い。
【０００７】
ここで、クエリとして「横浜のＸＸＸショップ」、コンテンツとして「ＸＸＸショップ横浜駅店」と「ＸＸＸショップ東京駅店」とのコンテンツ（情報）を考える。後者のコンテンツは、前者のコンテンツに比べ非常に大きな人気度を持つとする。
【０００８】
上記の例において、単純に検索式＝（横浜のＸＸＸショップ）として検索する手法がある。検索式とは、クエリを加工しどのように検索エンジンにリクエストするかを示す式である。このとき、最終スコアは、（最終スコア）＝ａ（“横浜のＸＸＸショップ”の検索スコア）＋ｂ（コンテンツの人気度スコア）となるが、以下の問題点が存在する。
【０００９】
「ＸＸＸショップ東京駅店」は、「横浜」が含まれていないため、形態素解析手法ではヒットしないが、Ｎ−ｇｒａｍ手法でヒットする。そして、人気度が非常に高いため「ＸＸＸショップ横浜駅店」を最終スコアで上回ってしまう。このときのクエリは「横浜のＸＸＸショップ」であるため、ユーザは横浜のショップの情報を求めていると考えられる。それに対して、「ＸＸＸショップ東京駅店」のコンテンツが、「ＸＸＸショップ横浜駅店」より上位に表示されるのは不適切である。
【００１０】
係数ａの値をより大きくすることで上記の問題は解決される可能性があるが、横浜にショップが複数ある場合、人気度による効果が希薄になってしまう。また、広範囲の（様々な）クエリに対して適切な順序でコンテンツを返却することが難しくなってしまう。即ち、このクエリではよいが、別のクエリでは悪いという状態に陥る。
【００１１】
あるいは、検索式＝（横浜）ＡＮＤ（ＸＸＸショップ）、又は検索式＝（横浜）ＯＲ（ＸＸＸショップ）として検索する手法があるが、以下の問題点が存在する。検索式を組む段階でクエリの形態素解析が必要となるため、検索レスポンスに遅延が生じる。ＡＮＤ検索の場合、横浜とＸＸＸショップとを両方含むコンテンツのみ返却されるため、Ｒｅｃａｌｌが劣化しやすく、その他のエリアのコンテンツを訴求できない。また、検索結果０件となる危険が高まる。ＯＲ検索の場合、ＸＸＸショップと関係ない横浜のコンテンツも返却されるため、Ｐｒｅｃｉｓｉｏｎが大きく劣化する。
【００１２】
本発明は、上記に鑑みてなされたものであり、文字列を用いた検索において、検索結果をより適切にすることができる検索システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明に係る検索システムは、検索対象であると共にそれぞれにコンテンツの人気度合いを示す人気度スコア及び比較用文字列が対応付けられたコンテンツを格納するコンテンツ格納部と、検索用文字列を入力する文字列入力部と、前記文字列入力部によって入力された検索用文字列から予め設定された特殊文字列を抽出する特殊文字列抽出部と、前記文字列入力部によって入力された検索用文字列と前記コンテンツ格納部に格納されたコンテンツとを比較して、当該検索用文字列と当該コンテンツとの一致度合いを示す検索スコアを算出する検索スコア算出部と、前記特殊文字列抽出部によって抽出された前記特殊文字列と前記コンテンツ格納部に格納されたコンテンツに対応付けられた比較用文字列とを比較する特殊文字列比較部と、前記特殊文字列比較部による比較の結果に応じて、前記検索スコア算出部によって算出された検索スコア及びコンテンツに対応付けられた人気度スコアに重み付けを行って当該コンテンツの最終スコアを算出する最終スコア算出部と、前記最終スコア算出部によって算出されたコンテンツ毎の最終スコアに応じて、前記文字列入力部によって入力された検索用文字列に対する検索結果を出力する出力部と、を備える。
【００１４】
本発明に係る検索システムでは、例えば、検索用文字列に含まれる特殊文字列に一致する比較用文字列が対応付けられているかに応じて検索スコア及び人気度スコアが重み付けされて、コンテンツの最終スコアが算出される。従って、例えば、コンテンツの順序付けにおいて重みを置くべき観点での単語等を特殊文字列及び比較用文字列に設定しておくことで、人気度スコアに引きずられすぎない検索結果を得ることができる。即ち、本発明に係る検索システムによれば、文字列を用いた検索において、検索結果をより適切にすることができる。
【発明の効果】
【００１５】
本発明によれば、例えば、コンテンツの順序付けにおいて重みを置くべき観点での単語等を、特殊文字列及び比較用文字列に設定しておくことで、人気度スコアに引きずられすぎない検索結果を得ることができる。即ち、本発明によれば、文字列を用いた検索において、検索結果をより適切にすることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る検索システムであるサーバの構成を示す図である。
【図２】コンテンツ管理テーブルを示す図である。
【図３】特殊文字列辞書を保持するテーブルを示す図である。
【図４】クエリ毎の特殊文字列の抽出例を示す図である。
【図５】最終スコアの算出例を示す図である。
【図６】本発明の実施形態に係る検索システムであるサーバで実行される処理を示すフローチャートである。
【図７】本発明の実施形態に係る検索システムであるサーバのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面と共に本発明に係る検索システムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１８】
図１に本実施形態に係る検索システムであるサーバ１０を示す。サーバ１０は、ユーザ端末２０から検索用文字列である検索用のクエリ（検索クエリ）を受信して、クエリに基づいたコンテンツの検索を行うシステム（装置、検索エンジン）である。サーバ１０は、検索によって得られたコンテンツを示す情報であるコンテンツリストをユーザ端末２０に送信する。
【００１９】
検索対象となるコンテンツは、例えば、ユーザ端末２０で表示されてユーザに利用されるものである。具体的には、コンテンツは、Ｗｅｂページの形式のＰＯＩ（Point of Interest）（例えば、店舗等の施設）の情報、広告といったＰＯＩ情報である。また、コンテンツは、それ以外の任意でもよい。
【００２０】
ユーザ端末２０は、ユーザによって携帯されて用いられる装置である。ユーザ端末２０は、具体的には、携帯電話機やスマートフォン等に相当する。ユーザ端末２０は、移動体通信網等のネットワークＮに接続して無線通信を行う機能を有している。ユーザ端末２０とサーバ１０とは、ネットワークＮを介して通信を行うことができ、互いに情報の送受信を行えるようになっている。ユーザ端末２０は、サーバ１０から送信されるコンテンツを受信し、コンテンツを利用する（例えば、表示する）機能を有している。コンテンツを利用する際、ユーザ端末２０は、コンテンツを検索するためのクエリをサーバ１０に送信する。クエリは、ユーザ端末２０に対するユーザの入力操作によって、ユーザ端末２０に入力される。
【００２１】
ユーザ端末２０は、通常の携帯電話機やスマートフォン等と同様にＣＰＵ（Central Processing Unit）、メモリ及び無線通信モジュール等のハードウェアを備えて構成される。
【００２２】
引き続いて、本実施形態に係るサーバ１０の機能を説明する。図１に示すようにサーバ１０は、コンテンツ格納部１１と、文字列入力部１２と、特殊文字列抽出部１３と、検索スコア算出部１４と、特殊文字列比較部１５と、最終スコア算出部１６と、出力部１７とを備えて構成される。
【００２３】
コンテンツ格納部１１は、検索対象であるコンテンツを格納する機能部である。検索対象であるコンテンツは、予め、サーバ１０の管理者等によってサーバ１０に入力されている。
【００２４】
コンテンツそれぞれには、コンテンツの人気度合いを示す人気度スコア及び比較用文字列が対応付けられている。人気度スコアは、従来の検索エンジンと同様のものであり、予め、コンテンツ毎に設定されている。人気度スコアは、コンテンツへの過去のアクセス数等に応じて設定される。例えば、人気度スコアの値は０以上であり、値が大きいほど、コンテンツの人気が高いことを示している。比較用文字列は、コンテンツの検索の際に、後述するようにクエリから抽出された特殊文字列と比較される文字列である。比較用文字列は、ユーザが求めているコンテンツを特徴付ける情報であり、クエリ内で特別扱いすべきと考えられる文字列に対応するものである。例えば、比較用文字列は、コンテンツが持つ情報の項目（具体的には、コンテンツに係るＰＯＩの名称、地名（住所）、最寄駅、カテゴリ等）を示すものである。
【００２５】
具体例としては、「ＸＸＸショップ横浜駅店」のコンテンツに対しては、「神奈川」「横浜」「横浜駅」との比較用文字列が設定される。また、「ＸＸＸショップ東京駅店」のコンテンツに対しては、「東京」「中央区」「東京駅」との比較用文字列が設定される。上記のように比較用文字列は、１つのコンテンツに対して複数、設定されていてもよい。なお、全てのコンテンツに、比較用文字列が設定される必要はない。
【００２６】
比較用文字列は、予め、コンテンツ毎にサーバ１０の管理者等によって設定される。例えば、比較用文字列を地名とする場合には、コンテンツに係るＰＯＩの住所の文字列を形態素解析したり、当該ＰＯＩの緯度及び経度から変換したりすることで比較用文字列を取得する。
【００２７】
コンテンツ格納部１１は、比較用文字列及び人気度スコアの情報をコンテンツ管理テーブルで保持する。図２に示すようにコンテンツ管理テーブルは、ＰＯＩ＿ＩＤ、ＰＯＩ名称、特殊フィールド及び人気度スコアが対応付けられた情報を格納する。コンテンツ管理テーブルの各レコード（１つの行のデータ）が、１つのコンテンツに対応する。
【００２８】
ＰＯＩ＿ＩＤは、コンテンツを一意に特定するための情報である。ＰＯＩ名称は、当該コンテンツに係るＰＯＩの名称である。特殊フィールドは、当該コンテンツに設定された比較用文字列である。人気度スコアは、当該コンテンツに設定された人気度スコアである。コンテンツ管理テーブルに格納される情報は、予め、サーバ１０の管理者等によってサーバ１０に入力されている。
【００２９】
文字列入力部１２は、検索用文字列であるクエリを入力する機能部である。文字列入力部１２は、ユーザ端末２０から送信されたクエリを受信して、入力する。なお、文字列入力部１２は、上記以外の方法でクエリを入力してもよい。文字列入力部１２は、入力したクエリを特殊文字列抽出部１３に出力する。
【００３０】
特殊文字列抽出部１３は、文字列入力部１２によって入力されたクエリから予め設定された特殊文字列を抽出する機能部である。特殊文字列は、ユーザが求めているコンテンツを特徴付ける情報であり、クエリ内で特別扱いすべきと考えられる文字列である。
【００３１】
特殊文字列抽出部１３は、特殊文字列辞書を図３に示すテーブルにて保持する。図３に示すように特殊文字列辞書のテーブルは、ＳＴＲＩＮＧ＿ＩＤ及び特殊文字列が対応付けられた情報を格納する。当該テーブルの各レコード（１つの行のデータ）が、１つの特殊文字列に対応する。ＳＴＲＩＮＧ＿ＩＤは、特殊文字列を一意に特定するための情報である。
【００３２】
特殊文字列辞書に格納される特殊文字列は、コンテンツ格納部１１に格納される全てのコンテンツに対応付けられた全ての比較用文字列（特殊フィールドに格納された文字列）を辞書化したものである。
【００３３】
特殊文字列抽出部１３は、特殊文字列辞書を参照して、入力されたクエリに含まれる特殊文字列、即ち、クエリの一部又は全部と一致している特殊文字列を抽出する。例えば、「横浜のＸＸＸショップ」というクエリでは、「横浜」が特殊文字列となる。なお、一つのクエリに対して、複数の特殊文字列が抽出されることもあり、一つも特殊文字列が抽出されないこともある。クエリ毎の特殊文字列の抽出例を図４に示す。該当有無の欄の「○」は、クエリから特殊文字列が抽出されたことを示している。該当有無の欄の「×」は、クエリから特殊文字列が抽出されなかったことを示している。
【００３４】
なお、特殊文字列辞書に格納されている特殊文字列のうち、別の特殊文字列に含まれる特殊文字列については、当該別の特殊文字列がクエリに含まれないと判断された場合にクエリに含まれるか否かを判断することとしてもよい。例えば、特殊文字列辞書に「新横浜」「横浜」という特殊文字列が格納されている場合、先に「新横浜」がクエリに含まれるか否かを判断して、「新横浜」がクエリに含まれなかったら、「横浜」がクエリに含まれるか否かを判断する。このように、特殊文字列の抽出には、最長部分一致で判定を行うこととしてもよい。
【００３５】
クエリに特殊文字列が含まれているか否かの判定は、既存の検索エンジンを利用して行うことができる。この際、特殊文字列辞書を検索エンジン内にメモリで持つことで上記の判定を高速に行うことが可能である。特殊文字列抽出部１３は、入力されたクエリを検索スコア算出部１４に出力し、当該クエリから抽出された特殊文字列を特殊文字列比較部１５に出力する。
【００３６】
検索スコア算出部１４は、文字列入力部１２によって入力されたクエリとコンテンツ格納部１１に格納されたコンテンツとを比較して、当該クエリと当該コンテンツとの一致度合いを示す検索スコアを算出する機能部である。例えば、検索スコアの値は０以上であり、値が大きいほど、一致度合いが高いことを示している。検索スコア算出部１４は、従来の検索エンジンと同様にクエリと、コンテンツに含まれる文字列とのマッチングを取って検索スコアを算出する。検索スコアの値は、例えば、ヒットした文字列のＴＦ（Term Frequency）値、ＩＤＦ（Inverse DocumentFrequency）値、文字列長のうち何文字がヒットしたか等の検索エンジンの内部計算に依存する。
【００３７】
例えば、検索スコア算出部１４は、形態素解析手法及びＮ−ｇｒａｍ手法によって検索スコアを算出する。この場合、検索スコア算出部１４は、形態素解析手法によって得られたスコアと、Ｎ−ｇｒａｍ手法によって得られたスコアとの２つのスコアのうち、大きい方のスコアを検索スコアとして採用する。なお、多くの検索エンジンにおいて、形態素解析方法によってヒットしなかった場合（形態素解析手法によって得られたスコアが０であった場合）にＮ−ｇｒａｍでの検索を行ってＲｅｃａｌｌを向上させるため、上記の方法を採用している。検索スコア算出部１４は、コンテンツ格納部１１に格納された全てのコンテンツに対して、検索スコアを算出する。検索スコア算出部１４は、算出したコンテンツ毎の検索スコアを最終スコア算出部１６に出力する。
【００３８】
特殊文字列比較部１５は、特殊文字列抽出部１３によって抽出された特殊文字列とコンテンツ格納部１１に格納されたコンテンツに対応付けられた比較用文字列とを比較する機能部である。特殊文字列比較部１５は、特殊文字列と比較用文字列とを比較して、当該特殊文字列と当該比較用文字列との一致度合いを示す特殊文字列の検索スコアを算出する。特殊文字列の検索スコアの算出は、検索スコア算出部１４による検索スコアの算出と同様に行われる。
【００３９】
特殊文字列比較部１５は、特殊文字列毎にコンテンツ格納部１１に格納された全てのコンテンツに対して、特殊文字列の検索スコアを算出する。また、特殊文字列が複数ある場合には、特殊文字列毎に検索スコアを算出する。特殊文字列比較部１５は、算出したコンテンツ毎の特殊文字列の検索スコアを最終スコア算出部１６に出力する。
【００４０】
最終スコア算出部１６は、特殊文字列比較部１５による比較の結果に応じて、検索スコア算出部１４によって算出された検索スコア及びコンテンツに対応付けられた人気度スコアに重み付けを行って当該コンテンツの最終スコアを算出する機能部である。最終スコア算出部１６は、特殊文字列比較部１５によって算出された特殊文字列の検索スコアの加算を行ってコンテンツの最終スコアを算出する。最終スコア算出部１６は、検索スコアが０ではないコンテンツについて、ヒットしたコンテンツとして最終スコアを算出する。
【００４１】
例えば、最終スコア算出部１６は、以下の式によって、コンテンツ毎に最終スコアを算出する。
（最終スコア）＝ａ（クエリの検索スコア）＋ｂ（コンテンツの人気度スコア）＋ｃ（クエリの検索スコア）＋ｄ（コンテンツの人気度スコア）＋ｅ（特殊文字列の検索スコア）
ここで、ａ〜ｅは各項に係る重みパラメータであり、予め設定されている。例えば、ａ，ｂ，ｅは１．０である。ｃ，ｄは、特殊文字列の検索スコア＝０である場合（即ち、特殊文字列と比較用文字列とが全く一致しなかった（特殊文字列が比較用文字列にヒットしなかった）場合）、０であり、特殊文字列の検索スコア＞０である場合（即ち、特殊文字列と比較用文字列とが何らかの一致をした（特殊文字列が比較用文字列にヒットした）場合）、１．０である。即ち、ｃ，ｄは、特殊文字列比較部１５による比較の結果に応じて、検索スコア算出部１４によって算出された検索スコア及びコンテンツに対応付けられた人気度スコアに重み付けするためのパラメータである。上記の数値例では、特殊文字列が比較用文字列にヒットした場合、ヒットしなかった場合と比べて、検索スコア及び人気度スコアに２倍の重み付けがされている。なお、検索スコアと人気度スコアとで異なる大きさの重み付けがなされていてもよい。
【００４２】
また、特殊文字列が複数であった場合、各特殊文字列のうち１つでも、特殊文字列の検索スコア＞０である場合、ｃ，ｄを０でない値（上記の例では１．０）とする、即ち、検索スコア及び人気度スコアに重み付けをしてもよい。あるいは、各特殊文字列について全て、特殊文字列の検索スコア＞０である場合、ｃ，ｄを０でない値（上記の例では１．０）とすることとしてもよい。
【００４３】
算出される最終スコアの例を、図５を用いて説明する。図５の例では、クエリが「横浜のＸＸＸショップ」である。ヒットしたコンテンツ（検索スコアが０ではないコンテンツ）は、「ＸＸＸショップ横浜駅店」「ＸＸＸショップ東京駅店」「ＸＸＸショップ品川駅店」のコンテンツである。上記の３つのコンテンツのうち、特殊文字列が比較用文字列にヒットしたコンテンツは、「ＸＸＸショップ横浜駅店」のみである。従って、「ＸＸＸショップ横浜駅店」以外での上記の最終スコアの算出において、第３項〜第５項の値は０となる。それぞれの最終スコアは、以下の通りとなる。
（最終スコア「ＸＸＸショップ横浜駅店」）＝１．０＊（５０）＋１．０＊（３０）＋１．０＊（５０）＋１．０＊（３０）＋１．０＊（２０）＝１８０
（最終スコア「ＸＸＸショップ東京駅店」）＝１．０＊（２０）＋１．０＊（１００）＝１２０
（最終スコア「ＸＸＸショップ品川駅店」）＝１．０＊（２０）＋１．０＊（５０）＝７０
【００４４】
クエリに対する検索結果であるコンテンツリストは、最終スコアが大きい順番で並べられる。従って、上記の例では、「ＸＸＸショップ横浜駅店」「ＸＸＸショップ東京駅店」「ＸＸＸショップ品川駅店」の順となる。上述したように、上記のクエリでは、ユーザは横浜のショップの情報を求めていると考えられる。上記の例では、横浜のショップの情報である「ＸＸＸショップ横浜駅店」のコンテンツが最上位となり、ユーザの要望に合致している。
【００４５】
一方、従来の検索のように、特殊文字列と比較用文字列との比較に基づく重み付け等を行わなかった場合、即ち、上記の最終スコアの算出の式の第３項〜第５項がない場合、それぞれの最終スコアは、以下の通りとなる。
（最終スコア「ＸＸＸショップ横浜駅店」）＝１．０＊（５０）＋１．０＊（３０）＝８０
（最終スコア「ＸＸＸショップ東京駅店」）＝１．０＊（２０）＋１．０＊（１００）＝１２０
（最終スコア「ＸＸＸショップ品川駅店」）＝１．０＊（２０）＋１．０＊（５０）＝７０
【００４６】
上記の例では、横浜のショップの情報である「ＸＸＸショップ横浜駅店」のコンテンツが最上位ではなくなり、ユーザの要望に合致しない。
【００４７】
最終スコア算出部１６は、算出したコンテンツ毎の最終スコアを出力部１７に出力する。
上記のクエリ及び特殊文字列の検索スコアの算出、並びに最終スコアの算出（検索スコア算出部１４、特殊文字列比較部１５及び最終スコア算出部１６の機能）は、既存の検索エンジンの検索式を組んで、当該検索エンジンによる検索を行うことで実現することができる。例えば、Ａｐａｃｈｅ  Ｓｏｌｒを用いて、以下の検索式を組むことで上記の最終スコアの算出を行うことができる。
【００４８】
特殊文字列が１つの場合、以下の検索式とする。
検索式＝（クエリ）ＯＲ｛（クエリ）ＡＮＤ（特殊文字列）｝
例えば、クエリが「横浜のＸＸＸショップ」の場合には、以下の検索式とする。
検索式＝（横浜のＸＸＸショップ）ＯＲ｛（横浜のＸＸＸショップ）ＡＮＤ（横浜）｝
【００４９】
また、クエリに特殊文字列が複数含まれ、各特殊文字列のうち１つでも、特殊文字列の検索スコア＞０であれば、ｃ，ｄを０でない値とする場合、以下の検索式とする。
検索式＝（クエリ）ＯＲ｛（クエリ）ＡＮＤ（特殊文字列１）ＯＲ（特殊文字列２）ＯＲ…｝
例えば、クエリが「神奈川横浜のＸＸＸショップ」の場合には、以下の検索式とする。
検索式＝（神奈川横浜のＸＸＸショップ）ＯＲ｛（神奈川横浜のＸＸＸショップ）ＡＮＤ（神奈川）ＯＲ（横浜）｝
【００５０】
また、クエリに特殊文字列が複数含まれ、各特殊文字列について全て、特殊文字列の検索スコア＞０であれば、ｃ，ｄを０でない値とする場合、以下の検索式とする。
検索式＝（クエリ）ＯＲ｛（クエリ）ＡＮＤ（特殊文字列１）ＡＮＤ（特殊文字列２）ＡＮＤ…｝
【００５１】
また、クエリに特殊文字列が含まれない場合、以下の検索式とする。
検索式＝（クエリ）
例えば、クエリが「安いＸＸＸショップ」の場合には、以下の検索式とする。
検索式＝（安いＸＸＸショップ）
【００５２】
出力部１７は、最終スコア算出部１６によって算出されたコンテンツ毎の最終スコアに応じて、クエリに対するに対する検索結果を出力する機能部である。例えば、出力部１７は、最終スコアが大きい順にコンテンツに関する情報を並べたコンテンツリストを生成して、コンテンツリストを検索結果として、クエリの送信元であるユーザ端末２０に送信する。即ち、出力部１７は、最終スコアの順番に検索ランキングを並べ替える。コンテンツリストに含まれるコンテンツに関する情報は、コンテンツのタイトルやコンテンツへのリンクを含む。また、コンテンツリストに、コンテンツ自体を含めることとしてもよい。ユーザ端末２０では、コンテンツリストを受信することで、クエリに応じたコンテンツにアクセスすることができる。なお、出力部１７は、上記以外の方法で検索結果を出力してもよい。以上が、本実施形態に係るサーバ１０の機能構成である。
【００５３】
引き続いて、図６のフローチャートを用いて、本実施形態に係るサーバ１０で実行される処理（サーバ１０の動作方法）を説明する。ユーザ端末２０からクエリが送信されると、サーバ１０では、文字列入力部１２によってクエリが受信されて入力される（Ｓ０１）。続いて、特殊文字列抽出部１３によって、クエリから特殊文字列が抽出される（Ｓ０２）。続いて、検索スコア算出部１４によって、コンテンツ格納部１１に格納されたコンテンツ毎に、クエリとコンテンツとが比較されて、検索スコアが算出される（Ｓ０３）。一方で、特殊文字列比較部１５によって、コンテンツ毎に、特殊文字列とコンテンツに対応付けられた比較用文字列とが比較されて、特殊文字列の検索スコアが算出される（Ｓ０４）。なお、Ｓ０３の処理は、Ｓ０２及びＳ０４の処理と独立に行われるので、それらの処理は前後してもよく、また、並列で行われてもよい。
【００５４】
続いて、最終スコア算出部１６によって、コンテンツ毎に、特殊文字列の検索スコアに応じて、検索スコア及び人気度スコアに重み付けが行われてコンテンツの最終スコアが算出される（Ｓ０５）。なお、上述したようにＳ０３〜Ｓ０５の処理は、当該処理に応じた検索式が作成され、当該検索式によって既存の検索エンジンでの検索がなされることで行われてもよい。続いて、出力部１７によって、コンテンツ毎の最終スコアに応じて、クエリに対するに対する検索結果であるコンテンツリストが生成される。生成されたコンテンツリストは、クエリの送信元であるユーザ端末２０に送信されて出力される（Ｓ０６）。送信されたコンテンツは、ユーザ端末２０によって受信されて出力（例えば、表示）される。以上が、本実施形態に係るサーバ１０で実行される処理である。
【００５５】
上述したように本実施形態では、例えば、クエリに含まれる特殊文字列に一致する比較用文字列が対応付けられているかに応じて検索スコア及び人気度スコアが重み付けされて、コンテンツの最終スコアが算出される。従って、例えば、コンテンツの順序付けにおいて重みを置くべき観点での単語等を特殊文字列及び比較用文字列に設定しておくことで、人気度に引きずられすぎない検索結果を得ることができる。上述した例のように「横浜」「東京」といった地名を示す単語を検索用文字列及び比較用文字列に設定しておくことでクエリにおける地名を重視した検索を行うことができる。また、本実施形態のような最終スコアの計算式によれば、計算式における項数が増加するため最終スコア計算の柔軟性が増す。従って、重みパラメータを適切に設定することで、より広範囲のクエリに対して適切な順序でコンテンツを返却することが可能となる。即ち、本実施形態によれば、文字列を用いた検索において、検索結果をより適切にすることができる。
【００５６】
また、本実施形態のように、特殊文字列の検索スコアを算出して、特殊文字列の検索スコアの加算を行ってコンテンツの最終スコアを算出することとしてもよい。この構成によれば、特殊文字列と比較用文字列との比較結果を更に重視した最終スコアを算出することができる。これにより、特殊文字列及び比較用文字列を更に重視することが望ましい場合、更に適切な検索結果を得ることができる。但し、上記の加算は、必ずしも行わなくてもよい。
【００５７】
また、本実施形態のように、検索スコアの算出は、形態素解析手法及びＮ−ｇｒａｍ手法によって行われてもよい。この構成によれば、確実かつ適切に本発明を実施することができる。但し、上記の方法によって検索スコアの算出が行われる必要はなく、それ以外の方法で行われてもよい。
【００５８】
上述した例では、地名、駅名等の場所に係る文字列を特殊文字列としていたが、それ以外の文字列を特殊文字列としてもよい。例えば、「ＲＦ重要特徴抽出Ｐｙｔｈｏｎ」というクエリを考える。このユーザの意図は、Ｐｙｔｈｏｎ言語（プログラミング言語）におけるＲＦ（Random Forest）の重要な特徴抽出手法に関するコンテンツが欲しいというものであると考えられる。しかし、従来の検索では、Ｐｙｔｈｏｎ言語ではなく、ＲＦにおける特徴量寄与度抽出においてよりメジャーなＲ言語の実装方法が上位に表示されてしまう。そこで、「ｐｙｔｈｏｎ」を特殊文字列に設定し、コンテンツに比較用文字列として「ｐｙｔｈｏｎ」を対応付けておけば、Ｒ言語よりも上位にＰｙｔｈｏｎ言語のコンテンツを表示することができる。このように、プログラミング言語に係る文字列を特殊文字列としてもよい。
【００５９】
また、「低価格ＳＩＭＸＸＸ」というクエリを考える。ここで「ＸＸＸ」は、移動体通信の通信事業者を示す文字列である。このユーザの意図は、「ＸＸＸ」の回線に関するコンテンツが欲しいというものであると考えられる。しかし、従来の検索では、「ＸＸＸ」の回線に関するコンテンツではなく、ＭＶＮＯ（Mobile Virtual Network Operator）の各社比較のコンテンツが最上位に表示されてしまう。そこで、「ＸＸＸ」を特殊文字列に設定し、コンテンツに比較用文字列として「ＸＸＸ」を対応付けておけば、各社比較のコンテンツよりも上位に「ＸＸＸ」の回線に関するコンテンツを表示することができる。このように、通信事業者に係る文字列を特殊文字列としてもよい。
【００６０】
なお、上記実施の形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成部）は、ハードウェア及び／又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び／又は論理的に結合した１つの装置により実現されてもよいし、物理的及び／又は論理的に分離した２つ以上の装置を直接的及び／又は間接的に(例えば、有線及び／又は無線)で接続し、これら複数の装置により実現されてもよい。
【００６１】
例えば、本発明の一実施の形態におけるサーバ１０などは、本実施形態のサーバ１０の処理を行うコンピュータとして機能してもよい。図７は、本実施形態に係るサーバ１０のハードウェア構成の一例を示す図である。上述のサーバ１０は、物理的には、プロセッサ１００１、メモリ１００２、ストレージ１００３、通信装置１００４、入力装置１００５、出力装置１００６、バス１００７などを含むコンピュータ装置として構成されてもよい。
【００６２】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。サーバ１０のハードウェア構成は、図に示した各装置を１つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００６３】
サーバ１０における各機能は、プロセッサ１００１、メモリ１００２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、プロセッサ１００１が演算を行い、通信装置１００４による通信や、メモリ１００２及びストレージ１００３におけるデータの読み出し及び／又は書き込みを制御することで実現される。
【００６４】
プロセッサ１００１は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ１００１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。例えば、サーバ１０の各機能部は、プロセッサ１００１で実現されてもよい。
【００６５】
また、プロセッサ１００１は、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、ストレージ１００３及び／又は通信装置１００４からメモリ１００２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、サーバ１０の各機能部は、メモリ１００２に格納され、プロセッサ１００１で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、１つのプロセッサ１００１で実行される旨を説明してきたが、２以上のプロセッサ１００１により同時又は逐次に実行されてもよい。プロセッサ１００１は、１以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【００６６】
メモリ１００２は、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）、ＲＡＭ（Random  Access  Memory）などの少なくとも１つで構成されてもよい。メモリ１００２は、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリ１００２は、本発明の一実施の形態に係る方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００６７】
ストレージ１００３は、コンピュータ読み取り可能な記録媒体であり、例えば、ＣＤ−ＲＯＭ（Compact  Disc  ＲＯＭ）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも１つで構成されてもよい。ストレージ１００３は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ１００２及び／又はストレージ１００３を含むデータベース、サーバその他の適切な媒体であってもよい。
【００６８】
通信装置１００４は、有線及び／又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。例えば、上述の文字列入力部１２、出力部１７などは、通信装置１００４を含んで実現されてもよい。
【００６９】
入力装置１００５は、外部からの入力を受け付ける入力デバイス（例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど）である。出力装置１００６は、外部への出力を実施する出力デバイス（例えば、ディスプレイ、スピーカー、LEDランプなど）である。なお、入力装置１００５及び出力装置１００６は、一体となった構成（例えば、タッチパネル）であってもよい。
【００７０】
また、プロセッサ１００１やメモリ１００２などの各装置は、情報を通信するためのバス１００７で接続される。バス１００７は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００７１】
また、サーバ１０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ１００１は、これらのハードウェアの少なくとも１つで実装されてもよい。
【００７２】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００７３】
本明細書で説明した各態様／実施形態は、ＬＴＥ（Long  Term  Evolution）、ＬＴＥ−Ａ（LTE-Advanced）、ＳＵＰＥＲ  ３Ｇ、ＩＭＴ−Ａｄｖａｎｃｅｄ、４Ｇ、５Ｇ、ＦＲＡ（Future  Radio  Access）、Ｗ−ＣＤＭＡ（登録商標）、ＧＳＭ（登録商標）、ＣＤＭＡ２０００、ＵＭＢ（Ultra  Mobile  Broadband）、ＩＥＥＥ  ８０２．１１（Ｗｉ−Ｆｉ）、ＩＥＥＥ  ８０２．１６（ＷｉＭＡＸ）、ＩＥＥＥ  ８０２．２０、ＵＷＢ（Ultra-WideBand）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、その他の適切なシステムを利用するシステム及び／又はこれらに基づいて拡張された次世代システムに適用されてもよい。
【００７４】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００７５】
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００７６】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：trueまたはfalse）によって行われてもよいし、数値の比較（例えば、所定の値との比較）によって行われてもよい。
【００７７】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００７８】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００７９】
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）などの有線技術及び／又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【００８０】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００８１】
なお、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
【００８２】
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
【００８３】
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
【００８４】
移動通信端末は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、またはいくつかの他の適切な用語で呼ばれる場合もある。
【００８５】
本明細書で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up)（例えば、テーブル、データベースまたは別のデータ構造での探索）、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)（例えば、情報を受信すること）、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)（例えば、メモリ中のデータにアクセスすること）した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。
【００８６】
「含む（include）」、「含んでいる（comprising）」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
【００８７】
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。
【符号の説明】
【００８８】
１０…サーバ、１１…コンテンツ格納部、１２…文字列入力部、１３…特殊文字列抽出部、１４…検索スコア算出部、１５…特殊文字列比較部、１６…最終スコア算出部、１７…出力部、１００１…プロセッサ、１００２…メモリ、１００３…ストレージ、１００４…通信装置、１００５…入力装置、１００６…出力装置、１００７…バス、２０…ユーザ端末、Ｎ…ネットワーク。
【図１】
2018045588.tif 000003
【図２】
2018045588.tif 000004
【図３】
2018045588.tif 000005
【図４】
2018045588.tif 000006
【図５】
2018045588.tif 000007
【図６】
2018045588.tif 000008
【図７】
2018045588.tif 000009