(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】対話装置、方法、及びプログラム
(51)【国際特許分類】
G06F 16/9038 20190101AFI20240213BHJP
【FI】
G06F16/9038
(21)【出願番号】P 2020152168
(22)【出願日】2020-09-10
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】小林 優佳
(72)【発明者】
【氏名】岩田 憲治
(72)【発明者】
【氏名】吉田 尚水
【審査官】長 由紀子
(56)【参考文献】
【文献】米国特許出願公開第2018/0101616(US,A1)
【文献】特開2020-004217(JP,A)
【文献】米国特許出願公開第2010/0169304(US,A1)
【文献】中国特許出願公開第111046141(CN,A)
【文献】西崎 博光 中川 聖一,キーワードの音声入力によるニュース音声の検索法,情報処理学会研究報告 ,日本,社団法人情報処理学会,1999年12月21日,第99巻 第108号,pp.91-96
【文献】増村 亮 外3名,WWWを利用した有効な検索クエリ構成による言語モデル教師なし適応効果,日本音響学会 2009年 秋季研究発表会講演論文集CD-ROM [CD-ROM],社団法人日本音響学会,2009年09月08日,pp.51-54
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-958
(57)【特許請求の範囲】
【請求項1】
複数のデータベースのうち、
ユーザが指示した1つのデータベースを指定する指定部と、
前記ユーザが入力したテキスト情報を取得する取得部と、
前記テキスト情報から検索に必要な検索キーワードを抽出する抽出部と、
前記検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索する検索部と、
前記指定されたデータベースにおいて前記検索キーワードに合致したデータ件数である第1の検索件数
が0件であり、
かつ前記他のデータベースにおいて前記検索キーワードに合致したデータ件数である第2の検索件数
が1件以上である場合、前記指定されたデータベースとは異なるデータベースを前記ユーザに問い合わせる応答を生成する生成部と、
前記生成された応答を前記ユーザに出力する出力部と、
を具備する対話装置。
【請求項2】
前記生成部は、前記第1の検索件数が0件であり、かつ前記第2の検索件数が0件である場合、前記検索キーワードとは異なるキーワードを問い合わせる応答を生成する、
請求項1に記載の対話装置。
【請求項3】
前記生成部は、前記第1の検索件数が0件であり、かつ前記第2の検索件数が1件以上である場合、前記第2の検索件数を回答する応答を生成する、
請求項1又は請求項2に記載の対話装置。
【請求項4】
前記生成部は、前記第1の検索件数が1件以上であり、かつ閾値以下である場合、前記第1の検索件数を回答する応答を生成する、
請求項1から請求項
3のいずれか1項に記載の対話装置。
【請求項5】
前記生成部は、前記第1の検索件数が1件以上であり、かつ閾値より大きい場合、前記第1の検索件数の絞り込みに必要な絞込キーワードを問い合わせる応答を生成する、
請求項1から請求項
4のいずれか1項に記載の対話装置。
【請求項6】
前記複数のデータベースはそれぞれ、前記検索キーワードに関連する複数のデータ項目が定義されたデータテーブルを含み、
前記対話装置は、
前記複数のデータベースに含まれるそれぞれのデータテーブルにおいて、前記複数のデータ項目それぞれの平均情報量を計算し、かつ前記複数のデータベースそれぞれに設定される重み付けを用いて、前記複数のデータ項目それぞれの平均情報量について加重平均を計算する計算部と、
前記複数のデータ項目のうち、前記平均情報量の加重平均が最も大きいデータ項目を前記絞込キーワードとして決定する決定部と、
をさらに具備する請求項
5に記載の対話装置。
【請求項7】
前記ユーザが入力した音声情報を音声認識してテキスト情報に変換する認識部と、
をさらに具備し
、
前記抽出部は、前記変換されたテキスト情報から複数の検索キーワードを抽出し、
前記検索部は、前記複数の検索キーワードを用いて、前記指定されたデータベースと、前記他のデータベースとを検索し、
前記生成部は、前記指定されたデータベースにおける前記複数の検索キーワードの検索件数が0件であり、かつ前記他のデータベースにおける前記複数の検索キーワードの検索件数が1件以上である場合、前記複数の検索キーワードのうち、前記他のデータベース
における検索件数の総和が最も大きい検索キーワードを正解キーワードとして、前記他のデータベースにおける前記正解キーワードの検索件数を回答する応答を生成する、
請求項1から請求項
6のいずれか1項に記載の対話装置。
【請求項8】
複数のデータベースのうち、1つのデータベースを指定する指定部と、
ユーザが入力した音声情報を音声認識してテキスト情報に変換する認識部と、
前記変換されたテキスト情報から複数の検索キーワードを抽出する抽出部と、
前記複数の検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索する検索部と、
前記指定されたデータベースにおける前記複数の検索キーワードの検索件数が0件であり、かつ前記他のデータベースにおける前記複数の検索キーワードの検索件数が1件以上である場合、前記複数の検索キーワードのうち、前記他のデータベースにおける検索件数の総和が最も大きい検索キーワードを正解キーワードとして、前記他のデータベースにおける前記正解キーワードの検索件数を回答する応答を生成する生成部と、
前記生成された応答を前記ユーザに出力する出力部と、
を具備する対話装置。
【請求項9】
複数のデータベースのうち、
ユーザが指示した1つのデータベースを指定し、
前記ユーザが入力したテキスト情報を取得し、
前記テキスト情報から検索に必要な検索キーワードを抽出し、
前記検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索し、
前記指定されたデータベースにおいて前記検索キーワードに合致したデータ件数である第1の検索件数
が0件であり、
かつ前記他のデータベースにおいて前記検索キーワードに合致したデータ件数である第2の検索件数
が1件以上である場合、前記指定されたデータベースとは異なるデータベースを前記ユーザに問い合わせる応答を生成し、
前記生成された応答を前記ユーザに出力する、
対話方法。
【請求項10】
複数のデータベースのうち、1つのデータベースを指定し、
ユーザが入力した音声情報を音声認識してテキスト情報に変換し、
前記変換されたテキスト情報から複数の検索キーワードを抽出し、
前記複数の検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索し、
前記指定されたデータベースにおける前記複数の検索キーワードの検索件数が0件であり、かつ前記他のデータベースにおける前記複数の検索キーワードの検索件数が1件以上である場合、前記複数の検索キーワードのうち、前記他のデータベースにおける検索件数の総和が最も大きい検索キーワードを正解キーワードとして、前記他のデータベースにおける前記正解キーワードの検索件数を回答する応答を生成し、
前記生成された応答を前記ユーザに出力する、
対話方法。
【請求項11】
コンピュータに、
複数のデータベースのうち、
ユーザが指示した1つのデータベースを指定する指定機能と、
前記ユーザが入力したテキスト情報を取得する取得機能と、
前記テキスト情報から検索に必要な検索キーワードを抽出する抽出機能と、
前記検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索する検索機能と、
前記指定されたデータベースにおいて前記検索キーワードに合致したデータ件数である第1の検索件数
が0件であり、
かつ前記他のデータベースにおいて前記検索キーワードに合致したデータ件数である第2の検索件数
が1件以上である場合、前記指定されたデータベースとは異なるデータベースを前記ユーザに問い合わせる応答を生成する生成機能と、
前記生成された応答を前記ユーザに出力する出力機能と、
を実現させ
る対話プログラム。
【請求項12】
コンピュータに、
複数のデータベースのうち、1つのデータベースを指定する指定機能と、
ユーザが入力した音声情報を音声認識してテキスト情報に変換する認識機能と、
前記変換されたテキスト情報から複数の検索キーワードを抽出する抽出機能と、
前記複数の検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索する検索機能と、
前記指定されたデータベースにおける前記複数の検索キーワードの検索件数が0件であり、かつ前記他のデータベースにおける前記複数の検索キーワードの検索件数が1件以上である場合、前記複数の検索キーワードのうち、前記他のデータベースにおける検索件数の総和が最も大きい検索キーワードを正解キーワードとして、前記他のデータベースにおける前記正解キーワードの検索件数を回答する応答を生成する生成機能と、
前記生成された応答を前記ユーザに出力する出力機能と、
を実現させる対話プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、対話装置、方法、及びプログラムに関する。
【背景技術】
【0002】
一般的に、対話装置はユーザが入力した自然文等のテキスト情報から、検索に必要な検索キーワードを抽出し、抽出した検索キーワードを用いてデータベースを検索し、検索した結果に応じてユーザに応答を出力する。検索対象となるデータベースは、1つ以上のデータベースであり、例えば複数のデータベース機能を統合した1つのデータベースや、互いに独立した複数のデータベースを含む。具体的には、対話装置はユーザ等が指定した1つ以上のデータベースを検索する。
【0003】
第一に、指定された1つのデータベースを対話装置が検索する場合、指定されていない他のデータベースでの検索結果を考慮した応答を出力することができない。例えば、ある検索キーワードによる特定のデータベースでの検索件数が0件である場合、対話装置は更なる検索を行うことができず、続けて検索件数の絞り込みに用いるべき他の検索キーワードや他のデータベースを提示することができない。第二に、指定された複数のデータベースを対話装置が検索する場合、複数のデータベースから得られた複数の検索結果のうち、どの検索結果を優先的に利用して応答を出力するかを決定することができない。したがって、指定された1つのデータベースにおける検索結果を優先的に利用しつつ、当該検索結果と、指定されていない他のデータベースにおける検索結果とを統合した応答を出力する対話装置が望まれる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、柔軟な対話を進めることである。
【課題を解決するための手段】
【0006】
本実施形態に係る対話装置は、指定部と、取得部と、抽出部と、検索部と、生成部と、出力部とを含む。指定部は、複数のデータベースのうち、1つのデータベースを指定する。取得部は、ユーザが入力したテキスト情報を取得する。抽出部は、前記テキスト情報から検索に必要な検索キーワードを抽出する。検索部は、前記検索キーワードを用いて、前記指定されたデータベースと、前記複数のデータベースのうち前記指定されたデータベース以外の他のデータベースとを検索する。生成部は、前記指定されたデータベースにおいて前記検索キーワードに合致したデータ件数である第1の検索件数と、前記他のデータベースにおいて前記検索キーワードに合致したデータ件数である第2の検索件数とに応じて応答を生成する。出力部は、前記生成された応答を前記ユーザに出力する。
【図面の簡単な説明】
【0007】
【
図1】第1の実施形態に係る対話装置の構成例を示すブロック図。
【
図2】第1の実施形態に係る対話装置の動作例を示すフロー図。
【
図3】絞込キーワードの決定に関する詳細を示すフロー図。
【
図4】複数のデータベースに格納されるデータテーブルの一例を示す図。
【
図5】複数のデータベースそれぞれのデータ件数の一例を示す図。
【
図6】第2の実施形態に係る対話装置の構成例を示すブロック図。
【
図7】第2の実施形態に係る対話装置の動作例を示すフロー図。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら本実施形態に係る対話装置、方法、及びプログラムについて説明する。以下の実施形態では、同一の参照符号を付した部分は同様の動作を行うものとして、重複する説明を適宜、省略する。以下、一実施形態について図面を用いて説明する。
【0009】
(第1の実施形態)
第1の実施形態に係る対話装置1の構成例について
図1を参照して説明する。
対話装置1は、ユーザが入力した自然文等のテキスト情報から、検索に必要な検索キーワードを抽出し、抽出した検索キーワードを用いて複数のデータベース2を検索し、検索した結果に応じてユーザに応答を出力する装置である。具体的には、対話装置1はタスク指向型の対話装置であり、サーバ等に実装されることで対話専用のハードウェアとして実装されてもよいし、又はアプリケーションプログラム等のソフトウェアとして実装されてもよい。本実施形態において、対話装置1は、処理回路11、メモリ12、表示装置13、入力インタフェース14、及び通信インタフェース15を含む。各構成部は、バスを通じて互いに通信可能に接続される。なお、各構成部は個々のハードウェアにより実装されなくともよい。例えば、各構成部のうち少なくとも2つが1つのハードウェアにより実装されてもよい。
【0010】
また、対話装置1は複数のデータベース2とネットワークを介して通信可能に接続される。なお、対話装置1、データベース2、及びネットワークを含むシステム全体は、対話システム100とも呼ぶ。
【0011】
処理回路11は、対話装置1の動作を制御する。処理回路11は、ハードウェアとしてCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPU(Floating Point Unit)等のプロセッサを有する。処理回路11は、プロセッサを介してメモリ12に展開されたプログラムを実行することで、各プログラムに対応する各部(指定部111、取得部112、抽出部113、検索部114、判定部115、生成部116、出力部117、計算部118、決定部119)を実行する。なお、各部は単独のプロセッサから成る処理回路により実装されなくともよい。例えば、各部は複数のプロセッサを組み合わせた処理回路により実装されてもよい。
【0012】
指定部111は、複数のデータベースのうち、1つのデータベースを指定する。
取得部112は、ユーザが入力したテキスト情報を取得する。
抽出部113は、テキスト情報から検索に必要な検索キーワードを抽出する。
検索部114は、検索キーワードを用いて、指定されたデータベースと、複数のデータベースのうち指定されたデータベース以外の他のデータベースとを検索する。
判定部115は、各種命題の真偽を判定する。
生成部116は、指定されたデータベースにおいて検索キーワードに合致したデータ件数である第1の検索件数と、他のデータベースにおいて検索キーワードに合致したデータ件数である第2の検索件数とに応じて応答を生成する。
出力部117は、生成された応答をユーザに出力する。
計算部118は、複数のデータベースに含まれるそれぞれのデータテーブルにおいて、複数のデータ項目それぞれの平均情報量を計算する。また、計算部118は、複数のデータベースそれぞれに設定される重み付けを用いて、複数のデータ項目それぞれの平均情報量について加重平均を計算する。
決定部119は、複数のデータ項目のうち、平均情報量の加重平均が最も大きいデータ項目を絞込キーワードとして決定する。
【0013】
メモリ12は、処理回路11が使用するデータやプログラム等の情報を記憶する。メモリ12は、ハードウェアとしてRAM(Random Access Memory)等の半導体メモリ素子を有する。なお、メモリ12は、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク)、光磁気ディスク(MO)、光学ディスク(CD、DVD、Blu-ray(登録商標))、フラッシュメモリ(USBフラッシュメモリ、メモリカード、SSD)、磁気テープ等の外部記憶装置との間で情報を読み書きする駆動装置であってもよい。なお、メモリ12の記憶領域は、対話装置1内部にあってもよいし、外部記憶装置にあってもよい。
【0014】
表示装置13は、処理回路11が生成したデータやメモリ12に格納されるデータ等の情報を表示する。表示装置13として、例えば、ブラウン管(CRT:Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機ELディスプレイ(OELD:Organic Electro-Luminescence Display)、及びタブレット端末等のディスプレイが使用可能である。
【0015】
入力インタフェース14は、対話装置1を利用するユーザからの入力を受け付け、受け付けた入力を電気信号に変換して処理回路11に出力する。入力インタフェース14として、マウス、キーボード、トラックボール、スイッチ、ボタン、ジョイスティック、タッチパッド、タッチパネルディスプレイ、マイク等の物理的な操作部品が使用可能である。なお、入力インタフェース14は、対話装置1とは別体である外部の入力装置から入力を受け付け、受け付けた入力を電気信号に変換して処理回路11に出力する装置であってもよい。
【0016】
通信インタフェース15は、データベース2との間でネットワークを介してデータを送受信する。通信インタフェース15と外部装置との間では任意の通信規格が使用可能である。
【0017】
データベース2は、各種データを格納する。データベース2は、例えばサーバに格納されるデータファイルとして実装されてもよい。本実施形態において、データベース2は、複数のリレーショナルデータベース(RDB)を含み、複数のデータベース2はそれぞれ、検索キーワードに関連する複数のデータ項目が定義されたデータテーブルを含むものとする。データベース2は、例えばデータベースA、データベースB、及びデータベースCを含む。また、データベース2はSQL(Structured Query Language)等のデータベース言語に則したクエリにより検索されるものとする。
【0018】
第1の実施形態に係る対話装置の動作例について
図2を参照して説明する。
ステップS101において、指定部111は、複数のデータベース2のうち、1つのデータベースを指定する。例えば、対話装置1はユーザがキーボード等の入力インタフェース14を介して入力した指示を受け付けて、当該指示に対応するデータベースを指定する。他にも、対話装置1は、デフォルトのデータベースを指定してもよいし、ユーザのプロフィール等に応じて自動でデータベースを指定してもよい。すなわち、データベースの指定方法としては、任意の方法が適用可能である。なお、対話が終了するまでは一度指定されたデータベースを保持して再度問い合わせないものとする。
【0019】
ステップS102において、取得部112は、ユーザが入力したテキスト情報を取得する。例えば、対話装置1はユーザがキーボード(キー入力)、タッチパッド及びタッチパネルディスプレイ(手書き認識による入力)、ヘッドセット及びAIスピーカー等のマイク(音声認識による入力)等の入力インタフェース14を介して入力したテキスト情報を取得する。取得されたテキスト情報は、メモリ12に格納される。
【0020】
ステップS103において、抽出部113は、テキスト情報から検索に必要な検索キーワードを抽出する。検索キーワードの抽出には、第一の抽出方法としては、抽出対象となる複数のキーワードを含むリストを用意しておき、取得されたテキスト情報に当該リスト上のいずれかのキーワードが含まれていれば、該当するキーワードを抽出してもよい。第一の抽出方法は、例えば「抵抗器」「コンデンサ」「トランジスタ」のような複数のキーワードを用意しておき、取得されたテキスト情報が「抵抗器を探して」であれば、当該複数のキーワードのうち「抵抗器」がテキスト情報に含まれるため、「抵抗器」を抽出する。
【0021】
第二の抽出方法としては、抽出対象となるキーワードを含む複数の文章のリストを用意しておき、取得されたに当該リスト上のいずれかの文章が含まれていれば、当該文章に含まれるキーワードを抽出してもよい。第二の抽出方法は、例えば「〇〇を探して」「△△を検索して」「□□はありますか」のような複数の文章を用意しておき、取得されたテキスト情報が「抵抗器を探して」であれば、〇〇の部分に対応する「抵抗器」を抽出する。
【0022】
第三の抽出方法としては、抽出対象となるキーワードが含まれる文章と、当該文章のうち抽出対象となるキーワード(ラベル)との組を大量に用意しておき、当該組を学習データとして用いて機械学習モデルを作成し、当該機械学習モデルによって抽出してもよい。第三の抽出方法は、例えば「抵抗器を探して」という文章と、当該文章に対するラベルである「抵抗器」との組、「コンデンサを検索して」という文章と、当該文章に対するラベルである「コンデンサ」との組、「トランジスタはありますか」という文章と、当該文章に対するラベルである「トランジスタ」との組、のように複数の組を学習データとして用意し、学習用モデルに文章とラベルとの関係を学習させることで機械学習モデルを作成する。当該機械学習モデルを用いて、取得されたテキスト情報が「抵抗器を探して」であれば、学習した文章とラベルとの関係に基づいて「抵抗器」を抽出する。すなわち、検索キーワードの抽出方法としては任意の方法が適用可能である。抽出された検索キーワードは、メモリ12に格納される。
【0023】
ステップS104において、検索部114は、検索キーワードを用いて、指定されたデータベースと、複数のデータベース2のうち指定されたデータベース以外の他のデータベースとを検索する。例えば、対話装置1は、抽出された検索キーワードに基づいてSQLに基づくクエリを作成し、複数のデータベース2を検索する。クエリは、例えば「select * from databaseA where name = %抵抗器%」のように検索キーワードを含む命令文である。複数の検索結果は、検索されたデータベースごとに対応付けられてメモリ12に格納される。本実施形態において、検索結果はデータベース2において検索キーワードに合致したデータ件数であるとする。
【0024】
ステップS105において、判定部115は、指定されたデータベースにおいて検索キーワードに合致したデータ件数(第1の検索件数)が、0件であるか否かを判定する。0件であると判定された場合(ステップS105のYes)、ステップS106に進む。0件でない、すなわち1件以上であると判定された場合(ステップS105のNo)、ステップS109に進む。
【0025】
ステップS106において、判定部115は、指定されていない他のデータベースにおいて検索キーワードに合致したデータ件数(第2の検索件数)が、0件であるか否かを判定する。0件であると判定された場合(ステップS106のYes)、ステップS107に進む。0件でない、すなわち1件以上であると判定された場合(ステップS106のNo)、ステップS108に進む。
【0026】
ステップS107において、生成部116は、検索キーワードとは異なるキーワードを問い合わせる応答を生成する。本ステップまでに、当該検索キーワードでは指定されたデータベース、及び他のデータベースにおいて更なる検索を行えないことが判明しているため、対話装置1は「reject()」コマンドを生成する。本コマンドは、当該検索キーワードを受け付けられないことを示し、異なるキーワードを問い合わせる応答の一例である。生成された応答は、メモリ12に格納される。
【0027】
ステップS108において、生成部116は、指定されたデータベースとは異なるデータベースを問い合わせる応答を生成する。本ステップまでに、指定されたデータベースとは異なる他のデータベースを検索すればデータが見つかることが判明しているため、対話装置1は「request(db)」コマンドを生成する。本コマンドは、新たに指定される他のデータベースを問い合わせる応答の一例である。生成された応答は、メモリ12に格納される。あるいは、対話装置1は他のデータベースでの検索件数を回答する応答を生成してもよい。
【0028】
ステップS109において、判定部115は、指定されたデータベースにおいて検索キーワードに合致したデータ件数(第1の検索件数)が、閾値以下であるか否かを判定する。当該閾値は、ユーザが入力インタフェース14を介して入力した任意の値に設定されてもよいし、メモリ12にあらかじめ格納されている任意の値に設定されてもよい。閾値以下であると判定された場合(ステップS109のYes)、ステップS110に進む。閾値以下でない、すなわち閾値より大きいと判定された場合(ステップS109のNo)、ステップS111に進む。
【0029】
ステップS110において、生成部116は、指定されたデータベースでの検索件数を回答する応答を生成する。本ステップまでに、指定されたデータベースでの検索件数が閾値以下であることが判明しているため、対話装置1は「offer(contents)」コマンドを生成する。本コマンドは、指定されたデータベースでの検索件数を回答する応答の一例である。生成された応答は、メモリ12に格納される。
【0030】
ステップS111において、生成部116は、指定されたデータベースでの検索件数の絞り込みに必要な絞込キーワードを問い合わせる応答を生成する。本ステップまでに、指定されたデータベースでの検索件数が閾値より大きいことが判明しているため、対話装置1は「request(slot)」コマンドを生成する。本コマンドは、検索件数を絞り込むためのデータ項目(スロットとも呼ぶ)を問い合わせる応答の一例である。生成された応答は、メモリ12に格納される。なお、絞込キーワードは、問い合わせる対象となるデータ項目に相当し、当該絞込キーワードの決定に関する詳細なフローは、
図3に後述する。
【0031】
ステップS112において、出力部117は、生成された応答をユーザに出力する。対話装置1は、例えば生成されたコマンドを表示装置13に出力する。なお、生成された応答は機械が理解できる形式の情報(コマンド)であるため、対話装置1は人間が理解できる形式の情報(テキスト情報)に変換して出力してもよい。応答の変換には、第一の変換手法としては、「$name$の検索結果は$count$件です」のような複数の定型文をメモリ12に用意しておき、$name$に検索キーワードを、$count$に検索件数を埋め込むことで変換してもよい。第二の変換手法としては、あらかじめ検索キーワード、検索件数、及び生成される文章の組を大量に用意し、当該組を学習データとして用いて機械学習モデルを生成して、当該機械学習モデルによって出力してもよい。すなわち、変換方法としては任意の方法が適用可能である。その後、対話装置1は、テキスト情報に変換した応答を表示装置13に出力する。なお、ユーザは、表示装置13に出力された応答を見るため、応答はユーザに対して出力されるともいえる。
【0032】
例えば、対話装置1はステップS107において生成された「reject()」コマンドをメモリ12から取得し、「検索できませんでした。他のキーワードで検索してください」のような応答文に変換して表示装置13に出力する。また、対話装置1はステップS108において生成された「request(db)」コマンドをメモリ12から取得し、「東京事業所のデータベースでは検索できませんでした。他の事業所のデータベースを指定してください」のような応答文に変換して表示装置13に出力する。また、対話装置1はステップS110において生成された「offer(contents)」コマンドをメモリ12から取得し、「検索結果は10件です」のような応答文に変換して表示装置13に出力する、また、対話装置1はステップS111において生成された「request(slot)」コマンドをメモリ12から取得し、「〇〇(データ項目)を教えてください」のような応答文に変換して表示装置13に出力する。なお、slotには対話装置1が問い合わせるデータ項目が入り、例えばslotが電圧(voltage)であれば、request(voltage)コマンドとなる。この場合、対話装置1はrequest(voltage)コマンドをメモリ12から取得し、「電圧はいくつですか」のような応答文に変換して表示装置13に出力する。
【0033】
なお、本動作例に示した各ステップは、適宜順番の変更が可能である。例えば、ステップS101はステップS104より前のどの段階にあってもよい。また、ステップS105及びステップS106は互いに順番を入れ替えてもよい。
【0034】
絞込キーワードの決定に関する詳細について
図3を参照して説明する。
ステップS201において、計算部118は、複数のデータベース2に含まれるそれぞれのデータテーブルにおいて、複数のデータ項目それぞれのデータ件数を計算する。具体的には、対話装置1は指定されたデータベース及び指定されていない他のデータベースにおける複数のデータ項目それぞれにおいて、各データ項目の値ごとのデータ件数を計算する。
【0035】
例えば、複数のデータベース2に
図4に示すデータテーブル200が格納されているとする。データテーブル200は、電気部品に関するデータを格納し、データ項目として「部品ID」、「部品名」、及び「型番」を含む。部品IDは、個々のレコードに割り当てられる連番であり、0001から1ずつ増加した値が割り当てられる。部品名は、電気部品の名称であり、データ値として「抵抗器」、「コンデンサ」、及び「トランジスタ」を含む。型番は、各電気部品に固有の識別番号であり、データ値として「ABC」、「DEF」、及び「GHI」を含む。なお、同一の部品名であっても、型番が異なる場合もある。さらに、同一の型番であっても、部品名が異なる場合もある。また、同一のレコードが重複する場合もある。このように、データテーブル200には、部品名と型番とが対応付けられたレコード(データ)が複数格納されている。
【0036】
対話装置1は、「部品名」において「抵抗器」を持つデータ件数、「コンデンサ」を持つデータ件数、「トランジスタ」を持つデータ件数をそれぞれ計算する。同様に、対話装置1は「型番」において「ABC」を持つデータ件数、「DEF」を持つデータ件数、「GHI」を持つデータ件数をそれぞれ計算する。同様に、対話装置1は複数のデータベース2に含まれるそれぞれのデータテーブルにおいて計算する。計算結果として、複数のデータベース2それぞれのデータ件数は
図5に示す集計データテーブル300のように表される。
【0037】
ステップS202において、計算部118は、複数のデータベース2に含まれるそれぞれのデータテーブルにおいて、複数のデータ項目それぞれの平均情報量を計算する。各データ項目の平均情報量は、各データ項目における各データ値の件数の偏りを反映しており、平均情報量が高いほど、各データ値の件数の偏りが小さく均等であることを示す。このような性質から、平均情報量がより高いデータ項目はより多くの情報を含むため、検索件数の絞り込みに有用である。
【0038】
例えば、集計データテーブル300について複数のデータ項目それぞれの平均情報量を計算する場合を考える。平均情報量は以下の式により算出される。
【0039】
【数1】
H(S
j)はデータ項目(スロット)S
jにおける平均情報量を表す。各データ項目S
jは、複数の値V
iを有する。P(V
i)は、値V
iに関するデータ件数を、データ項目S
jに含まれる全てのデータ件数で除算して得られた数値である。
【0040】
集計データテーブル300において、数式(1)に基づいて複数のデータベース2ごとの各データ項目の平均情報量は以下のように求められる。
HA(P部品名)=0.477、HA(P型番)=0.439
HB(P部品名)=0.185、HB(P型番)=0.461
HC(P部品名)=0.346、HC(P型番)=0.415
なお、HA(P部品名)は、データベースAのデータ項目「部品名」に関する平均情報量を表す。
【0041】
ステップS203において、計算部118は、複数のデータベース2それぞれに設定される重み付けを用いて、複数のデータ項目それぞれの平均情報量について加重平均を計算する。具体的には、対話装置1は指定されたデータベースについて設定される重み付けを、他のデータベースに設定される重み付けよりも大きい値に設定する。
【0042】
例えば、集計データテーブル300の各データ項目の平均情報量について加重平均を計算する場合を考える。平均情報量の加重平均は以下の式により算出される。
【0043】
【数2】
H
allは平均情報量の加重平均を表す。W
iは複数のデータベース2ごとに設定される重み付けである。W
iは複数の値を有し、各値の総和は1とする。
【0044】
集計データテーブル300において、数式(2)に基づいて各データ項目の平均情報量の加重平均は以下のように求められる。なお、複数のデータベース2のうち、指定されたデータベースはデータベースAであり、指定されていない他のデータベースはデータベースB、及びデータベースCであるとする。
Hall(P部品名)=3/5*HA(P部品名)+1/5*HB(P部品名)+1/5*HC(P部品名)=0.392
Hall(P型番)=3/5*HA(P型番)+1/5*HB(P型番)+1/5*HC(P型番)=0.439
なお、データベースAの重み付けWA=3/5、データベースBの重み付けWB=1/5、データベースCの重み付けWC=1/5と設定している。
【0045】
ステップS204において、決定部119は、複数のデータ項目のうち、平均情報量の加重平均が最も大きいデータ項目を絞込キーワードとして決定する。各データ項目の平均情報量は、各データ値のデータ件数が均等であるほど大きいため、平均情報量がより大きいデータ項目では、ユーザが探すデータが含まれる確率が高い。上記の例では、Hall(P型番)がHall(P部品名)よりも大きいので、対話装置1はデータ項目「型番」を絞込キーワードとして決定する。なお、絞込キーワードは対話装置1が問い合わせるデータ項目(スロット)としてステップS112で用いられる。
【0046】
以上示した説明した第1の実施形態によれば、ユーザが指定したデータベースでの検索結果を重視しつつ、他のデータベースでの検索結果を考慮した応答を生成する。これにより、指定されたデータベースの検索件数が0件であっても、他のデータベースでの検索結果を考慮して柔軟な対話を進めることができる。また、指定されたデータベースの検索件数が1件以上かつ閾値よりも大きい場合、絞込キーワードとして問い合わせるデータ項目を、指定されたデータベースの検索結果を優先的に利用しつつ、さらに他のデータベースの検索結果を考慮して決定することができる。
【0047】
(第2の実施形態)
第2の実施形態に係る対話装置の構成例について、
図6を参照して説明する。第2の実施形態において、対話装置1はユーザが発話した音声情報から抽出された複数の検索キーワードのうち、最もユーザの発話内容に近い検索キーワード(正解キーワード)を決定する。なお、第2の実施形態に係る対話装置1の構成は、第1の実施形態の構成に加えて、処理回路11に認識部120を有する。
【0048】
認識部120は、音声情報を音声認識してテキスト情報に変換する。
【0049】
第2の実施形態に係る対話装置の動作例について、
図7を参照して説明する。
ステップS301において、指定部111は、複数のデータベースのうち、1つのデータベースを指定する。ステップS301はステップS101と同様である。
【0050】
ステップS302において、認識部120は、ユーザが音声により入力した音声情報を音声認識して、テキスト情報に変換する。具体的には、対話装置1はユーザがマイク等の入力インタフェース14を介して入力した音声情報を音声認識する。音声情報は、ユーザの発話を反映した音声信号であり、一定期間における音の振幅や周波数の時間変化に関する波形情報である。テキスト情報への変換には、一般的な音声認識処理に用いられている既存の技術が適用されればよく、例えば、音響モデルや言語モデルによる音声認識であってもよい。本実施形態において、対話装置1は音声認識の信頼度に応じて、複数の変換候補を含むテキスト情報に変換する。
【0051】
ステップS303において、取得部112は、変換されたテキスト情報を取得する。取得されたテキスト情報は、メモリ12に格納される。
【0052】
ステップS304において、抽出部113は、変換されたテキスト情報から複数の検索キーワードを抽出する。具体的には、対話装置1は、複数の変換候補を含むテキスト情報から各変換候補に対応する検索キーワードをそれぞれ抽出する。抽出された複数の検索キーワードは、メモリ12に格納される。
【0053】
ステップS305において、検索部114は、複数の検索キーワードを用いて、指定されたデータベースと、指定されていない他のデータベースとを検索する。ステップS305は、ステップS104と同様である。
【0054】
ステップS306において、判定部115は、指定されたデータベースにおいて複数の検索キーワードに合致したデータ件数が、0件であるか否かを判定する。0件であると判定された場合(ステップS306のYes)、ステップS307に進む。0件でない、すなわち1件以上であると判定された場合(ステップS306のNo)、ステップS310に進む。
【0055】
ステップS307において、判定部115は、指定されていない他のデータベースにおいて複数の検索キーワードに合致したデータ件数が、0件であるか否かを判定する。0件であると判定された場合(ステップS307のYes)、ステップS308に進む。0件でない、すなわち1件以上であると判定された場合(ステップS307のNo)、ステップS309に進む。
【0056】
ステップS308において、生成部116は、複数の検索キーワードとは異なるキーワードを問い合わせる応答を生成する。本ステップまでに、当該複数の検索キーワードでは指定されたデータベース、及び他のデータベースにおいて更なる検索を行えないことが判明しているため、対話装置1は「reject()」コマンドを生成する。本コマンドは、当該複数の検索キーワードを受け付けられないことを示し、異なるキーワードを問い合わせる応答の一例である。生成された応答は、メモリ12に格納される。
【0057】
ステップS309において、生成部116は、複数の検索キーワードのうち、他のデータベースでの検索件数の総和が最も大きい検索キーワードを正解キーワードとして、他のデータベースにおける正解キーワードの検索件数を回答する応答を生成する。本ステップまでに、指定されたデータベースでの検索件数が0件であり、他のデータベースでの検索件数が1件以上であることが判明しているため、対話装置1は「offer(contents)」コマンドを生成する。本コマンドは、他のデータベースにおける正解キーワードの検索件数を回答する応答の一例である。生成された応答は、メモリ12に格納される。
【0058】
ステップS310において、生成部116は、複数の検索キーワードのうち、指定されたデータベースでの検索件数が1件以上である検索キーワードを正解キーワードとして、当該正解キーワードの検索件数を回答する応答を生成する。本ステップまでに、指定されたデータベースでの検索件数が1件以上であることが判明しているため、対話装置1は「offer(contents)」コマンドを生成する。本コマンドは、指定されたデータベースにおける正解キーワードの検索件数を回答する応答の一例である。生成された応答は、メモリ12に格納される。
【0059】
なお、S310において、正解キーワードに該当する検索キーワードが複数存在する場合、当該複数の検索キーワードのうち、音声認識の信頼度が最も大きい検索キーワードを正解キーワードとしてもよい。あるいは、当該複数の検索キーワードのうち、指定されたデータベースでの検索件数が最も大きい検索キーワードを正解キーワードとしてもよい。もちろん、複数の検索キーワードのうち1つの検索キーワードについて、指定されたデータベースにおいて1件以上の検索件数が得られた場合は、当該検索キーワードを正解キーワードとすればよい。
【0060】
ステップS311において、出力部117は、生成された応答をユーザに出力する。ステップS311はステップS112と同様である。
【0061】
以上、第2の実施形態に係る対話装置1の動作の概略を説明した。ここで、具体例としてユーザがデータベースAを指定し、対話装置1が複数の検索キーワードを用いて、指定されたデータベースAと、指定されていない他のデータベースとしてデータベースB、及びデータベースCとを検索する場合を考える。
【0062】
例えば、音声認識の結果、音声認識の信頼度が高い順にユーザの発話文として「ABCを探して」、「ABEを探して」、「ABPを探して」の3つの候補が得られたとする。対話装置1は各候補から複数の検索キーワードとして「ABC」、「ABE」、「ABP」を抽出する。続いて、当該複数の検索キーワードを用いて各データベースを検索した結果が以下のようであるとする。
【0063】
select * from database A where code like %ABC% -> 0
select * from database B where code like %ABC% -> 0
select * from database C where code like %ABC% -> 0
select * from database A where code like %ABE% -> 0
select * from database B where code like %ABE% -> 10
select * from database C where code like %ABE% -> 0
select * from database A where code like %ABP% -> 0
select * from database B where code like %ABP% -> 10
select * from database C where code like %ABP% -> 20
例えば、検索結果「select * from database A where code like %ABC% -> 0」は、「データベースAにおいて型番(code)として「ABC」を含むデータ件数が0件である」ことを示す。
【0064】
上記検索結果から、指定されたデータベースAにおける各検索キーワードの検索件数の総和と、他のデータベースB、及びデータベースCにおける各検索キーワードの検索件数の総和が以下のように求められる。
【0065】
countA(ABC)=0, countB+C(ABC)=0
countA(ABE)=0, countB+C(ABE)=10
countA(ABP)=0, countB+C(ABP)=30
例えば、「countA(ABC)=0」は、データベースAにおける「ABC」の検索結果が0件であることを示す。「countB+C(ABC)=0」は、データベースBおよびデータベースCにおける「ABC」の検索結果が0件であることを示す。
【0066】
上記の検索結果より、指定されたデータベースAにおいて複数の検索キーワード「ABC」、「ABE」、「ABP」の検索件数が0件であり、他のデータベースB、及びデータベースCにおいて当該複数の検索キーワードの検索件数が1件以上であることが分かる。したがって、ステップS309に相当する処理が行われる。ここで、複数の検索キーワードのうち、他のデータベースB、及びデータベースCにおける検索件数の総和が最も大きい検索キーワードは「ABP」であることから、対話装置1は「ABP」を正解キーワードとして決定する。最後に、「ABP」の他のデータベースB、及びデータベースCにおける検索件数を回答する以下のような応答が生成され、表示装置13に出力される。「ABPで検索しましたが、見つかりませんでした。データベースBでは10件、データベースCでは20件見つかりました」。
【0067】
以上説明した第2の実施形態によれば、複数の検索キーワードのうち、ユーザが指定したデータベースの検索結果からは正解キーワードを決定できない場合であっても、他のデータベースの検索結果を利用することにより正解キーワードを決定することができる。すなわち、第1の実施形態と同様、柔軟な対話を進めることができる。
【0068】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、各省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0069】
1・・・対話装置、2・・・データベース、11・・・処理回路、12・・・メモリ、13・・・表示装置、14・・・入力インタフェース、15・・・通信インタフェース、111・・・指定部、112・・・取得部、113・・・抽出部、114・・・検索部、115・・・判定部、116・・・生成部、117・・・出力部、118・・・計算部、119・・・決定部、120・・・認識部、100・・・対話システム、200・・・データテーブル、300・・・集計データテーブル