【実施例1】
【0013】
以下、本発明の実施例1について
図1〜
図11を用いて説明する。本実施例では、カーナビゲーションシステムに代表される車載機において、施設名検索を実行することに関して説明する。ただし、施設名検索に限らず、楽曲名、住所、交差点名、及び道路名等、他の情報検索にも本発明は適用できる。また、車載機は、カーナビゲーションシステムに限らず、他の携帯電話及びスマートフォン等であってもよい。
【0014】
図1は、本発明の実施例1の検索システムの説明図である。
【0015】
検索システムは、車載機1010、中継サーバ1100、音声認識サーバ1160、及び施設検索サーバ1170を有する。
【0016】
車載機1010は、例えば、カーナビゲーション装置等の自動車内で使用可能な情報端末である。
【0017】
中継サーバ1100は通信網1090を介して車載機1010に接続され、車載機1010がインターネット上の情報検索サービスを利用する場合の通信を仲介するサーバである。中継サーバ1100は、情報検索サービスを提供する音声認識サーバ1160及び施設検索サーバ1170に接続される。
【0018】
音声認識サーバ1160は、ユーザが発話した音声データをテキストデータに変換する。施設検索サーバ1170は、車載機1010から検索クエリを受け付け、受け付けた検索クエリに基づいて施設を検索する。
【0019】
まず、車載機1010の詳細について説明する。
【0020】
車載機1010は、ユーザから検索条件の入力を受け、車両に搭載される装置であり、例えば、車両の経路を案内するナビゲーションシステムである。マイク1020、タッチパネル1030、画面1040、スピーカ1050、GPS(Global Positioning System)1060、及びCPU1070を有する。
【0021】
マイク1020はユーザが発話した音声を集音する。マイク1020が集音した音声は、音声認識サーバ1160の音声認識に使用される。タッチパネル1030は、ユーザが画面を触ったときの情報を感知する。画面1040は、絵及び文字等の情報を表示する。スピーカ1050は、音を出力する。GPS1060は、車載機1010が搭載された車両の位置情報を取得する。
【0022】
車載機1010は通信装置1080を介して通信網1090に接続され、中継サーバ1100に接続される。通信装置1080は、例えば、携帯電話又はスマートフォン等である。車載機1010がナビゲーションシステム等ではなく、通信網1090に接続可能な携帯電話又はスマートフォン等であれば、通信装置1080は不要である。車載機1010がナビゲーションシステム等であり、かつ通信装置1080にあたる通信手段が車載機1010の内部に備わる場合、車載機1010は外部の通信装置1080を介さずに通信網1090に接続できる。
【0023】
次に、中継サーバ1100の詳細について説明する。
【0024】
中継サーバ1100は、通信部1110、意味理解部1120、クエリ作成部1130、検索部1140、通信部1150、評価部1180、評価ルール記憶部1210、検索結果記憶部1220、及び基準テキスト記憶部1240を有する。
【0025】
通信部1110は、通信網1090及び通信装置1080を介して車載機1010に接続され、車載機1010と情報を通信する。通信部1150は、音声認識サーバ1160及び施設検索サーバ1170に接続され、音声認識サーバ1160及び施設検索サーバ1170と情報を通信する。
【0026】
ユーザが検索条件を車載機1010に入力すると、車載機1010は、入力された検索条件とGPS1060が取得した位置情報とを含む検索情報を、通信装置1080を介して中継サーバ1100に送信する。検索条件は、マイク1020によって集音された音声であってもよいし、タッチパネル1030を介して入力されたテキストであってもよい。
【0027】
中継サーバ1100の通信部1110は検索情報を受信すると、受信した検索情報に音声が含まれる場合には、音声を通信部1150を介して音声認識サーバ1160に送信する。音声認識サーバ1160は、音声を受信すると、当該音声を認識し、音声をテキストに変換し、中継サーバ1100に送信する。中継サーバ1100の通信部1150は、音声認識サーバ1160から送信されたテキストに変換された検索条件を受信すると、当該検索条件を基準テキスト記憶部1240及び意味理解部1120に入力する。基準テキスト記憶部1240は実施例2で説明する。
【0028】
なお、検索条件がテキストである場合には、通信部1110は、検索情報を意味理解部1120に入力し、テキストによる検索条件を基準テキスト記憶部1240に入力する。
【0029】
意味理解部1120は、検索情報が通信部1110又は1150から入力された場合、意味理解ルール記憶部1190に記憶される意味理解ルールテーブル3000(
図3参照)を参照し、入力された検索情報に含まれる検索条件を意味表現に変換し、意味表現をクエリ作成部1130に入力する。意味表現は、検索情報に含まれる単語を当該単語が示す意味に対応付けたものである。なお、意味理解ルール記憶部1190は、意味理解ルールテーブル3000及びジャンル語テーブル4000を記憶し、意味理解ルールテーブル3000は
図3で詳細を説明し、ジャンル語テーブル4000は
図4で詳細を説明する。
【0030】
クエリ作成部1130は、クエリルール記憶部1200に記憶されたクエリルール5000(
図5参照)を参照し、意味理解部1120から入力された意味表現を、施設検索サーバ1170に対応する検索クエリに変換し、検索クエリを検索部1140に入力する。クエリルール5000は
図5で詳細を説明する。
【0031】
検索部1140は、クエリ作成部1130から入力された検索クエリを通信部1150を介して施設検索サーバ1170に送信する。
【0032】
施設検索サーバ1170は、中継サーバ1100から検索クエリを受信した場合、受信した検索クエリに基づいて、施設を検索し、検索結果を中継サーバ1100に送信する。
【0033】
中継サーバ1100の通信部1150は、検索結果を受信すると、受信した検索結果を評価部1180に入力する。
【0034】
評価部1180は、通信部1150から入力された検索結果を検索結果記憶部1220に記憶し、評価ルール記憶部1210に記憶された評価ルール8000(
図8参照)を参照し、入力された検索結果を評価する。評価部1180による評価処理は
図7で詳細に説明する。評価ルール8000は
図8で詳細を説明する。
【0035】
なお、
図1では、意味理解部1120、クエリ作成部1130、検索部1140、評価部1180、評価ルール記憶部1210、検索結果記憶部1220、及び基準テキスト記憶部1240が中継サーバ1100に実装されたが、これらは、それぞれ複数の計算機に実装されてもよい。例えば、検索情報を受信してから検索クエリを施設検索サーバ1170に送信するまでの一連の処理を実行する意味理解部1120、クエリ作成部1130、及び検索部1140と、施設検索サーバ1170からの検索結果を評価する評価部1180とを別の計算機に実装してもよい。
【0036】
次に、中継サーバ1100が検索情報を受信してから検索クエリを施設検索サーバ1170に送信するまでの一連の検索クエリ送信処理について
図2を用いて説明する。
図2は、本発明の実施例1の検索クエリ送信処理のフローチャートである。
【0037】
本実施例では、ユーザがさいたま市大宮区のラーメン店を検索するために、「大宮のラーメン屋」と発話した場合について説明する。ユーザが発話した音声は車載機1010のマイク1020によって集音される。そして、車載機1010は、当該音声による検索条件及び位置情報を含む検索情報を中継サーバ1100に送信する。中継サーバ1100は検索条件を音声認識サーバ1160に送信し、音声認識サーバ1160はテキスト「大宮のラーメン屋」を中継サーバ1100に送信する。なお、検索条件は、タッチパネル1030を介して入力されたテキストであってもよく、この場合、検索条件は意味理解部1120に直接入力される。
【0038】
検索条件であるテキスト「大宮のラーメン屋」が意味理解部1120に入力された場合、意味理解部1120は、意味理解ルール記憶部1190に記憶された意味理解ルールテーブル3000を参照し、入力されたテキストによる検索条件を意味表現に変換する(2010)。
【0039】
意味理解ルールテーブル3000について
図3を用いて説明する。
図3は、本発明の実施例1の意味理解ルールテーブル3000の説明図である。
【0040】
意味理解ルールテーブル3000は、文字列3010及び意味表現3020を含む。文字列3010には文字列のパタンが登録される。例えば、
図3では、「%1の%2」、「%1にある%2」、及び「%1という%2」というパタンが登録される。意味表現3020には、パタンに対応する意味表現が登録される。具体的には、意味表現3020には、パタンの「%1」又は「%2」に対応する単語の意味が登録される。単語の意味には、例えば、住所、施設名、及びジャンル等がある。
【0041】
意味理解部1120は、テキスト「大宮のラーメン屋」が入力されると、意味理解ルールテーブル3000を参照し、入力された「大宮のラーメン屋」は、文字列3010に登録されたパタン「%1の%2」に対応するため、「大宮=住所 or 施設名」、「ラーメン屋=ジャンル or 施設名」という意味表現に変換される。
【0042】
なお、本実施例では、検索条件の意味表現へは、予め登録された意味理解ルールテーブル3000を参照して変換されるが、これに限定されず、意味表現への変換手法は、固有表現抽出という技術分野において知られる種々の手法を利用することができる。
【0043】
次に、意味理解部1120は、意味表現の「住所」にあいまい性がある場合、検索情報に含まれる位置情報を利用して「住所」のあいまい性を解消する(2020)。「住所」にあいまい性がある場合とは、ある単語の意味が「住所」であるか他の意味であるかに特定されない場合をいう。
【0044】
ステップ2020の処理では、意味理解部1120は、検索情報に含まれる位置情報が示す位置が、「住所」を意味する可能性がある単語が示す位置付近に存在する場合、当該単語が示す意味を「住所」に決定する。
【0045】
例えば、ステップ2010の処理で変換された意味表現「大宮=住所 or 施設名」では、単語「大宮」の意味が「住所」であるか「施設名」であるかが特定されず、住所にあいまい性がある。このため、ステップ2020の処理では、意味理解部1120は、「大宮」を含む住所が検索情報に含まれる位置情報の付近に存在するか否かを検索する。ユーザが、さいたま市近郊を走行している場合、「さいたま市大宮区」が検索される。この場合、意味理解部1120は、単語「大宮」が「住所」を意味するものと判断し、意味表現「大宮=住所 or 施設名」を「大宮=住所」に変換する。
【0046】
「大宮」を含む住所が検索情報に含まれる位置情報の付近に存在しない場合、単語「大宮」は施設名の一部である可能性が高いので、意味理解部1120は、意味表現「大宮=住所 or 施設名」を「大宮=施設名」に変換する。以下の説明では、「大宮=住所」に変換されたものとして説明を続ける。
【0047】
次に、意味理解部1120は、意味表現に「ジャンル」が含まれる場合、意味理解ルール記憶部1190に記憶されたジャンル語テーブル4000を参照し、「ジャンル」を意味する単語を正規化する(2030)。施設検索サーバ1170においては、ある施設のジャンルを意味する単語が異なるが、実際のユーザは同一のジャンルを様々な単語で表現している。例えば、施設検索サーバ1170において「中華」というジャンルが設定されているのに対して、ユーザは、「中華料理」、「中国」、及び「チャイニーズレストラン」等の単語でこのジャンルを表現することが想定される。このため、ステップ2030の処理では、意味理解部1120は、意味理解ルール記憶部1190に記憶されたジャンル語テーブル4000を参照し、ユーザが入力した検索条件のジャンルを意味する単語を、施設検索サーバ1170に設定された単語に変換する。
【0048】
ここで、ジャンル語テーブル4000について
図4を用いて説明する。
図4は、本発明の実施例1のジャンル語テーブル4000の説明図である。
【0049】
ジャンル語テーブル4000は、文字列4010、及びジャンル名4020を含む。文字列4010には、同じジャンルを意味する単語の文字列が登録される。ジャンル名4020には、施設検索サーバ1170でジャンルを検索可能な文字列が登録される。
【0050】
意味表現がジャンルを意味する可能性のある単語を含む場合、意味理解部1120は、ジャンル語テーブル4000の文字列4010に当該単語と一致する文字列が登録されているかを判定する。意味理解部1120は、ジャンル語テーブル4000の文字列4010に当該単語と一致する文字列が登録されている場合、当該単語はジャンルを意味すると判定する。そして、意味理解部1120は、当該単語と一致する文字列が登録されているレコードのジャンル名4020に登録された文字列に、当該単語を変換する。一方、意味理解部1120は、ジャンル語テーブル4000の文字列4010に当該単語と一致する文字列が登録されていない場合、当該単語は施設名を意味すると判定する。
【0051】
本実施例では、「ラーメン屋」が「ジャンル」を意味する可能性のある単語であり、ジャンル語テーブル4000の文字列4010に「ラーメン屋」が登録されているので、意味理解部1120は、「ラーメン屋」は「ジャンル」を意味すると判定し、「ラーメン屋」を「ラーメン」に変換する。このため、意味表現「ラーメン屋=ジャンル or 施設名」は意味表現「ラーメン=ジャンル」となる。
【0052】
もし、ジャンル語テーブル4000の文字列4010に「ラーメン屋」と一致する文字列が登録されていない場合、「ラーメン屋」はジャンルを意味しないため、施設名又はその他のテキストから検索されることを期待して、意味理解部1120は、意味表現「ラーメン屋=ジャンル or 施設名」を意味表現「ラーメン屋=施設名」に変換する。
【0053】
次に、クエリ作成部1130は、クエリルール記憶部1200に記憶されるクエリルール5000を参照し、入力された意味表現を、施設検索サーバ1170に送信する検索クエリに変換する(2040)。
【0054】
クエリルール5000について
図5を用いて説明する。
図5は、本発明の実施例1のクエリルール5000の説明図である。
【0055】
クエリルール5000は、意味表現5010、使用フラグ5020、及びクエリ式5030を含む。
【0056】
意味表現5010には意味表現が登録される。クエリ式5030には、施設検索サーバ1170に実際に送信する検索クエリに変換するためのクエリ式(クエリルール)が登録される。クエリ式5030には、一つの意味表現に対応して複数のクエリ式が登録される。各クエリ式には、使用フラグ5020が対応付けられており、使用フラグ5020には「x」又は「−」が登録される。使用フラグ5020に「x」が登録されたクエリ式は、意味表現の検索クエリの変換に使用されることを示し、使用フラグ5020に「−」が登録されたクエリ式は、当該変換に使用されないことを示す。
【0057】
図5に示すクエリルール5000において「%1の市区町村」という式は、文字列%1が含まれる最寄りの市区町村の名を意味する。
【0058】
本実施例において、クエリ作成部1130に入力される意味表現「大宮=住所」及び「ラーメン=ジャンル」は、
図5に示すクエリルール5000の意味表現5010に登録された意味表現「%1=住所、%2=ジャンル」に対応する。当該レコードのクエリ式のうち、使用フラグ5020に「x」が登録されているクエリ式は「address=(%1の市区町村), genre=%2」であるので、意味表現「大宮=住所」及び「ラーメン=ジャンル」は、「address=さいたま市大宮区、 genre=ラーメン」という検索クエリに変換される。
【0059】
なお、クエリ式5030に登録されるクエリ式は、施設検索サーバ1170に合わせて予め作成されるものとする。また、本実施例では、クエリ式の「address=(%1の市区町村)」を「address=さいたま市大宮区」としたが、このような住所の変換は施設検索サーバ1170の仕様に合わせて変更可能である。例えば、「大宮区」で住所を検索可能な施設検索サーバ1170であれば、「address=大宮区」としてもよい。
【0060】
次に、検索部1140は、クエリ作成部1130が変換した検索クエリ「address=さいたま市大宮区、 genre=ラーメン」を施設検索サーバ1170に送信し(2050)、施設検索サーバ1170に施設を検索させ、処理を終了する。
【0061】
検索クエリ「address=さいたま市大宮区、 genre=ラーメン」の施設検索を実行した施設検索サーバ1170が送信する施設検索結果6000について
図6を用いて説明する。
【0062】
図6は、本発明の実施例1の施設検索結果6000の説明図である。
【0063】
施設検索結果6000は、施設検索サーバ1170によって検索クエリに対応する施設を検索され、施設検索サーバ1170に設定された優先順序に従って検索された施設が並べられたものである。
【0064】
施設検索結果6000は、順序6010、施設名6020、住所6030、ジャンル6040、及び口コミ6050を含む。
【0065】
順序6010には検索結果の優先順序が登録される。施設名6020には施設の名称が登録される。住所6030には施設の住所が登録される。ジャンル6040には施設のジャンルが登録される。口コミ6050には施設の口コミが登録される。
【0066】
なお、施設検索結果6000が含む情報は、施設検索サーバ1170の種別等によって異なる。
【0067】
次に、評価部1180による施設検索結果6000の評価処理について
図7を用いて説明する。
図7は、本発明の実施例1の評価部1180による評価処理のフローチャートである。
【0068】
まず、評価部1180は、施設検索結果6000を受信した場合、受信した施設検索結果6000を検索結果記憶部1220に記憶する(7010)。
【0069】
次に、評価部1180は、評価ルール記憶部1210に記憶された評価ルール8000(
図8参照)を参照し、受信した施設検索結果6000を評価する(7020)。
【0070】
ここで、評価ルール8000について
図8を用いて説明する。
図8は、本発明の実施例1の評価ルール8000の説明図である。
【0071】
評価ルール8000は、意味表現8010及び評価基準8020を含む。意味表現8010には意味表現が登録される。評価基準8020には、意味表現に対する検索結果が正常であるか否かを判定するための基準(評価ルール)が登録されており、具体的には、各意味表現に対応する評価基準と意味表現に共通する評価基準とが登録される。
【0072】
まず、各意味表現に対応する評価基準について、「%1=住所、%2=ジャンル」の評価基準を例に説明する。この評価基準では、評価部1180は、検索結果から、ユーザが実際に画面で見る可能性が高い施設、すなわち、順序6010が高いx件の施設を取得する。そして、評価部1180は、取得したx件の施設のうち住所6030に単語「%1」が含まれる施設の件数がy件以上であって、かつ、取得したx件の施設のうちジャンル6040が単語「%2」と完全に一致する施設の件数がz件以上であるという条件を満たすか否かを判定する。すなわち、検索結果に対応する検索クエリの意味表現における単語が、当該単語の意味で用いられている検索結果の件数が所定数以上であるか否かを判断している。
【0073】
評価部1180は、当該条件を満たすと判定した場合、ユーザが求めていた検索に対して実際の検索結果が正当であったと判断し、受信した検索結果が正常であると判断する。
【0074】
当該条件を満たさないと判定した場合、ユーザが求めていた検索に対して実際の検索結果が正当でないと判断し、受信した検索結果が異常であると判断する。なお、x、y、zは任意の値であり、管理者が任意に設定してもよい。
【0075】
また、評価部1180は、住所6030に単語「%1」が含まれる施設の件数の取得したx件に対する割合が所定値以上であって、かつジャンル6040が単語「%2」と完全に一致する施設の件数の取得したx件に対する割合が所定値以上であるという条件を満たすか否かを判定してもよい。これによって、評価部1180は、検索結果に含まれる施設の数が少ない場合であっても、受信した検索結果を正確に評価できる。
【0076】
次に、意味表現に共通する評価基準について説明する。この評価基準では、評価部1180は、検索日が現在よりd日以内であり、受信した検索結果と同じ検索クエリの検索結果と今回受信した検索結果とで一致する施設の数がy件より小さい場合、施設検索サーバ1170に何らかの変化があったと推測でき、今回受信した検索結果が異常であると判定する。
【0077】
すなわち、意味表現に共通する評価基準は、今回受信した検索結果と過去の検索結果とを比較することによって、今回受信した検索結果が正当であるか否かを評価する。これに対して、各意味表現に対応する評価基準は、過去の検索結果と比較することなしに、今回受信した検索結果を評価する。
【0078】
なお、実在する施設は時間の経過に伴い変化することが通常であるから、検索日が現在よりd日より前の検索結果を参照しないようにしている。これによって、自然に発生する施設の変化を、施設検索サーバ1170の異常として誤検出しないようにする。このため、今回受信した検索結果と同じ検索クエリの検索結果が検索結果記憶部1220に記憶されていない場合、及び、今回受信した検索結果と同じ検索クエリの検索結果の検索日が現在よりd日より前である場合、評価部1180は受信した検索結果が正常であると判定する。
【0079】
また、施設検索サーバ1170は、Search Engine Optimizationに代表されるような外部からの特定の目的を持ったアクセスを受けることによって、検索結果の順序を変更させることがある。このような検索結果の順序の変更は、施設検索サーバ1170の正常な動作であるため、検索結果の異常として検出されないことが望ましい。そこで、評価基準8020において、検索結果の順序を考慮からはずす、又は、評価対象とする検索結果の件数(x)を増やす等の評価基準8020を変更することにより、Search Engine Optimizationによる検索結果の異常の誤検出を防止できる。
【0080】
各意味表現に対応する評価基準及び意味表現に共通する評価基準の少なくとも一方を用いて、評価部1180は受信した検索結果を評価すればよい。
【0081】
ステップ7020の処理では、評価部1180は、
図9に示す評価ルール9000を用いて受信した施設検索結果6000を評価してもよい。
【0082】
図9は、本発明の実施例1の変形例の評価ルール9000の説明図である。
【0083】
評価ルール9000は、意味表現9010及び評価基準9020を含む。意味表現9010は意味表現8010と同じであるので説明を省略する。評価基準9020には、検索結果の特性が急激に変化したか否かを判定するための基準が意味表現毎に登録される。評価基準9020について、「%1=住所、%2=ジャンル」の評価基準を例に説明する。
【0084】
まず、この評価基準9020では、評価部1180は、過去d日以内の検索結果から「%1=住所、%2=ジャンル」という意味表現で検索された検索結果を取得する。次に、評価部1180は、取得した検索結果に含まれる全施設の数に対する、検索クエリの住所を示す各単語を住所に含む施設の数の割合の平均値(Ta)を算出する。また、評価部1180は、取得した検索結果に含まれる全施設の数に対する、検索クエリのジャンルを示す各単語がジャンルと一致する施設の数の割合の平均値(Tg)を算出する。
【0085】
そして、評価部1180は、受信した検索結果に含まれる全施設の数に対する、受信した検索結果の検索クエリの住所を示す単語を住所に含む施設の数の割合が、Taから所定の閾値(w)を減算した値以上であって、かつ、受信した検索結果に含まれる全施設の数に対する、受信した検索結果の検索クエリのジャンルを示す単語がジャンルと一致する施設の数の割合が、Tbから所定の閾値(w)を減算した値以上であれば、受信した検索結果は正常であると判定する。
【0086】
また、評価部1180は、受信した検索結果の検索クエリの住所を示す単語を住所に含む施設の受信した検索結果に含まれる全施設に対する割合が、Taから所定の閾値(w)を減算した値より小さい場合、又は、受信した検索結果の検索クエリのジャンルを示す単語がジャンルと一致する施設の受信した検索結果に含まれる全施設に対する割合が、Tbから所定の閾値(w)を減算した値より小さい場合、施設検索サーバ1170の仕様が変更されたと判断し、受信した検索結果を異常と判断する。
【0087】
図7に戻り、評価部1180は、ステップ7020の処理における評価結果が正常であるか否かを判定する(7030)。
【0088】
ステップ7020の処理における評価結果が正常であると、ステップ7030の処理で判定された場合、評価部1180は、受信した検索結果を通信部1110を介して車載機1010に送信し(7060)、処理を終了する。車載機1010は、中継サーバ1100から送信された検索結果を受信した場合、受信した検索結果を画面1040に表示し、受信した検索結果をスピーカ1050から出力する。
【0089】
一方、ステップ7020の処理における評価結果が異常であると、ステップ7030の処理で判定された場合、評価部1180は、カウンタを1増加させる(7032)。このカウンタは、検索条件毎、意味表現毎、又は検索クエリ毎に設けられればよい。次に、評価部1180は、カウンタが所定値より大きいか否かを判定する(7034)。ステップ7034の処理でカウンタが所定値より大きいと判定された場合、評価部1180は、検索結果に異常が検出され、施設検索サーバ1170の仕様が変更されたと判断し、中継サーバ1100の管理者にその旨を通知し(7040)、カウンタをリセットし(7042)、ステップ7050の処理に進む。なお、施設検索サーバ1170の仕様の変更は、例えば、施設検索サーバ1170の検索アルゴリズムの変更等、施設検索サーバ1170の設定等が変更されたことを意味する。また、管理者に施設検索サーバ1170の仕様の変更を通知するには、評価部1180は、中継サーバ1100の管理者が操作する図示しない端末の表示装置にその旨を表示させる。管理者は、施設検索サーバ1170の仕様が変更されたことを把握できるので、当該変更に対する処置をとることができる。
【0090】
ステップ7034の処理でカウンタが所定値以下であると判定された場合、又はステップ7042の処理の実行後、評価部1180は、2回目の検索クエリの作成をクエリ作成部1130に指示し(7050)、処理を終了する。
【0091】
なお、
図7では、ステップ7040の処理で中継サーバ1100の管理者に検索結果に異常が検出された旨を一度通知した場合、これ以降の評価処理で検索結果に異常が検出され続け、カウンタが所定値より大きくなると、中継サーバ1100の管理者に検索結果に異常が検出された旨を通知する。しかし、中継サーバ1100の管理者に検索結果に異常が検出された旨が一度通知された場合、検索結果が正常と判定されるまで検索結果に異常が検出された旨を通知しなくてもよい。
【0092】
この場合の一例を説明する。ステップ7040の処理の実行後、評価部1080は通知フラグを設定する。通知フラグの設定は、ステップ7030の処理で評価結果が正常であると判定された場合に解除される。また、ステップ7030の処理で評価結果が異常であると判定された場合、評価部1080は、通知フラグが設定されているか否かを判定し、通知フラグが設定されていないと判定された場合ステップ7032の処理に進み、通知フラグが設定されていないと判定された場合ステップ7032〜7042の処理を実行せず、ステップ7050の処理に進む。
【0093】
これによって、中継サーバ1100の管理者に検索結果に異常が検出された旨が一度通知された場合、検索結果が正常と判定されるまで検索結果に異常が検出された旨を通知しなくすることができる。
【0094】
クエリ作成部1130が2回目の検索クエリを作成された場合の処理(2回目検索クエリ作成処理)について、
図10を用いて説明する。
【0095】
図10は、本発明の実施例1の2回目検索クエリ作成処理のフローチャートである。
【0096】
クエリ作成部1130は、1回目と異なる検索クエリを作成する(10010)。具体的には、クエリ作成部1130は、クエリルール5000を参照し、意味表現5010に「%1=住所、%2=ジャンル」が登録されたレコードの使用フラグ5020に「−」が登録されているクエリ式(「address=%1, genre=%2」、及び「keyword=%1,%2」)を用いて検索クエリを作成する。意味表現は「大宮=住所」及び「ラーメン=ジャンル」であるので、「address=大宮, genre=ラーメン」、及び「keyword=大宮,ラーメン」という二つの検索クエリが作成される。ここで、「keyword」と記述された検索クエリは、施設検索サーバ1170が施設データのどのフィールドも検索することを示す。このため、意味表現毎のクエリ式のいずれかに必ず「keyword」を含めることによって、検索条件の単語となんらかのフィールドで一致する施設が検索されるようにすることができる。
【0097】
検索部1140は、ステップ10010の処理で作成された検索クエリを施設検索サーバ1170に送信し(10020)、ステップ10010の処理で作成された全ての検索クエリを施設検索サーバ1170に送信するまでステップ10020の処理を繰り返し実行し、ステップ10010の処理で作成された全ての検索クエリを施設検索サーバ1170に送信すると、処理を終了する。ここでは、ステップ10010の処理で作成された二つの検索クエリが施設検索サーバ1170に送信される。
【0098】
図11は、本発明の実施例1の2回目の検索結果を受信した場合の評価部1180による処理のフローチャートである。
【0099】
評価部1180は、2回目の検索結果を受信し、受信した2回目の検索結果を検索結果記憶部1220に記憶する(11010)。
【0100】
次に、評価部1180は、ユーザの意図に最も適合しているとの評価が最良の検索結果を選択する(11020)。ステップ11020の処理について具体的に説明する。本実施例のステップ2030の処理では、意味表現が「大宮=住所、ラーメン=ジャンル」と特定されていた。このため、評価部1180は、1回目の検索結果、及び2回目の検索結果(二つの検索クエリの検索結果)から、住所に「大宮」を含み、ジャンルが「ラーメン」と一致する施設の件数を検索結果毎に算出する。そして、評価部1180は、当該施設の件数が最大の検索結果を評価が最良の検索結果として選択する。
【0101】
次に、評価部1180は、評価が最良の検索結果が1回目の検索結果であるか否かを判定する(11040)。ステップ11040の処理で、評価が最良の検索結果が1回目の検索結果であると判定された場合、評価部1180は、1回目の検索結果を通信部1110を介して車載機1010に送信し(11050)、処理を終了する。車載機1010は、中継サーバ1100から送信された1回目の検索結果を受信した場合、受信した1回目の検索結果を画面1040に表示し、受信した1回目の検索結果をスピーカ1050から出力する。この場合、評価部1180は、当該1回目の検索結果の検索の質が通常より悪い旨のメッセージを、1回目の検索結果とともに車載機1010に送信してもよい。車載機1010は、当該メッセージを受信した場合、「検索するテキストを変更して再度検索しますか?」等のメッセージを画面1040又はスピーカ1050から出力する。これによって、ユーザが望ましい検索結果を得ることができるような検索条件をユーザに入力させることができる。
【0102】
一方、ステップ11040の処理で、評価が最良の検索結果が1回目の検索結果でないと判定された場合、すなわち、評価が最良の検索結果が2回目の検索結果である場合、評価部1180は、カウンタに1を加算する(10052)。このカウンタは、検索条件毎、意味表現毎、又は検索クエリ毎に設けられればよい。
【0103】
次に、評価部1180は、カウンタが所定値より大きいか否かを判定する(11054)。ステップ11054の処理でカウンタが所定値より大きいと判定された場合、評価部1180は、評価が最良の検索結果の検索クエリを作成に用いたクエリ式の使用フラグ5020に「x」を登録するように、クエリルール5000を変更する(11060)。この場合、評価部1180は、使用フラグ5020に「x」が登録されていたクエリ式の使用フラグ5020を「−」を登録する。
【0104】
例えば、検索クエリ「keyword=大宮,ラーメン」の検索結果の評価が最良である場合、評価部1180は、
図4に示すように、クエリ式「keyword=%1,%2」の使用フラグ5020「−」から「x」に変更し、クエリ式「address=(%1の市区町村),genre=%2」の使用フラグ5020を「x」から「−」に変更する。この後、クエリ作成部1130は、意味表現「%1=住所、%2=ジャンル」が入力された場合、クエリ式「keyword=%1,%2」を用いて検索クエリを作成する。
【0105】
このように、使用フラグが変更されることによって、施設検索サーバ1170の仕様が変更されても、ユーザの意図を反映した最良の検索結果をユーザに提示することができる。
【0106】
評価部1180は、ステップ11060の処理でクエリルール5000を変更すると、カウンタをリセットし(11060)、ステップ11070の処理に進む。
【0107】
ステップ11054の処理でカウンタが所定値以下であると判定された場合、又はステップ11060の処理の実行後、評価部1180は、評価が最良の検索結果を通信部1110を介して車載機1010に送信し(11070)、処理を終了する。車載機1010は、中継サーバ1100から送信された1回目の検索結果を受信した場合、受信した1回目の検索結果を画面1040に表示し、受信した1回目の検索結果をスピーカ1050から出力する。
【0108】
以上、本実施例によれば、中継サーバ1100が受信した検索結果に基づいて、施設検索サーバ1170の仕様が変更されたか否かを判定し、施設検索サーバ1170の仕様が変更されたと判定した場合、その旨を管理者に通知する。これによって、管理者は、検索装置の挙動の変化を即座に把握でき、当該変化によって検索装置のユーザの利便性が悪化しないように、当該変化への対処が可能となる。
【0109】
また、意味理解部1120が、ユーザが入力した検索条件を意味表現に変換し、クエリ作成部1130が意味表現を検索クエリに変換するため、ユーザの意図した検索条件で施設検索サーバ1170に施設を検索させることができ、ユーザの望む検索結果を出力できる。
【0110】
また、中継サーバ1100が受信した検索結果の評価結果が異常である場合、2回目の検索クエリの作成をクエリ作成部1130に指示し、クエリ作成部1130は、1回目の検索結果の検索クエリの生成に使用されていないクエリ式を用いて2回目の検索クエリを生成し、施設検索サーバ1170に送信する。評価部1180は、これらの検索結果の中から意味表現に対して最良の検索結果の検索クエリのクエリ式の使用フラグ5020(
図7参照)を「x」に変更する。これによって、施設検索サーバ1170の仕様に変更があっても、意味表現に対して最良の検索結果(すなわち、ユーザの意図に最も適合する検索結果)をユーザに出力できる。
【0111】
また、評価部1080は、今回受信した検索結果の検索クエリの意味表現を参酌して、今回検索結果を評価するため、ユーザが意図した検索結果となっているかとの観点から、施設検索サーバ1170の仕様が変更されたかを判断できる。
【0112】
また、評価部1080は、今回受信した検索結果と過去の検索結果とを比較して、検索結果を評価するため、今回受信した検索結果が過去の検索結果から変更されていた等の観点から、施設検索サーバ1170の仕様が変更されたかを判断できる。
【0113】
次に、本実施例の変形例について説明する。
【0114】
本実施例では、
図2で説明したように、意味理解部1120は、ステップ2020の処理で住所のあいまい性を解消し、ステップ2030の処理でジャンルを正規化し、検索条件のテキストを一つの意味表現に変換したが、意味理解部1120は、ステップ2020の処理で住所のあいまい性を解消せず、ステップ2030のジャンルを正規化せず、複数の意味表現を検索クエリに入力してもよい。
【0115】
例えば、「大宮のラーメン屋」が検索条件である場合、検索情報に含まれる位置情報が示す位置が「大宮」付近であっても、「大宮」が「施設名」を意味する場合もある。また、ジャンル語テーブル4000に「ラーメン屋」が登録されていても、「ラーメン屋」が「施設名」を意味する場合もある。
【0116】
このような意味の多義性を考慮して、本変形例の意味理解部1120は、以下に示す複数の意味表現を生成する。
「大宮=住所、ラーメン=ジャンル」
「大宮=施設名、ラーメン=ジャンル」
「大宮=住所、ラーメン屋=施設名」
「大宮=施設名、ラーメン屋=施設名」
【0117】
クエリ作成部1130は、意味表現が入力されると、クエリルール5000を参照し、以下の検索クエリを作成する。
「address=さいたま市大宮区, genre=ラーメン」
「name=大宮, genre="ラーメン」
「address=さいたま市大宮区, name=ラーメン屋」
「name=大宮, name=ラーメン屋」
【0118】
そして、クエリ作成部1130は、これらの四つの検索クエリを施設検索サーバ1170に送信し、施設検索サーバ1170は、これらの複数のクエリに対応する四つの検索結果を中継サーバ1100に送信する。
【0119】
評価部1180によるこれらの検索結果の評価処理については、複数の方法が考えられる。
【0120】
例えば、評価部1180は、評価ルール8000を参照し、一つの意味表現に対応する検索結果を、当該意味表現に対応する評価基準を用いて、個別に評価してもよい。
【0121】
また、評価部1180は、受信した四つの検索結果を統合して一つの検索結果として、当該一つの検索結果を評価することもできる。例えば、評価部1180は、統合した一つの検索結果を、
図8に示す意味表現に共通した評価基準を用いて評価してもよいし、四つの意味表現の組み合わせに対する新たな評価基準が設定され、当該評価基準を用いて評価してもよい。