説明

情報出力装置、情報出力方法、及び、情報出力プログラム

【課題】 個人情報の保護技術において、検索条件を何度も指示等する必要が無い技術を提供する。また、個人情報の保護技術において、運用コストを低くすることを可能な技術を提供する。
【解決手段】 各個人情報は、複数の項目と、該項目毎の項目値とを含む。情報処理装置は、複数の個人情報の各々に対し、項目のうち1つ以上を選択する。情報処理装置は、複数の個人情報の各々に対し、選択した項目の項目値と同じ項目値の組み合わせを含む個人情報の件数をカウントする。この結果、件数が閾値以上となる項目の項目値のみを出力装置に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、個人情報の保護に関するものである。
【背景技術】
【0002】
プライバシ保護への社会的要請が高まっている昨今、個人情報を扱う企業の情報システムにおいてはプライバシへの配慮が不可欠となってきた。保護すべき対象やその在り方は社会通念として定まっていないものの、企業(個人情報取扱事業者)にとり、少なくとも2005年4月に全面施行されたいわゆる個人情報保護法(以下、保護法)および関係法令の遵守は必須となっている。保護法は、収集、利用等の個人情報管理で必要とされる対応を義務付けており、さらに具体的な措置を各省庁のガイドラインが規定している。
【0003】
これらのガイドラインが規定する管理措置の一つに個人情報の匿名化がある。例えば厚生労働省は、第三者提供、学会発表、医療事故報告等において、特段の必要がない限りは医療情報(個人情報)を匿名化するよう求めている。また経済産業省は、同意の取得、オプトアウトと並び、個人情報の匿名化を第三者提供時の望ましい措置として挙げている。
【0004】
最も容易な個人情報匿名化の処理は、個人を識別可能な情報を当該個人情報から取り除くこと、識別可能な情報を曖昧にすることである。前者の例としては、氏名や住所を取り除く処理が、後者の例としては住所を都道府県単位に変換する、年齢を10歳刻みに変換する等の処理が該当する。
【0005】
ただし、このような処理を行っても、当該個人に関して他に入手できる情報と照合することで、匿名化された個人情報から特定個人を識別されることがありえる。そのため個人情報の匿名化に際しては、識別可能性等の観点から個人情報の安全性を測ることが望ましい。
【0006】
個人情報の保護に関する技術が特許文献1、特許文献2に記載されている。
【0007】
特許文献1には、個人情報の検索条件に、個人を特定可能な条件が含まれている場合、その検索条件の削除、変更等を行なうことが記載されている。また、個人情報の検索結果に個人を特定可能な情報が含まれている場合、それを取り除くか、検索結果を送信しないことが記載されている。
【0008】
特許文献2には、予め個人情報の項目毎に頻度を設定しておき、個人情報が要求された場合、要求された項目から、その個人の特定可能性を算出し、可能性が閾値より大きい場合、何れかの項目の値を非表示とすることが記載されている。
【0009】
【特許文献1】特開2004-318391号広報
【特許文献2】特開2004-287846号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
特許文献1の技術は、検索結果からの除外対象となる個人特定可能な情報を、予め規則記憶部に登録しておく必要がある。このため、対象となる個人情報データが大量で様々な情報を有する場合や、個人情報を格納するデータベースの更新頻度が高い場合、規則記憶部の構築、維持コストが高くなる。また、特許文献1には、規則記憶部に登録すべき情報を定量的に取捨選択する方法が明確に記載されていない。
【0011】
また、特許文献2に記載の技術は、指定された項目毎に同一のデータ内容をもつ頻度に基づいて、個人特定可能度を算出することが記載されている。また、特許文献2には、複数の項目を有するデータに対しては、頻度の積により個人特定可能度を取得することが記載されている。しかし、特許文献2に記載の技術では、個人特定可能度を、実際の度合いより低く見積もる可能性がある。具体的には、例えば、各々の項目値単体での頻度は大きいが、それらの項目値の組合せとなると、頻度が小さくなる場合もある。このような場合、特許文献2に記載の技術は、本来非表示にすべき情報も表示する可能性が有る。
【0012】
本発明はこのような事情に鑑みてなされたもので、運用コストを低減しつつ、適切に個人情報を保護することを目的とする。
【課題を解決するための手段】
【0013】
本発明は上記の目的を達成するためになされたもので、複数の項目毎の項目値を含む個人情報を複数記憶する個人情報記憶手段と、前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記選択した項目の項目値と同じ項目値を含む個人情報の件数をカウントするカウント手段と、前記件数が閾値以上であるか否か判定する判定手段と、前記判定により、前記件数が閾値以上であると判定された場合に選択された項目の項目値のみを出力装置に出力する結果出力手段と、を有することを特徴とする。
【0014】
また、本発明は、前記項目毎に、異なる項目値を包括する複数の条件を前記出力装置にさらに出力する条件出力手段、をさらに有し、前記カウント手段が、前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記出力した条件のうち入力された条件に従い、前記選択した項目の項目値と同じ項目値に包括される項目値の組み合わせを含む個人情報の件数をカウントし、前記結果出力手段が、前記件数が閾値以上であると判定された場合に選択された項目の項目値を、前記入力された条件で前記出力装置に出力することを特徴とする。
【発明の効果】
【0015】
本発明の技術によれば、運用コストを低減しつつ、適切に個人情報を保護することが可能となる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【0017】
なお、以下で説明する本実施形態は、主に電子的な形態の個人情報を保護する技術である。本実施形態における「個人情報」とは、個人に関する情報であって、氏名、生年月日、その他の情報等により特定の個人を識別することができるものを示す。なお、この個人情報は、他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む。この「個人に関する情報」は、氏名、性別、生年月日等個人を識別する情報に限られず、例えば、個人の身体、財産、職種、肩書き等の属性の各々に対して事実、判断、評価等を表す全ての情報である。これらの情報は、評価情報、公刊物等によって公にされている情報や、映像(画像)、音声による情報も含み、暗号化されているか否かを問わない。また本実施形態において、情報主体とは、個人情報によって識別される特定の個人を意味する。さらに本実施形態において、個人情報の匿名化とは、情報主体を識別できないように当該個人情報を変換する処理をいう。
【0018】
図1を参照し、本実施形態の技術を実現する装置の構成例を説明する。
【0019】
図1において、計算機100は、例えばPC(Personal Computer)やサーバ、ワークステーション等の任意の情報処理装置である。計算機100は、CPU(Central Processing Unit)101、メモリ102、ストレージ103、入力装置104、出力装置105、通信装置106等を有する。CPU101、メモリ102、ストレージ103、入力装置104、出力装置105、通信装置106等はバス107により互いに接続されている。
【0020】
メモリ102は、出力情報121を有する。出力情報121は、後述する個人情報の匿名化した結果を表示するための情報を含む。この情報の詳細は後述する。
【0021】
ストレージ103は、例えば、CD-R(Compact Disc)やDVD-RAM(Digital Versatile Disk-Random Access Memory)、シリコンディスク等の記憶メディア及び当該記憶メディアの駆動装置、HDD(Hard Disk Drive)等である。ストレージ103は、個人情報テーブル131、表示項目情報132、最小同値件数情報133、解析結果情報134、プログラム141等を記憶する。個人情報テーブル131は、複数の情報主体の個人情報を格納する。本実施形態では、各個人情報は、複数の項目毎の項目値から成る。表示項目情報132は、個人情報の項目のうち表示するものを格納する。最小同値件数情報133は、閾値を格納する。解析結果情報134は、後述する動作により取得する解析結果を格納する。なお、これらの情報の詳細は後述する。プログラム141は、後述する機能を実現するためのものである。
【0022】
入力装置104は、例えば、キーボード、マウス、スキャナ、マイク等である。出力装置105は、ディスプレイ、プリンタ、スピーカ等である。通信装置106は、例えば、LAN(Local Area Network)ボード等であり、通信ネットワーク(図示略)と接続する。
【0023】
CPU101は、メモリ102にロードしたプログラム141を実行することにより、解析対象取得部111、個人情報解析部112、出力制御部115等を実現する。
【0024】
解析対象取得部111は、解析対象の項目、閾値等のパラメータを取得する。個人情報解析部112は、探索ツリー管理部113、安全性判定部114を有する。個人情報解析部112内の探索ツリー管理部113、安全性判定部114は、表示項目情報132内の表示すべき項目のうち1つ以上を選択し、個人情報テーブル131に格納された個人情報を参照し、選択した項目の項目値が同じとなる個人情報の件数を取得し、取得した件数と閾値とを比較することにより、表示すべき項目の項目値のうち全てを表示可能か否か判定し、この判定結果を解析結果情報134に出力する。出力制御部115は、解析結果情報134等を参照して出力情報121を生成し、表示可能とされた項目値のみを出力する。
【0025】
次に、上述したテーブル等の詳細な例を説明する。
【0026】
まず、図2を参照し、個人情報テーブル131の一例を説明する。
【0027】
図2において、個人情報テーブル131は、複数のレコードを有する。1つのレコードが1人の情報主体の個人情報を表す。各レコードは項目201、項目202、項目203、項目204、項目205、項目206各々の項目値からなる。
【0028】
項目201は、情報主体の氏名である。項目202は、同レコードの情報主体の性別である。項目203は、同レコードの情報主体の年齢である。項目204は、同レコードの情報主体の郵便番号である。項目205は、同レコードの情報主体の検査結果である。項目206は、同レコードの情報主体の初診日である。
【0029】
なお、個人情報の項目は図2に示すものに限られるわけではなく、任意でよい。また、各情報主体の項目数も図2に示すものに限られるわけではなく、任意でよい。
【0030】
また、上述の個人情報テーブル131内の情報は、予め格納されているものとする。
【0031】
次に、図3を参照し、表示項目情報132の一例を説明する。
【0032】
図3において、表示項目情報132は、項目301、項目302、項目303等を含む。
【0033】
この表示項目情報132内の項目は、個人情報テーブル131内の項目201〜206のうち、開示したいものである。
【0034】
なお、本実施形態の計算機100は、情報主体が特定可能な情報を匿名化するものである。従って、表示項目情報132内に、情報主体を特定可能な項目が含まれる場合、計算機100の機能は特に効果的である。ここで、情報主体を特定可能な項目とは、例えば氏名等直接的に情報主体を特定可能なものに限られるわけではない。例えば、性別、年齢、郵便番号(住所)等でも、一般的な名簿データ等を参照する等により本人を特定できる可能性がある。
【0035】
なお、表示項目情報132内の項目は任意でよく、例えば、検査結果あるいは初診日等を含めても良い。表示項目情報132内の項目は、システムの運用上想定される個人特定の脅威に応じて、システム利用者が判断する。判断基準としては、例えば、匿名化して開示する個人情報を参照しうるデータ利用者が誰なのか、またこれらのデータ利用者自身が知っている事実と検査結果や初診日等を照らし合わせることで、匿名可個人情報が本人を特定可能となることがプライバシ保護上問題になるか等が考えられる。
【0036】
次に、図4を参照し、最小同値件数情報133の一例を説明する。
【0037】
図4において、最小同値件数情報133は、最小同値件数401等を有する。この最小同値件数401は、同じ項目値のレコード数が最小同値件数401以上であれば、開示しても情報主体を特定することが困難であると見なせる値である。図4の例の場合、最小同値件数401「100」であるので、項目値が等しいレコードが「100」件以上であれば、開示しても安全と見なすことを示す。即ち、本実施形態では、許容可能な識別確率を「1/K(最小同値件数)」以下とする。
【0038】
なお、最小同値件数の値は特に限定されるものではなく、任意でよい。
【0039】
次に、図5を参照し、解析結果情報134の一例を説明する。
【0040】
ここで、上述のように、計算機100は、表示項目情報132内の表示すべき項目のうち1つ以上を選択し、個人情報テーブル131に格納された個人情報を参照し、選択した項目の項目値が同じとなる個人情報の件数を取得し、取得した件数と最小同値件数とを比較することによりその項目値を表示可能か否か判定するものである。まず、表示可能な項目値の組合せを探索する模式図を、図5(a)を参照して説明する。
【0041】
図5(a)において、探索ツリー500は、複数のノードを有する。各ノードは、親子関係により項目値の組み合わせを示す。例えば、ノード511は「性別=男性」という項目値の組合せを示す。また、例えば、ノード512は、「性別=男性」及び「年齢=33」という項目値の組合せを示す。また、例えば、ノード513は、「性別=男性」及び「郵便番号=215−0013」という項目値の組合せを示す。また、ノード514は、「性別=男性」、「年齢=33」及び「郵便番号=215−0013」という項目値の組合せを示す。また、ルートノード521は、探索ツリー500の管理用ノードである。
【0042】
以下の説明では、あるノードとルートノードとの間に存在するアークの個数を、そのノードの深さという。ただし、ルートノードの深さは「ゼロ」とする。また、あるノード(以下、対象ノードという)とルートノードとのパス上に存在する1つ以上のノードの各々を、その対象ノードの先祖ノードという。具体的には、例えば、図5(a)の探索ツリー500の場合、ノード512が対象ノードである場合、先祖ノードは、ノード511である。また、対象ノードの先祖ノードのうち、この対象ノードの上で隣接するもの、即ち、対象ノードの深さが「Z」である場合、深さが「Z-1」であるものを、その対象ノードの親ノードという。探索ツリーにおいて、ルートノードを除く全てのノードの各々の親ノードの個数は「1」である。具体的には、例えば、図5(a)の探索ツリー500の場合、ノード512が対象ノードである場合、親ノードは、ノード511である。また、対象ノードの下で隣接するものを、この対象ノードの子ノードという。探索ツリーにおいて、全てのノードの各々の子ノードの個数は「ゼロ以上」である。具体的には、例えば、図5(a)の探索ツリー500の場合、ノード512が対象ノードである場合、子ノードは、ノード514である。また、対象ノードの下のものを、この対象ノードの子孫ノードという。探索ツリーにおいて、全てのノードの各々の子孫ノードの個数は「ゼロ以上」である。具体的には、例えば、図5(a)の探索ツリー500の場合、ノード511が対象ノードである場合、子孫ノードは、ノード512、ノード513、ノード514等である。また、対象ノードと共通の親ノードを持つ他のノードがある場合、このノードを兄弟ノードという。例えば、図5(a)の探索ツリー500の場合、ノード512が対象ノードである場合、兄弟ノードは、ノード513等である。また、子ノードを持たないノードを、リーフノードという。
【0043】
また、以下の説明では、ノードが表す項目値の組合せを有するレコード件数を算出する処理のことをノードの評価処理という。また、ノードの評価処理により算出されたレコード数が最小同値件数以上のノードのことを「安全ノード」、最小同値件数未満のノードのことを「危険ノード」という。また、ノードの評価処理により算出されたレコード数が最小同値件数以上となるときの項目値の組合せを「安全項目値組み」、最小同値件数未満となるときの項目値の組合せを「危険項目値組み」という。
【0044】
次に、図5(b-1)、(b-2)、(c)を参照し、解析結果情報134の一例を説明する。
【0045】
解析結果情報134は、複数のテーブルを有する。このテーブルは、表示項目情報132に格納されている項目の組合せの数ごとに別のテーブルとするものと、この項目の組合せの項目値の各々のうち、安全項目値組みとなった場合の情報を格納するテーブルとを有する。ここでは、各テーブルを区別して説明するために、例えば「解析結果情報テーブル134-a1」「解析結果情報テーブル134-b」等というように、符号を付与して説明する。
【0046】
まず、図5の(b-1)、(b-2)を参照し、表示項目情報132に格納されている項目の組合せの数ごとに別のテーブルとしたものの一例を説明する。
【0047】
図5(b-1)において、解析結果情報テーブル134-a1は、項目の組合せの数が「1」であるテーブルの例である。解析結果情報テーブル134-a1の各レコードは、フィールド531、フィールド532、フィールド533等を有する。フィールド532は、ノードの項目名である。フィールド533は、対応するフィールド532の項目名の項目値である。フィールド531は、対応するフィールド532、フィールド533の各々に示すノードの項目名及びノードの項目値であるレコードの件数を示す。
【0048】
図5(b-2)において、解析結果情報テーブル134-a2は、項目の組合せの数が「2」であるテーブルの例である。解析結果情報テーブル134-a2の各レコードは、フィールド541、フィールド542、フィールド543、フィールド544、フィールド545等を有する。フィールド542は、ノードの項目名である。フィールド543は、対応するフィールド542の項目名の項目値である。フィールド544は、ノードの項目名である。フィールド545は、対応するフィールド544の項目名の項目値である。フィールド541は、対応するフィールド542、フィールド543、フィールド544、フィールド545等の各々に示すノードの項目名及びノードの項目値であるレコードの件数を示す。
【0049】
なお、図5では、解析結果情報テーブル134-a1、解析結果情報テーブル134-a2の一例のみ示しているが、解析結果情報134は、上述の図5(a)に一例を示すような探索ツリーの深さと同じだけ、図5(b-1)、(b-2)に一例を示すようなテーブルを有する。以下、これらのテーブルを総称して説明する場合、解析結果情報テーブル134-aという。
【0050】
次に、図5(c)を参照し、項目の組合せの項目値の各々のうち、安全項目値組みとなった場合の情報を格納するテーブルの一例を説明する。
【0051】
図5(c)において、解析結果情報テーブル134-bの各レコードは、フィールド551、フィールド552、フィールド553等を有する。フィールド551、フィールド552は、上述の解析結果情報テーブル134-aに格納されている項目及び項目値である。フィールド553は、後述する処理により安全ノードを検出した場合のループ番号である。
【0052】
なお、図5(b-1)、(b-2)、(c)の例では、フィールド532、フィールド542、フィールド544、フィールド551等の項目名をそのまま示しているが、実際のプログラム上では、各項目名をゼロ以上の連続する数値で示すものとする。具体的には、例えば、項目名「性別」を「0」、項目名「年齢」を「1」、項目名「郵便番号」を「2」等で示すものとする。また、図5(b-1)、(b-2)、(c)の例では、フィールド533、フィールド543、フィールド545、フィールド552等の項目値をそのまま示しているが、実際のプログラム上では、各項目名の項目値の各々を、ゼロ以上の連続する数値で示すものとする。具体的には、例えば、項目名「性別」の項目値「男性」及び「女性」の各々を、「0」、「1」で示す。また、例えば、項目名「年齢」の項目値「33」、「27」、「25」、「38」等の各々を、「0」、「1」、「2」、「3」等で示す。また、例えば、項目名「郵便番号」の項目値「215-0013」、「244-0817」、「244-0818」等の各々を、「0」、「1」、「2」等で示す。
【0053】
なお、以下では、説明の便宜上、項目及び項目値の各々を、上述のように整数で示したものではなく、元の項目及び項目値で説明する場合もある。しかし、この場合でも、上述のように、計算機100の実行するプログラムとして処理する場合、項目及び項目値の各々は整数で扱われる。以下、項目を示す整数を項目番号、項目値を示す整数を項目値番号ともいう。
【0054】
次に、図6を参照し、出力情報121の一例を説明する。
【0055】
出力情報121は、複数のレコードを含む。各レコードは、匿名化前同値件数601、匿名化後同値件数602、項目603〜605の項目値を含む。ここで、匿名化前同値件数601とは、同じレコードに含まれる項目値と同じ項目値を有する、個人情報テーブル131のレコードの件数である。また、匿名化後同値件数602とは、同じレコードに含まれる項目値のうち1つ以上の項目値を匿名化した場合に、残りの項目値と同じ項目値を有する、個人情報テーブル131のレコードの件数である。なお、図6の例では、項目603〜605の項目値「-」は、項目値が匿名であることを示す。具体的には、例えば、図6の例の場合、レコード611は、項目603が「男性」、項目604が「33」であり、かつ、項目605が「-(匿名)」であるレコードが、個人情報テーブル131に匿名化前同値件数601「50」件あることを示す。また、図6の例の場合、レコード611は、項目605の項目値を除き、項目603、項目604各々の項目値が「男性」、「33」であるレコードが、個人情報テーブル131に匿名化前同値件数601「2400」件あることを示す。
【0056】
次に、図7を参照し、計算機100の動作例を説明する。
【0057】
まず、解析対象取得部111は、表示項目情報132、最小同値件数情報133を取得する(S701)。ここで取得する表示項目情報132、最小同値件数情報133は、予めストレージ103に格納されていてもよく、また、入力装置104、通信装置106等を介して入力されたものでもよい。
【0058】
次に、個人情報解析部112は、個人情報テーブル131を参照し、表示項目情報132に指定された項目からなるレコードデータをメモリ102に読み込む(S702)。具体的には、例えば、個人情報解析部112は、個人情報テーブル131の項目201〜206から、表示項目情報132内の項目301〜303の各々と一致するものを選択し、各レコードのうち選択した項目の項目値を読出し、メモリ102に読み込む。図2、図3に一例を示す個人情報テーブル131、表示項目情報132の例の場合、表示項目情報132は項目301「性別」、項目302「年齢」、項目303「郵便番号」を有する。従って、個人情報解析部112は、個人情報テーブル131から、項目202「性別」、項目203「年齢」、項目204「郵便番号」を選択し、個人情報テーブル131内の各レコードのうち選択した項目202、項目203、項目204の項目値を抽出して、メモリ102に格納する。
【0059】
なお、上述のS702の処理では、上述のように、項目及び項目値の各々を整数に変換してメモリ102に格納する。
【0060】
以下、S702の処理によりメモリ102に格納されるテーブルを特に区別する場合、「個人情報テーブル131´」という。個人情報テーブル131´は、作業用のテーブルである。
【0061】
図2、図3に一例を示す個人情報テーブル131、表示項目情報132の例の場合に、S702の処理により、メモリ102に格納される個人情報テーブル131´の例を、図8に示す。図8において、個人情報テーブル131´は、複数のレコードを有する。各レコードは、項目801、項目802、項目803の項目値を有する。各レコードの項目801、項目802、項目803の項目値は、上述の個人情報テーブル131の各レコードの項目202、項目203、項目204の項目値と同じである。
【0062】
以下、個人情報テーブル131´における「i」番目のレコードの「j」番目の項目値を「D[i][j]」と示す。ただし、「i」は「ゼロ」以上「N-1」以下の整数、「j」は「ゼロ」以上「M-1」以下の整数である。ここで、「N」は、個人情報テーブル131´のレコード件数である。また、「M」は、個人情報テーブル131´(又は表示項目情報132)の項目数である。
【0063】
図7において、探索ツリー管理部113は、解析結果情報134を初期化する(S703)。そのために、探索ツリー管理部113は、解析結果情報134の各テーブルのテーブル構造を初期化する。具体的には、例えば、探索ツリー管理部113は、解析結果情報テーブル134-aを「M」個構築し、これらのテーブルの各レコードを空にしておく。これらのテーブルが、上述の解析結果情報テーブル134-a1、解析結果情報テーブル134-a2等となる
なお、探索ツリー管理部113は、S703以降、探索ツリーのノードを順に評価する。この評価処理の詳細は以下で説明するが、評価の規則を先に示す。
【0064】
規則(1)ルートノードを基点とする。
【0065】
規則(2)あるノードの評価が終了した時点で、処理対象となる子ノードと兄弟ノードとの両方が存在する場合、子ノードから先に評価する。
【0066】
ただし、複数の子ノードが存在する場合、評価優先度は以下の規則に従う。
【0067】
規則(2-1)子ノードの項目名を示す整数(項目番号)が小さいほうを先に評価する。
【0068】
規則(2-2)同じ項目名の子ノードが2個以上存在する場合、それらの子ノードの項目値の各々を示す整数(項目値番号)が小さいほうを先に評価する。
【0069】
また、複数の兄弟ノードが存在する場合、評価優先度は以下の規則に従う。
【0070】
規則(2-3)兄弟ノードの項目名を示す整数(項目番号)が小さいほうを先に評価する。
【0071】
規則(2-4)同じ項目名の兄弟ノードが2個以上存在する場合、それらの兄弟ノードの項目値の各々を示す整数(項目値番号)が小さいほうを先に評価する。
【0072】
上述のS703の処理の後、探索ツリー管理部113は、項目番号を表すループ変数「j」を初期化する(S704)。具体的には、探索ツリー管理部113は、「j=0」とする。
【0073】
安全性判定部114は、「j<M」であるか否か判定する(S705)。この「M」は、上述のように、個人情報テーブル131´の項目数である。
【0074】
S705の判定の結果、「j<M」である場合、安全性判定部114は、カレントノードを設定する(S706)。具体的には、例えば、安全性判定部114は、項目番号を示す変数「j」、この項目の項目値番号「0」を、カレントノードを示す変数「P」に設定する。ここで、例えばC言語の場合、変数「P」は構造体で定義され、「P.FIELD=j」、「P.VALUE=0」とする。この「P.FIELD」には項目番号が格納される。また、「P.VALUE」には項目値番号が格納される。具体的には、例えば、上述のように「j=0」、即ち、項目「性別」である場合、この項目名の項目値は「男性」及び「女性」がある。従って、項目値が「男性」である場合「P.VALUE=0」、項目値が「女性」である場合「P.VALUE=1」が格納される。
【0075】
次に、安全性判定部114は、カレントノードの項目値に対し評価済みか否か判定する(S707)。具体的には、例えば、安全性判定部114は、解析結果情報134のうち、安全項目値組みとなった場合の情報を格納するテーブル、即ち、上述の解析結果情報テーブル134-bを参照し、フィールド553の値が変数「j」未満であり、かつ、フィールド552の値が変数「P.VALUE」の値と一致するものがあるか否か判定する。
【0076】
S707の判定の結果、カレントノードの項目値が処理済である場合、安全性判定部114は、後述するS710の処理に移行する。
【0077】
S707の判定の結果、カレントノードの項目値が処理済でない場合、安全性判定部114は、カレントノードを評価する(S708)。この詳細な説明は後述する。
【0078】
次に、安全性判定部114は、カレントノードの子孫及び兄弟ノードを評価する(S709)。ここで、安全性判定部114は、兄弟ノードの判定において、探索ツリーの深さ「1」の項目名が整数「j」で示されるノードを評価対象とし、また、これらの兄弟ノードの各々の子孫ノードも全て評価する。この詳細な説明は後述する。
【0079】
次に、安全性判定部114は、「j=j+1」として(S710)、上述のS705以降の処理を再度行なう。
【0080】
一方、S705の判定の結果、「j<M」でない場合、出力制御部115は、メモリ102上の解析結果情報134をストレージ103に格納する(S711)。具体的には、解析結果情報テーブル134-aをストレージ103に格納する。次に、出力制御部115は、解析結果情報134、個人情報テーブル131等から出力情報121を作成し、出力装置105、通信装置106等に出力する(S712)。この詳細な説明は後述する。
【0081】
ここで、出力装置105等のディスプレイに、出力情報121内の情報を表示する画面の例を図9に示す。図9において、画面901は、図6に一例を示す出力情報121の場合に表示する例である。
【0082】
図9の画面901に一例を示すように、上記処理により、識別確率が「1/K」より大きくなる項目値は排除され、開示しても差し支えないと判定された項目値のみが表示等される。
【0083】
なお、S712の出力処理を行なうタイミングは任意であり、S701〜S711の処理の後すぐに行なわなくても良い。例えば、所定時間毎や、入力装置104から出力指示が入力された場合等に出力処理しても良い。
【0084】
次に、図10を参照し、上述のS708の、カレントノードを評価する動作例を詳細に説明する。
【0085】
まず、安全性判定部114は、カレントノードを示すループ変数「i」、及び、処理対象ノードの項目名及びその処理対象ノードの項目値であるレコードの件数を示す変数「nr」を初期化する(S1001)。具体的には、安全性判定部114は「i=0」、「nr=0」とする。次に、安全性判定部114は、「i<N」であるか否か判定する(S1002)。この「N」は、上述のように、個人情報テーブル131´のレコード件数である。
【0086】
S1002の判定の結果、「i<N」である場合、安全性判定部114は、個人情報テーブル131´の「i」番目のレコードに、評価対象の項目及び項目値が含まれているか否か判定する(S1003)。そのために、安全性判定部114は、例えば、個人情報テーブル131´の「i」番目のレコードの、項目番号「P.FIELD」の項目の項目値、即ち、「D[i][P.FIELD]」の値が、「P.VALUE」と一致するか否か判定する。
【0087】
上述のS1003の判定の結果、処理対象の項目及び項目値が含まれていない場合、安全性判定部114は、後述するS1005以降の処理を行なう。
【0088】
上述のS1003の判定の結果、処理対象の項目及び項目値が含まれている場合、安全性判定部114は、「nr=nr+1」とし(S1004)、さらに、「i=i+1」とする(S1005)。次に、安全性判定部114は、上述のS1002以降の処理を再度行なう。
【0089】
一方、上述のS1002の判定の結果、「i<N」でない場合、安全性判定部114は、このS708の処理を終了し、S709以降の処理を行なう。
【0090】
次に、図11を参照し、上述のS709の、カレントノードの子孫及び兄弟ノードを評価する動作例の詳細を説明する。
【0091】
安全性判定部114は、処理対象のノードの祖先ノード集合を示す変数「ST」を初期化する(S1101)。ここで、この変数「ST」はスタック変数であり、一般的にFILO(First In Last Out)バッファと呼ばれる領域に格納される。本実施形態では、変数「ST」の各要素は、変数「P」の値が格納される。安全性判定部114は、変数「ST」に格納されている全ての要素を取り出して、スタックを空にする。
【0092】
次に、安全性判定部114は、「nr≧K」であるか否か判定する(S1102)。この「nr」は、上述のS708の処理で取得したカレントノードの値である。
【0093】
S1102の判定の結果、「nr≧K」でない場合、安全性判定部114は、後述するS1110以降の処理を行なう。
【0094】
S1102の判定の結果、「nr≧K」である場合、安全性判定部114は、今回の処理で判定した項目及び項目値と、この項目及び項目値のレコードの件数とを、安全項目値組みの候補として一時的に保存する(S1103)。そのために、安全性判定部114は、例えば、変数「ST」、変数「nr」の各々の値を、変数「ST´」、変数「nr´」の各々の値とする。
【0095】
次に、安全性判定部114は、カレントノードに子ノードが存在するか否か判定する(S1104)。そのために、安全性判定部114は、「P.FIELD<M-1」であるか否か判定する。この判定の結果、「P.FIELD<M-1」でない場合、安全性判定部114は、カレントノードに子ノードが存在すると判定する。また、この判定の結果、「P.FIELD<M-1」でない場合、安全性判定部114は、カレントノードに子ノードが存在しないと判定する。
【0096】
S1104の判定の結果、カレントノードに子ノードが存在しない場合、安全性判定部114は、後述するS1110以降の処理を行なう。
【0097】
S1104の判定の結果、カレントノードに子ノードが存在する場合、安全性判定部114は、変数「ST」に、変数「P」の値を追加する(S1105)。さらに、安全性判定部114は、カレントノードの子ノードを、新たなカレントノードとする(S1106)。そのために、安全性判定部114は、「P.FIELD=P.FIELD+1」、「P.VALUE=0」とする。
【0098】
次に、安全性判定部114は、「nr=0」とし(S1107)、上述のS1106の処理で設定した新たなカレントノードの項目値に対し評価済みか否か判定する(S1108)。この処理は、上述のS707と同じであるので省略する。
【0099】
S1108の判定の結果、カレントノードの項目値に対し評価済みである場合、安全性判定部114は、上述のS1102以降の処理を再度行なう。
【0100】
S1108の判定の結果、カレントノードの項目値に対し評価済みでない場合、安全性判定部114は、カレントノードの項目値を評価する(S1109)。この評価処理は、上述のS1001〜S1105と、S1003を除き同じである。このS1109の処理では、上述のS1003の代わりに、安全性判定部114は、個人情報テーブル131´の「i」番目のレコードの項目及び項目値に、変数「P」及び変数「ST」に格納されている項目及び項目値の各々が全て含まれているか否か判定する。より具体的に説明するために、変数「ST」の「t」番目の要素を変数「ST[t]」で示し、さらに、この要素の項目の項目番号を「ST[t].FIELD」、この要素の項目値の項目値番号を「ST[t].VALUE」で示す。だたし、この「t」は、ゼロ以上、変数「ST」に格納されている要素数未満の値である。安全性判定部114は、上述のように1つずつインクリメントする「i」の各々に対し、「D[i][P.FIELD]=P.VALUE」であるか否か判定する。さらに、安全性判定部114は、1つずつインクリメントする「i」及び「t」の各々に対し、「D[i][ST[t].FIELD]=ST[t].VALUE」であるか否か判定する。この判定の結果、個人情報テーブル131´の「i」番目のレコードが、「D[i][P.FIELD]=P.VALUE」であり、かつ、「D[i][ST[t].FIELD]=ST[t].VALUE」である場合、安全性判定部114は、個人情報テーブル131´の「i」番目のレコードに、評価対象の項目及び項目値が含まれていると判定する。
【0101】
上述のS1109の処理の後、安全性判定部114は、上述のS1102以降の処理を再度行なう。
【0102】
一方、上述のS1102の判定の結果、「nr≧K」でない場合、および、上述のS1104の判定の結果、子ノードが存在しない場合、安全性判定部114は、上述のS1103の処理で一時保存した安全項目値組みの候補を、解析結果情報テーブル134-a、解析結果情報テーブル134-bに格納する(S1110)。そのために、変数「ST´」の有する要素数が「x」個である場合、安全性判定部114は、解析結果情報テーブル134-aのうち「x」番目のものへ新たなレコードを追加し、そのレコードの各フィールドの値として、変数「ST´」の有する各要素の項目及び項目値と、変数「nr´」の値とを格納する。さらに、安全性判定部114は、解析結果情報テーブル134-bに「x」個の新たなレコードを追加し、追加したレコードの各々に、項目及び項目値と、変数「i」とを格納する。なお、このとき、解析結果情報テーブル134-bに、既に、同じ項目及び項目値と変数「i」とを有するレコードが含まれている場合、安全性判定部114は、その値を格納しない。
【0103】
具体的には、例えば、変数「ST´」の要素として、{ST´[0].FIELD=性別、ST´[0].VALUE=男性}と、{ST´[1].FIELD=年齢、ST´[1].VALUE=33}とが格納されており、「nr´=2400」、かつ、「i=1」である場合の例を説明する。この場合、安全性判定部114は、解析結果情報テーブル134-a2に新たなレコードを追加し、追加したレコードのフィールド541、フィールド542、フィールド543、フィールド544、フィールド545の各々の値として、「2400」、「性別」、「男性」、「年齢」、「33」を格納する。さらに、安全性判定部114は、解析結果情報テーブル134-bに2つのレコードを追加し、追加したレコードのうち一方のフィールド551、フィールド552、フィールド553の各々の値として、「性別」、「男性」、「1」を格納し、さらに、他方のレコードのフィールド551、フィールド552、フィールド553の各々の値として、「年齢」、「33」、「1」を格納する。
【0104】
次に、安全性判定部114は、整数「j」で示される項目の、深さ「1」の全ノード、及び、これらのノードの子孫ノードの評価が終了しているか否か判定する(S1111)。そのために、安全性判定部114は、項目値番号「P.VALUE」の値が、項目番号「P.FIELD」の項目値が取り得る最大値に一致するか否か判定する。されに、安全性判定部114は、項目値番号「P.VALUE」の値が、変数「ST」に含まれているか否か判定する。これらの判定の結果、「P.VALUE」の値が「P.FIELD」の項目の項目値が取り得る最大値に一致し、かつ、「P.VALUE」の値が変数「ST」に含まれていない場合、安全性判定部114は、深さ「1」の全ノード、及び、これらのノードの子孫ノードの評価が終了していると判定する。
【0105】
具体的には、例えば、変数「ST」の要素として、{ST[0].FIELD=性別、ST[0].VALUE=男性}と、{ST[1].FIELD=年齢、ST[1].VALUE=33}とが格納されており、「P.FIELD=3(郵便番号)」、「P.VALUE=0(215−0013)」である場合の例を説明する。この場合、項目値番号「P.VALUE=0(215−0013)」の値が、項目番号「P.FIELD=3(郵便番号)」の取り得る値の最大値と一致しない。また、項目値番号「P.VALUE=0(215−0013)」の値が、変数「ST」に含まれていない。従って、安全性判定部114は、深さ「1」の全ノード、及び、これらのノードの子孫ノードの評価が終了していないと判定する。
【0106】
S1111の判定の結果、深さ「1」の全ノード、及び、これらのノードの子孫ノードの評価が終了している場合、安全性判定部114は、S709の処理を終了し、上述のS710以降の処理を行なう。
【0107】
S1111の判定の結果、深さ「1」の全ノード、及び、これらのノードの子孫ノードの評価が終了していない場合、安全性判定部114は、カレントノードの兄弟ノードが存在するか否か判定する(S1112)。そのために、例えば、安全性判定部114は、項目値番号「P.VALUE」の値が、項目番号「P.FIELD」の項目値が取り得る最大値未満である、及び、「P.FIELD>M」である、少なくとも一方であるか否か判定する。この判定の結果、少なくとも一方である場合、安全性判定部114は、カレントノードの兄弟ノードが存在すると判定する。ここで、「M」は、上述のように、個人情報テーブル131´の項目数である。
【0108】
S1112の判定の結果、カレントノードの兄弟ノードが存在する場合、安全性判定部114は、兄弟ノードをカレントノードに設定する(S1113)。そのために、安全性判定部114は、項目値番号「P.VALUE」の値が、項目番号「P.FIELD」の項目値が取り得る最大値未満である場合、「P.VALUE=P.VALUE+1」とする。また、安全性判定部114は、項目値番号「P.VALUE」の値が、項目番号「P.FIELD」の項目値が取り得る最大値未満でない場合、「P.FIELD=P.FIELD+1」、「P.VALUE=0」とする。
【0109】
さらに、安全性判定部114は、変数「nr=0」とする(S1114)。次に、安全性判定部114は、上述のS1113の処理で設定した新たなカレントノードの項目値に対し評価済みか否か判定する(S1115)。この処理は、上述のS1108と同じであるので省略する。
【0110】
S1115の判定の結果、カレントノードの項目値に対し評価済みである場合、安全性判定部114は、上述のS1111以降の処理を再度行なう。
【0111】
S1115の判定の結果、カレントノードの項目値に対し評価済みでない場合、安全性判定部114は、カレントノードの項目値を評価する(S1116)。この評価処理は、上述のS1109と同じであるので省略する。
【0112】
一方、上述のS1112の判定の結果、カレントノードの兄弟ノードが存在しない場合、安全性判定部114は、カレントノードを親ノードに設定する(S1117)。そのために、安全性判定部114は、変数「ST」から、最後に追加した要素を抽出し、抽出した要素を変数「P」の新たな値とする。安全性判定部114は、この処理の後、上述のS1111以降の処理を再度行なう。
【0113】
計算機100の特徴は、上述のように、秘匿すべき項目値を抽出するのではなく、識別確率が低い項目値組を網羅的に調べて、開示可能な項目値を抽出する点である。識別確率が閾値以上の項目値組合せのみを開示し、出力されなかった項目値組合せを非開示とすれば、個人情報テーブル131の全レコードに対して識別確率「1/K」以下を保証可能となる。また、計算機100は、組み合わせる項目数が増えるほど項目値の一致するレコード件数が単調減少する性質を利用し、上述のS1002の処理で、評価不要な項目値組合せを判別している。即ち、組合せる項目の数を1つずつ増やす度に識別確率が閾値以上となるか否か判定し、識別確率が閾値以上とならない時点で、項目の数を増やして評価することを停止する。さらに、計算機100は、上述のS707、S1108、S1115の処理でカレントノードの項目値に対し評価済みか否か判定し、この判定の結果評価済みである場合、それより深いノードの評価を行なわない。この処理は、安全項目値組みの性質と、探索ツリーの構造とを利用したものである。即ち、ある2つの項目値組み「α」、「β」があり、「β」が有する項目値を全て「α」が有するとき、「α」が安全項目値組みならば「β」も安全項目値組みであるという性質を利用している。また、上述の探索ツリーの評価規則(1)、(2)に従えば、「α」、「β」のような項目値組みは、「α」に該当するノードが先に評価されるという性質を利用している。これにより、計算機100は、効率よく処理を実行することが可能になる。
【0114】
なお、上述のS707、S1008、S1115の処理にて、項目、項目値の値を検索キーとして解析結果情報134内のレコードを検索する処理技術は任意でよい。例えば、解析結果情報134を直接検索してもよく、また、項目、項目値のうちの一つ以上の項目で新たにインデックスを構築して検索してもよい。また、項目、項目値でノードを特定するハッシュツリーで、探索ツリー相当のレコード検索用ツリーをメモリ102上に構築し、このツリーを用いて検索してもよい。
【0115】
次に、図12を参照し、上述のS711の、結果を出力する動作例の詳細を説明する。
【0116】
出力制御部115は、ストレージ103内から、表示項目情報132、最小同値件数情報133、解析結果情報テーブル134-a等を読み出す(S1201)。次に、次に、個人情報解析部112は、個人情報テーブル131を参照し、表示項目情報132に指定された項目からなるレコードデータをメモリ102に読み込む(S1202)。この処理は、上述のS702と同じである。これにより、出力制御部115は、メモリ102に個人情報テーブル131´を格納する。
【0117】
さらに、出力制御部115は、ループ変数「i」を初期化する(S1203)。具体的には、出力制御部115は、「i=0」とする。
【0118】
次に、出力制御部115は、「i<N」であるか否か判定する(S1204)。ここで、「N」は、上述のように、個人情報テーブル131´のレコード件数である。
【0119】
S1204の判定の結果、「i<N」である場合、出力制御部115は、個人情報テーブル131´の「i」番目のレコードに対し、項目値の組合せが一致するレコードの件数をカウントし、「配列A[i]」に格納する(S1205)。出力制御部115は、後述する処理で、ここで取得した「配列A[i]」をメモリ102の出力用レコードの匿名化前同値件数601の値として使用する。
【0120】
次に、出力制御部115は、「i=i+1」とし(S1206)、再度、上述のS1204以降の処理を行なう。
【0121】
なお、ここで、レコード検索技術は特に限定するものではない。例えば、上述のように、項目の値を直接比較してもよい。また、検索処理を高速化するために、まず、レコードごとにキー項目の値を連結してハッシュテーブル等のインデクスを作っておき、次に、レコード同士の比較をインデクスで行なっても良い。
【0122】
一方、上述のS1204の判定の結果、「i<N」でない場合、出力制御部115は、個人情報テーブル131´が有する安全項目値組みをチェックするためのループ変数「j」を初期化する(S1207)。具体的には、出力制御部115は「j=M」とする。この「j」は、複数の解析結果情報テーブル134-aのうち、「j」番目のものを示すためのものである。また、「M」は、上述のように、個人情報テーブル131´の項目数である。
【0123】
続いて、出力制御部115は、出力判定用テーブルの値を示す配列「E[][]」と、配列「B[]」との各々を初期化する(S1208)。そのために、出力制御部115は、配列「E[][]」と、配列「B[]」との各々の全ての要素をゼロとする。なお、ここで、出力判定用テーブルの値を示す配列「E[u][v]」は、例えば、個人情報テーブル131´の「u」番目のレコードのうち、整数「v」で示される項目の項目値が、安全項目値組みであるか否かを示すものである。即ち、後述する処理により、個人情報テーブル131´の「u」番目のレコードのうち、整数「v」で示される項目の項目値が安全項目値組みであると判定された場合、「E[u][v]」の値が「ゼロ」から「1」へ変更される。また、配列「B[u]」には、後述する処理により、「j」番目の解析結果情報テーブル134-aにおいて、「u」番目のレコードの項目及び項目値であるレコードの件数「nr」が格納される。
【0124】
次に、出力制御部115は、「j≧0」であるか否か判定する(S1209)。
【0125】
S1209の判定の結果、「j≧0」である場合、出力制御部115は、変数「s」を初期化とする(S1210)。具体的には、出力制御部115は「s=0」とする。なお、この「s」は、「j」番目の解析結果情報テーブル134-aのレコードを示すものである。
【0126】
次に、出力制御部115は、「s<S」であるか否か判定する(S1211)。ここで、この「S」は、「j」番目の解析結果情報テーブル134-aのレコード件数である。
【0127】
S1211の判定の結果、「s<S」でない場合、出力制御部115は、「j=j-1」とし(S1212)、上述のS1209以降の処理を行なう。
【0128】
S1211の判定の結果、「s<S」である場合、出力制御部115は、「i=0」とする(S1213)。
【0129】
次に、出力制御部115は、「i<N」であるか否か判定する(S1214)。ここで、「N」は、上述のように、個人情報テーブル131´のレコード件数である。
【0130】
S1214の判定の結果、「i<N」でない場合、出力制御部115は、「s=s+1」とし(S1215)、上述のS1211以降の処理を行なう。
【0131】
S1214の判定の結果、「i<N」である場合、出力制御部115は、「B[i]=0」であり、かつ、個人情報テーブル131´の「i」番目のレコードに、「j」番目の解析結果情報テーブル134-aの「s」番目のレコードに格納された安全項目値組みが含まれているか否か判定する(S1216)。
【0132】
具体的には、例えば、「i=0」、「j=1」、「s=0」、「B[0]=0」である場合、出力制御部115は、図8に一例を示す個人情報テーブル131´の「0」番目のレコード、即ち、フィールド801、フィールド802、フィールド803の各々の値「男性」、「33」、「215−0013」を抽出する。さらに、出力制御部115は、「1」番目の解析結果情報テーブル134-a、即ち、図5(b−2)に一例を示す解析結果情報テーブル134-a2を参照し、「0」番目のレコード、即ち、フィールド542、フィールド543、フィールド544、フィールド545の各々の値「性別」、「男性」、「年齢」、「33」を抽出する。この場合、図8に一例を示す個人情報テーブル131´の「0」番目のレコードのフィールド801の値「男性」と、図5(b−2)に一例を示す解析結果情報テーブル134-a2の「0」番目のレコードのフィールド543の値「男性」、及び、図8に一例を示す個人情報テーブル131´の「0」番目のレコードのフィールド802の値「33」と、図5(b−2)に一例を示す解析結果情報テーブル134-a2の「0」番目のレコードのフィールド545の値「33」の各々が一致するので、出力制御部115は、該当する安全項目値組みが含まれていると判定する。
【0133】
S1216の判定の結果、個人情報テーブル131´の「i」番目のレコードに、「j」番目の解析結果情報テーブル134-aの「s」番目のレコードに格納された安全項目値組みが含まれていない場合、出力制御部115は「i=i+1」とし(S1217)、上述のS1214以降の処理を再度行なう。
【0134】
S1216の判定の結果、個人情報テーブル131´の「i」番目のレコードに、「j」番目の解析結果情報テーブル134-aの「s」番目のレコードに格納された安全項目値組みが含まれている場合、出力制御部115は、配列「E[][]」、及び、配列「B[]」を更新する(S1218)。例えば、個人情報テーブル131´の「i」番目のレコードと、「j」番目の解析結果情報テーブル134-aの「s」番目のレコードとの両方に、整数「v」で示される項目の項目値のうち一致するものが含まれている場合の例を説明する。この場合、出力制御部115は、「E[i][v]=1」とする。さらに、出力制御部115は、「j」番目の解析結果情報テーブル134-aの、「s」番目のレコードから、このレコードの項目及び項目値であるレコードの件数「nr」を抽出し、「B[i]=nr」とする。
【0135】
具体的には、例えば、「i=0」、「j=1」、「s=0」である場合、上述のように、図8に一例を示す個人情報テーブル131´の「0」番目のレコードのフィールド801の値「男性」と、図5(b−2)に一例を示す解析結果情報テーブル134-a2の「0」番目のレコードのフィールド543の値「男性」、及び、図8に一例を示す個人情報テーブル131´の「0」番目のレコードのフィールド802の値「33」と、図5(b−2)に一例を示す解析結果情報テーブル134-a2の「0」番目のレコードのフィールド545の値「33」の各々が一致する。また、上述のように、項目「性別」を示す整数は「0」であり、項目「年齢」を示す整数は「1」である。この場合、出力制御部115は、「E[0][0]=1」、「E[0][1]=1」とする。また、図5(b-2)に一例を示す解析結果情報テーブル134-a2の「0」番目のレコードのレコード件数「nr」は、フィールド541の値「2400」であるので、出力制御部115は、「B[0]=2400」とする。
【0136】
次に、出力制御部115は、上述のS1210以降の処理を再度行なう。
【0137】
一方、上述のS1209の判定の結果、「j≧0」でない場合、出力制御部115は、「i=0」とする(S1219)。
【0138】
次に、出力制御部115は、「i<0」であるか否か判定する(S1220)。
【0139】
S1220の判定の結果、「i<0」である場合、出力制御部115は、A[i]、B[i]の各々の値を、出力情報121の「i」番目のレコードの、匿名化前同値件数601、匿名化後同値件数602の各々の値として格納する(S1221)。さらに、出力制御部115は、出力判定用テーブル(配列「E[][]」)を参照し、個人情報テーブル131´の「i」番目のレコードの項目値のうち、安全項目値組みに該当するものを出力情報121に追加する(S1222)。そのために、出力制御部115は、「E[i][x]=1」であるか否か判定する。なお、ここで、「x」は、「x=0、1、・・・、・・・(M-1)」の値をとる整数である。この「M」は、上述のように、個人情報テーブル131´の項目数である。「E[i][x]=1」である場合、出力制御部115は、個人情報テーブル131´から「D[i][x]」の値を抽出し、抽出した「D[i][x]」の値を、出力情報121の「i」番目のレコードの項目913〜915のうち、「x」番目の項目の項目値として格納する。また、「E[i][x]=0」である場合、出力制御部115は、出力情報121の「i」番目のレコードの項目913〜915のうち、「x」番目の項目の項目値として空値を格納する。出力制御部115は、この処理を、x=0、1、・・・(M-1)の各々に対し行なう。
【0140】
具体的には、例えば、「i=0」、「x=0」、「E[0][0]=1」等である場合、出力制御部115は、図8に一例を示す個人情報テーブル131´から「D[0][0]=男性」の値を抽出し、抽出した「D[0][0]=男性」の値を、出力情報121の「0」番目のレコードの項目913〜915のうち、「0」番目の項目の項目値、即ち、項目913「性別」の項目値として格納する。
【0141】
次に、出力制御部115は、「i=i+1」する(S1223)。
【0142】
一方、上述のS1220の判定の結果、「i<0」でない場合、出力情報121を、出力装置105、通信装置106を介して他装置(図示略)等に出力する(S1224)。なお、S1224で出力される画面の例は上述の図9と同じである。
<第2の実施形態>
次に、第2の実施形態を説明する。
【0143】
第2の実施形態は、上述の第1の実施形態と比較して、対話的に匿名化して出力する処理のみが異なるものである。以下、第2の実施形態を説明する場合、上述の第1の実施形態と重複する構成に対しては同じ符号を付与して説明を省略する。また、上述の第1の実施形態と重複する動作に対しては簡単に説明する。
【0144】
まず、図13を参照し、第2の実施形態の計算機100の構成例について説明する。
【0145】
図13において、計算機100のストレージ103は、プログラム141の代わりに、プログラム1331を有する。また、ストレージ103は、選択肢情報1321、選択肢情報1322、選択肢情報1323をさらに有する。
【0146】
選択肢情報1321、選択肢情報1322、選択肢情報1323の各々は、項目「性別」、項目「年齢」、項目「郵便番号」の各々の、匿名化の選択肢を有する。選択肢情報1321、選択肢情報1322、選択肢情報1323の詳細は後述する。
【0147】
CPU101は、メモリ102にロードしたプログラム1331を実行することにより、指示受付部1311、匿名処理部1312をさらに実現する。指示受付部1311は、出力する項目毎の匿名化する条件の入力を受け付ける。匿名処理部1312は、入力された匿名化する条件に従い、出力する情報を処理する。
【0148】
次に、図14〜図16を参照し、選択肢情報1321、選択肢情報1322、選択肢情報1323の一例を説明する。
【0149】
まず、図14を参照し、選択肢情報1321の一例を説明する。
【0150】
図14において、選択肢情報1321は、項目「性別」を匿名化する選択肢を2つ以上含む。図14の例では、選択肢として「変換無し」、「全て同じ」を含む。ここで、選択肢「変換無し」とは、個人情報テーブル131の各レコードの項目「性別」の項目値「男性」、「女性」をそのまま用いることを示す。また、選択肢「全て同じ」とは、個人情報テーブル131の各レコードの項目「性別」において、全ての項目値が「不明」を表す値に変換されることを示す。
【0151】
次に、図15を参照し、選択肢情報1322の一例を説明する。
【0152】
図15において、選択肢情報1322は、項目「年齢」を匿名化する選択肢を2つ以上含む。図15の例では、選択肢として「変換無し」、「5歳刻み」、「10歳刻み」、「15歳刻み」、「全て同じ」を含む。ここで、選択肢「変換無し」とは、個人情報テーブル131の各レコードの項目「年齢」の項目値をそのまま用いることを示す。選択肢「5歳刻み」とは、個人情報テーブル131の各レコードの項目「年齢」において、5歳毎に1つの項目値であるものとして用いることを示す。具体的には、例えば、21歳〜25歳の年齢を1つの項目値として用いる。選択肢「10歳刻み」とは、個人情報テーブル131の各レコードの項目「年齢」において、10歳毎に1つの項目値であるものとして用いることを示す。選択肢「15歳刻み」とは、個人情報テーブル131の各レコードの項目「年齢」において、15歳毎に1つの項目値であるものとして用いることを示す。選択肢「全て同じ」とは、個人情報テーブル131の各レコードの項目「年齢」において、全ての項目値が「不明」を表す値に変換されることを示す。
【0153】
次に、図16を参照し、選択肢情報1323の一例を説明する。
【0154】
図16において、選択肢情報1323は、項目「郵便番号」を匿名化する選択肢を2つ以上含む。図16の例では、選択肢として「変換無し」、「上位3桁」、「全て同じ」を含む。ここで、選択肢「変換無し」とは、個人情報テーブル131の各レコードの項目「郵便番号」の項目値をそのまま用いることを示す。選択肢「上位3桁」とは、個人情報テーブル131の各レコードの項目「郵便番号」において、上位3桁が同じ項目値を1つの項目値であるものとして用いることを示す。具体的には、例えば、郵便番号「215−0013」と郵便番号「215−0016」とを1つの項目値として用いる。選択肢「全て同じ」とは、個人情報テーブル131の各レコードの項目「郵便番号」において、全ての項目値が「不明」を表す値に変換されることを示す。
【0155】
なお、項目「性別」、項目「年齢」、項目「郵便番号」の各々の匿名化の選択肢は任意であり、上記に限るものではない。
【0156】
また、本実施形態では、表示する項目が「性別」、「年齢」、「郵便番号」であるため、これらの項目各々に対する選択肢が設定されている。しかし、上述のように、表示する項目は「性別」、「年齢」、「郵便番号」等に限るわけではない。即ち、匿名化の選択肢は、表示する項目に応じて設定するとよい。
【0157】
ここで、動作例を説明する前に、図17を参照し、第2の実施形態において、計算機100が出力装置105等のディスプレイに表示する画面の例を説明する。
【0158】
上述のように、第2の実施形態の計算機100は、対話的に匿名化して出力する処理を行なう。対話的に匿名化するための画面例を図17に示す。図17(a)において、画面1701は、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等を含む。これらのプルダウンメニューの各々は、項目1711、項目1712、項目1713の各々の匿名化の選択肢を選択するためのものである。項目1711、項目1712、項目1713各々の項目は、表示項目情報132に含まれているものと同じである。ユーザは、入力装置104等を用いて、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723各々に対し、匿名化の選択肢を選択する。
【0159】
また、画面1701は、サブ画面1731、サブ画面1732等を含む。サブ画面1731には、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等で項目毎の匿名化の選択肢を選択される前の、同値レコード数の分布を示すヒストグラムが表示されるものである。サブ画面1732には、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等のうち少なくとも1つで匿名化の選択肢を選択された場合の、同値レコード数の分布を示すヒストグラムが表示されるものである。サブ画面1731、サブ画面1732の各々に表示されるヒストグラムは、横軸が同値レコード数、縦軸が同値レコード数の件数を示す。同値レコード数とは、上述のように、個人情報の項目のうち最小同値件数情報133内の項目の項目値の組合せが同じものの数を示す。同値レコード数の件数とは、個人情報の項目のうち最小同値件数情報133内の項目の項目値の組合せが異なるものであっても、同値レコード数の同じである組合せの件数である。具体的には、例えば、図6に一例を示す出力情報121の場合、項目913「性別」、項目914「年齢」、項目915「郵便番号」の各々の項目値が「男性」、「33」、「-」であるレコードの同値レコード数は、同じレコードの項目911「匿名化前同値件数」の項目値「50」である。また、項目913「性別」、項目914「年齢」、項目915「郵便番号」の各々の項目値が「女性」、「25」、「-」であるレコードの同値レコード数は、同じレコードの項目911「匿名化前同値件数」の項目値「50」である。この、項目911「匿名化前同値件数」の項目値が、サブ画面1731、サブ画面1732の各々に表示されるヒストグラムの横軸の同値レコード数の値となる。また、項目911「匿名化前同値件数」の項目値が同じ「50」であるレコードの件数が、サブ画面1731、サブ画面1732の各々に表示されるヒストグラムの縦軸の同値レコード数の件数の値となる。
【0160】
なお、サブ画面1731、サブ画面1732の各々に表示されるヒストグラムの横軸において、匿名化の判定基準となる閾値の値の表示形態を変更してもよい。この閾値は、ここでは、最小同値件数情報133に格納されている最小同値件数401である。この表示形態の変更は任意でよく、例えば、数値の色を変える、あるいは閾値を境界としてヒストグラムの色を変える等でもよい。図17の例では、閾値「100」を「○」で囲む場合の例を示す。
【0161】
また、図17(a)の画面1701は、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等で項目毎の匿名化の選択肢を選択しない場合の例なので、サブ画面1732には、サブ画面1731と同じヒストグラムが表示されている。
【0162】
図17(b)の画面1741は、上述の画面1701において、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等で項目毎の匿名化の選択肢を選択した場合の例である。図17(b)の画面1741の場合、プルダウンメニュー1721で選択せず、プルダウンメニュー1722で「10歳刻み」を選択し、プルダウンメニュー1723を「上位3桁」を選択した場合の例である。
【0163】
プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723等で項目毎の匿名化の選択肢が選択された場合、計算機100は、後述する処理により、選択された選択肢に従い、サブ画面1732に表示されるヒストグラムを表示するための処理を再度行なう。これにより、サブ画面1732に表示されるヒストグラムが変更等される。図17(b)の例では、図17(a)の場合と比較して、サブ画面1732のヒストグラムの分布が左側に移動している。
【0164】
上述したインタフェースにより、同値レコード数の最小値を満たすように、利用者が匿名化方法を調整できることに第2の実施形態の特長がある。
【0165】
図18を参照し、動作例を説明する。なお、第2の実施形態の動作例は、上述した第1の実施形態の動作をS711まで行なった後に一旦終了し、以下の処理を行なう点のみで異なるので、この出力処理のみ説明する。その他の処理は、上述の第1の実施形態と同じである。
【0166】
なお、ここでは、以下の動作を起動するタイミングは、上述の図9に一例を示す結果を表示した後に、取得する情報の不足を判断したユーザが、匿名化の選択を指示した場合であるものとする。しかし、以下の動作を起動するタイミングは任意でよく、例えば、ユーザから指示が入力された場合や所定時間等の任意のタイミング等でもよい。
【0167】
図18において、出力制御部115は、出力情報121を生成する(S1801)。この処理は、上述のS1201〜S1224と同じである。なお、既に出力情報121が生成されている場合は、この処理は行なわなくても良い。
【0168】
次に、匿名処理部1312は、以下の処理で用いる「配列A[]」、「配列B[]」の各々に、出力情報121のレコード毎の匿名化前同値件数、匿名化後同値件数の値を格納する。さらに、匿名処理部1312は、出力情報121を参照し、表示項目情報132に指定された項目からなるレコードデータをメモリ102に読み込む(S1802)。そのために、匿名処理部1312は、例えば、出力情報121内の各レコードの匿名化前同値件数601の値を「配列A[]」に格納する。さらに、匿名処理部1312は、出力情報121の各レコードの匿名化後同値件数602の値を「配列B[]」に格納する。なお、「配列A」、「配列B」の各々のサイズは「N」である。この「N」は、上述のように、出力情報121のレコード件数である。また、匿名処理部1312は、出力情報121から、各レコードの項目603、項目604、項目605の項目値を読出し、メモリ102に読み込む。図6に一例を示す出力情報121の例の場合、匿名処理部1312は、出力情報121から、各レコードの項目603「年齢」、項目604「年齢」、項目605「郵便番号」各々の項目値を抽出して、メモリ102に格納する。
【0169】
以下、S1802の処理によりメモリ102に格納される情報を特に区別する場合、「出力情報121´」という。
【0170】
S1802の処理により、図6に一例を示す出力情報121の例の場合にメモリ102に格納される出力情報121´の例を、図19に示す。図19において、出力情報121´は複数のレコードを有する。各レコードは、項目1901、項目1902、項目1903の項目値を有する。各レコードの項目1901、項目1902、項目1903の項目値は、上述の出力情報121の各レコードの項目603、項目604、項目605の項目値と同じである。
【0171】
なお、以下では、出力情報121´の項目を、匿名化対象項目と呼ぶ。また、出力情報121´の各要素は空値を表現できるデータ型である。具体的には、例えば、C言語の構造体ならば、この要素は、データ値を表す変数領域と、データ値変数領域が空値か否かを表すブーリアン変数領域からなる。
【0172】
次に、匿名処理部1312は、「配列F[]」の全要素を初期化する(S1803)。そのために、匿名処理部1312は、「配列F[]」の全要素を偽値に初期化する。この「配列F[]」のサイズは「M」である。なお、この「M」は、上述のように、出力情報121´の項目数である。
【0173】
なお、「配列F[]」の「j番目」の要素が偽値の場合は、出力情報121´のj番目の匿名化対象項目が匿名化不要であることを示し、また、真値の場合は、匿名化が必要であることを示す。
【0174】
次に、匿名処理部1312はレコードを示す変数「i」を初期化する(S1804)。そのために、匿名処理部1312は、「i=0」とする。
【0175】
匿名処理部1312は、「A[i]<K」であるか否か判定する(S1805)。ここで「A[i]」は、「配列A[]」の「i番目」の要素である。また、「K」は、最小同値件数情報133の最小同値件数「K」の値である。即ち、この処理で、匿名処理部1312は、出力情報121´の「i番目」のレコードを匿名化しない場合、その識別確率が「1/K」より大きいか否か判定する。
【0176】
S1805の判定の結果、「A[i]<K」でない場合、匿名処理部1312は、後述するS1807以降の処理を行なう。
【0177】
S1805の判定の結果、「A[i]<K」である場合、匿名処理部1312は、出力情報121´の「i番目」のレコードに、値が空値になっているものがあるか否か判定する。この判定の結果、空値のものがある場合、匿名処理部1312は、出力情報121´の空値になっている項目「j」に対応する「F[j]」を真値に設定する(S1806)。具体的には、例えば、「i=0」の場合、図19に一例を示す出力情報121´で「i番目」のレコードで空値になっているものは、項目1903「郵便番号」である。本実施形態では、上述のように、項目「郵便番号」を数字「2」で示すので、「j=2」となる。従って、匿名処理部1312は、「F[2]」を真値にする。
【0178】
次に、匿名処理部1312は、「i=i+1」とする(S1807)。
【0179】
次に、匿名処理部1312は「i<N」であるか否か判定する(S1808)。この「N」は、上述のように、出力情報121のレコード件数である。
【0180】
S1808の判定の結果、「i<N」でない場合、匿名処理部1312は、上述のS1805以降の処理を再度行なう。
【0181】
S1808の判定の結果、「i<N」である場合、匿名処理部1312は、ストレージ103から選択肢情報1321、選択肢情報1322、選択肢情報1323等を読出し、メモリ102に格納する(S1809)。
【0182】
指示受付部1311は、項目毎の匿名化の選択肢を表示する(S1810)。そのために、指示受付部1311は、例えば、まず、「配列F[]」の全要素を参照し、各要素のうち、真値である要素の項目を特定する。次に、指示受付部1311は、表示項目情報1321、表示項目情報1322、表示項目情報1323のうち、特定した項目の匿名化の選択肢を含むものを選択する。指示受付部1311は、特定した項目と、選択したに匿名化の選択肢とを表示する情報を生成し、出力装置105のディスプレイ等に出力する。
【0183】
具体的には、例えば、「配列F[]」の全要素として、「F[0]」、「F[1]」、「F[2]」が含まれている場合の例を説明する。上述のように、数字「ゼロ」の項目番号は「性別」を、数字「1」の項目番号は「年齢」を、数字「2」の項目番号は「郵便番号」を示す場合、指示受付部1311は、項目「性別」、項目「年齢」、項目「郵便番号」が真値である項目とする。次に、指示受付部1311は、ストレージ103から、項目「性別」の匿名化の選択肢を含む選択肢情報1321、項目「年齢」の匿名化の選択肢を含む選択肢情報1322、項目「郵便番号」の匿名化の選択肢を含む選択肢情報1323を読出し、メモリ103に格納する。指示受付部1311は、所定のフォーマットを用いる等して、項目「性別」、項目「年齢」、項目「郵便番号」と、選択肢情報1321、選択肢情報1322、選択肢情報1323各々に格納されている匿名化の選択肢とを表示するための情報を生成する。ここで、指示受付部1311は、例えば、選択肢情報1321、選択肢情報1322、選択肢情報1323各々に格納されている匿名化の選択肢をプルダウンメニューとして表示させるようにする。この処理により、上述の図17に示す項目1711、項目1712、項目1713、プルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723が表示される。
【0184】
次に、指示受付部1311は、匿名化の選択肢を選択する前のヒストグラムを表示する(S1811)。そのために、指示受付部1311は、「配列A[]」の値を集計して、同値レコード数、及び、同値レコード数の件数を取得する。指示受付部1311は、取得した同値レコード数を横軸、同値レコード数の件数を縦軸としてヒストグラムを生成し、出力装置105のディスプレイ等に出力する。この処理により、上述の図17に示すサブ画面1731が表示される。
【0185】
次に、指示受付部1311は、匿名化の選択肢を選択した後のヒストグラムを表示する(S1812)。そのために、指示受付部1311は、「配列B[]」の値を集計して、同値レコード数、及び、同値レコード数の件数を取得する。指示受付部1311は、取得した同値レコード数を横軸、同値レコード数の件数を縦軸としてヒストグラムを生成し、出力装置105のディスプレイ等に出力する。この処理により、上述の図17に示すサブ画面1732が表示される。
【0186】
なお、S1812の処理において、入力装置104等から、匿名化の選択肢が入力されていない場合、指示受付部1311は、匿名化の選択肢を選択した後のヒストグラムの代わりに、匿名化の選択肢を選択する前のヒストグラムを表示するものとする。この、匿名化の選択肢を選択する前のヒストグラムを表示する動作例は、上述のS1811と同じである。匿名化の選択肢が入力されているか否か判定する処理は任意でよく、例えば、図17に一例を示すプルダウンメニュー1721、プルダウンメニュー1722、プルダウンメニュー1723のうち少なくとも1つが操作等された場合に変更するフラグを参照等することにより判定してもよい。
【0187】
指示受付部1311は、再描画が指示されたか否か判定する(S1813)。この再描画指示は任意でよく、例えば、図17に一例を示す画面の「決定」ボタンが押下されたか否か等により判定してもよい。
【0188】
S1813の判定の結果、再描画が指示されている場合、匿名処理部1312は、再描画の指示と共に受け付けた匿名化の選択肢により定まる条件に従い、「配列B[]」に格納されている値を更新する(S1814)。そのために、匿名処理部1312は、例えば、個人情報テーブル131を参照し、項目毎に、再描画の指示と共に受け付けた匿名化の選択肢により定まる条件に従い、各レコードの同値レコード数をカウントし、この値を「配列B[]」に格納する。匿名処理部1312が同値レコード数をカウントする処理そのものは上述と同じであり、このとき、再描画の指示と共に受け付けた匿名化の選択肢により定まる条件に従ってカウントする点のみが異なる。具体的には、例えば、図17に一例を示すプルダウンメニュー1722で「10歳刻み」という匿名化の選択肢が指示されている場合、匿名処理部1312は、個人情報テーブル131の項目203「年齢」の項目値が「21〜30」の範囲内である場合、同じ項目値としてカウントする、というように処理する。また、カウントの際、出力情報121で空値になっている項目値のみを対象として、匿名化の選択肢に従って個人情報テーブル131に対する同値判定を行い、出力情報121で空値になっていない項目値は匿名化の選択肢を用いない同値判定を行なう。
【0189】
S1814の処理の後、指示受付部1311は、上述のS1812以降の処理を再度行なう。
【0190】
一方、S1813の判定の結果、再描画が指示されていない場合、指示受付部1311は、出力が指示されたか否か判定する(S1815)。この終了指示は任意でよく、例えば、図17に一例を示す画面の「表示」ボタンが押下されたか否か等により判定してもよい。
【0191】
S1815の判定の結果、出力が指示されている場合、指示受付部1311は、「配列B[]」に格納されている値の各々に対し、「配列B[i]≧K」であるか否か判定する(S1816)。この「K」は、上述のように、最小同値件数情報133内に含まれる最小同値件数401の値である。
【0192】
S1815の判定の結果、「配列B[]」に格納されている値のうち少なくとも1つが「配列B[i]≧K」でない場合、指示受付部1311は、上述のS1812以降の処理を再度行なう。なお、このとき、指示受付部1311は、同値レコード数の最小値が「K」以下となるように項目毎の匿名化の選択肢を指定することを要求する情報を、出力装置105、通信装置106等に出力しても良い。
【0193】
上述のS1816の判定の結果、「配列B[]」に格納されている値の全てが「配列B[i]≧K」である場合、出力制御部115は、上述のS1814と同様に、個人情報テーブル131に対する同値判定を行なうと共に、再描画の指示と共に受け付けた項目毎の匿名化の選択肢により定まる条件に従い、個人情報テーブル131´を変換し、変換した情報に従い出力情報121を更新し、出力装置105、通信装置106等に出力する(S1817)。そのために、出力制御部115は、まず、「配列B[]」の値の各々を、出力情報121の各レコードの匿名化後同値件数602の値として格納する。さらに、出力制御部115は、個人情報テーブル131´の各レコードの項目値の各々を、再描画の指示と共に受け付けた項目毎の匿名化の選択肢により定まる条件に従って変換し、変換した項目値の各々を出力情報121の各レコードの項目603〜605として格納する。出力制御部115は、更新した出力情報121を出力装置105、通信装置106等に出力する。
【0194】
具体的には、例えば、図17に一例を示すプルダウンメニュー1722で「10歳刻み」、プルダウンメニュー1723で「上位3桁」という匿名化の選択肢が指示されている場合の例を説明する。この場合、出力制御部115は、「配列B[]」の値の各々を、出力情報121の各レコードの匿名化後同値件数602の値として格納する。また、出力制御部115は、個人情報テーブル131´の項目801〜803のうち、匿名化の選択肢が指示されている項目「年齢」、「郵便番号」の各々の項目値を、指定された選択肢により定まる条件に従い変換する。即ち、出力制御部115は、個人情報テーブル131´の、各レコードの項目802の項目値を、「10歳刻み」の値とする。具体的には、例えば、出力制御部115は、個人情報テーブル131´の項目802の項目値が「33」である場合、「31〜40」というように変換する。また、出力制御部115は、個人情報テーブル131´の、各レコードの項目803の項目値を、「上位3桁」の値とする。具体的には、例えば、出力制御部115は、個人情報テーブル131´の項目803の項目値が「215−0013」である場合、「215-****」というように変換する。出力制御部115は、変換したレコード毎の項目値の各々を、出力情報121の各レコードの項目604、項目605の各々として格納する。
【0195】
ここで、図20を参照し、図17に一例を示すプルダウンメニュー1722で「10歳刻み」、プルダウンメニュー1723で「上位3桁」という匿名化の選択肢が指示されている場合に更新した出力情報121を、出力装置105のディスプレイ等に表示する場合の画面例を説明する。
【0196】
図20において、画面2001は、項目「年齢」の匿名化の選択肢が「10歳刻み」、項目「郵便番号」の匿名化の選択肢が「上位3桁」である場合に表示される画面例である。画面2001に一例を示すように、各情報主体の項目値のうち、項目「年齢」、「郵便番号」であるものが、「10歳刻み」、「上位3桁」というように、複数の異なる項目値を含むように表示される。このように、識別確率が閾値以上となる項目値を全く表示しないのではなく、複数の項目値が1つの項目値となるように表示することで、識別確率のレベルを保ったまま、情報を提供することが可能となる。
【0197】
図18において、S1817の処理の後、指示受付部1311は、上述のS1812以降の処理を再度行なう。
【0198】
一方、S1815の判定の結果、出力が指示されていない場合、指示受付部1311は、終了が指示されたか否か判定する(S1818)。この終了指示は任意でよく、例えば、図17に一例を示す画面の「終了」ボタンが押下されたか否か等により判定してもよい。
【0199】
S1818の判定の結果、終了が指示されている場合、指示受付部1311は、処理を終了する。
【0200】
S1818の判定の結果、終了が指示されていない場合、指示受付部1311は、上述のS1813の処理に戻る。
【0201】
なお、上述の処理において、S1806で配列「F[j]」が全て真値に設定された場合、S1805〜S1808で構成されるループを脱出しても、S1809以降で得られる結果は同じとなる。
【0202】
このように第2の実施形態では、匿名化が必要な項目を判別して表示すること、同値レコード数が少ない項目値組みのみを対象として匿名化を実行すること、匿名化の結果を匿名化前と比較して判断できるとことが可能となる。
【0203】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0204】
例えば、上述の第2の実施形態では、同値レコード件数が最小同値件数「K」以下となるまで、匿名化の選択肢を選択させるものとしたが、これに限られるわけではなく、同値レコード件数が最小同値件数「K」以下となる項目値を表示しなければよい。そのために、例えば、上述の第1の実施形態のように、同値レコード件数が最小同値件数「K」以下となる項目値を表示しなくてもよい。その場合、例えば、出力制御部115は、出力情報121の各レコードのうち、「配列B[i]≧K」である値に該当するものに対しては上述のように更新せず、「配列B[i]≧K」でない値に該当するものに対しては上述のように更新するとよい。
【図面の簡単な説明】
【0205】
【図1】第1の実施形態において、計算機の構成例を示す図である。
【図2】同実施形態において、個人情報テーブルの一例を示す図である。
【図3】同実施形態において、表示項目情報の一例を示す図である。
【図4】同実施形態において、最小同値件数情報の一例を示す図である。
【図5】同実施形態において、解析結果情報の一例を示す図である。
【図6】同実施形態において、出力情報の一例を示す図である。
【図7】同実施形態において、動作例を示す図である。
【図8】同実施形態において、作業用の個人情報テーブルの一例を示す図である。
【図9】同実施形態において、画面例を示す図である。
【図10】同実施形態において、動作例を示す図である。
【図11】同実施形態において、動作例を示す図である。
【図12】同実施形態において、動作例を示す図である。
【図13】第2の実施形態において、計算機の構成例を示す図である。
【図14】同実施形態において、選択肢情報の一例を示す図である。
【図15】同実施形態において、選択肢情報の一例を示す図である。
【図16】同実施形態において、選択肢情報の一例を示す図である。
【図17】同実施形態において、画面例を示す図である。
【図18】同実施形態において、動作例を示す図である。
【図19】同実施形態において、作業用の出力情報の一例を示す図である。
【図20】同実施形態において、画面例を示す図である。
【符号の説明】
【0206】
1:計算機、101:CPU、111:解析対象取得部、112:個人情報解析部、113:探索ツリー管理部、114:安全性判定部、115:出力制御部、102:メモリ、121:出力情報、103:ストレージ、131:個人情報テーブル、132:表示項目情報、133:最小同値件数情報、134:解析結果情報テーブル、141:プログラム、104:入力装置、105:出力装置、106:通信装置、1311:指示受付部、1312:匿名処理部、1321:選択肢情報、1322:選択肢情報、1323:選択肢情報、1331:プログラム

