Presidio(プレシディオ)は、文章の中の氏名・電話番号・住所などを検出し、<PERSON> のようなラベル(目印の文字列)に置き換える無料のツールです。これを使えば、生成AIに送る前のマスキング(個人情報を伏せる処理)を自動化できます。架空の業務連絡で試したところ、日本語向けに設定しても伏せられない個人情報がありました。

この記事でわかること

  • 初期設定のままでは、名前がほとんど伏せられません
  • 日本語の文字に続けて書いたメールアドレスは、@より前が検出されずに残りました
  • 検出されなかった情報の多くは、ルールを足せば伏せられます
この記事の目次(4節)
  1. Presidioとは
  2. 架空の文例20件で試した結果
  3. 向いている場面と、向かない場面
  4. 開発を頼む前に確かめること

Presidioとは

Presidioは、個人情報を検出する部分と、検出した箇所を置き換える部分の2つからなります。2 もともとMicrosoftが公開したツールで、いまはData Privacy Stackという団体が開発を引き継いでいます。MITライセンス(著作権表示を残せば、商用でも自由に使える条件)のオープンソースで、開発の移管後もライセンスは変わっていません。3

伏せ方は、ラベルへの置き換え・削除・一部を*で隠す・暗号化などから選べます。元に戻せるのは、暗号化した場合だけです。5

9月26日にQiitaに投稿された記事は、同じ処理を外部ライブラリー(追加で組み込む部品)を使わずに実装しています。1 この記事がとっているのは、正規表現(決まった書式)でメールアドレスや電話番号を探す方法です。人名の検出は難しいと、投稿者も書いています。Presidioは、文脈から人名を判定する言語モデルを組み合わせられる点が、この方法と異なります。

架空の文例20件で試した結果

どこまで伏せられるかを、2026年9月28日に試しました。使ったのはpresidio-analyzer 2.2.364(7月22日公開のバージョン)とPython 3.11です。6 試験に使った文は、訪問の予定や家族からの連絡を想定した架空のもので、漢字の名前が13人分含まれていました。

初期設定では、名前がほとんど伏せられない

Presidioの初期設定は英語向けです。4 初期設定のまま20件の文例を処理させると、漢字の名前13人のうち11人は検出されませんでした。伏せられた2人も、名前を含む文全体が1つのラベルに置き換わっただけです。住所は1件も検出されませんでした。

日本語の文を扱うには、日本語の言語モデルを組み込む設定が要ります。今回は、自然言語処理ライブラリー「spaCy」の日本語モデル(ja_core_news_md)を使いました。開発元が公表している再現率(人名や地名などを見つけ出せた割合)は、67.6%です。7

日本語向けの設定で伏せられたもの

含まれていた情報伏せられたか
漢字の名前(「高橋様」「伊藤さん」など13人)13人とも伏せられた
住所(東京都世田谷区…の番地まで)伏せられた
携帯電話の番号・生年月日伏せられた
カタカナの名前(ヤマダ タロウ様)姓は会社名などと誤って判定されて伏せられ、名は残った
ひらがなの名前(やまだ様)伏せられなかった
日本語の文字に続けたメールアドレス@より後ろだけ伏せられた
マイナンバー(12桁)・口座番号・郵便番号伏せられなかった
病名(糖尿病)・福祉用具(車いす)伏せられなかった

名前が伏せられるかどうかは、表記で決まりました。読み仮名で書く書類や、ひらがなで呼ぶメモがある職場では、そこが漏れ口になりえます。

メールアドレスは、前後に空白を入れた文ではすべて伏せられました。ソースコードを確かめたところ、検出ルールは日本語の文字も英字と同じく単語の一部として扱っていました。このため「メールはhanako.yamada@example.jpです」までを1つのアドレスとみなし、形式が正しくないとして検出結果から外していました。@より後ろが伏せられたのは、URLを検出する別のルールが、ドメイン(@より後ろの部分)だけを見つけたためです。

ルールを足すと、多くは伏せられる

Presidioには、独自の検出ルールを追加する仕組みがあります。2 前後に空白がなくても見つけられるように書いたルールを足すと、メールアドレス・マイナンバー・郵便番号の3つは伏せられました。口座番号のルールは今回は試していません。

