(58)【調査した分野】(Int.Cl.,DB名)
前記演算処理装置は、前記複数の意味から一つの意味を選択する処理として、前記記憶部に登録された第1の辞書および第2の辞書を用いて、取得された発話情報から抽出された単語に、同一の読みで異なる意味の単語が複数含まれる場合、同一の文字で異なる意味の単語が複数含まれる場合、または、同一の読みおよび同一の文字で異なる意味の単語が複数含まれる場合には、前記過去の発話情報に関する履歴情報または前記過去のサービスの利用履歴に関する利用履歴情報に含まれる単語の意味に基づいて、前記複数の意味から一つの意味を各単語ごとに選択する
処理を実行することを特徴とする請求項1に記載の応答生成装置。
【発明を実施するための形態】
【0009】
以下に、本願に係る応答生成装置、応答生成方法および応答生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る応答生成装置、応答生成方法および応答生成プログラムが限定されるものではない。
【0010】
(第1の実施形態)
図1〜
図8を用いて、本願に係る応答生成装置、応答生成方法および応答生成プログラムの第1の実施形態について説明する。
【0011】
〔1−1.構成〕
まず、
図1を用いて、第1の実施形態に係る応答生成サーバが含まれるネットワークシステムの構成について説明する。
図1は、第1の実施形態に係るネットワークシステムの構成例を示す図である。
図1に例示するように、第1の実施形態に係るネットワークシステムには、応答生成サーバ10と、ユーザ端末20と、音声認識サーバ30と、路線API(Application Program Interface)サーバ41、天気APIサーバ42と、Web検索APIサーバ43と、音声合成サーバ50とが含まれる。
【0012】
応答生成サーバ10と、ユーザ端末20と、音声認識サーバ30と、路線APIサーバ41、天気APIサーバ42と、Web検索APIサーバ43と、音声合成サーバ50とは、ネットワーク60を介して、無線通信又は有線通信を行う。なお、以下の説明では、路線APIサーバ41、天気APIサーバ42と、Web検索APIサーバ43を区別する必要がない場合には、これらを総称して「APIサーバ40」と表記する場合がある。また、路線APIサーバ41、天気APIサーバ42、Web検索APIサーバ43は、APIサーバの一例であり、これらに限定されない。
【0013】
〔1−1(1).応答生成サーバ10の構成〕
次に、
図2を用いて、応答生成サーバ10の構成について説明する。
図2は、第1の実施形態に係る応答生成サーバの構成例を示す図である。応答生成サーバ10は、ユーザ端末20によって送信される発話のテキストデータと、ユーザ端末20が保持する情報(例えば、現在位置を示す位置情報など)とに応じて、ユーザの発話に対する応答生成情報をユーザ端末20に送信するコンピュータである。応答生成サーバ10は、通信部11と、制御部12と、記憶部13とを有する。なお、以下の説明では、応答生成サーバ10が、APIサーバ40からXML(Extensible Markup Language)形式のデータを取得する場合を例にして説明するが、これに限定されるものではなく、例えば、JSON(Java(登録商標) Script Object Notation)形式のデータやPHP(Personal Home Page)シリアライズ形式のデータをAPIサーバ40から取得するようにしてもよい。
【0014】
通信部11は、ネットワーク60を介してユーザ端末20、APIサーバ40および音声合成サーバ50との間で各種データを送受信する。通信部110は、例えば、NIC等に該当する。
【0015】
記憶部13は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置である。記憶部13は、
図3に例示するユーザ辞書と、
図4に例示するサーバ辞書とを記憶する。ここで、ユーザ辞書とは、ユーザごとに登録される辞書であり、サーバ辞書とは、サーバが管理する辞書である。
図3は、第1の実施形態に係る応答生成サーバの記憶部によって記憶されるユーザ辞書の一例を示す図である。
図4は、第1の実施形態に係る応答生成サーバの記憶部によって記憶されるサーバ辞書の一例を示す図である。
【0016】
例えば、
図3に例示するように、記憶部13は、ユーザ辞書として、単語の漢字を示す「漢字」と、単語の読みを示す「読み」と、単語に該当する駅名を示す「駅名」とを対応付けて記憶する。例えば、
図3の例を挙げて説明すると、ユーザ辞書は、同じ漢字を用いる「日本橋」について、それぞれ読みが「にっぽんばし」、「にほんばし」、「にほんばし」であることを記憶し、駅名がそれぞれ「日本橋(大阪)」、「日本橋(東京都)」、「日本橋(水上)」であることを記憶している。ここで、「日本橋(大阪)」と「日本橋(東京都)」とは、字が同じであるが、読みが異なるため、異音同字である。なお、ユーザ辞書は、異音同字だけでなく、同音異字や同音同字なども記憶しているものとする。例えば、同音異字の例としては、仙台(宮城県:せんだい)と川内(鹿児島県:川内)などの例がある。また、同音同字の例としては、長谷(神奈川県:はせ)と長谷(富山県:はせ)などの例がある。
【0017】
また、
図4に例示するように、記憶部13は、サーバ辞書として、単語に該当する駅名を示す「駅名」と、単語の読みを示す「読み」と、単語の駅名が位置する「位置情報」とを対応付けて記憶する。例えば、
図4の例を挙げて説明すると、ユーザ辞書は、同じ漢字を用いる「日本橋」について、それぞれ読みが「にっぽんばし」、「にほんばし」、「にほんばし」であることを記憶し、位置情報がそれぞれ「緯度X1 経度Y1」、「緯度X2 緯度Y2」、「緯度X3 経度Y3」であることを記憶している。
【0018】
図2に戻って、制御部12は、応答生成サーバ10を対話サーバとして動作させる制御部であり、ユーザ端末20から受信したユーザが今回発話したテキストデータ及びその他の情報(位置情報、過去の発話情報、利用履歴情報)に応じて、発話のAPIサーバから情報を取得し、応答発話用の中間表記と応答発話用のテキストデータとHTMLデータをユーザ端末20に送信する。
【0019】
具体的には、制御部12は、ユーザが今回発話したテキストデータと、ユーザ端末20が保持する情報(位置情報や対話履歴、利用履歴)を用いて、同音異字、異音同字、同音同字の単語の候補からユーザが意図した単語を選択し、選択された単語として発話情報に含まれる単語の意味を特定し、発話情報とユーザ端末20が保持する情報とを用いて、検索条件を生成して、ユーザの発話に対する応答発話用の中間表記と応答発話用のテキストデータとHTMLデータとをユーザ端末20に送信する。制御部12は、例えば、CPUやMPU等により実現され、記憶部13に予め記憶されているコンピュータプログラムを実行することにより、取得部12a、選択部12b、要求生成部12c、変換部12d、音声合成指示部12e、応答生成部12fによる処理を実現する。
【0020】
なお、応答生成サーバ10が有する各処理部は、以下に説明する情報処理の機能や作用を実現又は実行する。
【0021】
〔1−1(2).ユーザ端末20の構成〕
次に、
図5を用いて、ユーザ端末20の構成について説明する。
図5は、第1の実施形態に係るユーザ端末20の構成例を示す図である。
図5に示すように、ユーザ端末20は、携帯電話機、スマートフォン、PDA(Personal Digital Assistant)、タブレット型PC、ノート型PC、デスクトップ型PC等の情報処理装置である。ユーザ端末20は、
図5に例示するように、通信部21と、マイク22と、スピーカ23と、表示部24と、アプリ25と、メモリ26とを有する。
【0022】
通信部21は、ネットワーク60を介して応答生成サーバ10および音声認識サーバ30との間で各種データを送受信する。通信部21は、例えば、携帯端末やスマートフォンの場合には、アンテナや通信制御を行う電子回路等である。例えば、ユーザ端末20がノート型PCやデスクトップ型PCである場合には、NIC(Network Interface Card)等に該当する。通信部21は、例えば、ユーザ端末20がタブレット型PCである場合には、アンテナや通信制御を行う電子回路等である。
【0023】
マイク22は、ユーザ端末20の利用者が発話した音声入力を受け付ける入力デバイスである。スピーカ23は、ユーザ端末20の利用者が発話した音声入力に対する応答音声を出力する出力デバイスである。また、表示部24は、各種情報を表示する表示デバイスであり、例えばタッチパネルや液晶ディスプレイ等である。表示部24は、例えば、応答発話表示用のテキストデータと発話意図に応じてHTMLデータとを表示する。
【0024】
アプリ25は、利用者が発話した音声入力を受け付けると、音声データを音声認識サーバ30に送信し、音声認識サーバ30から発話のテキストデータを受信する。また、アプリ25は、発話のテキストデータや過去の発話情報を応答生成サーバ10に送信し、応答生成サーバ10からHTML(Hyper Text Markup Language)等の言語で記述されたデータ、応答発話用の中間表記および応答発話表示用のテキストデータなどを受信する。また、アプリ25は、ユーザ端末20の利用者が発話した音声入力に対する応答音声を出力したり、HTML等の言語で記述されたデータを表示したりする。アプリ25は、CPUやMPU等により実現され、音声データ送信部25a、テキストデータ受信部25b、テキストデータ送信部25c、HTMLデータ受信部25d、表示制御部25eによる処理を実現する。
【0025】
メモリ26は、履歴記憶部26aおよび位置情報記憶部26bを有する。メモリ26は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置である。履歴記憶部26aは、発話のテキストデータとともに送信される、過去の発話に関する履歴情報を記憶する。位置情報記憶部26bは、発話のテキストデータとともに送信される、ユーザ端末10の現在位置を示す位置情報を記憶する。なお、メモリ26は、履歴情報や位置情報のほかに、データの閲覧や検索の利用履歴に関する利用履歴情報やユーザの自宅の住所などの個人情報を記憶していてもよい。これらの情報は、位置情報と同様に、発話のテキストデータとともに応答生成サーバ10に送信してもよい。
【0026】
なお、ユーザ端末20が有する各処理部は、以下に説明する情報処理の機能や作用を実現又は実行する。
【0027】
〔1−2(1).作用(ネットワークシステム)〕
次に、
図6を用いて、第1の実施形態に係るネットワークシステムによる全体の処理手順について説明する。
図6は、第1の実施形態に係るネットワークシステムによる処理の手順を示すシーケンス図である。
図6に例示するように、ユーザ端末20は、アプリケーションの起動指示を受け付けると、アプリケーションを起動する(ステップS1)。そして、ユーザ端末20の音声データ送信部25aは、ユーザの発話を検知すると、発話の音声データをsocket通信により音声認識サーバ30へ送信する(ステップS2)。例えば、ユーザ端末20の音声データ送信部25aは、発話の音声データとして、異音同字を含む「にっぽんばしからにほんばしまで」を送信する。
【0028】
そして、音声認識サーバ30は、発話の音声データを受信すると、音声データをテキストデータに変換する(ステップS3)。そして、音声認識サーバ30のテキストデータ送信部25cは、変換した発話のテキストデータをユーザ端末20に送信する(ステップS4)。例えば、音声認識サーバ30のテキストデータ送信部25cは、テキストデータとして、異音同字を含む「日本橋から日本橋まで」を送信する。
【0029】
続いて、ユーザ端末20のテキストデータ受信部25bが、音声認識サーバ30から発話のテキストデータを受信すると、テキストデータ送信部25cは、発話のテキストデータや、過去3回分の発話に関する履歴情報や位置情報等のユーザ端末20が保持する情報を応答生成サーバ10に送信する(ステップS5)。なお、ユーザ端末20のテキストデータ送信部25cは、発話のテキストデータ、ユーザが発話した過去3回分の発話情報のほかに、ユーザ端末20の現在位置を示す位置情報、過去にAPIサーバを利用した利用履歴に関する利用履歴などを応答生成サーバ10に送信する。
【0030】
続いて、応答生成サーバ10の取得部12aが、発話のテキストデータやユーザ端末20が保持する情報を受け付けると、選択部12bは、発話情報に含まれる単語のうち、同一の読みで異なる意味の単語の候補が複数ある場合、同一の文字で異なる意味の異なる意味の単語の候補が複数ある場合、または、同一の読みおよび同一の文字で異なる意味の異なる意味の単語の候補が複数ある場合には、発話のテキストデータとユーザ端末20が記憶する情報とを用いて、複数の単語の候補から一つの単語を選択する。例えば、選択部12bは、発話のテキストデータに日本橋が含まれており、日本橋の候補地が日本橋(大阪)、日本橋(東京都)、日本橋(水上バス)と複数ある場合には、各候補地と現在位置との距離をそれぞれ比較し、最も近い候補地を選択する。
【0031】
そして、応答生成サーバ10の要求生成部12cは、応答の生成に必要なデータの検索条件を指定し、APIサーバ40に対してデータの要求を行う(ステップS6)。具体的には、応答生成サーバ10の要求生成部12cは、選択部12bに選択された単語として発話情報に含まれる単語の意味を特定し、発話情報とユーザ端末20が記憶する情報とを用いて、サービス提供サーバに対して情報を要求する検索条件を生成し、該検索条件をAPIサーバ40に送信する。例えば、応答生成サーバ10の要求生成部12cは、検索条件として、「FROM=日本橋(大阪)TO=日本橋(東京都)」をAPIサーバ40に送信する。
【0032】
続いて、応答生成サーバ10の要求生成部12cは、検索条件をAPIサーバ40に送信して応答生成に必要なデータを要求する(ステップS7)。そして、APIサーバ40は、受信した検索条件に従って、XMLデータを取得する処理を行う(ステップS8)。例えば、応答生成サーバ10は、出発地「日本橋(大阪)」、目的地「日本橋(東京都)」で経路探索する検索条件を受け付けると、日本橋(大阪)から日本橋(東京都)までの乗り換え情報や、電車賃に関する情報などを取得する処理を行う。そして、APIサーバ40は、取得したXMLデータを応答生成サーバ10に送信する(ステップS9)。
【0033】
そして、応答生成サーバ10の変換部12dは、APIサーバ40からXMLデータを受信すると、予め記憶されたフォーマットに従って、XMLデータからデータを抽出し、XMLデータをHTMLデータに変換する(ステップS10)。例えば、応答生成サーバ10の変換部12dは、路線検索に関するXMLデータを受信すると、乗り換えに関するフォーマットに従って、XMLデータから駅名や乗車時間の情報を抽出し、XMLデータをHTMLデータに変換する。続いて、応答生成サーバ10の音声合成指示部12eは、応答発話表示用のテキストデータを音声合成サーバ50に送信する(ステップS11)。そして、音声合成サーバ50は、応答発話表示用のテキストデータから音声を合成する音声合成処理を行って、応答発話用の中間表記を生成する(ステップS12)。そして、音声合成サーバ50は、応答発話用の中間表記を応答生成サーバ10に送信する(ステップS13)。
【0034】
続いて、応答生成サーバ10の応答生成部12fは、応答発話用の中間表記と応答発話表示用のテキストデータとHTMLデータとをユーザ端末20に送信する(ステップS14)。そして、ユーザ端末20のHTMLデータ受信部25dは、受信した応答発話表示用のテキストデータの履歴情報とHTMLデータの履歴情報とを格納する(ステップS15)。続いて、ユーザ端末20の表示制御部25eは、応答発話用の中間表記を用いて、応答の音声を出力するとともに、応答発話表示用のテキストデータとHTMLデータとを用いて、応答内容を表示する(ステップS16)。
【0035】
〔1−2(2).作用(応答生成サーバ)〕
次に、
図7を用いて、第1の実施形態に係る応答生成サーバ10による処理手順について説明する。
図7は、第1の実施形態に係る応答生成サーバ10による処理の手順を示すフローチャートである。
図7に例示するように、応答生成サーバ10の取得部12aは、ユーザが今回発話したテキストデータ及びユーザが発話した過去の発話の履歴情報等を受信したか否かを判定する(ステップS101)。なお、取得部12aは、今回発話されたテキストデータ、ユーザが発話した過去3回分の発話情報の他にも、ユーザ端末20の現在位置を示す位置情報、過去にAPIサーバを利用した利用履歴に関する利用履歴などを受信する。
【0036】
そして、取得部12aは、ユーザにより今回発話されたテキストデータ及び履歴情報等を受信したと判定すると(ステップS101肯定)、取得部12aは、受信したテキストデータから発話の意味理解処理を行う(ステップS102)。例えば、取得部12aは、意味理解処理として、ユーザにより今回発話されたテキストデータ「日本橋から日本橋まで」である場合には、出発地パラメータが「日本橋」であり目的地パラメータが「日本橋」である乗り換え情報を検索する発話情報「PRAM_FROM:日本橋 TO=日本橋」に変換する。
【0037】
そして、選択部12bは、発話情報に含まれる単語のうち、異なる意味の単語の候補が複数ある場合には、記憶部13に記憶されたユーザ辞書から読みを取得する(ステップS103)。上記の例では、「PRAM_FROM:日本橋 TO=日本橋」に含まれる二つの「日本橋」のそれぞれの読みとして「にっぽんばし」、「にほんばし」を取得し、検索条件「PRAM_FROM:日本橋 TO=日本橋」を「PRAM_FROM:にっぽんばし TO=にほんばし」に変換する。
【0038】
そして、選択部12bは、サーバ辞書から読みをキーにして候補地を取得する(ステップS104)。
図4の例を用いて説明すると、選択部12bは、読みが「にっぽんばし」の候補地として、「日本橋(大阪)」を取得する。また、選択部12bは、読みが「にほんばし」の候補地として、「日本橋(東京都)」と「日本橋(水上バス)」とを取得する。ここで、選択部12bは、各候補地について、それぞれ位置情報をサーバ辞書から取得する。
【0039】
そして、選択部12bは、取得した候補地が複数であるか否かを判定する(ステップS105)。この結果、選択部12bは、取得した候補地が複数である場合には(ステップS105肯定)、候補地と現在地の距離を取得する(ステップS106)。例えば、選択部12bは、上述した例では、読みが「にほんばし」の候補地として、二つの候補地(「日本橋(東京都)」と「日本橋(水上バス)」)があるので、候補地が複数あると判定し、現在地と日本橋(東京都)との距離、および、現在地と日本橋(水上バス)との距離をそれぞれ取得する。
【0040】
そして、選択部12bは、各候補地と現在地との距離を取得し、各距離を比較した結果、現在地との距離が最も短い候補地を選択する(ステップS107)。上記の例において、例えば、選択部12bは、現在地と日本橋(東京都)との距離と、現在地と日本橋(水上バス)との距離とを比較し、現在地と日本橋(東京都)との距離の方が短かった場合には、ユーザが発話した「にほんばし」については、「日本橋(東京都)」であるものと推定し、「日本橋(東京都)」を選択する。
【0041】
つまり、ユーザの発話に含まれる地名のうち候補地が複数あるような地名の場合には、現在地とより近い候補地をユーザとより密接に関係する地名であると推定し、現在地との距離が最も短い候補地を選択することで、異音同字、同音異字、同音同字の地名が複数存在する場合であっても、ユーザに発話の意図を明確にすることができる。なお、現在地との距離が最も短い候補地を選択する場合に限定されることはなく、現在地との距離が最も遠い候補地を選択するようにしてもよい。また、現在地について複数の候補がある場合には、現在地との距離が最も遠い候補地を選択し、目的地について複数の候補がある場合には、現在地との距離が最も近い候補地を選択するようにしてもよい。
【0042】
そして、要求生成部12cは、選択された候補地に基づいて、検索条件を生成し、APIサーバ40に応答に必要なデータの検索を指示する(ステップS108)。例えば、要求生成部12cは、検索条件として、出発地パラメータ「日本橋(大阪)」から目的地パラメータ「日本橋(東京都)」までの乗り換え情報を要求する検索条件を生成し、路線APIサーバ41に応答に必要なデータの検索を指示する。また、ステップS105において、選択部12bは、取得した候補地が複数でない場合には(ステップS105否定)、選択された候補地に基づいて、検索条件を生成し、APIサーバ40に応答に必要なデータの検索を指示する(ステップS108)。
【0043】
その後、応答生成サーバ10は、APIサーバ40からXMLデータを受信してXMLデータをHTMLデータに変換し、音声合成サーバ50から応答発話用の中間表記を受信した後に、応答発話用の中間表記と応答発話表示用のテキストデータとHTMLデータとをユーザ端末20に送信する(
図6のステップS10〜S14参照)。
【0044】
そして、ユーザ端末20の表示制御部25eは、応答発話用の中間表記と応答発話表示用のテキストデータとHTMLデータとを受信すると、応答発話用の中間表記を用いて、応答の音声を出力するとともに、応答発話表示用のテキストデータとHTMLデータとを用いて、応答内容を表示する。ここで、
図8の例を用いて、ユーザの発話に対してユーザ端末20の表示部24に表示される応答画像の一例を説明する。
図8は、第1の実施形態に係るユーザ端末20の応答画像の一例を説明するための図である。
【0045】
まず、
図8の例を用いて説明すると、応答画像の上部に、発話用のテキストデータ(音声認識サーバ30から受信したデータ)が表示され、発話用のテキストデータの下部に乗り換え情報に関するHTMLデータが表示されている。具体的には、
図8に例示するように、発話用のテキストデータとして「日本橋から日本橋」が表示されている。また、発話用のテキストデータの下部に、乗り換え情報に関するHTMLデータとして、出発地「日本橋(大阪)」から目的地「日本橋(東京都)」までの乗り換え情報が表示されている。なお、
図8の例では、乗り換え情報の一部のみが表示されているものとし、ユーザの操作により画面をスクロールさせることで、表示されていない乗り換え情報についても閲覧することができる。
【0046】
ここで、
図8の例では、ユーザが「日本橋(にっぽんばし)から日本橋(にほんばし)」と発話し、上述したように、日本橋と同音同字および異音同字の地名が複数あることから、今回の発話だけでは、どの日本橋を意図しているかが分からない。このような場合に、第1の実施の形態に係る応答生成サーバ10では、例えば、読みから地名の候補を取得するとともに、地名の候補が複数ある場合には、現在地との距離が近い地名の候補を選択することで、出発地のパラメータが「日本橋(大阪)」であり、目的地のパラメータ「日本橋(東京都)」であることを推定し、出発地「日本橋(大阪)」から目的地「日本橋(東京都)」までの乗り換え情報を生成する。このため、ユーザ端末20が出発地「日本橋(大阪)」とし目的地「日本橋(東京都)」とした乗り換え情報を表示させることができる結果、発話の内容に異音同字、同音異字、同音同字の単語が複数存在する場合であっても、ユーザの発話の意図を的確に把握し、適切な応答を行うことが可能である。
【0047】
〔1−3.効果〕
上述してきたように、第1の実施形態に係る応答生成サーバ10は、ユーザが発話した情報である発話情報と、ユーザ端末20が保持する情報とを取得し、取得された発話情報に含まれる単語のうち、異なる意味の単語の候補が複数ある場合には、発話情報とユーザ端末20が保持する情報とを用いて、複数の単語の候補から一つの単語を選択する。そして、応答生成サーバ10は、選択された単語の意味で特定した発話情報を用いて、サービスに対する検索条件を生成し、検索条件に基づいて取得したサービス情報を用いて、発話情報に対する応答情報を生成する。
【0048】
これにより、第1の実施形態に係る応答生成サーバ10は、ユーザが発話した内容に含まれる単語のうち、異なる意味の単語の候補が複数ある場合であっても、発話情報とユーザ端末20が保持する情報(例えば、位置情報等)とを用いて、単語の意味を適切に推定し、ユーザの発話の意図を的確に把握し、適切な応答を行うことを可能にする。
【0049】
また、第1の実施形態に係る応答生成サーバ10は、取得された発話情報に含まれる単語のうち、同一の読みで異なる意味の単語の候補が複数ある場合、同一の文字で異なる意味の異なる意味の単語の候補が複数ある場合、または、同一の読みおよび同一の文字で異なる意味の異なる意味の単語の候補が複数ある場合には、発話情報とユーザ端末20が保持する情報とを用いて、複数の単語の候補から一つの単語を選択する。
【0050】
これにより、第1の実施形態に係る応答生成サーバ10は、ユーザが発話した内容に含まれる単語のうち、異音同字、同音異字、同音同字の単語が複数存在する場合であっても、発話情報とユーザ端末20が保持する情報(例えば、位置情報等)とを用いて、単語の意味を適切に推定し、ユーザの発話の意図を的確に把握し、適切な応答を行うことを可能にする。
【0051】
また、第1の実施形態に係る応答生成サーバ10は、ユーザ端末20が保持する情報として、該ユーザ端末20の位置情報、過去の発話情報に関する履歴情報、過去のサービスの利用履歴に関する利用履歴情報のいずれか一つまたは複数を取得し、取得された発話情報に含まれる単語のうち、異なる意味の単語の候補が複数ある場合には、取得されたユーザ端末20の位置情報、過去の発話情報に関する履歴情報、過去のサービスの利用履歴に関する利用履歴情報のいずれか一つまたは複数を用いて、複数の単語の候補から一つの単語を選択する。
【0052】
これにより、第1の実施形態に係る応答生成サーバ10は、ユーザ端末20の位置情報、過去の発話情報に関する履歴情報、過去にAPIサーバ40を利用した利用履歴に関する利用履歴情報を用いて、単語の意味をより適切に推定することができる結果、ユーザの発話の意図を的確に把握し、適切な応答を行うことを可能にする。
【0053】
また、第1の実施形態に係る応答生成サーバ10は、取得された発話情報に含まれる地名のうち、場所の異なる複数の地名の候補がある場合には、取得された位置情報を用いて、該地名の候補のうち、ユーザ端末20の位置と最も近い地名を選択する。
【0054】
これにより、第1の実施形態に係る応答生成サーバ10は、ユーザの発話に含まれる地名のうち候補地が複数あるような地名の場合には、現在地とより近い候補地をユーザとより密接に関係する地名であると推定し、現在地との距離が最も短い候補地を選択することで、異音同字、同音異字、同音同字の地名が複数存在する場合であっても、ユーザに発話の意図を明確にすることを可能にする。
【0055】
(第2の実施形態)
本願に係る応答生成装置、応答生成方法および応答生成プログラムは、上述した第1の実施形態以外にも種々の異なる形態にて実施されてよい。第2の実施形態では、他の実施形態について説明する。
【0056】
〔2−1.単語の意味推定〕
上述した第1の実施形態においては、地名について複数の候補地がある場合については、ユーザ端末20の位置情報を用いて、現在地との距離が最も短い候補地を選択する場合について説明した。しかしながら、実施形態はこれに限定されるものではなく、例えば、発話情報に含まれる単語のうち、異なる意味の単語の候補が複数ある場合には、過去の発話情報に関する履歴情報を用いて、過去の発話に含まれる単語を選択してもよい。つまり、ユーザの発話に含まれる単語のうち候補が複数ある単語について、過去にユーザが発話したことがある場合には、過去にユーザが発話した際の単語の意味と同じであると推定し、過去の発話に含まれる単語を選択する。
【0057】
また、例えば、発話情報に含まれる単語のうち、異なる意味の単語の候補が複数ある場合には、過去にAPIサーバ40を利用した利用履歴に関する利用履歴情報を用いて、APIサーバ40から取得した情報に含まれる単語を選択するようにしてもよい。つまり、ユーザの発話に含まれる単語のうち候補が複数ある単語について、過去にユーザが閲覧したり、検索したりした単語の意味と同じであると推定し、APIサーバ40から取得した情報に含まれる単語を選択する。このように、履歴情報や利用履歴情報を用いて、単語の意味をより適切に推定することができる結果、ユーザの発話の意図を的確に把握し、適切な応答を行うことを可能にする。
【0058】
〔2−2.履歴情報〕
上述した第1の実施形態においては、応答生成サーバ10が履歴情報をユーザ端末20から受信する場合を説明した。しかしながら、実施形態はこれに限定されるものではなく、応答生成サーバ10が履歴情報を管理するようにしてもよい。例えば、応答生成サーバ10は、ユーザ端末20を一意に識別する識別情報などを用いて、ユーザ端末20ごとに履歴情報を管理するようにしてもよい。
【0059】
〔2−3.その他〕
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0060】
また、上述した応答生成サーバ10は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【0061】
また、特許請求の範囲に記載した「手段」は、「部(section、module、unit)」や「回路」などに読み替えることができる。例えば、応答生成手段は、応答生成部や応答生成回路に読み替えることができる。