ブログに戻る

AIでPDFを自動マスキングする方法|無料・ローカル・アップロード不要

2026年5月29日17 分で読めるOnePDFs Team

PDFに人名が十数件、メールアドレスが2つ、電話番号が3つ、自宅住所が記載されている。法務から「明日までに全部塗りつぶしてほしい」と依頼が来る。手作業だとページを1枚ずつめくり、該当箇所を探し、矩形を描いて、漏れがないか祈ることになります。

正規表現はメールや構造化された電話番号など分かりやすいパターンには強いですが、人名("Apple" は果物か CEO か?)や国際電話の表記には弱い。結局は文書全体を目視で確認することになります。

これがまさに AI の得意分野です。OnePDFs の Smart Redact ツール は、OpenAI が公開している privacy-filter モデルをそのままブラウザ内で実行します。各ページを走査し、8 カテゴリの個人情報を見つけ、適用前にレビューできます。PDF はあなたのデバイスから出ません — サーバーへのアップロードもアカウントも料金もありません。

ここで言う「AI 墨消し」とは

ネット上の「AI PDF 墨消し」と謳う多くのサービスは、実際にはファイルをサーバーにアップロード(守りたい文書こそ最も漏らしたくないのに)するか、マーケティングサイトの裏で単純な正規表現を回しているかのどちらかです。Smart Redact はそのどちらでもありません。OpenAI の 15 億パラメータ NER(固有表現抽出)モデルがブラウザ内で検出を実行します。約 900 MB のモデルがキャッシュにない場合はダウンロードされ、キャッシュが残っている間は再利用できますが、ブラウザや利用者が削除すれば再ダウンロードが必要です。

1 回のスキャンで検出する 8 カテゴリ:

カテゴリ
人名"鈴木太郎" や "Tim Apple" などの氏名 — 同綴語と人名の文脈を区別
住所番地、郵便番号、都道府県+市区町村の行
メール標準形式に加え、難読化形式(john [at] example.com)も
電話国際表記、市外局番、内線番号
URLhttp/https/ftp リンクと裸ドメイン
日付生年月日や文書日付など、一般的な書式すべて
口座番号クレジットカード片、銀行ルーティング、IBAN 風文字列
シークレット文書に紛れ込んだ API キー・パスワード・トークン

ここが正規表現には到達できない領域です。文脈が重要 — モデルは「Apple Inc. が決算を発表した」の Apple は会社、「先週 Tim Apple にメールした」の Apple は人だと理解します。

PDF を墨消しする 3 ステップ

ワークフローはあえてシンプルに — アップロード、スキャン、適用。

ステップ 1: Smart Redact ツールを開く

/tools/pdf-smart-redact にアクセスし、PDF をアップロードエリアにドラッグします。ファイルはブラウザに留まり、外部には何も送信されません。エディタが開くと Smart Redact サブツールが既に有効化されています。

Smart Redactツールのランディングページ。アップロード用のドロップゾーンと約900MBのモデルダウンロード案内が表示されている

ステップ 2: AI スキャンを実行

スキャン をクリックします。privacy-filter モデルがブラウザキャッシュにない場合は、約 900 MB のデータを先にダウンロードします。Cache Storage のコピーが利用できる間は再利用できますが、キャッシュの削除や自動消去後は再ダウンロードが必要です。読み込みと検出の時間は、回線、ブラウザ、端末、利用可能なアクセラレーション、ページ数、文書構造によって変わり、固定時間では完了しません。検出はローカルで実行され、利用可能なら WebGPU、そうでなければブラウザ対応のフォールバックを使います。

スキャン中はパネルにページ単位の進捗が表示されます。検出された項目はページごとにグループ化されたリストに並び、PDF 上でもカテゴリ別の色でハイライトされます。

日本語顧客プロファイルPDFのスキャン結果。氏名・メール・+81電話番号・東京の住所など複数のPII要素がハイライトされ、右パネルにエンティティが分類別に列挙されている

ステップ 3: 確認して適用

ここからは人による判断のフェーズ。パネル上部に 3 つのコントロールがあります:

  1. 検出タイプ — PII カテゴリごとに 8 個のチェックボックス。墨消ししたくないカテゴリのチェックを外します。たとえば日付は公開情報として残しておきたい場合、「日付」のチェックを外せば、対応するハイライトが PDF 上から即座に消えます。
  2. 信頼度しきい値 — 0.50〜0.99 のスライダー。高くすると誤検出は減りますが境界事例を見逃すかも。低くすると検出は増えますが微妙な判定も拾われます。デフォルトの 0.85 が大半の文書に最適です。
  3. 墨消しを適用 — 最終アクション。クリックすると、確認済みの全エンティティに不透明な黒い矩形が重なります。現在の実装は書き出し時に該当箇所へ矩形を描画するもので、下層のテキストオブジェクトや元画像の画素は削除しません。これは視覚的なマスクであり、安全な削除を保証するものではありません。

リスト内に誤検出があれば、横の × で 1 件だけ削除できます。カテゴリ全体が誤検出だらけならカテゴリごとオフ。「適用」前は候補のプレビューだけで、「適用」後も選択した矩形マスクが追加されるだけです。マスク下の元コンテンツは消去されません。

墨消し適用後の日本語PDFで、氏名・メール・電話・住所・口座番号・APIトークンの位置が不透明な黒い矩形で覆われている

手動の墨消しツールではダメなのか

OnePDFs には手動墨消し用に PDF 塗りつぶしPDF 消去 がすでにあります。隠す対象と場所が分かっている時には十分使えます。Smart Redact が活きるのは:

  • 文書が長く、漏れがないか確実にしたい時
  • どんな氏名やメールが含まれているか事前に分からない時
  • 1 カテゴリだけ(たとえば全電話番号だけ)墨消しして他は残したい時
  • 同種の文書を繰り返し処理し、一貫したルールが欲しい時

