Google Drive上のファイルから日本の個人情報保護法に該当する個人情報を自動検出するGoogle Apps Scriptツールです。
- 包括的ファイル対応: Google Workspace、Microsoft Office、PDFなど主要なドキュメント形式をサポート
- AI駆動の分析: OpenAI GPTを使用した高精度な個人情報検出
- バッチ処理: スプレッドシート上の複数ファイルを一括処理
- 詳細レポート: 検出された個人情報の種類と件数を詳細報告
- エラーハンドリング: 処理中断時の再開機能付き
- Google Docs - ドキュメント内容を完全抽出
- Google Sheets - 全シートのデータを抽出
- Google Slides - スライドテキストを抽出
- Google Forms - ファイル名ベース判定
- Google Drawings - ファイル名ベース判定
- Word (.docx, .doc) - テキスト変換で抽出
- Excel (.xlsx, .xls) - CSV変換で抽出
- PowerPoint (.pptx, .ppt) - テキスト変換で抽出
- PDF - ファイル名ベース判定
- HTML - HTMLパースでテキスト抽出
- RTF - テキスト変換で抽出
- OpenDocument (.odt, .ods, .odp)
- テキストファイル (.txt, .csv)
- 氏名(フルネーム、姓名の組み合わせ)
- 住所(都道府県・市区町村・番地等)
- 電話番号(固定電話・携帯電話)
- メールアドレス
- 生年月日
- マイナンバー(個人番号)
- 運転免許証番号
- パスポート番号
- クレジットカード番号
- 銀行口座番号
- その他個人識別符号
pii_in_google_drive/
├── pii_main.gs # メイン実行・設定・テスト関数
├── pii_file_extractors.gs # ファイルコンテンツ抽出処理
├── pii_analyzer.gs # OpenAI個人情報分析
├── settings.gs # 設定ファイル
├── pii_in_google_drive.gs # 元の統合ファイル(参考用)
├── README.md # このファイル
└── LICENSE # Apache 2.0ライセンス
- Google Apps Scriptにアクセス
- 新しいプロジェクトを作成
- 以下のファイルをプロジェクトに追加:
pii_main.gspii_file_extractors.gspii_analyzer.gssettings.gs
- Google Apps Scriptエディタで「ライブラリ」→「サービス」
- 「Drive API」を有効化
- 「Slides API」を有効化(PowerPoint処理用)
- OpenAIでAPIキーを取得
settings.gsファイルでAPIキーを設定:
const SETTINGS = {
OPENAI_API_KEY: 'your-openai-api-key-here',
SPREADSHEET_NAME: 'your-spreadsheet',
OPENAI_MODEL: 'gpt-4',
FILELNIK_ROW: 5, // E列
PII_ROW: 8, // H列
COUNT_ROW: 9, // I列
DETAIL_ROW: 10, // J列
OPENAI_MAX_TOKENS: 1500,
OPENAI_TEMPERATURE: 0.1
};- Google Driveに「PII_CHECK_LIST」という名前のスプレッドシートを作成
- E列にGoogle Driveファイルの共有リンクを入力
- ファイルには適切な共有権限を設定
// 1. 設定確認
testSetup();
// 2. 特定行のテスト実行(推奨)
testSpecificRow(2); // 2行目をテスト
// 3. 全体処理の実行
main();| 関数名 | 説明 |
|---|---|
main() |
メイン処理(全行を順次処理) |
testSetup() |
設定とデータの確認 |
testSpecificRow(行番号) |
特定行のテスト実行 |
resumeProcessing() |
エラー行の再処理 |
showMimeTypeStats() |
ファイル形式別統計表示 |
showInstructions() |
使い方ガイド表示 |
処理完了後、スプレッドシートに結果が出力されます:
- H列: 個人情報有無(YES/NO)
- I列: 検出項目(例:「氏名 3件, メール 2件」)
- J列: 検知理由詳細
const SETTINGS = {
OPENAI_API_KEY: '', // OpenAI APIキー
SPREADSHEET_NAME: '', // 対象スプレッドシート名
OPENAI_MODEL: 'gpt-4o-mini', // 使用AIモデル
FILELNIK_ROW: 5, // ファイルリンク列番号
PII_ROW: 8, // 結果出力列番号
COUNT_ROW: 9, // 件数出力列番号
DETAIL_ROW: 10, // 詳細出力列番号
OPENAI_MAX_TOKENS: 1500, // 最大トークン数
OPENAI_TEMPERATURE: 0.1 // 応答の一貫性設定
};- データ保護: 個人情報の具体的内容はログや結果に記録されません
- API使用: OpenAIへの送信データは分析後に削除されます
- アクセス権限: 適切なGoogle Driveファイル共有権限が必要
- ログ管理: 機密情報を含まない処理ログのみを記録
- 処理速度: API制限により3秒間隔で処理
- ファイルサイズ: 大容量ファイルは要約して分析
- PDF制限: PDFは内容抽出不可のためファイル名で判定
- 権限依存: ファイルアクセス権限が必要
Q: エラーで処理が止まる
resumeProcessing(); // エラー行のみ再処理Q: 設定が正しいか確認したい
testSetup(); // 設定確認Q: 特定のファイルをテストしたい
testSpecificRow(5); // 5行目をテスト実行Q: ファイル形式の統計を知りたい
showMimeTypeStats(); // ファイル形式別統計- 処理速度: 約20ファイル/分(API制限による)
- 精度: GPT-4o-miniによる高精度な日本語個人情報検出
- スケーラビリティ: 数千ファイルの一括処理に対応
- このリポジトリをフォーク
- 機能ブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
このプロジェクトはApache License 2.0の下でライセンスされています。詳細はLICENSEファイルを参照してください。
- Issues: GitHub Issues
- Wiki: プロジェクトWiki
- Discussion: GitHub Discussions