IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コトバデザインの特許一覧

特開2022-141473プログラム、方法、情報処理装置、及びシステム
<>
  • 特開-プログラム、方法、情報処理装置、及びシステム 図1
  • 特開-プログラム、方法、情報処理装置、及びシステム 図2
  • 特開-プログラム、方法、情報処理装置、及びシステム 図3
  • 特開-プログラム、方法、情報処理装置、及びシステム 図4
  • 特開-プログラム、方法、情報処理装置、及びシステム 図5
  • 特開-プログラム、方法、情報処理装置、及びシステム 図6
  • 特開-プログラム、方法、情報処理装置、及びシステム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022141473
(43)【公開日】2022-09-29
(54)【発明の名称】プログラム、方法、情報処理装置、及びシステム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20220921BHJP
   G10L 15/22 20060101ALI20220921BHJP
【FI】
G06F16/90 100
G10L15/22 300Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021041797
(22)【出願日】2021-03-15
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度、総務省、「高度対話エージェント技術の研究開発・実証」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】517303292
【氏名又は名称】株式会社コトバデザイン
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】土田 正明
(72)【発明者】
【氏名】山上 勝義
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175EA01
(57)【要約】
【課題】スロットフィリングを用いた対話システムを利用する際のユーザのストレスを軽減すること。
【解決手段】本開示のプログラムは、プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、スロットに入力された情報、及びスロットの種別を取得するステップと、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、取得した候補に応じ、応答を生成するステップとを実行させる。
【選択図】図4

【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
スロットに入力された情報、及び前記スロットの種別を取得するステップと、
スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、前記取得したスロット種別について、前記取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、
前記取得した候補に応じ、応答を生成するステップと
を実行させるプログラム。
【請求項2】
前記辞書では、
スロットで使用可能な情報は、単一のスロット種別において重複せず、
スロットで使用可能な情報は、他の情報と関連付けられている表現に同じ文字列は存在しない請求項1記載のプログラム。
【請求項3】
前記応答を生成するステップにおいて、前記取得した候補が1つである場合、前記取得したスロット種別と、前記取得した候補とを含み、入力を受け付けたことを伝える応答を生成する請求項1又は2に記載のプログラム。
【請求項4】
前記応答を生成するステップにおいて、取得した候補が複数である場合、入力が受け付けられないことを伝えつつ、取得した複数の候補を提示して他の入力を促す応答を生成する請求項1又は3に記載のプログラム。
【請求項5】
前記応答を生成するステップにおいて、候補を取得できなかった場合、入力が受け付けられないことを伝えつつ、入力の参考としての例を提示して他の入力を促す応答を生成する請求項1乃至4のいずれかに記載のプログラム。
【請求項6】
前記入力の参考としての例は、前記スロット種別毎に予め設定された例、ランダムに設定された例、入力と類似する例、及び他ユーザによる利用頻度が所定値より高い例のうち少なくともいずれかから取得される請求項5記載のプログラム。
【請求項7】
前記候補を取得するステップにおいて、前記辞書から、前記取得したスロット種別について、前記取得した情報と類似する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得する請求項1乃至6のいずれかに記載のプログラム。
【請求項8】
前記入力された情報を取得するステップにおいて、複数のスロットに入力された情報、及び各スロットの種別を取得し、
前記候補を取得するステップにおいて、取得したスロット種別毎に候補を取得する請求項1乃至7のいずれかに記載のプログラム。
【請求項9】
前記候補を取得するステップにおいて、前記辞書において、関連付けられている表現が少ないスロット種別から優先して候補を取得する請求項8記載のプログラム。
【請求項10】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
スロットに入力された情報、及び前記スロットの種別を取得するステップと、
スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、前記取得したスロット種別について、前記取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、
前記取得した候補に応じ、応答を生成するステップと
を実行する方法。
【請求項11】
プロセッサと、メモリとを備える情報処理装置であって、
スロットに入力された情報、及び前記スロットの種別を取得するステップと、
スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、前記取得したスロット種別について、前記取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、
前記取得した候補に応じ、応答を生成するステップと
を実行する情報処理装置。
【請求項12】
スロットに入力された情報、及び前記スロットの種別を取得する手段と、
スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、前記取得したスロット種別について、前記取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得する手段と、
前記取得した候補に応じ、応答を生成する手段と
を具備するシステム。




