Personal Information Masking

AI個人情報匿名化ツール

AI個人情報匿名化ツールは、文章に含まれる氏名・住所・電話番号・メールアドレス・マイナンバー・クレジットカード番号などを自動で検出し、ワンクリックでマスキングできる無料ツールです。AIによる固有表現抽出と正規表現・文脈ルールを組み合わせて検出し、検出箇所はクリックで除外・追加できます。AI解析をOFFにすれば外部送信なしでブラウザ内だけで処理できます。

使い方

  1. 匿名化したい文章を入力欄に貼り付けます(一度に20,000文字まで)。
  2. 人名・組織名の検出精度を上げたい場合は「AI解析を使う」をONに、外部送信を避けたい場合はOFFにします。
  3. マスク書式(ラベル置換・連番ラベル・塗りつぶし・削除など)を選びます。
  4. 「個人情報を検出する」ボタンを押します。
  5. 色分けされたプレビューや検出一覧をクリックして、マスク対象の除外・再指定を調整します。
  6. 検出漏れは、入力欄で文字をドラッグ選択して「選択範囲をマスクに追加」を押すと補えます。
  7. 「匿名化テキストをコピー」または「テキストファイルで保存」で結果を取り出します。

個人情報の匿名化とは|仕組みと使いどころ

個人情報の匿名化(マスキング)とは

個人情報の匿名化とは、文章に含まれる氏名・住所・電話番号・メールアドレスなど、特定の個人を識別できる情報を、別の文字列に置き換えたり削除したりして、個人を特定できない状態にする処理のことです。マスキング、伏せ字化、匿名加工とも呼ばれます。

紙の書類では黒く塗りつぶす作業にあたりますが、テキストデータでは「山田太郎」を「[氏名]」に、「090-1234-5678」を「[電話番号]」に置き換えるといった形で行います。

どんな場面で必要になるか

  • 生成AIに社内文書を入力する前:問い合わせメールや議事録をそのまま貼ると、顧客の氏名や連絡先が外部サービスへ渡ってしまいます。
  • 事例・実績としてWebに公開する前:取引先名や担当者名を伏せる必要があります。
  • 外部委託先・パートナーへデータを渡すとき:業務に不要な個人情報は事前に取り除くのが原則です。
  • 社内共有・研修資料を作るとき:実際のクレーム対応記録などを教材化する際に必須です。
  • 問い合わせのスクリーンショットや原稿を共有するとき:SNSやチャットへの転載時に見落としが起きやすい場面です。
  • 研究用・分析用データセットを作るとき:統計処理の前段として匿名化が求められます。

このツールの検出の仕組み

個人情報にはさまざまな種類があり、ひとつの方法だけで漏れなく検出することはできません。そのため本ツールは3つの手法を組み合わせています。

1. 正規表現によるパターン検出

形式が決まっている情報は、パターンマッチで確実に検出できます。ブラウザ内で処理されるため、外部への送信は発生しません。

  • メールアドレス
  • 電話番号(固定・携帯・+81表記、桁数を検証)
  • 郵便番号(〒付き・ハイフンあり/なし)
  • 住所(都道府県から始まる表記、市区町村+番地)
  • クレジットカード番号(Luhnアルゴリズムで検証)
  • マイナンバー(12桁・検査用数字で検証)
  • 法人番号(13桁・検査用数字で検証)
  • パスポート番号、銀行口座番号
  • IPアドレス、URL
  • 会員番号・注文番号・カルテ番号などの識別番号

単純な桁数一致ではなくチェックデジット検証を通しているため、「12桁の数字ならすべてマイナンバー扱い」といった誤検出を減らせます。全角数字やハイフンの表記ゆれ(-、−、‐、ー)にも対応しています。

2. AIによる固有表現抽出

氏名・会社名・地名のように形式が決まっていない情報は、パターンマッチでは検出できません。そこでAI解析をONにすると、自然言語処理による固有表現抽出を使い、次の8種類を判定します。

  • PERSON(人名)
  • ORGANIZATION(組織名・会社名)
  • LOCATION(地名)
  • ARTIFACT(固有物名)
  • DATE(日付)
  • TIME(時刻)
  • MONEY(金額)
  • PERCENT(割合)

