(57)【特許請求の範囲】
【請求項１】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、少なくとも前記第１の属性の属性値のうち頻度が最も高い属性値である確率のデータを含む曖昧化データに置換し、前記データ格納部に格納するステップと、
を含み、コンピュータに実行される情報処理方法。
【請求項２】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのレコード数と前記第１の属性の属性値の取り得る種類の数とに応じて算出される確率に従い、前記複数のレコードのうち１又は２のレコードにおける前記第１の属性の属性値を曖昧化する複数の曖昧化パターンのうちいずれかを特定し、特定された前記曖昧化パターンに従って、前記第１の属性の属性値を曖昧化データで置換し、前記データ格納部に格納するステップと、
を含み、コンピュータに実行される情報処理方法。
【請求項３】
前記データ格納部に格納されているレコードを、前記第１の属性とは異なる第２の属性の属性値が同じレコードにグループ化することで、前記複数のレコードを抽出する抽出ステップと、
前記複数のレコードにおける前記第１の属性の属性値毎に、当該第１の属性の属性値を含むレコードの数を計数し、前記データ格納部に格納するステップと、
をさらに含む請求項１又は２記載の情報処理方法。
【請求項４】
前記偏りが大きいことを表す条件が、前記第１の属性の属性値が２種類しか出現しておらず且つ頻度が低い方の属性値の頻度が１又は２であるという条件と、前記第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である
請求項１乃至３のいずれか１つ記載の情報処理方法。
【請求項５】
前記偏りが大きいことを表す条件が、前記第１の属性の属性値が２種類しか出現しておらず且つ頻度が低い方の属性値の頻度が１であるという条件と、前記第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である
請求項１乃至３のいずれか１つ記載の情報処理方法。
【請求項６】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、少なくとも前記第１の属性の属性値のうち頻度が最も高い属性値である確率のデータを含む曖昧化データに置換し、前記データ格納部に格納するステップと、
を、コンピュータに実行させるプログラム。
【請求項７】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのレコード数と前記第１の属性の属性値の取り得る種類の数とに応じて算出される確率に従い、前記複数のレコードのうち１又は２のレコードにおける前記第１の属性の属性値を曖昧化する複数の曖昧化パターンのうちいずれかを特定し、特定された前記曖昧化パターンに従って、前記第１の属性の属性値を曖昧化データで置換し、前記データ格納部に格納するステップと、
を、コンピュータに実行させるプログラム。
【請求項８】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断する判断部と、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、少なくとも前記第１の属性の属性値のうち頻度が最も高い属性値である確率のデータを含む曖昧化データに置換し、前記データ格納部に格納する曖昧化処理部と、
を有する情報処理装置。
【請求項９】
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断する判断部と、
前記レコードの数の分布が、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのレコード数と前記第１の属性の属性値の取り得る種類の数とに応じて算出される確率に従い、前記複数のレコードのうち１又は２のレコードにおける前記第１の属性の属性値を曖昧化する複数の曖昧化パターンのうちいずれかを特定し、特定された前記曖昧化パターンに従って、前記第１の属性の属性値を曖昧化データで置換し、前記データ格納部に格納する曖昧化処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データを匿名化する技術に関する。
【背景技術】
【０００２】
プライバシーに関わるデータの統計値を開示するとき、データの分布によってはプライバシーが侵害される場合がある。たとえば、４人の従業員に対しアンケート調査をおこない、その統計結果を従業員に開示することを考える。
【０００３】
図１に、アンケート結果例を示す。３つの質問に対し、それぞれ４人が回答し、その統計結果が示されている。ここで、それぞれの回答はプライバシー情報であるものとする。すなわち、それぞれの質問につき、各従業員は自分が何と回答したか他の従業員に知られたくないと考えているものとする。また、各従業員は誰がこのアンケートに回答したか知っているものとする。
【０００４】
このとき、質問１の回答は、全員が「不満」であるため、各従業員が何と回答したか他の従業員に知られてしまうという問題がある。また、質問２の回答は、１人以外の全員が「不満」であるため、どの従業員が「不満」と回答したか、その１人に知られてしまうという問題がある。なお、質問３の回答は偏りが小さく、結託をしない限り、どの従業員にも他の従業員の回答を一意に知ることができない。
【０００５】
ところで、ｋ−匿名化技術という匿名化技術が知られている。ｋ−匿名化技術とは、例えば表データについて、プライバシー上あまり問題とならない属性の値が全て同じレコードが ｋ個以上となるようにデータを変更する技術である。
【０００６】
たとえば、部署や年齢とともに、従業員８人に対し図１のような質問についてアンケート調査を行うことを考える。
【０００７】
図２に、このアンケート回答例を示す。各レコード（すなわち行）が各従業員の回答内容である。各属性（すなわち列）は調査項目で、「部署」及び「年齢」はプライバシー上あまり問題とならない属性とし、「回答」内容はプライバシー情報であるものとする。また、前と同様に、各従業員は誰がこのアンケートに回答したかを知っているものとする。
【０００８】
さらに、今度は、アンケート結果を開示する際に、全体の統計値だけでなく、できるだけ詳細な統計値も開示したいとする。それにより、例えば「開発部」は不満率が高いとか、「若い者」は不満率が高いといった、多くの情報を提供できる可能性がある。
【０００９】
但し、図２のデータをそのまま開示することはプライバシー上問題がある。そのまま開示すると、例えば企画部２６歳の太郎さんが「回答」したことを知っている者には、最初のレコードが太郎さんだということが分かるので、太郎さんが不満を抱いていることが分かってしまう。
【００１０】
そこで、ｋ-匿名化技術により変更したデータを開示することが考えられる。ｋ-匿名化技術を使うと、プライバシー上あまり問題とならない属性である、「部署」及び「年齢」の値が変更対象となる。
【００１１】
図３に、ｋ−匿名化技術（ｋ＝４）を適用し、データを変更した例を示す。この表を見ても、企画部２６歳の太郎さんのレコードは最初の１乃至４番目のどれかということまでしかわからない。一方、企画部／開発部は不満率が高い傾向があるという情報が得られる。
【００１２】
このように、ある程度情報を残しつつ、任意の個人（一般的には人に限らない）のレコードがどれか少なくともｋレコードまでしか絞れないようにするのが、ｋ−匿名化技術の効果である。
【００１３】
しかし、ｋ−匿名化技術を適用したからといって、開示してもプライバシー問題がない表に変更されるとは限らない。
【００１４】
上で述べた例では、例えば企画部４２歳で「普通」と回答した次郎さんが図３のデータを見た場合、自分のレコードは２番目であるから企画部２６歳の太郎さんのレコードは１番目か３番目か４番目であることが分かる。そうすると、太郎さんが不満と回答していることが分かってしまう。これは、(部署, 年齢)＝（企画部／開発部，２５／２６／２８／４２）であるグループにおける回答の統計値｛不満：３，普通：１｝の偏りが大きいことによる。
【００１５】
このように、ｋ−匿名化技術を適用した表を開示することは、少ないレコード数での統計値を複数開示することに相当し、偏りの大きい統計値が生じやすい。
【００１６】
また、プライバシー情報となる属性の値の偏りを小さくするｋ−匿名化技術として、ｌ−多様性を満たすｋ−匿名化技術がある。
【００１７】
ｌ−多様性とは、ｋ−匿名化により作られる各グループ（プライバシー上あまり問題とならない属性の値が全て同じレコード群）のプライバシー情報となる属性の統計に、ｌ種類以上の属性値が含まれる性質である。例えば、図３のデータは２−多様性を満たす。なぜなら、（部署，年齢）＝（企画部／開発部，２５／２６／２８／４２）であるグループの回答は不満と普通の２種類があり、（部署，年齢）＝（管理部／営業部，２４／３５／３６／４４）であるグループの回答は不満と普通と満足の３種類があり、他にグループはないからである。
【００１８】
図３のデータは２−多様性を満たすが、上で述べたようにプライバシー保護が不十分である。よって、一般的に ２−多様性を満たすだけではプライバシー保護が不十分であるといえる。
【００１９】
そこでｌ≧３とすることが考えられるが、ｌを大きくすると開示できる情報が少なくなるという問題がある。
【００２０】
図４は図２に示すデータに対してｌ−多様性（ｌ＝３）を満たすｋ−匿名化技術（ｋ＝４）を適用し、データを変更した例である。この表を開示しても、自身の回答以外は、誰がどんな回答をしたのか誰にも一意に決められない。
【００２１】
しかし、図４の表からは、もはや全体の統計値以上に意味がありそうな情報を得るのが難しい。たとえば、開発部は（平均より）不満率が高いとか、若い者は不満率が高いといった情報は得られない。
【００２２】
このように、ｌ−多様性を満たすｋ−匿名化技術は、得られる情報を多くするには ｌ を小さくしたいが、ｌ≦２にするとプライバシー保護が不十分の場合があるという問題がある。
【００２３】
また、別の技術として、従来から、プライバシー上あまり問題とならない属性の値を確率的に変更することで、開示してもプライバシー上あまり問題とならない表にする、撹乱技術がある。しかしながら、このような技術を用いると、誰がどんな回答をしたのか推定するのは難しいが、もはや全体の統計値以上に意味がありそうな情報を得るのが難しい。すなわち、開発部は不満率が高いとか、若い者は不満率が高いといった情報は得られない。確率的な情報を得ることができるはずだが、その確率を計算するのは難しく、計算できたとしても多くの情報は望めないと考えられる。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２０１１−１２８８６２号公報
【特許文献２】特開２０１１−１００１１６号公報
【非特許文献】
【００２５】
【非特許文献１】L. Sweeney. Achieving k-Anonymity Privacy Protection using Generalization and Suppression. International Journal on Uncertainty, Fuzziness and Knowledge-based Systems, Vol. 10, No. 5, pp. 571-588, 2002.
【非特許文献２】K. LeFevre, D. J. DeWitt, R. Ramakrishnan. Incognito: Efficient Full-Domain k-Anonymity. In Proceedings of the 2005 ACM SIGMOD International Conference on Management of Data, pp. 49-60, 2005.
【非特許文献３】K. LeFevre, D. J. DeWitt, R. Ramakrishnan. Mondrian Multidimensional k-Anonymity. In Proceedings of the 22nd International Conference on Data Engineering, pp. 25-, 2006.
【非特許文献４】A. Machanavajjhala, J. Gehrke, D. Kifer, M. Venkitasubramaniam. l-Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, Issue 1, Article No. 3, 2007.
【発明の概要】
【発明が解決しようとする課題】
【００２６】
従って、本技術の目的は、一側面によれば、元の値の出現分布の傾向を残しつつプライバシー保護を行う技術を提供することである。
【課題を解決するための手段】
【００２７】
本技術に係る情報処理方法は、（Ａ）複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、（Ｂ）レコードの数の分布が、偏りが大きいことを表す条件を満たしている場合には、複数のレコードのうち少なくとも１のレコードにおける第１の属性の属性値を、曖昧化データに置換し、データ格納部に格納するステップとを含む。
【発明の効果】
【００２８】
元の値の出現分布の傾向を残しつつプライバシー保護を行うことができる。
【図面の簡単な説明】
【００２９】
【図１】図１は、背景技術を説明するための図である。
【図２】図２は、背景技術を説明するための図である。
【図３】図３は、背景技術を説明するための図である。
【図４】図４は、背景技術を説明するための図である。
【図５】図５は、第１の実施の形態における情報処理装置の機能ブロック図である。
【図６】図６は、頻度表の一例を示す図である。
【図７】図７は、第１の実施の形態に係る処理の処理フローを示す図である。
【図８】図８は、変更後の頻度表の一例を示す図である。
【図９】図９は、変更後のレコード群の一例を示す図である。
【図１０】図１０は、第２の実施の形態における情報処理装置の機能ブロック図である。
【図１１】図１１は、第２の実施の形態におけるメインの処理フローを示す図である。
【図１２】図１２は、レコード群の一例を示す図である。
【図１３】図１３は、第２の実施の形態における頻度表の一例を示す図である。
【図１４】図１４は、曖昧化処理の処理フローを示す図である。
【図１５】図１５は、確率算出処理の処理フローを示す図である。
【図１６】図１６は、曖昧化処理の処理フローを示す図である。
【図１７】図１７は、変更後の頻度表の一例を示す図である。
【図１８】図１８は、変更後の頻度表に従って変更されたレコード群の一例を示す図である。
【図１９】図１９は、変更後の頻度表の他の例を示す図である。
【図２０】図２０は、変更後の頻度表に従って変更されたレコード群の一例を示す図である。
【図２１】図２１は、変更後の元データの一例を示す図である。
【図２２】図２２は、第３の実施の形態に係る曖昧化処理の処理フローを示す図である。
【図２３】図２３は、第３の実施の形態に係る曖昧化処理で処理されたデータの一例を示す図である。
【図２４】図２４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００３０】
［実施の形態１］
本実施の形態に係る情報処理装置の構成例を図５に示す。図５に示すように、情報処理装置１００は、第１データ格納部１１０と、判断部１２０と、曖昧化処理部１３０と、第２データ格納部１４０とを有する。
【００３１】
第１データ格納部１１０は、例えば図６に示すように、あるレコード群についてプライバシー情報となるため曖昧化対象の属性について、当該レコード群において出現する属性値毎にその出現頻度が格納されている。図６の例では、値「不満」の出現頻度が「３」であり、値「普通」の出現頻度が「１」である。このようなデータを、頻度表と呼ぶことにする。また、第１データ格納部１１０は、属性値として取り得る値の種類ｍの値についても格納する。
【００３２】
判断部１２０は、第１データ格納部１１０に格納されている頻度表を基に、出現頻度の分布に偏りが発生しているか判断する。判断部１２０が偏り発生を検出すると、曖昧化処理部１３０に処理を指示する。曖昧化処理部１３０は、判断部１２０からの指示に応じて、第２データ格納部１４０に格納されているレコード群（第１データ格納部１１０に格納されているデータの元データ）の少なくとも１つのレコードにおける曖昧化対象の属性の属性値を、曖昧化データで置換し、置換結果を第２データ格納部１４０に格納する。
【００３３】
次に、本実施の形態に係る情報処理装置１００の処理内容について、図７を用いて説明する。まず、判断部１２０は、第１データ格納部１１０から処理対象のレコードについての頻度表を読み出す（ステップＳ１）。そして、判断部１２０は、頻度表から、出現頻度の分布に偏りが大きいか判断する（ステップＳ３）。
【００３４】
例えば、頻度表において２種類しか属性値が出現しておらず且つ出現頻度が少ない方の属性値の出現頻度が１又は２となっている場合、又は１種類しか属性値が出現していない場合には、出現頻度の分布に偏りが大きいと判断する。回答者自身が結果を見る場合には、他の回答者の回答を一意に識別できないようにするためには、このような条件を採用する。また、この場合には、ステップＳ５では、多くとも２つのレコードの属性値を曖昧化する。
【００３５】
また、回答した人が結果を見ないという前提がある場合には、例えば、頻度表において２種類しか属性値が出現しておらず且つ出現頻度が少ない方の属性値の出現頻度が１となっている場合、又は１種類しか属性値が出現していない場合に、出現頻度の分布に偏りが大きいと判断する。このような場合には、ステップＳ５では、多くとも１つのレコードの属性値を曖昧化する。
【００３６】
このほかにも予め基準を設定しておき、出現頻度の偏りを表す指標値が、予め設定されている基準以上であれば、出現頻度の偏りが大きいと判断する。
【００３７】
出現頻度の分布に偏りが大きいと判断されなかった場合には処理を終了する。一方、出現頻度の分布に偏りが大きいと判断された場合には、判断部１２０は、曖昧化処理部１３０に処理を指示する。曖昧化処理部１３０は、判断部１２０からの指示に応じて、出現頻度の偏りに応じて頻度表における１以上の属性値を確率的に曖昧化する（ステップＳ５）。曖昧化処理部１３０は、変更後の頻度表を、第１データ格納部１１０に格納する。
【００３８】
例えば、本実施の形態では、例えば出現頻度の偏り（例えば２種類しか属性値が出現しておらず且つ出現頻度が少ない方の属性値の出現頻度が１である場合、２である場合）及びｎに応じて複数の曖昧化態様が用意されている。そして、各曖昧化態様においては、例えばｍと出現頻度の総和ｎの値とに応じて決定される確率に応じて、１又は２の属性値を曖昧化データに置換する複数のパターンのいずれかを選択する。なお、１種類しか属性値が出現しない場合には出現頻度の分布に偏りが大きいと言えるが、曖昧化できるのはその１種類の属性値しかないので、そのままその属性値を曖昧化することになる。
【００３９】
例えば、図６に示すように出現している属性値が不満と普通の２種類で、出現頻度が少ない方である普通の出現頻度が１である場合、ｍ＝３でｎ＝４であれば、１つの曖昧化態様として、以下のような曖昧化パターンを規定しておく。
Ａ：確率１１％で、不満１レコードと普通１レコードを曖昧化
Ｂ：それ以外（８９％）で、不満１レコードを曖昧化
【００４０】
従って、曖昧化処理部１３０は、乱数を発生させて、パターンＡ又はＢを選択して、頻度表を変更する。例えば、パターンＢが選択された場合には、頻度表は図８に示すように変更される。図８の例では、曖昧化データとして「？」が用いられている。このように、どのような属性値かを特定できないようなデータに置換する。但し、「？」だけではなく、元の値の確率分布情報を含むようにしても良い。具体的には、この例では（不満＝５７％，普通＝４３％）というデータをも含むようにしても良い。
【００４１】
その後、曖昧化処理部１３０は、第２データ格納部１４０に格納されているレコード群の一部のレコードを、変更後の頻度表に従って変更し、変更後のレコードを第２データ格納部１４０に格納する（ステップＳ７）。図８に示すような頻度表に変更する場合には、属性値「不満」のレコードを１つ選択して曖昧化データに置換する。上で述べた例では、図３の１行目から４行目についての頻度表を処理していたので、図３の１行目から４行目が変更対象であり、その中で曖昧化対象の属性「回答」の属性値「不満」の３レコードのいずれかをランダムに選択して、曖昧化データに置換する。例えば、図９に示すようなデータに変更される。図９の例では、上で述べたように、図３の１行目から４行目のうち３行目のレコードの属性「回答」の属性値「不満」が「？（不満＝５７％，普通＝４３％）」に置換されている。
【００４２】
このようにすれば、回答者が図９の結果を見たとしても、他の回答者がどのように回答したかを一意に特定できない。一方、「企画部／開発部」は不満の数又は割合が高い傾向があることも把握できる。すなわち、出現頻度に偏りが大きい場合であっても、元の値の出現頻度の傾向を保持しつつプライバシー保護が図られるようになる。
【００４３】
なお、頻度表を変更することなく、ステップＳ７でいずれの属性値を曖昧化データに置換するかを決定できれば、直接レコードにおける曖昧化対象の属性の属性値を曖昧化データに置換しても良い。
【００４４】
［実施の形態２］
本実施の形態に係る情報処理装置の構成例を、図１０に示す。図１０に示すように、情報処理装置２００は、第１データ格納部２１０と、ｋ−匿名化処理部２２０と、グループ化処理部２３０と、出力部２４０と、入力部２５０と、曖昧化処理部２６０と、第２データ格納部２７０とを有する。
【００４５】
第１データ格納部２１０には、処理の対象となるレコード群が格納されている。ｋ−匿名化処理部２２０は、第１データ格納部２１０に格納されているレコード群について、よく知られたｋ−匿名化処理を実施する。
【００４６】
入力部２５０は、プライバシー保護上あまり問題とならない属性と、ユーザから曖昧化対象の属性及びその属性の取り得る属性値の種類数ｍの組み合わせの入力を受け付け、第１データ格納部２１０に格納する。
【００４７】
グループ化処理部２３０は、ｋ−匿名化処理後のレコード群について、プライバシー保護の上であまり問題のない属性の属性値が同じレコードをグループ化する。グループ化処理部２３０は、グループ化についてのデータを第１データ格納部２１０に格納する。
【００４８】
曖昧化処理部２６０は、各グループについて、曖昧化処理を実施し、曖昧化の処理結果を第１データ格納部２１０に格納する。なお、曖昧化処理部２６０は、頻度表などの処理途中のデータについては第２データ格納部２７０に格納する。出力部２４０は、第１データ格納部２１０に格納されているデータを、出力装置（表示装置や印刷装置など）に出力する。
【００４９】
次に、図１１乃至図２１を用いて、情報処理装置２００の処理内容を説明する。既に、入力部２５０は、ユーザから、第１データ格納部２１０に格納されているレコード群における曖昧化対象の属性及びその属性の取り得る属性値の種類数ｍの組み合わせの入力を受け付け、第１データ格納部２１０に格納しているものとする。例えば、レコード群において部署、年齢、アンケートの回答１及び回答２が属性となっており、部署及び年齢が、プライバシー保護をあまり問題としない属性として指定されているものとする。そして、プライバシー情報である曖昧化対象属性は回答１及び回答２とする。そして、回答１については、属性値「不満」、「普通」及び「満足」という３種類の取り得る属性値が存在しており、｛回答１：３｝というような入力がなされる。すなわち、回答１についてはｍ＝３である。また、回答２についても、属性値「不満」、「普通」及び「満足」という３種類の取り得る属性値が存在しており、｛回答２：３｝というような入力がなされる。すなわち、回答２についても、ｍ＝３である。
【００５０】
そして、ｋ−匿名化処理部２２０は、第１データ格納部２１０に格納されているレコード群に対して、よく知られたｋ−匿名化処理を実施することで、プライバシー保護上あまり問題とならない属性の属性値がｋレコード以上同じになるようにその属性値を変更し、変更後のデータを第１データ格納部２１０に格納する（図１１：ステップＳ１１）。本実施の形態では、この段階で図１２に示すようなデータが第１データ格納部２１０に格納されているものとする。図１２の例では、ｋ＝４であり、部署「製造部門」及び年齢「２５−４２」というレコードが４レコードになるように、そして部署「営業部門」及び年齢「２４−４４」というレコードが４レコードになるように、年齢属性の属性値が変更されている。
【００５１】
その後、グループ化処理部２３０は、第１データ格納部２１０に格納されているｋ−匿名化処理後のレコード群について、曖昧化対象属性以外の属性の属性値に基づき、レコードをグループ化する（ステップＳ１３）。図１２の例では、部署及び年齢の属性値が同じレコード同士を同じグループに分類する。上でも述べたように、部署「製造部門」及び年齢「２５−４２」という４レコードと、部署「営業部門」及び年齢「２４−４４」という４レコードとがグループとして特定され、グループ分けのデータが第１データ格納部２１０に格納される。例えば、レコード１乃至４が第１のグループであり、レコード５乃至８が第２のグループであることを表すデータが格納される。
【００５２】
その後、曖昧化処理部２６０は、第１データ格納部２１０に格納されているグループ分けのデータに基づき、未処理のグループを１つ特定する（ステップＳ１５）。さらに、曖昧化処理部２６０は、未処理の曖昧化対象属性を１つ特定する（ステップＳ１６）。そして、曖昧化処理部２６０は、特定されたグループ及び曖昧化対象属性について、頻度表を生成し、第２データ格納部２７０に格納する（ステップＳ１７）。例えば、レコード１乃至４のグループの属性「回答１」について頻度表を生成すると、図１３に示すような頻度表が得られる。
【００５３】
そして、曖昧化処理部２６０は、曖昧化処理を実施する（ステップＳ１９）。曖昧化処理については、図１４乃至図２１を用いて説明する。
【００５４】
曖昧化処理部２６０は、第２データ格納部２７０から頻度表を読み出し、第１データ格納部２１０から、特定されたグループ及び曖昧化対象属性についての取り得る属性値の種類数ｍを読み出す（図１４：ステップＳ３１）。また、曖昧化処理部２６０は、変数ｎに頻度表における総頻度（出現頻度の総和）を設定する（ステップＳ３３）。そして、曖昧化処理部２６０は、ｎが３以上であるか判断する（ステップＳ３５）。ｎが３未満、すなわち１又は２の場合には、曖昧化処理部２６０は、頻度表において全ての要素を曖昧化する（ステップＳ３７）。そのまま公開するには総頻度が低すぎてプライバシー保護が図れないため、いずれの属性値についても曖昧化データに置換する。例えば「？」に置換する。なお、確率分布情報を付加するようにしても良い。この場合には、各属性値について確率１／ｍずつというようなデータを付加する。処理は端子Ｂを介して図１６のステップＳ６５に移行する。
【００５５】
一方、ｎが３以上であれば、曖昧化処理部２６０は、頻度表のレコード数が２であるか判断する（ステップＳ３９）。頻度表のレコード数が２以外であれば、曖昧化処理部２６０は、頻度表のレコード数が１であるか判断する（ステップＳ４１）。頻度表のレコード数が１以外、すなわち３以上である場合には、曖昧化データに置換しなくてもプライバシー保護上あまり問題とならないので、何もせず端子Ｃを介して、呼び出し元の処理に戻る。
【００５６】
一方、頻度表のレコード数が１であれば、曖昧化処理部２６０は、頻度表における唯一のレコードの出現頻度ｎのうち２つを曖昧化する（ステップＳ４３）。このように取り得る属性値の種類がｍであるにも拘わらず、１種類しか出現していない場合には、出現頻度に偏りが大きいと判断して、出現頻度ｎのうち２つを曖昧化データで置換する。そうすると、元々ある属性値の出現頻度がｎ−２となり、曖昧化データの出現頻度が２となる。曖昧化データは、例えば「？（ａ＝確率Ｐ，ａ以外＝（１−Ｐ）／（ｍ−１）ずつ）」とする。ａは、曖昧化データで置換した属性値であり、Ｐはｎ＝４の場合には４／７、それ以外の場合には２／（ｎ＋１）である。これについては詳しくは以下で述べる。その後処理は端子Ｂを介して図１６のステップＳ６５に移行する。
【００５７】
また、頻度表のレコード数が２であれば、曖昧化処理部２６０は、頻度表においてレコードを出現頻度順に並べ替え、多い方をａ、少ない方をｂと設定する（ステップＳ４５）。そして、曖昧化処理部２６０は、ｂの出現頻度は２以下であるか判断する（ステップＳ４７）。ｂの出現頻度は３以上であれば、曖昧化データに置換しなくてもプライバシ保護上あまり問題とならないので、何もせず端子Ｃを介して、呼び出し元の処理に戻る。
【００５８】
一方、ｂの出現頻度が２であれば、曖昧化処理部２６０は、確率算出処理を実施する（ステップＳ４９）。確率算出処理では、ｍ及びｎから、確率ｘ及びｐが算出される。処理は端子Ａを介して図１６のステップＳ５１に移行する。
【００５９】
確率算出処理について、図１５を用いて説明する。但し、具体的な処理を説明する前に、ｎ≧３の場合の考え方について説明する。
【００６０】
まず、頻度表が｛ａ：ｎ｝（属性値ａの出現頻度がｎ）のとき、特定の人がａであることを他者に一意に決められないようにするには、少なくとも２個を曖昧化すると、プライバシー保護上問題が無くなる。一方、多くの情報を提示するため曖昧化は最小限にしたいので、｛ａ：ｎ−２，？：２｝と曖昧化すべきである。「？」は曖昧化データである。
【００６１】
｛ａ：ｎ−２，？：２｝の元の頻度表が ｛ａ：ｎ｝であると決められないようにするために、確率ｘ，ｙ，ｐ，ｑを次のように定める。
頻度表が｛ａ：ｎ−１，ｂ：１｝のとき、｛ａ：ｎ−２，？：２｝とする確率をｘとする。
頻度表が｛ａ：ｎ−１，ｂ：１｝のとき、｛ａ：ｎ−２，ｂ：１，？：１｝とする確率をｙとする。
頻度表が｛ａ：ｎ−２，ｂ：２｝のとき、｛ａ：ｎ−２，？：２｝とする確率をｐとする。
頻度表が｛ａ：ｎ−２，ｂ：２｝のとき、｛ａ：ｎ−２，ｂ：１，？：１｝とする確率をｑとする。
ここで、０≦ｘ，０≦ｙ，０≦ｐ，０≦ｑ，ｘ＋ｙ≦１，ｐ＋ｑ≦１である。
【００６２】
このとき、取り得る属性値（ａ及びｂなど）の出現確率を全て等しいとすると、｛ａ：ｎ−２，？：２｝の元の頻度表が｛ａ：ｎ｝である確率をＡ、ｂの人から見た時｛ａ：ｎ−２，？：２｝の元の頻度表が｛ａ：ｎ−１，ｂ：１｝である確率をＢ、ｂの人から見た時｛ａ：ｎ−２，ｂ：１，？：１｝の頻度表が｛ａ：ｎ−１，ｂ：１｝である確率をＣとすると、Ａ，Ｂ及びＣは、以下の式で表される。なお、ｖ＝ｍ−１である。
【００６３】
【数１】
0005772563.tif 000002
【００６４】
このとき、｛ａ：ｎ−２，？：２｝の元の頻度表で２つの？に対応するａの個数の期待値をＥ、｛ａ：ｎ−２，ｂ：１，？：１｝の元の頻度表で？がａである確率をＰとすると、それらは次の式となる。
【００６５】
【数２】
0005772563.tif 000003
【００６６】
プライバシー保護を最大限にするため、Ａ＝Ｂ＝Ｃ且つその値が最小となるｘ，ｙ，ｐ，ｑを求めることを考える。なお、Ａ，Ｂ，Ｃのいずれかが１になると、特定の人がａであることが他者に一意に決められてしまう。
【００６７】
Ａ＝Ｂ＝Ｃより、ｐは次の式によりｘで表される。
【００６８】
【数３】
0005772563.tif 000004
【００６９】
ここで、ｎ≧５の場合、ｘ＋ｙ＝ｐ＋ｑ＝１のときＡ，Ｂ，Ｃは最小になり、ｘ，Ａ，Ｐ，Ｅは次の式になる。
【００７０】
【数４】
0005772563.tif 000005
【００７１】
ｎ＝４の場合、｛ａ：２，ｂ：２｝を曖昧化する際、｛ａ：２，？：２｝と｛ｂ：２，？：２｝、｛ａ：２，ｂ：１，？：１｝と｛ａ：１，ｂ：２，？：１｝の確率をそれぞれ等しくしたいため、ｘ＋ｙ＝１，ｐ＋ｑ＝１／２の時、Ａ，Ｂ，Ｃは最小になり、ｘ，
Ａ，Ｐ，Ｅは次の式になる。
【００７２】
【数５】
0005772563.tif 000006
【００７３】
ｎ＝３の場合、ｎ＝４の場合と同じように対称性を考え、ｘ＋ｙ＋ｐ＝１，ｑ＝ｙとし、ｘ，Ａ，Ｐ，Ｅは次の式になる。
【００７４】
【数６】
0005772563.tif 000007
【００７５】
以上のような考え方からすると、図１５に示すような処理を実施する。すなわち、曖昧化処理部２６０は、ｖ＝ｍ−１と設定する（ステップＳ６１）。そして、曖昧化処理部２６０は、ｎ＝４であるか判断する（ステップＳ６３）。ｎ＝４であれば、上で述べたように、曖昧化処理部２６０は、ｘ＝３／１４ｖ及びＰ＝４／７を算出する（ステップＳ６７）。処理はステップＳ６９に移行する。一方、ｎ＝４以外であれば、上で述べたように、曖昧化処理部２６０は、ｘ＝２（ｎ−１）／（ｖｎ（ｎ＋１））及びＰ＝２／（ｎ＋１）を算出する（ステップＳ６５）。そして処理はステップＳ６９に移行する。
【００７６】
そして、曖昧化処理部２６０は、ｐ＝２ｖｎｘ2／（（ｎ−１）（２−ｖｎｘ））を算出する（ステップＳ６９）。そして呼び出し元の処理に戻る。
【００７７】
なお、図１４の処理では、総頻度ｎが２以下というように少ない場合、ｎは３以上でも出現する属性値の数が１である場合に、プライバシー保護を図るために画一的に曖昧化する曖昧化態様を示している。
【００７８】
次に、図１６を用いて端子Ａ以降の処理を説明する。図１６では、最も少ない出現頻度の属性値の出現頻度が１の場合と２の場合といった出現頻度の偏りとｎに従って、複数の曖昧化態様のいずれかを選択するようになっており、各曖昧化態様では、図１５で算出した確率ｘ及びｐに従って確率的に複数の曖昧化パターンのうちいずれかを選択するようになっている。
【００７９】
すなわち、曖昧化処理部２６０は、ｂの出現頻度が２であるか判断する（ステップＳ５１）。ｂの出現頻度が２ではない、すなわち１であれば、曖昧化処理部２６０は、ｎ＝３であるか判断する（ステップＳ５３）。ｎ＝３であれば、曖昧化処理部２６０は、乱数により、以下の曖昧化パターンのいずれかを選択して、実行する（ステップＳ５７）。すなわち、（１）確率ｘで、ａ１個と、ｂ１個を曖昧化する。この場合、ｂの出現頻度は１であるが、このｂも曖昧化されて｛ａ：１，？：２｝となるので、確率分布情報については、「ａ＝確率１／２（＝２／（３＋１））、ａ以外＝確率（１−１／２）／ｖずつ」という情報となる。（２）確率ｐで、ａ２個を曖昧化する。この場合、｛ｂ：１，？：２｝となるので、確率分布情報については、「ｂ＝確率１／２、ｂ以外＝確率（１−１／２）／ｖずつ」という情報となる。（３）それ以外で、ａ１個を曖昧化する。この場合、｛ａ：１，ｂ：１，？：１｝となるので、「ａ＝確率１／２、ｂ＝確率１／２（＝１−１／２）」という情報となる。そして処理はステップＳ６５に移行する。
【００８０】
一方、ｎ＝３以外の場合（ｎ＝４以上）には、曖昧化処理部２６０は、乱数により、以下の曖昧化パターンのいずれかを選択し、実行する（ステップＳ５５）。すなわち、（１）確率ｘで、ａ１個とｂ１個を曖昧化する。この場合、ｂの出現頻度は１であるが、このｂも曖昧化されて｛ａ：ｎ−２，？：２｝となるので、確率分布情報については、ｍ＝５以上であれば「ａ＝確率２／（ｎ＋２）、ａ以外＝確率（１−２／（ｎ＋２））／ｖずつ」という情報となる。ｍ＝４であれば「ａ＝確率４／７、ａ以外＝確率（１−４／７）／ｖずつ」という情報になる。（２）それ以外で、ａ１個を曖昧化する。この場合、｛ａ：ｎ−２，ｂ：１，？：１｝となるので、確率分布情報については、「ａ＝確率１／２、ｂ＝確率１／２（＝１−１／２）」という情報となる。そして処理はステップＳ６５に移行する。
【００８１】
また、ｂの出現頻度が２であれば、曖昧化処理部２６０は、ｎ＝４であるか判断する（ステップＳ５９）。ｎ＝４であれば、曖昧化処理部２６０は、乱数により、以下の曖昧化パターンのいずれかを選択し、実行する（ステップＳ６３）。すなわち、（１）確率ｐで、ａ２個を曖昧化する。この場合、｛ｂ：２，？：２｝となるので、確率分布情報については、「ｂ＝確率４／７、ｂ以外＝確率（１−４／７）／ｖずつ」という情報となる。（２）確率ｐで、ｂ２個を曖昧化する。この場合、｛ａ：ｎ−２，？：２｝となるので、確率分布情報については、「ａ＝確率４／７、ａ以外＝確率（１−４／７）／ｖずつ」という情報となる。（３）確率０．５−ｐで、ａ１個を曖昧化する。この場合、｛ａ：１，ｂ：２，？：１｝となるので、確率分布情報については、「ｂ＝確率４／７、ａ＝確率３／７（＝１−４／７）」という情報となる。（４）それ以外で、ｂ１個を曖昧化する。この場合、｛ａ：２，ｂ：１，？：１｝となるので、確率分布情報については、「ａ＝確率４／７、ｂ＝確率３／７（＝１−４／７）」という情報となる。そして処理はステップＳ６５に移行する。
【００８２】
一方、ｎ＝４以外の場合（ｎ＝５以上）、曖昧化処理部２６０は、乱数により、以下の曖昧化パターンのいずれかを選択し、実行する（ステップＳ６１）。すなわち、（１）確率ｐで、ｂ２個を曖昧化する。この場合、｛ａ：ｎ−２，？：２｝となるので、確率分布情報については、「ａ＝確率２／（ｎ＋１）、ａ以外＝確率（１−２／（ｎ＋１））／ｖずつ」という情報となる。（２）それ以外で、ｂ１個を曖昧化する。この場合、｛ａ：ｎ−２，ｂ：１，？：１｝となるので、確率分布情報については、「ａ＝確率２／（ｎ＋１）、ｂ＝確率１−２（ｎ＋１）」という情報になる。そして処理はステップＳ６５に移行する。
【００８３】
その後、曖昧化処理部２６０は、変更後の頻度表を、第２データ格納部２７０に格納する（ステップＳ６５）。そして、呼び出し元の処理に戻る。
【００８４】
図１１の処理の説明に戻って、曖昧化処理部２６０は、第２データ格納部２７０に変更後の頻度表が格納されている場合には、変更前の頻度表との差を、第１データ格納部２１０に格納されており且つステップＳ１５で特定されたグループに属するレコード群の属性値を変更する（ステップＳ２１）。そして、曖昧化処理部２６０は、未処理の曖昧化対象属性が存在するか判断する（ステップＳ２２）。未処理の曖昧化対象属性が存在する場合には、ステップＳ１６に戻る。一方、未処理の曖昧化対象属性が存在しない場合には、曖昧化処理部２６０は、未処理のグループが存在するか判断する（ステップＳ２３）。未処理のグループが存在する場合には、ステップＳ１５に戻る。一方、未処理のグループが存在しない場合には、出力部２４０は、第１データ格納部２１０に格納されている修正後の元データを、出力装置（例えば表示装置、印刷装置、又はネットワークで接続されている他のコンピュータなど）に出力する（ステップＳ２５）。
【００８５】
例えば、図１２の例でグループが部署「製造部門」且つ年齢「２５−４２」で、曖昧化対象属性「回答１」を処理対象とする場合、図１３に示すような頻度表が得られる。このような場合、ｂの出力頻度は「１」で、ｎ＝４であるからステップＳ５５の曖昧化態様が選択される。また、図１５の処理フローからすると、ｘ＝３／２８、ｐ＝３／５６となる。そうすると、確率ｘで、ａ１個とｂ１個を曖昧化するか、それ以外でａ１個を曖昧化する。後者が選択されると、図１７に示すように頻度表が変更される。ａは「不満」であるから、「不満」の出現頻度が１減少し、その分「？（不満＝５７％、普通＝４３％）」が追加される。このような変更後の頻度表によれば、図１２の元データの関連部分は、図１８に示すようになる。図１８の例では、ａである「不満」が回答１となっているレコードをランダムに１つ選択して、「？（不満＝５７％、普通＝４３％）」に変更する。
【００８６】
一方、前者が選択されると、図１９に示すように頻度表が変更される。この場合、「不満」の出現頻度が１減少し、「普通」の出現頻度は１だったのでレコード自体が消去される。このような変更後の頻度表によれば、図１２の元データの関連部分は、図２０に示すようになる。回答１が「普通」のレコードは１つだけなのでそのレコードの属性値を「？（不満＝５７％、不満以外＝２１％ずつ）」に変更する。さらに、回答１が「不満」のレコードは３つあるのでランダムに１つ選択して「？（不満＝５７％、不満以外＝２１％ずつ）」に変更する。
【００８７】
なお、図１２の元データ全体については、例えば図２１に示すようなデータに変換され、ステップＳ２５で出力される。部署「営業部門」且つ年齢「２４−４４」というグループの回答１という曖昧化対象属性については、３種類の属性値が出現するので曖昧化することなく、そのまま出力することになる。また、部署「営業部門」且つ年齢「２４−４４」というグループの回答２という曖昧化対象属性については、属性値「普通」が１種類しか出現していないので、ランダムに２つのレコードを選択して曖昧化データで置換している。その他のグループ及び曖昧化対象属性については、確率的にいずれかの曖昧化パターンが選択される。
【００８８】
［実施の形態３］
第２の実施の形態では、回答者が変更後の元データを見たとしても、他の回答者の回答を一意に特定できないようにしていたが、回答者が曖昧化後のデータを見ることがないということであれば、図１４及び図１６の曖昧化処理については、図２２に示すような曖昧化処理を行えばよい。
【００８９】
但し、ｎが３以上の場合には、以下のように考える。すなわち、頻度表が｛ａ：ｎ｝（頻度が多い方の属性値ａの出現頻度が総頻度と同じｎである）である場合、特定の人がａであることを頻度表と無関係な他者に一意に決められないようにするには、少なくとも１個を曖昧化することになる。一方、曖昧化は最小限にしたいため、｛ａ：ｎ−１，？：１｝と曖昧化すべきである。
【００９０】
｛ａ：ｎ−１，？：１｝の元の頻度表が｛ａ：ｎ｝であると決められないようにするために、確率ｘを次のように定める。
【００９１】
すなわち、頻度表が｛ａ：ｎ−１，ｂ：１｝のとき、｛ａ：ｎ−１，？：１｝とする確率をｘとする。ここで０≦ｘ≦１である。
【００９２】
このとき、取り得る属性値（ａ及びｂなど）の出現確率を全て等しいとすると、｛ａ：ｎ−１，？：１｝の元の頻度表が｛ａ：ｎ｝である確率をＰとすると、これは次の式となる。
【００９３】
【数７】
0005772563.tif 000008
【００９４】
プライバシー保護を最大限にするため、Ｐが最小となるｘを求めることを考える。なお、Ｐが１になると、特定の人がａであることが頻度表と無関係な他者にも一意に決められてしまう。
【００９５】
従って、ｎ≧３の場合、ｘ＝１のときＰは最小になり、Ｐは次の式になる。
【００９６】
【数８】
0005772563.tif 000009
【００９７】
また、ｎ＝２の場合、｛ａ：１，ｂ：１｝を曖昧化する際、｛ａ：１，？：１｝と｛ｂ：１，？：１｝の確率を等しくしたいため、ｘ＝１／２のときＰは最小になり、Ｐは次の式になる。
【００９８】
【数９】
0005772563.tif 000010
【００９９】
以上のような考え方に基づき、以下のような処理を実施する。
【０１００】
まず、曖昧化処理部２６０は、第２データ格納部２７０から頻度表を読み出す（図２２：ステップＳ１０１）。また、曖昧化処理部２６０は、ｎに総頻度（出現頻度の総和）を設定する（ステップＳ１０３）。
【０１０１】
そして、曖昧化処理部２６０は、頻度表のレコード数が２であるか判断する（ステップＳ１０５）。頻度表のレコード数が２以外である場合（１又は３以上の場合）、曖昧化処理部２６０は、頻度表のレコード数が１であるか判断する（ステップＳ１１９）。頻度表のレコード数が１ではない、即ち３以上である場合には曖昧化することなく呼び出し元の処理に戻る。
【０１０２】
一方、頻度表のレコード数が１である場合には、曖昧化処理部２６０は、唯一のレコードの出現頻度のうち１つを曖昧化する（ステップＳ１２１）。ステップＳ４３と同趣旨である。上で述べたように、ｎが３以上であれば、確率分布情報については、「？（ａ＝確率Ｐ、ａ以外＝確率（１−Ｐ）／ｖ）ずつ」という情報になる。ｍ＝３及びｎ＝４であれば、Ｐ＝１／（ｖｎ＋１）＝１／（（３−１）＊４＋１）＝１１％となる。そして処理はステップＳ１１７に移行する。
【０１０３】
また、頻度表のレコード数が２である場合には、曖昧化処理部２６０は、頻度表においてレコードを頻度順に並べ替え、多い方をａ、少ない方をｂに設定する（ステップＳ１０７）。そして、曖昧化処理部２６０は、ｂの頻度は１であるか判断する（ステップＳ１０９）。ｂの頻度が２以上であれば、上記の前提の下では問題がないので、曖昧化することなく呼び出し元の処理に戻る。
【０１０４】
一方、ｂの頻度が１である場合には、曖昧化処理部２６０は、ｎ＝２であるか判断する（ステップＳ１１１）。ｎが２以外の場合には、曖昧化処理部２６０は、ｂ１個を曖昧化する（ステップＳ１１５）。この場合、｛ａ：ｎ−１，？：１｝であるから、確率分布情報については、ｎが３以上であれば「ａ＝確率Ｐ（＝１／（ｖｎ＋１））、ａ以外の属性値＝確率（（１−Ｐ）／ｖ）ずつ」となる。そして処理はステップＳ１１７に移行する。
【０１０５】
また、ｎ＝２である場合には、曖昧化処理部２６０は、乱数により、次のいずれかの曖昧化パターンのうちいずれかを選択して、実行する（ステップＳ１１３）。すなわち、（１）確率１／２で、ａ１個を曖昧化する。この場合、確率分布情報については、｛ｂ：１，？：１｝であるから、「？（ｂ＝確率１／（ｖ＋１），ｂ以外＝確率（１−１／（ｖ＋１））／ｖずつ）」という情報である。（２）それ以外で、ｂ１個を曖昧化する。この場合、確率分布情報については、｛ａ：１，？：１｝であるから、「？（ａ＝確率１／（ｖ＋１），ａ以外＝確率（１−１／（ｖ＋１））／ｖずつ）」という情報である。そして、ステップＳ１１７に移行する。
【０１０６】
その後、曖昧化処理部２６０は、変更後の頻度表を第２データ格納部２７０に格納する（ステップＳ１１７）。
【０１０７】
例えば図１２に示した例を図２２の処理フローで処理すると、図２３のようなデータが得られる。すなわち、部署「製造部門」且つ年齢「２５−４２」というグループの曖昧化対象属性「回答２」については、第２の実施の形態では曖昧化されていたが、本実施の形態では曖昧化されない。また、部署「製造部門」且つ年齢「２５−４２」というグループの曖昧化対象属性「回答１」については、ステップＳ１１５において、回答１が「普通」であるレコードの属性値が「？（不満＝１１％、不満以外＝４４％ずつ）」という曖昧化データに置換される。また、部署「営業部門」且つ年齢「２４−４４」というグループの曖昧化対象属性「回答１」を処理する場合には、曖昧化されない。部署「営業部門」且つ年齢「２４−４４」というグループの曖昧化対象属性「回答２」を処理する場合に、ステップＳ１２１で曖昧化データに置換される。すなわち、「？（不満＝１１％、不満以外＝４４％ずつ」）となる。
【０１０８】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。機能ブロック構成については、一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列実行しても良い。
【０１０９】
また、上で述べた実施の形態では、全ての属性値を平等に扱ったが、属性値によってはプライバシー上あまり問題にならないような値を特別扱いするなどしても良い。たとえば、各人について「回答」が普通であることは開示して問題ない場合は、[普通, 普通, 普通, 普通] や [普通, 普通, 満足, 普通] などは、偏りが大きいと判定される場合においても曖昧化しない、といったアルゴリズムにしても良い。
【０１１０】
なお、上で述べた情報処理装置１００及び２００は、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１１】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１１２】
本実施の形態に係る情報処理方法は、（Ａ）複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、レコードの数の分布が、偏りが大きいことを表す条件を満たしているか判断するステップと、（Ｂ）レコードの数の分布が偏りが大きいことを表す条件を満たしている場合には、複数のレコードのうち少なくとも１のレコードにおける第１の属性の属性値を、曖昧化データに置換し、データ格納部に格納するステップとを含む。
【０１１３】
このように曖昧化対象の第１の属性の属性値を曖昧化データと置換することで、元の値の出現分布の傾向を残しつつプライバシー保護を図ることができるようになる。
【０１１４】
また、本実施の形態に係る情報処理方法が、（Ｃ）データ格納部に格納されているレコードを、第１の属性とは異なる第２の属性（又は第２の属性群）の属性値が同じレコードにグループ化することで、複数のレコードを抽出する抽出ステップと、（Ｄ）複数のレコードにおける第１の属性の属性値毎に、当該第１の属性の属性値を含むレコードの数を計数し、データ格納部に格納するステップとをさらに含むようにしても良い。このように、曖昧化対象属性の属性値毎に、レコード数を算出するようにしても良い。
【０１１５】
さらに、上で述べた曖昧化データが、少なくとも第１の属性の属性値のうち頻度が最も多い属性値である確率のデータを含むようにしても良い。このような確率のデータが提示されれば、より元の値の傾向を把握することが容易になる。
【０１１６】
また、上で述べた抽出ステップが、第２の属性（又は第２の属性群）の属性値が、ｋ個以上同じ値となるように匿名化する処理を行った後に実施される場合もある。すなわちｋ−匿名化処理を実施すれば、基礎的なプライバシー保護を実現できるようになる。
【０１１７】
さらに、上で述べた偏りが大きいことを表す条件が、第１の属性の属性値が２種類しか出現しておらず頻度が少ない方の属性値の頻度が１又は２であるという条件と、第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である場合もある。回答者自身が処理結果を見ても他の回答者の回答内容を一意に識別できないようにしつつ、曖昧化するデータを最小限に抑えるには、このような条件を採用する。なお、この場合、曖昧化データと置換するレコードの数は多くとも２となる。
【０１１８】
また、複数のレコードのレコード数が２以下である場合に、曖昧化ステップを実施するようにしても良い。このように、元々の回答者の数が少ない場合には曖昧化を行ってプライバシー保護を図る。
【０１１９】
また、上で述べた曖昧化ステップが、複数のレコードのレコード数と第１の属性の属性値の取り得る種類の数とに応じて算出される確率に従い、複数のレコードのうち１又は２のレコードにおける第１の属性の属性値を曖昧化する複数の曖昧化パターンのうちいずれかを特定するステップと、特定された曖昧化パターンに従って、第１の属性の属性値を曖昧化データで置換するステップとを含むようにしても良い。このような処理を行うと効果的にプライバシー保護が図られる。
【０１２０】
さらに、上で述べた偏りが大きいことを表す条件が、第１の属性の属性値が２種類しか出現しておらず且つ頻度が少ない方の属性の頻度が１であるという条件と、第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である場合もある。例えば、回答者自身が処理結果を見ることがない場合には、このような条件でもプライバシー保護が図られる。この場合、曖昧化データと置換されるレコードの数は１となる。
【０１２１】
さらに、複数のレコードにおける第１の属性の属性値が、第１の属性値と当該第１の属性値より頻度が低い第２の属性値とを含み、複数のレコードのレコード数をｎとする場合、例えば以下のようにして上で述べた確率を算出するようにしても良い。すなわち、第１の属性値が（ｎ−２）個出現し、２レコード分前記曖昧化データに置換されたことを表す情報が生成されている場合において実際には第１の属性値がｎ個出現していた場合の確率Ａと、第２の属性値に該当する人から見て第１の属性値が（ｎ−２）個出現し、２レコード分曖昧化データに置換されたことを表す情報が生成されている場合において実際には第１の属性値が（ｎ−１）個出現しており且つ第２の属性が１つ出現していた場合の確率Ｂと、第２の属性値に該当する人から見て第１の属性値が（ｎ−２）個出現し、第２の属性値が１個出現し、１レコード分曖昧化データに置換されたことを表す情報が生成されている場合において実際には第１の属性値が（ｎ−１）個出現しており且つ第２の属性が１つ出現していた場合の確率Ｃと、が等しく且つ最小になるという条件を満たすように、上で述べた確率が算出されるようにしても良い。適切な確率を算出できる。
【０１２２】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。
【０１２３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２４】
（付記１）
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布に、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布に、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、曖昧化データに置換し、前記データ格納部に格納するステップと、
を含み、コンピュータにより実行される情報処理方法。
【０１２５】
（付記２）
前記データ格納部に格納されているレコードを、前記第１の属性とは異なる第２の属性の属性値が同じレコードにグループ化することで、前記複数のレコードを抽出する抽出ステップと、
前記複数のレコードにおける前記第１の属性の属性値毎に、当該第１の属性の属性値を含むレコードの数を計数し、前記データ格納部に格納するステップと、
をさらに含む付記１記載の情報処理方法。
【０１２６】
（付記３）
前記曖昧化データが、少なくとも前記第１の属性の属性値のうち頻度が最も多い属性値である確率のデータを含む
付記１又は２記載の情報処理方法。
【０１２７】
（付記４）
前記抽出ステップが、前記第２の属性の属性値が、ｋ個以上同じ値となるように匿名化する処理を行った後に実施される
付記１又は２記載の情報処理方法。
【０１２８】
（付記５）
前記偏りが大きいことを表す条件が、前記第１の属性の属性値が２種類しか出現しておらず且つ頻度が少ない方の属性値の頻度が１又は２であるという条件と、前記第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である
付記１乃至４のいずれか１つ記載の情報処理方法。
【０１２９】
（付記６）
前記複数のレコードのレコード数が２以下である場合に、前記曖昧化ステップを実施する
付記５記載の情報処理方法。
【０１３０】
（付記７）
前記曖昧化ステップが、
前記複数のレコードのレコード数と前記第１の属性の属性値の取り得る種類の数とに応じて算出される確率に従い、前記複数のレコードのうち１又は２のレコードにおける第１の属性の属性値を曖昧化する複数の曖昧化パターンのうちいずれかを特定するステップと、
特定された前記曖昧化パターンに従って、前記第１の属性の属性値を前記曖昧化データで置換するステップと、
を含む付記１乃至６のいずれか記載の情報処理方法。
【０１３１】
（付記８）
前記偏りが大きいことを表す条件が、前記第１の属性の属性値が２種類しか出現しておらず且つ頻度が少ない方の属性の頻度が１であるという条件と、前記第１の属性の属性値が１種類しか存在しないという条件とのいずれかを満たすという判断条件である
付記１乃至４記載のいずれか１つ記載の情報処理方法。
【０１３２】
（付記９）
前記複数のレコードにおける前記第１の属性の属性値が、第１の属性値と当該第１の属性値より頻度が低い前記第２の属性値とを含み、
前記複数のレコードのレコード数をｎとし、
前記第１の属性値が（ｎ−２）個出現し、２レコード分前記曖昧化データに置換されたことを表す情報が生成されている場合において実際には前記第１の属性値がｎ個出現していた場合の確率Ａと、前記第２の属性値に該当する人から見て前記第１の属性値が（ｎ−２）個出現し、２レコード分前記曖昧化データに置換されたことを表す情報が生成されている場合において実際には前記第１の属性値が（ｎ−１）個出現しており且つ前記第２の属性が１つ出現していた場合の確率Ｂと、前記第２の属性値に該当する人から見て前記第１の属性値が（ｎ−２）個出現し、前記第２の属性値が１個出現し、１レコード分前記曖昧化データに置換されたことを表す情報が生成されている場合において実際には前記第１の属性値が（ｎ−１）個出現しており且つ前記第２の属性が１つ出現していた場合の確率Ｃと、が等しく且つ最小になるという条件を満たすように、前記確率が算出される
付記７記載の情報処理方法。
【０１３３】
（付記１０）
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布に、偏りが大きいことを表す条件を満たしているか判断するステップと、
前記レコードの数の分布に、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、曖昧化データに置換し、前記データ格納部に格納するステップと、
を、コンピュータに実行させるプログラム。
【０１３４】
（付記１１）
複数のレコードに含まれ且つ曖昧化対象と指定されている第１の属性の属性値の種類毎に前記複数のレコードのうち当該第１の属性の属性値が出現するレコードの数が格納されているデータ格納部に格納されているデータから、前記レコードの数の分布に、偏りが大きいことを表す条件を満たしているか判断する判断部と、
前記レコードの数の分布に、前記偏りが大きいことを表す条件を満たしている場合には、前記複数のレコードのうち少なくとも１のレコードにおける前記第１の属性の属性値を、曖昧化データに置換し、前記データ格納部に格納する曖昧化処理部と、
を有する情報処理装置。
【符号の説明】
【０１３５】
１００，２００  情報処理装置
１１０  第１データ格納部
１２０  判断部
１３０  曖昧化処理部
１４０  第２データ格納部
２１０  第１データ格納部
２２０  ｋ−匿名化処理部
２３０  グループ化処理部
２４０  出力部
２５０  入力部
２６０  曖昧化処理部
２７０  第２データ格納部
【図１】
0005772563.tif 000011
【図２】
0005772563.tif 000012
【図３】
0005772563.tif 000013
【図４】
0005772563.tif 000014
【図５】
0005772563.tif 000015
【図６】
0005772563.tif 000016
【図７】
0005772563.tif 000017
【図８】
0005772563.tif 000018
【図９】
0005772563.tif 000019
【図１０】
0005772563.tif 000020
【図１１】
0005772563.tif 000021
【図１２】
0005772563.tif 000022
【図１３】
0005772563.tif 000023
【図１４】
0005772563.tif 000024
【図１５】
0005772563.tif 000025
【図１６】
0005772563.tif 000026
【図１７】
0005772563.tif 000027
【図１８】
0005772563.tif 000028
【図１９】
0005772563.tif 000029
【図２０】
0005772563.tif 000030
【図２１】
0005772563.tif 000031
【図２２】
0005772563.tif 000032
【図２３】
0005772563.tif 000033
【図２４】
0005772563.tif 000034