(57)【要約】【課題】ユーザにとって意味のある情報損失率を提供することにより、匿名化されたデータの有用性をユーザが正しく判断することができるパーソナル情報匿名化技術を提供する。【解決手段】本発明のパーソナル情報匿名化プログラムは、パーソナル情報に対して単純匿名化を実施する部分と実施しない部分との間の境界を設定し、前者を基準として情報損失率を算出する。【選択図】図１
2015170169.tif 000002
【特許請求の範囲】
【請求項１】
パーソナル情報を匿名化する処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
前記パーソナル情報に対して単純匿名化を実施することにより得られる単純匿名化データを出力する単純匿名化ステップ、
前記単純匿名化データに対してｋ匿名化を実施することにより得られるｋ匿名化データを出力するｋ匿名化ステップ、
匿名化を実施することにより損なわれる情報の損失率を算出するための基準点を設定する情報量計算設定ステップ、
前記損失率を算出する情報損失率算出ステップ、
を実行させ、
前記情報量計算設定ステップにおいては、前記コンピュータに、
前記パーソナル情報のうち前記単純匿名化ステップにおいて単純匿名化を実施する部分と実施しない部分との間の境界を前記基準点として設定させ、
前記情報損失率算出ステップにおいては、前記コンピュータに、
前記ｋ匿名化ステップにおける前記損失率を算出するときは、前記基準点にしたがって単純匿名化を実施することにより得られる計算起点データの情報量と、前記ｋ匿名化データの情報量との間の比率に基づき、前記損失率を算出させる
ことを特徴とするパーソナル情報匿名化プログラム。
【請求項２】
前記情報損失率算出ステップにおいては、前記コンピュータに、
前記単純匿名化ステップにおける前記損失率を算出するときは、前記計算起点データの情報量と、前記境界によらず前記パーソナル情報全体に対して単純匿名化を実施することにより得られる前記単純匿名化データの情報量との間の比率に基づき、前記損失率を算出させる
ことを特徴とする請求項１記載のパーソナル情報匿名化プログラム。
【請求項３】
前記単純匿名化データまたは前記ｋ匿名化データは、１以上のカラムを有しており、
前記パーソナル情報匿名化プログラムは、前記コンピュータに、
前記単純匿名化データの情報量または前記ｋ匿名化データの情報量を計算する手順を前記カラム毎に定義する計算手順定義ステップを実行させる
ことを特徴とする請求項１記載のパーソナル情報匿名化プログラム。
【請求項４】
前記計算手順定義ステップにおいては、前記コンピュータに、
前記手順を実装したカスタム計算プログラムモジュールを前記カラム毎に指定する指示を受け取りその指示にしたがって前記カスタム計算プログラムモジュールを前記手順に反映するステップを実行させる
ことを特徴とする請求項３記載のパーソナル情報匿名化プログラム。
【請求項５】
前記パーソナル情報匿名化プログラムは、前記単純匿名化データの情報量または前記ｋ匿名化データの情報量を計算する処理を実装した計算プログラムモジュールを備え、
前記計算プログラムモジュールは、前記単純匿名化データの情報量または前記ｋ匿名化データの情報量を計算する処理を呼び出すプログラムインターフェースと、前記プログラムインターフェースを介して規定の計算手順を実施する処理を実装したデフォルト計算プログラムモジュールと、を備え、
前記計算手順定義ステップにおいては、前記コンピュータに、
前記プログラムインターフェースを介して前記単純匿名化データの情報量または前記ｋ匿名化データの情報量を計算する処理を実装した前記カスタム計算プログラムを、前記デフォルト計算プログラムモジュールに代えて用いさせる
ことを特徴とする請求項４記載のパーソナル情報匿名化プログラム。
【請求項６】
パーソナル情報を匿名化する装置であって、
前記パーソナル情報に対して単純匿名化を実施することにより得られる単純匿名化データを出力する単純匿名化部、
前記単純匿名化データに対してｋ匿名化を実施することにより得られるｋ匿名化データを出力するｋ匿名化部、
匿名化を実施することにより損なわれる情報の損失率を算出するための基準点を設定する情報量計算設定部、
前記損失率を算出する情報損失率算出部、
を備え、
前記情報量計算設定部は、前記パーソナル情報のうち前記単純匿名化部が単純匿名化を実施する部分と実施しない部分との間の境界を前記基準点として設定し、
前記情報損失率算出部は、
前記ｋ匿名化部による前記損失率を算出するときは、前記基準点にしたがって単純匿名化を実施することにより得られる計算起点データの情報量と、前記ｋ匿名化データの情報量との間の比率に基づき、前記損失率を算出する
ことを特徴とするパーソナル情報匿名化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナル情報を匿名化する技術に関する。
【背景技術】
【０００２】
クラウドコンピューティングや分散処理技術の発展により、これまで企業や団体で蓄積されてきた大量のデータの分析や利活用が現実的な時間内で可能となってきている。一方で、これらのデータは多くの場合、氏名や住所のような個人を特定できる情報や、年齢・職業・学歴のように必ずしも個人を特定できないが個人に関する情報を含んでいる。例えば、医療分野における患者への投薬データや、流通分野における個人の購買履歴などがこれにあたる。このような情報はパーソナル情報と呼ばれる。パーソナル情報を利活用するに際してはプライバシー侵害への懸念があるため、プライバシー保護に配慮する必要がある。
【０００３】
匿名化技術は、パーソナル情報の一部または全部の情報に曖昧化などの加工を施すことによってプライバシー流出を防止する技術である。匿名化技術は大きく単純匿名化と統合匿名化の２つに分けられる。単純匿名化は、健康保険の保険者番号や氏名といった個人情報の除去や置き換え、年齢や日付情報の丸めなど、レコードが持つ個人に関する情報を曖昧化するのに用いる。しかしながら、パーソナル情報を単純匿名化することにより得られるデータから真に個人の識別性が失われているかどうかは、一般的には定量的に保証されていない。統合匿名化は、個人の識別性が失われているかどうかを表す指標が所定の条件を満たすように個人に関する情報を曖昧化する。
【０００４】
プライバシーの保護は、個人情報保護法で定める個人情報を削除するだけでは不十分であるといわれている。例えば医療分野においては、患者の年齢・居住地域・職業・性別などの、それ単独では個人を特定できない属性を組み合わせることにより個人を特定できることがある。このような、組み合わせることで個人特定が可能になる属性は、準識別子と呼ばれる。ｋ匿名化は統合匿名化の代表的な技術であり、パーソナル情報内に同じ準識別子の組み合わせがｋ件（匿名化閾値と呼ぶ）以上現れるように属性値を曖昧化する。例えば、「３１歳・神奈川県・システムエンジニア」という属性値の組み合わせを「３０代・神奈川県・ＩＴ」というように曖昧化する。ｋ匿名化は、パーソナル情報の準識別子の属性値を曖昧化する、一般化階層というデータ構造を使用する。
【０００５】
下記特許文献１は、パーソナル情報の準識別子の属性値の出現頻度を利用して一般化階層を生成することより、理論的に情報損失が最小になる一般化階層を得る技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２０１１１４５４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ｋ匿名化を実施することによる情報損失がユーザにとって許容できるか否かは、例えばｋ匿名化による情報損失率をユーザに対して提示してユーザ自身に判断させることができる。このときユーザに対して提示する値によっては、情報損失率が適切であるか否かをユーザが正しく判断することができない可能性がある。この理由について以下に説明する。
【０００８】
パーソナル情報を匿名化するときは、まず単純匿名化を実施した後にｋ匿名化を実施する。つまり、パーソナル情報の匿名化においては通常、個人情報の削除や切り落とし、日付や数値項目の丸めなどを実施してからｋ匿名化を実施する。したがって、情報損失率を計算する基準点によっては、ユーザから見ると情報が過剰に損なわれたように見えたり、あるいは匿名化が不十分であるように見えたりする可能性がある。
【０００９】
本発明は、上記のような状況に鑑みてなされたものであり、ユーザにとって意味のある情報損失率を提供することにより、匿名化されたデータの有用性をユーザが正しく判断することができるパーソナル情報匿名化技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のパーソナル情報匿名化プログラムは、パーソナル情報に対して単純匿名化を実施する部分と実施しない部分との間の境界を設定し、前者を基準として情報損失率を算出する。
【発明の効果】
【００１１】
本発明に係るパーソナル情報匿名化プログラムによれば、あらかじめ単純匿名化を実施することによって不要な情報をフィルタリングした結果を基準として情報損失率を算出するので、ユーザにとって意味のある情報損失率を提示することができる。これにより、ユーザは匿名化データの有用性をより正しく判断することができる。
【図面の簡単な説明】
【００１２】
【図１】パーソナル情報匿名化装置の構成を示す図である。
【図２】受付部２００が表示する匿名化メイン画面３００の画面イメージである。
【図３】匿名化対象データ取込画面４００の画面イメージである。
【図４】匿名化対象データ取込画面４００を介して匿名化対象データ２４１を取り込む手順を説明するフローチャートである。
【図５Ａ】単純匿名化実行画面５００の画面イメージである。
【図５Ｂ】設定ガジェット５６１の例を示す図である。
【図５Ｃ】設定ガジェット５６１の例を示す図である。
【図５Ｄ】設定ガジェット５６１の例を示す図である。
【図５Ｅ】設定ガジェット５６１の例を示す図である。
【図６】単純匿名化実行画面５００を介して単純匿名化を実施する手順を説明するフローチャートである。
【図７】ｋ匿名化設定画面６００の画面イメージである。
【図８】ｋ匿名化設定画面６００を介してｋ匿名化に関するパラメータを設定する手順を説明するフローチャートである。
【図９】一般化階層編集画面７００の画面イメージである。
【図１０】ｋ匿名化実行画面８００の画面イメージである。
【図１１】ｋ匿名化実行画面８００を介してｋ匿名化を実行する手順を説明するフローチャートである。
【図１２】匿名化データ出力画面９００の画面イメージである。
【図１３】匿名化データ出力画面９００を介して匿名化データ２４６を出力する手順を説明するフローチャートである。
【図１４】計算設定画面１０００の画面イメージである。
【図１５】計算定義ファイル１１００の記載例である。
【図１６】情報量を計算する手順を実装する計算クラスの実装規約を説明するクラス図である。
【図１７】計算設定画面１０００を用いてカスタム計算クラスを登録する手順を説明するフローチャートである。
【図１８】情報損失率算出部２３９が各データの情報量を計算する手順を説明するフローチャートである。
【図１９】匿名化管理データ２４３の構成例を示す図である。
【図２０】匿名化属性管理データ２４４の構成例を示す図である。
【図２１】匿名化対象データ２４１の構成例を示す図である。
【図２２】一般化階層データ２４７の構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。本実施形態では、匿名化対象データとしてはアンケートデータを想定するが、これに限るものではない。
【００１４】
図１は、本発明に係るパーソナル情報匿名化装置の構成を示す図である。パーソナル情報匿名化装置は、受付部２００、計算定義設定部２１０、匿名化装置２３０、情報管理装置２４０を備える。受付部２００は、ユーザが匿名化の設定や実行などを指示するユーザインタフェースである。計算定義設定部２１０は、匿名化に伴って発生する情報損失を計算する方法をユーザが定義するユーザインタフェースである。これら装置および機能部はネットワーク２２０によって接続されている。
【００１５】
匿名化装置２３０は、制御部２３１、データ取込部２３２、単純匿名化部２３３、ｋ匿名化部２３４、ｋ匿名化設定部２３５、一般化階層編集部２３６、情報量計算設定部２３７、匿名化データ出力部２３８、情報損失率算出部２３９を備える。
【００１６】
制御部２３１は、ユーザの操作を受け付けて各処理を実施する演算機能部である。データ取込部２３２は、匿名化対象データを取り込んで名前や属性情報などを設定する。単純匿名化部２３３は、単純匿名化を実施する。ｋ匿名化部２３４は、匿名化対象データ２４１を匿名化して匿名化データ２４６として出力する。ｋ匿名化設定部２３５は、単純匿名化後のデータに対して実施するｋ匿名化のパラメータを設定する。一般化階層編集部２３６は、ユーザが指定した準識別子の一般化階層を編集し保存する。情報量計算設定部２３７は、計算定義設定部２１０が受け付けた設定に基づいて情報量の計算方法を設定する。匿名化データ出力部２３８は、ｋ匿名化されたデータをファイルに出力する。情報損失率算出部２３９は、情報量計算設定部２３７による設定に基づいて情報損失率を計算する。
【００１７】
情報管理装置２４０は、ハードディスク装置などの記憶装置を用いて構成され、匿名化対象データ２４１、計算起点データ２４２、匿名化管理データ２４３、匿名化属性管理データ２４４、単純匿名化データ２４５、匿名化データ２４６、一般化階層データ２４７を格納する。
【００１８】
匿名化対象データ２４１は、匿名化処理前のオリジナルのパーソナル情報である。計算起点データ２４２は、情報損失率を計算する基準点となるデータである。匿名化管理データ２４３は、匿名化結果を格納するテーブル名などのメタデータやｋ匿名化の設定パラメータを保持する。匿名化属性管理データ２４４は、匿名化対象データ２４１の属性情報、当該属性に対する準識別子指定、情報量の計算方法などについての設定データである。単純匿名化データ２４５は、匿名化対象データ２４１に対して単純匿名化を実施して得られるデータである。匿名化データ２４６は、単純匿名化データ２４５に対してｋ匿名化を実施して得られるデータである。一般化階層データ２４７は、ｋ匿名化において用いる一般化階層を定義したデータである。
【００１９】
受付部２００は、例えばＷｅｂページとして実装してもよいし、Ｊａｖａのグラフィカルユーザインタフェース部品であるＳＷＴ（ＳＷｉｎｇ  Ｔｏｏｌｋｉｔ）を用いたクライアントサーバアプリケーションとして実装してもよい。匿名化装置２３０は、例えば制御部２３１以外の各機能部をソフトウェアモジュールとして実装し、制御部２３１がこれを実行することによって実現することもできるし、同様の機能を回路デバイスなどのハードウェアによって実装することにより実現することもできる。情報管理装置２４０は、例えば関係データベース、キーバリュー型分散データベースなどの形態で実装することができる。
【００２０】
＜受付部２００＞
図２は、受付部２００が表示する匿名化メイン画面３００の画面イメージである。匿名化メイン画面３００は、データメニュー３１０、匿名化メニュー３２０、画面表示エリア３３０を有する。データメニュー３１０は、データの入出力を取り扱う操作メニューである。匿名化メニュー３２０は、匿名化の設定や実行を指示する操作メニューである。画面表示エリア３３０は、各メニューの選択内容に応じて子画面を表示する。
【００２１】
データメニュー３１０は、匿名化対象データ２４１を取り込むメニュー３１１と、匿名化データ２４６をファイル出力するメニュー３１２とを有する。匿名化メニュー３２０は、単純匿名化を実行するよう指示するメニュー３２１、ｋ匿名化のパラメータを設定するよう指示するメニュー３２２、一般化階層の編集を開始するメニュー３２３、ｋ匿名化を実行するよう指示するメニュー３２４を有する。
【００２２】
＜匿名化対象データ取込画面４００＞
図３は、匿名化対象データ取込画面４００の画面イメージである。ユーザが図２におけるメニュー３１１を選択すると、受付部２００は画面表示エリア３３０内に匿名化対象データ取込画面４００を表示する。ユーザは匿名化対象データ取込画面４００を用いて、匿名化対象データ２４１の元データを取り込むとともに、データの名称、データに含まれる列情報、分析対象とする列、分析対象の各列に対する情報量の計算方法などを設定する。画面上の各項目については図４と併せて説明する。
【００２３】
図４は、匿名化対象データ取込画面４００を介して匿名化対象データ２４１を取り込む手順を説明するフローチャートである。以下図４の各ステップについて説明する。
【００２４】
（図４：ステップＳ４０１〜Ｓ４０２）
ユーザは、匿名化メイン画面３００のデータメニュー３１０からメニュー３１１（取込）を選択する（Ｓ４０１）。受付部２００は、画面表示エリア３３０内に匿名化対象データ取込画面４００を表示する（Ｓ４０２）。
【００２５】
（図４：ステップＳ４０３）
ユーザは、匿名化対象データ取込画面４００上で、データ名４１０、データファイル４２０、列情報４３０を入力する。データ名４１０は、取り込むデータを区別するため任意に付与する名称である。データファイル４２０は、取り込むパーソナル情報を記述したデータファイルのパス名である。列情報４３０は、データァイル内に含まれるカラムを表示および編集する欄である。データファイル４２０は、例えばファイルダイアログを開いて取り込むデータファイルを選択することにより指定してもよい。
【００２６】
（図４：ステップＳ４０３：列情報４３０の詳細）
列情報４３０は、列名４３１、型４３２、分析対象指定４３３を有する。取り込んだデータファイルが例えばＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）ファイルである場合、データファイル自身は生のデータのみを記述し、カラムの属性については記述していない。そこでユーザは、列情報４３０上においてこれら属性情報を指定し、匿名化装置２３０へ通知する。列名４３１は各カラムの名称である。型４３２は各カラムのデータ型である。分析対象指定４３３は各カラムを分析対象とするか否かを指定する。分析対象指定４３３をオンにした列についてはさらに、情報量計算方法４３４と係数４３５を指定する。情報量計算方法４３４は、各カラムが有する情報量を計算する方法を指定する欄であり、既定の計算方法のほか、計算定義設定部２１０を介して設定されたカスタム計算方法を選択することもできる。カスタム計算方法を指定する手順については後述する。係数４３５は匿名化処理において用いる係数であり、正の実数を指定する。
【００２７】
（図４：ステップＳ４０４〜Ｓ４０５）
ユーザが各情報を入力した後に取込ボタン４４０を押すと、受付部２００は、データ名４１０、データファイル４２０の本体、列情報４３０を匿名化装置２３０へ送信し、制御部２３１はこれらを受信する（Ｓ４０４）。データ取込部２３２は、データファイル４２０の本体を匿名化対象データ２４１として格納する（Ｓ４０５）。
【００２８】
（図４：ステップＳ４０６）
データ取込部２３２は、匿名化対象データ取込画面４００上に入力された値を、匿名化管理データ２４３と匿名化属性管理データ２４４に書き込む。これらデータの構成については後述する。本ステップにおいては、匿名化管理データ２４３にはテーブル名とデータ名だけが書き込まれ、匿名化属性管理データ２４４には匿名化管理データ２４３と同じテーブル名を用いて列情報が書き込まれる。テーブル名は、パーソナル情報匿名化装置全体で一意になる名称を自動的に設定する。その他のテーブル名についても同様である。
【００２９】
（図４：ステップＳ４０７〜Ｓ４０８）
データ取込部２３２は、制御部２３１に対して処理完了を通知する（Ｓ４０７）。制御部２３１は、ネットワーク２２０を経由して受付部２００に対して処理完了を通知する（Ｓ４０８）。
【００３０】
＜単純匿名化実行画面５００＞
図５Ａは、単純匿名化実行画面５００の画面イメージである。ユーザが図２におけるメニュー３２１を選択すると、受付部２００は画面表示エリア３３０内に単純匿名化実行画面５００を表示する。ユーザは単純匿名化実行画面５００を用いて、単純匿名化に関するパラメータ等を設定し、その設定に基づいて単純匿名化を実行する。画面上の各項目については図６と併せて説明する。
【００３１】
図５Ｂ〜図５Ｅは、後述する設定ガジェット５６１の例を示す図である。設定ガジェット５６１において設定することができる項目は、単純匿名化手法毎に異なる。ただしいずれの手法においても、その手法を適用するカラムを指定する点は共通である。
【００３２】
図６は、単純匿名化実行画面５００を介して単純匿名化を実施する手順を説明するフローチャートである。以下図６の各ステップについて説明する。
【００３３】
（図６：ステップＳ６０１〜Ｓ６０２）
ユーザは、匿名化メイン画面３００の匿名化メニュー３２０からメニュー３２１を選択する（Ｓ６０１）。受付部２００は、画面表示エリア３３０内に単純匿名化実行画面５００を表示する（Ｓ６０２）。
【００３４】
（図６：ステップＳ６０３）
ユーザは、入力データ名５１０を入力する。入力データ名５１０は、匿名化管理データ２４３が格納している「データ名」の中から選択するようにすることもできる。ユーザは、単純匿名化の結果として出力するデータの名称を、出力データ名５２０に入力する。ユーザは、単純匿名化において適用する匿名化手法を匿名化手法５４０から選択して追加ボタン５５０を押す。選択された単純匿名化手法の設定ガジェット５６１が匿名化設定５６０に追加される。
【００３５】
（図６：ステップＳ６０３：設定ガジェット５６１の詳細）
設定ガジェット５６１は、個々の単純匿名化手法に関するパラメータを設定するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）である。設定ガジェット５６１のタイトル部分をクリックすることにより、設定対象を切り替えることができる。匿名化手法５４０の中には各匿名化手法に加えて境界５６４が含まれており、匿名化設定５６０内に１個（または複数）追加することができる。計算起点データ２４２は、匿名化対象データ２４１の最初のカラムから境界５６４によって区切られる前のカラムまでに対して単純匿名化を実施した結果得られるデータである。ユーザは上ボタン５６２と下ボタン５６３を用いて、各匿名化設定や境界５６４の順番を入れ替えることができる。各匿名化設定を削除するときは、削除する設定ガジェット５６１を選択して削除ボタン５５１を押す。ユーザは単純匿名化に関する設定を完了すると、実行ボタン５７０を押す。
【００３６】
（図６：ステップＳ６０４〜Ｓ６０５）
受付部２００は、ユーザが単純匿名化実行画面５００上で入力した設定パラメータと併せて、単純匿名化を実行するよう指示する命令を、匿名化装置２３０に対してネットワーク２２０を経由して送信する（Ｓ６０４）。制御部２３１は、その命令と設定パラメータを受信し、単純匿名化部２３３に引き渡す（Ｓ６０５）。
【００３７】
（図６：ステップＳ６０６）
単純匿名化部２３３は、設定ガジェット５６１が表示されている順にしたがって、境界５６４以前に設定されている匿名化対象データ２４１内のカラムに対して単純匿名化を実施し、その結果を計算起点データ２４２として格納する。計算起点データ２４２はデータベースのテーブル形式で格納される。単純匿名化部２３３は、テーブル名を匿名化管理データ２４３の起点テーブル名として書き込む。
【００３８】
（図６：ステップＳ６０７）
単純匿名化部２３３は、設定ガジェット５６１が表示されている順にしたがって、境界以後に設定されている計算起点データ２４２内のカラムに対して単純匿名化処理を実施し、その結果を単純匿名化データ２４５として格納する。単純匿名化データ２４５はデータベースのテーブル形式で格納される。単純匿名化部２３３は、テーブル名と単純匿名化実行画面５００上で入力されたデータ名を、それぞれ匿名化管理データ２４３の単純匿名化テーブル名と単純匿名化データ名として書き込む。
【００３９】
（図６：ステップＳ６０８）
情報損失率算出部２３９は、計算起点データ２４２と単純匿名化データ２４５それぞれの情報量を求め、情報損失率を計算する。情報量の計算手順については後述する。情報損失率は、下記式によって求める。
【００４０】
【数１】
2015170169.tif 000003
【００４１】
（図６：ステップＳ６０９〜Ｓ６１１）
単純匿名化部２３３は、制御部２３１に対して情報損失率を通知する（Ｓ６０９）。制御部２３１は、ネットワーク２２０を経由して、受付部２００に対して情報損失率を通知する（Ｓ６１０）。受付部２００は、受信した情報損失率を単純匿名化実行画面５００の処理結果：情報損失率５３０に表示する（Ｓ６１１）。
【００４２】
計算起点データ２４２の意義について説明する。例えば、匿名化対象データ２４１が個人の職業に関する情報を保持しており、その職業が業種によって細かく分類されているとする。このとき、分析者は匿名化対象データ２４１内に含まれる細かい業種の分類を必要とせず、より粗い分類レベルで足りる場合がある。このとき匿名化対象データ２４１を基準として情報量を計算すると、分析者の想定以上に情報量が大きく損なわれたかのように見える場合がある。分析者の立場からすれば必要なのは粗い分類レベルの業種に関する情報なので、そのレベルまで業種を一般化したとしても、情報量損失はないと考えるのが適切である。計算起点データ２４２を基準として情報損失率を算出することにより、分析者の立場で必要かつ十分なレベルの情報が確保されている状態を起点として、分析者にとって適切な情報損失率を計算することができる。
【００４３】
＜ｋ匿名化設定画面６００＞
図７は、ｋ匿名化設定画面６００の画面イメージである。ユーザが図２におけるメニュー３２２を選択すると、受付部２００は画面表示エリア３３０内にｋ匿名化設定画面６００を表示する。ユーザはｋ匿名化設定画面６００を用いて、ｋ匿名化に関するパラメータ等を設定する。画面上の各項目については図８と併せて説明する。
【００４４】
図８は、ｋ匿名化設定画面６００を介してｋ匿名化に関するパラメータを設定する手順を説明するフローチャートである。以下図８の各ステップについて説明する。
【００４５】
（図８：ステップＳ８０１〜Ｓ８０２）
ユーザは、匿名化メイン画面３００の匿名化メニュー３２０からメニュー３２２を選択する（Ｓ８０１）。受付部２００は、画面表示エリア３３０内にｋ匿名化設定画面６００を表示する（Ｓ８０２）。
【００４６】
（図８：ステップＳ８０３）
ユーザは、処理対象データ名６１０を入力する。処理対象データ名６１０は、匿名化管理データ２４３が格納している「単純匿名化データ名」の中から選択するようにすることもできる。ユーザは、ｋ匿名化閾値６２０（２以上の整数）を入力する。ユーザは準識別子として用いるカラムを準識別子６３４のチェックボックスによって選択し、選択したカラムについてはさらに優先順位６３５を入力する。連番６３１、名前６３２、型６３３は読取専用である。優先順位６３５は、ｋ匿名化を実行するときに匿名化処理前の値を保存する優先順位である。言い換えると、一般化階層によって値を置き換えるときに、遷移する階層数をできるだけ小さくしたい準識別子を優先順に指定するものである。準識別子の値は１以上の整数で、値が小さいほど高優先順位となる。ユーザは全ての値を入力すると設定ボタン６４０を押す。
【００４７】
（図８：ステップＳ８０４）
受付部２００は、ユーザがｋ匿名化設定画面６００上で入力した各設定パラメータと併せて、これら設定パラメータを記録するよう指示する命令を、匿名化装置２３０に対してネットワーク２２０を経由して送信する。制御部２３１は、その命令と設定パラメータを受信し、ｋ匿名化設定部２３５に引き渡す。
【００４８】
（図８：ステップＳ８０５）
ｋ匿名化設定部２３５は、ユーザがｋ匿名化設定画面６００上で入力したｋ匿名化設定パラメータを各データに書き込む。具体的には以下の通りである。ｋ匿名化閾値６２０は匿名化管理データ２４３のｋ値に書き込まれる。準識別子６３４によって選択されたカラムについては優先順位６３５を匿名化属性管理データ２４４の優先順位に書き込む。準識別子６３４によって選択されなかったカラムについては０（ゼロ）を匿名化属性管理データ２４４の優先順位に書き込む。
【００４９】
（図８：ステップＳ８０６）
一般化階層編集部２３６は、準識別子６３４によって選択されたカラムについて一般化階層を自動生成し、一般化階層データ２４７として書き込む。具体的な手順としては、例えば特許文献１に示す技術を用いることができる。
【００５０】
（図８：ステップＳ８０７〜Ｓ８０８）
ｋ匿名化設定部２３５は制御部２３１に対してｋ匿名化設定完了を通知する（Ｓ８０７）。制御部２３１は受付部２００に対してネットワーク２２０経由でｋ匿名化設定完了を通知する（Ｓ８０８）。
【００５１】
＜一般化階層編集画面７００＞
図９は、一般化階層編集画面７００の画面イメージである。ユーザが図２におけるメニュー３２３を選択すると、受付部２００は画面表示エリア３３０内に一般化階層編集画面７００を表示する。ユーザは一般化階層編集画面７００を用いて、分析に適した匿名化データ２４６が得られるように一般化階層２４７を編集し、一般化階層データ２４７に改めて格納する。
【００５２】
＜ｋ匿名化実行画面８００＞
図１０は、ｋ匿名化実行画面８００の画面イメージである。ユーザが図２におけるメニュー３２４を選択すると、受付部２００は画面表示エリア３３０内にｋ匿名化実行画面８００を表示する。ユーザはｋ匿名化実行画面８００を用いてｋ匿名化を実行し、その結果を匿名化データ２４６として出力する。画面上の各項目については図１１と併せて説明する。
【００５３】
図１１は、ｋ匿名化実行画面８００を介してｋ匿名化を実行する手順を説明するフローチャートである。以下図１１の各ステップについて説明する。
【００５４】
（図１１：ステップＳ１１０１〜Ｓ１１０２）
ユーザは、匿名化メイン画面３００の匿名化メニュー３２０からメニュー３２４を選択する（Ｓ１１０１）。受付部２００は、画面表示エリア３３０にｋ匿名化実行画面８００を表示する（Ｓ１１０２）。
【００５５】
（図１１：ステップＳ１１０３）
ユーザは、処理対象データ名８１０を入力する。処理対象データ名８１０は、匿名化管理データ２４３が保持している「単純匿名化データ名」の中から選択するようにすることもできる。ユーザは出力される匿名化データ２４６のデータ名８２０を入力し、実行ボタン８４０を押す。
【００５６】
（図１１：ステップＳ１１０４）
受付部２００は、ユーザがｋ匿名化実行画面８００上で入力した処理対象データ名８１０と出力データ名８２０と併せて、ｋ匿名化を実行するよう指示する命令を、匿名化装置２３０に対してネットワーク２２０を経由して送信する。制御部２３１は、その命令と各データ名を受信し、ｋ匿名化部２３４に引き渡す。
【００５７】
（図１１：ステップＳ１１０５）
ｋ匿名化部２３４は、匿名化管理データ２４３のレコードの中から、単純匿名化データ名が処理対象データ名８１０と合致するレコードを特定する。ｋ匿名化部２３４は、そのレコードのｋ値（ｋ匿名化閾値）を満たすような一般化階層のレイヤの組み合わせを算出する。
【００５８】
（図１１：ステップＳ１１０６）
ｋ匿名化部２３４は、算出した組み合わせに従って単純匿名化データ２４５の準識別子の属性値を置き換えたレコードを作成し、匿名化データ２４６に書き出す。ｋ匿名化閾値を満たすような一般化階層のレイヤの組み合わせについては、公知の技術を用いて求めることができる。匿名化データ２４６はデータベースのテーブル形式で格納される。ｋ匿名化部２３４は、テーブル名とｋ匿名化実行画面８００上で入力された出力データ名８２０を、それぞれ匿名化管理データ２４３の匿名化テーブル名と匿名化データ名として書き込む。
【００５９】
（図１１：ステップＳ１１０７）
情報損失率算出部２３９は、計算起点データ２４２と匿名化データ２４６それぞれの情報量を求め、情報損失率を計算する。情報量の計算手順については後述する。情報損失率は、下記式によって求める。
【００６０】
【数２】
2015170169.tif 000004
【００６１】
（図１１：ステップＳ１１０８〜Ｓ１１１０）
ｋ匿名化部２３４は、制御部２３１に対して情報損失率を通知する（Ｓ１１０８）。制御部２３１は、ネットワーク２２０を経由して、受付部２００に対して情報損失率を通知する（Ｓ１１０９）。受付部２００は、受信した情報損失率をｋ匿名化実行画面８００の処理結果：情報損失率８３０に表示する（Ｓ１１１０）。
【００６２】
＜匿名化データ出力画面９００＞
図１２は、匿名化データ出力画面９００の画面イメージである。ユーザが図２におけるメニュー３１２を選択すると、受付部２００は画面表示エリア３３０内に匿名化データ出力画面９００を表示する。ユーザは匿名化データ出力画面９００を用いてｋ匿名化が完了した匿名化データ２４６（例えばＣＳＶ形式）を出力する。画面上の各項目については図１３と併せて説明する。
【００６３】
図１３は、匿名化データ出力画面９００を介して匿名化データ２４６を出力する手順を説明するフローチャートである。以下図１３の各ステップについて説明する。
【００６４】
（図１３：ステップＳ１３０１〜Ｓ１３０３）
ユーザは、匿名化メイン画面３００のデータメニュー３１０からメニュー３１２を選択する（Ｓ１３０１）。受付部２００は、画面表示エリア３３０に匿名化データ出力画面９００を表示する（Ｓ１３０２）。ユーザは、出力対象データ名９１０を入力して出力ボタン９２０を押す（Ｓ１３０３）。出力対象データ名９１０は、ｋ匿名化が完了した匿名化データ２４６の名称から選択できるようにしてもよい。
【００６５】
（図１３：ステップＳ１３０４）
受付部２００は、ユーザが匿名化データ出力画面９００上で入力した出力対象データ名９１０と併せて、ネットワーク２２０を経由してデータ出力命令を匿名化装置２３０に対して送信する。制御部２３１は、その命令と出力対象データ名９１０を受信し、匿名化データ出力部２３８に引き渡す。
【００６６】
（図１３：ステップＳ１３０５〜Ｓ１３０７）
匿名化データ出力部２３８は、出力対象データ名９１０によって指定される匿名化データ２４６のレコードを読み出してファイル出力する（Ｓ１３０５）。匿名化データ出力部２３８は、出力したファイルを制御部２３１に返す（Ｓ１３０６）。制御部２３１は、匿名化データ出力部２３８から受信したファイルを、ネットワーク２２０を経由して受付部２００へ転送する（Ｓ１３０７）。
【００６７】
（図１３：ステップＳ１３０８）
受付部２００は、転送されたファイルを受信し、匿名化データ出力画面９００上でファイル保存ダイアログを開く。ユーザはファイル保存ダイアログ上でファイルの保存先を指定する。受付部２００は、指定されたファイル名でファイルを保存する。
【００６８】
＜計算設定画面１０００＞
図１４は、計算設定画面１０００の画面イメージである。計算定義設定部２１０は、受付部２００と同様に例えばＷｅｂアプリケーションとして実装することができる。計算定義設定部２１０は、計算設定画面１０００を提供する。計算設定画面１０００は、情報量を計算する手順を実装したカスタム計算モジュールを登録するために用いる画面である。画面上の各項目については図１７と併せて説明する。
【００６９】
＜計算定義ファイル１１００＞
図１５は、計算定義ファイル１１００の記載例である。計算定義ファイル１１００は、情報量の計算方法の名称とその計算方法を実装したＪａｖａクラス名を記述するテキストファイルである。計算方法の名称は、”ａｎｏｎｙｍｉｚｅ．ｃａｌｃｕｌａｔｉｏｎ．ｃｌａｓｓ．”に、計算設定画面１０００上で入力された計算方法の名称１０１０を連結したものである。計算方法を実装したＪａｖａクラスは、後述するＩＣａｌｃｕｌａｔｏｒインタフェースを実装しており、完全修飾名で記述される。
【００７０】
＜計算クラスの実装規約＞
図１６は、情報量を計算する手順を実装する計算クラスの実装規約を説明するクラス図である。計算クラスは、情報量を計算するメソッドを定義するＩＣａｌｃｕｌａｔｏｒインタフェースを実装する必要がある。このインタフェースはメソッドｃａｌｃｕｌａｔｅを持つ。このメソッドは、テーブル名と列名を引数として受け取り、引数によって指定されたテーブル：列の情報量を計算して倍精度浮動小数点数として返す。ＤｅｆａｕｌｔＣａｌｃｕｌａｔｏｒクラスは、ＩＣａｌｃｕｌａｔｏｒインタフェースを実装した上で既定の計算方法を実装したクラスである。カスタム計算方法を用いることを指定しなかったカラムについては、情報量計算設定部２３７はＤｅｆａｕｌｔＣａｌｃｕｌａｔｏｒクラスを用いて情報量を計算する。
【００７１】
＜計算設定画面１０００の動作＞
図１７は、計算設定画面１０００を用いてカスタム計算クラスを登録する手順を説明するフローチャートである。以下図１７の各ステップについて説明する。
【００７２】
（図１７：ステップＳ１７０１〜Ｓ１７０２）
ユーザは、計算方法名１０１０、計算モジュール１０２０、計算クラス名１０３０を入力する（Ｓ１７０１）。計算方法名１０１０は、カスタム計算方法の識別名であり、情報量計算方法４３４に対応する。計算モジュール１０２０は、計算方法を実装したＪａｖａクラスを含むｊａｒファイルである。計算クラス名１０３０は、そのｊａｒファイル内に含まれる、計算方法を実装したＪａｖａクラスの完全修飾名である。ユーザは各項目を入力し、登録ボタン１０４０を押す（Ｓ１７０２）。
【００７３】
（図１７：ステップＳ１７０３）
計算定義設定部２１０は、ネットワーク２２０を経由して、各項目を匿名化装置２３０へ転送する。情報量計算設定部２３７は、計算モジュール１０２０で指定したファイルを匿名化装置２３０のＪａｖａクラスライブラリに追加する。
【００７４】
（図１７：ステップＳ１７０４）
情報量計算設定部２３７は、計算定義ファイル１１００にエントリを追加する。エントリのキーは、ａｎｏｎｙｍｉｚｅ．ｃａｌｃｕｌａｔｉｏｎ．ｃｌａｓｓ．＜計算方法名１０１０＞である。エントリの値は、計算クラス名１０３０である。
【００７５】
（図１７：ステップＳ１７０５〜Ｓ１７０６）
情報量計算設定部２３７は、制御部２３１に処理完了を通知する（Ｓ１７０５）。制御部２３１は、計算定義設定部２１０に対してネットワーク２２０を経由して処理完了を通知する（Ｓ１７０６）。
【００７６】
＜カスタム計算クラスの実装例＞
以下ではＣｕｓｔｏｍＣａｌｃｕｌａｔｏｒクラスのメソッドｃａｌｃｕｌａｔｅの実装例を説明する。例えば医療分野において、年齢は分析に意味のある項目であるので情報量の計算対象として考えられる。一方で、年齢の数値を四捨五入するような単純匿名化を施すことを考えたとき、単純匿名化後に年齢の数値が取る値の個数は、匿名化前に比べて１０分の１程度になる。この条件下で情報量を計算した場合、情報損失が大きくなりすぎる場合がある。そこで、匿名化前後の年齢誤差を情報量に盛り込んだ情報量を考える。肉体の成長という観点からは、同じ１歳差でも高齢ほど誤差が小さいと考えられるので、年齢の逆数を利用し、以下のような情報量を考えることができる。この式のｌｏｇは２を底とする対数関数であるが、パーソナル情報匿名化装置全体で統一されていれば１を超える任意の実数を底として用いてもよい。
【００７７】
【数３】
2015170169.tif 000005
【００７８】
＜情報量を計算する手順＞
図１８は、情報損失率算出部２３９が各データの情報量を計算する手順を説明するフローチャートである。以下図１８の各ステップについて説明する。
【００７９】
（図１８：ステップＳ１８０１）
情報損失率算出部２３９は、各カラムの情報量の計算方法を匿名化属性管理データ２４４から取得する。例えば、匿名化データ２４６に対する情報量を計算したいときは、該当する匿名化データ２４６のテーブル名をキーにして、匿名化管理データ２４３から計算対象データを格納したテーブル名を取得し、そのテーブル名をキーにして匿名化属性管理データ２４４からレコードを取得する。
【００８０】
（図１８：ステップＳ１８０２〜Ｓ１８０３）
情報損失率算出部２３９は、情報量の値を０で初期化する（Ｓ１８０２）。情報損失率算出部２３９は、匿名化属性管理データ２４４から取得した各カラムについて、ステップＳ１８０４〜Ｓ１８０７を実施する（Ｓ１８０３）。
【００８１】
（図１８：ステップＳ１８０４〜Ｓ１８０５）
情報損失率算出部２３９は、匿名化属性管理データ２４４のレコードからテーブル名、属性名、計算方法、係数を読み出す（Ｓ１８０４）。情報損失率算出部２３９は、ステップＳ１８０４で読み出した計算方法をキーにして、計算定義ファイル１１００から計算方法を実装するクラスの完全修飾名を取得する（Ｓ１８０５）。
【００８２】
（図１８：ステップＳ１８０６）
情報損失率算出部２３９は、ステップＳ１８０５で取得したクラスの完全修飾名を用いて、ＩＣａｌｃｕｌａｔｏｒインタフェースを実装するカスタム計算クラスのインスタンスを取得する。
【００８３】
（図１８：ステップＳ１８０７）
情報損失率算出部２３９は、そのインスタンスに対して、ステップＳ１８０４で取得したテーブル名と属性名を渡し、計算結果を得る。情報損失率算出部２３９は、その結果に対してステップＳ１８０４で取得した係数を乗じて得られる値を、現在の情報量値に加算する。
【００８４】
（図１８：ステップＳ１８０８）
情報損失率算出部２３９は、ステップＳ１８０４からステップＳ１８０７までのループの処理が完了したあと、最終的な情報量の値を返す。
【００８５】
＜テーブル構成＞
図１９は、匿名化管理データ２４３の構成例を示す図である。匿名化対象データ２４１などの各データは、処理の便宜上、関係データベースのテーブル形式で格納することが望ましい。匿名化装置２３０の各機能部は、これらデータを格納する一意のテーブル名を自動的に生成し、そのテーブルに各データを格納する。匿名化管理データ２４３は、どのテーブルにどのデータが格納されているかを管理するために用いられる。
【００８６】
図２０は、匿名化属性管理データ２４４の構成例を示す図である。匿名化属性管理データ２４４は、匿名化対象データ取込画面４００とｋ匿名化設定画面６００で設定したパラメータを管理するテーブルである。
【００８７】
図２１は、匿名化対象データ２４１の構成例を示す図である。ここではテーブル形式で格納した後のデータ形式を例示した。計算起点データ２４２、単純匿名化データ２４５、匿名化データ２４６も同様の構成を有する。これらテーブルの構成は、取り込むデータのカラム数などによって異なる。
【００８８】
図２２は、一般化階層データ２４７の構成例を示す図である。一般化階層データ２４７は、図９で例示した一般化階層の構成を記録するデータである。
【００８９】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【００９０】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００９１】
本実施形態においては、境界５６４を１つのみ追加する例を説明したが、複数の境界５６４を設定できるようにしてもよい。この場合は、例えば単純匿名化実行画面５００上において計算起点データ２４２の対象とするカラムとそうでないカラムを選択できるようにしてもよい。
【符号の説明】
【００９２】
２００：受付部、２１０：計算定義設定部、２３０：匿名化装置、２３１：制御部、２３２：データ取込部、２３３：単純匿名化部、２３４：ｋ匿名化部、２３５：ｋ匿名化設定部、２３６：一般化階層編集部、２３７：情報量計算設定部、２３８：匿名化データ出力部、２３９：情報損失率算出部、２４０：情報管理装置、２４１：匿名化対象データ、２４２：計算起点データ、２４３：匿名化管理データ、２４４：匿名化属性管理データ、２４５：単純匿名化データ、２４６：匿名化データ、２４７：一般化階層データ。
【図１】
2015170169.tif 000006
【図２】
2015170169.tif 000007
【図３】
2015170169.tif 000008
【図４】
2015170169.tif 000009
【図５Ａ】
2015170169.tif 000010
【図５Ｂ】
2015170169.tif 000011
【図５Ｃ】
2015170169.tif 000012
【図５Ｄ】
2015170169.tif 000013
【図５Ｅ】
2015170169.tif 000014
【図６】
2015170169.tif 000015
【図７】
2015170169.tif 000016
【図８】
2015170169.tif 000017
【図９】
2015170169.tif 000018
【図１０】
2015170169.tif 000019
【図１１】
2015170169.tif 000020
【図１２】
2015170169.tif 000021
【図１３】
2015170169.tif 000022
【図１４】
2015170169.tif 000023
【図１５】
2015170169.tif 000024
【図１６】
2015170169.tif 000025
【図１７】
2015170169.tif 000026
【図１８】
2015170169.tif 000027
【図１９】
2015170169.tif 000028
【図２０】
2015170169.tif 000029
【図２１】
2015170169.tif 000030
【図２２】
2015170169.tif 000031