【特許請求の範囲】
【請求項1】
複数の項目毎の項目値を含む個人情報を複数記憶する個人情報記憶手段と、
前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記選択した項目の項目値と同じ項目値を含む個人情報の件数をカウントするカウント手段と、
前記件数が閾値以上であるか否か判定する判定手段と、
前記判定により、前記件数が閾値以上であると判定された場合に選択された項目の項目値のみを出力装置に出力する結果出力手段と、を有すること
を特徴とする情報出力装置。
【請求項2】
請求項1記載の情報出力装置であって、
前記項目毎に、異なる項目値を包括する複数の条件を前記出力装置にさらに出力する条件出力手段、をさらに有し、
前記カウント手段が、前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記出力した条件のうち入力された条件に従い、前記選択した項目の項目値と同じ項目値に包括される項目値の組み合わせを含む個人情報の件数をカウントし、
前記結果出力手段が、前記件数が閾値以上であると判定された場合に選択された項目の項目値を、前記入力された条件で前記出力装置に出力すること
を特徴とする情報出力装置。
【請求項3】
請求項2記載の情報出力装置であって、
同じ項目値の組み合わせを含む個人情報、及び、前記同じ項目値に包括される項目値の組み合わせを含む個人情報各々の頻度を取得し、該取得した頻度の頻度分布を前記出力装置にさらに出力する頻度分布出力手段、をさらに有すること
を特徴とする情報出力装置。
【請求項4】
請求項3記載の情報出力装置であって、
前記頻度分布出力手段が、前記出力した条件のうち入力された条件に従う前の、同じ項目値の組み合わせを含む個人情報の頻度の頻度分布と、前記出力した条件のうち入力された条件に従い、同じ項目値に包括される項目値の組み合わせを含む個人情報の頻度の頻度分布との両方を、前記出力装置に出力すること
を特徴とする情報出力装置。
【請求項5】
請求項1記載の情報出力装置であって、
前記カウント手段が、前記複数の項目のうち1つの項目を選択し、該選択した項目の項目値と同じ項目値を有する個人情報の件数をカウントし、
前記判定手段が、前記カウント手段による個人情報の件数のカウントの度に、該件数が閾値以上であるか否か判定し、
前記カウント手段が、前記判定手段により件数が閾値以上であると判定された場合、前記複数の項目のうち1つずつ項目を増やしながら異なる項目の組合せを選択し、該選択の度に、該選択した項目の項目値と同じ項目値を有する個人情報の件数をカウントし、前記判定手段により件数が閾値以上でないと判定された場合、前記項目の選択及び個人情報の件数のカウントを停止し、該停止より1つ前に選択した項目の項目値を前記出力装置に出力させること
を特徴とする情報出力装置。
【請求項6】
情報出力装置の出力装置に個人情報を出力する情報出力方法であって、
複数の項目毎の項目値を含む個人情報を複数記憶する個人情報記憶手段、を有する前記情報出力装置に、
前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記選択した項目の項目値と同じ項目値を含む個人情報の件数をカウントするカウントステップと、
前記件数が閾値以上であるか否か判定する判定ステップと、
前記判定により、前記件数が閾値以上であると判定された場合に選択された項目の項目値のみを前記出力装置に出力する結果出力ステップと、を実行させること
を特徴とする情報出力方法。
【請求項7】
情報出力装置の出力装置に個人情報を出力させる情報出力プログラムであって、
複数の項目毎の項目値を含む個人情報を複数記憶する個人情報記憶手段、を有する前記情報出力装置に、
前記複数の個人情報の各々に対し、前記複数の項目のうち1つ以上を選択し、前記選択した項目の項目値と同じ項目値を含む個人情報の件数をカウントするカウントステップと、
前記件数が閾値以上であるか否か判定する判定ステップと、
前記判定により、前記件数が閾値以上であると判定された場合に選択された項目の項目値のみを前記出力装置に出力する結果出力ステップと、を実行させること
を特徴とする情報出力プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2008−217425(P2008−217425A)
【公開日】平成20年9月18日(2008.9.18)
【国際特許分類】
【出願番号】特願2007−54024(P2007−54024)
【出願日】平成19年3月5日(2007.3.5)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】