ChatGPT や Claude に業務テキストを渡したいけれど、個人情報が入っていて渡せない——その前段に挟むためのスクリプトです。氏名・電話・メール・住所・郵便番号・生年月日・カード番号・マイナンバーを検出して【氏名1】【電話1】のようなプレースホルダに置換し、マッピング表を使って処理後に元へ戻せます。
できること
- 8 種類の個人情報を検出してマスキング(同じ値には同じ番号が付く連結方式)
- マッピング表(JSON)を出力し、LLM 処理後にアンマスク(復元)できる
- 会議の日付を誤って隠さないよう、生年月日は文脈があるときだけ検出
- pip install 不要。Python 標準ライブラリだけで動く
使い方
# マスクして標準出力へ
python mask_pii.py input.txt
# マッピング表を保存(あとで復元する場合)
python mask_pii.py input.txt --map mapping.json
検出の仕組み・精度の実測・どこまで検出できないかは、解説記事に測定データ付きでまとめています。重要データに使う前に、必ず手元のサンプルで精度を確認してください。