(57)【要約】【課題】分析目的に適した匿名化データを得るために一般化階層を編集可能とする。【解決手段】一般化階層作成部１１１は、匿名化される対象である複数の準識別子の属性値の組み合わせを含む匿名化対象データに基づいて、準識別子毎に、下層のレイヤに比べて匿名化の程度が同一またはより高い属性値およびその属性値の出現頻度を有する１つ以上のノードを含むレイヤを有する木構造の一般化階層を作成する。一般化階層提示部１１２は、利用者によって指定された準識別子の一般化階層を利用者に提示する。一般化階層編集部１１３は、利用者による編集の指示に応じて提示された一般化階層を更新する。匿名化処理部１１７は、利用者による各準識別子の一般化階層のレイヤの指定に応答して、匿名化対象データに含まれる各準識別子の属性値が指定された各準識別子の一般化階層のレイヤに属するノードの属性値に置き換えられた匿名化データを作成する。【選択図】図１
2015046030.tif 000002
【特許請求の範囲】
【請求項１】
匿名化される対象である複数の準識別子の属性値の組み合わせを含む匿名化対象データに基づいて、当該準識別子毎に、前記匿名化対象データに含まれる属性値および当該属性値の出現頻度を有する複数のノードを含む最下層のレイヤと、下層のレイヤに比べて匿名化の程度が同一またはより高い属性値および当該属性値の出現頻度を有する１つ以上のノードを含むレイヤとによって構成される木構造の一般化階層を作成する一般化階層作成手段と、
利用者による準識別子の指定に応答して、指定された当該準識別子の一般化階層を利用者に提示する一般化階層提示手段と、
利用者による編集の指示に応じて、前記一般化階層提示手段によって提示された一般化階層を、木構造を保ちながら更新し、更新された一般化階層を利用者に再提示する一般化階層編集手段と、
利用者による各準識別子の一般化階層のレイヤの指定に応答して、前記匿名化対象データに含まれる各準識別子の属性値が当該指定された各準識別子の一般化階層のレイヤに属するノードの属性値に置き換えられた匿名化データを作成する匿名化手段と、
を備えることを特徴とするパーソナル情報匿名化システム。
【請求項２】
前記一般化階層の各レイヤの情報損失指標を求める損失指標算出手段を備え、
前記一般化階層提示手段と前記一般化階層編集手段が、前記損失指標算出手段によって求められた前記一般化階層に含まれる各レイヤの情報損失指標を利用者に提示する、
ことを特徴とする請求項１に記載のパーソナル情報匿名化システム。
【請求項３】
前記匿名化手段が、前記匿名化データに含まれる各準識別子の属性値の組み合わせの出現頻度が利用者によって指定されたｋ匿名化閾値を満たすように前記匿名化データを修正することを特徴とする請求項１または２に記載のパーソナル情報匿名化システム。
【請求項４】
前記一般化階層編集手段における編集が、ノードの名前の変更と、ノードの移動と、レイヤの追加と、レイヤの削除とを含むことを特徴とする請求項１ないし３のいずれか１項に記載のパーソナル情報匿名化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナル情報を匿名化するパーソナル情報匿名化システムに関する。
【背景技術】
【０００２】
クラウドコンピューティングや分散処理技術の発展により、これまで企業や団体で蓄積されてきた大量のデータの分析や利活用が現実的な時間で可能となってきている。一方で、これらのデータは多くの場合、氏名や住所のような個人を特定できる情報や、年齢・職業・学歴といった必ずしも個人を特定できないが、個人に関する情報を含んでいる。このような情報はパーソナル情報と呼ばれる。パーソナル情報の利活用は、プライバシー侵害を防止するため、プライバシー保護に配慮して行う必要がある。
【０００３】
このプライバシーの保護は、個人情報保護法で定める個人情報を削除するだけでは実現できない。例えば、パーソナル情報から、識別番号のようなそれ自体で個人を特定できる情報を削除したとしても、年齢・国籍・職業といった、それ単独では個人を特定できない属性を組み合わせることで個人を特定できることがある。このような、組み合わせることで個人の特定が可能になる属性は準識別子と呼ばれる。準識別子の組み合わせによって個人を特定することを防ぐ技術として、ｋ匿名化がある。ｋ匿名化は、パーソナル情報の準識別子の組み合わせが文書中に所定の匿名化閾値ｋ件以上現れるように属性値を曖昧化する技術である。例えば、ｋ匿名化では、「31歳・日本人・システムエンジニア」という属性値の組み合わせを「30代・日本人・ＩＴ」というように曖昧化する。
【０００４】
パーソナル情報の匿名化技術であるｋ匿名化では、パーソナル情報の準識別子の属性値を曖昧化するために、一般化階層というデータ構造を使用する。特許文献１に示す技術を用いて、パーソナル情報の準識別子の属性値の出現頻度に従ってこの一般化階層を生成することができる。このようにして得られる一般化階層を用いてｋ匿名化を実施することにより、情報の精度落ちを抑えることができる。
【０００５】
一般化階層はルートを頂点とする木構造のノードで構成されており、いくつかの層に分かれている。このような一般化階層を構成する層をレイヤと呼ぶ。
パーソナル情報とこのパーソナル情報の準識別子とこの準識別子の一般化階層のレイヤの組み合わせとを決めると、その組み合わせに従ってパーソナル情報を匿名化することができる。この準識別子の一般化階層のレイヤの組み合わせを匿名化プランと呼ぶ。パーソナル情報とその準識別子の一般化階層を与え、ｋ匿名化閾値を決めたとき、このｋ匿名化閾値を満たすことのできる匿名化プランは一般に複数ある。したがって、その中から最適な匿名化プランを選択する必要がある。匿名化プランの選択については、非特許文献１に示す方法が知られている。この方法では、指定したｋ匿名化閾値との近さや一般化階層のレイヤの低さなどに基づいて匿名化プランを選択している。
【０００６】
ｋ匿名化によって得られる匿名化データの品質は一般化階層や匿名化プランに依存するため、一般化階層の編集による影響を把握できるようにする必要がある。この匿名化データの品質を表す指標として損失情報量がある。損失情報量を計算する技術はいくつか提案されているが、属性値の出現頻度を基にした情報エントロピーとして損失情報量を計算する技術が、同じく特許文献１で提案されている。この技術には、匿名化対象のパーソナル情報に即した情報量の評価ができるという特長がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開ＷＯ２０１１／１４５４０１号パンフレット
【非特許文献】
【０００８】
【非特許文献１】（株）日立コンサルティング：「平成２１年度経済産業省  情報大航海プロジェクト（基盤共通技術の開発・改良と検証）  パーソナル情報保護・解析基盤の開発・完了と検証  個人情報匿名化基盤  外部仕様書」ｐ．５３（２０１０年０３月）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に示す技術を用いて得られる一般化階層は、情報の精度落ちを抑えることができる反面、必ずしも分析目的に適したものになるとは限らない。例えば、「仏（フランス）」と「中（中国）」という国籍の準識別子の属性値が１つ上のレイヤで「仏中（フランスおよび中国）」という属性値に一般化された場合、この一般化は、匿名化データを用いた分析において、国籍が表す国の世界的な地域区分を重視する場合には適切ではない。
一方で、利用者が特許文献１に示すような技術を用いず、自らの手で一般化階層を作成した場合、その一般化階層を用いて匿名化を一度実行しないと情報がどの程度落ちるのかが分からないため、分析目的に適した匿名化データが得られるとは限らない。
【００１０】
本発明は、分析目的に適した匿名化データを得るために一般化階層を編集することができるパーソナル情報匿名化システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明のパーソナル情報匿名化システムは、
匿名化される対象である複数の準識別子の属性値の組み合わせを含む匿名化対象データに基づいて、当該準識別子毎に、前記匿名化対象データに含まれる属性値および当該属性値の出現頻度を有する複数のノードを含む最下層のレイヤと、下層のレイヤに比べて匿名化の程度が同一またはより高い属性値および当該属性値の出現頻度を有する１つ以上のノードを含むレイヤとによって構成される木構造の一般化階層を作成する一般化階層作成手段と、
利用者による準識別子の指定に応答して、指定された当該準識別子の一般化階層を利用者に提示する一般化階層提示手段と、
利用者による編集の指示に応じて、前記一般化階層提示手段によって提示された一般化階層を、木構造を保ちながら更新し、更新された一般化階層を利用者に再提示する一般化階層編集手段と、
利用者による各準識別子の一般化階層のレイヤの指定に応答して、前記匿名化対象データに含まれる各準識別子の属性値が当該指定された各準識別子の一般化階層のレイヤに属するノードの属性値に置き換えられた匿名化データを作成する匿名化手段と、
を備えることを特徴とする。
【００１２】
好ましくは、本発明のパーソナル情報匿名化システムは、
前記一般化階層の各レイヤの情報損失指標を求める損失指標算出手段を備え、
前記一般化階層提示手段と前記一般化階層編集手段が、前記損失指標算出手段によって求められた前記一般化階層に含まれる各レイヤの情報損失指標を利用者に提示する、
ことを特徴とする。
【００１３】
好ましくは、本発明のパーソナル情報匿名化システムは、
前記匿名化手段が、前記匿名化データに含まれる各準識別子の属性値の組み合わせの出現頻度が利用者によって指定されたｋ匿名化閾値を満たすように前記匿名化データを修正することを特徴とする請求項１または２に記載のパーソナル情報匿名化システム。
【００１４】
好ましくは、本発明のパーソナル情報匿名化システムは、
前記一般化階層編集手段における編集が、ノードの名前の変更と、ノードの移動と、レイヤの追加と、レイヤの削除とを含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、分析目的に適した匿名化データを得るために一般化階層を編集することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るパーソナル情報匿名化システムの構成の一例を示す図である。
【図２】一般化階層編集画面の一例を示す図である。
【図３】匿名化対象データ取込ダイアログの画面の一例を示す図である。
【図４】匿名化実行ダイアログの画面の一例を示す図である。
【図５】一般化階層エディタ上に表示されるコンテキストメニューで選択可能な項目の一例を示す図である。
【図６】「ノード名変更」の一例を示す図である。
【図７】「ノード移動」の第１の例を示す図である。
【図８】「ノード移動」の第２の例を示す図である。
【図９】「ノード移動」の第３の例を示す図である。
【図１０】匿名化対象データの構成の一例を示す図である。
【図１１】管理データの構成の一例を示す図である。
【図１２】一般化階層データの構成の一例を示す図である。
【図１３】準識別子タプル頻度データの構成の一例を示す図である。
【図１４】匿名化後頻度表算出部における匿名化後頻度表算出処理の流れの一例を示す図である。
【図１５】一般化階層の一例を示す図である。図１５（Ａ）は準識別子「年齢」の一般化階層の一例を示す。図１５（Ｂ）は準識別子「国籍」の一般化階層の一例を示す。図１５（Ｃ）は準識別子「専攻」の一般化階層の一例を示す図である。
【図１６】匿名化後タプル頻度表の一例を示す図である。
【図１７】損失指標算出部における損失指標算出処理の流れの一例を示す図である。
【図１８】準識別子ごとの頻度表の一例を示す図である。図１８（Ａ）は準識別子「年齢」の頻度表の一例を示す。図１８（Ｂ）は準識別子「国籍」の頻度表の一例を示す。図１８（Ｃ）は準識別子「専攻」の頻度表の一例を示す。
【図１９】準識別子ごとの匿名化後頻度表の一例を示す図である。図１８（Ａ）は準識別子「年齢」の匿名化後頻度表の一例を示す。図１８（Ｂ）は準識別子「国籍」の匿名化後頻度表の一例を示す。図１８（Ｃ）は準識別子「専攻」の匿名化後頻度表の一例を示す。
【図２０】一般化階層作成処理の流れの一例を示す図である。
【図２１】一般化階層提示処理の流れの一例を示す図である。
【図２２】一般化階層編集処理の流れの一例を示す図である。
【図２３】一般化階層保存部における一般化階層保存処理の流れの一例を示す図である。
【図２４】匿名化処理部における匿名化処理の流れの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態に係るパーソナル情報匿名化システムについて添付図面を参照しながら説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
【００１８】
（全体構成）
図１は、本発明の実施形態に係るパーソナル情報匿名化システム１００の構成の一例を示す。
パーソナル情報匿名化システム１００は、インターネット等のネットワーク１８０に接続されている。また、ネットワーク１８０には、一般化階層編集受付装置１７０が接続されている。パーソナル情報匿名化システム１００と一般化階層編集受付装置１７０は、ネットワーク１８０を介して相互に通信することができる。
一般化階層編集受付装置１７０は、一般化階層を編集するユーザインタフェースを利用者に提供する。一般化階層編集受付装置１７０は、例えば、パーソナルコンピュータで実現される。一般化階層編集受付装置１７０は、例えば、Ｗｅｂブラウザに表示されるＷｅｂページとしてユーザインタフェースを実現してもよいし、Ｊａｖａ（登録商標）のグラフィカルユーザインタフェース部品であるＳＷＴ（Ｓｔａｎｄａｒｄ  Ｗｉｄｇｅｔ  Ｔｏｏｌｋｉｔ）を用いたクライアントサーバアプリケーションのウィンドウとしてユーザインタフェースを実現してもよい。
【００１９】
パーソナル情報匿名化システム１００は、匿名化装置１０１とパーソナル情報管理装置１５０とを含む。
匿名化装置１０１は、アプリケーションサーバ等であって、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される主メモリと、ハードディスク等で構成される記憶装置とを備える。
匿名化装置１０１の記憶装置には、匿名化プログラムが格納されている。
匿名化装置１０１のＣＰＵが、匿名化プログラムを記憶装置から主メモリに読み込んで実行することによって、ユーザインタフェース部１１０と、一般化階層作成部１１１と、一般化階層提示部１１２と、一般化階層編集部１１３と、匿名化後頻度表算出部１１４と、損失指標算出部１１５と、一般化階層保存部１１６と、匿名化処理部１１７との各部の機能が実現される。一時記憶部１２０は、匿名化装置１０１の主メモリまたは記憶装置に設けられた記憶領域である。
パーソナル情報管理装置１５０は、データベース製品上のストレージとして実現される。パーソナル情報管理装置１５０の実現方法は関係データベース、キーバリュー型分散データベースなどが考えられる。パーソナル情報管理装置１５０は、匿名化対象データ１５１と、管理データ１５２と、一般化階層データ１５３と、準識別子タプル頻度データ１５４と、匿名化データ１５５とを管理する。
なお、匿名化装置１０１とパーソナル情報管理装置１５０は、同一のコンピュータで実現されてもよいし、別々のコンピュータで実現されてもよい。
【００２０】
ユーザインタフェース部１１０は、後述するように、図２に示す一般化階層編集画面２００を一般化階層編集受付装置１７０に表示させる。一般化階層編集受付装置１７０が一般化階層編集画面２００上で入力された各種情報を匿名化装置１０１に送信すると、ユーザインタフェース部１１０はその情報を受信して他の各部に渡す。
一般化階層作成部１１１は、匿名化対象データの名前、匿名化対象データが格納されているデータファイルの場所、ｋ匿名化閾値、および属性情報などの情報を受け付けると、データファイルを取得する。そして、一般化階層作成部１１１は、データファイルから匿名化対象データと一般化階層データと準識別子タプル頻度データとを作成し、パーソナル情報管理装置１５０に匿名化対象データ１５１と管理データ１５２と一般化階層データ１５３と準識別子タプル頻度データ１５４とを書き込む。
一般化階層提示部１１２は、一般化階層編集受付装置２００を用いる利用者による準識別子の指定を受け付けると、指定された準識別子の一般化階層データ１５３をパーソナル情報管理装置１５０から読み出して木構造に展開し、一時記憶部１２０に保存する。そして、一般化階層提示部１１２は、一時記憶部１２０に保存されている一般化階層等を一般化階層編集受付装置１７０の一般化階層編集画面上に表示させる。なお、「一般化階層等を一般化階層編集受付装置１７０の一般化階層編集画面上に表示させる」ことは、本発明における「指定された準識別子の一般化階層を利用者に提示する」ことの一例である。
一般化階層編集部１１３は、利用者による編集の指示に応じて、一般化階層提示部１１２によって提示された一般化階層を、木構造を保ちながら更新する。
【００２１】
匿名化後頻度表算出部１１４は、匿名化対象データの準識別子の属性値を匿名化したときの準識別子の組み合わせの出現頻度を算出し、匿名化換後の準識別子の組み合わせとその出現頻度とを含む匿名化後タプル頻度表を出力する。
損失指標算出部１１５は、匿名化後頻度表算出部１１４により出力される匿名化後タプル頻度表を基に、匿名化前後の情報量を計算して匿名化前のデータからどれだけ情報の精度が落ちたかを表す情報損失指標である情報損失率を計算する。
【００２２】
一般化階層保存部１１６は、利用者の保存操作に応じて一時記憶部１２０に保存されている一般化階層をパーソナル情報管理装置１５０の一般化階層データ１５３として書き込む。
匿名化処理部１１７は、利用者による匿名化要求に応答して匿名化対象データから匿名化データを求める。そして、匿名化処理部１１７は、利用者によって指定されたｋ匿名化閾値を満たすように匿名化データを修正してパーソナル情報管理装置１５０の匿名化データ１５５として書き込む。
なお、一般化階層作成部１１１は本発明の一般階層作成手段の一例であり、一般化階層提示部１１２は本発明の一般化階層提示手段の一例であり、一般化階層編集部１１３は本発明の一般化階層編集手段の一例であり、匿名化処理部１１７は本発明の匿名化手段の一例であり、匿名化後頻度表算出部１１４は本発明の匿名化後頻度表算出手段の一例である。
【００２３】
（一般化階層編集受付装置）
一般化階層編集受付装置１７０は、図２に示す一般化階層編集画面２００をディスプレイに表示する。
一般化階層編集画面２００は、メニューバー２１０と、匿名化設定表示エリア２５０と、損失指標評価エリア２６０と、一般化階層エディタ２７０とを含む。
メニューバー２１０には、項目として「データ」と「一般化階層」が表示される。メニューバー２１０をマウスで左クリックするなどの操作によって、「データ−取込」メニュー２２０を選択すると、図３に示す匿名化対象データ取込ダイアログ２２１がディスプレイ上に開く。後述するように、匿名化対象データ取込ダイアログ２２１上でデータ名とデータファイルのパスを指定し、ｋ匿名化閾値を設定し、匿名化対象データの属性と準識別子の情報を選択することができる。
また、メニューバー２１０をマウスで左クリックするなどの操作によって「データ−匿名化」メニュー２３０を選択すると、図４に示す匿名化実行ダイアログ２３１がディスプレイ上に開く。
また、メニューバー２１０をマウスで左クリックするなどの操作によって「一般階層化−保存」メニュー２４０を選択することにより、一般化階層を情報管理装置１５０の一般化階層データ１５３に保存することができる。
【００２４】
匿名化設定表示エリア２５０は、匿名化対象データ取込ダイアログ２２１上で設定されたデータ名とｋ匿名化閾値と匿名化対象データの属性の一覧と匿名化対象データの準識別子の一覧とを表示する。図２では属性の一覧と準識別子の一覧とを別々の領域に表示しているが、同一の領域に表示して準識別子にあたる属性だけを太字で示すなどの方法で強調表示してもよい。また、属性の領域と準識別子の領域の間に、準識別子の追加や削除を実行するボタンを設けてもよい。
【００２５】
損失指標評価エリア２６０は、匿名化実行ダイアログ２３１上で選択された一般化階層のレイヤをすべての準識別子について表示し、また、それらのレイヤを用いて匿名化を実行したときの情報損失率を表示する。
匿名化実行ダイアログ２３１上で準識別子の一般化階層のレイヤが選択されると、匿名化後頻度表算出部１１４は、選択されたレイヤに応じて匿名化後タプル頻度表を算出し、この匿名化後タプル頻度表を基に情報損失率を求める。情報損失率は、後述する式１から式９に定める方法によって算出される。
【００２６】
一般化階層エディタ２７０は、準識別子ごとに一般化階層を表示し、準識別子の属性値または一般化（匿名化）された属性値とその出現頻度、および各レイヤでの情報損失率（ＩＬ：Ｉｎｆｏｒｍａｔｉｏｎ  Ｌｏｓｓ  ｒａｔｅ）を表示する。ここで、出現頻度とは、例えば、準識別子の属性値が匿名化対象データに現れる回数をいう。また、一般化階層エディタ２７０は、利用者によるノードの移動やノード名変更、レイヤの追加や削除などの編集操作に応じて一般化階層や情報損失率の表示を更新する。
【００２７】
一般化階層は、匿名化対象データに含まれる準識別子の属性値およびその出現頻度を有する複数のノードを含む最下層のレイヤと、下層のレイヤに比べて匿名化の程度が同一またはより高い属性値およびその出現頻度を有する１つ以上のノードを含むレイヤとによって構成される。
例えば、図２中の一般化階層エディタ２７０には、あるパーソナル情報について「国籍」という準識別子の一般化階層が表示されている。各ボックスの上段は「国籍」という準識別子の属性値または一般化（匿名化）された属性値を表し、下段はその出現頻度を表す。
一般化階層は２個以上任意個のレイヤＬ０，…，ＬＪ−１から構成され、各々のレイヤは１個以上任意個のノードを持つ。さらに、隣接するレイヤ間には親子関係がある。つまり、ｊ＝０，…，Ｊ−２に対して、ＬｊはＬｊ＋１の子レイヤ、Ｌｊ＋１はＬｊの親レイヤである。さらに、各々のレイヤに属するノードは、上位レイヤに高々１つの親ノードを、下位レイヤに０個以上任意個の子ノードを持つ。ノードが親ノードを持たないのは、該ノードが属するレイヤが最上層のレイヤＬＪ−１、つまりルートレイヤであるときである。ノードが子ノードを持たないのは、そのノードが属するレイヤが最下層のレイヤＬ０、つまりリーフレイヤであるときである。また、ルートレイヤに含まれるノードをルートノード、リーフレイヤに含まれるノードをリーフノードという。
【００２８】
図２中の一般化階層エディタ２７０に表示されている例では、第５レイヤがルートレイヤであり、ルートノードの属性値は「仏中英独米日」である。また、第０レイヤがリーフレイヤであり、リーフノードの属性値は「仏」、「中」、「英」、「独」、「米」、および「日」である。第０レイヤは、匿名化する前の属性値各々を有するノードを含む。なお、例えば、「日」は第０レイヤから第４レイヤまでに含まれるが、第０レイヤの「日」がリーフノードであり、第１レイヤから第４レイヤまでの「日」はリーフノードではない。
以下では、あるレイヤのノード（親ノード）につながる上層のレイヤのノードを祖先ノードという。第５レイヤの「仏中英独米日」、第４レイヤの「仏中英独米」、および第３レイヤの「仏中英独」は、第２レイヤのノード「仏中英」の祖先ノードである。また、あるレイヤのノード（親ノード）につながる下層のレイヤのノードを子孫ノードという。たとえば、第１レイヤの「仏中」と「英」および第０レイヤの「仏」と「中」と「英」は、第２レイヤの親ノード「仏中英」の子孫ノードである。また、第０〜第３レイヤのノード「日」は、第４レイヤの親ノード「日」の子孫ノードである。
【００２９】
（一般化階層エディタにおける編集）
一般化階層エディタ２７０上でマウスにより右クリックするなどの操作によって、コンテキストメニューを開くことができる。コンテキストメニューでは、「ノード名変更」、「ノード移動」、「レイヤ追加（上）」、「レイヤ追加（下）」および「レイヤ削除」等の各操作を行うことができる。
図５は、一般化階層エディタ２７０上に表示されるコンテキストメニューで選択可能な項目の一例を示す。選択可能な項目はレイヤに依存するが、加えてノード上で右クリックしたかそれ以外の空白エリア（以下、非ノードという。）で右クリックしたかにも依存する。
図５において、Ｎはルートレイヤのレイヤ番号であり、１以上の整数値を取る。一般化階層のレイヤの総数が２（Ｎ＝１）である場合は、第１レイヤはルートレイヤである。この場合、ルートノードに対する操作を行うときは、図５におけるレイヤ「１」の場合とレイヤ「Ｎ」の場合のＡＮＤを適用する。たとえば、第１階層でノードを選択したとき、レイヤ「１」の場合では「ノード移動」は○になっているが、レイヤ「Ｎ」の場合では「ノード移動」は×になっているので、「ノード移動」は選択できない。一般化階層のレイヤの総数が３（Ｎ＝２）である場合、第１レイヤはルートレイヤではない。この場合に第１レイヤに対する操作を行うときは、図５におけるレイヤ「１」の場合を適用する。一般化階層のレイヤの総数が３（Ｎ＝２）である場合は、第２レイヤがルートレイヤである。この場合、ルートノードに対する操作を行うときは、図５におけるレイヤ「Ｎ」の場合を適用する。
例えば、図５によれば、一般化階層のレイヤの総数が２以上のときに第１レイヤ上のノードで右クリックしたときは「ノード名変更」と「ノード移動」が選択可能である。一方、第１レイヤの非ノード（ノードがないところ、すなわち空白エリア）で右クリックしたときは「レイヤ追加（上）」「レイヤ追加（下）」「レイヤ削除」が選択可能である。
【００３０】
図６は、「ノード名変更」の一例を示す。図６の例では第２レイヤの米をアメリカに変更している。
「ノード名変更」操作を行う場合、まず一般化階層エディタ２７０に表示されているノードをマウスで右クリックするとコンテキストメニューが表示される。次に、そのコンテキストメニュー上に表示されている「ノード名変更」をマウスで左クリックして選択する。これにより、一般化階層エディタ２７０上でこの選択されたノードのノード名を直接入力できるようになるので、キーボード等を用いて変更後のノード名を入力する。なお、ノード名変更後、ノード名を変更されたノードの祖先ノードや子孫ノード（リーフノードは除く）など、改名を推奨するノードを強調表示することとしてもよい。強調表示の方法としては、例えばノード名を赤色で表示したり、太線で表示する等の方法が考えられる。強調表示の例として、図６に改名を推奨するノードのボックスの枠線を太線化する例を示す。
「ノード名変更」では編集前後でノード間の階層構造は変わらないため、情報損失率は変わらない。
【００３１】
「ノード移動」操作を行う場合、まず一般化階層エディタ２７０に表示されているノードをマウスで右クリックするとコンテキストメニューが表示される。次に、そのコンテキストメニュー上に表示されている「ノード移動」をマウスで左クリックして選択する。そして、移動先の親ノードをマウスで左クリックする。
ノード移動は、移動対象ノードの子孫ノードも含めて階層構造を保ちながら移動する。その際、一般化階層は元のデータの属性値を曖昧化する階層であるので、レイヤ０にすべての匿名化前の属性値を持つ必要がある。このため、「ノード移動」は、移動元と移動先の階層によって以下の３種類に分けられる。
（１）移動によって階層が上がる場合：移動するノードの子孫ノードも一緒に移動し、移動するノードの末端にあるノードを第０レイヤまで伸ばす。第１レイヤのノード「中」を第３レイヤの「日」の下のレイヤ（第２レイヤ）に移動する例を図７に示す。
（２）移動によって階層が変わらない場合：移動するノードを子孫ノードごと移動する。第１レイヤのノード「中」を第２レイヤの「日」の下のレイヤ（第１レイヤ）に移動する例を図８に示す。
（３）移動によって階層が下がる場合：移動するノードを子孫ノードごと移動する。ただし、このまま移動すると、移動するノードの末端にあるノードが第０レイヤよりも下に位置してしまうので、移動前の第０レイヤからはみ出す分だけ下に階層を増やし、その最下層を改めて第０レイヤとする。さらに、移動するノードの子孫ノードに含まれないリーフノードは新しい第０レイヤまで伸ばす。第１レイヤのノード「仏独」を第１レイヤの「英」の下のレイヤ（第０レイヤ）に移動する例を図９に示す。
なお、ノード移動後、改名を推奨するノードを強調表示することとしてもよい。強調表示の例として、図７〜図９に改名を推奨するノードのボックスの枠線を太線化する例を示す。
【００３２】
また、図５に示すように、第０レイヤのノード、つまりリーフノードの移動も可能である。例えば、図２の一般化階層エディタ２７０に例示されている一般化階層において、ノード「中」を第１レイヤ以上のノード「日」の下に移動し、移動先の親ノードを「アジア」に改名するというような操作が考えられる。この操作によるリーフノードの移動が行われると、移動されたリーフノードは第０レイヤまで子孫ノードが伸び、同じ属性値を持つリーフノードが作成される。
ただし、「ノード移動」では、リーフノードを親ノードに指定することはできない。リーフノードは匿名化される前の生の属性値を表しているので、リーフノードが他の生の属性値を子孫に持つことは考えられないからである。
また、あるノードをその子孫ノードの下に移動することはできない。このような移動を可能とすると、ノードの親子関係が循環してしまうからである。この点は、Ｗｉｎｄｏｗｓ（登録商標）のエクスプローラで、あるフォルダをそのサブフォルダの下に移動する操作はできないのと同様である。
「ノード移動」では、ノード移動完了後に情報損失率を再計算し、再計算された情報損失率を一般化階層エディタ２７０に表示する。
【００３３】
「レイヤ追加（上）」、「レイヤ追加（下）」または「レイヤ削除」操作を行う場合、まず一般化階層エディタ２７０に表示されているレイヤの非ノード（ノードがないところ、すなわち空白エリア）をマウスで右クリックするとコンテキストメニューが表示される。次に、そのコンテキストメニュー上に表示されている「レイヤ追加（上）」、「レイヤ追加（下）」および「レイヤ削除」のいずれかをマウスで左クリックして選択する。
「レイヤ追加（上）」では、選択したレイヤの上に新しくレイヤを作成する。新しいレイヤのノードは、選択したレイヤのノードがそのまま現れる。選択したレイヤと新しいレイヤでのノード間の親子関係は、同じ名前のノード同士が親子になる。新しいレイヤとその親レイヤのノード間の親子関係は、レイヤ追加前の選択したレイヤとその親レイヤの親子関係を引き継ぐ。
ただし、ルートレイヤの上には新しいレイヤを作成できない。
「レイヤ追加（上）」では追加したレイヤでの情報損失率は、選択したレイヤのそれと同じである。
【００３４】
「レイヤ追加（下）」では、選択したレイヤの下に新しくレイヤを作成する。新しいレイヤのノードは、選択したレイヤの子レイヤにあったノードがそのまま現れる。新しいレイヤの子レイヤと新しいレイヤでのノード間の親子関係は、同じ名前のノード同士が親子になる。新しいレイヤとその親レイヤのノード間の親子関係は、レイヤ追加前の選択したレイヤとその子レイヤの親子関係を引き継ぐ。
ただし、リーフレイヤの下には新しいレイヤを作成できない。
「レイヤ追加（下）」では追加したレイヤでの情報損失率は、選択したレイヤのレイヤ追加前の子レイヤのそれと同じである。
【００３５】
「レイヤ削除」では、選択したレイヤを削除する。削除するレイヤの一つ下のレイヤと一つ上のレイヤとの子孫関係が、レイヤ削除後の一般化階層での親子関係になる。
ただし、ルートレイヤとリーフレイヤの削除はできない。
「レイヤ削除」では編集前後でリーフレイヤと他レイヤとの子孫関係は変わらないため、情報損失率は変わらない。
【００３６】
（匿名化対象データ）
匿名化対象データ１５１は、図１０に示すような表形式をとる。匿名化対象データ１５１のレコードは、レコードの識別子であるキーと、レコードの属性であるいくつかの列を有する。ここでは、ＫＥＹという列が識別子であり、他に年齢、国籍、専攻及び通勤時間といった列を持つ。本実施形態ではこれらの列のうち、年齢、国籍及び専攻を準識別子とする。
【００３７】
（管理データ）
管理データ１５２は、図１１に示すように、データ名と、ｋ匿名化閾値と、列情報と、一般化階層情報とを有する。
データ名は、匿名化対象のデータの名前である。
ｋ匿名化閾値は、データ名が表す匿名化対象データ１５１をｋ匿名化するときの閾値である。
列情報は、匿名化対象データ１５１が持つ属性情報である。列情報は、属性の名前と型を持ち、準識別子かどうかを表すフラグ（準識別子である場合Ｔｒｕｅ、準識別子でない場合Ｆａｌｓｅ）を持つ属性情報のリストである。
一般化階層情報は、準識別子の名前を示す準識別子名と、準識別子に対する一般化階層名とを含む情報のリストである。ここで、一般化階層名は、パーソナル情報管理装置１５０の一般化階層データ１５３でのテーブル名に対応している。一般化階層のデータは、一般化階層データ１５３の中にテーブルとして書き込まれる。一般化階層名は、そのテーブルの名前であり、例えば、データ名と準識別子名を一定の区切り文字で結合したものである。また、別々の準識別子の一般化階層のデータを同じテーブルに格納することもできる。この場合も一般化階層名はテーブル名に対応しており、同じテーブルに格納された一般化階層のデータに共通の一般化階層名が付与される。この場合の一般化階層名は、例えば、データ名の後に一定のサフィックスを結合したものとすることができる。
図２の一般化階層エディタ２７０上で、管理データ１５２のデータ名に紐づく一般化階層を編集することができる。
【００３８】
（一般化階層データ）
一般化階層データ１５３は、図１２に示すように、準識別子名と、オブジェクトＩＤと、値と、頻度とを有する。一般化階層データ１５３は、準識別子名とオブジェクトＩＤをキーとする表である。
オブジェクトＩＤは、一般化階層の属性値または親子関係の識別子であり、属性値の識別子はＮＸＸＸの形式で、親子関係の識別子はＰＮＹＹＹの形式である。ここで、属性値の識別子「ＮＸＸＸ」に対する値は、その識別子「ＮＸＸＸ」で特定される属性値である。また、オブジェクトＩＤ「ＰＮＹＹＹ」に対する値は、ノード「ＮＹＹＹ」の親ノードのオブジェクトＩＤである。
頻度は、属性値の出現頻度を示す。出現頻度は、オブジェクトＩＤ「ＮＸＸＸ」に対してのみ存在し、オブジェクトＩＤ「ＰＮＹＹＹ」に対する出現頻度は空欄である。
例えば、図１２の１行目は、図２の一般化階層エディタ２７０中に示される一般化階層例におけるリーフレイヤの最も左のノードに対応しており、準識別子「国籍」のノード「Ｎ００１」は属性値「仏」を持ち、その出現頻度は「５」であることを表す。同様に図１２の２行目は図２の一般化階層エディタ２７０中に示される一般化階層例における第１レイヤの最も左のノードに対応しており、準識別子「国籍」のノード「Ｎ００２」は属性値「仏中」を持ち、その出現頻度は「１０」であることを表す。図１２の３行目はオブジェクトＩＤ「Ｎ００１」のノード「仏」の親がオブジェクトＩＤ「Ｎ００２」のノード「仏中」であることを表す。
【００３９】
（準識別子タプル頻度データ）
準識別子タプル頻度データ１５４は、図１３に示すように、匿名化対象データの準識別子の値の組み合わせと、頻度とを有する。頻度は、準識別子の値の組み合わせがその匿名化対象データに現れる回数を示す。準識別子タプル頻度データ１５４は、匿名化対象データ１５１を基に予め算出されている。
準識別子タプル頻度データ１５４のデータ形式は、一般化階層を用いて匿名化対象データをｋ匿名化して得られる匿名化データの準識別子の値の組み合わせに対する頻度を表現する匿名化後タプル頻度表にも使用される。
【００４０】
次に、匿名化後頻度表算出部１１４と損失指標算出部１１５について説明するが、これらの両部の処理は、図２０の一般化階層作成処理の後で実行される。
（匿名化後頻度表算出処理）
図１４は、匿名化後頻度表算出部１１４における匿名化後頻度表算出処理の流れの一例を示す。
匿名化後頻度表算出部１１４は、図１２の一般化階層データ１５３と、図１３の準識別子タプル頻度データ１５４とをパーソナル情報管理装置１５０から主メモリに読み出す（Ｓ１０１）。そして、匿名化後頻度表算出部１１４は、読み出した準識別子タプル頻度データ１５４に含まれる全件のデータについて１件ずつ以下の処理を繰り返し、図１６に示す匿名化後タプル頻度表３００を算出する（Ｓ１０２）。
具体的には、匿名化後頻度表算出部１１４は、準識別子タプル頻度データ１５４から、現在のレコードのキーを取得する（Ｓ１０３）。このキーは、読み出した一般化階層データ１５３により構成される一般化階層におけるリーフノードの属性値を組み合わせたものである。例えば、図１３の（２７，日，地球物理学）というようなものになる。
次に、匿名化後頻度表算出部１１４は、このキーに含まれる属性値を、指定された各準識別子のレイヤの属性値に置き換えて新しいキーを作成する（Ｓ１０４）。なお、各準識別子のレイヤの指定は図４の匿名化実行ダイアログ２３１上で行うことができる。また、後述する一般化階層提示処理と一般化階層編集処理の実行中には、一般化階層エディタ２７０上に一般化階層が表示される準識別子についてはレイヤの指定がリーフレイヤからルートレイヤまで自動で更新される。例えば、前述のキー（２７，日，地球物理学）を、図１５に示す一般化階層の例を用いて、年齢・国籍および専攻の各属性値を第１レイヤの各属性値で置換したとき、置換されたキーは（２０代，日，理系）となる。
次に、匿名化後頻度表算出部１１４は、置換されたキーに対して匿名化後タプル頻度表３００に該当するキーのエントリがあるか確認し（Ｓ１０５）、エントリがなければ（Ｓ１０６：Ｙｅｓ）、頻度の値０でエントリを作成する（Ｓ１０７）。続いて、匿名化後頻度表算出部１１４は、置換されたキーに対する匿名化後タプル頻度表３００のエントリを取得し、その頻度の値に置換されたキーに対応する現在のレコードのキーに対する準識別子タプル頻度データ１５４の頻度の値を加算して、匿名化後タプル頻度表３００のエントリを更新する（Ｓ１０８）。これを準識別子タプル頻度データ１５４に含まれる全件のデータに対して繰り返す（Ｓ１０２）。
匿名化後頻度表算出部１１４は、例えば、図１３の準識別子タプル頻度データ１５４と図１５の一般化階層を用い、年齢・国籍及び専攻の一般化階層のレイヤをすべて第１レイヤで指定したとき、図１６に示す匿名化後タプル頻度表３００を出力する。
【００４１】
（損失指標算出部）
図１７は、損失指標算出部１１５における損失指標算出処理の流れの一例を示す。
損失指標算出部１１５の入力は、準識別子タプル頻度データ１５４、および匿名化後頻度表算出部１１４で求められた匿名化後タプル頻度表３００である。
損失指標算出部１１５は、まず、準識別子タプル頻度データ１５４を準識別子ごとに集計して全ての準識別子の属性値の出現頻度を求めることにより、準識別子ごとの頻度表Ｆ１，…，ＦＮを作成する（Ｓ２０１）。ここで、準識別子ごとの頻度表は、匿名化対象データ１５１と単一の準識別子を決めたときの、その準識別子の属性値と出現頻度との対応関係を示す。例えば、図１３の準識別子タプル頻度データ１５４からは図１８のような準識別子ごとの頻度表が得られる。
次に、損失指標算出部１１５は、匿名化後タプル頻度表３００から、各準識別子について指定されたレイヤを対象として準識別子ごとの匿名化後頻度表Ｇ１，…，ＧＮを求める（Ｓ２０２）。なお、各準識別子のレイヤの指定は図４の匿名化実行ダイアログ２３１上で行うことができる。また、後述する一般化階層提示処理と一般化階層編集処理の実行中には、一般化階層エディタ２７０上に一般化階層が表示される準識別子についてはレイヤの指定がリーフレイヤからルートレイヤまで自動で更新される。ここで、準識別子ごとの匿名化後頻度表は、匿名化データと単一の準識別子を決めたときの、該準識別子の匿名化属性値と出現頻度との対応関係を示す。この出現頻度は、匿名化後タプル頻度表３００から特定の準識別子について頻度を集計することによって求められる。例えば、図１３の準識別子タプル頻度データ１５４と図１５の一般化階層を用い、すべての一般化階層で第１レイヤを指定したとき、図１９のような準識別子ごとの匿名化後頻度表が得られる。
次に、損失指標算出部１１５は、準識別子ごとの頻度表Ｆ１，…，ＦＮと匿名化対象データの全レコード数Ｒから匿名化前情報量を求める。ここで、匿名化前情報量は、匿名化実行ダイアログ２３１等で全ての準識別子についてリーフレイヤが指定されたときの情報量に相当する。匿名化前情報量の算出式は以下の数１から数４のとおりである。なお、これ以降に現れる式において、対数関数ｌｏｇの底は２であるとするが、システム内で統一されていれば、１０やネイピア数などの１を超える任意の正の数でよい。
【００４２】
【数１】
2015046030.tif 000003
【数２】
2015046030.tif 000004
【数３】
2015046030.tif 000005
【数４】
2015046030.tif 000006
【００４３】
次に、損失指標算出部１１５は、準識別子ごとの匿名化後頻度表Ｇ１，…，ＧＮと匿名化対象データの全レコード数Ｒから匿名化後情報量を求める（Ｓ２０４）。ここで、匿名化後情報量は、各準識別子について指定されたレイヤで匿名化された場合の情報量である。各準識別子のレイヤの指定は匿名化実行ダイアログ２３１等で行うことができる。また、後述する一般化階層提示処理と一般化階層編集処理の実行中には、一般化階層エディタ２７０上に一般化階層が表示される準識別子についてはレイヤの指定がリーフレイヤからルートレイヤまで自動で更新される。匿名化後情報量の算出式は以下の数５から数８のとおりである。
【００４４】
【数５】
2015046030.tif 000007
【数６】
2015046030.tif 000008
【数７】
2015046030.tif 000009
【数８】
2015046030.tif 000010
【００４５】
最後に、損失指標算出部１１５は、ここまでに求めた匿名化前情報量と匿名化後情報量から、数９に従って情報損失率を求める（Ｓ２０５）。なお、情報損失率は本発明の情報損失指標の一例である。
【数９】
2015046030.tif 000011
例えば、図２の一般化階層編集画面２００の損失指標評価エリア２６０に表示されている情報損失率（１２．９１％）は、準識別子「年齢」、「国籍」、および「専攻」について全て第１レイヤが指定されて匿名化された場合の値である。
【００４６】
（一般化階層作成処理）
図２０は、一般化階層作成処理の流れの一例を示す。
利用者が一般化階層編集受付装置１７０に表示されている一般化階層編集画面２００上で、「データ−取込」メニュー２２０を選択する（Ｓ３０１）と、図３の匿名化対象データ取込ダイアログ２２１が開く（Ｓ３０２）。利用者は匿名化対象データ取込ダイアログ２２１上で、データ名、データファイルのパス、ｋ匿名化閾値、および列情報を入力する。列情報としては、取り込もうとしているデータファイルを基に作成される匿名化対象データを構成する各列の名前、型を指定し、さらに各列の中から準識別子として使用する列を指定する。利用者がデータ名、データファイルのパス、ｋ匿名化閾値、および列情報を入力して取込ボタンを押すと、一般化階層編集受付装置１７０は、データファイルを指定されたパスから読み出して、データ名、データファイル、ｋ匿名化閾値、および列情報を含む匿名化対象データ取込要求を匿名化装置１０１に送信する（Ｓ３０３）。
匿名化装置１０１がデータ名、データファイル、ｋ匿名化閾値、および列情報を含む匿名化対象データ取込要求を受信する（Ｓ３０４）と、一般化階層作成部１１１は、受信したデータファイルから匿名化される対象である複数の準識別子の属性値の組み合わせを含む匿名化対象データを作成し、作成された匿名化対象データをパーソナル情報管理装置１５０の匿名化対象データ１５１として書き込む（Ｓ３０５）。
次に、一般化階層作成部１１１は、その匿名化対象データ１５１と列情報により指定された準識別子を基に、準識別子毎に、匿名化対象データ１５１に含まれる属性値およびその出現頻度を有する複数のノードを含む最下層のレイヤと、下層のレイヤに比べて匿名化の程度が同一またはより高い属性値およびその出現頻度を有する１つ以上のノードを含むレイヤとによって構成される木構造の一般化階層を作成し、パーソナル情報管理装置１５０の一般化階層データ１５３として書き込む（Ｓ３０６）。ここでの一般化階層の自動生成は、特許文献１に示すような技術を用いる。
【００４７】
そして、一般化階層作成部１１１は、匿名化対象データ１５１を基に準識別子タプル頻度データを求め、パーソナル情報管理装置１５０の準識別子タプル頻度データ１５４に書き込む（Ｓ３０７）。さらに、一般化階層作成部１１１は、受信したデータ名、ｋ匿名化閾値、および列情報を基に、パーソナル情報管理装置１５０の管理データ１５２を書き込む（Ｓ３０８）。ここで、一般化階層名には例えば、パーソナル情報管理装置１５０の一般化階層データ１５３を書き出したときの書き出し先のテーブル名を指定するが、これに限るものではない。
一般化階層作成部１１１は、これらの一連の処理が完了すると一般化階層作成処理の完了を一般化階層編集受付装置１７０に通知する（Ｓ３０９）。一般化階層編集受付装置１７０は通知を受けて、匿名化対象データ取込ダイアログ２２１を閉じる（Ｓ３１０）。
【００４８】
（一般化階層提示処理）
図２１は、一般化階層提示処理の流れの一例を示す。
図２の一般化階層編集画面２００の匿名化設定表示エリア２５０には、匿名化対象データ取込ダイアログ２２１で設定したデータ名とｋ匿名化閾値と匿名化対象データの属性の一覧と匿名化対象データの準識別子の一覧とが表示される。利用者が匿名化設定表示エリア２５０で準識別子名を選択する（Ｓ４０１）と、一般化階層編集受付装置１７０は、準識別子名を含む一般化階層読出要求を匿名化装置１０１に送信する（Ｓ４０２）。
匿名化装置１０１が一般化階層読出要求を受信する（Ｓ４０３）と、一般化階層提示部１１２は、パーソナル情報管理装置１５０の一般化階層データ１５３から、一般化階層を読み込み、木構造のデータ構造に変換して一時記憶部１２０に書き込む（Ｓ４０４）。
次に、一般化階層提示部１１２は、準識別子タプル頻度データ１５４を準識別子ごとに集計して、すべての準識別子について属性値の出現頻度を求める（Ｓ４０５）。なお、ステップＳ４０５はステップＳ２０１と同一の処理であり、各準識別子の属性値の出現頻度は、一般化階層におけるリーフノードの出現頻度に相当する。
そして、一般化階層提示部１１２は、一般化階層読出要求に含まれる選択された準識別子の一般化階層（一般化階層エディタ２７０に表示されている準識別子の一般化階層）について、ステップＳ４０５で求めたリーフノードの出現頻度を用いてリーフノードの上層のノードの属性値の出現頻度を求める（Ｓ４０６）。例えば、図２の一般化階層編集画面２００の一般化階層エディタ２７０に表示されている一般化階層については、第１レイヤのノード「仏中」の頻度１０は、第０レイヤのノード「仏」の頻度５と「中」の頻度５を加算することによって求められ、また、第２レイヤのノード「仏中英」の頻度２５は、第１レイヤのノード「仏中」の頻度１０と「英」の頻度１５を加算することによって求められる。
【００４９】
次に、損失指標算出部１１５が、一般化階層編集画面２００の一般化階層エディタ２７０に表示される一般化階層の各レイヤの情報損失率ＩＬを求める（Ｓ４０７）。ここで、一般化階層エディタ２７０には一般化階層読出要求に含まれる選択された準識別子の一般化階層が表示される。損失指標算出部１１５は、選択された準識別子以外の準識別子については匿名化実行ダイアログ２３１で指定されたレイヤ（すなわち、損失指標評価エリア２６０に表示されているレイヤ）に固定して、選択された準識別子のレイヤを変えながら各レイヤの情報損失率を求める。たとえば、図２の一般化階層エディタ２７０に表示されているケースでは、年齢と専攻を第１レイヤに固定したときの情報損失率を、国籍のレイヤを変えながらそれぞれ求める。このために、損失指標算出部１１５に、準識別子タプル頻度データ１５４、および匿名化後タプル頻度表３００を入力として与える。ここで、選択された準識別子については、一般化階層の全てのレイヤについて匿名化後タプル頻度表３００を求めて使用する。それ以外の準識別子については、損失指標評価エリア２６０に表示されているレイヤについて求められた匿名化後タプル頻度表３００を使用する。
そして、一般化階層提示部１１２は、一時記憶部１２０に保持している各ノードの出現頻度を含む一般化階層、および各レイヤの情報損失率を一般化階層編集受付装置１７０に送信する（Ｓ４０８）。一般化階層編集受付装置１７０は、受信した一般化階層と各レイヤの情報損失率を一般化階層エディタ２７０に表示する（Ｓ４０９）。
【００５０】
（一般化階層編集処理）
図２２は、一般化階層編集処理の流れの一例を示す。
上述したように、一般化階層編集画面２００の一般化階層エディタ２７０上で「ノード名変更」、「ノード移動」、「レイヤ追加（上）」、「レイヤ追加（下）」および「レイヤ削除」等の各編集操作を行うことができる。
一般化階層編集受付装置１７０は、ノード移動等の編集操作を受け付けると、該当する編集操作の指定を含む編集要求を匿名化装置１０１に送信する（Ｓ５０１）。
匿名化装置１０１が編集要求を受信する（Ｓ５０２）と、一般化階層編集部１１３は、編集要求により指定される編集操作を一時記憶部１２０に保存されている一般化階層のデータ構造に対して実施し、一時記憶部１２０の一般化階層を更新する（Ｓ５０３）。
続いて、一般化階層編集部１１３等は、上述したステップＳ４０５〜Ｓ４０７と同一の処理を行って、一般化階層編集画面２００の一般化階層エディタ２７０に表示される一般化階層の各ノードの出現頻度および各レイヤの情報損失率ＩＬを再計算し、更に、上述したステップＳ４０８とＳ４０９と同一の処理を行って、一般化階層編集受付装置１７０上の一般化階層編集画面２００の一般化階層エディタ２７０に一般化階層を表示させる。
具体的には、一般化階層編集部１１３は、準識別子タプル頻度データ１５４を準識別子ごとに集計して、すべての準識別子について属性値の出現頻度（一般化階層におけるリーフノードの出現頻度）を求める（Ｓ５０４、Ｓ４０５と同一）。そして、一般化階層編集部１１３は、一般化階層エディタ２７０に表示されている準識別子の一般化階層について、ステップＳ５０４で求めたリーフノードの出現頻度を用いてリーフノードの上層のノードの属性値の出現頻度を求める（Ｓ５０５、Ｓ４０６と同一）。
次に、損失指標算出部１１５が、一般化階層編集画面２００の一般化階層エディタ２７０に表示されている一般化階層の各レイヤの情報損失率ＩＬを求める（Ｓ５０６、Ｓ４０７と同一）。
そして、一般化階層編集部１１３は、一時記憶部１２０に保持している各ノードの出現頻度を含む一般化階層、および各レイヤの情報損失率を一般化階層編集受付装置１７０に送信する（Ｓ５０７、Ｓ４０８と同一）。一般化階層編集受付装置１７０は、受信した一般化階層と各レイヤの情報損失率を一般化階層エディタ２７０に表示する（Ｓ５０８、Ｓ４０９と同一）。
【００５１】
（一般化階層保存処理）
図２３は、一般化階層保存部１１６における一般化階層保存処理の流れの一例を示す。
一般化階層編集受付装置１７０に表示されている一般化階層編集画面２００で「一般化階層−保存」メニュー２４０が選択されると、一般化階層編集受付装置１７０は、一般化階層エディタ２７０に表示されている準識別子の一般化階層を保存する保存要求を匿名化装置１０１に送信する（Ｓ６０１）。
匿名化装置１０１が保存要求を受信する（Ｓ６０２）と、一般化階層保存部１１６は、一時記憶部１２０に保存されている木構造の一般化階層から図１２の構造の一般化階層データ１５３を作成して、パーソナル情報管理装置１５０の一般化階層データ１５３に書き込む（Ｓ６０３）。
【００５２】
（匿名化処理）
図２４は、匿名化処理部１１７における匿名化処理の流れの一例を示す。
一般化階層編集受付装置１７０に表示されている一般化階層編集画面２００上で「一般化階層−保存」メニュー２４０が選択される（Ｓ７０１）と、図４の匿名化実行ダイアログ２３１が開く（Ｓ７０２）。匿名化実行ダイアログ２３１では、準識別子の一般化階層のレイヤを入力することができる。利用者は、損失指標評価エリア２６０を参照して情報損失率の評価を行い、最も適切であると判断したレイヤを匿名化実行ダイアログ２３１上で指定する。利用者が匿名化実行ダイアログ２３１上で各準識別子の一般化階層のレイヤを入力し、匿名化実行ボタンを押下する（Ｓ７０３）と、一般化階層編集受付装置１７０は各準識別子の一般化階層のレイヤを含む匿名化要求を匿名化装置１０１に送信する（Ｓ７０４）。
匿名化装置１０１が匿名化要求を受信する（Ｓ７０５）と、匿名化処理部１１７は、匿名化対象データに含まれる各準識別子の属性値が匿名化要求に含まれる各準識別子の一般化階層のレイヤに属するノードの属性値に置き換えられた匿名化データを作成する（Ｓ７０６）。
次に、匿名化処理部１１７は匿名化データに含まれる各準識別子の属性値の組み合わせの出現頻度を算出する（Ｓ７０７）。匿名化処理部１１７は、算出された出現頻度がｋ匿名化閾値未満のレコードを匿名化データから削除することにより、匿名化データに含まれる各準識別子の属性値の組み合わせの出現頻度が利用者によって指定されたｋ匿名化閾値を満たすように匿名化データを修正する（Ｓ７０８）。そして、匿名化処理部１１７は、匿名化後の各準識別子の属性値の組み合わせとその出現頻度とを含み、ｋ匿名化閾値を満たす匿名化データ１５５をパーソナル情報管理装置１５０に書き込む（Ｓ７０９）。なお、匿名化データ１５５の構成は、匿名化後タプル頻度表３００と同様である。
匿名化処理部１１７はこれらの一連の処理が完了すると匿名化処理の完了を一般化階層受付編集装置１７０に通知する（Ｓ７１０）。
なお、データファイルに含まれるパーソナル情報を匿名化するときには、まず、匿名化データ１５５に含まれる準識別子の属性値に対応する匿名化前の準識別子の属性値を一般化階層データ１５３から求める。そして、データファイルに含まれる匿名化前の準識別子の属性値を匿名化後の準識別子の属性値で置き換えることになる。
【００５３】
以上説明したように、本発明によれば、匿名化対象データを基にした一般化階層のテンプレートを出発点として、一般化階層の編集を、損失情報量を確認しながらインタラクティブに行うことができる。このために、利用者は一般化階層の編集中に最適な匿名化プランが分かるようになる。このようにして編集した一般化階層を用いて、匿名化対象データの匿名化を利用者が望む匿名化プランによって実施することで、分析用途に適した一般化階層と匿名化データを、利用者が納得しやすい形で効率的に得ることができる。
【符号の説明】
【００５４】
１００…パーソナル情報匿名化システム、１０１…匿名化装置、１１０…ユーザインタフェース部、１１１…一般化階層作成部、１１２…一般化階層提示部、１１３…一般化階層編集部、１１４…匿名化後頻度表算出部、１１５…損失指標算出部、１１６…一般化階層保存部、１１７…匿名化処理部、１２０…一時記憶部、１５０…パーソナル情報管理装置、１５１…匿名化対象データ、１５２…管理データ、１５３…一般化階層データ、１５４…準識別子タプル頻度データ、１５５…匿名化データ、１７０…一般化階層編集受付装置、１８０…ネットワーク、２００…一般化階層編集画面、２１０…メニューバー、２２０…「データ−取込」メニュー、２２１…匿名化対象データ取込ダイアログ、２３０…「データ−匿名化」メニュー、２３１…匿名化実行ダイアログ、２４０…「一般階層化−保存」メニュー、２５０…匿名化設定表示エリア、２６０…損失指標評価エリア、２７０…一般化階層エディタ、３００…匿名化後タプル頻度表
【図１】
2015046030.tif 000012
【図２】
2015046030.tif 000013
【図３】
2015046030.tif 000014
【図４】
2015046030.tif 000015
【図５】
2015046030.tif 000016
【図６】
2015046030.tif 000017
【図７】
2015046030.tif 000018
【図８】
2015046030.tif 000019
【図９】
2015046030.tif 000020
【図１０】
2015046030.tif 000021
【図１１】
2015046030.tif 000022
【図１２】
2015046030.tif 000023
【図１３】
2015046030.tif 000024
【図１４】
2015046030.tif 000025
【図１５】
2015046030.tif 000026
【図１６】
2015046030.tif 000027
【図１７】
2015046030.tif 000028
【図１８】
2015046030.tif 000029
【図１９】
2015046030.tif 000030
【図２０】
2015046030.tif 000031
【図２１】
2015046030.tif 000032
【図２２】
2015046030.tif 000033
【図２３】
2015046030.tif 000034
【図２４】
2015046030.tif 000035