(57)【要約】【課題】質問の意図と関係性が低い問い返しの実行を抑制することを目的とする。【解決手段】制御方法は、質問を受け付け、前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、処理をコンピュータが実行することを特徴とする。【選択図】図１１
2020060894.tif 000002
【特許請求の範囲】
【請求項１】
質問を受け付け、
前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、
前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、
算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項２】
前記差分が基準値よりも小さい場合、前記問い返しの実行を行い、前記差分が基準値よりも大きい場合、前記問い返しの実行を抑制する、
ことを特徴とする請求項１に記載の制御方法。
【請求項３】
前記差分が基準値よりも大きく、かつ、前記第１の類似度が前記第２の類似度よりも大きい場合、前記第１の回答候補を用いて、記憶部に記憶された複数の問い返しの内容の候補のうち、前記質問元への新たな問い返しの内容を選択する、
ことを特徴とする請求項１又は２に記載の制御方法。
【請求項４】
発話を受け付け、
受け付けた前記発話に質問を表す特定の記号又は特定の文字列が含まれるか否かを判断し、
前記発話に前記特定の記号又は前記特定の文字列が含まれると判断した場合に、前記質問を受け付ける、
ことを特徴とする請求項１から３のいずれか１項に記載の制御方法。
【請求項５】
発話を受け付け、
受け付けた前記発話と、学習対象に基づいて生成された学習済モデルとに基づいて、前記発話が雑談か否かを判断し、
前記発話が前記雑談でないと判断した場合に、前記質問を受け付ける、
ことを特徴とする請求項１から４のいずれか１項に記載の制御方法。
【請求項６】
前記問い返しの内容には、問い返す順序が規定されている、
ことを特徴とする請求項１から５のいずれか１項に記載の制御方法。
【請求項７】
質問を受け付け、
前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、
前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、
算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項８】
質問を受け付け、
前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、
前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、
算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、
処理を実行する処理部を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、制御方法、制御プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
人とロボットとの会話の技術をＬＩＮＥ（登録商標）のようなチャットサービスに適用することが提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／２０００７８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特定の話題についてあらかじめ定められたシナリオ（以下、トークルールという）に沿って人（以下、ユーザという）と対話を行うロボットがある。このようなロボットがトークルールに基づいてユーザの質問に対する問い返しを行うと、ユーザの質問の意図と関係性が低い問い返しがトークルールの中から選ばれることがある。
【０００５】
例えば、ユーザが特定の製品を指定してロボットにその製品に関する質問を行ったにも関わらず、トークルールの中で最初に質問対象製品の指定を求める問い返しが定められていると、その問い返しが選ばれて質問元のユーザに通知される。したがって、ユーザは改めて製品を指定した回答を行う。このように、トークルールに沿ってユーザと対話を行うロボットの場合、ユーザとロボットとの間に無駄な対話が生じる可能性がある。
【０００６】
そこで、１つの側面では、質問の意図と関係性が低い問い返しの実行を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、制御方法は、質問を受け付け、前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、処理をコンピュータが実行することを特徴とする。
【発明の効果】
【０００８】
質問の意図と関係性が低い問い返しの実行を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は対話システムの一例を説明するための図である。
【図２】図２は対話サーバのハードウェア構成の一例である。
【図３】図３は対話サーバ及び管理サーバのブロック図の一例である。
【図４】図４は学習部の学習処理の一例を示すフローチャートである。
【図５】図５（ａ）はインシデント記憶部の一例である。図５（ｂ）は学習済モデルの一例である。
【図６】図６はＡＰＩ管理部及びＡＩ部の対話処理の一例を示すフローチャート（その１）である。
【図７】図７はＡＰＩ管理部及びＡＩ部の対話処理の一例を示すフローチャート（その２）である。
【図８】図８は抽象質問とその問い返しを含む質問画面の一例である。
【図９】図９はＡＰＩ管理部の問い返し発見処理の一例を示すフローチャートである。
【図１０】図１０はトークルール記憶部の一例である。
【図１１】図１１（ａ）は制御の一例を説明するための図である。図１１（ｂ）は特定質問とその問い返しを含む質問画面の一例である。
【図１２】図１２（ａ）及び（ｂ）は制御の他の一例を説明するための図である。
【図１３】図１３は雑談と雑談応答を含む質問画面の一例である。
【図１４】図１４（ａ）はマニュアル記憶部の一例である。図１４（ｂ）はマニュアル情報を含む質問画面の一例である。
【発明を実施するための形態】
【００１０】
以下、本件を実施するための形態について図面を参照して説明する。
【００１１】
図１は対話システムＳＴの一例を説明するための図である。対話システムＳＴはユーザ端末１００と対話サーバ２００と管理サーバ３００を含んでいる。対話サーバ２００は情報処理装置の一例である。図１では、ユーザ端末１００の一例としてPersonal Computer（ＰＣ）が示されているが、タブレット端末といったスマートデバイスであってもよい。尚、対話システムＳＴの構成要素は適宜変更してもよい。例えば、対話システムＳＴの構成要素をユーザ端末１００と対話サーバ２００としてもよい。また、対話システムＳＴの構成要素を対話サーバ２００と管理サーバ３００としてもよい。
【００１２】
ユーザ端末１００は入力装置１１０、表示装置１２０、及び制御装置１３０を含んでいる。入力装置１１０と表示装置１２０はいずれも制御装置１３０に接続されている。対話システムＳＴを利用するユーザが入力装置１１０を操作すると、制御装置１３０は操作内容に応じた情報に基づいて表示装置１２０の表示内容を制御する。例えば、ユーザが入力装置１１０を操作して対話サーバ２００にアクセスする操作を行うと、制御装置１３０は表示装置１２０に質問画面ＳＣを表示する。
【００１３】
その他、詳細は後述するが、ユーザが入力装置１１０を操作して質問画面ＳＣ内の入力欄に文字や数字、記号などを入力する操作を行うと、制御装置１３０はその入力欄に操作内容に応じた文字や数字、記号などを表示する。ユーザが入力装置１１０を操作して質問画面ＳＣ内の送信ボタンを押下する操作を行うと、制御装置１３０は入力欄の文字や数字、記号などをユーザの発話情報（以下、単に発話という）として対話サーバ２００に向けて送信する。
【００１４】
ユーザ端末１００と対話サーバ２００は通信ネットワークＮＷを介して互いに接続されている。通信ネットワークＮＷとしては例えばLocal Area Network（ＬＡＮ）がある。本実施形態では、対話サーバ２００の運用形態をオンプレミスとして説明する。対話サーバ２００はユーザ端末１００から送信された発話を受信すると、発話の内容を判断する。対話サーバ２００は発話が質問であると判断すると、その質問の問い返しを質問元であるユーザ端末１００に返信する。対話サーバ２００は発話が雑談であると判断すると、その雑談に対する雑談応答を雑談元であるユーザ端末１００に返信する。このように、対話サーバ２００はユーザの発話に応じた問い返しや雑談応答を返信する。したがって、対話サーバ２００をチャットボットと呼んでもよい。尚、チャットボットはチャットとロボットを組み合わせた造語である。
【００１５】
対話サーバ２００には管理サーバ３００が接続されている。対話サーバ２００と管理サーバ３００は通信ケーブルＣＢＬによって直接的に接続されている。尚、通信ネットワークＮＷを介して対話サーバ２００と管理サーバ３００が間接的に接続されていてもよい。このように、管理サーバ３００の運用形態もオンプレミスである。管理サーバ３００は不図示の情報処理システムに対するインシデントを管理する。具体的には、管理サーバ３００は情報処理システムに対するトラブル報告、要望、問い合わせなどをインシデントとして管理する。対話サーバ２００は管理サーバ３００が管理するインシデントを学習対象として学習し、学習済モデルを生成して管理する。対話サーバ２００は学習済モデルを利用して発話が雑談であるか否かを判断する。尚、上述したように、対話サーバ２００及び管理サーバ３００の運用形態をオンプレミスとして説明するが、対話サーバ２００及び管理サーバ３００の運用形態をクラウドとしてもよい。この場合、インターネットを通信ネットワークＮＷとして利用すればよい。
【００１６】
次に、図２を参照して、対話サーバ２００のハードウェア構成について説明する。尚、上述した制御装置１３０及び管理サーバ３００は対話サーバ２００と同様のハードウェア構成であるため、説明を省略する。
【００１７】
図２は対話サーバ２００のハードウェア構成の一例である。図２に示すように、対話サーバ２００は、少なくともハードウェアプロセッサとしてのCentral Processing Unit（ＣＰＵ）２００Ａ、Random Access Memory（ＲＡＭ）２００Ｂ、Read Only Memory（ＲＯＭ）２００Ｃ、及びネットワークＩ／Ｆ（インタフェース）２００Ｄを含んでいる。対話サーバ２００は、必要に応じて、Hard Disk Drive（ＨＤＤ）２００Ｅ、入力Ｉ／Ｆ２００Ｆ、出力Ｉ／Ｆ２００Ｇ、入出力Ｉ／Ｆ２００Ｈ、ドライブ装置２００Ｉの少なくとも１つを含んでいてもよい。ＣＰＵ２００Ａからドライブ装置２００Ｉまでは、内部バス２００Ｊによって互いに接続されている。すなわち、対話サーバ２００はコンピュータによって実現することができる。尚、ＣＰＵ２００Ａに代えてMicro Processing Unit（ＭＰＵ）をハードウェアプロセッサとして利用してもよい。
【００１８】
入力Ｉ／Ｆ２００Ｆには、入力装置７１０が接続される。入力装置７１０としては、例えばキーボードやマウスなどがある。尚、上述した入力装置１１０についても入力装置７１０と同様である。出力Ｉ／Ｆ２００Ｇには、表示装置７２０が接続される。表示装置７２０としては、例えば液晶ディスプレイがある。尚、上述した表示装置１２０についても表示装置７２０と同様である。入出力Ｉ／Ｆ２００Ｈには、半導体メモリ７３０が接続される。半導体メモリ７３０としては、例えばUniversal Serial Bus（ＵＳＢ）メモリやフラッシュメモリなどがある。入出力Ｉ／Ｆ２００Ｈは、半導体メモリ７３０に記憶されたプログラムやデータを読み取る。入力Ｉ／Ｆ２００Ｆ及び入出力Ｉ／Ｆ２００Ｈは、例えばＵＳＢポートを備えている。出力Ｉ／Ｆ２００Ｇは、例えばディスプレイポートを備えている。
【００１９】
ドライブ装置２００Ｉには、可搬型記録媒体７４０が挿入される。可搬型記録媒体７４０としては、例えばCompact Disc（ＣＤ）−ＲＯＭ、Digital Versatile Disc（ＤＶＤ）といったリムーバブルディスクがある。ドライブ装置２００Ｉは、可搬型記録媒体７４０に記録されたプログラムやデータを読み込む。ネットワークＩ／Ｆ２００Ｄは、例えばＬＡＮポートや通信回路などを備えている。ネットワークＩ／Ｆ２００Ｄは通信ネットワークＮＷと接続される。
【００２０】
上述したＲＡＭ２００Ｂには、ＲＯＭ２００ＣやＨＤＤ２００Ｅに記憶されたプログラムがＣＰＵ２００Ａによって一時的に格納される。ＲＡＭ２００Ｂには、可搬型記録媒体７４０に記録されたプログラムがＣＰＵ２００Ａによって一時的に格納される。格納されたプログラムをＣＰＵ２００Ａが実行することにより、ＣＰＵ２００Ａは後述する各種の機能を実現し、また、後述する各種の処理を実行する。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【００２１】
次に、図３を参照して、対話サーバ２００及び管理サーバ３００の機能構成について説明する。
【００２２】
図３は対話サーバ２００及び管理サーバ３００のブロック図の一例である。図３では対話サーバ２００及び管理サーバ３００の機能の要部が示されている。図３に示すように、対話サーバ２００は通信部２１０、処理部２２０、及び記憶部２３０を構成要素として含んでいる。通信部２１０は上述したネットワークＩ／Ｆ２００Ｄによって実現することができる。処理部２２０は上述したＣＰＵ２００Ａ及びＲＡＭ２００Ｂによって実現することができる。記憶部２３０は上述したＨＤＤ２００Ｅによって実現することができる。通信部２１０及び処理部２２０は機能的に互いに接続されている。処理部２２０及び記憶部２３０は機能的に互いに接続されている。
【００２３】
ここで、処理部２２０はApplication Programming Interface（ＡＰＩ）を管理して提供するＡＰＩ管理部２２１及びArtificial Intelligence（ＡＩ）機能を提供するＡＩ部２２２を構成要素として含んでいる。ＡＰＩ管理部２２１は、制御部２５１、算出部２５２、及びトーク管理部２５３を構成要素として含んでいる。ＡＩ部２２２は、学習部２６１、学習済モデル記憶部２６２、及び雑談判断部２６３を構成要素として含んでいる。一方、記憶部２３０は、トークルール記憶部２３１及びマニュアル記憶部２３２を構成要素として含んでいる。制御部２５１はトークルール記憶部２３１、マニュアル記憶部２３２、算出部２５２、トーク管理部２５３、雑談判断部２６３と連携して、各種の処理を実行する。
【００２４】
例えば、制御部２５１は通信部２１０が通信ネットワークＮＷを介してユーザ端末１００から受信した発話を取得して受け付ける。制御部２５１は発話を受け付けると、受け付けた発話が質問であるか否かを判断する。制御部２５１は発話が質問でない場合、受け付けた発話を雑談判断部２６３に出力する。雑談判断部２６３は学習済モデル記憶部２６２が記憶する学習済モデルに基づいて発話が雑談であるか否かを判断し、結果を制御部２５１に出力する。制御部２５１は雑談判断部２６３から出力された結果に基づいて発話の種別を判断する。例えば、雑談判断部２６３が肯定的な結果を出力した場合、制御部２５１は雑談応答を返信する。逆に、雑談判断部２６３が否定的な結果を出力した場合、制御部２５１は発話を質問として処理する。
【００２５】
制御部２５１が質問を受け付けると、算出部２５２は質問の質問元への問い返しの内容と、その問い返しへの回答の内容の候補である第１の回答候補とを含む第１の特定トーク情報と、受け付けた質問との第１の類似度を算出する。同様に、算出部２５２はその質問の質問元への問い返しの内容と、問い返しへの回答の内容の候補である第２の回答候補とを含む第２の特定トーク情報と、受け付けた質問との第２の類似度を算出する。第１の回答候補と第２の回答候補は相違する。算出部２５２は第１の類似度及び第２の類似度を算出すると、制御部２５１は算出部２５２が算出した第１の類似度及び第２の類似度の差分が基準を満たすか否かに応じて、質問元への問い返しの実行を行うか否かを制御する。尚、制御部２５１を含むＡＰＩ管理部２２１の各構成要素、及び雑談判断部２６３を含むＡＩ部２２２の各構成要素が実現する機能の詳細については、対話サーバ２００の動作を説明する際に詳しく記載する。
【００２６】
管理サーバ３００はインシデント記憶部３１０を含んでいる。インシデント記憶部３１０は上述したＨＤＤ２００Ｅによって実現することができる。尚、インシデント記憶部３１０を上述した記憶部２３０に含めてもよい。逆に、上述したトークルール記憶部２３１及びマニュアル記憶部２３２の少なくとも一方を管理サーバ３００に含めてもよい。
【００２７】
以下、対話サーバ２００の動作について説明する。
【００２８】
図４は学習部２６１の学習処理の一例を示すフローチャートである。図５（ａ）はインシデント記憶部３１０の一例である。図５（ｂ）は学習済モデルの一例である。学習部２６１はユーザ端末１００が発話を送信する前に学習処理を実行する。学習部２６１は設定時刻に基づいて学習処理を動的に実行してもよいし、学習処理を起動する操作に基づいて学習処理を実行してもよい。
【００２９】
まず、図４に示すように、学習部２６１はインシデント情報を取得する（ステップＳ１０１）。ここで、図５（ａ）に示すように、インシデント記憶部３１０は複数のインシデント情報を記憶する。各インシデント情報はインシデントＩＤ（図５（ａ）においてＩＮＣ ＩＤと表記）とインシデントを構成要素として含んでいる。インシデントＩＤはインシデントを識別する識別情報である。インシデントは、上述したように、不図示の情報処理システムに対するトラブル報告、要望、問い合わせなどである。例えば、インシデント記憶部３１０は管理ソフトαに関する問い合わせをインシデントとして含むインシデント情報を記憶する。インシデント記憶部３１０は管理ソフトβに関するトラブル報告をインシデントとして含むインシデント情報を記憶する。学習部２６１はインシデント記憶部３１０にアクセスし、インシデント記憶部３１０から複数のインシデント情報を取得する。
【００３０】
ステップＳ１０１の処理が完了すると、学習部２６１はインシデント情報を学習する（ステップＳ１０２）。より詳しくは、学習部２６１は機械学習の１つである教師なし学習によりインシデント情報を学習し、学習済モデルを生成する。尚、教師なし学習の一例として、One-Class Support Vector Machine（ＯＣＳＶＭ）を説明するが、ＯＣＳＶＭに限定されず、ｋ平均法など公知の非階層的手法を採用してもよい。学習部２６１がインシデント情報を学習することにより、図５（ｂ）に示すように、学習部２６１は学習済モデルを生成する。学習済モデルでは、管理ソフトαのインシデントを表す複数の特徴点Ｄ１の集合が境界Ｂ１により囲われている。また、管理ソフトβのインシデントを表す複数の特徴点Ｄ２の集合が境界Ｂ２により囲われている。したがって、境界Ｂ１の内部及び境界Ｂ２の内部のいずれにも属さない特徴点Ｄｐが存在した場合、特徴点Ｄｐは管理ソフトαのインシデント及び管理ソフトβのインシデントのいずれにも該当しないため、雑談を表していると判断することができる。
【００３１】
ステップＳ１０２の処理が完了すると、学習部２６１は学習済モデルを保存する（ステップＳ１０３）。学習部２６１は学習済モデルを学習済モデル記憶部２６２に保存する。これにより、学習済モデル記憶部２６２は学習済モデルを記憶する。したがって、雑談判断部２６３は制御部２５１から出力された発話を受け付けた場合、学習済モデル記憶部２６２が記憶する学習済モデルを利用して、発話が雑談か否かを判断することができる。
【００３２】
図６はＡＰＩ管理部２２１及びＡＩ部２２２の対話処理の一例を示すフローチャート（その１）である。図７はＡＰＩ管理部２２１及びＡＩ部２２２の対話処理の一例を示すフローチャート（その２）である。尚、図６及び図７は対応する文字「Ａ」、「Ｂ」及び「Ｃ」により連続している。
【００３３】
まず、図６に示すように、制御部２５１は発話を受け付ける（ステップＳ２０１）。より詳しくは、制御部２５１は通信部２１０が受信した発話を受け付ける。ステップＳ２０１の処理が完了すると、次いで、制御部２５１は対話状態を確認し（ステップＳ２０２）、対話前であるか否かを判断する（ステップＳ２０３）。制御部２５１はユーザ端末１００との対話状態を管理しており、対話状態が対話前を表す状態を表しているときに制御部２５１が発話を受け付けると、制御部２５１は対話前であると判断する（ステップＳ２０３：ＹＥＳ）。
【００３４】
制御部２５１が対話前であると判断すると、制御部２５１は対話状態を、対話前を表す状態から対話中を表す状態に切り替え、発話が質問であるか否かを判断する（ステップＳ２０４）。ここで、質問は種類が異なる２つの質問に大きく分けられる。例えば「聞いてもいいですか？」といった質問は質問の対象を具体的に特定しない質問である。このような質問を以下では抽象質問という。一方、「管理ソフトαのインストールについて教えてください。」といった質問は質問の対象を具体的に特定した質問である。このような質問を以下では特定質問という。その他、発話によっては「今日は蒸し暑いですね。」といった雑談の場合もある。制御部２５１は受け付けた発話を形態素解析によって解析し、例えば「？」といった特定の記号が発話に含まれていたり、「教えて」といった特定の文字列が発話に含まれていたりした場合、制御部２５１は発話が質問であると判断する（ステップＳ２０４：ＹＥＳ）。逆に、このような特定の記号や特定の文字列が発話に含まれていない場合、制御部２５１は発話が質問でないと判断する（ステップＳ２０４：ＮＯ）。尚、制御部２５１は発話が質問でないと判断しても、この段階では、発話が雑談であると判断せずに、判断を留保する。
【００３５】
制御部２５１は発話が質問であると判断した場合、ＡＰＩ管理部２２１は問い返し発見処理を実行する（ステップＳ２０５）。詳細は後述するが、問い返し発見処理は質問に対応する問い返しを特定する処理である。ＡＰＩ管理部２２１が質問に対応する問い返しを特定すると、通信部２１０はＡＰＩ管理部２２１が特定した問い返しをユーザ端末１００に返信する（ステップＳ２０６）。
【００３６】
問い返しには、第１の回答候補や第２の回答候補を含む複数の回答候補が関連付けられている。したがって、制御装置１３０は対話サーバ２００から返信された問い返しを受信すると、制御装置１３０は問い返しの内容とその問い返しに対する複数の回答候補を有するトーク情報を含む質問画面ＳＣを表示装置１２０に表示する。これにより、図８に示すように、表示装置１２０は、質問画面ＳＣを表示する。質問画面ＳＣはトーク情報のほか、発話を入力するための入力欄ＢＸ、ポインタＰｔの押下により発話を送信するための送信ボタンＢＴを含んでいる。図８に示す質問画面ＳＣでは、ユーザの抽象質問に対する問い返しの内容「製品は何ですか？」とその問い返しに対する第１の回答候補「管理ソフトα」及び第２の回答候補「管理ソフトβ」が示されている。
【００３７】
ここで、図９を参照して、上述した問い返し発見処理について詳しく説明する。
【００３８】
図９はＡＰＩ管理部２２１の問い返し発見処理の一例を示すフローチャートである。図６に示すステップＳ２０４の処理において、発話が質問であると制御部２５１が判断した場合、制御部２５１はその質問を受け付ける（ステップＳ３０１）。制御部２５１は、質問を受け付けると、その質問から回答候補を発見したか否かを判断する（ステップＳ３０２）。回答候補は予め定められている。回答候補としては、例えば「管理ソフトα」や「管理ソフトβ」、「インストール」といった問い返しの内容に応じた文字列がある。したがって、上述した抽象質問の場合、これらの文字列が発話の中に存在しないため、制御部２５１は回答候補を発見しなかったと判断する（ステップＳ３０２：ＮＯ）。逆に、上述した特定質問の場合、これらの文字列が発話の中に出現するため、制御部２５１は回答候補を発見したと判断する（ステップＳ３０２：ＹＥＳ）。
【００３９】
制御部２５１が回答候補を発見しなかったと判断した場合、制御部２５１は最初の問い返しを特定する（ステップＳ３０３）。より詳しくは、制御部２５１はトークルール記憶部２３１を参照して、最初の問い返しを特定する。トークルール記憶部２３１は、図１０に示すように、問い返しの順序が規定された複数のトーク情報１０，２０，３０，３５，４０，５０，５５を記憶する。図１０において、問い返しの順序はトーク情報１０に含まれる文字列「Ｑ１」やトーク情報２０に含まれる文字列「Ｑ２」などによって規定されている。したがって、本実施形態では、問い返しの内容「製品は何ですか？」を含むトーク情報１０が最初の問い返しに相当する。
【００４０】
制御部２５１が最初の問い返しを特定すると、制御部２５１は問い返しを実行し（ステップＳ３０４）、問い返し発見処理を終了する。これにより、通信部２１０はステップＳ２０６の処理（図６参照）を実行し、制御装置１３０は図８に示す質問画面ＳＣを表示装置１２０に表示する。
【００４１】
一方、制御部２５１が回答候補を発見した判断した場合、制御部２５１は対応する問い返しを特定する（ステップＳ３０５）。より詳しくは、制御部２５１は、トークルール記憶部２３１を参照して、発見した回答候補に対応する問い返しを特定する。例えば、特定質問に「管理ソフトα」及び「インストール」といった回答候補が含まれていれば、これらの回答候補に対応する問い返しを特定する。したがって、図１０に示すトークルール記憶部２３１を参照して、制御部２５１は、問い返しの内容「製品は何ですか？」を含むトーク情報１０を、対応する問い返しとして特定する。また、制御部２５１は、問い返しの内容「操作は何ですか？」を含むトーク情報４０を、対応する問い返しとして特定する。さらに、制御部２５１は、問い返しの内容「詳細な操作は何ですか？」を含むトーク情報５０，５５を、対応する問い返しとして特定する。
【００４２】
ステップＳ３０５の処理が完了すると、算出部２５２は複数の類似度を算出する（ステップＳ３０６）。より詳しくは、図１１（ａ）に示すように、算出部２５２は、特定した問い返し及びその問い返しへの第１の回答候補を含む第１の特定トーク情報１１と、特定質問との第１の類似度を算出する。本実施形態では、特定した問い返しへの第１の回答候補「管理ソフトα」と特定質問に含まれる文字列「管理ソフトα」が共通するため、算出部２５２は例えば類似度「０．３」を第１の類似度として算出する。同様に、算出部２５２は、特定した問い返し及びその問い返しへの第２の回答候補を含む第２の特定トーク情報１２と、特定質問との第２の類似度を算出する。本実施形態では、特定した問い返しへの第２の回答候補「管理ソフトβ」と特定質問に含まれる文字列「管理ソフトα」が共通しないため、算出部２５２は例えば類似度「０」を第２の類似度として算出する。尚、算出部２５２はコサイン類似度やJaccard係数、Dice係数の少なくとも１つを利用して、第１の類似度及び第２の類似度を算出する。
【００４３】
その他、図１２（ａ）に示すように、算出部２５２は、特定した問い返し及びその問い返しへの第１の回答候補を含む第１の特定トーク情報４１と、特定質問との第１の類似度を算出する。本実施形態では、特定した問い返しへの第１の回答候補「インストール」と特定質問に含まれる文字列「インストール」が共通するため、算出部２５２は例えば類似度「０．３」を第１の類似度として算出する。同様に、算出部２５２は、特定した問い返し及びその問い返しへの第２の回答候補を含む第２の特定トーク情報４２と、特定質問との第２の類似度を算出する。本実施形態では、特定した問い返しへの第２の回答候補「設定」と特定質問に含まれる文字列「インストール」が共通しないため、算出部２５２は例えば類似度「０」を第２の類似度として算出する。また、図１２（ｂ）に示すように、算出部２５２は、特定した問い返し及びその問い返しへの第１の回答候補を含む第１の特定トーク情報５１と、特定質問との第１の類似度を算出する。本実施形態では、特定した問い返しへの第１の回答候補「運用サーバへのインストール」と特定質問に含まれる文字列「インストール」が共通するため、算出部２５２は例えば類似度「０．２２」を第１の類似度として算出する。同様に、算出部２５２は、特定した問い返し及びその問い返しへの第２の回答候補を含む第２の特定トーク情報５２と、特定質問との第２の類似度を算出する。本実施形態では、特定した問い返しへの第２の回答候補「メールサーバへのインストール」と特定質問に含まれる文字列「インストール」も共通するため、算出部２５２は例えば類似度「０．２３」を第２の類似度として算出する。尚、図１２（ｂ）に示す第１の回答候補及び第２の回答候補において「インストール」の文字列は省略されている。以上、算出部２５２は複数のトーク情報１０，４０，５０に関する第１の類似度及び第２の類似度を算出することを説明したが、トーク情報５５についてもトーク情報１０，４０，５０と同様に算出する。このように、算出部２５２は特定した問い返し毎に第１の類似度及び第２の類似度を算出する。仮に、第３の回答候補が存在する場合には、算出部２５２は同様の手法により第３の類似度も算出する。
【００４４】
ステップＳ３０６の処理が完了すると、次いで、算出部２５２は第１の類似度と第２の類似度の大きい方から第１の類似度と第２の類似度の小さい方を引いた差分を算出する（ステップＳ３０７）。したがって、図１１（ａ）に示すように、類似度「０．３」である第１の類似度と類似度「０」である第２の類似度の場合、算出部２５２は差分「０．３」を算出する。図１２（ａ）の場合についても図１１（ａ）の場合と同様である。一方、図１２（ｂ）に示すように、類似度「０．２２」である第１の類似度と類似度「０．２３」である第２の類似度の場合、算出部２５２は差分「０．０１」を算出する。
【００４５】
ステップＳ３０７の処理が完了すると、次いで、制御部２５１は差分が基準値より大きいか否かを判断する（ステップＳ３０８）。ステップＳ３０８の処理については、制御部２５１は差分が基準を満たすか否かを判断すると言い換えてもよい。基準値は設計に応じて適宜定めればよい。本実施形態では基準値「０．１」を採用する。したがって、差分「０．３」については基準値「０．１」より大きいため、制御部２５１は差分が基準値より大きいと判断する（ステップＳ３０８：ＹＥＳ）。逆に、差分「０．０１」については基準値「０．１」より小さいため、制御部２５１は差分が基準値より小さいと判断する（ステップＳ３０８：ＮＯ）。
【００４６】
制御部２５１が差分は基準値より大きいと判断した場合、トーク管理部２５３は、差分「０．３」の算出元である第１の類似度と第２の類似度のうち、類似度が大きい方に対応する特定トーク情報を管理する（ステップＳ３０９）。したがって、図１１（ａ）に示す第１の特定トーク情報１１及び第２の特定トーク情報１２であれば、トーク管理部２５３は図１１（ａ）に示す第１の特定トーク情報１１を管理する。同様に、図１２（ａ）に示す第１の特定トーク情報４１及び第２の特定トーク情報４２であれば、トーク管理部２５３は図１２（ａ）に示す第１の特定トーク情報４１を管理する。すなわち、特定質問に基づいてユーザから回答を求める必要がないと推定される問い返しの内容を含む情報を問い返しのスキップ対象としてトーク管理部２５３は管理する。トーク管理部２５３がスキップ対象を管理すると、制御部２５１は順序が若いスキップ対象の次のトーク情報を問い返しの返信対象として選択する。すなわち、図１１（ａ）に示す第１の特定トーク情報１１と図１２（ａ）に示す第１の特定トーク情報４１をスキップ対象としてトーク管理部２５３が管理した場合、制御部２５１は文字列「Ｑ２」を含むトーク情報２０（図１０参照）を問い返しの返信対象として選択する。
【００４７】
ステップＳ３０９の処理が完了すると、次いで、制御部２５１は第１の類似度と第２の類似度の大きさを判断する（ステップＳ３１０）。制御部２５１は第１の類似度が第２の類似度より大きいと判断した場合（ステップＳ３１０：ＹＥＳ）、第１の回答候補を用いて、新たなトーク情報を選択する（ステップＳ３１１）。より詳しくは、制御部２５１は、トークルール記憶部２３１を参照し、第１の回答候補の場合に遷移するトーク情報を、質問元であるユーザへの新たなトーク情報として選択する。したがって、第１の回答候補「管理ソフトα」の場合には、制御部２５１は第１の回答候補「管理ソフトα」のバージョンに関する文字列「Ｑ３」を含むトーク情報３０を選択する。ステップＳ３１１の処理が完了すると、制御部２５１は問い返し発見処理を終了する。
【００４８】
これにより、制御部２５１はステップＳ２０６の処理（図６参照）を実行すると、制御装置１３０は、図１１（ｂ）に示す質問画面ＳＣを表示装置１２０に表示する。すなわち、ユーザが質問画面ＳＣで特定質問を入力すると、質問画面ＳＣには、文字列「Ｑ１」を含むトーク情報１０の出現が抑制されて、文字列「Ｑ２」を含むトーク情報２０の内容が出現する。すなわち、対話サーバ２００は特定質問の内容から文字列「Ｑ１」を含むトーク情報１０の回答は得られたと判断し、文字列「Ｑ２」を含むトーク情報２０の回答をユーザに要求する。
【００４９】
一方、制御部２５１は第２の類似度が第１の類似度より大きいと判断した場合（ステップＳ３１０：ＮＯ）、第２の回答候補を用いて、新たなトーク情報を選択する（ステップＳ３１２）。より詳しくは、制御部２５１は、トークルール記憶部２３１を参照し、第２の回答候補の場合に遷移するトーク情報を、質問元であるユーザへの新たなトーク情報として選択する。したがって、第２の回答候補「管理ソフトβ」の場合には、制御部２５１は第２の回答候補「管理ソフトβ」のバージョンに関する文字列「Ｑ３」を含むトーク情報を選択する。ステップＳ３１２の処理が完了すると、制御部２５１は問い返し発見処理を終了する。
【００５０】
尚、ステップＳ３０８の処理において、制御部２５１は差分が基準値より小さいと判断した場合、制御部２５１はステップＳ３０４の処理を実行する。すなわち、図１２（ｂ）に示すように、特定質問から文字列「Ｑ５」の問い返しの内容への明確な回答候補を絞ることができないため、このような場合、制御部２５１は問い返しを実行して、問い返し発見処理を終了する。
【００５１】
図６に戻り、ステップＳ２０４の処理において、制御部２５１は発話が質問でないと判断した場合、雑談判断部２６３は発話が雑談であるか否かを判断する（ステップＳ２０７）。より詳しくは、雑談判断部２６３は制御部２５１から出力された発話を受け付けると、学習済モデルに基づいて、受け付けた発話が雑談であるか否かを判断する。例えば発話に応じた特徴点が境界Ｂ１の内部及び境界Ｂ２の内部（図５（ｂ）参照）のいずれにも属さない場合、受け付けた発話が雑談であると判断し（ステップＳ２０７：ＹＥＳ）、肯定的な結果を出力する。これにより、制御部２５１は雑談応答を返信する（ステップＳ２０８）。したがって、図１３に示すように、表示装置１２０は、ユーザの雑談に対する雑談応答「今日も暑いですね。雨は降っていませんか？」を含む質問画面ＳＣを表示する。
【００５２】
一方、雑談判断部２６３は受け付けた発話が雑談でないと判断した場合（ステップＳ２０７：ＮＯ）、否定的な結果を出力する。これにより、ＡＰＩ管理部２２１は問い返し発見処理を実行する（ステップＳ２０９）。例えば、発話の内容が「管理ソフトαは使い易い」といった場合、雑談に相当する可能性が高くても、この内容に「管理ソフトα」が含まれているため、本実施形態では、この内容の特徴点は境界Ｂ１の内部に属する可能性がある。このような場合、ＡＰＩ管理部２２１は問い返し発見処理を実行し、制御部２５１はこの内容を質問として受け付けて、後続の処理を実行する。
【００５３】
ここで、上述したステップＳ２０３の処理において、対話状態が対話中を表す状態を表しているときに制御部２５１が発話を受け付けると、制御部２５１は対話中であると判断する（ステップＳ２０３：ＮＯ）。この場合、図７に示すように、制御部２５１は発話が数字であるか否かを判断する（ステップＳ３０１）。例えば、図１１（ｂ）に示すように、制御部２５１は発話が数字であると判断した場合（ステップＳ３０１：ＹＥＳ）、トークルール記憶部２３１を参照して、次の問い返しがあるか否かを判断する（ステップＳ３０２）。本実施形態では、図１０に示すように、Operating System（ＯＳ）を尋ねる文字列「Ｑ２」を含むトーク情報２０の次に、文字列「Ｑ３」を含むトーク情報３０が記憶されている。このため、制御部２５１は次の問い返しがあると判断し（ステップＳ３０２：ＹＥＳ）、次の問い返しに遷移する（ステップＳ３０３）。そして、制御部２５１は現在の問い返しを特定して（ステップＳ３０４）、ステップＳ２０６の処理を実行する。これにより、制御装置１３０は文字列「Ｑ３」を含むトーク情報３０を表示装置１２０に表示する。
【００５４】
尚、図７に示すように、制御部２５１は発話が数字でないと判断した場合（ステップＳ３０１：ＮＯ）、ステップＳ３０４の処理を実行する。すなわち、本実施形態では、数字以外の発話が入力欄ＢＸに入力されて送信された場合、同じ質問が繰り返される。すなわち、図８に示す場合であれば、制御装置１３０は文字列「Ｑ１」を含むトーク情報１０を再び表示装置１２０に表示する。
【００５５】
ステップＳ３０２の処理において、制御部２５１は次の問い返しがないと判断した場合（ステップＳ３０２：ＮＯ）、又は、図６に示すステップＳ２０９の処理が完了すると、制御部２５１はマニュアル情報を検索する（ステップＳ２１０）。すなわち、本実施形態において、制御部２５１がトークルール記憶部２３１を参照し、文字列「Ｑ５」を含むトーク情報５０に続くトーク情報がないことを確認すると、制御部２５１はマニュアル情報を検索する。
【００５６】
ここで、制御部２５１は、マニュアル記憶部２３２を参照して、マニュアル情報を検索する。マニュアル記憶部２３２は、図１４（ａ）に示すように、マニュアルタイトルが異なる複数のマニュアル情報を記憶する。制御部２５１は、マニュアル記憶部２３２を参照し、制御装置１３０から送信された発話によって特定された正式な回答、及びトーク管理部２５３が管理する特定トーク情報の回答に応じたマニュアル情報を検索して特定する。ステップＳ２１０の処理が完了すると、制御部２５１は特定したマニュアル情報を返信し（ステップＳ２１１）、処理を終了する。これにより、図１４（ｂ）に示すように、制御装置１３０はマニュアル情報を含む質問画面ＳＣを表示装置１２０に表示する。ユーザは質問画面ＳＣに含まれるマニュアルタイトルの中から自身が探していたマニュアルタイトルを特定して指示することにより、制御装置１３０は特定したマニュアルタイトルと対応付けられた操作マニュアルを表示装置１２０に表示する。
【００５７】
以上、本実施形態によれば、対話サーバ２００は処理部２２０を含んでいる。特に、処理部２２０はＡＰＩ管理部２２１に制御部２５１と算出部２５２を含んでいる。制御部２５１は質問を受け付ける。算出部２５２は質問の質問元への問い返しの内容と、問い返しへの回答の内容の候補である第１の回答候補とを含む第１の特定トーク情報と、受け付けた質問との第１の類似度を算出する。また、質問の質問元への問い返しの内容と、問い返しへの回答の内容の候補である第２の回答候補とを含む第２の特定トーク情報と、受け付けた質問との第２の類似度を算出する。制御部２５１は算出部２５２が算出した第１の類似度及び第２の類似度の差分が基準を満たすか否かに応じて、質問元への問い返しの実行を行うか否かを制御する。これにより、質問の意図と関係性が低い問い返しの実行を抑制することができる。
【００５８】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００５９】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）質問を受け付け、前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、処理をコンピュータが実行することを特徴とする制御方法。
（付記２）前記差分が基準値よりも小さい場合、前記問い返しの実行を行い、前記差分が基準値よりも大きい場合、前記問い返しの実行を抑制する、ことを特徴とする付記１に記載の制御方法。
（付記３）前記差分が基準値よりも大きく、かつ、前記第１の類似度が前記第２の類似度よりも大きい場合、前記第１の回答候補を用いて、記憶部に記憶された複数の問い返しの内容の候補のうち、前記質問元への新たな問い返しの内容を選択する、ことを特徴とする付記１又は２に記載の制御方法。
（付記４）発話を受け付け、受け付けた前記発話に質問を表す特定の記号又は特定の文字列が含まれるか否かを判断し、前記発話に前記特定の記号又は前記特定の文字列が含まれると判断した場合に、前記質問を受け付ける、ことを特徴とする付記１から３のいずれか１項に記載の制御方法。
（付記５）発話を受け付け、受け付けた前記発話と、学習対象に基づいて生成された学習済モデルとに基づいて、前記発話が雑談か否かを判断し、前記発話が前記雑談でないと判断した場合に、前記質問を受け付ける、ことを特徴とする付記１から４のいずれか１項に記載の制御方法。
（付記６）前記問い返しの内容には、問い返す順序が規定されている、ことを特徴とする付記１から５のいずれか１項に記載の制御方法。
（付記７）質問を受け付け、前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、処理をコンピュータに実行させることを特徴とする制御プログラム。
（付記８）質問を受け付け、前記質問の質問元への問い返しの内容と、前記問い返しへの回答の内容の候補である第１の回答候補とを含む第１の情報と、受け付けた前記質問との第１の類似度を算出し、前記質問の質問元への前記問い返しの内容と、前記問い返しへの回答の内容の候補である第２の回答候補とを含む第２の情報と、受け付けた前記質問との第２の類似度を算出し、算出した前記第１の類似度及び前記第２の類似度の差分が基準を満たすか否かに応じて、前記質問元への前記問い返しの実行を行うか否かを制御する、処理を実行する処理部を備えることを特徴とする情報処理装置。
（付記９）前記処理部は、前記差分が基準値よりも小さい場合、前記問い返しの実行を行い、前記差分が基準値よりも大きい場合、前記問い返しの実行を抑制する、ことを特徴とする付記８に記載の情報処理装置。
（付記１０）前記処理部は、前記差分が基準値よりも大きく、かつ、前記第１の類似度が前記第２の類似度よりも大きい場合、前記第１の回答候補を用いて、記憶部に記憶された複数の問い返しの内容の候補のうち、前記質問元への新たな問い返しの内容を選択する、ことを特徴とする付記８又は９に記載の情報処理装置。
（付記１１）前記処理部は、発話を受け付け、受け付けた前記発話に質問を表す特定の記号又は特定の文字列が含まれるか否かを判断し、前記発話に前記特定の記号又は前記特定の文字列が含まれると判断した場合に、前記質問を受け付ける、ことを特徴とする付記８から１０のいずれか１項に記載の情報処理装置。
（付記１２）前記処理部は、発話を受け付け、受け付けた前記発話と、学習対象に基づいて生成された学習済モデルとに基づいて、前記発話が雑談か否かを判断し、前記発話が前記雑談でないと判断した場合に、前記質問を受け付ける、ことを特徴とする付記８から１１のいずれか１項に記載の情報処理装置。
（付記１３）前記問い返しの内容には、問い返す順序が規定されている、ことを特徴とする付記８から１２のいずれか１項に記載の情報処理装置。
【符号の説明】
【００６０】
ＳＴ  対話システム
１００  ユーザ端末
２００  対話サーバ
２１０  通信部
２２０  処理部
２５１  制御部
２５２  算出部
２３０  記憶部
３００  管理サーバ
【図１】
2020060894.tif 000003
【図２】
2020060894.tif 000004
【図３】
2020060894.tif 000005
【図４】
2020060894.tif 000006
【図５】
2020060894.tif 000007
【図６】
2020060894.tif 000008
【図７】
2020060894.tif 000009
【図８】
2020060894.tif 000010
【図９】
2020060894.tif 000011
【図１０】
2020060894.tif 000012
【図１１】
2020060894.tif 000013
【図１２】
2020060894.tif 000014
【図１３】
2020060894.tif 000015
【図１４】
2020060894.tif 000016