一般的なレビュー用コピーなら、AI スキャン後に手動ツールで人が確認する流れが便利です。特に機微な資料では、この視覚的マスクだけに頼らず、下層コンテンツを除去できる墨消し処理を使い、書き出し後のファイルも検証してください。Smart Redact は判断や安全なサニタイズの代替ではありません。

プライバシーの仕組み

このツールの存在意義は、守りたいデータを漏らさないこと。だからこそ、各ステップが「どこ」で起きているかを明示します:

  • あなたの PDF: ブラウザ内に留まる。メモリに読み込まれ、pdf.js でテキスト抽出され、ネットワークには出ません
  • モデル: キャッシュにない場合、約 900 MB の重みを HuggingFace CDN からダウンロードし、利用できる間はブラウザの Cache Storage に保存します。キャッシュが消去されれば再ダウンロードされる場合があります。モデル自体は送り返されず、推論は OnePDFs サーバではなくローカルで実行されます
  • 検出結果: 位置と信頼度を含むエンティティリスト。ブラウザメモリ内だけ
  • 視覚的にマスクした PDF: ローカルで pdf-lib により生成し、ダウンロード提供。ツールコードは検出したテキストやエンティティを意図的にログへ書き込みませんが、黒い矩形だけでは下層の PDF コンテンツが削除された証明にはなりません

データ取扱いに厳格なエンタープライズ環境なら、この点は重要です。AI はあなたの文書を「見ていない」 — 既にページを読み込んでいる JS ランタイム内で動いているだけです。

AI が見落とす場面

正直に限界を共有します。privacy-filter モデルは優秀ですが完璧ではありません:

  • テキストレイヤなしのスキャン PDF: モデルには抽出可能なテキストが必要。画像のみの PDF(多くのスキャン文書)は処理不可 — Smart Redact ボタン自体が無効化されます。先に信頼できる OCR ツールで検索可能なテキストレイヤを作り、認識結果を確認してください
  • 特殊な文脈の人名: コードスニペット内に埋もれた人名や、非英語表記の人名は見逃される可能性があります。信頼度しきい値を下げて検出量を増やし、人手で確認を
  • 口座番号に似た非口座の数字: 請求書 ID、SKU コードなど。誤検出の可能性。文書に多数含まれるなら「口座」をオフ、または個別に削除

通常のレビュー用コピーでは、デフォルト設定でスキャンし、ハイライト表示のまま目を通してから「適用」します。書き出し後は別の PDF リーダーでも開き、マスクした値を検索し、周辺のテキストを選択・コピーして確認してください。これでマスクの失敗やリーダー依存の差は見つけられますが、すべて通っても機微情報を視覚的な覆いだけで保護してよいことにはなりません。

よくある質問

料金はかかりますか?

サブスクリプションやページ単位の料金はありません。ただし利用可能なキャッシュがない場合は約 900 MB のモデルデータをダウンロードするため、通信契約によってはデータ通信量が発生します。

オフラインで動きますか?

モデルを利用できる状態では推論はローカルで実行され、キャッシュがあればモデルの再ダウンロードを避けられます。ただしページと必要なアプリ資源がブラウザに残っているかにも左右されるため、以降のすべてのセッションがオフラインで動くとは保証できません。

非英語の PDF にも対応?

privacy-filter モデルは主に英語データで学習されていますが、実用的な範囲は広いです。日本語文書での実測では、日本人の氏名、東京都〜区市町村レベルの住所、+81 電話番号、メール、URL、日本のマイナンバー/口座番号フォーマットを識別できます。日本語の日付や金融機関の支店名は時々見逃されますが、人手で簡単に補正できます。ラテン文字系のヨーロッパ言語(スペイン語、ドイツ語、フランス語)では人名・住所の検出は CJK より安定しています。

適用後、元のテキストはどうなりますか?

現在の実装では元のテキストは削除されません。「適用」で矩形マスクを追加し、書き出し時にその矩形を描画するか、四角形注釈として保存します。下層テキストが PDF 内に残るため、書き出し方法やリーダーによっては検索、コピー、テキスト抽出で見える可能性があります。これは視覚的なマスクとレビューに使い、機微情報の唯一の保護にはしないでください。共有前には下層コンテンツを除去する処理を使い、別のリーダーでも出力を検証します。

複数の PDF を一括処理できますか?

UI からはまだ未対応。モデルはブラウザタブ単位で読み込まれ、スキャン自体は 1 文書ずつ実行されます。安定したバッチ処理ニーズがあれば、キャッシュ済みモデルと当サービスの 圧縮 バッチ基盤を結合できる可能性 — フィードバックお待ちしています。

privacy-filter モデルはオープンソース?

はい。HuggingFace で寛容なライセンスのもと公開されています。当サービスはブラウザ内推論のため Transformers.js 移植版を使用しています。

まずは試す

Smart Redact を開き、隠したい個人情報が含まれた PDF を投入し、AI が見つけた候補を 1 件ずつ確認してください。モデルがキャッシュにない場合は約 900 MB のダウンロードが必要になることがあり、キャッシュが残っていれば再利用できます。所要時間は回線、ブラウザ、端末、ページ数、文書構造によって変わります。

AI が向かない視覚的マスク — ピンポイントの黒塗り、矩形の検閲、手動の白い覆い — には PDF 塗りつぶしPDF 消去 を併用できます。Smart Redact と補完関係にありますが、いずれも下層コンテンツを除去する墨消し処理の代わりにはなりません。

すべてのフローはブラウザ内完結。アップロードもサインアップも料金も不要。これがコンセプトの全てです。