2026年3月24日火曜日

生成AI利用時の個人情報保護を両立するブラウザ完結型マスキングツール「ふせじ」の開発と公開

生成AIの業務活用が広がる一方で、入力テキストに含まれる個人情報の取り扱いは未解決の課題として残っている。氏名・メールアドレス・所属部署を含む文書をそのままクラウド型AIに送信することへの懸念は、大学・研究機関・企業の現場で共通して聞かれる声だ。

この問題を解決するために、ブラウザ上で完結する個人情報マスキングツール「ふせじ」を開発し、無償公開した。

https://fuseji.jp


既存ツールの課題

個人情報マスキングに関するツールはすでに複数存在するが、実際に調査してみると、個人や小規模組織が気軽に使える選択肢はほとんどない。

企業向けの本格的なツールは月額契約が必要で、かつサーバーサイドでの処理を前提としている。唯一無償で試せるデモサービスは、マスキングの対象である個人情報を外部サーバーに送信する仕組みになっており、「個人情報を守るために個人情報を送信する」という矛盾を抱えている。

技術的な観点からもう一点指摘したいのは、既存ツールの多くが複数人物を同一記号(●●)で置き換えるため、生成AIに渡した時点で人間関係や文脈が失われてしまうことだ。誰が誰に何を伝えたのかという構造こそが、AIに処理させたい情報の核心であるにもかかわらず。


設計の基本方針

「ふせじ」の設計において最も重視したのは、「データが外部に出ない」という点を構造的に保証することだ。

ツールはHTMLファイル1つで完結しており、サーバーとの通信は一切発生しない。Google Fontsなどの外部リソース読み込みも排除しており、ネットワークが存在しない環境でも動作する。「データ送信なし」を謳う以上、ソースコードを公開して誰でも検証できる状態にしておくことが誠実な姿勢だと考え、GitHubでオープンソースとして公開している。

https://github.com/TadashiNakai/fuseji


主な機能

番号付きラベルによる文脈の保持

氏名・法人名・部署名・メールアドレス・電話番号・住所など各種個人情報を、種別と番号を組み合わせたラベル({姓名1}{学校法人1}{部1} 等)に置き換える。同一人物・同一情報には常に同じ番号が使われるため、生成AIは置き換え後のテキストから人間関係・組織構造・文脈を正確に読み取ることができる。

たとえば以下のような変換が行われる。

【変換前】
差出人: 布施 譲治 <j.fuse@fuseji.jp>
宛先: 鈴木 花子 <h.suzuki@fuseji.jp>
件名: 例のプロジェクトの進捗について

鈴木さん
先日の細胞抽出液の精製の件だけど、ついに逆翻訳酵素の単離に成功したみたいだね。

【変換後】
差出人: {姓名1} <{メールアドレス1}>
宛先: {姓名2} <{メールアドレス2}>
件名: 例のプロジェクトの進捗について

{姓2}さん
先日の細胞抽出液の精製の件だけど、ついに{伏字1}の単離に成功したみたいだね。

「逆翻訳酵素」のような未発表の研究情報は「伏字追加」機能で手動登録し、{伏字1} として保護できる。(なお「逆翻訳酵素」は本記事のデモ用に作った架空の物質名である。生物学にお詳しい方はご容赦いただきたい。)カテゴリ名を指定すれば {未発表物質1} のような意味のあるラベルにすることも可能だ。

日本語に特化した自動検出

日本語の氏名判定は難しいとされているが、複数の手法を組み合わせて実用的な精度を実現している。

  • メールヘッダー(差出人・宛先・CC)からの氏名抽出
  • 敬称(様・先生・教授・部長等)・職位からの検出
  • スペース入り氏名(鈴 木 花 子)への対応
  • 3文字以上の著名な姓(佐々木・長谷川・武者小路等)の辞書処理
  • ローマ字氏名(括弧内・署名ブロック)の検出

法人名は種別ごと(学校法人・株式会社・医療法人等)に識別し、{学校法人1}{株式会社1} のように区別する。部署名・学科名・学部名・大学名も自動で候補として提示し、確認・削除してからマスキングを実行できる。

逆変換機能

これが「ふせじ」の最も重要な機能の一つだ。

マスキング済みテキストを生成AIに入力して得られた出力には、{姓名1} などのラベルが残った状態で返ってくる。このAIの出力テキストを「逆変換」機能に貼り付けると、対応リスト(ラベル↔原文)を参照して元の実名に一括で復元できる。

【AIの出力(ラベル入り)】
{大学1} {学部1} {学科1}の{姓1}研究室に所属する {姓名1} より、
{姓名2}({姓2}さん)へ向けた業務連絡です。
目標としていた「{伏字1}」の単離に成功した旨が報告されています。

【逆変換後】
政令都市大学 生命科学部 分子生化学科の布施研究室に所属する 布施 譲治 より、
鈴木 花子(鈴木さん)へ向けた業務連絡です。
目標としていた「逆翻訳酵素」の単離に成功した旨が報告されています。

対応リストはJSON形式でダウンロードして保存できるため、後日別のセッションで同じ文書を扱う際にも復元が可能だ。TSV形式(タブ区切りテキスト)での読み込みにも対応しており、スプレッドシートで管理した対応表をそのまま活用できる。

「マスキングして送る → AIから受け取る → 元に戻す」という一連のワークフローがブラウザ内で完結する(図1)。

図1 「ふせじ」の実行画面。左側の原文(個人情報を含む)が右側のラベル置換済みテキストに変換される。下部の逆変換パネルでは、生成AIの出力に含まれるラベルを元の実名・情報に一括復元できる。すべての処理はブラウザ内で完結する。

操作の流れ

基本的な使い方は3ステップで完結する。

  1. マスキングしたいテキストを左側に貼り付ける
  2. ⚡ 自動判定ボタンを押す(候補が一覧表示される)
  3. マスキング実行ボタンを押す

不要な候補は✕で削除してから実行できる。自動判定で拾いきれない固有名詞は、手動での伏字追加機能で補うことができる。操作の詳細については別記事で図を用いて説明する予定だ。


今後の課題

正規表現ベースの検出には限界があり、文脈依存の誤検出は避けられない。現在は「広く拾って目視で確認・削除する」という運用を前提とした設計にしている。形態素解析(GiNZA等)を組み込めば精度は向上するが、ブラウザ単体での動作という制約とのトレードオフになる。

また現状は日本語に特化しており、英語混じりの文書については部分的な対応にとどまっている。


まとめ

「ふせじ」は、個人情報保護と生成AI活用の両立という現場の実務課題に応えるために開発した。大学・研究機関・自治体・企業の現場で、一人でも多くの方の役に立てれば幸いである。

フィードバックや不具合報告は GitHub Issues または X(@TadashiNakai)へ。


本記事はAIとの対話のみで構成されています。筆者は本文を1行も執筆していません。

0 件のコメント:

コメントを投稿