【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、方法、情報処理装置、及びシステムに関する。
【背景技術】
【0002】
近年、ユーザとシステムとが対話する対話システムが普及しつつある。対話システムでは、スロットフィリングと呼ばれる機能が利用されている。
【0003】
スロットフィリングは、対話に必要なパラメタ(スロット)を、ユーザからの回答を用いて埋めていく機能である(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-034694号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
スロットフィリングでは、対話システムを利用するユーザからすると、必要なスロットが不明であること、及びスロットとして使える値が不明であること等の問題がある。必要なスロットが不明であること、については、例えば、必要なパラメタの入力を誘導するための質問等のシステム発話を提示することで解消可能である。一方、スロットとして使える値が不明であること、については、スロットとして使える値をシステム発話として全て提示することはできないため、単純には解消できない。このため、ユーザは対話システムの利用にストレスを感じることがある。
【0006】
そこで、本開示の目的は、スロットフィリングを用いた対話システムを利用する際のユーザのストレスを軽減することである。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本開示のプログラムは、プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、スロットに入力された情報、及びスロットの種別を取得するステップと、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、取得した候補に応じ、応答を生成するステップとを実行させる。
【発明の効果】
【0008】
本開示によれば、スロットフィリングを用いた対話システムを利用する際のユーザのストレスを軽減できる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係るシステムの全体構成を示す図である。
図2】サーバの機能的な構成を示す図である。
図3】記憶部に記憶される候補辞書のデータ構造を示す図である。
図4】スロットフィリングを用いた対話において、スロットで使用可能な情報の入力を受け付ける際の応答生成モジュールの動作を表すフローチャートである。
図5図4に示すステップS15で生成される応答の表示例を表す図である。
図6図4に示すステップS16で生成される応答の表示例を表す図である。
図7図4に示すステップS17で生成される応答の表示例を表す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、実施の形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本開示の必須構成要件であるとは限らない。
【0011】
<概要>
本実施形態に係るサーバ20は、スロットフィリングを用いた対話システムを提供する。サーバ20は、端末装置10からのアクセスを受け付け、端末装置10と対話する。サーバ20は、音声又はテキストによる情報の入力を端末装置10から受け付ける。サーバ20は、スロットで使用可能な情報が端末装置10から入力されるように、端末装置10からの入力を誘導する。
【0012】
<1 全体構成>
図1は、本実施形態に係るシステム1の全体構成の例を示す図である。図1に示すように、システム1は、端末装置10と、サーバ20とを備えている。端末装置10と、サーバ20とは、有線又は無線の通信規格を用い、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、例えば、インターネット、及び/又は通信事業者が提供する通信網等により実現される。図示の例では、複数の端末装置10がシステム1に含まれている。
【0013】
なお、図1では、サーバ20が1台のコンピュータである場合を示しているが、サーバ20は、複数台のコンピュータが組み合わされて実現されてもよい。また、図1では、端末装置10が3台である場合を示しているが、システム1に収容される端末装置10の台数は、3台に限定されない。
【0014】
端末装置10は、サーバ20により提供されるサービスを利用するユーザが使用する端末である。端末装置10は、例えば、スマートフォン、又はタブレット端末等の携行性を備えた端末である。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC、又はヘッドマウントディスプレイ等により実現されもよい。
【0015】
例えば、ユーザは、端末装置10を操作し、サーバ20により提供されるサービスを利用する。サーバ20により提供されるサービスは、例えば、ユーザからの入力に応じて所定の情報を提供するサービスである。ユーザは、端末装置10を操作し、例えば、サーバ20が有する、スロットフィリングを用いた対話機能に対し、所望の情報を取得するための情報を入力する。ユーザは、例えば、テキスト、又は音声で、情報を入力する。
端末装置10は、ユーザから入力された情報をサーバ20へ送信する。端末装置10は、サーバ20の対話機能によって生成された情報を受信する。
【0016】
サーバ20は、所定のサービスを提供する。サーバ20は、例えば、ネットワーク80に接続されたコンピュータである。サーバ20は、提供するサービスと対応した対話機能を有する。サーバ20が有する対話機能は、テキスト形式によるテキストチャットによるものでもよいし、音声形式によるボイスチャットによるものでもよい。
【0017】
図1に示すように、サーバ20は、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。通信IF22、入出力IF23、メモリ25、ストレージ26、及びプロセッサ29は、例えば、バスを介して互いに通信可能に接続されている。
【0018】
通信IF22は、サーバ20が外部の装置と通信するため、信号を送受信するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、及び、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。
【0019】
ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)等の不揮発性のメモリにより実現される。ストレージ26は、必ずしも単独の回路により実現されなくてもよい。ストレージ26は、例えば、複数の記憶回路により実現されてもよい。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。
【0020】
<1.1 サーバの機能的な構成>
図2は、サーバ20の機能的な構成を示す図である。図2に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
【0021】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0022】
記憶部202は、例えば、メモリ25、及びストレージ26等により実現され、サーバ20が使用するデータ、及びプログラムを記憶する。記憶部202は、例えば、候補辞書2021を有する。
【0023】
候補辞書2021は、ユーザから自由に入力された情報から、スロットで使用可能な情報を導く際に用いる辞書である。候補辞書2021では、スロットの種別、スロットで使用可能な情報、及び、ユーザから入力され得る表現が関連付けられている。候補辞書2021については後述する。
【0024】
制御部203は、プロセッサ29が記憶部202に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部203は、プログラムに従って動作することにより、受信制御モジュール2031、送信制御モジュール2032、言語理解モジュール2033、応答生成モジュール2034、及び提示モジュール2035として示す機能を発揮する。
【0025】
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。具体的には、例えば、受信制御モジュール2031は、端末装置10から送信された情報を受信する。
【0026】
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。具体的には、例えば、送信制御モジュール2032は、生成した情報を端末装置10へ送信する。
【0027】
言語理解モジュール2033は、端末装置10から送信された情報から、スロットの種別と、スロットに入力された情報とを抽出する。言語理解モジュール2033は、例えば、自然言語処理を用いた既存の手法により、スロットの種別と、スロットに入力された情報とを抽出する。
【0028】
応答生成モジュール2034は、スロットで使用可能な値を、スロットへ入力することを誘導するための情報を応答として生成する。具体的には、例えば、応答生成モジュール2034は、言語理解モジュール2033で抽出された、スロットへ入力された情報を、候補辞書2021に記憶されている表現と照合させる。応答生成モジュール2034は、照合された表現と関連付けられている値を、スロットへ入力する候補として取得する。応答生成モジュール2034は、取得した候補を用いて応答を生成する。
【0029】
例えば、スロットへ入力された情報から、スロットで使用可能な値が一意に決定できる場合、応答生成モジュール2034は、スロットの種別と、使用可能な値とを明示する応答を生成する。
【0030】
また、例えば、スロットへ入力された情報に対し、スロットで使用可能な値として判断される候補が複数ある場合、応答生成モジュール2034は、指定可能な候補として、候補の中のいずれかを選択することを促す応答を生成する。
【0031】
また、例えば、スロットへ入力された情報に対し、スロットで使用可能な値として判断される候補がない場合、応答生成モジュール2034は、入力された情報を受け付けられない応答、及び、所定の候補を例示して別の入力を促す応答を生成する。所定の候補は、例えば、以下の一つ以上の基準で取得した候補から設定され得る。
・スロット種別毎に予め設定された候補
・ランダムに設定された候補
・入力と類似する候補(ただし、候補になるほどの類似度はない)
・他ユーザによる利用頻度が所定値より高い候補
【0032】
提示モジュール2035は、応答生成モジュール2034により生成された応答を端末装置10のユーザに提示する。具体的には、例えば、提示モジュール2035は、応答生成モジュール2034により生成された応答を、端末装置10のディスプレイに表示させる。提示モジュール2035は、応答生成モジュール2034により生成された応答を、端末装置10のスピーカーから再生してもよい。
【0033】
<2 データ構造>
図3は、記憶部202に記憶される候補辞書2021のデータ構造を示す図である。なお、図3は一例であり、記載されていないデータを除外するものではない。図3に示すように、候補辞書2021のレコードの各々は、項目「スロット種別」と、項目「値」、項目「候補取得用表現」等とを含む。
【0034】
項目「スロット種別」は、スロットに対して割り当てられている種別を記憶する。種別は、料理種別等、例えば、サーバ20が提供するサービスに応じて複数存在する。
【0035】
項目「値」は、スロットで使用可能な値を記憶する。項目「値」で記憶される情報は、単一のスロット種別において重複することはない。つまり、同じ種別が割り当てられるスロットにおいて、同じ情報の項目「値」は存在しない。
【0036】
項目「候補取得用表現」は、項目「値」の情報を取得するための表現を記憶する。具体的には、項目「値」の情報毎に、複数の表現が登録されている。項目「候補取得用表現」には、関連付けられている項目「値」で記憶される情報と同じ表現が記憶されていてもよい。例えば、図3によれば、項目「値」:パスタに対し、項目「候補取得用表現」:パスタが登録されていてもよい。ただし、項目「値」の情報は、他の項目「値」と関連付けられている項目「候補取得用表現」に含まれていてはいけない。つまり、項目「候補取得用表現」:パスタは、項目「値」:パスタと関連付けられている項目「候補取得用表現」以外では登録されてはならない。
【0037】
<3.動作>
スロットフィリングを用いた対話をユーザと実施する際のサーバ20の動作について説明する。
【0038】
図4は、スロットフィリングを用いた対話において、スロットで使用可能な情報の入力を受け付ける際の応答生成モジュール2034の動作の一例を表すフローチャートである。
【0039】
まず、サーバ20は、ユーザへ所定のサービスを提供するにあたり、ユーザと、スロットフィリングを用いた対話を実施する。
【0040】
ユーザは、例えば、サーバ20から提供される質問文に、回答として情報を入力する。このとき、ユーザは、端末装置10を操作し、音声、又はテキストで、回答としての情報を入力する。具体的には、例えば、サーバ20がレシピ情報を提供しているとする。ユーザは、要求するレシピとして「イタリアン」を入力する。
【0041】
端末装置10は、ユーザから入力された情報をサーバ20へ送信する。
【0042】
サーバ20は、制御部203の言語理解モジュール2033により、端末装置10から送信された情報から、スロットの種別と、スロットに入力された情報とを抽出する。具体的には、例えば、言語理解モジュール2033は、ユーザがレシピ検索に対して入力した「イタリアン」との情報から、スロット種別:料理種別、入力情報:イタリアンを抽出する。
【0043】
サーバ20は、制御部203の応答生成モジュール2034により、言語理解モジュール2033で抽出されたスロット種別、及び、スロットに入力された情報を取得する(ステップS11)。具体的には、例えば、応答生成モジュール2034は、言語理解モジュール2033で抽出されたスロット種別:料理種別、及び、入力情報:イタリアンを取得する。
【0044】
応答生成モジュール2034は、取得した入力情報に基づき、スロットへ実際に入力される候補の取得処理を実施する(ステップS12)。具体的には、例えば、応答生成モジュール2034は、取得した入力情報を、候補辞書2021に記憶されている表現と照合させ、照合された表現と関連付けられている値を取得する。
【0045】
例えば、応答生成モジュール2034は、入力情報:イタリアンを取得すると、候補辞書2021において、項目「候補取得用表現」において「イタリアン」の文字列を検索する。応答生成モジュール2034は、項目「候補取得用表現」において「イタリアン」を発見すると、発見した、項目「候補取得用表現」:「イタリアン」と関連付けられている項目「値」の情報を候補として取得する。図3に示す候補辞書2021によれば、応答生成モジュール2034は、入力情報:イタリアンに基づく候補として、「パスタ」、「ドリア」、及び「ピザ」を取得する。
【0046】
項目「候補取得用表現」における文字列の検索では、文字列の完全一致に限定されない。応答生成モジュール2034は、項目「候補取得用表現」を検索し、入力情報の文字列と一定以上の類似度を持つ文字列を発見してもよい。
【0047】
例えば、ユーザから「スパゲッテ」が入力されると、応答生成モジュール2034は、項目「候補取得用表現」を検索し、入力情報の文字列「スパゲッテ」と一定以上の類似度を持つ文字列「スパゲッティ」を発見する。
【0048】
応答生成モジュール2034は、例えば、発見した文字列のうち、類似度が最大の文字列と関連付けられている項目「値」の情報のみを取得してもよい。なお、類似度が最大となる文字列が複数存在することもあり得る。
【0049】
応答生成モジュール2034は、スロットへ入力する候補を取得したか否かを判断する(ステップS13)。応答生成モジュール2034は、候補を1つ、又は複数取得した場合、スロットへ入力する候補を取得したと判断する(ステップS13のYes)。なお、取得した候補数が、予め設定した閾値以上となる場合、応答生成モジュール2034は、候補を取得できなかったと判断してもよい。曖昧性が高すぎるためである。候補を取得したと判断した場合、応答生成モジュール2034は、取得した候補が1つであるか否かを判断する(ステップS14)。
【0050】
取得した候補が1つである場合(ステップS14のYes)、応答生成モジュール2034は、スロット種別と、候補として取得した値とを含み、入力を受け付けたことを伝える応答を生成する(ステップS15)。応答生成モジュール2034は、例えば、入力を受け付けたことを伝える応答を、テンプレートに基づいて生成してもよい。
【0051】
例えば、応答生成モジュール2034は、「<スロット種別>は「<候補>」ですね。」との応答を生成する。具体的には、例えば、応答生成モジュール2034は、「料理種別は「パスタ」ですね。」との応答を生成する。
【0052】
ステップS14において、取得した候補が複数である場合(ステップS14のNo)、応答生成モジュール2034は、入力が受け付けられないことを伝えつつ、入力可能な候補の値を提示して他の入力を促す応答を生成する(ステップS16)。応答生成モジュール2034は、例えば、この応答を、テンプレートに基づいて生成してもよい。
【0053】
例えば、応答生成モジュール2034は、「<スロット種別>に「<認識結果>」は指定できませんが、「<第1候補>」、「<第2候補>」ではないでしょうか?再度入力してみてください。」との応答を生成する。具体的には、応答生成モジュール2034は、「料理種別に「イタリアン」は指定できませんが、「パスタ」、「ドリア」、「ピザ」ではないでしょうか?再度入力してみてください。」との応答を生成する。
【0054】
ステップS13において、スロットへ入力する候補を取得できなかった場合(ステップS13のNo)、応答生成モジュール2034は、入力が受け付けられないことを伝えつつ、入力の参考としての例を提示して他の入力を促す応答を生成する(ステップS17)。応答生成モジュール2034は、例えば、この応答を、テンプレートに基づいて生成してもよい。
【0055】
例えば、応答生成モジュール2034は、「<スロット種別>に「<認識結果>」は指定できません。例えば、「<例示候補>」などがありますので、これを参考に入力してみてください。」との応答を生成する。具体的には、応答生成モジュール2034は、「料理種別に「ガラパゴス料理」は指定できません。例えば、「ステーキ」、「炒飯」などがありますので、これを参考に入力してみてください。」との応答を生成する。
【0056】
応答生成モジュール2034により応答を生成すると、サーバ20は、生成した応答を端末装置10のユーザに提示する。具体的には、サーバ20は、提示モジュール2035により、生成した応答を、端末装置10のディスプレイに表示させる。また、提示モジュール2035は、生成した応答を、端末装置10のスピーカーから再生する。
【0057】
図5乃至図7は、サーバ20で生成される応答の端末装置10での表示例を表す模式図である。図5は、ユーザからスパゲッティと入力され、図4に示すステップS15で生成される応答の表示例を表す図である。図5によれば、入力情報:スパゲッティに対し、サーバ20は、「料理種別は「パスタ」ですね。」との応答を生成する。
【0058】
図6は、ユーザからイタリアンと入力され、図4に示すステップS16で生成される応答の表示例を表す図である。図6によれば、入力情報:イタリアンに対し、サーバ20は、「料理種別に「イタリアン」は指定できませんが、「パスタ」、「ドリア」、「ピザ」ではないでしょうか?再度入力してみてください。」との応答を生成する。
【0059】
図7は、ユーザからガラパゴス料理と入力され、図4に示すステップS17で生成される応答の表示例を表す図である。図7によれば、入力情報:ガラパゴス料理に対し、サーバ20は、「料理種別に「ガラパゴス料理」は指定できません。例えば、「ステーキ」、「炒飯」などがありますので、これを参考に入力してみてください。」との応答を生成する。
【0060】
サーバ20から提示される応答に対してユーザから回答が入力されると、サーバ20は、入力された回答に対し、図4に示す処理を再度実行する。
【0061】
図4のステップS15に示す処理を経て、スロットへ入力する候補が確定されると、制御部203は、確定された候補を用いて端末装置10との対話を実施する。
【0062】
以上のように、上記実施形態では、サーバ20は、応答生成モジュール2034により、スロットに入力された情報、及びスロット種別を取得する。応答生成モジュール2034は、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書2021から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得する。応答生成モジュール2034は、取得した候補に応じ、応答を生成するようにしている。これにより、サーバ20は、スロットで使用可能な値を入力することを補助することが可能となる。このため、サーバ20は、ユーザがスロットの値をわかっていない場合であっても、スロットで使用可能な情報の入力を誘導することが可能となる。
【0063】
したがって、上記実施形態に係るサーバ20によれば、スロットフィリングを用いた対話システムを利用する際のユーザのストレスを軽減できる。
【0064】
また、上記実施形態では、辞書2021では、スロットで使用可能な情報は、単一のスロット種別において重複せず、また、他の情報と関連付けられている表現に同じ文字列は存在しないようになっている。これにより、サーバ20は、ユーザから入力される表現に基づき、スロットへ入力される候補を正確に取得することが可能となる。
【0065】
また、上記実施形態では、サーバ20は、応答生成モジュール2034により、取得した候補が1つである場合、取得したスロット種別と、取得した候補とを含み、入力を受け付けたことを伝える応答を生成するようにしている。これにより、サーバ20は、ユーザから入力された情報を、スロットで使用可能な情報へ変換して受け付けることが可能となる。
【0066】
また、上記実施形態では、サーバ20は、応答生成モジュール2034により、取得した候補が複数である場合、入力が受け付けられないことを伝えつつ、取得した複数の候補を提示して他の入力を促す応答を生成するようにしている。これにより、サーバ20は、次の入力で、スロットで使用可能な情報が入力される可能性を高めることが可能となる。
【0067】
また、上記実施形態では、サーバ20は、応答生成モジュール2034により、候補を取得できなかった場合、入力が受け付けられないことを伝えつつ、入力の参考としての例を提示して他の入力を促す応答を生成するようにしている。これにより、サーバ20は、スロットで使用可能な情報の例をユーザへ提示することが可能となる。
【0068】
また、上記実施形態では、サーバ20は、応答生成モジュール2034により、辞書2021から、取得したスロット種別について、取得した情報と類似する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するようにしている。これにより、ユーザから入力される情報が、辞書2021で登録される表現と一致していなくても、サーバ20は、スロットへ入力する候補を取得することが可能となる。このため、ユーザが対話システムを使用する負担が軽減されることになる。
【0069】
<4 変形例>
上記実施形態では、言語理解モジュール2033から出力され、応答生成モジュール2034へ入力される情報に、スロット種別が1つ含まれている場合を例に説明した。しかしながら、応答生成モジュール2034へ入力される情報に含まれるスロット情報は1つに限定されない。応答生成モジュール2034へ入力される情報には、2つ以上のスロット情報が含まれていてもよい。例えば、ユーザから「簡単にできるイタリアン」のように入力された場合、言語理解モジュール2033は、「簡単にできるイタリアン」との入力から、2種類のスロット種別と、各スロット種別に入力された情報とを抽出する。
【0070】
2つ以上のスロット種別と、入力情報とが言語理解モジュール2033で抽出される場合、応答生成モジュール2034は、例えば、以下のように図4に示す処理を実行する。
・候補取得用表現が少ないスロット種別から先に処理を実行する(入力された情報の候補を絞りやすいスロット種別から先に処理を実行する)
・スロット種別毎に優先順位を決めておく
【0071】
2つ以上のスロット種別と、入力情報とが言語理解モジュール2033で抽出される場合、応答生成モジュール2034は、ステップS16、ステップS17で表示する候補の数を、スロット種別が1つの場合よりも少なくしてもよい。例えば、応答生成モジュール2034は、ステップS16、ステップS17で表示する候補の数を1つとする。
【0072】
このように、複数のスロットに入力された情報、及び各スロットの種別を取得する場合、サーバ20は、取得したスロット種別毎に候補を取得するようにしている。これにより、言語理解モジュール2033から、複数のスロットについての情報が出力される場合であっても、スロットで使用可能な情報を入力することを誘導することが可能となる。
【0073】
以上、本開示のいくつかの実施形態を説明したが、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0074】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
【0075】
(付記1)
プロセッサ29と、メモリ25とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、スロットに入力された情報、及び前記スロットの種別を取得するステップ(ステップS11)と、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップ(ステップS12)と、取得した候補に応じ、応答を生成するステップ(ステップS15~17)とを実行させるプログラム。
【0076】
(付記2)
辞書では、スロットで使用可能な情報は、単一のスロット種別において重複せず、スロットで使用可能な情報は、他の情報と関連付けられている表現に同じ文字列は存在しない(付記1)に記載のプログラム。
【0077】
(付記3)
応答を生成するステップにおいて、取得した候補が1つである場合、取得したスロット種別と、取得した候補とを含み、入力を受け付けたことを伝える応答を生成する(付記1)又は(付記2)に記載のプログラム。
【0078】
(付記4)
応答を生成するステップにおいて、取得した候補が複数である場合、入力が受け付けられないことを伝えつつ、取得した複数の候補を提示して他の入力を促す応答を生成する(付記1)又は(付記3)に記載のプログラム。
【0079】
(付記5)
応答を生成するステップにおいて、候補を取得できなかった場合、入力が受け付けられないことを伝えつつ、入力の参考としての例を提示して他の入力を促す応答を生成する(付記1)乃至(付記4)のいずれかに記載のプログラム。
【0080】
(付記6)
入力の参考としての例は、スロット種別毎に予め設定された例、ランダムに設定された例、入力と類似する例、及び他ユーザによる利用頻度が所定値より高い例のうち少なくともいずれかから取得される(付記5)に記載のプログラム。
【0081】
(付記7)
候補を取得するステップにおいて、辞書から、取得したスロット種別について、取得した情報と類似する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得する(付記1)乃至(付記6)のいずれかに記載のプログラム。
【0082】
(付記8)
入力された情報を取得するステップにおいて、複数のスロットに入力された情報、及び各スロットの種別を取得し、候補を取得するステップにおいて、取得したスロット種別毎に候補を取得する(付記1)乃至(付記7)のいずれかに記載のプログラム。
【0083】
(付記9)
候補を取得するステップにおいて、辞書において、関連付けられている表現が少ないスロット種別から優先して候補を取得する(付記8)に記載のプログラム。
【0084】
(付記10)
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、スロットに入力された情報、及びスロットの種別を取得するステップと、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、取得した候補に応じ、応答を生成するステップとを実行する方法。
【0085】
(付記11)
プロセッサと、メモリとを備える情報処理装置20であって、スロットに入力された情報、及びスロットの種別を取得するステップと、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得するステップと、取得した候補に応じ、応答を生成するステップとを実行する情報処理装置。
【0086】
(付記12)
スロットに入力された情報、及びスロットの種別を取得する手段と、スロット種別、スロットで使用可能な情報、及びユーザからスロットに入力され得る表現が関連付けられる辞書から、取得したスロット種別について、取得した情報と対応する表現を検索し、発見した表現と関連付けられている情報をスロットへ入力する候補として取得する手段と、取得した候補に応じ、応答を生成する手段とを具備するシステム。
【符号の説明】
【0087】
1…システム
10…端末装置
20…サーバ
201…通信部
202…記憶部
2021…候補辞書
203…制御部
2031…受信制御モジュール
2032…送信制御モジュール
2033…言語理解モジュール
2034…応答生成モジュール
2035…提示モジュール
22…通信IF
23…入出力IF
25…メモリ
26…ストレージ
29…プロセッサ
80…ネットワーク

図1
図2
図3
図4
図5
図6
図7