(57)【要約】【課題】対話相手のユーザの知識の推定精度を向上させること。【解決手段】対話装置は、ユーザから第１の質問の入力を受け付ける受付部と、前記第１の質問に関連する用語の理解の有無をユーザに問う第２の質問を出力する出力部と、前記第２の質問に対する回答の内容及び前記回答を示す文字列の入力操作の状況に基づいて、前記第１の質問に関連する分野に関する前記ユーザの知識のレベルを推定する推定部と、前記推定部が推定したレベルに応じて、前記第１の質問に対する回答の内容を生成する生成部とを有する。【選択図】図２
2019028604.tif 000002
【特許請求の範囲】
【請求項１】
ユーザから第１の質問の入力を受け付ける受付部と、
前記第１の質問に関連する用語の理解の有無をユーザに問う第２の質問を出力する出力部と、
前記第２の質問に対する回答の内容及び前記回答を示す文字列の入力操作の状況に基づいて、前記第１の質問に関連する分野に関する前記ユーザの知識のレベルを推定する推定部と、
前記推定部が推定したレベルに応じて、前記第１の質問に対する回答の内容を生成する生成部と、
を有することを特徴とする対話装置。
【請求項２】
前記生成部は、用語ごとに記憶部に記憶されている難易度と、前記推定部が推定したレベルとに基づいて、前記第１の質問に対する回答に含まれる用語のうち、前記ユーザが理解していないことが推定される用語を特定し、特定した用語に対して記憶部に記憶されている説明文を、前記第１の質問に対する回答に含める、
ことを特徴とする請求項１記載の対話装置。
【請求項３】
前記推定部は、前記第２の質問に対する回答の内容に基づいて特定される、前記ユーザが理解している用語に対して記憶部に記憶されている難易度に基づいて、前記レベルを推定する、
ことを特徴とする請求項１又は２記載の対話装置。
【請求項４】
ユーザから第１の質問の入力を受け付ける受付手順と、
前記第１の質問に関連する用語の理解の有無をユーザに問う第２の質問を出力する出力手順と、
前記第２の質問に対する回答の内容及び前記回答を示す文字列の入力操作の状況に基づいて、前記第１の質問に関連する分野に関する前記ユーザの知識のレベルを推定する推定手順と、
前記推定手順において推定したレベルに応じて、前記第１の質問に対する回答の内容を生成する生成手順と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話装置及びプログラムに関する。
【背景技術】
【０００２】
現状の対話システムは、ユーザの特性に関わらずどのようなユーザに対しても画一的に応答を行っているものが多い。しかし、ユーザの嗜好や知識の有無に関わらず画一的に応答をしていると、応答内容の満足度や理解度を高められない。そこで、ユーザの特性を自動的に推定し、推定結果に応じた応対内容を提示する必要がある。
【０００３】
ユーザの特性の一つとして、ＰＣやスマートフォン、タブレットといったＩＣＴ（Information and Communication Technology）に関する知識量が挙げられる。現在、ＩＣＴ機器やサービスに関するユーザからの問い合わせに関して、音声やテキストの対話システムが用いられることが多いことから、ＩＣＴに関する知識量を対話システムの利用の中から推定し、知識量に応じた対話をすることは重要である。
【０００４】
従来、ユーザのＩＣＴに関するリテラシや、機器の操作方法の知識、用語の知識などのレベルに応じて、そのユーザにとって理解しやすい表現に用語を変換する技術が提案されている（特許文献１、２）。また、ユーザのＩＣＴに関する知識量を推定する技術も提案されている（特許文献３、４）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５０６２４号公報
【特許文献２】特開２０１４−２５１７号公報
【特許文献３】特開２０１３−１１７８４２号公報
【特許文献４】特開２０１４−１１５７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の技術では、コールセンタ等でオペレータがユーザの年齢やインターネット利用年数などに基づいてユーザのリテラシレベルを手動で入力した上で、そのレベルに応じて理解しやすいようにＩＣＴ用語を変換して出力し、オペレータの応対支援を行なっている。
【０００７】
また、特許文献２記載の技術では、ユーザのＩＣＴスキルレベルを事前のアンケートの結果に基づいて予め算出した上で、そのレベルのユーザに対して各ＩＣＴ用語が与える感覚の程度を推定している。
【０００８】
このように、特許文献１、２の技術を用いて、ユーザのＩＣＴに関する知識量などのレベルに応じて、適切な表現を検討することが可能である。しかし、ユーザのＩＣＴに関する知識量などの算出方法は、オペレータの入力やアンケートの回答に基づいており、自動的に推定することができない。
【０００９】
一方で、特許文献３記載の技術では、ユーザやオペレータの質問回数やそのタイミングの情報を用いて、ユーザの知識量を２段階か３段階で「知識量が大きい」、「知識量が中程度」、「知識量が小さい」のように推定している。しかし、この推定結果からは、知識量の大きいユーザはどのような用語を知っていて、知識量の小さいユーザはどのような用語を知らないのかという部分まで、具体的に知ることができない。そのため、推定結果を用いてユーザの知識量に応じた応対をしようとしても、例えば、知識量が小さいユーザに対してどのように説明すれば良いのかを知ることができない。
【００１０】
また、特許文献４記載の技術では、ＩＣＴ用語の語彙ネットワークを作成し、ＩＣＴ用語に対応するノードと、この用語を知っていれば別のこの用語も知っているとする有向リンクに従って、ユーザがある用語が既知であるか否かの入力情報から知識を推定している。この技術によって、ユーザの既知と未知の用語を知ることができる。しかし、ユーザからの用語の理解に関する入力情報が不十分である場合には、精度が落ちてしまう。
【００１１】
本発明は、上記の点に鑑みてなされたものであって、対話相手のユーザの知識の推定精度を向上させることを目的とする。
【課題を解決するための手段】
【００１２】
そこで上記課題を解決するため、対話装置は、ユーザから第１の質問の入力を受け付ける受付部と、前記第１の質問に関連する用語の理解の有無をユーザに問う第２の質問を出力する出力部と、前記第２の質問に対する回答の内容及び前記回答を示す文字列の入力操作の状況に基づいて、前記第１の質問に関連する分野に関する前記ユーザの知識のレベルを推定する推定部と、前記推定部が推定したレベルに応じて、前記第１の質問に対する回答の内容を生成する生成部とを有する。
【発明の効果】
【００１３】
対話相手のユーザの知識の推定精度を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態における対話装置１０のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における対話装置１０の機能構成例を示す図である。
【図３】対話装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図４】対話シナリオ記憶部１６１のシナリオ表の構成例を示す図である。
【図５】文字入力速度記憶部１６２の構成例を示す図である。
【図６】質問文生成処理の処理手順の一例を説明するためのフローチャートである。
【図７】用語理解の有無の判定例を説明するための図である。
【図８】用語理解記憶部１６３の構成例を示す図である。
【図９】用語説明記憶部１６４の構成例を示す図である。
【図１０】対話シナリオ記憶部１６１のＴＥＴＨＥＲＩＮＧのタスク表の構成例を示す図である。
【図１１】回答文生成処理の処理手順の一例を説明するためのフローチャートである。
【図１２】用語理解度の算出方法の第１の例を示す図である。
【図１３】用語理解度の算出方法の第２の例を示す図である。
【図１４】知識量の推定方法の第１の例を示す図である。
【図１５】知識量の推定方法の第２の例を示す図である。
【図１６】対話シナリオ記憶部１６１のＴＥＴＨＥＲＩＮＧの回答文表の構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、対話装置１０が、ユーザのＩＣＴ（Information and Communication Technology）に関する知識量を、非言語情報と用語の理解に関する入力情報から推定し、知識量に応じた回答を提示する例について説明する。
【００１６】
図１は、本発明の実施の形態における対話装置１０のハードウェア構成例を示す図である。図１の対話装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００１７】
対話装置１０での処理を実現するプログラムは、ＳＤカード、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って対話装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００１９】
対話装置１０は、ユーザが問い合わせをするために使用する端末であってもよいし、当該端末とは別の装置であってもよいが、本実施の形態では、対話装置１０は、ユーザが問い合わせをするために使用する端末であるとして説明する。この場合、例えば、携帯電話、スマートフォン、タブレット端末、又はＰＣ（Personal Computer）等が、斯かる端末の一例として挙げられる。但し、対話装置１０は、ユーザが操作する端末にネットワークを介して接続する１以上のコンピュータによって実現されてもよい。
【００２０】
図２は、本発明の実施の形態における対話装置１０の機能構成例を示す図である。対話装置１０は、ユーザからの冒頭の質問（以下、「ユーザ冒頭質問」という。）に関連する分野（本実施の形態ではＩＣＴ分野）に関する知識量を、ユーザと対話装置１０との対話中の非言語情報と用語の理解に関するユーザによる入力情報から推定し、知識量に応じた説明を提示する装置である。なお、ユーザと対話装置１０との対話は、基本的に、ユーザ冒頭質問に関連する分野に関するユーザの知識量を推定するために対話装置１０から出力される質問文と、当該質問文に対するユーザによる回答（以下、「ユーザ回答」という。）を示す文字列の入力との１回以上の繰り返しによって行われる。ユーザの知識量の推定を行うために十分な対話が行われると、対話装置１０は、ユーザ冒頭質問に対する回答（以下、「システム回答」という。）をユーザの知識量に応じて生成し、当該システム回答を出力する。
【００２１】
図２において、対話装置１０は、質問文生成部１１、テキスト入力部１２、対話制御部１３、対話文出力部１４及び回答文生成部１５等を有する。質問文生成部１１は、選択肢判定部１１１及び用語理解判定部１１２を含む。また、回答文生成部１５は、知識量推定部１５１を含む。知識量推定部１５１は、文字入力速度算出部１５１１及び用語理解度算出部１５１２を含む。これら各部は、対話装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。対話装置１０は、また、対話シナリオ記憶部１６１、文字入力速度記憶部１６２、用語理解記憶部１６３及び用語説明記憶部１６４等を利用する。これら各記憶部は、例えば、補助記憶装置１０２、又は対話装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２２】
以下、対話装置１０が実行する処理手順について説明する。図３は、対話装置１０が実行する処理手順の一例を説明するためのフローチャートである。図３のフローチャートは、対話装置１０がユーザの知識量を推定し、ユーザ冒頭質問に対して、当該知識量に応じたシステム回答を提示する際に、対話装置１０が実行する全体の処理手順を示す。
【００２３】
ステップＳ１において、対話装置１０は、ユーザによる所定の操作に応じて対話機能を起動する。当該対話機能は、例えば、対話装置１０のブラウザ上で動作するテキスト対話システムや、独立した対話アプリ等のプログラムが、ＣＰＵ１０４に実行させる処理により実現される、図２に示した機能構成を有する機能である。
【００２４】
続いて、対話制御部１３は、対話シナリオ記憶部１６１に記憶されているシナリオ表を参照し、最初に出力する質問文を取得して（Ｓ２）、取得した質問文を対話文出力部１４へ出力する。対話装置１０が最初に出力する質問文が示す質問を、以下「システム冒頭質問」という。
【００２５】
図４は、対話シナリオ記憶部１６１のシナリオ表の構成例を示す図である。シナリオ表は、ユーザと対話装置１０との対話のシナリオが定義されたテーブルであり、「ステータス」、「タスク」、「選択肢」、「質問文」、「キーワード」及び「ジャンプ先ステータス」等の列（項目）を有する。なお、図４において、「ステータス」によって区切られる行の単位を以下「ステータスレコード」という。
【００２６】
「ステータス」は、対話のステータス（状態）を区別する概念である。「質問文」は、対応するステータスにおいてユーザに対して出力されるべき質問文である。すなわち、ステータスと質問文とは１対１に対応する。「キーワード」は、質問文に対してユーザによって入力される文字列の内容に応じて次の遷移先のステータス等（ジャンプ先のステータス等）を区別するためのキーワードである。「キーワード」における「キーワードＴＲＵＥ」の値は、質問文に対してユーザによって入力された文字列に、指定されたキーワードが含まれない場合を示す。また、キーワードが質問文に含まれていないこと、すなわち、登録されていないことは、質問文の出力後、ユーザからの文字列の入力を待たずに次のステータスへ遷移することを示す。例えば、図４においては、「ステータス」が「ＡＧＡＩＮ（）」、「ＥＸＰＬＡＩＮ（）」に対する「キーワード」の欄が空欄となっている。したがって、「ステータス」が「ＡＧＡＩＮ（）」、「ＥＸＰＬＡＩＮ（）」の「質問文」が出力された場合には、ユーザからの文字列の入力を待たずに次のステータスに対応する質問文が出力される。
【００２７】
「ジャンプ先ステータス」は、ユーザによって入力された文字列に含まれているキーワードに応じた遷移先のステータスを示す。「ジャンプ先ステータス」に複数のステータスが含まれている場合、各ステータスが順番に選択されて、各ステータスに対応する質問文が出力されることを意味する。また、「ジャンプ先ステータス」における「ｎｅｘｔ」は、当該「ｎｅｘｔ」を含むステータスの遷移基であったステータスの「ジャンプ先ステータス」において複数列記されているステータスの次のステータスに遷移することを意味する。すなわち、「ジャンプ先ステータス」に複数のステータスが含まれている場合の末尾以外のステータスの「ジャンプ先ステータス」の値は、「ｎｅｘｔ」とされている。
【００２８】
「タスク」は、該当するステータスがタスクを実行するステータスであるか否かを示す。具体的には、「タスク」の値が「タスクＴＲＵＥ」であるステータスは、タスクを実行することを示し、「タスク」が空欄であるステータスは、タスクを実行しないことを示す。タスクとは、ユーザとの対話に応じて対話装置１０が最終的に実行する処理をいい、本実施の形態では、ユーザ冒頭質問に対するシステム回答を示す回答文の出力がタスクに相当する。
【００２９】
「選択肢」は、該当するステータスにおける「質問文」の内容が、用語理解へのユーザ回答の選択肢を与える質問文であるか否かを示す。
【００３０】
対話制御部１３は、ステップＳ２で、例えば図４のようなシナリオ表から現在のステータスに対応する質問文をテキストとして取得する。本実施の形態において最初のステータスは「ＳＴＡＲＴ」である。したがって、対話制御部１３は、「ＳＴＡＲＴ」ステータスに対応する「質問文」のテキストである「こんにちは！ご用件を教えてね！」を取得する。
【００３１】
続いて、対話制御部１３が、取得した質問文のテキストを対話文出力部１４に対して出力すると、対話文出力部１４が入力された当該質問文のテキストをディスプレイ等の表示装置１０６に対して出力する（Ｓ３）。例えば、表示装置１０６に質問文がテキストで表示される。続いて、対話制御部１３は、シナリオ表（図４）において、現在のステータスに対応するキーワードが登録されているか否かを判定する（Ｓ４）。キーワードが登録されていない場合（Ｓ４でＮｏ）、ステップＳ８へ進む。すなわち、シナリオ表（図４）において、「キーワード」の項目が空欄である場合、対話制御部１３は、ユーザからの文字列の入力を待機しない。
【００３２】
現在のステータスにキーワードが登録されている場合（Ｓ４でＹｅｓ）、テキスト入力部１２は、質問文に対する文字列の入力をユーザから受け付ける（Ｓ５）。例えば、ユーザは、キーボード等の入力装置１０７を利用して文字列を入力する。この際、テキスト入力部１２は、ユーザが入力する文字列を受け付けると共に、ユーザが文字列の入力を開始してから完了するまでの所要時間を計測する。ユーザによる文字列の入力の完了のタイミングは、例えば、当該文字列の入力後における所定の操作（例えば、「送信」ボタンの押下等）によって検知可能である。なお、ステップＳ５が最初に実行される際には、対話装置１０からはシステム冒頭質問を示す質問文が出力されている。この状態においてユーザによって入力される文字列は、通常、ユーザ冒頭質問を示す文字列である。例えば、「テザリングの方法は？」といったユーザ冒頭質問を示す文字列が入力される。一方、ステップＳ５が２回目以降に実行される際において入力される文字列は、対話装置１０が出力した質問文に対するユーザ回答を示す文字列である。ユーザ回答は、ユーザ冒頭質問に関連する分野に関するユーザの知識量を対話装置１０が推定するために用いられる。
【００３３】
続いて、テキスト入力部１２は、入力された文字列と当該所要時間とを対話制御部１３に対して出力する（Ｓ６）。続いて、対話制御部１３は、テキスト入力部１２から入力された当該文字列及び当該所要時間を文字入力速度記憶部１６２に保存する（Ｓ７）。
【００３４】
図５は、文字入力速度記憶部１６２の構成例を示す図である。図５に示されるように、文字入力速度記憶部１６２には、質問文に対する文字列がユーザから入力される度に、当該文字列と当該文字列の入力の所要時間とが記憶される。
【００３５】
続いて、対話制御部１３は、シナリオ表（図４）を参照して、ステータスを更新する（Ｓ８）。すなわち、シナリオ表（図４）と、ユーザに入力された文字列に含まれているキーワードとに基づいて特定される「ジャンプ先ステータス」が新たなステータスとして選択される。例えば、更新前のステータスが「ＳＴＡＲＴ」であり、ユーザに入力された文字列が「テザリングの方法は？」だった場合「ＴＥＴＨＥＲＩＮＧ」が新たなステータスとされる。なお、「ジャンプ先ステータス」に複数のステータスが登録されている場合であって、当該ステータスが最初に処理対象とされる場合、当該複数のステータスの内の１番目（最上位）のステータスが新たなステータスとして選択される。また、当該複数のステータスのうちの２番目以降のステータスは、当該新たなステータスにおける「ジャンプ先ステータス」の「ｎｅｘｔ」に基づいて選択される。
【００３６】
続いて、対話制御部１３は、タスクであるステータスに遷移（ジャンプ）済みであり、かつ、当該タスクに関するパラメータの取得が完了しているか否かを判定する（Ｓ９）。タスクであるステータスとは、シナリオ表（図４）において、タスクの値が「タスクＴＲＵＥ」であるステータスをいう。
【００３７】
タスクであるステータスに遷移済みでない場合、又は当該タスクに関するパラメータの取得が完了していない場合（Ｓ９でＮｏ）、対話制御部１３からの要求により、質問文生成部１１が質問文生成処理を実行する（Ｓ１０）。なお、最初にステップＳ９が実行される際には必ず質問文生成処理（Ｓ１０）が実行される。当該質問文生成処理では、主として、ステップＳ５においてユーザによって入力されたユーザ冒頭質問に対して対話装置１０が適切なシステム回答を行うための質問文が生成される。質問文生成処理に続いてステップＳ３以降が実行される。すなわち、質問文生成処理において生成された質問文に関してステップＳ３以降が実行される。
【００３８】
一方、タスクであるステータスに遷移済みであり、かつ、当該タスクに関するパラメータの取得が完了している場合（Ｓ９でＹｅｓ）、対話制御部１３からの要求により、回答文生成部１５が回答文生成処理を実行する（Ｓ１１）。回答文生成処理では、ステップＳ５においてユーザによって入力されたユーザ冒頭質問に対するシステム回答を示す回答文が生成される。続いて、対話制御部１３が、回答文生成部１５によって生成された回答文を対話文出力部１４に出力すると、対話文出力部１４が入力された当該回答文を出力する（Ｓ１２）。なお、図３では、このまま処理が終了する例が示されているが、引き続きステップＳ２に戻って、別の問い合わせに関して対話が行われてもよい。
【００３９】
続いて、ステップＳ１０の詳細について説明する。図６は、質問文生成処理の処理手順の一例を説明するためのフローチャートである。
【００４０】
まず、質問文生成部１１の選択肢判定部１１１は、シナリオ表（図４）を参照して（Ｓ１０−１）、対話装置１０が最後に出力した質問文が用語理解へのユーザ回答の選択肢を与える質問文であったか否かを判定する（Ｓ１０−２）。具体的には、直前のステータス（更新前のステータス）に対応する「選択肢」の値が「選択肢ＴＲＵＥ」であるか否かが判定される。
【００４１】
例えば、最初に図６の処理手順が実行される場合、対話装置１０が最後に出力した質問文は「こんにちは！ご用件を教えてね！」である。このような質問文は、用語理解へのユーザ回答の選択肢を与える質問文ではない。すなわち、「ＳＴＡＲＴ」のステータスの「選択肢」の値は「選択肢ＴＲＵＥ」ではない。したがって、この場合（Ｓ１０−２でＮｏ）、ステップＳ１０−８へ進む。
【００４２】
一方、ユーザと対話装置１０との対話が進み、対話装置１０が最後に出力した質問文に対応するステータス、即ち、直前のステータスが「ＴＥＴＨＥＲＩＮＧ」であったとすれば、対話装置１０は、「テザリングの方法だね！ちなみに、テザリング自体は知っている？」という質問文に加えて「はい／いいえ」といった選択肢をユーザにテキストで提示していたことになる。また、直前のステータスが「ＴＥＴＨＥＲＩＮＧ＿ＯＳ」であったとすれば、「使っている端末のＯＳはどれ？」という質問文に加えて、「ＯＳ−Ａ／ＯＳ−Ｂ／わからない」といった選択肢をユーザに提示していたことになる。なお、ここで提示する選択肢は、ユーザがいずれを選択するかによって、ユーザによる用語の理解を判定可能な選択肢である。
【００４３】
対話装置１０が最後に出力した質問文が用語理解へのユーザ回答の選択肢を与える質問文であった場合（Ｓ１０−２でＹｅｓ）、用語理解判定部１１２は、当該質問文に対してステップＳ５において入力された選択肢を入力とし、当該選択肢に基づいてユーザの用語理解の有無を判定し、判定結果を用語理解記憶部１６３に保存する（Ｓ１０−３）。
【００４４】
図７は、用語理解の有無の判定例を説明するための図である。用語理解の有無の判定の方法としては、図７のように、例えば、現在使っている端末のＯＳを尋ねる質問文の回答の選択肢として、「ＯＳ−Ａ」、「ＯＳ−Ｂ」、「わからない」が提示され、ユーザ回答が「ＯＳ−Ａ」又は「ＯＳ−Ｂ」であれば、双方の用語を理解していると解釈し、判定結果を（ＯＳ−Ａ，１）、（ＯＳ−Ｂ，１）とする。ここで、判定結果の表記は（用語，０又は１）であり、０は、理解していないことを意味し、１は理解していることを意味する。
【００４５】
また、用語そのものを知っているかどうかを直接尋ねる質問文に対するユーザ回答の選択肢として、「はい」、「いいえ」が提示され、ユーザ回答が「はい」であればその用語を理解していると解釈し、「いいえ」であればその用語を理解していないと解釈し、上記同様に判定結果が生成される。なお、用語理解の有無の判定方法はこの限りではない。
【００４６】
用語理解判定部１１２は、用語理解の有無の判定結果を、用語理解記憶部１６３に記憶する。図８は、用語理解記憶部１６３の構成例を示す図である。用語理解記憶部１６３には、予め、ＩＣＴに関連する用語及びその難易度が記憶されている。用語の難易度は、例えば、予めアンケート調査などに基づいて設定されてもよい。本実施の形態において、難易度は、５が最も難易度が高く、１が最も難易度が低い。ただし、難易度は５段階に限らず、何段階でも、連続的な値でもよい。
【００４７】
ステップＳ１０−３では、用語理解判定部１１２による用語理解の有無の判定結果が、判定対象とされた用語の理解有無の値として、用語理解記憶部１６３に記憶される。
【００４８】
続いて、質問文生成部１１は、用語理解の有無の判定対象とされた用語をユーザが理解しているか否か、すなわち、当該用語に対して用語理解記憶部１６３に記憶された値が１であったか否かを判定する（Ｓ１０−４）。ユーザが用語を理解している場合（Ｓ１０−４でＹｅｓ）、すなわち、１が記憶された場合はステップＳ１０−８へ進む。
【００４９】
一方、ユーザが用語を理解していない場合（Ｓ１０−４でＮｏ）、すなわち、０が記憶された場合、質問文生成部１１は、対話シナリオ記憶部１６１を参照して、現在のステータスに対応する質問文を取得する（Ｓ１０−５）。すなわち、ユーザに入力された文字列に対応する質問文が取得される。
【００５０】
例えば、図４において、対話装置１０が最後に出力した質問文が「ＴＥＴＨＥＲＩＮＧ」ステータスの「テザリングの方法だね！ちなみに、テザリング自体は知っている？はい／いいえ」であり、当該質問文に対してユーザから「いいえ」という文字列が入力されたとする。この場合、対話制御部１３が、「いいえ」に対応する「ジャンプ先ステータス」のうちの最初のステータスである「ＥＸＰＬＡＩＮ（）」を選択するため、ステータスは、「ＥＸＰＬＡＩＮ（）」となる。なお、「ＥＸＰＬＡＩＮ（）」ステータスには、ユーザが理解していない用語であると判定された用語が引数として渡される。なお、対話装置１０が最後に出力した質問文を構成する用語のうち、用語理解記憶部１６３に登録されている用語が、ユーザが理解していない用語として特定される。
【００５１】
この場合、図４より、「ＥＸＰＬＡＩＮ（）」ステータスに対応する質問文「「"＃ＷＯＲＤ"」は、"＃ＥＸＰ"のことだよ！」が取得される。ここで、「＃ＷＯＲＤ」及び「＃ＥＸＰ」は、具体的な文字列の埋め込み箇所を示す。「＃ＷＯＲＤ」は、「ＥＸＰＬＡＩＮ（）」ステータスに対して引数として渡された、ユーザが理解していない用語であると判定された用語を示す。「＃ＥＸＰ」は、当該用語に対応する説明文（用語説明文）を示す。
【００５２】
続いて、質問文生成部１１は、ステップＳ１０−５において取得した質問文に埋め込み箇所が有るか否かを判定する（Ｓ１０−６）。「＃ＷＯＲＤ」又は「＃ＥＸＰ」のような埋め込み箇所が有る場合（Ｓ１０−６でＹｅｓ）、質問文生成部１１は、用語説明記憶部１６４を参照して、質問文の埋め込み箇所を埋める（Ｓ１０−７）。
【００５３】
図９は、用語説明記憶部１６４の構成例を示す図である。図９に示されるように、用語説明記憶部１６４には、用語ごとに、難易度及び用語説明文等が記憶されている。
【００５４】
例えば、「質問文」が「「"＃ＷＯＲＤ"」は、"＃ＥＸＰ"のことだよ！」であり、理解していないと判定された用語が「テザリング」であれば、「「テザリング」は、スマホをモバイルルータ化することにより、スマホの３Ｇ回線やＬＴＥを使ってパソコンなどをインターネットに接続できる機能のことだよ！」といった質問文が生成される。なお、本実施の形態では、質問文生成部１１が、テンプレート化された「質問文」における「＃ＷＯＲＤ」や「＃ＥＸＰ」等を埋めることで用語の説明を示す質問文が生成される例を示したが、用語の説明を示す質問文の生成方法は、これに限られない。例えば、質問文生成部１１が、理解していないと判定された用語に対応する用語説明文を用語説明記憶部１６４から取得し、当該用語と当該用語説明文とを含む自然文を自動的に生成してもよい。
【００５５】
続いて、質問文生成部１１が対話制御部１３に対して当該質問文を出力する（Ｓ１０−９）。この場合、当該質問文が、図３のステップＳ３で出力される。
【００５６】
一方、質問文生成部１１は、ステップＳ１０−８において、ステップＳ１０−５と同様に、現在のステータスに対応する質問文を取得した後、ステップＳ１０−９において、対話制御部１３に対して当該質問文を出力する。
【００５７】
なお、図４において、直前のステータスが「ＴＥＴＨＥＲＩＮＧ」であり、質問文に対してユーザによって入力された文字列が「いいえ」であった場合の「ジャンプ先ステータス」には、「ＥＸＰＬＡＩＮ（）」の次に「ＴＥＴＨＥＲＩＮＧのタスク表参照」が含まれている。また、「ＥＸＰＬＡＩＮ（）」ステータスには、対応するキーワードが登録されておらず、「ＥＸＰＬＡＩＮ（）」ステータスの「ジャンプ先ステータス」は「ｎｅｘｔ」である。したがって、この場合、「「テザリング」は、スマホをモバイルルータ化することにより、スマホの３Ｇ回線やＬＴＥを使ってパソコンなどをインターネットに接続できる機能のことだよ！」といった質問文がステップＳ３において出力された後、ステップＳ５〜Ｓ７は実行されずにステップＳ８に進む。ステップＳ８では、対話制御部１３は、「ｎｅｘｔ」に基づいて、「ＴＥＴＨＥＲＩＮＧ」ステータスの「いいえ」に対応する「ジャンプ先ステータス」の内の２番目のステータスである「ＴＥＴＨＥＲＩＮＧのタスク表参照」を選択する。
【００５８】
この場合，ステップＳ１０−５において、質問文生成部１１は、現在のステータスが「ＴＥＴＨＥＲＩＮＧのタスク表参照」であることに基づいて、対話シナリオ記憶部１６１に記憶されているＴＥＴＨＥＲＩＮＧのタスク表を参照する。
【００５９】
図１０は、対話シナリオ記憶部１６１のＴＥＴＨＥＲＩＮＧのタスク表の構成例を示す図である。タスク表は、「タスク」の値が「タスクＴＲＵＥ」であるステータスが選択され、当該ステータスにおける質問文に対してユーザによって入力された文字列に基づく「ジャンプ先ステータス」が「ＴＥＴＨＥＲＩＮＧのタスク表参照」であるとき、即ち、「ＴＥＴＨＥＲＩＮＧのタスク表参照」を実行すると判定されたときに参照される表である。
【００６０】
図１０において、当該タスク表は、タスクごとに「タスク名」、１以上の「パラメータ」、パラメータごとの「使用ステータス」、パラメータごとの「取得値」、「回答文の取得先」等を記憶可能に構成されている。「タスク名」は、図４におけるシナリオ表において「タスク」の値が「タスクＴＲＵＥ」であるシナリオレコードの「ステータス」の値に対応する。
【００６１】
タスク表の各項目のうち、「取得値」は当初は空である。「取得値」は、ユーザとの対話に応じて記憶されるからである。具体的には、ステップＳ１０−５において、現在のステータスが「ＴＥＴＨＥＲＩＮＧのタスク表参照」である場合、質問文生成部１１は、「タスク名」が「ＴＥＴＨＥＲＩＮＧ」であるレコードの「パラメータ」のうち、「取得値」が記憶されていない「パラメータ」の「使用ステータス」に対応する質問文をシナリオ表（図４）から取得する。例えば、図１０では、「ＴＥＴＨＥＲＩＮＧ」のタスクに対して、「ＯＳ」及び「ＣＯＮＮＥＣＴ」の「パラメータ」が定義されているところ、当初は、いずれの「取得値」も記憶されていないため、質問文生成部１１は、まず、「ＯＳ」に対応する「使用ステータス」である「ＴＥＴＨＥＲＩＮＧ＿ＯＳ」に対応する質問文「使っている端末はどれ？・・・・」をシナリオ表（図４）から取得し、対話文出力部１４が、当該質問文を、図３のステップＳ３で出力する。
【００６２】
したがって、ユーザから見た場合、「テザリングの方法だね！ちなみに、テザリング自体は知っている？はい／いいえ」という質問文に対して、ユーザが「いいえ」という文字列を入力すると、「「テザリング」は、スマホをモバイルルータ化することにより、スマホの３Ｇ回線やＬＴＥを使ってパソコンなどをインターネットに接続できる機能のことだよ！」といった質問文に続いて、「使っている端末はどれ？・・・・」という質問文が出力される。すなわち、２つの質問文が連続して出力される。
【００６３】
なお、「ＴＥＴＨＥＲＩＮＧ」ステータスの「テザリングの方法だね！ちなみに、テザリング自体は知っている？はい／いいえ」という質問文に対して、ユーザから「はい」という文字列が入力された場合には、図４より「ジャンプ先ステータス」には「ＥＸＰＬＡＩＮ（）」は含まれておらず、「ＴＥＴＨＥＲＩＮＧのタスク表参照」のみであるため、「ＴＥＴＨＥＲＩＮＧのタスク表参照」が実行される。この場合、質問文生成部１１は、図１０のタスク表において「取得値」が記憶されていない「パラメータ」の「使用ステータス」を当該タスク表の上方から順に探索していき、最初に検出された、「取得値」が記憶されていない「パラメータ」の「使用ステータス」に対応する質問文をシナリオ表（図４）から取得する。例えば、パラメータ「ＯＳ」に対応する「取得値」が記憶されていなかった場合には、質問文生成部１１は、上述のようにパラメータ「ＯＳ」の「使用ステータス」である「ＴＥＴＨＥＲＩＮＧ＿ＯＳ」に対応する質問文をシナリオ表（図４）から取得し、「使っている端末はどれ？・・・・」という質問文を対話制御部１３に対して出力する。
【００６４】
なお、現在のステータスが「ＴＥＴＨＥＲＩＮＧのタスク表参照」である場合の質問文の取得方法は、ステップＳ１０−８についても同様である。
【００６５】
タスク表に基づいて出力された質問文に対してステップＳ５で入力された文字列は、当該質問文のタスク表において当該質問文の元となった「パラメータ」に対応する「取得値」として記憶される。
【００６６】
更に、シナリオ表（図４）において「ＴＥＴＨＥＲＩＮＧ＿ＯＳ」ステータスの「ジャンプ先ステータス」は、「ＴＥＴＨＥＲＩＮＧのタスク表参照」となっている。したがって、この場合、再び、図１０のタスク表が参照される。当該タスク表の参照が２度目である場合、ステップＳ１０−５又はＳ１０−８において、質問文生成部１１は、パラメータ「ＣＯＮＮＥＣＴ」の「使用ステータス」である「ＴＥＴＨＥＲＩＮＧ＿ＣＯＮＮＥＣＴ」に対応する質問文を取得し、ステップＳ１０−９において当該質問文を対話制御部１３に出力する。なお、図１０においては、便宜上、「ＴＥＴＨＥＲＩＮＧ＿ＣＯＮＮＥＣＴ」ステータスのシナリオレコードは省略されている。
【００６７】
この場合、図３のステップＳ５において当該質問文に対する文字列がユーザによって入力され、当該文字列が、図１０において「ＣＯＮＮＥＣＴ」に対する取得値としてタスク表（図１０）に記憶される。その結果、「ＴＥＴＨＥＲＩＮＧ」タスクに対応するパラメータは全て取得されたことになる。
【００６８】
この状態において、図３のステップＳ９における判定はＹｅｓとなる。タスク表（図４）において「タスク」の値が「タスクＴＲＵＥ」である「ＴＥＴＨＥＲＩＮＧ」ステータスに遷移済みであり、「ＴＥＴＨＥＲＩＮＧ」ステータスに係るタスクに対応する全てのパラメータの取得が完了しているからである。この場合に、ステップＳ１１及びＳ１２が実行される。
【００６９】
なお、対話シナリオ記憶部１６１に記憶されるタスク表は、例えば、Ｗｉ−Ｆｉ（登録商標）に関するものや、その他のＩＣＴ用語に関するもの等、ＴＨＥＴＨＥＲＩＮＧ以外にも複数あってもよい。この場合、シナリオ表（図４）の「ジャンプ先ステータス」には、各タスク表に対応したステータス（例えば、「Ｗｉ−Ｆｉ（登録商標）のタスク表参照」等）が設定されればよい。
【００７０】
続いて、ステップＳ１１の詳細について説明する。図１１は、回答文生成処理の処理手順の一例を説明するためのフローチャートである。
【００７１】
ステップＳ１１−１において、回答文生成部１５は、ユーザの知識量の推定を知識量推定部１５１に要求する。
【００７２】
続いて、知識量推定部１５１の文字入力速度算出部１５１１は、文字入力速度記憶部１６２（図５）を参照して、文字入力速度を算出する（Ｓ１１−２）。例えば、ユーザによって入力された文字列ごとに文字数をカウントし、当該文字数を当該文字列の所要時間で除することで、文字列ごとに速度（１秒あたりの入力文字数）が算出される。更に、文字入力速度算出部１５１１は、これまで入力された全ての文字列ごとの速度の平均値を文字入力速度として算出する。
【００７３】
例えば、文字入力速度記憶部１６２の記憶内容が図５に示される通りであるとすると、文字入力速度は以下のように算出される。
Ｎｏ．１の速度＝１２文字／１０秒＝１．２文字／秒
Ｎｏ．２の速度＝３文字／３秒＝１文字／秒
Ｎｏ．３の速度＝５文字／３秒＝１．６６７文字／秒
文字入力速度＝（１．２＋１＋１．６６７）／３＝１．２８９
続いて、知識量推定部１５１の用語理解度算出部１５１２は、用語理解記憶部１６３（図８）を参照して、用語理解度を算出する（Ｓ１１−３）。
【００７４】
図１２は、用語理解度の算出方法の第１の例を示す図である。図１２では、用語理解の有無の判定結果（理解無し＝０、理解有り＝１）を縦軸とし、難易度を横軸とする座標上に、用語理解記憶部１６３（図８）の記憶内容がプロットされ、ロジスティック曲線に近似させて、変曲点以下の最大難易度を用語理解度とする例が示されている。図１２の例では、用語理解度の算出結果は２となる。
【００７５】
なお、用語理解度の算出方法はこれに限らない。図１３は、用語理解度の算出方法の第２の例を示す図である。図１３では、図１２と同様の座標上に、用語理解記憶部１６３（図８）の記憶内容をプロットした結果、０が存在しない最大難易度を用語理解度とする例が示されている。この場合も、用語理解度の算出結果は２となる。
【００７６】
続いて、知識量推定部１５１は、文字入力速度算出部１５１１で算出された文字入力速度及び用語理解度算出部１５１２で算出された用語理解度を用いて知識量を推定する（Ｓ１１−４）。知識量とは、ユーザ冒頭質問に関連する分野（ＩＣＴ分野）又は当該分野の用語に関するユーザの知識のレベルを示す指標である。
【００７７】
図１４は、知識量の推定方法の第１の例を示す図である。図１４では、文字入力速度と用語理解度とに応じた知識量が登録された対応表を用意しておき、算出された文字入力速度及び用語理解度を当該対応表に当てはめて知識量を推定する（求める）例が示されている。当該対応表は、例えば、予め補助記憶装置１０２等に記憶されていてもよい。
【００７８】
また、図１５は、知識量の推定方法の第２の例を示す図である。図１５では、文字入力速度と用語理解度とを変数とする計算式を用意し、算出された文字入力速度及び用語理解度を当該計算式に当てはめた計算結果に基づいて知識量を求める例が示されている。
【００７９】
なお、図１４及び図１５においては、文字入力速度と用語理解度両方が離散的な値であるが、文字入力速度及び用語理解度は、連続的な値であってもよい。知識量も、本実施の形態では離散的な値を用いているが、連続的な値でもよい。すなわち、文字入力速度及び用語理解度に基づいて知識量を推定可能であれば、知識量はどのような値であってもよい。
【００８０】
続いて、回答文生成部１５は、実行対象のタスクに対応する回答文の取得先から、回答文を取得する（Ｓ１１−５）。当該取得先は、当該タスクに対応するタスク表（図１０）の「回答文の取得先」の値を参照することで特定可能である。図１０の例では、「ＴＥＴＨＥＲＩＮＧ」のタスクについての「回答文の取得先」は、「ＴＥＴＨＥＲＩＮＧ＿Ｒ（ＯＳ，ＣＯＮＮＥＣＴ）」である。ここで、「ＴＥＴＨＥＲＩＮＧ＿Ｒ」は、「ＴＥＴＨＥＲＩＮＧ」のタスクに対応付けられて対話シナリオ記憶部１６１に記憶されている回答文表を意味する。「（ＯＳ，ＣＯＮＮＥＣＴ）」は、当該回答文表に記憶されている複数のレコードの中から１つのレコードを特定するための情報であり、「ＯＳ」、「ＣＯＮＮＥＣＴ」の各値は、各パラメータに対応する具体的な取得値に置き換えられる。
【００８１】
図１６は、対話シナリオ記憶部１６１のＴＥＴＨＥＲＩＮＧの回答文表の構成例を示す図である。
【００８２】
図１６に示されるように、回答文表には、「条件」に対応づけられて「回答文」が記憶されている。「条件」は、対応する「回答文」が取得対象とされる条件であり、タスク表の「回答文の取得先」の値に対応する。「回答文」は、回答文を構成する文字列である。
【００８３】
例えば、「ＴＥＴＨＥＲＩＮＧ」のタスクのパラメータ「ＯＳ」に対する「取得値」が「ＯＳ−Ｂ」であり、パラメータ「ＣＯＮＮＥＣＴ」に対する「取得値」が「Ｗｉ−Ｆｉ（登録商標）」である場合、図１６において１番目のレコードに記憶されている回答文が取得される。
【００８４】
続いて、回答文生成部１５は、ステップＳ１１−４で推定した知識量が、定義した段階での最高レベルか否かを判定する（Ｓ１１−６）。例えば、本実施の形態では、１〜５の５段階で難易度が定義されているため、５が最高レベルとなる。知識量が最高レベルであればステップＳ１１−９に進み、そうでなければステップＳ１１−７に進む。
【００８５】
ステップＳ１１−７において、回答文生成部１５は、用語理解記憶部１６３（図８）を参照し、回答文の中から知識量のレベルより難易度が高い用語（以下、「変換対象用語」という。）を抽出する。例えば、図１６の回答文表の１番目のレコードの回答文が取得された場合、回答文の中に難易度が２の「Ｗｉ−Ｆｉ（登録商標）」という用語、難易度が４の「ＳＳＩＤ」という用語、難易度が４の「テザリング」という用語等が含まれている。この場合において、ユーザの知識量が３であったとき、難易度がユーザの知識量のレベル以下である「Ｗｉ−Ｆｉ（登録商標）」は変換対象用語として抽出されず、当該知識量のレベルより難易度が高い「ＳＳＩＤ」及び「テザリング」は変換対象用語として抽出される。
【００８６】
続いて、回答文生成部１５は、用語説明記憶部１６４（図９）を参照して、変換対象用語の用語説明文を取得し、当該用語説明文を回答文に含めることでユーザ冒頭質問に対するシステム回答を示す回答文を生成する（Ｓ１１−８）。例えば、「・・・３．「テザリング」を押す・・・」の部分に「・・・３．「テザリング（スマホをモバイルルータ化することにより、スマホの３Ｇ回線やＬＴＥを使ってパソコンなどをインターネットに接続できる機能）」を押す・・・」といったように変換対象用語の直後に用語説明文が含められてもよい。なお、回答文生成部１５は、回答文表を用いずに、変換対象用語の直後に用語説明文を含む自然文を生成してもよい。
【００８７】
ステップＳ１１−９において、回答文生成部１５は、対話制御部１３に対して回答文を出力する。対話制御部１３は、当該回答文を対話文出力部１４に出力する。その結果、対話文出力部１４は、当該回答文を、図３のステップＳ１２において出力する。
【００８８】
なお、上記において、文字入力速度の代わりに、タイプミス回数（例えば、文字の削除の回数）、又は文字の入力時間（速度ではなく絶対時間）等が回答の入力操作の状況を示す情報（指標）として用いられてもよい。
【００８９】
また、上記では、ユーザ冒頭質問及び質問文に対するユーザによる入力が文字列によって行われ、質問文の出力及び回答文が文字列によって表示装置１０６に表示される例について説明したが、これらは音声によって入力又は出力されてもよい。例えば、ユーザ冒頭質問はユーザの発話により入力されてもよい。この場合、テキスト入力部１２は、ユーザが入力する文字列に代わって、ユーザの発話を図示しない音声認識部によって認識した結果得られるテキストを入力とすると共に、ユーザが発話を開始してから完了するまでの所要時間を計測する。ユーザによる発話の開始と完了時点は、例えば、システムによる直前の出力処理が完了した時点をユーザによる発話の開始のタイミングとし、入力装置１０７に対する所定の操作（例えば、「送信」ボタンの押下等）時を発話の完了のタイミングとすれば検知可能である。このように、ユーザが入力する文字列に代わって、ユーザの発話を図示しない音声認識部によって認識した結果得られるテキストを文字列として使用すればよい。また、対話装置１０による質問文や回答文の出力は、対話装置１０のエージェントが音声として発話する形態で出力されてもよい。
【００９０】
上述したように、本実施の形態によれば、対話相手のユーザに関して、用語の理解の有無を示す入力情報と、当該ユーザの非言語情報（文字入力速度などのユーザ回答の入力操作の状況）とに基づいて、当該ユーザからの質問（ユーザ冒頭質問）に関連する分野における当該ユーザの知識のレベル（知識量）を推定することができる。したがって、対話相手のユーザの知識の推定精度を向上させることができ、より適切な対話（回答文の生成）を可能とすることができる。例えば、ユーザの既知と未知の用語が何であるかという部分まで推定することができる。
【００９１】
なお、本実施の形態は、ＩＣＴ以外の分野の知識の推定に関して適用されてもよい。
【００９２】
なお、本実施の形態において、テキスト入力部１２は、受付部の一例である。対話文出力部１４は、出力部の一例である。知識量推定部１５１は、推定部の一例である。回答文生成部１５は、生成部の一例である。
【００９３】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９４】
１０          対話装置
１１          質問文生成部
１２          テキスト入力部
１３          対話制御部
１４          対話文出力部
１５          回答文生成部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１１１        選択肢判定部
１１２        用語理解判定部
１５１        知識量推定部
１６１        対話シナリオ記憶部
１６２        文字入力速度記憶部
１６３        用語理解記憶部
１６４        用語説明記憶部
１５１１      文字入力速度算出部
１５１２      用語理解度算出部
Ｂ            バス
【図１】
2019028604.tif 000003
【図２】
2019028604.tif 000004
【図３】
2019028604.tif 000005
【図４】
2019028604.tif 000006
【図５】
2019028604.tif 000007
【図６】
2019028604.tif 000008
【図７】
2019028604.tif 000009
【図８】
2019028604.tif 000010
【図９】
2019028604.tif 000011
【図１０】
2019028604.tif 000012
【図１１】
2019028604.tif 000013
【図１２】
2019028604.tif 000014
【図１３】
2019028604.tif 000015
【図１４】
2019028604.tif 000016
【図１５】
2019028604.tif 000017
【図１６】
2019028604.tif 000018