(57)【特許請求の範囲】
【請求項１】
各々が文字列を含む複数の文章データを記憶する記憶装置と、
前記文章データの各々を分類条件に従って複数種に分類する名寄せ手段と、
前記分類により同一種に分類された１つ以上の文章データ（以下、名寄せデータ）の各々に含まれる単語を複数抽出する形態素解析手段と、
前記抽出した単語の各々のうち１つ以上を含む単語組合せの各々のうち、該単語組合せを構成する単語の全てが含まれている前記名寄せデータの数が閾値以上であるものを抽出する評価手段と、
前記文章データの各々に含まれる文字列に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記抽出した単語組合せを構成する単語と一致しないものを匿名化する匿名化手段と、
前記匿名化した単語を含む文章データを出力装置に出力する出力処理手段と、
を有することを特徴とする文字列匿名化装置。
【請求項２】
請求項１記載の文字列匿名化装置であって、
前記評価手段が、前記抽出した単語のうち１つずつ単語を増やしながら異なる単語の組合せを選択し、該選択の度に、該選択した単語組合せを構成する単語の全てが含まれている前記名寄せデータの件数をカウントし、該件数が前記閾値以上でないと判定された場合、前記単語の選択及び前記名寄せデータの件数のカウントを停止し、
前記匿名化手段が、前記文章データの各々に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記停止より前に選択した全ての単語組合せの各々を構成する単語と一致しないものを匿名化すること、
を特徴とする文字列匿名化装置。
【請求項３】
請求項２記載の文字列匿名化装置であって、
前記評価手段が、前記停止より前に選択した全ての単語組合せの各々を評価結果情報として前記記憶装置に記憶させ、選択した単語の組合せと一致するものが前記評価結果情報に含まれている場合、他の単語の組合せを選択すること
を特徴とする文字列匿名化装置
【請求項４】
請求項２記載の文字列匿名化装置であって、
前記名寄せデータ毎に、前記抽出した単語の各々が含まれている件数を含む索引情報を取得する索引構築手段、をさらに有し、
前記評価手段が、前記索引情報内の単語のうち、該単語が１つ以上含まれている前記名寄せデータの件数が前記閾値以上であるものを選択し、該選択した単語のうち１つずつ単語を増やしながら異なる単語の組合せを選択し、該選択の度に、該選択した単語組合せを構成する単語の全てが含まれている前記名寄せデータの件数をカウントし、該件数が前記閾値以上でないと判定された場合、前記単語の選択及び前記名寄せデータの件数のカウントを停止すること
を特徴とする文字列匿名化装置。
【請求項５】
請求項１記載の文字列匿名化装置であって、
入力装置から入力される、前記文章データの各々の文字列に含まれる１つ以上の単語、及び、前記文章データの各々にさらに含まれる属性情報のうち少なくとも一方である分類条件情報を受け付ける分類条件受付手段、をさらに有し、
前記名寄せ手段が、前記受け付けた分類条件に従い、前記文章データの各々を分類すること
を特徴とする文字列匿名化装置。
【請求項６】
請求項１記載の文字列匿名化装置であって、
前記匿名化した単語を含む文章データを分析して分析結果情報を取得する分析手段と、
前記取得した分析結果情報を出力装置に出力する分析結果出力処理手段と、をさらに有すること
を特徴とする文字列匿名化装置。
【請求項７】
請求項６記載の文字列匿名化装置であって、
前記匿名化手段が、前記文章データの各々に含まれる文字列に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記抽出した単語組合せを構成する単語と一致しないものと、該単語を匿名化した匿名語とを対応付けた匿名対応情報を前記記憶装置にさらに記憶させ、前記分析手段により分析された分析結果情報に、前記匿名対応情報に含まれている匿名語と一致するものが含まれている場合、前記匿名対応情報から、該一致する匿名語と対応付けられている単語に置き換えた実名分析結果情報をさらに取得し、
前記実名分析結果情報を出力装置に出力する実名分析結果出力処理手段、をさらに有すること
を特徴とする文字列匿名化装置。
【請求項８】
請求項１乃至７のうちいずれか１つに記載の文字列匿名化装置であって、
前記名寄せ手段が、複数の個人の各々の個人情報を含む前記文章データの各々を、同一の個人の個人情報を含む種別に分類するための分類条件に従って分類すること
を特徴とする文字列匿名化装置。
【請求項９】
文字列匿名化装置により、文字列を含む文章データを匿名化する文字列匿名化方法であって、
各々が文字列を含む複数の文章データを記憶する記憶装置を有する前記文字列匿名化装置に、
前記文章データの各々を分類条件に従って複数種に分類する名寄せステップと、
前記分類により同一種に分類された１つ以上の文章データ（以下、名寄せデータ）の各々に含まれる単語を複数抽出する形態素解析ステップと、
前記抽出した単語の各々のうち１つ以上を含む単語組合せの各々のうち、該単語組合せを構成する単語の全てが含まれている前記名寄せデータの数が閾値以上であるものを抽出する評価ステップと、
前記文章データの各々に含まれる文字列に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記抽出した単語組合せを構成する単語と一致しないものを匿名化する匿名化ステップと、
前記匿名化した単語を含む文章データを出力装置に出力する出力ステップと、を実行させること
を特徴とする文字列匿名化方法。
【請求項１０】
文字列匿名化装置により、文字列を含む文章データを匿名化する文字列匿名化プログラムであって、
各々が文字列を含む複数の文章データを記憶する記憶装置を有する前記文字列匿名化装置に、
前記文章データの各々を分類条件に従って複数種に分類する名寄せステップと、
前記分類により同一種に分類された１つ以上の文章データ（以下、名寄せデータ）の各々に含まれる単語を複数抽出する形態素解析ステップと、
前記抽出した単語の各々のうち１つ以上を含む単語組合せの各々のうち、該単語組合せを構成する単語の全てが含まれている前記名寄せデータの数が閾値以上であるものを抽出する評価ステップと、
前記文章データの各々に含まれる文字列に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記抽出した単語組合せを構成する単語と一致しないものを匿名化する匿名化ステップと、
前記匿名化した単語を含む文章データを出力装置に出力する出力ステップと、を実行させること
を特徴とする文字列匿名化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の匿名化に関するものである。
【背景技術】
【０００２】
昨今、プライバシ保護への社会的要請が高まっており、個人情報を扱う企業の情報システムにおいてはプライバシへの配慮が不可欠である。保護すべき対象やその在り方は社会通念として定まっていないものの、企業（個人情報取扱事業者）にとり、少なくとも2005年4月に全面施行されたいわゆる個人情報保護法（以下、保護法）および関係法令の遵守は必須となっている。保護法は、収集、利用等の個人情報管理で必要とされる対応を義務付けており、さらに具体的な措置を各省庁のガイドラインが規定している。
【０００３】
これらのガイドラインが規定する管理措置の一つに個人情報の匿名化がある。例えば厚生労働省は、第三者提供、学会発表、医療事故報告等において、特段の必要がない限りは医療情報（個人情報）を匿名化するよう求めている。また経済産業省は、同意の取得、オプトアウトと並び、個人情報の匿名化を第三者提供時の望ましい措置として挙げている。
【０００４】
最も容易な個人情報匿名化の処理は、個人を識別可能な情報をその個人情報から取り除くこと、又は、個人を識別可能な情報を曖昧にすることである。前者の例としては、氏名や住所を取り除く処理が該当する。また、後者の例としては、住所を都道府県単位に変換する、年齢を１０歳刻みに変換する等の処理が該当する。
【０００５】
ただし、このような処理を行っても、その個人に関して他に入手できる情報と照合することで、匿名化された個人情報から特定個人を識別されることが考えられる。そのため、個人情報の匿名化に際しては、識別可能性等の観点から個人情報の安全性を測ることが望ましい。
【０００６】
テキストデータを対象とした電子データ的な個人情報の保護に関する技術が、特許文献１、特許文献２に記載されている。
【０００７】
特許文献１には、予め作成しておいた実名語／匿名後辞書を用いて、電子文書中の実名語を匿名後に変換する技術が記載されている。
【０００８】
特許文献２には、予め用意した辞書及び構文ルールを用いて、実名及び実名と関連性が高い周辺表記を匿名化する技術が記載されている。
【０００９】
【特許文献１】特許3578450号
【特許文献２】特開2002-269081号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の技術は、予め匿名化する単語の辞書を用意しておく必要がある。従って、特に様式の決まっていない場合等、様々なものが想定される文章の場合、匿名化する全ての単語を辞書として保持するのは困難である。
【００１１】
特許文献２に記載の技術は、特許文献１に記載の技術と同様に、予め匿名化する単語の辞書を用意しておく必要がある。従って、特に様式の決まっていない場合等、様々なものが想定される文章の場合、匿名化する全ての単語を辞書として保持するのは困難である。また、特許文献２に記載の技術は、各単語及びその単語を含む周辺表記の各々の出現確率を算出する。しかし、単語及びその単語を含む周辺表記の組合せが稀な場合、匿名化することができない。
【課題を解決するための手段】
【００１２】
本発明はこのような事情に鑑みてなされたもので、匿名化する単語の辞書を用意する必要が無く、かつ、単語及びその単語を含む周辺表記の組合せが稀な場合でも適切に匿名化可能な技術を提供する。
【００１３】
本発明は、各々が文字列を含む複数の文章データを記憶する記憶装置と、前記文章データの各々を分類条件に従って複数種に分類する名寄せ手段と、前記分類により同一種に分類された１つ以上の文章データ（以下、名寄せデータ）の各々に含まれる単語を複数抽出する形態素解析手段と、前記抽出した単語の各々のうち１つ以上を含む単語組合せの各々のうち、該単語組合せを構成する単語の全てが含まれている前記名寄せデータの数が閾値以上であるものを抽出する評価手段と、前記文章データの各々に含まれる文字列に含まれる単語のうち、前記抽出した単語のうち少なくとも一部の単語と一致し、かつ、前記抽出した単語組合せを構成する単語と一致しないものを匿名化する匿名化手段と、前記匿名化した単語を含む文章データを出力装置に出力する出力処理手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、匿名化のためのコストを低減することが可能となる。また、単語及びその単語を含む周辺表記の組合せが稀な場合でも適切に匿名化することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１６】
なお、以下では、主に電子的な文書データ（テキスト）の形態の個人情報を保護する技術を説明する。以下の実施形態における「個人情報」とは、個人に関する情報であって、氏名、生年月日、その他の情報等により特定の個人を識別することができるものを示す。なお、この個人情報は、他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む。この「個人に関する情報（個人情報）」は、氏名、性別、生年月日等個人を識別する情報に限られず、例えば、個人の身体、財産、職種、肩書き等の属性の各々に対して事実、判断、評価等を表す全ての情報である。これらの情報は、暗号化されているか否かを問わない。また、以下の実施形態において、情報主体とは、個人情報によって識別される特定の個人を意味する。さらに、以下の実施形態において、個人情報の匿名化とは、情報主体を識別できないようにその情報主体の個人情報を変換する処理をいう。
【００１７】
また、匿名化する情報は、個人情報が含まれている可能性のある情報であれば任意でよく、とくに限定するものではない。以下の実施形態では、電子メール、Web（World Wide Web）、コールセンタ等により収集される、顧客からの製品やサービス等に対する問合せやコメント等の情報を匿名化する場合の例を説明する。
＜第１の実施形態＞
まず、第１の実施形態を説明する。
【００１８】
図１を参照し、第１の実施形態のシステム構成例を説明する。
【００１９】
本実施形態のシステムは、コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４等を有する。これらは、通信ネットワーク１０５を介して接続される。
【００２０】
コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４の各々は、例えばＰＣ（Personal Computer）やサーバ装置、ワークステーション等の任意の情報処理装置である。通信ネットワーク１０５は、例えば、インターネット、専用線、公衆網、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等任意の通信ネットワークである。
【００２１】
コンタクトセンタデータ管理装置１０１は、電子メール、Web、コールセンタ等で収集される情報を管理する。以下、電子メール、Web、コールセンタ等で収集される各件の情報を「文章データ」という。文章データ解析装置１０２は、文章データの名寄せを行なう。なお、「名寄せ」とは、各々が同一人物の個人情報を含む１件以上の文書データを、１件の文書データに結合する処理を示す。以下、名寄せされ、１件の文書データに結合されたデータを「名寄せデータ」という。また、文章データ解析装置１０２は、名寄せデータに含まれる単語を抽出する。以下、名寄せデータから抽出した単語と、その各単語が各名寄せデータに含まれている数とを含む情報を「索引情報」という。また、索引情報を生成する処理を「索引構築処理」という。識別可能性評価装置１０３は、文章データ解析装置１０２により名寄せされたデータの、情報主体の識別可能性を評価する。文章データ匿名化装置１０４は、文章データ内の単語を匿名化する。
【００２２】
なお、本実施形態は、文章データ解析装置１０２により名寄せすることで、同一の情報主体から得られた複数の文章データを１つのものとして扱うことが可能となる。これにより、同一の情報主体から複数件の文章データを取得した場合でも、適切に匿名化することが可能となる。具体的には、例えば、３０人の異なる情報主体の各々から合計５０個の文章データを取得したものとする。ここで、この文章データのうち、１人の情報主体から「Ｘ」という単語を含む文章データを１０回取得した場合と、異なる１０人の情報主体の各々から「Ｘ」という単語を含む文章データを１回ずつ計１０個取得した場合とでは、その単語「Ｘ」を含むか否かによる情報主体の識別可能性は異なる。例えば、「名寄せ」処理しない場合、取得した文章データにおける単語「Ｘ」を含む割合は、前者及び後者とで同じ値の「１０/５０」となる。しかし、前者の場合、実際には単語「Ｘ」を含む文章データは同一の情報主体からのみ得られている。従って、この値は、情報主体の識別可能性としては正確ではない。このことは、１つの単語「Ｘ」のみを含む場合の例のみを説明したが、複数の単語の組合せでも同じことがいえる。
【００２３】
そこで、本実施形態では、同一の情報主体の文章データを「名寄せ」することにより、匿名化を適切に行なうことが可能となる。
【００２４】
ここで、図２を参照し、コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４の各々のハードウェア構成例を説明する。
【００２５】
図２において、コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４の各々は、ＣＰＵ（Central Processing Unit）２０１、ストレージ２０２、メモリ２０３、入力装置２０４、出力装置２０５、通信装置２０６等を有する。ＣＰＵ２０１、ストレージ２０２、メモリ２０３、入力装置２０４、出力装置２０５、通信装置２０６等はバス２０７により互いに接続されている。
【００２６】
ストレージ２０２は、例えば、ＣＤ-Ｒ（Compact Disc）やＤＶＤ-ＲＡＭ（Digital Versatile Disk-Random Access Memory）、シリコンディスク等の記憶メディア及び当該記憶メディアの駆動装置、ＨＤＤ（Hard Disk Drive）等である。入力装置２０４は、例えば、キーボード、マウス、スキャナ、マイク等である。出力装置２０５は、例えば、ディスプレイ装置、スピーカ、プリンタ等である。通信装置２０６は、例えば、ＬＡＮ（Local Area Network）ボード等である。コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４の各々は、各々の通信装置２０６を介して通信ネットワーク１０５に接続する。
【００２７】
図１に戻り、コンタクトセンタデータ管理装置１０１のストレージ２０２は、文章データテーブル１１１を有する。文章データテーブル１１１は、複数の情報主体の文章データを格納する。この情報の詳細は後述する。
【００２８】
文章データ解析装置１０２のＣＰＵ２０１は、データ名寄せ部１２１、形態素解析部１２２、索引情報取得部１２３等を有する。これらは、文章データ解析装置１０２のＣＰＵ２０１が自身のメモリ２０３にロードしたプログラム（図示略）を実行することにより実現する機能である。また、文章データ解析装置１０２のストレージ２０２は、名寄せ条件情報１２４、名寄せデータ管理テーブル１２５、索引情報テーブル１２６等を有する。これらの情報の詳細は後述する。
【００２９】
データ名寄せ部１２１は、名寄せ条件情報１２４内に含まれる情報に従って、複数の文書データを名寄せする。形態素解析部１２２は、名寄せデータのそれぞれに対して形態素解析を実施し、文書中に出現する単語等を索引情報テーブル１２６に格納する。索引情報取得部１２３は、形態素解析部１２２により取得された単語の各々が、名寄せデータのそれぞれに何回出現するかを取得し、索引情報テーブル１２６に格納する。
【００３０】
識別可能性評価装置１０３のＣＰＵ２０１は、識別可能性評価部１３１等を有する。これは、識別可能性評価装置１０３のＣＰＵ２０１が自身のメモリ２０３にロードしたプログラム（図示略）を実行することにより実現する機能である。また、識別可能性評価装置１０３のストレージ２０２は、識別可能性許容値情報１３２、識別可能性評価結果情報１３３、匿名化不要語テーブル１３４等を有する。この匿名化不要語テーブル１３４は、個人情報の識別可能性の評価処理を効率化するための情報を含む。これらの情報の詳細は後述する。
【００３１】
識別可能性評価部１３１は、索引情報テーブル１２６内の単語のうち１つ以上の単語の組合せを選択し、選択した組合せを構成する単語の全てを含む名寄せデータの件数が識別可能性許容値情報１３２内の値以上となるものを抽出し、識別可能性評価結果情報１３３、匿名化不要語テーブル１３４等に格納する。
【００３２】
なお、以下では、文章データ内の単語のうち、出現個数のカウント対象となるものを「出現語」という。また、文章データに含まれる出現語を１つ以上組み合わせたものを「出現語組み」という。また、出現語組みのうち、その出現語組みを含む名寄せデータの件数が識別可能性許容値情報１３２内の値以上となるものの出現語の各々を「匿名化不要語」という。また、出現語組みを含む名寄せデータの件数が識別可能性許容値情報１３２の値以上となる出現語組みそのものを「匿名化不要語組み」という。
【００３３】
文章データ匿名化装置１０４のＣＰＵ２０１は、匿名化部１４１を有する。これは、文章データ匿名化装置１０４のＣＰＵ２０１が自身のメモリ２０３にロードしたプログラム（図示略）を実行することにより実現する機能である。また、文章データ匿名化装置１０４のストレージ２０２は、匿名化文章データテーブル１４２等を有する。この情報の詳細は後述する。
【００３４】
匿名化部１４１は、文章データテーブル１１１内の文章データの各々に含まれる出現語のうち、識別可能性評価結果情報１３３及び匿名化不要語テーブル１３４に含まれていないものを匿名化し、匿名化した文章データを匿名化文章データテーブル１４２に格納する。なお、以下では、匿名化部１４１により匿名化される出現語を「実名語」、匿名化された後の単語を「匿名語」という。
【００３５】
なお、上述の図１において、コンタクトセンタデータ管理装置１０１、文章データ解析装置１０２、識別可能性評価装置１０３、文章データ匿名化装置１０４の各々は、例えば、異なる企業等により管理されるものであってもよい。また、図１に一例を示すシステムでは、上述した機能を別の装置の各々が有するものとしたが、これに限られるわけではなく、１つの装置が上記全ての機能及び情報を有していても良い。
【００３６】
次に、上述した情報の一例を説明する。
【００３７】
まず、図３を参照し、文章データテーブル１１１の一例を説明する。なお、図３では、文章データを電子メールにより取得する場合の例を示す。
【００３８】
図３において、文章データテーブル１１１は、複数のレコードを有する。各レコードは、複数の情報主体の各々から取得した文章データであり、１件の電子メールである。各レコードは、フィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４、フィールド３０５等を有する。フィールド３０１は、文章データの識別子である。フィールド３０２は、文章データに含まれるヘッダである。フィールド３０３、フィールド３０４、フィールド３０５の各々は、文章データに含まれる取得日時、件名及び本文である。
【００３９】
なお、文章データテーブル１１１は、予め、コンタクトセンタデータ管理装置１０１のストレージ２０２に格納されているものとする。この文章データテーブル１１１に格納される文章データを取得する技術は任意であり、顧客から受信した電子メールを順次格納等してもよく、また、例えば、Webから入力されたテキストデータ、あるいはコールセンタでオペレータが入力したテキストデータを格納しても良い。また、これらの混合であってもよい。
【００４０】
また、図３の例では、文章データテーブル１１１をテーブル形式としているが、これに限られるわけではない。文章データテーブル１１１は、例えばＸＭＬ（eXtensible Markup Language）等の任意のデータ形式でもよい。
【００４１】
図４を参照し、名寄せ条件情報１２４の一例を説明する。
【００４２】
図４において、名寄せ条件情報１２４は、名寄せ条件情報４０１を有する。名寄せ条件情報４０１は、データ名寄せ部１２１が名寄せするための情報を指定するものである。上述のように、データの「名寄せ」とは、１人の情報主体による複数件の文書データを、１件の文書データに結合する処理を意味する。図４に一例を示す名寄せ条件情報１２４の例では、ヘッダに記載の情報である「Ｆｒｏｍ」、即ち、情報主体のメールアドレスを基準として名寄せすることを示している。後述する識別可能性の評価は、名寄せデータに対し行なわれる。即ち、名寄せ条件情報４０１は、識別可能性をどのようなデータ単位で判別するかを示すものである。従って、図４の例では、識別可能性はメールアドレスごとに情報主体を区別することを示している。
【００４３】
なお、名寄せ条件情報４０１は「Ｆｒｏｍ」に限られるわけではなく、文章データに含まれる任意の情報のうち１つ以上を指定することが可能である。具体的には、例えば、文章データに顧客識別番号、氏名、住所、電話番号等の属性情報が含まれている場合は、これらの属性情報のうち１つ以上を名寄せ条件情報４０１としても良い。また、例えば、文書データに含まれる１個以上の任意の単語を名寄せ条件情報４０１としても良い。即ち、名寄せ条件情報４０１は、異なる情報主体の個人情報が含まれる複数の文書データの各々を、同一の個人の個人情報を含むものに分類するための情報であればよい。
【００４４】
上記名寄せ条件情報１２４は、予め、文章データ解析装置１０２のストレージ２０２に格納されているものとする。
【００４５】
図５を参照し、名寄せデータ管理テーブル１２５の一例を説明する。
【００４６】
図５において、名寄せデータ管理テーブル１２５の各レコードは、フィールド５０１、フィールド５０２等を有する。フィールド５０１は、名寄せデータの識別子である。フィールド５０２は、同じレコードのフィールド５０１の値で示される名寄せデータを構成する文章データの識別子である。この識別子は、文章データテーブル１１１における各文章データの識別子と同じである。
【００４７】
名寄せデータ管理テーブル１２５を生成する動作の詳細については後述する。
【００４８】
図６を参照して、索引情報テーブル１２６の一例を説明する。
【００４９】
図６において、索引情報テーブル１２６の各レコードは、フィールド６０１、フィールド６０２、フィールド６０３、フィールド６０４、フィールド６０５、フィールド６０６等を有する。
【００５０】
索引情報テーブル１２６の最初の行のレコードにおいて、フィールド６０２、６０３、６０４、６０５、６０６は、各文章データに含まれている全ての出現語である。なお、図６の例では、フィールド６０２、６０３、６０４、６０５、６０６のみを示しているが、これに限られるわけではなく、索引情報テーブル１２６には、図３に一例を示す文章データテーブル１１１内の文章データから抽出された全ての出現語の各々が各フィールドに格納される。即ち、索引情報テーブル１２６は、名寄せデータの識別子と、図３に一例を示す文章データテーブル１１１内の文章データから抽出した全ての出現語との合計分のフィールドを有する。また、索引情報テーブル１２６の次行以降の各レコードにおいて、フィールド６０１は名寄せデータの識別子である。また、フィールド６０２、６０３、６０４、６０５、６０６は、フィールド６０１の名寄せデータにおける、最初の行の各フィールド値の出現語の出現数を表している。具体的には、図６の例では、例えば、フィールド６０１「０」の名寄せデータには、フィールド６０２、６０３、６０４、６０５、６０６等の各々に示される出現語「ｆｏｏ＠ａ．ｃｏｍ」、「加湿器」、「ＡＢＣ−１２３」、「ファン」、「異音」等がそれぞれ「２」、「２」、「２」、「１」、「２」回ずつ出現することを示している。
【００５１】
索引情報テーブル１２６を生成する動作の詳細については後述する。
【００５２】
図７を参照し、識別可能性許容値情報１３２の一例を説明する。
【００５３】
図７において、識別可能性許容値情報１３２は、識別可能性許容値情報７０１を有する。識別可能性許容値情報７０１は、各出現語組みを構成する全ての単語が、名寄せデータのそれぞれに出現した回数の許容数である。即ち、名寄せデータに含まれる出現語組みが、識別可能性許容値情報７０１の値以上であれば、その出現語組みは、識別可能性の低い安全な組みとし、この出現語組みに含まれる出現語が開示されても情報主体を識別することが困難であると見なす。逆に、ある出現語組みの出現回数が、識別可能性許容値情報７０１の値未満であれば、この出現語組みは識別可能性の高い危険な組みとする。
【００５４】
識別可能性許容値情報１３２は、予め、識別可能性評価装置１０３のストレージ２０２に格納されているものとする。
【００５５】
図８を参照し、識別可能性評価結果情報１３３の一例を説明する。
【００５６】
ここで、識別可能性評価結果情報１３３は、匿名化不要語を示す。本実施形態では、識別可能性評価結果情報１３３は、匿名化不要語組みに含まれる匿名化不要語の数ごとに別のテーブルを有するものとする。以下、このテーブルを「識別可能性評価結果情報テーブル８０１」という。即ち、識別可能性評価結果情報１３３は、匿名化不要語組みに含まれる出現語の数の分、識別可能性評価結果情報テーブル８０１を有するものとする。以下、各識別可能性評価結果情報テーブル８０１を区別して説明する場合、例えば「識別可能性評価結果情報テーブル８０１ａ」というように符号を付与して説明する。
【００５７】
図８（ａ）において、識別可能性評価結果情報テーブル８０１ａは、１個の匿名化不要語からなる匿名化不要語組みに関する情報を格納する。識別可能性評価結果情報テーブル８０１ａの各レコードは、フィールド８１１、フィールド８１２等を有する。フィールド８１１は、フィールド８１２で示される１個の匿名化不要語が出現する名寄せデータの個数ＤＦ(Document Frequency)である。フィールド８１２は、匿名化不要語である。具体的には、例えば、図８（ａ）の場合、フィールド８１２「加湿器」を含む名寄せデータの数は、フィールド８１１「１５０」個であることを示す。
【００５８】
図８（ｂ）において、識別可能性評価結果情報テーブル８０１ｂは、２個の匿名化不要語からなる匿名化不要語組みに関する情報を格納する。識別可能性評価結果情報テーブル８０１ｂの各レコードは、フィールド８２１、フィールド８２２、フィールド８２３等を有する。フィールド８２１は、フィールド８２２及びフィールド８２３で示される２個の匿名化不要語の両方が出現する名寄せデータの個数ＤＦである。フィールド８２２、フィールド８２３の各々は、匿名化不要語である。具体的には、例えば、図８（ｂ）の場合、フィールド８２２「テレビ」、フィールド８２３「音量」の両方を含む名寄せデータの数は、フィールド８２１「１００」個であることを示す。
【００５９】
識別可能性評価結果情報テーブル８０１の各々を生成する動作の詳細については後述する。
【００６０】
図９を参照し、匿名化不要語テーブル１３４の一例を説明する。
【００６１】
図９において、匿名化不要語テーブル１３４の各レコードは、フィールド９０１、フィールド９０２等を有する。フィールド９０１は、処理ループ番号である。フィールド９０２は、匿名化不要語を表す。
【００６２】
匿名化不要語テーブル１３４を生成する動作の詳細は後述する。
【００６３】
図１０を参照し、匿名化文章データテーブル１４２の一例を説明する。
【００６４】
図１０において、匿名化文章データテーブル１４２は、上述の文章データテーブル１１１内の単語を匿名化したものである。即ち、後述する評価処理により、文章データテーブル１１１の各レコードに含まれる出現語組みが、識別可能性の高い危険な組みであると判定された場合に、その出現語組みの出現語の各々を匿名化したものである。図１０の例では、実名語「ｆｏｏ＠ａ．ｃｏｍ」、実名語「ＡＢＣ−１２３」、実名語「佐藤」を匿名化した場合の例を示す。即ち、図１０の例では、実名語「ｆｏｏ＠ａ．ｃｏｍ」を匿名語「Ａ０」に、実名語「ＡＢＣ−１２３」を匿名語「Ａ１」に、実名語「佐藤」を匿名語「Ａ２」に置換している。
【００６５】
なお、図１０の例では、匿名語のそれぞれをカギ括弧で囲んでいるが、これは説明の便宜上のものであり、実際の出力においてカギ括弧は在ってもよく、無くても良い。即ち、どの単語が匿名化されているのかを明示するか否かは任意でよい。また、明示の手段はカギ括弧に限るわけでなく、色やフォントを変更する等任意でよい。
【００６６】
匿名化文章データテーブル１４２を生成する動作の詳細については後述する。
【００６７】
次に、本実施形態の動作例を説明する。
【００６８】
まず、図１１を参照し、シーケンス例を説明する。
【００６９】
図１１において、コンタクトセンタデータ管理装置１０１は、文章データを収集し、文章データテーブル１１１に格納する（Ｓ１１０１）。上述の通り、文章データテーブル１１１には、１個の文章データ（受信メール）が１つのレコードに格納される。
【００７０】
文章データ解析装置１０２は、コンタクトセンタデータ管理装置１０１から読み出した文章データテーブル１１１の複製を、自身のメモリ２０３に格納する（Ｓ１１０２）。なお、この処理を開始するトリガーは特に限定するものではないが、例えば、文章データテーブル１１１に追加もしくは更新されたデータの件数が所定の件数以上となる場合や、前回の処理実行後から所定の日時が経過した場合等である。
【００７１】
次に、文章データ解析装置１０２のデータ名寄せ部１２１は、名寄せ処理を行って名寄せデータ管理テーブル１２５を生成する。また、形態素解析部１２２は、名寄せデータに対し形態素解析を行う。索引情報取得部１２３は、索引構築処理を行なう。これにより、索引情報テーブル１２６が生成される（Ｓ１１０３）。この処理の詳細は後述する。
【００７２】
次に、識別可能性評価装置１０３は、文章データ解析装置１０２から読み出した索引情報テーブル１２６の複製を、自身のメモリ２０３に格納する（Ｓ１１０４）。以下、Ｓ１１０４の処理により複製されるテーブルを特に区別する場合、「索引情報テーブル１２６´」という。この索引情報テーブル１２６´は、作業用のテーブルである。索引情報テーブル１２６´の格納処理及び検索処理を実現する技術は任意でよく、例えば、「高野明彦他：汎用連想計算エンジンの開発と大規模文書分析への応用、情報処理振興事業協会、独創的情報技術育成事業、2001年度成果報告論文」に開示されたツールを用いてもよい。なお、以下の説明では、索引情報テーブル１２６´における「ｉ」番目の行の、「ｊ」番目の列の値を、「Ｄ[i][j]」と表記する。ただし、「ｉ」は０以上（Ｎ-１）以下の整数、「ｊ」は０以上（Ｍ-１）以下の整数である。ここで、「Ｎ」は、索引情報テーブル１２６´のレコード件数である。また、「Ｍ」は、索引情報テーブル１２６´における出現語を表すフィールドの総数である。
【００７３】
なお、この処理を起動するタイミングは、上述のＳ１１０３を実行した後であれば任意でよいが、例えば、管理者が識別可能性評価装置１０３の入力装置２０４等を用いて起動を指示した場合でもよく、また、文章データ解析装置１０２が上述のＳ１１０３の処理を終了した後に、識別可能性評価装置１０３に評価処理の実行を要求する情報を送信した場合でもよい。
【００７４】
次に、識別可能性評価装置１０３は、索引情報テーブル１２６´を参照し、出現語がとり得る組み合わせを取得し、取得した組合せに対する識別可能性を評価する（Ｓ１１０５）。これにより、識別可能性評価結果情報１３３、匿名化不要語テーブル１３４等が生成される。この動作の詳細は後述する。
【００７５】
次に、文章データ匿名化装置１０４は、識別可能性評価装置１０３のストレージ２０２から読み出した識別可能性評価結果情報１３３（識別可能性評価結果情報テーブル８０１）の複製を、メモリ２０３に格納する（Ｓ１１０６）。以下、識別可能性評価装置１０３の識別可能性評価結果情報１３３（識別可能性評価結果情報テーブル８０１）と、文章データ匿名化装置１０４のメモリ２０３上の識別可能性評価結果情報１３３（識別可能性評価結果情報テーブル８０１）とを特に区別する場合、文章データ匿名化装置１０４のものを「識別可能性評価結果情報１３３´（識別可能性評価結果情報テーブル８０１´）」と示す。また、識別可能性評価結果情報１３３における「ｍ」番目の識別可能性評価結果情報テーブル８０１を、「ＳＷ[ｍ]」と記す。ただし、「ｍ」は０以上Ｍ未満の整数である。ここで、「Ｍ」は、上述のように、出現語の個数である。ＳＷ[ｍ]の各レコードには、匿名化不要語組みが含まれる。
【００７６】
次に、文章データ匿名化装置１０４は、文章データ解析装置１０２から読み出した索引情報テーブル１２６、名寄せデータ管理テーブル１２５の複製を、自身のメモリ２０３内に格納する（Ｓ１１０７）。Ｓ１１０４と同様に、以下では、文章データ匿名化装置１０４のメモリ２０３上の索引情報テーブル１２６を区別する場合「索引情報テーブル１２６´」という。また、以下では、文章データ匿名化装置１０４のメモリ２０３上の名寄せデータ管理テーブル１２５を区別する場合「名寄せデータ管理テーブル１２５´」という。
【００７７】
次に、文章データ匿名化装置１０４は、コンタクトセンタデータ管理装置１０１の記憶する文章データテーブル１１１から読み出した文章データの複製を、メモリ２０３に格納する（Ｓ１１０８）。なお、１回のＳ１１０８の処理で読み出す文章データの数は任意でよいが、ここでは、Ｓ１１０８の処理で１件の文章データを読出し、その文章データに対し、後述するＳ１１０９、Ｓ１１１０の処理を行ない、Ｓ１１０８〜Ｓ１１１０の処理を複数回繰り返すことで、複数の文章データを匿名化するものとする。しかし、これに限られるわけではなく、文章データ匿名化装置１０４は、Ｓ１１０８の処理で複数件の文章データを読出し、読み出した文章データに対しＳ１１０９、Ｓ１１１０の処理を行なってもよい。
【００７８】
文章データ匿名化装置１０４は、識別可能性評価結果情報テーブル８０１´の各々に格納された匿名化不要語組みの各々を参照し、上述のＳ１１０８の処理でメモリ２０３内に複製された文書データに含まれる出現語のうち、匿名化不要語組みに該当しない出現語を匿名化する（Ｓ１１０９）。Ｓ１１０９の詳細は後述する。
【００７９】
次に、文章データ匿名化装置１０４は、上述のＳ１１０９の処理結果をストレージ２０２上の匿名化文章データテーブル１４２に出力する（Ｓ１１１０）。この匿名化文章データテーブル１４２内の情報は、文章データ匿名化装置１０４の出力装置２０５、又は、通信ネットワーク１０５に接続等されたＰＣ等の情報端末の出力装置（図示略）に出力される。
【００８０】
次に、各機器での単体の処理を説明する。
【００８１】
まず、図１２を参照し、上述のＳ１１０３の処理を説明する。なお、上述のように、Ｓ１１０３の処理を開始する段階では、文章データ解析装置１０２のメモリ２０３に、コンタクトセンタデータ管理装置１０１から取得した文章データテーブル１１１が格納されている。
【００８２】
図１２において、文章データ解析装置１０２のデータ名寄せ部１２１は、名寄せ条件情報１２４を参照し、名寄せ条件情報を取得する（Ｓ１２０１）。次に、データ名寄せ部１２１は、メモリ２０３内の文章データテーブル１１１の各レコードを参照し、Ｓ１２０１で取得した名寄せ条件情報に従い、同一の名寄せデータを構成する文章データ（レコード）を選択し、選択した文章データの文章＃を取得する（Ｓ１２０２）。そのために、データ名寄せ部１２１は、文章データテーブル１１１の各レコードを参照し、名寄せ条件情報１２４内に格納される情報に従い名寄せされる文章データのレコードを選択し、選択したレコードのフィールド３０１の値を取得する。
【００８３】
次に、データ名寄せ部１２１は、名寄せデータの識別子と、その名寄せデータを構成する文章データの文章＃とを格納する（Ｓ１２０３）。そのために、データ名寄せ部１２１は、名寄せデータ管理テーブル１２５の各レコードのフィールド５０１、フィールド５０２の各々に、名寄せデータの識別子と、上述のＳ１２０３の処理で取得した、その名寄せデータを構成する文章データの文章＃とを格納する。この名寄せデータの識別子は任意でよいが、ここでは、連番であるものとして説明する。
【００８４】
具体的には、例えば、図４に一例を示す名寄せ条件情報１２４の場合、名寄せ条件情報４０１「Ｆｒｏｍ」である。この場合、データ名寄せ部１２１は、図３に一例を示す文章データテーブル１１１の各レコードの文章データのうち、名寄せ条件情報４０１「Ｆｒｏｍ」の値が同一なものを、同一の名寄せデータを構成する文章データであるものとする。具体的には、例えば、図３に一例を示す文章データテーブル１１１の場合、データ名寄せ部１２１は、フィールド３０２の値が「ｆｏｏ＠ａ．ｃｏｍ」であるレコードは、同一の名寄せデータを構成するものとする。従って、データ名寄せ部１２１は、図３に一例を示す文章データテーブル１１１から、フィールド３０２の値が「ｆｏｏ＠ａ．ｃｏｍ」を有するレコードのフィールド３０１の値「０」、「１０」等を取得する。次に、データ名寄せ部１２１は、名寄せデータ管理テーブル１２５に、フィールド５０１、フィールド５０２の各々の値が「０」、「０」であるレコードと、フィールド５０１、フィールド５０２の各々の値が「０」、「１０」であるレコードとを追加する。データ名寄せ部１２１は、フィールド３０２「ＸＸ＠ｙ．ｎｅ．ｊｐ」等に対しても、同じ処理を行なう。
【００８５】
次に、形態素解析部１２２は、名寄せデータの各々に対し、形態素解析処理を行なう（Ｓ１２０４）。ここで、形態素解析とは、文章を、文字列の最小単位である素（形態素）に分解し、分解した形態素の各々の品詞を判別することをさす。形態素解析により判別する品詞は、日本語であれば、例えば、「名詞」、「動詞」、「助詞」等である場合や、「動詞-自立」や「助詞-接続助詞」等のより詳細な品詞等である場合がある。この形態素解析処理を実現する技術は従来技術と同じであり、特に限定するものではないが、例えば、隠れマルコフモデル（HMM;Hidden Markov Model）や、「松本裕治他：NAIST Technical Report、NAIST-IS-TR97007、February 1997」に開示されているツール等を用いるとよい。
【００８６】
次に、索引情報取得部１２３は、上述のＳ１２０４の処理で取得した形態素のうち少なくとも一部を「出現語」とし、名寄せデータの各々に対し、各出現語の出現件数をカウントし、その結果を索引情報テーブル１２６に格納する（Ｓ１２０５）。なお、出現語とする形態素は特に限定するものではないが、ここでは、品詞が「名詞」である形態素を出現語とする。索引情報取得部１２３は、索引情報テーブル１２６の各レコードの最初のフィールドに名寄せデータの識別子を格納し、最初のレコードの２番目以降のフィールドの各々に出現語を格納する。次に、索引情報取得部１２３は、名寄せデータ毎に、索引情報テーブル１２６の最初のレコードの２番目以降のフィールドに格納した出現語の各々が含まれている数をカウントし、その数を、索引情報テーブル１２６の、２番目以降のレコードの各々に格納する。索引情報取得部１２３は、このように生成した索引情報テーブル１２６を、ストレージ２０２に出力する。
【００８７】
具体的には、例えば、上述のように、図３に一例を示す文章データテーブル１１１の文章＃「０」、「１０」から、１つの名寄せデータが生成される場合の例を説明する。この場合、索引情報取得部１２３は、名寄せデータに含まれる単語「ｆｏｏ＠ａ．ｃｏｍ」、「加湿器」、「ＡＢＣ−１２３」、「ファン」、「異音」の各々を出現語とする。次に、索引情報取得部１２３は、この名寄せデータから、出現語「ｆｏｏ＠ａ．ｃｏｍ」、「加湿器」、「ＡＢＣ−１２３」、「ファン」、「異音」の各々の出現回数「２」、「２」、「２」、「１」、「２」を取得する。次に、索引情報取得部１２３は、索引情報テーブル１２６の最初のレコードの２番目以降のフィールドの各々に、「ｆｏｏ＠ａ．ｃｏｍ」、「加湿器」、「ＡＢＣ−１２３」、「ファン」、「異音」等を格納する。さらに、索引情報取得部１２３は、索引情報テーブル１２６の、２番目のレコードのフィールドの各々に、名寄せデータの識別子「０」、出現語の各々の出現回数「２」、「２」「２」、「２」、「１」、「２」等を格納する。
【００８８】
なお、この索引構築処理は従来技術と同じであり、特に限定するものではないが、例えば「高野明彦他：汎用連想計算エンジンの開発と大規模文書分析への応用、情報処理振興事業協会、独創的情報技術育成事業、2001年度成果報告論文」に開示されているツール等を用いるとよい。
【００８９】
次に、図１３を用いてＳ１１０５の動作の詳細を説明する。なお、上述のように、識別可能性評価装置１０３は、上述のＳ１１０４の処理で、文章データ解析装置１０２から索引情報テーブル１２６を取得し、自身のメモリ２０３に格納している。ここでは、上述のように、識別可能性評価装置１０３のメモリ２０３に格納された索引情報テーブル１２６を区別する場合「索引情報テーブル１２６´」という。
【００９０】
まず、識別可能性評価装置１０３の識別可能性評価部１３１は、ストレージ２０２上の識別可能性許容値情報１３２から識別可能性許容値情報７０１の値を読出し、読み出した値を変数「Ｋ」の値とする（Ｓ１３０１）。具体的には、例えば、図７に一例を示す識別可能性許容値情報１３２の場合、識別可能性評価部１３１は、「Ｋ＝１００」とする。
【００９１】
次に、識別可能性評価部１３１は、評価対象単語を取得する（Ｓ１３０２）。そのために、識別可能性評価部１３１は、索引情報テーブル１２６´から評価対象単語を取得する。例えば、識別可能性評価部１３１は、索引情報テーブル１２６´の、出現語を示すフィールド毎に、出現個数が「１以上」のレコードの件数をカウントする。次に、識別可能性評価部１３１は、カウントしたレコード件数が変数「Ｋ」以上のフィールドの出現語の各々を示す番号を、配列「Ｗ」に格納する。ここで、配列「Ｗ」は、サイズ「Ｍ」の配列であり、配列「Ｗ」の各要素を「Ｗ[ｍ]」で示す。この「ｍ」は、上述のように０以上Ｍ未満の整数である。また、出現語の各々を示す番号は、索引情報テーブル１２６´における出現語を表すフィールドの並び順を意味する。以降の処理では、識別可能性評価結果情報１３３、匿名化不要語テーブル１３４の各々に関しても、出現語を表す文字列の代わりに、出現語に割り当てた番号で管理する。さらに、識別可能性評価部１３１は、配列「Ｗ」に格納された出現語の個数を、変数「Ｍ´」に格納しておく。
【００９２】
具体的には、例えば、図６に一例を示す索引情報テーブル１２６（索引情報テーブル１２６´）の場合、出現語「ｆｏｏ＠ａ．ｃｏｍ」、「加湿器」、「ＡＢＣ−１２３」、「ファン」、「異音」の各々は、番号「０」、「１」、「２」、「３」、「４」で示されるものとする。識別可能性評価部１３１は、まず、出現語を示すフィールド毎に、出現個数が「１以上」のレコードの件数をカウントする。例えば、図６に一例を示す識別可能性評価結果情報１３３に示される名寄せ＃「０」〜「２」の名寄せデータのみの場合に限定して説明すると、識別可能性評価部１３１は、フィールド６０２「ｆｏｏ＠ａ．ｃｏｍ」の出現個数が「１以上」のレコードは、名寄せ＃６０１の値が「０」であるものが該当するので、このレコードの件数として「１」を取得する。同様に、識別可能性評価部１３１は、フィールド６０４「ＡＢＣ−１２３」の出現個数が「１以上」のレコードは、名寄せ＃６０１の値が「０」、「２」であるものが該当するので、このレコードの件数として「２」を取得する。ここで、例えば、上記５個の出現語のうち、「ｆｏｏ＠ａ．ｃｏｍ」、「ＡＢＣ−１２３」の各々を含むレコード件数が「Ｋ＝１００」未満であり、その他の単語の各々を含むレコード件数が「Ｋ＝１００」以上である場合、識別可能性評価部１３１は、配列「Ｗ」に、「加湿器」、「ファン」、「異音」の番号を処理した順に格納する。具体的には、識別可能性評価部１３１は、「Ｗ[０]=1」、「Ｗ[１]=３」、「Ｗ[２]=４」を格納する。さらに、識別可能性評価部１３１は「Ｍ´＝２」とする。
【００９３】
次に、識別可能性評価部１３１は、識別可能性評価結果情報１３３の各識別可能性評価結果情報テーブル８０１のテーブル構造、及び、匿名化不要語テーブル１３４のテーブル構造を初期化する（Ｓ１３０３）。具体的には、識別可能性評価部１３１は、自身のメモリ２０３内に、レコードの空な識別可能性評価結果情報テーブル８０１を「Ｍ」個構築する。これらのテーブルの各レコードは、図８に一例を示すように、出現語を格納する１つ以上のフィールドと、その出現語が含まれている名寄せデータの数を格納する１つのフィールドから成る。即ち、識別可能性評価部１３１は、テーブルの各々が、名寄せデータの数を格納する１つのフィールドと、各々が単語を格納する１、２、…、Ｍ個のフィールドとを有するものを作成する。また、識別可能性評価部１３１は、図９に一例を示すように、フィールド９０１及びフィールド９０２を有する匿名化不要語テーブル１３４を構築し、レコードを空にしておく。
【００９４】
次に、識別可能性評価部１３１は、名寄せデータに含まれている出現語組みに対する評価を行なう。ここで、本実施形態の出現語組みをツリーで示したものを、図１４に一例を示すツリーを参照して説明する。
【００９５】
図１４において、ツリー１４００は、図６に一例を示す索引情報テーブル１２６内の出現語組みの一例を示すものである。ツリー１４００は複数のノードを有し、各ノードは、親子関係により出現語組みを表している。例えば、図１４に示すツリー１４００の場合、ノード１４０１は「ｆｏｏ＠ａ．ｃｏｍ」という１個の出現語からなる出現語組みを示す。また、例えば、ノード１４０２は、「ｆｏｏ＠ａ．ｃｏｍ」及び「加湿器」という２個の出現語からなる出現語組みを表している。また、例えば、ノード１４０３は、「ｆｏｏ＠ａ．ｃｏｍ」及び「ＡＢＣ−１２３」という２個の出現語からなる出現語組みを表している。ルートノードは、探索ツリー１４００の管理用ノードである。
【００９６】
以下の説明では、あるノードとルートノードとの間に存在するアークの個数を、そのノードの深さという。ただし、ルートノードの深さは「ゼロ」とする。また、あるノードとルートノードとのパス上に存在するノード群を当該ノードの先祖ノード、あるノードにパス上で隣接する先祖ノードを当該ノードの親ノードと呼ぶ。ルートノードを除く１個のノードの親ノードの個数は１つである。また、あるノードよりも深さが１大きく、かつ、パス上で隣接するノードのことを子ノードと呼ぶ。１個のノードの子ノードの個数は０以上である。また、あるノードＡと共通の親ノードを持つ別のノードＢがあるとき、ノードＢはノードＡの兄弟ノードと呼ぶ。また、子ノードを一切持たないノードのことをリーフノードと呼ぶ。具体的には、例えば、ツリー１４００の場合、ノード１４０２の親ノードは、ノード１４０１である。また、ノード１４０２の兄弟ノードは、ノード１４０３である。ノード１４０２の子ノードは、ノード１４０４である。
【００９７】
また、以下の説明では、索引情報テーブル１２６´において、ノードが表す出現語組みを有する名寄せデータのレコード件数を算出する処理のことをノードの評価処理という。また、ノードの評価処理により算出されたレコード件数が、識別可能性許容値情報１３２に格納した値以上となるノードのことを「安全ノード」、安全ノードではないノードのことを「危険ノード」という。また、安全ノードに該当する出現語組みを「匿名化不要語組み」、匿名化不要語組みを構成する出現語を「匿名化不要語」という。
【００９８】
本実施形態では、以下で説明するノードの評価処理は、次の規則に従って探索ツリー上のノードを順に評価する。
【００９９】
規則（１）ルートノードを起点とする。
【０１００】
規則（２）あるノードの評価が終了した時点で、処理対象となる子ノードと兄弟ノードが存在する場合は、子ノードから先に評価する。
【０１０１】
ただし、上記規則（２）において複数の子ノードが存在する場合、子ノードが表す出現語に割り当てた整数が小さい方を先に評価する。また、上記規則（２）において、複数の兄弟ノードが存在する場合は、兄弟ノードが表す出現語に割り当てた整数が小さい方を先に評価する。
【０１０２】
図１３に戻り、上述のＳ１３０３の処理の後、識別可能性評価部１３１は、ループ変数「ｊ」を初期化する（Ｓ１３０４）。具体的には、識別可能性評価部１３１は、「ｊ＝０」とする。次に、識別可能性評価部１３１は、「ｊ＜Ｍ´」であるか否か判定する（Ｓ１３０５）。
【０１０３】
Ｓ１３０５の判定の結果、「ｊ＜Ｍ´」である場合、識別可能性評価部１３１は、カレントノードを設定する（Ｓ１３０６）。具体的には、識別可能性評価部１３１は、カレントノードを参照するための変数「Ｐ」を、「Ｐ＝ｊ」とする。ただし、ここでは、出現頻度が「Ｋ」以上の出現語を処理対象とするため、カレントノードを表す出現語の番号は、Ｗ[Ｐ]で参照される。
【０１０４】
次に、識別可能性評価部１３１は、カレントノードに該当する出現語が処理済みであるか否かを判定する（Ｓ１３０７）。そのために、識別可能性評価部１３１は、例えば、匿名化不要語テーブル１３４の各レコードを参照し、フィールド５０１「Ｌ＃」の値が「ｊ」未満であり、且つ、フィールド５０２の値が「Ｗ[Ｐ]」に一致するものが含まれているか否かを判定する。該当するものが含まれている場合、識別可能性評価部１３１は、カレントノードに該当する出現語が処理済みであると判定する。
【０１０５】
Ｓ１３０７の判定の結果、カレントノードに該当する項目値が処理済みでないと判定された場合、識別可能性評価部１３１は、カレントノードを評価する（Ｓ１３０８）。この詳細な説明は後述する。
【０１０６】
次に、識別可能性評価部１３１は、カレントノードの子孫ノード及び兄弟ノードを評価する（Ｓ１３０９）。ただし兄弟ノードの判定においては、配列「Ｗ」においてｊ番目の出現語を深さ１に持つ子孫ノード群を評価対象とする。この詳細な説明は後述する。
【０１０７】
上記Ｓ１３０８、Ｓ１３０９の処理部により、識別可能性評価結果情報テーブル８０１が生成される。
【０１０８】
次に、識別可能性評価部１３１は、「ｊ＝ｊ＋１」として（Ｓ１３１０）、上述のＳ１３０５以降の処理を再度行なう。
【０１０９】
一方、Ｓ１３０５の判定の結果、ｊ＜Ｍ´でない場合、識別可能性評価部１３１は、メモリ２０３上の識別可能性評価結果情報テーブル８０１をストレージ２０２に格納する（Ｓ１３１１）。
【０１１０】
次に、図１５を参照し、上述のＳ１３０８においてカレントノードを評価する動作の詳細を説明する。
【０１１１】
まず、識別可能性評価部１３１は、カレントレコードを示すループ変数「ｉ」及び処理対象ノードに該当するレコード件数を示す変数「ｄｆ」を初期化する（Ｓ１５０１）。具体的には、識別可能性評価部１３１は、「ｉ＝０」、「ｄｆ＝０」とする。なお、このとき、カレントレコードは、直前のＳ１３０６の処理で設定された変数「Ｐ」であるものとする。次に、識別可能性評価部１３１は、「ｉ＜Ｎ」であるか否か判定する（Ｓ１５０２）。この「Ｎ」は、上述のように、索引情報テーブル１２６´のレコード件数である。
【０１１２】
Ｓ１５０２の判定の結果、ｉ＜Ｎである場合、識別可能性評価部１３１は、索引情報テーブル１２６´内の「ｉ」番目のレコードに、評価対象の出現語が含まれているか否か判定する（Ｓ１５０３）。そのために、識別可能性評価部１３１は、例えば、索引情報テーブル１２６´のｉ番目のレコードの「Ｗ[Ｐ]」番目の値、すなわち、「Ｄ[ｉ][Ｗ[Ｐ]]」の値が、１以上であるか否かを判定する。
【０１１３】
上述のＳ１５０３の判定の結果、評価対象の出現語が含まれている場合、識別可能性評価部１３１は「ｄｆ＝ｄｆ＋１」とし（Ｓ１５０４）、さらに、「ｉ＝ｉ＋１」とする（Ｓ１５０５）。この後、識別可能性評価部１３１は、上述のＳ１５０２以降の処理を行なう。
【０１１４】
一方、上述のＳ１５０２の判定の結果、ｉ＜Ｎでない場合、識別可能性評価部１３１は、図１５に示した処理フローを終了し、Ｓ１３０９の処理を行なう。
【０１１５】
次に、図１６を参照し、上述のＳ１３０９の、深さ２以上のノード群を評価する動作例の詳細を説明する。なお、識別可能性評価部１３１がＳ１３０９を開始する際の初期状態では、変数「Ｐ」の値は、直前のＳ１３０８終了時のカレントノードの値である。また、変数「ｄｆ」の値は、直前のＳ１３０８終了時の値である。
【０１１６】
識別可能性評価部１３１は、処理対象のノードの先祖ノード集合を表すスタック変数「ＳＴ」を初期化する（Ｓ１６０１）。ここで、スタック変数「ＳＴ」は、一般にFILO（First In Last Out）バッファと呼ばれるキューを表している。本実施形態において、スタック変数「ＳＴ」の各要素は、変数「Ｐ」の値である。具体的には、識別可能性評価部１３１は、Ｓ１６０１の処理で、スタック変数「ＳＴ」に格納されている全ての要素を取り出し、スタックを空にする。
【０１１７】
次に、識別可能性評価部１３１は、「ｄｆ≧Ｋ」であるか否か判定する（Ｓ１６０２）。この「Ｋ」は、上述のように、識別可能性許容値情報１３２の識別可能性許容値情報７０１の値である。
【０１１８】
Ｓ１６０２の判定の結果、ｄｆ≧Ｋである場合、識別可能性評価部１３１は、匿名化不要語組みの候補を一時的に保存する（Ｓ１６０３）。具体的には、スタック変数「ＳＴ」、変数「ｄｆ」の各々の値を、それぞれスタック変数「ＳＴ´」、変数「ｄｆ´」の値として格納する。
【０１１９】
次に、識別可能性評価部１３１は、処理対象となる子ノードが存在するか否か判定する（Ｓ１６０４）。そのために、識別可能性評価部１３１は、「Ｐ＜（Ｍ´−１）」であるか否か判定する。この判定の結果、識別可能性評価部１３１は、「Ｐ＜（Ｍ´−１）」である場合は子ノードが存在すると判定し、「Ｐ＜（Ｍ´−１）」でない場合は子ノードが存在しないと判定する。
【０１２０】
Ｓ１６０４の判定の結果、子ノードが存在しない場合、識別可能性評価部１３１は、後述するＳ１６１０以降の処理を行なう。
【０１２１】
Ｓ１６０４の判定の結果、子ノードが存在する場合、識別可能性評価部１３１はスタック変数「ＳＴ」に、変数「Ｐ」の値を追加する。
【０１２２】
次に、識別可能性評価部１３１は、現在のカレントノードの子ノードを、新たなカレントノードとする（Ｓ１６０５）。そのために識別可能性評価部１３１は、「Ｐ＝Ｐ＋１」とする。
【０１２３】
次に、識別可能性評価部１３１は、変数「ｄｆ」の値を「ｄｆ＝０」とし（Ｓ１６０７）、続いて、直前のＳ１６０６の処理で設定したカレントノードに該当する出現語が処理済みか否かを判定する（Ｓ１６０８）。この処理の具体的な例は、上述のＳ１３０７と同じであるので省略する。
【０１２４】
Ｓ１６０８の判定の結果、カレントノードに該当する出現語が処理済みでない場合、識別可能性評価部１３１は、カレントノードを評価し（Ｓ１６０９）、上述のＳ１６０２以降の処理を再度行なう。Ｓ１６０９の動作は、上述のＳ１５０１からＳ１５０５と同じであるので省略する。ただし、Ｓ１５０３の、カレントノードに該当する出現語組みを有するか否かの判定のみ異なる。ここでは、識別可能性評価部１３１は、この判定を、変数「Ｐ」及びスタック変数「ＳＴ」に格納されている出現語が全て存在する場合、レコードはカレントノードに該当する出現語組みを有するものと判定する。具体的には、スタック変数「ＳＴ」の「ｋ」番目の要素を「ＳＴ［ｋ］」とすると、識別可能性評価部１３１は、「Ｄ[ｉ][Ｗ[Ｐ]]≧１」であり、且つ、全ての「ｋ」について「Ｄ[ｉ][Ｗ[ＳＴ[ｋ]]]≧１」である場合、レコードはカレントノードに該当する出現語組みを有するものと判定する。ただし、「ｋ」は０以上、スタック変数「ＳＴ」に格納した要素数未満の整数である。
【０１２５】
Ｓ１６０９の終了後、識別可能性評価部１３１は、再度、Ｓ１６０２以降の処理を行なう。
【０１２６】
一方、Ｓ１６０２で「ｄｆ≧Ｋ」でないと判定された場合、もしくは、Ｓ１６０４で処理対象となる子ノードが存在しないと判定された場合、識別可能性評価部１３１は、上述のＳ１６０３で一時保存していたスタック変数「ＳＴ´」、変数「ｄｆ´」の値の各々を、索引情報テーブル１２６、匿名化不要語テーブル１３４に格納する（Ｓ１６１０）。そのために、例えば、スタック変数「ＳＴ´」の有する要素数が「ｘ」個である時、識別可能性評価部１３１は、識別可能性評価結果情報１３３の識別可能性評価結果情報テーブル８０１のうち「ｘ」番目のテーブルに新たなレコードを追加し、このレコードの値として、スタック変数「ＳＴ´」内の各要素と、変数「ｄｆ´」の値とを格納する。さらに、識別可能性評価部１３１は、図９の匿名化不要語テーブル１３４に新たなレコードを追加し、追加したレコードのフィールド５０１、５０２の各々の値として、変数「ｉ」、及び、スタック変数「ＳＴ´」が有する各要素の出現語の値を格納する。ただし、全てのフィールドが同じ値をとるレコードが既にテーブル中に存在する場合は、追加は行わない。
【０１２７】
具体的には、スタック変数「ＳＴ´」に「｛テレビ、音量｝」が格納され、「ｄｆ´＝１００」である場合の例を説明する。この場合、スタック変数「ＳＴ´」が有する要素数は２であるため、識別可能性評価部１３１は、「２」番目の識別可能性評価結果情報テーブル８０１に対し、フィールド８２１が「ｄｆ´＝１００」、フィールド８２２が「Ｗ[Ｐ１]＝テレビ」、フィールド８２３が「Ｗ[Ｐ２]＝音量」であるレコードを追加する。
【０１２８】
次に、識別可能性評価部１３１は、処理対象となるカレントノードの兄弟ノードが存在するか否かを判定する（Ｓ１６１１）。具体的には、識別可能性評価部１３１は、「Ｐ＜（Ｍ´−１）」である場合、兄弟ノードが存在すると判定する。
【０１２９】
Ｓ１６１１の判定の結果、兄弟ノードが存在すると判定した場合、識別可能性評価部１３１は、兄弟ノードをカレントノードに設定する（Ｓ１６１２）。具体的には、「Ｐ＝Ｐ＋１」とする。
【０１３０】
次に、識別可能性評価部１３１は、「ｄｆ＝０」とする（Ｓ１６１３）。さらに、識別可能性評価部１３１は、カレントノードに該当する出現語組みが処理済みか否かを判定する（Ｓ１６１４）。この処理は上述のＳ１３０７と同じである。
【０１３１】
次に、識別可能性評価部１３１は、カレントノードを評価する（Ｓ１６１５）。この処理は、上述のＳ１６０９と同じである。
【０１３２】
Ｓ１６１５の終了後、識別可能性評価部１３１は、再度、Ｓ１６０１以降の処理を行なう。
【０１３３】
一方、Ｓ１６１１の判定の結果、兄弟ノードが存在しないと判定された場合、識別可能性評価部１３１は、子孫ノードを評価中であるか否かを判定する（Ｓ１６１６）。具体的には、ＳＴに格納した要素数が１つ以上の場合は子孫ノードを評価中と判定し、ＳＴに格納した要素数が０の場合は、子孫ノードを評価中でないと判定する。
【０１３４】
Ｓ１６１６の判定の結果、子孫ノードを評価中でないと判定した場合、探索ツリーをトラックバックするため、識別可能性評価部１３１は親ノードをカレントノードに設定する（Ｓ１６１７）。具体的には、識別可能性評価部１３１は、変数「ＳＴ」に最後に追加した要素を取り出し、変数「Ｐ」に設定する。
【０１３５】
Ｓ１６１７の終了後、識別可能性評価部１３１は、再度、Ｓ１６１１以降の処理を行う。
【０１３６】
一方、Ｓ１６１６の判定の結果、子孫ノードを評価中であると判定した場合、識別可能性評価部１３１は、図１６に示した処理を終了する。
【０１３７】
以上が図１１におけるＳ１１０５の動作の詳細である。
【０１３８】
上述のように、本実施形態では、秘匿すべき出現語を抽出するのではなく、識別確率が低い出現語組みを網羅的に調べて、開示可能な出現語を抽出する点に特徴がある。識別確率が閾値以上の出現語組合せのみを開示し、識別確率が閾値未満の出現語組合せを非開示とすれば、文章データテーブル１１１の全ての文章データに対して識別確率「１/Ｋ」以下を保証可能となる。また、本実施形態では、組み合わせる出現語が増えるほど、その出現語が含まれる文章データ件数が単調減少する性質を利用し、上述のＳ１６０２の処理で、評価不要な出現語組合せを判別している。これは、組合せる出現語の数を１つずつ増やす度に識別確率が閾値以上となるか否か判定し、識別確率が閾値以上とならない時点、即ち、出現語組みが識別可能性の高い危険な組みであると判定された時点で、その出現語組みに対してさらに組み合わせる出現語の数を増やしての評価を停止する。さらに、本実施形態では、カレントノードの出現語に対し評価済みか否か判定し、この判定の結果評価済みである場合、それより深いノードの評価を行なわない。この処理は、匿名化不要語組みの性質と、探索ツリーの構造とを利用したものである。即ち、例えば、ある２つの匿名化不要語組み「α」、「β」があり、「β」が有する出現語を全て「α」が有するとき、「α」が匿名化不要語組みならば「β」も匿名化不要語組みであるという性質を利用している。また、上述の探索ツリーの評価規則（１）、（２）に従えば、「α」、「β」のような出現語組みは、「α」に該当するノードが先に評価されるという性質を利用している。これらにより、本実施形態の識別可能性評価装置１０３は、効率よく評価処理を実行することが可能となる。さらに、本実施形態の識別可能性評価装置１０３は、評価時間を短縮することが可能となる。
【０１３９】
次に、図１７を参照し、文書データを匿名化するＳ１１０９の動作の詳細を説明する。
【０１４０】
上述のように、文章データ匿名化装置１０４は、Ｓ１１０６、Ｓ１１０７、Ｓ１１０８の処理を行なう。これにより、文章データ匿名化装置１０４の匿名化部１４１は、識別可能性評価装置１０３のストレージ２０２から、識別可能性評価結果情報１３３即ち識別可能性評価結果情報テーブル８０１を取得し、自身のメモリ２０３内に格納している。また、文章データ匿名化装置１０４の匿名化部１４１は、文章データ解析装置１０２のストレージ２０２から索引情報テーブル１２６及び名寄せデータ管理テーブル１２５を取得し、自身のメモリ２０３内に格納している。また、文章データ匿名化装置１０４の匿名化部１４１は、文章データ解析装置１０２のストレージ２０２から、文章データテーブル１１１内の匿名化対象の文書データ１件を取得し、自身のメモリ２０３内に格納している。この文章データには、上述のように、フィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４、フィールド３０５等の値が含まれている。以下、文章データ解析装置１０２、識別可能性評価装置１０３の各々のストレージ２０２内の名寄せデータ管理テーブル１２５、索引情報テーブル１２６、及び識別可能性評価結果情報テーブル８０１と、文章データ匿名化装置１０４のメモリ２０３に格納した名寄せデータ管理テーブル１２５、索引情報テーブル１２６、及び識別可能性評価結果情報テーブル８０１を特に区別して説明する場合、名寄せデータ管理テーブル１２５´、索引情報テーブル１２６´、及び識別可能性評価結果情報テーブル８０１´という。
【０１４１】
図１７において、まず、匿名化部１４１は、変数「ＤＮ」、配列「Ｗ」、配列「Ａ」の各々の初期化を行なう（Ｓ１７０１）。そのために、匿名化部１４１は、まず、名寄せデータ名寄せデータ管理テーブル１２５´の各レコードのうち、フィールド５０２の値が、メモリ２０３内に複製された文書データのフィールド３０１の文書＃と一致するレコードを選択する。次に、匿名化部１４１は、選択したレコードのフィールド５０１の値を参照する。これにより、匿名化部１４１は、匿名化対象の文書データの名寄せデータの識別子（名寄せ＃）を特定する。次に、匿名化部１４１は、取得した名寄せ＃を変数「ＤＮ」の値とする。具体的には、例えば、文章＃「１」の文章データ及び図７に一例を示す名寄せデータ管理テーブル１２５´が文章データ匿名化装置１０４のメモリ２０３内に格納されている場合、匿名化部１４１は、名寄せデータの識別子「０」を取得し、「Ｄ＝０」とする。
【０１４２】
また、匿名化部１４１は、配列「Ｗ」に要素を格納する。さらに、匿名化部１４１は、配列「Ｗ」に格納された出現語の個数を、変数「Ｍ´」に格納しておく。この処理は、上述のＳ１３０２と同じである。
【０１４３】
なお、以下では、索引情報テーブル１２６´の「ＤＮ」番目のレコードの要素を「ＩＮ[ＤＮ][Ｗ[ｊ]]」で示す。ただし「ｊ」は０以上Ｍ´以下の整数である。
【０１４４】
また、匿名化部１４１は、以降の処理で匿名化不要単語を記憶するため、サイズＭ´の配列「Ａ」を初期化する。そのために、匿名化部１４１は、ｊ＝０、１、…、Ｍ´の各々の「ＩＮ[ＤＮ][Ｗ[ｊ]]」の値が、「ＩＮ[ＤＮ][Ｗ[ｊ]]＞０」である場合、配列「Ａ[ｊ]」の値を「Ａ[ｊ]＝０」とし、また、「ＩＮ[ＤＮ][Ｗ[ｊ]]＝０」である場合、配列「Ａ[ｊ]」の値を「Ａ[ｊ]＝−１」とする。
【０１４５】
Ｓ１７０１に続いて、匿名化部１４１は、ループ変数「ｍ」を「ｍ＝Ｍ´−１」とする（Ｓ１７０２）。
【０１４６】
次に、匿名化部１４１は、「ｍ≧０」であるか否かを判定する（Ｓ１７０３）。
【０１４７】
Ｓ１７０３の判定の結果、ｍ≧０でない場合、匿名化部１４１は、後述するＳ１７１０の処理を実行する。
【０１４８】
一方、Ｓ１７０３の判定の結果、ｍ≧０である場合、匿名化部１４１は、ループ変数「ｉ」を「ｉ＝０」とする（Ｓ１７０４）。
【０１４９】
次に、匿名化部１４１は、「ｉ＜Ｎ」であるか否かを判定する（Ｓ１７０５）。ただし、「Ｎ」は、１つ以上の識別可能性評価結果情報テーブル８０１´のうちＳＷ[ｍ]のテーブルのレコード件数である。
【０１５０】
Ｓ１７０５の判定の結果、ｉ＜Ｎでないと判定された場合、匿名化部１４１は、後述するＳ１７０９の処理を行なう。
【０１５１】
一方、Ｓ１７０５の判定の結果、ｉ＜Ｎと判定された場合、匿名化部１４１は、メモリ２０３内の文書データに含まれる出現語に、ＳＷ[ｍ]の「ｉ」番目のレコードに含まれる匿名化不要語組みに含まれる匿名化不要語と一致するものが含まれているか否か判定し、一致するものが含まれている場合、一致する出現語を配列「Ａ」の要素として格納する（Ｓ１７０６）。そのために、匿名化部１４１は、{ＳＷ[ｍ]のi番目のレコードが有する匿名化不要語組み}⊆{Ｗ[ｊ]|Ａ[ｊ]＝０}が成り立つ全ての「ｊ」について、Ａ［ｊ］＝１とする。ただし、「ｊ」は０以上（Ｍ´−１）以下の整数である。
【０１５２】
次に、匿名化部１４１は、上述のＳ１７０６の処理で、メモリ２０３内の文書データに含まれる出現語に、ＳＷ[ｍ]の「ｉ」番目のレコードに含まれる匿名化不要語組みに含まれる匿名化不要語と一致するものが含まれていたか否かを判定する（Ｓ１７０７）。
【０１５３】
Ｓ１７０７の判定の結果、含まれていない場合、匿名化部１４１は、「ｉ＝ｉ＋１」とし（Ｓ１７０８）、Ｓ１７０５以降の処理を再度行う。
【０１５４】
一方、上述のＳ１７０５の判定でｉ＜Ｎでないと判定された場合、上述のＳ１７０７の判定で該当するもの含まれていないと判定された場合のうちの何れかであれば、匿名化部１４１は、「ｍ＝ｍ−１」とし（Ｓ１７０９）、上述のＳ１７０３以降の処理を再度行う。
【０１５５】
また、一方、上述のＳ１７０３の判定でｍ≧０ではないと判定された場合、匿名化部１４１は、出力データを生成する（Ｓ１７１０）。具体的には、匿名化部１４１は、メモリ２０３内の文書データから、「Ａ［ｊ］＝０」が成り立つ全ての「ｊ」について、Ｗ［ｊ］が表す出現語を検索し、検索された出現語を匿名語に置換する。匿名語を取得する技術は特に限定するものではないが、ここでは、匿名化部１４１は、匿名語を、例えば「Ａ」、「Ｂ」等の文字列と、Ｗ［ｊ］の数値を表す文字列との結合により与えるものとする。具体的には、例えば、文書データ中の出現語「ｆｏｏ＠ａ．ｃｏｍ」が番号「０」で示され、「Ｗ［０］＝０」である場合、匿名化部１４１は、「ｆｏｏ＠ａ．ｃｏｍ」を「Ａ０」と置き換える。
【０１５６】
以上がＳ１１０９の動作の詳細である。上述の通り、Ｓ１７１０で生成された出力データは、Ｓ１１１０で、文章データ匿名化装置１０４のストレージ２０２内の匿名化文章データテーブル１４２の各レコードに格納される。
【０１５７】
上述のように匿名化文章データテーブル１４２が格納された後、管理者が文章データ匿名化装置１０４の入力装置２０６又は図示しない情報端末の入力装置を用いて匿名化文章データテーブル１４２の出力を指示した場合等に、匿名化文章データテーブル１４２を出力してもよい。ここで、図１８を参照し、匿名化文章データテーブル１４２をディスプレイ装置に表示した場合の例を説明する。図１８において、画面１８０１は、図１０に一例を示す匿名化文章データテーブル１４２内の各レコードを表示する例である。
【０１５８】
以上が第１の実施形態の説明である。上述のシステムの特徴は、出現頻度が大きな単語の組みを網羅的に調べて、匿名化不要な出現語組みを抽出する点にある。匿名化不要と見なされなかった識別可能性が高い単語の組みは無意味な匿名語に変換される。結果として、匿名変換されないどの単語で文書データ全体集合を検索したとしても、必ず「Ｋ」件以上の文書データがヒットするように変換される。これにより、文書データからの識別可能性が高くなる単語のみを匿名語に変換しつつ、それ以外の単語を元の形に残したまま文書データを匿名化することを可能とする。
【０１５９】
また、上述のシステムは、組み合わせる出現語の数を１つずつ増やす度に出現頻度が閾値以上となるか否か判定し、出現頻度が閾値以上とならない時点で、出現語の数を増やして評価することを停止する。さらに、上述のシステムは、匿名化不要語組みの構成要素として既に見つかっている出現語に対する不要な評価処理を省略している。これにより、上述のシステムは、効率よく処理を実行することが可能になる。
＜第２の実施形態＞
次に、第２の実施例を説明する。上述の第１の実施形態では、識別可能性が保障された匿名化文書データを出力するものとした。以下で説明する第２の実施形態では、文書データ匿名化処理における匿名語の割り当て方法の変更を可能とするものである。また、第２の実施形態では、文章データの一部を匿名語としたまま、外部の企業等に分析を委託することを可能とする。なお、この分析は任意でよく、とくに限定するものではないが、以下では、文章データ内の単語の出現頻度から重要度を取得する場合の例を説明する。
【０１６０】
なお、説明の簡略化のために、以下で説明する第２の実施形態は、上述した第１の実施形態と同じものは同じ符号を付与し、説明を省略する。
【０１６１】
まず、図１９を参照し、第２の実施形態のシステム構成例を説明する。
【０１６２】
図１９において、第２の実施形態のシステム構成は、分析装置１９０１がさらに通信ネットワーク１０５に接続されている点が異なる。分析装置１９０１は、例えばＰＣやサーバ装置、ワークステーション等の任意の情報処理装置である。分析装置１９０１は、例えば外部企業等の管理するものであり、この分析装置１９０１により、匿名化された文章データの分析が行なわれる。分析装置１９０１のハードウェア構成は、上述の図２と同じであり、ＣＰＵ２０１、ストレージ２０２、メモリ２０３、入力装置２０４、出力装置２０５、通信装置２０６等を有する。
【０１６３】
分析装置１９０１のＣＰＵ２０１は、プログラム（図示略）をメモリ２０３にロードして実行することにより、分析部１９１１を実現する。また、分析装置１９０１のストレージ２０２には、分析結果テーブル１９２１が格納される。分析部１９１１は、単語の出現頻度から重要度を取得し、その結果を分析結果テーブル１９２１に格納する。
【０１６４】
また、第２の実施形態において、文章データ匿名化装置１０４のＣＰＵ２０１は、メモリ２０３にロードしたプログラム（図示略）を実行することにより、匿名化部１９３１を実現する。また、文章データ匿名化装置１０４のストレージ２０２には、匿名化条件情報１９４１、匿名対応テーブル１９４２、実名分析結果テーブル１９４３がさらに格納される。匿名化部１９３１は、上述の匿名化部１４１と同じ機能を有する。また、匿名化部１９３１は、匿名化条件情報１９４１内の情報に従って匿名化の条件を定め、その条件に従って生成した匿名語と品詞等とを匿名対応テーブル１９４２に格納する。さらに、匿名化部１９３１は、分析装置１９０１から分析結果テーブル１９２１を取得し、取得した分析結果テーブル１９２１に従い、実名分析結果テーブル１９４３を生成する。
【０１６５】
また、文章データ解析装置１０２のストレージ２０２には、品詞テーブル１９５１がさらに格納される。品詞テーブル１９５１は、形態素解析部１２２の形態素解析処理により取得された、形態素ごとの品詞が格納される。
【０１６６】
次に、上述した情報の一例を説明する。
【０１６７】
まず、図２０を参照し、匿名化条件情報１９４１の一例を説明する。なお、本実施形態は、匿名化条件情報１９４１は複数のテーブルを有し、これらのテーブル内の情報を組み合わせることで、匿名化の条件を設定するものとして説明する。以下、このテーブルを「匿名化条件情報テーブル２００１」として説明する。また、複数の匿名化条件情報テーブル２００１を特に区別して説明する場合、「匿名化条件情報テーブル２００１ａ」というように、符号を付与して説明する。ここでは、匿名化条件情報１９４１が２つの匿名化条件情報テーブル２００１を有する場合の例を説明する。
【０１６８】
図２０（ａ）において、匿名化条件情報テーブル２００１ａの各レコードは、フィールド２０１１、フィールド２０１２等を有する。フィールド２０１１の値は、出現語のカテゴリである。フィールド２０１２は、同じレコードのフィールド２０１１の値の品詞である。図２０（ａ）の場合、例えば、フィールド２０１１「人名」の品詞は、同じレコードのフィールド２０１２「名詞」であることを示す。また、フィールド２０１１「全て」は、出現語のカテゴリを特定しないことを示す。
【０１６９】
図２０（ｂ）において、匿名化条件情報テーブル２００１ｂの各レコードは、フィールド２０２１を有する。フィールド２０２１の値は、上述の匿名化条件情報テーブル２００１ａで設定されたカテゴリに対する匿名化の選択肢である。図２０（ｂ）の場合、匿名化の選択肢として「全体で共通」、「文章ごとに共通」が含まれる。この「全体で共通」とは、複数の文書データに同一の匿名化対象の出現語が含まれている場合、その匿名化対象の出現語を、同一の匿名語で置換するものである。また、「文書ごとに共通」とは、複数の文書データに同一の匿名化対象の出現語が含まれている場合、その匿名化対象の出現語を、文章データごとに異なる匿名語で置換するものである。
【０１７０】
具体的には、例えば、「佐藤」という人名が、文書データＡに２回出現し、また、文書データＢに２回出現する場合の例を説明する。この文章データの場合において、匿名化条件情報テーブル２００１ａのフィールド２０１１のうち「人名」が選択され、かつ、匿名化条件情報テーブル２００１ａのフィールド２０２１のうち「全体で共通」が選択されると、文章データＡに含まれる「佐藤」、及び、文章データＢに含まれる「佐藤」は、同一の匿名語「Ａ２」に置換される。これは、例えば、文章データの分析に複数の文書に同一人が関わることを明記することが必要な場合の設定である。一方、上記文章データの場合において、匿名化条件情報テーブル２００１ａのフィールド２０１１のうち「人名」が選択され、かつ、匿名化条件情報テーブル２００１ａのフィールド２０２１のうち「文書ごとに共通」が選択されると、文章データＡに含まれる「佐藤」は匿名語「Ａ２」に置換され、文章データＢに含まれる「佐藤」は匿名語「Ｂ１」に置換される。これは、例えば、複数の文書データに同一人が関わることの推測を困難にしたい場合の設定である。
【０１７１】
匿名化条件情報１９４１は、予め文章データ匿名化装置１０４のストレージ２０２に格納されているものとする。匿名化条件情報１９４１を用いた設定の詳細は後述する。
【０１７２】
次に、図２１を参照し、匿名対応テーブル１９４２の一例を説明する。
【０１７３】
図２１において、匿名対応テーブル１９４２の各レコードは、フィールド２１０１、フィールド２１０２、フィールド２１０３等を有する。フィールド２１０１は、匿名化対象の出現語（実名語）である。フィールド２１０２は、匿名化後の出現語（匿名語）である。フィールド２１０３は、同じレコードのフィールド２１０１、フィールド２１０２の出現語の品詞である。
【０１７４】
次に、図２２を参照し、分析結果テーブル１９２１及び実名分析結果テーブル１９４３の一例を説明する。
【０１７５】
なお、上述のように、分析結果テーブル１９２１は、匿名化後の文章データを分析した分析結果であり、実名分析結果テーブル１９４３は、分析結果テーブル１９２１に含まれる匿名語を実名語に変換したものである。即ち、分析結果テーブル１９２１と実名分析結果テーブル１９４３とは、出現語のうち少なくとも一部が匿名語か、あるいは実名語であるかという点のみが異なり、その他は同一の情報を示している。
【０１７６】
図２２（ａ）に、分析結果テーブル１９２１の一例を示す。図２２（ａ）において、分析結果テーブル１９２１の各レコードは、フィールド２２０１、フィールド２２０２等を有する。フィールド２２０１は、重要度である。フィールド２２０２は、同じレコードのフィールド２２０１の重要度の出現語である。
【０１７７】
図２２（ｂ）に、実名分析結果テーブル１９４３の一例を示す。図２２（ｂ）において、実名分析結果テーブル１９４３の各レコードは、フィールド２２１１、フィールド２２１２等を有する。フィールド２２１１は、重要度である。フィールド２２１２は、同じレコードのフィールド２２１１の重要度の出現語である。
【０１７８】
ここで、図２２（ａ）及び（ｂ）の各々に一例を示す分析結果テーブル１９２１、実名分析結果テーブル１９４３を比較すると、分析結果テーブル１９２１のフィールド２２０１「３」のレコードのフィールド２２０２の値が「Ａ２」であるのに対し、実名分析結果テーブル１９４３のフィールド２２１１「３」のレコードのフィールド２２１２の値が「佐藤」である。即ち、実名語「佐藤」は、匿名語「Ａ２」に置換されていることを示す。
【０１７９】
これらのテーブルが生成される動作の詳細は後述する。
【０１８０】
次に、図２３を参照し、品詞テーブル１９５１の一例を説明する。
【０１８１】
図２３において、品詞テーブル１９５１の各レコードは、フィールド２３０１、フィールド２３０２等を有する。フィールド２３０１は、形態素である。フィールド２３０２は、同じレコードの２３０１の形態素の品詞である。
【０１８２】
次に、図２４を参照し、第２の実施形態のシーケンス例を説明する。なお、以下の説明では、上述の第１の実施形態と同じ処理に関しては簡単に説明する。
【０１８３】
図２４において、コンタクトセンタデータ管理装置１０１の処理部ｚ１０１１は、文章データを収集し、文章データテーブル１１１に格納する（Ｓ２４０１）。この処理は上述のＳ１１０１と同じである。
【０１８４】
文章データ解析装置１０２のデータ名寄せ部１２１は、文章データテーブル１１１内の文章データを読み込み、文章データ解析装置１０２のストレージ２０２に複製する（Ｓ２４０２）。この処理は上述のＳ１１０２と同じである。次に、文章データ解析装置１０２のデータ名寄せ部１２１が名寄せ処理を行って名寄せデータ管理テーブル１２５を生成する。また、形態素解析部１２２が名寄せデータに対し形態素解析を行い、品詞テーブル１９５１を生成する。そのために、形態素解析部１２２は、従来技術により各文章データから、形態素ごとの品詞を取得すると、品詞テーブル１９５１の各レコードのフィールド２３０１、フィールド２３０２の各々の値として、取得した形態素と品詞とを格納する。さらに、索引情報取得部１２３が索引構築処理を行なうことで、索引情報テーブル１２６が生成される（Ｓ２４０３）。この処理は上述のＳ１１０３と同じである。
【０１８５】
次に、識別可能性評価装置１０３の識別可能性評価部１３１は、文章データ解析装置１０２から索引情報テーブル１２６を読み出して複製し、識別可能性評価装置１０３のメモリ２０３に格納する（Ｓ２４０４）。この処理は上述のＳ１１０４と同じである。次に、識別可能性評価部１３１は、索引情報テーブル１２６´を参照しつつ出現語がとり得る組み合わせを探索し、識別可能性を評価する（Ｓ２４０５）。この処理は上述のＳ１１０５と同じである。
【０１８６】
次に、文章データ匿名化装置１０４の匿名化部１９３１は、識別可能性評価装置１０３のストレージ２０２内の識別可能性評価結果情報１３３の識別可能性評価結果情報テーブル８０１を読み出し、メモリ２０３に格納する（Ｓ２４０６）。また、匿名化部１９３１は、文章データ解析装置１０２のストレージ２０２に格納された索引情報テーブル１２６、名寄せデータ管理テーブル１２５、品詞テーブル１９５１を読み出し、メモリ内に複製する（Ｓ２４０７）。さらに、匿名化部１９３１は、コンタクトセンタデータ管理装置１０１の記憶する文章データテーブル１１１から文章データを読み出し、メモリ２０３に格納する（Ｓ２４０８）。これらの処理は、品詞テーブル１９５１をストレージ２０２に出力する点を除き、上述のＳ１１０６〜Ｓ１１０８と同じである。
【０１８７】
次に、文章データ匿名化装置１０４の匿名化部１９３１は、ストレージ２０２から読み出した匿名化条件情報１９４１を、自身のメモリ２０３にロードする（Ｓ２４０９）。
【０１８８】
次に、匿名化部１９３１は、匿名化条件の指定を受け付ける（Ｓ２４１０）。そのために、匿名化部１９３１は、例えば、図２５に一例を示すような画面を、文章データ匿名化装置１０４の出力装置２０５のディスプレイ等に出力する。
【０１８９】
図２５において、画面２５０１は、匿名化条件の指定を受け付けるためのものである。画面２５０１は、領域２５１１、領域２５２２、領域２５２３、領域２５２４等を有する。
【０１９０】
領域２５１１は、各文章データを表示する。この文章データは、文章データ匿名化装置１０４のメモリ２０３に格納されているものである。
【０１９１】
領域２５２２は、匿名化条件情報１９４１の匿名化条件情報テーブル２００１ａのカテゴリのうち１つをプルダウン等により選択するためのものである。領域２５２２に表示されるカテゴリは、匿名化条件情報テーブル２００１ａの各レコードのフィールド２０１１の値である。
【０１９２】
領域２５２３は、領域２５２２で指定されたカテゴリの詳細情報を選択するためのものである。領域２５２３に表示される詳細情報は、索引情報テーブル１２６´の最初のレコードのフィールドの各々に含まれている出現語のうち少なくとも一部及び全ての出現語を示す情報である。この領域２５２３に表示される出現語は、領域２５２２にて選択されたカテゴリに属する品詞のものである。そのために、匿名化部１９３１は、領域２５２２にて何れかのカテゴリが選択されると、匿名化条件情報テーブル２００１ａの各フィールド２０１１を参照し、領域２５２２で選択されたカテゴリと一致するものを含むレコードを検索し、検索したレコードのフィールド２０１２の値を抽出する。次に、匿名化部１９３１は、品詞テーブル１９５１の各フィールド２３０２を参照し、抽出したフィールド２０１２の値と一致するものが含まれているレコードを検索し、検索したレコードのフィールド２３０１の値を抽出する。匿名化部１９３１は、抽出したフィールド２３０１の値と、全ての出現語を示す情報とを、領域２５２３の詳細情報として出力する。
【０１９３】
領域２５２４は、匿名化条件情報１９４１の匿名化条件情報テーブル２００１ｂの選択肢のうち１つをプルダウン等により選択するためのものである。領域２５２４に表示される選択肢は、匿名化条件情報テーブル２００１ｂの各レコードのフィールド２０２１の値である。
【０１９４】
管理者は、文章データ匿名化装置１０４の入力装置２０４等を用いる等して、領域２５２２、領域２５２３、領域２５２４の各々に対し条件を指定する。画面２５０１にて、例えば、領域２５２２で「人名」、領域２５２３で「佐藤」、領域２５２４で「文章ごとに共通」が選択された場合の例を説明する。この場合、画面２５０１の領域２５１１に表示されている文章データに含まれる出現語「佐藤」の各々が、同一の匿名語に置換されることを示す。また、画面２５０１にて、例えば、領域２５２２で「全て」、領域２５２３で「-（ＮＵＬＬ）」、領域２５２４で「文章ごとに共通」が選択された場合の例を説明する。この場合、画面２５０１の領域２５１１に表示されている文章データに含まれる出現語のうち、匿名化不要語以外の全ての各々が、同一の匿名語に置換されることを示す。匿名化部１９３１は、領域２５１２で選択されたカテゴリ、領域２５１３で選択された内容、領域２５１４で選択された選択肢等をメモリ２０３に格納等して、後述する匿名化処理に用いる。
【０１９５】
図２４において、匿名化部１９３１は、識別可能性評価結果情報テーブル８０１´の各々に格納された匿名化不要語組みの各々を参照し、上述のＳ１１０８の処理でメモリ２０３内の文章データに含まれる出現語のうち、匿名化不要語組みに該当しない出現語を匿名化する（Ｓ２４１１）。この処理は、上述のＳ２４１０の処理で受け付けた条件に従い匿名化するか否か判定する点と、置換する匿名語の設定規則と、実名語と匿名語とを匿名対応テーブル１９４２に格納する点とを除き、上述のＳ１１０９と同じである。即ち、匿名化部１９３１は、メモリ２０３内の、上述の画面２５０１で設定されたカテゴリ、詳細情報、選択肢等を参照し、この設定に応じて、出現語を匿名化するか否か判定する。具体的には、例えば、メモリ２０３内に、カテゴリ「人名」、詳細情報「佐藤」、選択肢「文章ごとに共通」が格納されている場合、匿名化部１９３１は、上述のＳ１１０９と同じ処理を行い、文章データに含まれる匿名化対象の出現語「佐藤」を、文章データごとに異なる匿名語に置き換える。また、例えば、カテゴリ「全て」、詳細情報「-」、選択肢「文章ごとに共通」が格納されている場合、匿名化部１９３１は、上述のＳ１１０９と同じ処理を行い、文章データに含まれる匿名化対象の出現語の各々を、同一の匿名化対象の出現語が文章データごとに異なる匿名語に置き換える。
【０１９６】
また、匿名化部１９３１は、Ｓ２４１０の処理で受け付けた設定に応じて、置換する匿名語の設定を行なう。具体的には、例えば、匿名語の設定規則としては、選択肢「文章ごとに共通」が選択されている場合、匿名化部１９３１は、匿名語の接頭語を文章データごとに異なるものとし、この接頭語の各々に連番等を付与することにより、匿名語を生成する。また、選択肢「全体で共通」が選択されている場合、匿名化部１９３１は、メモリ２０３内のカテゴリ、詳細情報等を参照し、このカテゴリ、詳細情報等で特定される出現語毎に異なる匿名語を生成し、異なる文章データの各々に含まれる同一の出現語に、同一の匿名語を置換する。
【０１９７】
また、匿名化部１９３１は、出現語毎の実名語、匿名語、品詞を、匿名対応テーブル１９４２の各レコードのフィールド２１０１、フィールド２１０２、フィールド２１０３等に格納する。なお、この匿名化対象の出現語の品詞は、品詞テーブル１９５１から取得するとよい。即ち、匿名化部１９３１は、品詞テーブル１９５１の各フィールド２３０１を参照し、匿名化対象の出現語と一致するものを検索し、検索したフィールド２３０１を含むレコードのフィールド２３０２の値を、その出現語の品詞とする。
【０１９８】
具体例として、メモリ２０３内に、カテゴリ「人名」、詳細情報「佐藤」、選択肢「文章ごとに共通」が格納されており、文章データＡ、文章データＢの各々に、匿名化対象の出現語「佐藤」が含まれている場合を説明する。この場合、匿名化部１９３１は、文章データＡの接頭語「Ａ」と、文章データＢの接頭語「Ｂ」を生成する。さらに、匿名化部１９３１は、文章データＡに含まれる「佐藤」を「Ａ２」に置き換える。また、匿名化部１９３１は、文章データＢに含まれる「佐藤」を「Ｂ２」に置き換える。匿名化部１９３１は、品詞テーブル１９５１から、フィールド２３０１の値が「佐藤」であるレコードに含まれるフィールド２３０２「名詞」を抽出する。匿名化部１９３１は、匿名対応テーブル１９４２に新たなレコードを追加し、追加したレコードのフィールド２１０１、フィールド２１０２、フィールド２１０３等として「佐藤」、「Ａ２」、「名詞」等を格納する。また、匿名化部１９３１は、さらに追加した新たなレコードのフィールド２１０１、フィールド２１０２、フィールド２１０３等として「佐藤」、「Ｂ２」、「名詞」等を格納する。
【０１９９】
他の具体例として、メモリ２０３内に、カテゴリ「人名」、詳細情報「佐藤」、選択肢「全体で共通」が格納されており、文章データＡ、文章データＢの各々に、匿名化対象の出現語「佐藤」が含まれている場合を説明する。この場合、匿名化部１９３１は、匿名化対象の出現語「佐藤」の匿名語「ＡＡ」を生成する。さらに、匿名化部１９３１は、文章データＡに含まれる「佐藤」を「ＡＡ」に置き換える。また、匿名化部１９３１は、文章データＢに含まれる「佐藤」を「ＡＡ」に置き換える。匿名化部１９３１は、品詞テーブル１９５１から、フィールド２３０１の値が「佐藤」であるレコードに含まれるフィールド２３０２「名詞」を抽出する。匿名化部１９３１は、匿名対応テーブル１９４２に新たなレコードを追加し、追加したレコードのフィールド２１０１、フィールド２１０２、フィールド２１０３等として「佐藤」、「ＡＡ」、「名詞」等を格納する。
【０２００】
上述のＳ２４１１の処理の後、文章データ匿名化装置１０４の匿名化部１９３１は、上述のＳ２４１０の処理結果をストレージ２０２上の匿名化文章データテーブル１４２に出力する（Ｓ２４１２）。この処理は上述のＳ１１１０と同じである。
【０２０１】
ここで、図２６を参照し、第２の実施形態の匿名化文章データテーブル１４２の一例を示す。図２６（ａ）において、匿名化文章データテーブル１４２は、カテゴリ「人名」、詳細情報「佐藤」、選択肢「文章ごとに共通」が設定された場合の例である。また、図２６（ｂ）において、匿名化文章データテーブル１４２は、カテゴリ「人名」、詳細情報「佐藤」、選択肢「全体で共通」が設定された場合の例である。
【０２０２】
図２４に戻り、上述のＳ２４１１が終了した後、分析装置１９０１は、後述するＳ２４１３の処理を開始する。ただし、Ｓ２４１３以降の処理を起動するタイミングは、上述のＳ２４１２以降であれば任意でよく、例えば、管理者が分析装置１９０１の入力装置２０３を用いて実行を指示した場合や、文章データ匿名化装置１０４の匿名化文章データテーブル１４２が更新された場合、所定の時間毎等である。
【０２０３】
まず、分析装置１９０１の分析部１９１１は、文章データ匿名化装置１０４から匿名化文章データテーブル１４２及び匿名対応テーブル１９４２を取得する（Ｓ２４１３）。ただし、匿名対応テーブル１９４２については、各レコードのフィールド２１０２及びフィールド２１０３のみが取得される。これを実現するための技術は任意でよいが、例えば、予め、文章データ匿名化装置１０４の管理者等が、匿名対応テーブル１９４２の各レコードのフィールド２１０１の値が分析装置１９０１から参照できないようアクセス制御をかけていてもよく、また、文章データ匿名化装置１０４の匿名化部１９３１は、匿名対応テーブル１９４２からフィールド２１０１を除外したテーブルを複製し、分析装置１９０１からのデータ要求を受信した場合、この複製テーブルを送信するようにしてもよい。
【０２０４】
次に、分析部１９１１は、上述のＳ２４１３で読み込んだ匿名化文章データテーブル１４２と匿名対応テーブル１９４２を用いて、分析処理を実行する（Ｓ２４１４）。上述のように、この分析処理は任意でよいが、ここでは、文章データ中の単語の出現頻度から、各単語の重要度を取得するものとする。分析部１９１１は、メモリ２０３内の分析結果テーブル１９２１のフィールド２２０１、フィールド２２０２として、取得した重要度と、その重要度の単語とを格納する。
【０２０５】
次に、分析部１９１１は、分析結果を分析結果テーブル１９２１として分析装置１９０１のストレージ２０２に出力する（Ｓ２４１５）。
【０２０６】
上述のＳ２４１５が終了した後、文章データ匿名化装置１０４は、後述するＳ２４１６の処理を開始する。ただし、Ｓ２４１６以降の処理を起動するタイミングは、上述のＳ２４１５以降であれば任意でよく、例えば、管理者が文章データ匿名化装置１０４の入力装置２０３を用いて実行を指示した場合や、文章データ匿名化装置１０４の分析結果テーブル１９２１が更新された場合、所定の時間毎等である。
【０２０７】
まず、文章データ匿名化装置１０４の匿名化部１９３１は、分析装置１９０１から分析結果テーブル１９２１を取得する（Ｓ２４１６）。次に、匿名化部１９３１は、分析結果テーブル１９２１に含まれる匿名語を実名語に変換する（Ｓ２４１７）。そのために、匿名化部１９３１は、まず、分析結果テーブル１９２１の各レコードのフィールド２２０２のうち１つを選択し、匿名対応テーブル１９４２の各レコードのフィールド２１０２に、選択したフィールド２２０２の値と一致する単語が含まれているか否か判定する。この判定の結果、一致する単語が含まれている場合、匿名化部１９３１は、選択したフィールド２２０２の値は匿名語であると判定し、匿名対応テーブル１９４２の各フィールド２１０２のうち一致する単語含むレコードのフィールド２１０１の値を抽出する。また、この判定の結果、一致するものが含まれていない場合、匿名化部１９３１は、選択したフィールド２２０２の値は匿名語であると判定する。匿名化部１９３１は、メモリ２０３内の実名分析結果テーブル１９４３に新たなレコードを追加し、このレコードのフィールド２２１１の値として、上記処理により選択したフィールド２２０２を含むレコードのフィールド２２０１を格納する。また、匿名化部１９３１は、新たに追加したレコードのフィールド２２１２の値として、上記処理により選択したフィールド２２０２の値が匿名語であると判定した場合は、抽出したフィールド２１０１の値を格納し、上記処理により選択したフィールド２２０２の値が匿名語でないと判定した場合は、選択したフィールド２２０２の値を格納する。匿名化部１９３１は、この処理を、分析結果テーブル１９２１の全てのレコードに対し行なう。
【０２０８】
次に、匿名化部１９３１は、メモリ２０３内の実名分析結果テーブル１９４３を、ストレージ２０２に出力する（Ｓ２４１８）。
【０２０９】
上述の第２の実施形態のシステムの特徴は、匿名化条件情報１９４１を用いて匿名語の変換方法を指定できることに特徴がある。第２の実施形態のシステムは、識別可能性評価装置１０３を有しているので、上述の第１の実施形態のシステムと同じ処理により、識別可能性が高い単語の組みを確実に匿名化することが可能である。しかし、第２の実施形態のシステムでは、文章データ匿名化装置１０４が匿名化条件情報１９４１を用いて設定された条件に従い匿名化することにより、匿名語が与える文書データの識別可能性を調整できるようになる。具体的には、例えば、選択肢「全体に共通」を与えたとき、変換された匿名語が持つ文書データの識別可能性は匿名化前と同じである。第２の実施形態のシステムでは、システム利用者がこのような変換を望まない場合、選択肢「文書ごとに共通」を選べば、識別可能性を匿名化前よりも小さくすることができる。
【０２１０】
さらに、第２の実施形態のシステムでは、匿名対応テーブル１９４２により、分析システムに匿名化文書データのみを開示して分析を任せつつ、その分析結果に含まれる匿名語を実名語に変換することが容易となる。この用途としては、例えば文書データの分析を業務委託するケースがある。業務委託する側は文書データを匿名化して業務受託側に渡し、その後得られた分析結果を業務委託側で実名に戻すことができる。特に、匿名化条件情報１９４１で選択肢「全体に共通」を選んでいる場合、単語の品詞、単語の出現頻度、複数の単語の共起頻度などを用いる分析では、匿名化前の文書データに対する分析結果と全く同じ結果を得ることができる。
【０２１１】
なお、上述のように、分析部１９１１の分析処理は任意でよい。分析部１９１１の分析処理として、例えば、匿名化文章データテーブル１４２を通常の文書データと見なして類似文書データ分類を行うことが可能である。このような類似文書データ分類の技術は従来技術であるが、例えば「高野明彦他：汎用連想計算エンジンの開発と大規模文書分析への応用、情報処理振興事業協会、独創的情報技術育成事業、2001年度成果報告論文」等に報告されている技術を用いるとよい。
【０２１２】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【０２１３】
例えば、識別確率を取得するための文章データは、匿名化対象となる文章データとは異なっていても良い。具体的は、例えば、コンタクトセンタデータ管理装置１０１のストレージ２０２には、過去１ヶ月間に取得した文章データを含む文章データテーブル１１１と、これとは別の長期の過去の文書データ（以下、長期文章データ）とが格納されている場合が考えられる。この場合、コンタクトセンタデータ管理装置１０１は、上述のＳ１１０２の処理で、長期文書データを文章データ解析装置１０２に送信する。文章データ解析装置１０２は、長期文章データに対し上述のＳ１１０３の処理を行なうことで、索引情報テーブル１２６を生成する。さらに、識別可能性評価装置１０３は、上述のＳ１１０５の処理で、長期文章データに基づき生成された索引情報テーブル１２６等を参照して、識別可能性の評価を行なう。この処理により生成される識別可能性評価結果情報１３３は、長期文書データに基づいた匿名化不要語組みを有するものとなる。Ｓ１１０９の文書匿名化処理では、文章データ匿名化装置１０４の匿名化部１４１は、長期文書データに基づいた識別可能性評価結果情報１３３を識別可能性評価装置１０３から取得し、この識別可能性評価結果情報１３３を参照して、コンタクトセンタデータ管理装置１０１の文章データテーブル１１１から取得した文章データに匿名化処理を行なう。これにより、長期文書データに頻出する出現語組みが開示され、頻出しない出現語組みは匿名語に変換される。
【０２１４】
また、上述のＳ１１０５の、索引情報テーブル１２６´のメモリ２０３内での保持、及び索引情報テーブル１２６´に対する処理は、任意の索引処理方法を用いることができる。例えば、「高野明彦他：汎用連想計算エンジンの開発と大規模文書分析への応用、情報処理振興事業協会、独創的情報技術育成事業、2001年度成果報告論文」に開示されている技術を用いてもよい。
【０２１５】
また、上述のＳ１６１０において、識別可能性評価装置１０３の識別可能性評価部１３１は、メモリ２０３内に用意した匿名化不要語テーブル１３４に匿名化不要語組みを出力し、この匿名化不要語テーブル１３４を最後にストレージ２０２に格納しているが、これに限られるわけではなく、例えば、匿名化不要語テーブル１３４を最初からストレージ２０２に用意し、ここに直接出力する形でも構わない。この場合、メモリ内の匿名化不要語テーブル１３４をまとめてストレージ２０２に出力するＳ１３１１は省略される。
【０２１６】
また、上述の実施形態では、匿名語を生成するために、文章データや名寄せデータごとの情報に、連番等を組合せるものとしたが、匿名語を生成する技術はこれに限られるわけではない。文章データや名寄せデータごとの情報は必ずしも必要ではなく、また、連番である必要はない。例えば、乱数等を発生させ、文章データや名寄せデータ等によらず匿名語を生成してもよい。
【図面の簡単な説明】
【０２１７】
【図１】第１の実施形態におけるシステム構成例を示す図である。
【図２】同実施形態において、ハードウェア構成例を示す図である。
【図３】同実施形態において、文章データテーブルの一例を示す図である。
【図４】同実施形態において、名寄せ条件情報の一例を示す図である。
【図５】同実施形態において、名寄せデータ管理テーブルの一例を示す図である。
【図６】同実施形態において、索引情報テーブルの一例を示す図である。
【図７】同実施形態において、識別可能性許容値情報の一例を示す図である。
【図８】同実施形態において、識別可能性評価結果情報の一例を示す図である。
【図９】同実施形態において、匿名化不要語テーブルの一例を示す図である。
【図１０】同実施形態において、匿名化文章データテーブルの一例を示す図である。
【図１１】同実施形態において、シーケンス例を示す図である。
【図１２】同実施形態において、文章データ解析装置の動作例を説明する図である。
【図１３】同実施形態において、識別可能性評価装置の動作例を説明する図である。
【図１４】同実施形態において、識別可能性評価を評価する出現語組合せを説明するためのツリー図の例である。
【図１５】同実施形態において、識別可能性評価装置の動作例を説明する図である。
【図１６】同実施形態において、識別可能性評価装置の動作例を説明する図である。
【図１７】同実施形態において、文章データ匿名化装置の動作例を説明する図である。
【図１８】同実施形態において、匿名化した文章データを表示する画面例を示す図である。
【図１９】第２の実施形態におけるシステム構成例を示す図である。
【図２０】同実施形態において、匿名化条件情報の一例を示す図である。
【図２１】同実施形態において、匿名対応テーブルの一例を示す図である。
【図２２】同実施形態において、分析結果テーブル及び実名分析結果テーブルの一例を示す図である。
【図２３】同実施形態において、品詞テーブルの一例を示す図である。
【図２４】同実施形態において、シーケンス例を示す図である。
【図２５】同実施形態において、匿名化条件を受け付ける画面例を示す図である。
【図２６】同実施形態において、匿名化文章データテーブルの一例を示す図である。
【符号の説明】
【０２１８】
１０１：コンタクトセンタデータ管理装置、１１１：文章データテーブル、１０２：文章データ解析装置、１２１：データ名寄せ部、１２２：形態素解析部、１２３：索引情報取得部、１２４：名寄せ条件情報、１２５：名寄せデータ管理テーブル、１２６：索引情報テーブル、１０３：識別可能性評価装置、１３１：識別可能性評価部、１３２：識別可能性許容値情報、１３３：識別可能性評価結果情報、８０１：識別可能性評価結果情報テーブル、１３４：匿名化不要語テーブル、１０４：文章データ匿名化装置、１４１（１９３１）：匿名化部、１４２：匿名化文章データテーブル１４２、１９０１：分析装置、１９１１：分析部、１９２１：分析結果テーブル、１９４１：匿名化条件情報、２００１：匿名化条件情報テーブル、１９４２：匿名対応テーブル、１９４３：実名分析結果テーブル、１９５１：品詞テーブル
【図１】
0005095281.tif 000002
【図２】
0005095281.tif 000003
【図３】
0005095281.tif 000004
【図４】
0005095281.tif 000005
【図５】
0005095281.tif 000006
【図６】
0005095281.tif 000007
【図７】
0005095281.tif 000008
【図８】
0005095281.tif 000009
【図９】
0005095281.tif 000010
【図１０】
0005095281.tif 000011
【図１１】
0005095281.tif 000012
【図１２】
0005095281.tif 000013
【図１３】
0005095281.tif 000014
【図１４】
0005095281.tif 000015
【図１５】
0005095281.tif 000016
【図１６】
0005095281.tif 000017
【図１７】
0005095281.tif 000018
【図１８】
0005095281.tif 000019
【図１９】
0005095281.tif 000020
【図２０】
0005095281.tif 000021
【図２１】
0005095281.tif 000022
【図２２】
0005095281.tif 000023
【図２３】
0005095281.tif 000024
【図２４】
0005095281.tif 000025
【図２５】
0005095281.tif 000026
【図２６】
0005095281.tif 000027