(57)【要約】  一実施形態に係る対話装置は、ユーザとの間で実行される自動対話を構成する発話文章を取得する取得部と、発話文章がまだログに記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する隠蔽部と、少なくとも一部の秘密情報が隠蔽された発話文章をログに記録する記録部とを備える。
2019220791.tif 000002
【特許請求の範囲】
【請求項１】
ユーザとの間で実行される自動対話を構成する発話文章を取得する取得部と、
前記発話文章がまだログに記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を前記発話文章に対して実行する隠蔽部と、
前記少なくとも一部の秘密情報が隠蔽された前記発話文章を前記ログに記録する記録部と
を備える対話装置。
【請求項２】
前記隠蔽部が、予め定められた複数の隠蔽レベルから選択された少なくとも一つの隠蔽レベルに基づいて前記隠蔽処理を実行する、
請求項１に記載の対話装置。
【請求項３】
前記複数の隠蔽レベルが、前記少なくとも一部の秘密情報の削除を示す削除レベルと、前記少なくとも一部の秘密情報を概念語に置換する置換レベルとを少なくとも含む、
請求項２に記載の対話装置。
【請求項４】
前記複数の隠蔽レベルが、前記少なくとも一部の秘密情報を第１概念語に置換する第１置換レベルと、前記少なくとも一部の秘密情報を、該第１概念語よりも抽象度が低い第２概念語に置換する第２置換レベルとを少なくとも含む、
請求項２または３に記載の対話装置。
【請求項５】
前記取得部が、前記発話文章と関連付けられた発話属性をさらに取得し、
前記隠蔽部が、前記隠蔽処理をさらに前記発話属性に対して実行し、
前記記録部が、少なくとも一部の秘密情報が隠蔽された前記発話属性をさらに前記ログに記録する、
請求項１〜４のいずれか一項に記載の対話装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は対話装置に関する。
【背景技術】
【０００２】
ユーザとの間で実行される自動対話の記録を管理する仕組みが知られている。例えば、特許文献１には、所定の処理に用いられた情報を削除する指示を受け付けると、該情報を削除するとともに、削除される該情報を用いた所定の処理に係る識別子を特定し、少なくとも特定した識別子に対応付けられた応答に係る音声の内容を対話履歴記憶部から削除する対話履歴管理装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１６９７６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の装置では、削除指示を受け付けない限り削除処理を実行しない。しかし、対話を構成する発話文章の中には、当初から記録しない方が好ましい秘密情報が存在し得る。そこで、対話の中で現れた秘密情報のセキュリティをより確実に確保することが望まれている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る対話装置は、ユーザとの間で実行される自動対話を構成する発話文章を取得する取得部と、発話文章がまだログに記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する隠蔽部と、少なくとも一部の秘密情報が隠蔽された発話文章をログに記録する記録部とを備える。【０００６】
このような側面においては、発話文章中の秘密情報の少なくとも一部が最初からログに記録されないので、対話の中で現れた秘密情報のセキュリティをより確実に確保することができる。
【発明の効果】
【０００７】
本発明の一側面によれば、対話の中で現れた秘密情報のセキュリティをより確実に確保することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る対話装置の機能構成の一例を示す図である。
【図２】実施形態に係る対話装置の動作の一例を示すシーケンス図である。
【図３】実施形態に係る対話装置の動作の一例を示すシーケンス図である。
【図４】ログのいくつかの例を示す図である。
【図５】実施形態に係る対話装置に用いられるコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【００１０】
対話装置は、ユーザとの間で自動対話を実行するコンピュータである。ユーザとは対話装置を利用する人である。自動対話とはユーザとコンピュータ（このコンピュータは一般に「ボット」ともいわれる。）との間の会話のやり取りであり、この自動対話ではコンピュータはユーザからの発話に応答して自動的に発話する。発話とはユーザまたはコンピュータが発する一回分の話である。以下では、ユーザの発話を「ユーザ発話」ともいい、コンピュータの発話を「システム発話」ともいう。
【００１１】
対話装置の利用目的は何ら限定されない。例えば、対話装置はユーザの質問に回答するＦＡＱ（Frequently  Asked  Questions）システムで用いられてもよいし、ＦＡＱに限られない任意の話を行う雑談システムで用いられてもよい。あるいは、対話装置は、音声操作に基づいて任意のタスクを実行するバーチャルアシスタント機能に組み込まれてもよい。
【００１２】
対話装置はクライアント−サーバ型システムの一部であってもよいし、単体の装置であってもよい。本実施形態では、対話装置はサーバとして機能するコンピュータであるとする。図１は、実施形態に係る対話装置１０の機能構成の一例を示す図である。対話装置１０は通信ネットワークを介して少なくとも一つのユーザ端末９０と接続することができる。通信ネットワークの構成は何ら限定されず、例えばインターネットおよびイントラネットの少なくとも一方を用いて構成されてもよい。
【００１３】
ユーザ端末９０はユーザにより操作されるコンピュータ（クライアント端末）である。ユーザ端末９０は、ユーザにより入力された発話（ユーザ発話）を対話装置１０に送信する機能と、対話装置１０から受信した発話（システム発話）を出力する機能とを備える。ユーザ端末９０の種類は限定されず、例えば、据置型のコンピュータまたは装置であってもよいし、携帯型のコンピュータまたは装置であってもよい。ユーザ端末９０の具体的な例として、スマートフォン、タブレット端末、ウェアラブル端末、パーソナルコンピュータ、スマートスピーカ、スマートテレビ、およびスマート家電が挙げられるが、これらに限定されない。
【００１４】
対話装置１０はユーザ端末９０との間で実行された自動対話を構成する発話文章をログ４０に記録する。発話文章とはユーザまたはボットの発話を示す文章であり、文字列で表現することができる。ログとは発話文章の履歴の永続的な記録である。ログ４０は任意の形式の論理ファイルにより実現され、任意のストレージ（記憶装置）に保存される。対話装置１０の特徴の一つは、発話文章のログへの記録方法にある。以下では、その特徴について特に詳しく説明する。
【００１５】
図１に示すように、対話装置１０は機能要素として、自動対話を統括的に制御するフロント機能２０と、特定の話題に関するシステム発話を出力する１以上のボット機能３０とを備える。フロント機能２０は、ユーザ端末９０から受信したユーザ発話を処理させるボット機能３０を決定し、そのボット機能３０にユーザ発話を転送する。その後、フロント機能２０は、そのボット機能３０から出力されたシステム発話をユーザ端末９０に応答として送信する。また、フロント機能２０はそのユーザ発話およびシステム発話をログ４０に記録する。それぞれのボット機能３０は、対話のルール（どのようなユーザ発話を受け付けた場合にどのようなシステム発話を出力するかを規定したルール）であるシナリオを参照する。ボット機能３０は、フロント機能２０からユーザ発話を受け付けると、そのユーザ発話に対応するシステム発話をそのシナリオに基づいて決定し、決定したシステム発話をフロント機能２０に出力する。
【００１６】
本実施形態では、フロント機能２０は取得部２１、隠蔽部２２、および記録部２３を備える。取得部２１は、ユーザとの間で実行される自動対話を構成する発話文章を取得する機能要素である。取得部２１は、ユーザ発話またはシステム発話を示す発話文章を取得する。隠蔽部２２は、その発話文章がまだログ４０に記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する機能要素である。秘密情報とは第三者（少なくともユーザとは異なる者）に知らせないことが望ましい情報である。どのような情報を秘密情報とするかは任意に定められてよい。例えば、秘密情報は個人情報の少なくとも一部を含んでもよいし、企業の機密情報の少なくとも一部を含んでもよい。隠蔽とは、第三者による元の情報の特定を不可能にまたは困難にするための処理である。記録部２３は、少なくとも一部の秘密情報が隠蔽された発話文章をログ４０に記録する機能要素である。
【００１７】
図２〜図４を参照しながら対話装置１０の動作を説明する。図２および図３は、対話装置１０の動作の一例を示すシーケンス図である。図４はログ４０のいくつかの例を示す図である。理解を容易にするために、図２および図３では、対話装置１０のフロント機能２０およびボット機能３０を個々に示すと共に、１以上のボット機能３０を一つのブロックで簡易に示す。
【００１８】
ステップＳ１１では、ユーザ端末９０が自動対話の開始要求を対話装置１０に送信する。対話装置１０がこの開始要求を受信および処理することで、ユーザはユーザ端末９０を用いて自動対話を行うことができる。
【００１９】
本実施形態では、その開始要求は発話属性を含むデータ信号である。発話属性とはユーザ発話に関連する性質または特徴を示す情報であり、自動対話で用いられ得る。本実施形態では、発話属性は開始要求に含まれたかたちで、またはユーザ発話と共に、ユーザ端末９０から対話装置１０に提供される。発話属性の具体的な内容は限定されない。本実施形態では、発話属性は、自動対話を利用しようとするユーザの性質または特徴を示すユーザ属性と、ユーザ端末９０の性質または特徴を示す端末属性とを含むものとする。ユーザ属性を示すデータ項目の種類および個数は何ら限定されない。例えば、ユーザ属性は名前、性別、年齢、および住所から選択される一つであってもよいし、該４項目から任意に選択される２以上の項目の組合せであってもよい。あるいは、ユーザ属性は該４項目とは異なる他の１以上のデータ項目を含んでもよい。端末属性を示すデータ項目の種類および個数も何ら限定されない。例えば、端末属性は端末名、オペレーティングシステム名、および作動モードから選択される一つであってもよいし、該３項目から任意に選択される２以上の項目の組合せであってもよい。あるいは、端末属性は該３項目とは異なる他の１以上のデータ項目を含んでもよい。いずれにしても、対話装置１０では取得部２１がその開始要求を受信する。
【００２０】
ステップＳ１２では、隠蔽部２２がその開始要求の発話属性に基づいて隠蔽レベルを決定する。隠蔽レベルとは、秘密情報を隠蔽する方法（隠蔽方法）と、隠蔽すべき秘密情報のデータ項目との少なくとも一方を示す指標である。
【００２１】
隠蔽方法は、少なくとも一部の秘密情報の削除であってもよく、この場合には、隠蔽レベルは削除レベルである。削除レベルの場合には、隠蔽される秘密情報は、ログ４０に記録されようとする文字列から除外されるので、ログ４０には最初から記録されない。
【００２２】
あるいは、隠蔽方法は、少なくとも一部の秘密情報を１以上の概念語に置換する処理であってもよく、この場合には、隠蔽レベルは置換レベルである。概念語とは元の情報を抽象化した語句である。したがって、置換レベルの場合には、隠蔽される秘密情報は、より曖昧な別の言葉に置き換えられた上でログ４０に記録される。概念語は、元の情報のカテゴリを示す語句であってもよいし、元の情報に対応する変数名であってもよい。あるいは、概念語は元の情報の手掛かりを全く与えないような曖昧な表現であってもよい。例えば、「田中」という姓が置換レベルで隠蔽される場合には、その文字列「田中」は「％ｕｓｅｒＩｎｆｏ．ｓｕｒｎａｍｅ％」、「ｓｕｒｎａｍｅ」、「ｎａｍｅ」、または「％ｖａｒｉａｂｌｅ＿１％」という概念語に置換されてもよい。
【００２３】
置換レベルは複数段階で設定されてもよい。これは、或る秘密情報の抽象化の度合い（抽象度）が複数種類用意されることを意味する。２種類の置換レベルが用意されてもよいし３種類以上の置換レベルが用意されてもよい。いずれにしても、この場合の隠蔽レベルは、少なくとも一部の秘密情報を第１概念語に置換する第１置換レベルと、少なくとも一部の秘密情報を、該第１概念語よりも抽象度が低い第２概念語に置換する第２置換レベルとを含んでもよい。
【００２４】
第１置換レベルおよび第２置換レベルが予め用意されており、「田中」および「鈴木」という二つの姓をその２種類の置換レベルで隠蔽する例を示す。例えば、第１置換レベルでは、「田中」および「鈴木」という二つの文字列の双方が「％ｕｓｅｒＩｎｆｏ．ｓｕｒｎａｍｅ％」という第１概念語に置き換えられてもよい。一方、第２置換レベルでは、文字列「田中」は「％ｕｓｅｒＩｎｆｏ．ｓｕｒｎａｍｅ１％」という第２概念語に置き換えられ、文字列「鈴木」は「％ｕｓｅｒＩｎｆｏ．ｓｕｒｎａｍｅ２％」という第２概念語に置き換えられてもよい。この例では、第１置換レベルは二つの姓を区別できないかたちで置換する処理であるのに対して、第２置換レベルは二つの姓を区別するかたちで置換する処理である。したがって、第２概念語は第１概念語よりも抽象度が低い。
【００２５】
隠蔽方法は一つのみ用意されてもよいし、２以上の隠蔽方法が用意されてもよい。複数の隠蔽方法が用意される場合には、隠蔽レベルは、複数の置換レベルから選択可能であってもよいし、削除レベルと一つの置換レベルとから選択可能であってもよいし、削除レベルと複数の置換レベルとから選択可能であってもよい。
【００２６】
隠蔽すべき秘密情報の種類は任意に設定されてよい。例えば、一種類の秘密情報のみを隠蔽するように隠蔽レベルが設定されてもよいし、２種類以上の秘密情報を隠蔽するように隠蔽レベルが設定されてもよい。あるいは、想定される秘密情報の一部のみまたはすべてを隠蔽するように隠蔽レベルが設定されてもよい。より具体的な例として、名前、年齢、性別、および場所から選択される一または複数のデータ項目が隠蔽されるように隠蔽レベルが設定されてもよい。いずれにしても、隠蔽レベルは、少なくとも一部の秘密情報を隠蔽するように設定される。
【００２７】
隠蔽レベルは隠蔽方法と隠蔽すべき秘密情報の種類との双方を示してもよいし、どちらか一方のみを示してもよい。隠蔽レベルは個々のユーザ毎に設定されてもよいし、すべてのユーザに共通であってもよい。あるいは、隠蔽レベルは個々の発話属性毎に設定されてもよく、例えば、ユーザの年齢層毎に設定されてもよい。発話文章の隠蔽レベルと発話属性の隠蔽レベルとは同じでもよいし互いに異なってもよい。いずれにしても、隠蔽レベルは様々な態様で柔軟に設定され得る。
【００２８】
対話装置１０は、隠蔽部２２が隠蔽レベルを決定できるように、隠蔽レベルに関する情報を予め記憶する。記憶される隠蔽レベルの記述方法は限定されない。例えば、隠蔽レベルは設定ファイル、データベース、マッピングテーブル、アルゴリズム、数式、および閾値のうちのいずれかの手法で表されてもよいし、これらの手法から任意に選択される２以上の組合せで表されてもよい。このように、隠蔽レベルは様々な手法で設定され得る。いずれにしても、隠蔽部２２は開始要求に含まれる発話属性に基づいて、予め用意された１以上の隠蔽レベルのうちの一つを決定する。
【００２９】
ステップＳ１３では、隠蔽部２２が、決定した隠蔽レベルに基づいて、開始要求に対する隠蔽処理を実行する。隠蔽部２２は、ログ４０に記録しようとする、開始要求を示す文字列のうち、その隠蔽レベルで指定された秘密情報（例えば、ユーザ属性の少なくとも一部）を、指定された隠蔽方法で隠蔽する。例えば、決定した隠蔽レベルが削除レベルであれば、隠蔽部２２は指定された秘密情報を該文字列から削除する。決定した隠蔽レベルが置換レベルであれば、隠蔽部２２は該文字列内の指定された秘密情報を概念語に置換する。
【００３０】
隠蔽しようとする秘密情報を処理対象の文字列から特定する方法は限定されない。例えば、隠蔽部２２はその秘密情報を、文字列マッチング、機械学習、照応解析、および固有表現抽出（エンティティリンキング）から選択される少なくとも一つの手法を用いて特定してもよい。開始要求を処理する場合には、発話属性は予め定められた規則で開始要求に記述されるので、隠蔽部２２は、隠蔽しようとする秘密情報を文字列マッチングにより特定し、その秘密情報を隠蔽レベルに基づいて処理してもよい。
【００３１】
ステップＳ１４では、記録部２３が、隠蔽処理された開始要求をログ４０に記録する。隠蔽されるべき秘密情報は、この時点で既に隠蔽（例えば削除または置換）されているので、ログ４０には当初から書き込まれない。
【００３２】
ステップＳ１５では、開始要求を契機として、ユーザ端末９０と対話装置１０との間で自動対話が実行される。ステップＳ１５では、フロント機能２０は自動対話を開始するための処理を実行し、その後、ユーザ端末９０と対話装置１０との間でユーザ発話およびシステム発話が伝送される。ユーザはこの自動対話において所望の情報を取得したり発信したりすることができる。
【００３３】
図３は、その自動対話中の（言い換えると、ステップＳ１５における）発話データのログへの記録の一例を示す。ステップＳ１５１では、ユーザ端末９０がユーザ発話データを対話装置１０に送信する。ユーザ発話データは、ユーザ発話を表す発話文章と発話属性とを含むデータである。
【００３４】
ユーザ端末９０におけるユーザ発話（発話文章）の取得方法は限定されない。例えば、ユーザ端末９０は音声入力されたユーザ発話（すなわち音声データで表されるユーザ発話）を取得してもよいし、文字列で入力されたユーザ発話（すなわちテキストデータで表されるユーザ発話）を取得してもよい。あるいは、ユーザ端末９０はユーザの指示に基づいて自動的にユーザ発話を音声データまたはテキストデータの形式で生成してもよい。発話属性は、開始要求に含まれるものと同じでもよいし、開始要求に含まれるものの少なくとも一部と異なってもよい。いずれにしても、発話属性はユーザ発話（発話文章）と関連付けられたデータである。ユーザ端末９０は取得したユーザ発話と発話属性とを含むユーザ発話データを生成して、このユーザ発話データを送信する。対話装置１０ではフロント機能２０がそのユーザ発話データを受信する。
【００３５】
ステップＳ１５２では、フロント機能２０がそのユーザ発話データを処理させるボット機能３０を決定し、該当するボット機能３０にそのユーザ発話データを転送する。
【００３６】
ステップＳ１５３では、隠蔽部２２がそのユーザ発話データの発話属性に基づいて隠蔽レベルを決定する。隠蔽部２２はステップＳ１２と同様に隠蔽レベルを決定する。
【００３７】
ステップＳ１５４では、隠蔽部２２が、決定した隠蔽レベルに基づいて、ユーザ発話データに対する隠蔽処理を実行する。隠蔽部２２はステップＳ１３と同様に隠蔽処理を実行する。ユーザ発話の発話文章は自由に記述され得る。したがって、隠蔽しようとする秘密情報を発話文章から特定する際には、隠蔽部２２は文字列マッチング、機械学習、照応解析、および固有表現抽出（エンティティリンキング）から選択される少なくとも一つの手法を用いてその秘密情報を発話文章から特定してもよい。これに対して、発話属性は予め定められた規則でユーザ発話データに記述されるので、隠蔽部２２は、発話属性内の隠蔽しようとする秘密情報を文字列マッチングにより特定してもよい。
【００３８】
ステップＳ１５５では、記録部２３が、隠蔽処理されたユーザ発話データをログ４０に記録する。ステップＳ１４と同様に、そのユーザ発話データは、隠蔽されるべき秘密情報がそのまま現れない態様でログ４０に記録される。
【００３９】
発話データがどのようにログ４０に記録されるかは隠蔽レベルに応じて変わる。図４を参照しながら、その隠蔽レベルとログ４０との関係について説明する。図４の例では、対話装置１０は「港区赤坂と横須賀市の天気を教えて」というユーザ発話（発話文章）をログ４０に記録する際に地名を隠蔽するとともに、発話属性（ｃｌｉｅｎｔＤａｔａ）内のユーザ属性（ｕｓｅｒＩｎｆｏ）を隠蔽する。この例では、「港区赤坂」はユーザの勤務地であるとし、「横須賀市」はユーザの居住地であるとする。また、発話文章の隠蔽レベルとして削除レベル、第１置換レベル、および第２置換レベル（第１概念語よりも抽象度が低い第２概念語に置換する処理）を例示する。なお、図４の例はＡＩＭＬ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を応用して記述されたデータを示すが、発話データを記述するための方法および規則は何ら限定されない。
【００４０】
隠蔽部２２が隠蔽レベルとして削除レベルを選択した場合には、隠蔽部２２はそれら二つの地名をその発話文章から削除する。したがって、記録部２３は「  と  の天気を教えて」という文字列をログ４０に記録する。また、隠蔽部２２はユーザ属性を構成する名前「ｔａｎａｋａ」および年齢「２８」を削除する。
【００４１】
隠蔽部２２が隠蔽レベルとして第１置換レベルを選択した場合には、隠蔽部２２はそれら二つの地名を共通の文字列で置換する。例えば、隠蔽部２２は地名に相当する変数名「％ｕｓｅｒＩｎｆｏ．ｐｌａｃｅ％」を第１概念語として用い、「港区赤坂」および「横須賀市」の双方をこの変数名で置換する。また、隠蔽部２２はユーザ属性を構成する名前「ｔａｎａｋａ」および年齢「２８」を削除する。上述したように、発話文章と発話属性との間で隠蔽レベルが異なってもよい。
【００４２】
隠蔽部２２が隠蔽レベルとして第２置換レベルを選択した場合には、隠蔽部２２はそれら二つの地名を、相異なる文字列で置換する。例えば、隠蔽部２２は勤務地に相当する第２概念語である変数名「％ｕｓｅｒＩｎｆｏ．ｗｏｒｋｐｌａｃｅ％」で「港区赤坂」を置換する。また、隠蔽部２２は居住地に相当する第２概念語である変数名「％ｕｓｅｒＩｎｆｏ．ｈｏｍｅ％」で「横須賀市」を置換する。また、隠蔽部２２はユーザ属性を構成する名前「ｔａｎａｋａ」および年齢「２８」を削除する。
【００４３】
図４では、発話文章のログへの記録方法が三つの例の間で異なる。隠蔽レベルが削除レベルである場合には、隠蔽の対象である秘密情報が発話文章から完全に削除されるので、ログ４０には地名に関する手掛かりが記録されない。したがって、ユーザ以外の第三者（例えば対話装置１０の管理者）がログ４０を読んでも、ユーザが何の天気を教えてと話したかを特定できない。例えば、「  と  の天気を教えて」の空欄には、「今日」「明日」などのような時期も入り得る。一方、隠蔽レベルが第１隠蔽レベルである場合には、ログ４０上では、秘密情報に相当する部分に「％ｕｓｅｒＩｎｆｏ．ｐｌａｃｅ％」という第１概念語が記述される。したがって、第三者は、ユーザが何かしらの場所の天気を聞いたことは推測できるが、それが具体的にどの場所であるかを知ることはできない。隠蔽レベルが第２隠蔽レベルである場合には、ログ４０上では、「％ｕｓｅｒＩｎｆｏ．ｗｏｒｋｐｌａｃｅ％」および「％ｕｓｅｒＩｎｆｏ．ｈｏｍｅ％」という第２概念語が記述される。したがって、第三者はユーザが２ヵ所の天気を聞いたことと、その場所が勤務地および居住地に関することとを推測できるが、具体的な場所を知ることはできない。したがって、図４の例では、ログ４０に記録される発話文章の抽象度は、削除レベルの場合にいちばん高く、第２置換レベルの場合にいちばん低く、第１置換レベルの場合には、削除レベルと第２置換レベルとの間の水準であるといえる。
【００４４】
図４では、発話属性のログへの記録方法が三つの例で同じである。もちろん、隠蔽部２２は、発話属性中の少なくとも一部の秘密情報を概念語に置換してもよい。
【００４５】
図３に戻り、ステップＳ１５６では、ボット機能３０がユーザ発話に応答してシステム発話データをフロント機能２０に出力する。ボット機能３０は、フロント機能２０からユーザ発話データを受け付け、そのデータに含まれるユーザ発話および発話属性に基づいてシナリオを参照することで、該ユーザ発話への応答として適切であると推定されるシステム発話を決定する。そして、ボット機能３０はその決定したシステム発話を含むシステム発話データをフロント機能２０に出力する。システム発話データは、システム発話を表す発話文章を含むデータである。ユーザ発話と同様にシステム発話の表現方法も限定されず、例えば、システム発話は音声またはテキストで表現され得る。
【００４６】
ステップＳ１５７では、フロント機能２０がそのシステム発話データをユーザ端末９０に送信する。フロント機能２０はシステム発話の出力形式を指定した上で（すなわち、システム発話を整形した上で）システム発話データを送信してもよい。ユーザ端末９０はそのシステム発話データを受信および出力し、これにより、ユーザはユーザ発話に対するボットの返事を認識できる。
【００４７】
ステップＳ１５８では、隠蔽部２２がシステム発話の隠蔽レベルを決定する。ステップＳ１５３と同様に、隠蔽部２２は、ユーザ発話データに含まれていた発話属性に基づいて隠蔽レベルを決定してもよい。
【００４８】
ステップＳ１５９では、隠蔽部２２が、決定した隠蔽レベルに基づいて、システム発話データに対する隠蔽処理を実行する。システム発話が変数を含む場合には、隠蔽部２２は、隠蔽しようとする秘密情報をその変数に基づいて特定してもよい。例えば、ユーザ端末９０に出力されるシステム発話が「港区赤坂も横須賀市も晴です。」であれば、このシステム発話は、「港区赤坂」に対応する変数「％ｕｓｅｒＩｎｆｏ．ｗｏｒｋｐｌａｃｅ％」と「横須賀市」に対応する変数「％ｕｓｅｒＩｎｆｏ．ｈｏｍｅ％」とを含み得る。この場合には、隠蔽部２２はその変数に基づいて、これら二つの地名を隠蔽すると決定することができる。あるいは、隠蔽部２２はその秘密情報をステップＳ１５４と同様の処理により特定してもよい。
【００４９】
ステップＳ１６０では、記録部２３が、隠蔽処理されたシステム発話データをログ４０に記録する。ステップＳ１５５と同様に、そのシステム発話データは、隠蔽されるべき秘密情報がそのまま現れない態様でログ４０に記録される。
【００５０】
その後、ユーザ端末９０と対話装置１０との間で更なる発話のやり取りが実行され得る。したがって、ステップＳ１５１〜Ｓ１６０の処理は繰り返し実行され得る。図４は、ステップＳ１５１およびＳ１５２と同様の処理をステップＳ１６１およびＳ１６２として示す。ステップＳ１６１に応じてユーザ発話データがログ４０に記録される。また、ステップＳ１６２に応じてシステム発話データが生成されてユーザ端末９０に送信され、そのシステム発話データがログ４０に記録される。
【００５１】
このように、取得部２１、隠蔽部２２、および記録部２３の協働により、隠蔽すべき秘密情報が確実に隠蔽された後に、発話文章および発話属性が初めてログ４０に記録される。この処理は、いったんログ４０上に記録された秘密情報を後から削除する処理とは全く異なる。
【００５２】
なお、対話装置１０は、発話属性に対する隠蔽処理を行うことなく、発話文章に対する隠蔽処理を実行してもよい。すなわち、発話属性の隠蔽は必須ではない。
【００５３】
上記実施の形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成要素）は、ハードウェアおよび／またはソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的および／または論理的に結合した一つの装置により実現されてもよいし、物理的および／または論理的に分離した２つ以上の装置を直接的および／または間接的に（例えば、有線および／または無線）で接続し、これら複数の装置により実現されてもよい。
【００５４】
例えば、本発明の一実施の形態における対話装置１０は、本実施形態の処理を行うコンピュータとして機能してもよい。図５は、対話装置１０として機能するコンピュータ１００のハードウェア構成の一例を示す図である。コンピュータ１００は、物理的には、プロセッサ１００１、メモリ１００２、ストレージ１００３、通信装置１００４、入力装置１００５、出力装置１００６、バス１００７などを含んでもよい。
【００５５】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。対話装置１０のハードウェア構成は、図に示した各装置を一つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００５６】
対話装置１０における各機能は、プロセッサ１００１、メモリ１００２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、プロセッサ１００１が演算を行い、通信装置１００４による通信や、メモリ１００２およびストレージ１００３におけるデータの読み出しおよび／または書き込みを制御することで実現される。
【００５７】
プロセッサ１００１は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ１００１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。例えば、対話装置１０の少なくとも一部の機能要素はプロセッサ１００１で実現されてもよい。
【００５８】
また、プロセッサ１００１は、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、ストレージ１００３および／または通信装置１００４からメモリ１００２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、対話装置１０の少なくとも一部の機能要素は、メモリ１００２に格納され、プロセッサ１００１で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、一つのプロセッサ１００１で実行される旨を説明してきたが、２以上のプロセッサ１００１により同時または逐次に実行されてもよい。プロセッサ１００１は、１以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
【００５９】
メモリ１００２は、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ROM）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  ROM）、ＲＡＭ（Random  Access  Memory）などの少なくとも一つで構成されてもよい。メモリ１００２は、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリ１００２は、本発明の一実施の形態に係る無線通信方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００６０】
ストレージ１００３は、コンピュータ読み取り可能な記録媒体であり、例えば、ＣＤＲＯＭ（Compact  Disc  ROM）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク（例えば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク）、スマートカード、フラッシュメモリ（例えば、カード、スティック、キードライブ）、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも一つで構成されてもよい。ストレージ１００３は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ１００２および／またはストレージ１００３を含むテーブル、サーバその他の適切な媒体であってもよい。
【００６１】
通信装置１００４は、有線および／または無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。例えば、対話装置１０の少なくとも一部の機能要素は通信装置１００４で実現されてもよい。
【００６２】
入力装置１００５は、外部からの入力を受け付ける入力デバイス（例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど）である。出力装置１００６は、外部への出力を実施する出力デバイス（例えば、ディスプレイ、スピーカー、ＬＥＤランプなど）である。なお、入力装置１００５および出力装置１００６は、一体となった構成（例えば、タッチパネル）であってもよい。
【００６３】
また、プロセッサ１００１やメモリ１００２などの各装置は、情報を通信するためのバス１００７で接続される。バス１００７は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００６４】
また、コンピュータ１００は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部または全てが実現されてもよい。例えば、プロセッサ１００１は、これらのハードウェアの少なくとも一つで実装されてもよい。
【００６５】
以上説明したように、本発明の一側面に係る対話装置は、ユーザとの間で実行される自動対話を構成する発話文章を取得する取得部と、発話文章がまだログに記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する隠蔽部と、少なくとも一部の秘密情報が隠蔽された発話文章をログに記録する記録部とを備える。
【００６６】
このような側面においては、発話文章中の秘密情報の少なくとも一部が最初からログに記録されないので、対話の中で現れた秘密情報のセキュリティをより確実に確保することができる。加えて、いったん記録したログに対して秘密情報の少なくとも一部を後から隠蔽する処理を実行する処理が不要になるので、対話装置のハードウェア資源の使用量（例えば、プロセッサの負荷およびメモリ消費量）を抑制することができる。
【００６７】
他の側面に係る対話装置では、隠蔽部が、予め定められた複数の隠蔽レベルから選択された少なくとも一つの隠蔽レベルに基づいて隠蔽処理を実行してもよい。このように複数の隠蔽レベルを選択肢として用意することで、隠蔽処理を必要に応じて柔軟に実行することができる。言い換えると、ログに記録される発話文章の抽象度を必要に応じて変更することができる。
【００６８】
他の側面に係る対話装置では、複数の隠蔽レベルが、少なくとも一部の秘密情報の削除を示す削除レベルと、少なくとも一部の秘密情報を概念語に置換する置換レベルとを少なくとも含んでもよい。この場合には、隠蔽しようとする情報を完全に消すかまたは他の語句に置き換えるかを選択することができる。
【００６９】
他の側面に係る対話装置では、複数の隠蔽レベルが、少なくとも一部の秘密情報を第１概念語に置換する第１置換レベルと、少なくとも一部の秘密情報を、該第１概念語よりも抽象度が低い第２概念語に置換する第２置換レベルとを少なくとも含んでもよい。このように複数種類の置換方法を用意することで、ログに記録される発話文章の抽象度を必要に応じて変更することができる。
【００７０】
他の側面に係る対話装置では、取得部が、発話文章と関連付けられた発話属性をさらに取得し、隠蔽部が、隠蔽処理をさらに発話属性に対して実行し、記録部が、少なくとも一部の秘密情報が隠蔽された発話属性をさらにログに記録してもよい。発話文章に加えて発話属性に対しても隠蔽処理を実行することで、秘密情報のセキュリティをより確実に確保することができる。
【００７１】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨および範囲を逸脱することなく修正および変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００７２】
情報の通知は、本明細書で説明した態様および実施形態に限られず、他の方法で行われてもよい。例えば、情報の通知は、物理レイヤシグナリング（例えば、ＤＣＩ（Downlink  Control  Information）、ＵＣＩ（Uplink  Control  Information））、上位レイヤシグナリング（例えば、ＲＲＣ（Radio  Resource  Control）シグナリング、ＭＡＣ（Medium  Access  Control）シグナリング、報知情報（ＭＩＢ（Master  Information  Block）、ＳＩＢ（System  Information  Block）））、その他の信号またはこれらの組み合わせによって実施されてもよい。また、ＲＲＣシグナリングは、ＲＲＣメッセージと呼ばれてもよく、例えば、ＲＲＣ接続セットアップ（RRC  Connection  Setup）メッセージ、ＲＲＣ接続再構成（RRC  Connection  Reconfiguration）メッセージなどであってもよい。
【００７３】
本明細書で説明した各態様／実施形態は、ＬＴＥ（Long  Term  Evolution）、ＬＴＥ−Ａ（LTE-Advanced）、ＳＵＰＥＲ  ３Ｇ、ＩＭＴ−Ａｄｖａｎｃｅｄ、４Ｇ、５Ｇ、ＦＲＡ（Future  Radio  Access）、Ｗ−ＣＤＭＡ（登録商標）、ＧＳＭ（登録商標）、ＣＤＭＡ２０００、ＵＭＢ（Ultra  Mobile  Broadband）、ＩＥＥＥ  ８０２．１１（Ｗｉ−Ｆｉ）、ＩＥＥＥ  ８０２．１６（ＷｉＭＡＸ）、ＩＥＥＥ  ８０２．２０、ＵＷＢ（Ultra-Wideband）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、その他の適切なシステムを利用するシステムおよび／またはこれらに基づいて拡張された次世代システムに適用されてもよい。
【００７４】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００７５】
情報等は、上位レイヤ（または下位レイヤ）から下位レイヤ（または上位レイヤ）へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
【００７６】
入出力された情報等は特定の場所（例えば、メモリ）に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００７７】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：trueまたはfalse）によって行われてもよいし、数値の比較（例えば、所定の値との比較）によって行われてもよい。
【００７８】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００７９】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００８０】
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペアおよびデジタル加入者回線（ＤＳＬ）などの有線技術および／または赤外線、無線およびマイクロ波などの無線技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、これらの有線技術および／または無線技術は、伝送媒体の定義内に含まれる。
【００８１】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、またはこれらの任意の組み合わせによって表されてもよい。
【００８２】
なお、本明細書で説明した用語および／または本明細書の理解に必要な用語については、同一のまたは類似する意味を有する用語と置き換えてもよい。
【００８３】
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
【００８４】
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。例えば、無線リソースはインデックスで指示されるものであってもよい。
【００８５】
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。様々なチャネル（例えば、ＰＵＣＣＨ、ＰＤＣＣＨなど）および情報要素（例えば、ＴＰＣなど）は、あらゆる好適な名称によって識別できるので、これらの様々なチャネルおよび情報要素に割り当てている様々な名称は、いかなる点においても限定的なものではない。
【００８６】
ユーザ端末および移動通信端末は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、またはいくつかの他の適切な用語で呼ばれる場合もある。
【００８７】
本明細書で使用する「判断（determining）」、「決定（determining）」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定（judging）、計算（calculating）、算出（computing）、処理（processing）、導出（deriving）、調査（investigating）、探索（looking  up）（例えば、テーブル、テーブルまたは別のデータ構造での探索）、確認（ascertaining）した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信（receiving）（例えば、情報を受信すること）、送信（transmitting）（例えば、情報を送信すること）、入力（input）、出力（output）、アクセス（accessing）（例えば、メモリ中のデータにアクセスすること）した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決（resolving）、選択（selecting）、選定（choosing）、確立（establishing）、比較（comparing）などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。
【００８８】
「接続された（connected）」、「結合された（coupled）」という用語、またはこれらのあらゆる変形は、２またはそれ以上の要素間の直接的または間接的なあらゆる接続または結合を意味し、互いに「接続」または「結合」された２つの要素間に１またはそれ以上の中間要素が存在することを含むことができる。要素間の結合または接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。本明細書で使用する場合、２つの要素は、１またはそれ以上の電線、ケーブルおよび／またはプリント電気接続を使用することにより、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域および光（可視および不可視の両方）領域の波長を有する電磁エネルギーなどの電磁エネルギーを使用することにより、互いに「接続」または「結合」されると考えることができる。
【００８９】
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００９０】
本明細書で「第１の」、「第２の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、２つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第１および第２の要素への参照は、２つの要素のみがそこで採用され得ること、または何らかの形で第１の要素が第２の要素に先行しなければならないことを意味しない。
【００９１】
「含む（include）」、「含んでいる（including）」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える（comprising）」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。
【００９２】
本明細書において、文脈または技術的に明らかに一つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
【符号の説明】
【００９３】
１０…対話装置、２０…フロント機能、２１…取得部、２２…隠蔽部、２３…記録部、３０…ボット機能、９０…ユーザ端末、４０…ログ。
【図１】
2019220791.tif 000003
【図２】
2019220791.tif 000004
【図３】
2019220791.tif 000005
【図４】
2019220791.tif 000006
【図５】
2019220791.tif 000007
【国際調査報告】
2019220791.tif 000008
2019220791.tif 000009
2019220791.tif 000010
2019220791.tif 000011