たとえば「Xデータ株式会社の加藤さんは、10時に東京駅へ到着しました。」という文からは、「Xデータ株式会社」が組織名、「加藤」が人名、「10時」が時刻、「東京駅」が地名として抽出されます。抽出された位置情報をもとに、該当箇所だけを正確に置換します。

3. 文脈ルールによる補強

AIが拾いきれない氏名を、前後の言葉から推測して補います。次のようなパターンが対象です。

  • ラベルの直後:「氏名:山田太郎」「担当者:佐藤花子」「契約者名:鈴木一郎」「お名前 高橋美咲」
  • 敬称の直前:「山田太郎様」「田中さん」「鈴木部長」「加藤先生」
  • 番号ラベルの直後:「会員番号:AB-12345678」「注文番号 ORD-20240518-0091」「口座番号 1234567」

自動判定の限界と、確認を前提にした設計

人名の自動判定には原理的な限界があります。「光」「翼」「未来」「さくら」「大地」といった語は、人名にも一般名詞にもなり得ます。逆に「佐藤商店」「山田電機」「鈴木研究所」のように、社名の一部が人名として検出されることもあります。

そのため本ツールは「AIがすべて自動で消す」方式を採用していません。検出した箇所をカテゴリーごとに色分けして表示し、次の操作で利用者が最終確認できるようにしています。

  • ハイライトをクリックしてマスク対象から除外する
  • 入力欄でドラッグ選択して、検出漏れを手動で追加する
  • 同じ文字列を文書全体で一括してマスク/除外する
  • 「人名だけマスクし、地名や組織名は残す」など、カテゴリー単位で切り替える
  • よく使う語を辞書に登録し、常にマスク/常に除外する

マスク書式の選び方

用途によって適した書式は異なります。

  • ラベル置換([氏名]):もっとも読みやすい標準の書式です。文章として自然に読み下せます。
  • 連番ラベル([氏名1]):同じ人物に同じ番号を割り当てます。「AさんがBさんに連絡した」という関係性を保ったまま匿名化できるため、生成AIへの入力や事例分析に向いています。
  • 塗りつぶし(●✕*):元の文字数を保ちます。レイアウトを崩したくない帳票や、伏せ字の見た目を重視する場合に適しています。
  • 固定文字列:すべての個人情報を同じ文字列に統一します。
  • 削除:該当箇所を完全に取り除きます。個人情報が存在したこと自体を残したくない場合に使います。

外部送信について

個人情報を扱うツールでは、データがどこへ渡るのかが最も重要です。本ツールの動作は次のとおりです。

  • AI解析OFF:通信は一切発生しません。正規表現と文脈ルールによる検出、マスク処理のすべてをブラウザ内で実行します。
  • AI解析ON:人名・組織名などの判定のため、入力文が外部の固有表現抽出APIへ送信されます。当サイトのサーバーには文章を保存しません。

機密文書、顧客名簿、医療情報、未公開の社内文書などを扱う場合は、AI解析をOFFにしてご利用ください。氏名は「カスタム辞書」タブに登録しておけば、AIを使わなくても確実にマスクできます。設定とカスタム辞書はブラウザのlocalStorageにのみ保存され、サーバーへは送信されません。

匿名化するときのチェックポイント

ツールで処理したあと、公開・共有の前に次の点を確認してください。

  • 役職名や部署名など、氏名を消しても個人が特定できる情報が残っていないか
  • 珍しい地名・店舗名・プロジェクト名から所属が推測できないか
  • 日付と金額の組み合わせから取引先が特定できないか
  • 本文中のURLやファイル名にIDが含まれていないか
  • 複数の匿名化済み文書を突き合わせると個人が復元できないか

とくに最後の点は見落とされがちです。ひとつの文書では特定できなくても、別の資料と組み合わせることで個人が判明する場合があります。連番ラベル書式を使うと、文書ごとに番号の割り当てが変わるため、突き合わせのリスクを下げる助けになります。

よくある質問(FAQ)

