以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
対話装置は、ユーザとの間で自動対話を実行するコンピュータである。ユーザとは対話装置を利用する人である。自動対話とはユーザとコンピュータ(このコンピュータは一般に「ボット」ともいわれる。)との間の会話のやり取りであり、この自動対話ではコンピュータはユーザからの発話に応答して自動的に発話する。発話とはユーザまたはコンピュータが発する一回分の話である。以下では、ユーザの発話を「ユーザ発話」ともいい、コンピュータの発話を「システム発話」ともいう。
対話装置の利用目的は何ら限定されない。例えば、対話装置はユーザの質問に回答するFAQ(Frequently Asked Questions)システムで用いられてもよいし、FAQに限られない任意の話を行う雑談システムで用いられてもよい。あるいは、対話装置は、音声操作に基づいて任意のタスクを実行するバーチャルアシスタント機能に組み込まれてもよい。
対話装置はクライアント-サーバ型システムの一部であってもよいし、単体の装置であってもよい。本実施形態では、対話装置はサーバとして機能するコンピュータであるとする。図1は、実施形態に係る対話装置10の機能構成の一例を示す図である。対話装置10は通信ネットワークを介して少なくとも一つのユーザ端末90と接続することができる。通信ネットワークの構成は何ら限定されず、例えばインターネットおよびイントラネットの少なくとも一方を用いて構成されてもよい。
ユーザ端末90はユーザにより操作されるコンピュータ(クライアント端末)である。ユーザ端末90は、ユーザにより入力された発話(ユーザ発話)を対話装置10に送信する機能と、対話装置10から受信した発話(システム発話)を出力する機能とを備える。ユーザ端末90の種類は限定されず、例えば、据置型のコンピュータまたは装置であってもよいし、携帯型のコンピュータまたは装置であってもよい。ユーザ端末90の具体的な例として、スマートフォン、タブレット端末、ウェアラブル端末、パーソナルコンピュータ、スマートスピーカ、スマートテレビ、およびスマート家電が挙げられるが、これらに限定されない。
対話装置10はユーザ端末90との間で実行された自動対話を構成する発話文章をログ40に記録する。発話文章とはユーザまたはボットの発話を示す文章であり、文字列で表現することができる。ログとは発話文章の履歴の永続的な記録である。ログ40は任意の形式の論理ファイルにより実現され、任意のストレージ(記憶装置)に保存される。対話装置10の特徴の一つは、発話文章のログへの記録方法にある。以下では、その特徴について特に詳しく説明する。
図1に示すように、対話装置10は機能要素として、自動対話を統括的に制御するフロント機能20と、特定の話題に関するシステム発話を出力する1以上のボット機能30とを備える。フロント機能20は、ユーザ端末90から受信したユーザ発話を処理させるボット機能30を決定し、そのボット機能30にユーザ発話を転送する。その後、フロント機能20は、そのボット機能30から出力されたシステム発話をユーザ端末90に応答として送信する。また、フロント機能20はそのユーザ発話およびシステム発話をログ40に記録する。それぞれのボット機能30は、対話のルール(どのようなユーザ発話を受け付けた場合にどのようなシステム発話を出力するかを規定したルール)であるシナリオを参照する。ボット機能30は、フロント機能20からユーザ発話を受け付けると、そのユーザ発話に対応するシステム発話をそのシナリオに基づいて決定し、決定したシステム発話をフロント機能20に出力する。
本実施形態では、フロント機能20は取得部21、隠蔽部22、および記録部23を備える。取得部21は、ユーザとの間で実行される自動対話を構成する発話文章を取得する機能要素である。取得部21は、ユーザ発話またはシステム発話を示す発話文章を取得する。隠蔽部22は、その発話文章がまだログ40に記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する機能要素である。秘密情報とは第三者(少なくともユーザとは異なる者)に知らせないことが望ましい情報である。どのような情報を秘密情報とするかは任意に定められてよい。例えば、秘密情報は個人情報の少なくとも一部を含んでもよいし、企業の機密情報の少なくとも一部を含んでもよい。隠蔽とは、第三者による元の情報の特定を不可能にまたは困難にするための処理である。記録部23は、少なくとも一部の秘密情報が隠蔽された発話文章をログ40に記録する機能要素である。
図2~図4を参照しながら対話装置10の動作を説明する。図2および図3は、対話装置10の動作の一例を示すシーケンス図である。図4はログ40のいくつかの例を示す図である。理解を容易にするために、図2および図3では、対話装置10のフロント機能20およびボット機能30を個々に示すと共に、1以上のボット機能30を一つのブロックで簡易に示す。
ステップS11では、ユーザ端末90が自動対話の開始要求を対話装置10に送信する。対話装置10がこの開始要求を受信および処理することで、ユーザはユーザ端末90を用いて自動対話を行うことができる。
本実施形態では、その開始要求は発話属性を含むデータ信号である。発話属性とはユーザ発話に関連する性質または特徴を示す情報であり、自動対話で用いられ得る。本実施形態では、発話属性は開始要求に含まれたかたちで、またはユーザ発話と共に、ユーザ端末90から対話装置10に提供される。発話属性の具体的な内容は限定されない。本実施形態では、発話属性は、自動対話を利用しようとするユーザの性質または特徴を示すユーザ属性と、ユーザ端末90の性質または特徴を示す端末属性とを含むものとする。ユーザ属性を示すデータ項目の種類および個数は何ら限定されない。例えば、ユーザ属性は名前、性別、年齢、および住所から選択される一つであってもよいし、該4項目から任意に選択される2以上の項目の組合せであってもよい。あるいは、ユーザ属性は該4項目とは異なる他の1以上のデータ項目を含んでもよい。端末属性を示すデータ項目の種類および個数も何ら限定されない。例えば、端末属性は端末名、オペレーティングシステム名、および作動モードから選択される一つであってもよいし、該3項目から任意に選択される2以上の項目の組合せであってもよい。あるいは、端末属性は該3項目とは異なる他の1以上のデータ項目を含んでもよい。いずれにしても、対話装置10では取得部21がその開始要求を受信する。
ステップS12では、隠蔽部22がその開始要求の発話属性に基づいて隠蔽レベルを決定する。隠蔽レベルとは、秘密情報を隠蔽する方法(隠蔽方法)と、隠蔽すべき秘密情報のデータ項目との少なくとも一方を示す指標である。
隠蔽方法は、少なくとも一部の秘密情報の削除であってもよく、この場合には、隠蔽レベルは削除レベルである。削除レベルの場合には、隠蔽される秘密情報は、ログ40に記録されようとする文字列から除外されるので、ログ40には最初から記録されない。
あるいは、隠蔽方法は、少なくとも一部の秘密情報を1以上の概念語に置換する処理であってもよく、この場合には、隠蔽レベルは置換レベルである。概念語とは元の情報を抽象化した語句である。したがって、置換レベルの場合には、隠蔽される秘密情報は、より曖昧な別の言葉に置き換えられた上でログ40に記録される。概念語は、元の情報のカテゴリを示す語句であってもよいし、元の情報に対応する変数名であってもよい。あるいは、概念語は元の情報の手掛かりを全く与えないような曖昧な表現であってもよい。例えば、「田中」という姓が置換レベルで隠蔽される場合には、その文字列「田中」は「%userInfo.surname%」、「surname」、「name」、または「%variable_1%」という概念語に置換されてもよい。
置換レベルは複数段階で設定されてもよい。これは、或る秘密情報の抽象化の度合い(抽象度)が複数種類用意されることを意味する。2種類の置換レベルが用意されてもよいし3種類以上の置換レベルが用意されてもよい。いずれにしても、この場合の隠蔽レベルは、少なくとも一部の秘密情報を第1概念語に置換する第1置換レベルと、少なくとも一部の秘密情報を、該第1概念語よりも抽象度が低い第2概念語に置換する第2置換レベルとを含んでもよい。
第1置換レベルおよび第2置換レベルが予め用意されており、「田中」および「鈴木」という二つの姓をその2種類の置換レベルで隠蔽する例を示す。例えば、第1置換レベルでは、「田中」および「鈴木」という二つの文字列の双方が「%userInfo.surname%」という第1概念語に置き換えられてもよい。一方、第2置換レベルでは、文字列「田中」は「%userInfo.surname1%」という第2概念語に置き換えられ、文字列「鈴木」は「%userInfo.surname2%」という第2概念語に置き換えられてもよい。この例では、第1置換レベルは二つの姓を区別できないかたちで置換する処理であるのに対して、第2置換レベルは二つの姓を区別するかたちで置換する処理である。したがって、第2概念語は第1概念語よりも抽象度が低い。
隠蔽方法は一つのみ用意されてもよいし、2以上の隠蔽方法が用意されてもよい。複数の隠蔽方法が用意される場合には、隠蔽レベルは、複数の置換レベルから選択可能であってもよいし、削除レベルと一つの置換レベルとから選択可能であってもよいし、削除レベルと複数の置換レベルとから選択可能であってもよい。
隠蔽すべき秘密情報の種類は任意に設定されてよい。例えば、一種類の秘密情報のみを隠蔽するように隠蔽レベルが設定されてもよいし、2種類以上の秘密情報を隠蔽するように隠蔽レベルが設定されてもよい。あるいは、想定される秘密情報の一部のみまたはすべてを隠蔽するように隠蔽レベルが設定されてもよい。より具体的な例として、名前、年齢、性別、および場所から選択される一または複数のデータ項目が隠蔽されるように隠蔽レベルが設定されてもよい。いずれにしても、隠蔽レベルは、少なくとも一部の秘密情報を隠蔽するように設定される。
隠蔽レベルは隠蔽方法と隠蔽すべき秘密情報の種類との双方を示してもよいし、どちらか一方のみを示してもよい。隠蔽レベルは個々のユーザ毎に設定されてもよいし、すべてのユーザに共通であってもよい。あるいは、隠蔽レベルは個々の発話属性毎に設定されてもよく、例えば、ユーザの年齢層毎に設定されてもよい。発話文章の隠蔽レベルと発話属性の隠蔽レベルとは同じでもよいし互いに異なってもよい。いずれにしても、隠蔽レベルは様々な態様で柔軟に設定され得る。
対話装置10は、隠蔽部22が隠蔽レベルを決定できるように、隠蔽レベルに関する情報を予め記憶する。記憶される隠蔽レベルの記述方法は限定されない。例えば、隠蔽レベルは設定ファイル、データベース、マッピングテーブル、アルゴリズム、数式、および閾値のうちのいずれかの手法で表されてもよいし、これらの手法から任意に選択される2以上の組合せで表されてもよい。このように、隠蔽レベルは様々な手法で設定され得る。いずれにしても、隠蔽部22は開始要求に含まれる発話属性に基づいて、予め用意された1以上の隠蔽レベルのうちの一つを決定する。
ステップS13では、隠蔽部22が、決定した隠蔽レベルに基づいて、開始要求に対する隠蔽処理を実行する。隠蔽部22は、ログ40に記録しようとする、開始要求を示す文字列のうち、その隠蔽レベルで指定された秘密情報(例えば、ユーザ属性の少なくとも一部)を、指定された隠蔽方法で隠蔽する。例えば、決定した隠蔽レベルが削除レベルであれば、隠蔽部22は指定された秘密情報を該文字列から削除する。決定した隠蔽レベルが置換レベルであれば、隠蔽部22は該文字列内の指定された秘密情報を概念語に置換する。
隠蔽しようとする秘密情報を処理対象の文字列から特定する方法は限定されない。例えば、隠蔽部22はその秘密情報を、文字列マッチング、機械学習、照応解析、および固有表現抽出(エンティティリンキング)から選択される少なくとも一つの手法を用いて特定してもよい。開始要求を処理する場合には、発話属性は予め定められた規則で開始要求に記述されるので、隠蔽部22は、隠蔽しようとする秘密情報を文字列マッチングにより特定し、その秘密情報を隠蔽レベルに基づいて処理してもよい。
ステップS14では、記録部23が、隠蔽処理された開始要求をログ40に記録する。隠蔽されるべき秘密情報は、この時点で既に隠蔽(例えば削除または置換)されているので、ログ40には当初から書き込まれない。
ステップS15では、開始要求を契機として、ユーザ端末90と対話装置10との間で自動対話が実行される。ステップS15では、フロント機能20は自動対話を開始するための処理を実行し、その後、ユーザ端末90と対話装置10との間でユーザ発話およびシステム発話が伝送される。ユーザはこの自動対話において所望の情報を取得したり発信したりすることができる。
図3は、その自動対話中の(言い換えると、ステップS15における)発話データのログへの記録の一例を示す。ステップS151では、ユーザ端末90がユーザ発話データを対話装置10に送信する。ユーザ発話データは、ユーザ発話を表す発話文章と発話属性とを含むデータである。
ユーザ端末90におけるユーザ発話(発話文章)の取得方法は限定されない。例えば、ユーザ端末90は音声入力されたユーザ発話(すなわち音声データで表されるユーザ発話)を取得してもよいし、文字列で入力されたユーザ発話(すなわちテキストデータで表されるユーザ発話)を取得してもよい。あるいは、ユーザ端末90はユーザの指示に基づいて自動的にユーザ発話を音声データまたはテキストデータの形式で生成してもよい。発話属性は、開始要求に含まれるものと同じでもよいし、開始要求に含まれるものの少なくとも一部と異なってもよい。いずれにしても、発話属性はユーザ発話(発話文章)と関連付けられたデータである。ユーザ端末90は取得したユーザ発話と発話属性とを含むユーザ発話データを生成して、このユーザ発話データを送信する。対話装置10ではフロント機能20がそのユーザ発話データを受信する。
ステップS152では、フロント機能20がそのユーザ発話データを処理させるボット機能30を決定し、該当するボット機能30にそのユーザ発話データを転送する。
ステップS153では、隠蔽部22がそのユーザ発話データの発話属性に基づいて隠蔽レベルを決定する。隠蔽部22はステップS12と同様に隠蔽レベルを決定する。
ステップS154では、隠蔽部22が、決定した隠蔽レベルに基づいて、ユーザ発話データに対する隠蔽処理を実行する。隠蔽部22はステップS13と同様に隠蔽処理を実行する。ユーザ発話の発話文章は自由に記述され得る。したがって、隠蔽しようとする秘密情報を発話文章から特定する際には、隠蔽部22は文字列マッチング、機械学習、照応解析、および固有表現抽出(エンティティリンキング)から選択される少なくとも一つの手法を用いてその秘密情報を発話文章から特定してもよい。これに対して、発話属性は予め定められた規則でユーザ発話データに記述されるので、隠蔽部22は、発話属性内の隠蔽しようとする秘密情報を文字列マッチングにより特定してもよい。
ステップS155では、記録部23が、隠蔽処理されたユーザ発話データをログ40に記録する。ステップS14と同様に、そのユーザ発話データは、隠蔽されるべき秘密情報がそのまま現れない態様でログ40に記録される。
発話データがどのようにログ40に記録されるかは隠蔽レベルに応じて変わる。図4を参照しながら、その隠蔽レベルとログ40との関係について説明する。図4の例では、対話装置10は「港区赤坂と横須賀市の天気を教えて」というユーザ発話(発話文章)をログ40に記録する際に地名を隠蔽するとともに、発話属性(clientData)内のユーザ属性(userInfo)を隠蔽する。この例では、「港区赤坂」はユーザの勤務地であるとし、「横須賀市」はユーザの居住地であるとする。また、発話文章の隠蔽レベルとして削除レベル、第1置換レベル、および第2置換レベル(第1概念語よりも抽象度が低い第2概念語に置換する処理)を例示する。なお、図4の例はAIML(Artificial Intelligence Markup Language)を応用して記述されたデータを示すが、発話データを記述するための方法および規則は何ら限定されない。
隠蔽部22が隠蔽レベルとして削除レベルを選択した場合には、隠蔽部22はそれら二つの地名をその発話文章から削除する。したがって、記録部23は「 と の天気を教えて」という文字列をログ40に記録する。また、隠蔽部22はユーザ属性を構成する名前「tanaka」および年齢「28」を削除する。
隠蔽部22が隠蔽レベルとして第1置換レベルを選択した場合には、隠蔽部22はそれら二つの地名を共通の文字列で置換する。例えば、隠蔽部22は地名に相当する変数名「%userInfo.place%」を第1概念語として用い、「港区赤坂」および「横須賀市」の双方をこの変数名で置換する。また、隠蔽部22はユーザ属性を構成する名前「tanaka」および年齢「28」を削除する。上述したように、発話文章と発話属性との間で隠蔽レベルが異なってもよい。
隠蔽部22が隠蔽レベルとして第2置換レベルを選択した場合には、隠蔽部22はそれら二つの地名を、相異なる文字列で置換する。例えば、隠蔽部22は勤務地に相当する第2概念語である変数名「%userInfo.workplace%」で「港区赤坂」を置換する。また、隠蔽部22は居住地に相当する第2概念語である変数名「%userInfo.home%」で「横須賀市」を置換する。また、隠蔽部22はユーザ属性を構成する名前「tanaka」および年齢「28」を削除する。
図4では、発話文章のログへの記録方法が三つの例の間で異なる。隠蔽レベルが削除レベルである場合には、隠蔽の対象である秘密情報が発話文章から完全に削除されるので、ログ40には地名に関する手掛かりが記録されない。したがって、ユーザ以外の第三者(例えば対話装置10の管理者)がログ40を読んでも、ユーザが何の天気を教えてと話したかを特定できない。例えば、「 と の天気を教えて」の空欄には、「今日」「明日」などのような時期も入り得る。一方、隠蔽レベルが第1隠蔽レベルである場合には、ログ40上では、秘密情報に相当する部分に「%userInfo.place%」という第1概念語が記述される。したがって、第三者は、ユーザが何かしらの場所の天気を聞いたことは推測できるが、それが具体的にどの場所であるかを知ることはできない。隠蔽レベルが第2隠蔽レベルである場合には、ログ40上では、「%userInfo.workplace%」および「%userInfo.home%」という第2概念語が記述される。したがって、第三者はユーザが2ヵ所の天気を聞いたことと、その場所が勤務地および居住地に関することとを推測できるが、具体的な場所を知ることはできない。したがって、図4の例では、ログ40に記録される発話文章の抽象度は、削除レベルの場合にいちばん高く、第2置換レベルの場合にいちばん低く、第1置換レベルの場合には、削除レベルと第2置換レベルとの間の水準であるといえる。
図4では、発話属性のログへの記録方法が三つの例で同じである。もちろん、隠蔽部22は、発話属性中の少なくとも一部の秘密情報を概念語に置換してもよい。
図3に戻り、ステップS156では、ボット機能30がユーザ発話に応答してシステム発話データをフロント機能20に出力する。ボット機能30は、フロント機能20からユーザ発話データを受け付け、そのデータに含まれるユーザ発話および発話属性に基づいてシナリオを参照することで、該ユーザ発話への応答として適切であると推定されるシステム発話を決定する。そして、ボット機能30はその決定したシステム発話を含むシステム発話データをフロント機能20に出力する。システム発話データは、システム発話を表す発話文章を含むデータである。ユーザ発話と同様にシステム発話の表現方法も限定されず、例えば、システム発話は音声またはテキストで表現され得る。
ステップS157では、フロント機能20がそのシステム発話データをユーザ端末90に送信する。フロント機能20はシステム発話の出力形式を指定した上で(すなわち、システム発話を整形した上で)システム発話データを送信してもよい。ユーザ端末90はそのシステム発話データを受信および出力し、これにより、ユーザはユーザ発話に対するボットの返事を認識できる。
ステップS158では、隠蔽部22がシステム発話の隠蔽レベルを決定する。ステップS153と同様に、隠蔽部22は、ユーザ発話データに含まれていた発話属性に基づいて隠蔽レベルを決定してもよい。
ステップS159では、隠蔽部22が、決定した隠蔽レベルに基づいて、システム発話データに対する隠蔽処理を実行する。システム発話が変数を含む場合には、隠蔽部22は、隠蔽しようとする秘密情報をその変数に基づいて特定してもよい。例えば、ユーザ端末90に出力されるシステム発話が「港区赤坂も横須賀市も晴です。」であれば、このシステム発話は、「港区赤坂」に対応する変数「%userInfo.workplace%」と「横須賀市」に対応する変数「%userInfo.home%」とを含み得る。この場合には、隠蔽部22はその変数に基づいて、これら二つの地名を隠蔽すると決定することができる。あるいは、隠蔽部22はその秘密情報をステップS154と同様の処理により特定してもよい。
ステップS160では、記録部23が、隠蔽処理されたシステム発話データをログ40に記録する。ステップS155と同様に、そのシステム発話データは、隠蔽されるべき秘密情報がそのまま現れない態様でログ40に記録される。
その後、ユーザ端末90と対話装置10との間で更なる発話のやり取りが実行され得る。したがって、ステップS151~S160の処理は繰り返し実行され得る。図4は、ステップS151およびS152と同様の処理をステップS161およびS162として示す。ステップS161に応じてユーザ発話データがログ40に記録される。また、ステップS162に応じてシステム発話データが生成されてユーザ端末90に送信され、そのシステム発話データがログ40に記録される。
このように、取得部21、隠蔽部22、および記録部23の協働により、隠蔽すべき秘密情報が確実に隠蔽された後に、発話文章および発話属性が初めてログ40に記録される。この処理は、いったんログ40上に記録された秘密情報を後から削除する処理とは全く異なる。
なお、対話装置10は、発話属性に対する隠蔽処理を行うことなく、発話文章に対する隠蔽処理を実行してもよい。すなわち、発話属性の隠蔽は必須ではない。
上記実施の形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成要素)は、ハードウェアおよび/またはソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的および/または論理的に結合した一つの装置により実現されてもよいし、物理的および/または論理的に分離した2つ以上の装置を直接的および/または間接的に(例えば、有線および/または無線)で接続し、これら複数の装置により実現されてもよい。
例えば、本発明の一実施の形態における対話装置10は、本実施形態の処理を行うコンピュータとして機能してもよい。図5は、対話装置10として機能するコンピュータ100のハードウェア構成の一例を示す図である。コンピュータ100は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含んでもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。対話装置10のハードウェア構成は、図に示した各装置を一つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
対話装置10における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ1001が演算を行い、通信装置1004による通信や、メモリ1002およびストレージ1003におけるデータの読み出しおよび/または書き込みを制御することで実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。例えば、対話装置10の少なくとも一部の機能要素はプロセッサ1001で実現されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、ストレージ1003および/または通信装置1004からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、対話装置10の少なくとも一部の機能要素は、メモリ1002に格納され、プロセッサ1001で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、一つのプロセッサ1001で実行される旨を説明してきたが、2以上のプロセッサ1001により同時または逐次に実行されてもよい。プロセッサ1001は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも一つで構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本発明の一実施の形態に係る無線通信方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CDROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも一つで構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002および/またはストレージ1003を含むテーブル、サーバその他の適切な媒体であってもよい。
通信装置1004は、有線および/または無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。例えば、対話装置10の少なくとも一部の機能要素は通信装置1004で実現されてもよい。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005および出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001やメモリ1002などの各装置は、情報を通信するためのバス1007で接続される。バス1007は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
また、コンピュータ100は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部または全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも一つで実装されてもよい。
以上説明したように、本発明の一側面に係る対話装置は、ユーザとの間で実行される自動対話を構成する発話文章を取得する取得部と、発話文章がまだログに記録されていない状態において、少なくとも一部の秘密情報を隠蔽する隠蔽処理を発話文章に対して実行する隠蔽部と、少なくとも一部の秘密情報が隠蔽された発話文章をログに記録する記録部とを備える。
このような側面においては、発話文章中の秘密情報の少なくとも一部が最初からログに記録されないので、対話の中で現れた秘密情報のセキュリティをより確実に確保することができる。加えて、いったん記録したログに対して秘密情報の少なくとも一部を後から隠蔽する処理を実行する処理が不要になるので、対話装置のハードウェア資源の使用量(例えば、プロセッサの負荷およびメモリ消費量)を抑制することができる。
他の側面に係る対話装置では、隠蔽部が、予め定められた複数の隠蔽レベルから選択された少なくとも一つの隠蔽レベルに基づいて隠蔽処理を実行してもよい。このように複数の隠蔽レベルを選択肢として用意することで、隠蔽処理を必要に応じて柔軟に実行することができる。言い換えると、ログに記録される発話文章の抽象度を必要に応じて変更することができる。
他の側面に係る対話装置では、複数の隠蔽レベルが、少なくとも一部の秘密情報の削除を示す削除レベルと、少なくとも一部の秘密情報を概念語に置換する置換レベルとを少なくとも含んでもよい。この場合には、隠蔽しようとする情報を完全に消すかまたは他の語句に置き換えるかを選択することができる。
他の側面に係る対話装置では、複数の隠蔽レベルが、少なくとも一部の秘密情報を第1概念語に置換する第1置換レベルと、少なくとも一部の秘密情報を、該第1概念語よりも抽象度が低い第2概念語に置換する第2置換レベルとを少なくとも含んでもよい。このように複数種類の置換方法を用意することで、ログに記録される発話文章の抽象度を必要に応じて変更することができる。
他の側面に係る対話装置では、取得部が、発話文章と関連付けられた発話属性をさらに取得し、隠蔽部が、隠蔽処理をさらに発話属性に対して実行し、記録部が、少なくとも一部の秘密情報が隠蔽された発話属性をさらにログに記録してもよい。発話文章に加えて発話属性に対しても隠蔽処理を実行することで、秘密情報のセキュリティをより確実に確保することができる。
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨および範囲を逸脱することなく修正および変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
情報の通知は、本明細書で説明した態様および実施形態に限られず、他の方法で行われてもよい。例えば、情報の通知は、物理レイヤシグナリング(例えば、DCI(Downlink Control Information)、UCI(Uplink Control Information))、上位レイヤシグナリング(例えば、RRC(Radio Resource Control)シグナリング、MAC(Medium Access Control)シグナリング、報知情報(MIB(Master Information Block)、SIB(System Information Block)))、その他の信号またはこれらの組み合わせによって実施されてもよい。また、RRCシグナリングは、RRCメッセージと呼ばれてもよく、例えば、RRC接続セットアップ(RRC Connection Setup)メッセージ、RRC接続再構成(RRC Connection Reconfiguration)メッセージなどであってもよい。
本明細書で説明した各態様/実施形態は、LTE(Long Term Evolution)、LTE-A(LTE-Advanced)、SUPER 3G、IMT-Advanced、4G、5G、FRA(Future Radio Access)、W-CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、UWB(Ultra-Wideband)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステムおよび/またはこれらに基づいて拡張された次世代システムに適用されてもよい。
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
情報等は、上位レイヤ(または下位レイヤ)から下位レイヤ(または上位レイヤ)へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:trueまたはfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本明細書で説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペアおよびデジタル加入者回線(DSL)などの有線技術および/または赤外線、無線およびマイクロ波などの無線技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、これらの有線技術および/または無線技術は、伝送媒体の定義内に含まれる。
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、またはこれらの任意の組み合わせによって表されてもよい。
なお、本明細書で説明した用語および/または本明細書の理解に必要な用語については、同一のまたは類似する意味を有する用語と置き換えてもよい。
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。例えば、無線リソースはインデックスで指示されるものであってもよい。
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。様々なチャネル(例えば、PUCCH、PDCCHなど)および情報要素(例えば、TPCなど)は、あらゆる好適な名称によって識別できるので、これらの様々なチャネルおよび情報要素に割り当てている様々な名称は、いかなる点においても限定的なものではない。
ユーザ端末および移動通信端末は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、またはいくつかの他の適切な用語で呼ばれる場合もある。
本明細書で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up)(例えば、テーブル、テーブルまたは別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。
「接続された(connected)」、「結合された(coupled)」という用語、またはこれらのあらゆる変形は、2またはそれ以上の要素間の直接的または間接的なあらゆる接続または結合を意味し、互いに「接続」または「結合」された2つの要素間に1またはそれ以上の中間要素が存在することを含むことができる。要素間の結合または接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。本明細書で使用する場合、2つの要素は、1またはそれ以上の電線、ケーブルおよび/またはプリント電気接続を使用することにより、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域および光(可視および不可視の両方)領域の波長を有する電磁エネルギーなどの電磁エネルギーを使用することにより、互いに「接続」または「結合」されると考えることができる。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
本明細書で「第1の」、「第2の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1および第2の要素への参照は、2つの要素のみがそこで採用され得ること、または何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
「含む(include)」、「含んでいる(including)」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。
本明細書において、文脈または技術的に明らかに一つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。