Skip to main content

pymasking — 個人情報マスキングツール

文書・画像に含まれる個人情報を自動検出してマスキングします。
Web UI と CLI の両方で動作します。


デモ

テキストタブ — テキストを直接入力してマスキング

テキストマスキングデモ

ファイルタブ — ドラッグ&ドロップでファイルをマスキング

ファイルマスキングデモ


動作環境

項目 要件
OS Windows 10 / 11(64bit)
Python 3.9 以上

インストール

pip install pymasking

初回セットアップ(runtime 配布版)

Python runtime を展開した場合は setup.bat をダブルクリックして実行してください。

setup.bat を実行すると以下が自動で行われます:
  1. Python runtime フォルダを ユーザー PATH に追加
  2. Scripts フォルダを ユーザー PATH に追加
  3. デスクトップに masking.bat をコピー

セットアップ完了後、新しいコマンドプロンプトを開くか、デスクトップの masking.bat をダブルクリックして起動できます。


画像 OCR モデルのダウンロード(画像の OCR マスキングに必要)

画像ファイル(jpg / png / bmp)のマスキングには EasyOCR の日本語モデル(約 96 MB)が必要です。
以下のコマンドで事前にダウンロードできます。

# GitHub からダウンロード(デフォルト)
masking-download.bat

# 社内サーバー / SharePoint からダウンロード
masking-download.bat --url https://company.sharepoint.com/sites/IT/Shared%20Documents/ocr-models/

# SSL 証明書エラーが出る場合(社内プロキシ環境)
masking-download.bat --url https://... --no-verify-ssl

モデルは pymasking/data/model/ に保存され、2回目以降はオフラインで動作します。
既にダウンロード済みのファイルはスキップされます。

手動でモデルをダウンロードする場合

ネットワーク制限等でコマンドが使えない場合は、以下の手順で手動配置できます。

1. 以下の ZIP ファイルをブラウザ等でダウンロード

ファイル ダウンロード URL
craft_mlt_25k.zip https://github.com/JaidedAI/EasyOCR/releases/download/pre-v1.1.6/craft_mlt_25k.zip
japanese_g2.zip https://github.com/JaidedAI/EasyOCR/releases/download/v1.3/japanese_g2.zip
english_g2.zip https://github.com/JaidedAI/EasyOCR/releases/download/v1.3/english_g2.zip

2. ZIP を展開し、.pth ファイルを取り出す

各 ZIP を展開すると .pth ファイルが1つ含まれています。

3. pymasking/data/model/ フォルダに配置

site-packages\pymasking\data\model\
    craft_mlt_25k.pth
    japanese_g2.pth
    english_g2.pth

site-packages の場所は python -c "import site; print(site.getsitepackages()[0])" で確認できます。


起動方法

Web UI(推奨)

デスクトップの masking.bat をダブルクリック、またはコマンドプロンプトで実行します。

masking.bat

ブラウザで http://127.0.0.1:55963 が自動的に開きます。
ブラウザのタブ・ウィンドウを閉じるとサーバーも自動終了します。

CLI

mask.bat report.docx
mask.bat report.docx --mode unique

出力ファイルは元のファイルと同じフォルダに _変換後 サフィックスを付けて保存されます(例: report_変換後.docx)。


Web UI の使い方

共通操作

マスキング方式の選択

画面上部の 2 つのボタンで方式を選択します。
ボタンをクリックするとマスキング前後の例が表示されます。

ボタン 効果
伏字(●) 検出した情報を で塗りつぶす(既定)
一意性保持 人物001 のように種別+連番に置換

マスキング対象の絞り込み

「マスキング対象」をクリックすると種別チェックボックスが展開されます。
チェックした種別のみをマスクします。全て ON の場合はすべてのカテゴリを対象とします。


テキストタブ

  1. テキストエリアに文章を貼り付け(Ctrl+V 可)
  2. 必要に応じて「マスキング対象」を展開してチェックボックスを調整
  3. マスキング実行 をクリック
  4. 下の結果欄に変換後テキストが表示される
  5. 結果をコピー でクリップボードにコピー

ファイルタブ

  1. ドロップエリアにファイルをドラッグ&ドロップ、またはクリックして選択
    (対応形式: docx / xlsx / pptx / pdf / jpg / png / bmp / txt / csv / json 等)
  2. 必要に応じて「マスキング対象」を展開してチェックボックスを調整
  3. マスキング実行 をクリック
    • ボタンが赤く点滅し「実行中」と表示されます
    • 下のプログレスバーで処理状況を確認できます
  4. 処理完了後、ボタンがオレンジ色の「ダウンロード」に変わります
  5. ダウンロード をクリックするとマスキング済みファイルが保存されます(ファイル名: 元のファイル名に _変換後 を付加)

対応ファイル形式

形式 処理方法
.txt .csv .json .xml .md .log テキスト置換
.docx .xlsx .pptx テキスト置換(書式保持)
.pdf テキスト座標を検出 → 黒矩形で塗りつぶし
.jpg .jpeg .png .bmp EasyOCR で検出 → 黒矩形で塗りつぶし

マスキング方式

方式 出力例
伏字(デフォルト) ●●●
一意性保持 人物001

画像・PDF は方式に関わらず常に視覚的塗りつぶし(黒矩形)になります。


検出カテゴリ

人物名 / 組織名 / 住所 / メールアドレス / 電話番号 / 日付 / 金額 / SNS アカウント / 特許番号 / シリアル番号 / 型番


カスタム辞書

pymasking/data/dict/custom_dict.txt にタブ区切りで追加すると独自の固有名詞を検出できます:

山田太郎	person
株式会社サンプル	org

Release files for pymasking 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymasking 1.0.6
File Size Uploaded
pymasking-1.0.6.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymasking 1.0.6
File Interpreter ABI Platform
pymasking-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / pymasking-1.0.6.tar.gz

Download URL pymasking-1.0.6.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f7b9830c707205d7c8fa68d5477d450cd3caa85ae1c5e7b128efba3f1b17b658
BLAKE2b-256 checksum
How to use checksums
4d425b7c6c39715b6dbd8679273ca36724ee87509599ce877c7306956273fa45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.

Transparency log

Release files / pymasking-1.0.6-py3-none-any.whl

Download URL pymasking-1.0.6-py3-none-any.whl
Size 469.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b00a8903f168f804d74adcdf83938a6c2b613ac5d8d89b5f858023fdd91bae5
BLAKE2b-256 checksum
How to use checksums
7e0094404c92c5955f9a6d01bd5bc70d4963c48d90b5123d90b9738fbf0058bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page