伏せたい語を前もって登録しておく機能(Presidioでは「deny list」と呼びます)も、前後に単語の区切りがあることを前提にしています。このため、カタカナとひらがなの名前は登録しても伏せられませんでした。同じ名前を、空白がなくても見つかるルールとして登録すると伏せられました。

処理時間を実測すると、50字前後の文1件あたり約0.02秒でした(4コアのクラウド環境で200回の平均)。日本語モデルと辞書を合わせて、ディスクの空きが250MBほど必要です。

向いている場面と、向かない場面

向いているのは、問い合わせメールや議事録を生成AIに送る前の一次チェックです。 例えば、利用者の家族から受けた電話の記録を生成AIで要約している訪問介護事業所なら、名前と電話番号を伏せてから送れます。

一方で、伏せた後の文章を「個人情報を含まない文章」として扱うのは危険です。開発元も公式の説明で、自動検出である以上、すべてを見つけられる保証はないと断っています。2

誰がどの病気かを示す記録は「病歴」にあたり、法律で「要配慮個人情報」とされています。取得に原則として本人の同意が要るなど、扱いが厳しく決められています。9 Presidioの日本語向けの設定には、病名を検出するルールがありません。

複数の人の名前がどれも同じラベルになると、誰が誰か分からなくなる点にも注意が要ります。今回、山田太郎さんと山田花子さんはどちらも <PERSON> になりました。家族の関係を要約に残したいなら、人ごとに違うラベルにする設定が必要です。

開発を頼む前に確かめること

個人情報保護委員会は、事業者が生成AIサービスを使う際の注意点を示しています。個人情報を含むプロンプトを入力する場合には、利用目的の達成に必要な範囲内かを十分に確認するよう求めています。8 伏せる処理を入れても、この確認は別に要ります。開発会社に頼む場合は、あわせて次の点を確かめておきましょう。

  • 処理をどこで実行するか。 Presidio自体は社内のパソコンやサーバーで動かせます。伏せる前の文章を外部に送る設計になっていないか
  • 日本語向けに設定しているか、どの検出ルールを追加したか。 電話番号・メールアドレス・マイナンバー・郵便番号のルールと、利用者の名前の登録があるか
  • ライセンスの条件を満たしているか。 PresidioはMITライセンスですが、日本語モデルはCC BY-SA 4.0という別のライセンスです。7 製品に組み込んで配布する場合は特に確認が要ります
  • 検出されなかった情報をどう扱うか。 伏せた後の文章を人が見てから送るのか、送らない記録をどう決めるか

生成AIに入力してよい情報の決め方は、規程・契約・本人を特定できるかの順で確かめる記事にまとめています。法改正の動きは、改正個人情報保護法の記事で扱っています。入力をAIの学習に使わせない設定は、ChatGPTの画像流出の記事をご覧ください。

送る文章に含まれる個人情報が名前と連絡先だけなら、ルールを足したPresidioで伏せてから送れば足ります。病名や口座番号が含まれる記録は、伏せる処理に頼らず、生成AIに送らない範囲に入れておくのが安全です。

出典

  1. TechStudio Lab「生成AI送信前にPythonで個人情報をマスキングする」(Qiita、2026年9月26日)(参照 2026-09-28)
  2. Presidio(GitHub のリポジトリ)(参照 2026-09-28)
  3. Presidio「Presidio's Transition to Community Governance」(参照 2026-09-28)
  4. Presidio ドキュメント「PII detection in different languages」(参照 2026-09-28)
  5. Presidio ドキュメント「Presidio Anonymizer」(参照 2026-09-28)
  6. PyPI「presidio-analyzer」(2.2.364、2026年7月22日)(参照 2026-09-28)
  7. spaCy「ja_core_news_md-3.8.0」(参照 2026-09-28)
  8. 個人情報保護委員会「生成AIサービスの利用に関する注意喚起等」(2023年6月2日)(参照 2026-09-28)
  9. 個人情報保護委員会「『要配慮個人情報』とはどのようなものを指しますか」(参照 2026-09-28)

任せる

AI秘書に任せる

問い合わせの受付から請求書の作成までの業務を、AIで自動化します。

できることを見る 相談する(初回無料・30分)