Q. 入力した文章は外部に送信されますか?
A. 「AI解析を使う」がONのときのみ、人名・組織名・地名などを判定するため外部の固有表現抽出APIへ送信されます。当サイトのサーバーには文章を保存しません。OFFにすると通信は一切発生せず、すべてブラウザ内で処理されます。機密文書を扱う場合はOFFでのご利用をおすすめします。
Q. どの種類の個人情報を検出できますか?
A. メールアドレス・電話番号・郵便番号・住所・クレジットカード番号・マイナンバー・法人番号・パスポート番号・銀行口座番号・IPアドレス・URL・会員番号や注文番号などをパターン検出します。AI解析をONにすると、人名・組織名・地名・固有物名・日付・時刻・金額・割合も検出できます。
Q. 人名は完全に検出できますか?
A. できません。「光」「未来」「さくら」のように人名にも一般名詞にもなる語は自動判定に限界があります。逆に「佐藤商店」の一部が人名と判定されることもあります。本ツールは検出箇所を色分けして表示し、クリックで除外・追加できる設計にしていますので、公開前には必ず目視で確認してください。
Q. 検出されなかった箇所を手動でマスクできますか?
A. できます。入力欄でマスクしたい文字をドラッグ選択し、「選択範囲をマスクに追加」ボタンを押してください。「同じ文字列はまとめて切り替える」にチェックが入っていれば、文中の同じ文字列をすべて一括でマスクします。
Q. 連番ラベルとは何ですか?
A. 同じ語に同じ番号を割り当てるマスク書式です。「山田太郎」を常に[氏名1]、「佐藤花子」を常に[氏名2]に置き換えるため、「誰が誰に連絡したか」という関係性を保ったまま匿名化できます。生成AIに文章を渡して要約や分析をさせたい場合に便利です。
Q. クレジットカード番号やマイナンバーの誤検出は起きませんか?
A. クレジットカード番号はLuhnアルゴリズム、マイナンバーと法人番号は検査用数字で検証してから検出しています。単なる12桁・16桁の数字が誤検出される可能性は大きく下がりますが、偶然検証を通過する数字列もあるため、結果はクリックで除外できます。
Q. 文字数の上限はありますか?
A. 一度に処理できるのは20,000文字までです。AI解析には1リクエスト4KBという外部APIの制限があるため、句点や改行を目安に自動で分割し、文字位置を補正して結合しています。非常に長い文章ではAI解析が先頭部分のみになる場合があり、その際は結果画面に表示されます。
Q. 生成AIに社内文書を貼る前の下処理に使えますか?
A. その用途を想定しています。氏名や連絡先をラベルに置き換えてから渡せば、文章の構造を保ったまま情報流出のリスクを下げられます。ただし判定は完全ではないため、貼り付ける前に匿名化後のテキストを必ず確認してください。
Q. 設定やカスタム辞書はどこに保存されますか?
A. お使いのブラウザのlocalStorageにのみ保存され、サーバーへは送信されません。共用パソコンで使った場合は「辞書をすべて削除」「初期設定に戻す」で消去できます。
Q. スマートフォンでも使えますか?
A. はい。スマートフォン・タブレット・パソコンに対応したレスポンシブデザインです。検出箇所のタップによる除外・再指定、コピー、ファイル保存もモバイルで利用できます。

関連ツール

  • related_dynamic.php: 関連ツールが見つかりません。
    PHP_SELF = /cgi/ai-personal-information.php
    REQUEST_URI = /cgi/ai-personal-information.php
    current_file = ai-personal-information.php
    request_file = ai-personal-information.php
    category_id = ai
    category_name = AIツール
    tool_name = AI個人情報匿名化ツール
    tool.list.php = /home/luftonly/luft.co.jp/public_html/cgi/php/tool.list.php

注意事項

このツールは無料でご利用いただけます。個人情報の検出は自動処理であり、すべての個人情報を漏れなく検出することを保証するものではありません。匿名化後のテキストは必ず内容をご確認のうえご利用ください。本ツールの利用により生じた損害について、当社は責任を負いかねます。「AI解析を使う」がONの場合、入力文は人名などの判定のため外部の解析APIへ送信されます。当サイトのサーバーには文章を保存しません。人名・組織名・地名の判定にはWeb Services by Yahoo! JAPANを利用しています。

※このプログラムはPHP8.2.22にて作成、動作確認を行っております。
※ご利用下さっている皆様のご意見・ご要望(改善要望)をお寄せください。