情報公開請求の対象文書から、個人情報など不開示にあたる箇所の黒塗り候補を出す
情報公開請求の対象文書を読み、個人情報や法人の情報など、不開示にあたりうる箇所を原文のまま抜き出して一覧にします。担当者は白紙から探すのではなく、候補の一覧を見て黒塗りにするかを決めます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Python
- 対象業界
- 医療/教育/自治体
- 対象部門
- 法務/総務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 文書法制課が請求を受け付け、対象文書を持つ課を特定して割り振る
- 各課の担当者が対象文書を集め、紙のものはスキャンしてPDFにする
- 1ページずつ読み、不開示にあたりそうな箇所に印を付ける
- 印を付けた箇所ごとに、条例のどの号にあたるかと理由をメモする
- PDFの編集ソフトで黒塗りの範囲を指定し、文書法制課へ案を送る
- 文書法制課が案を読み、審査基準と違う箇所を各課に差し戻す
- 確定した範囲で黒塗りの処理をし、開示の準備をする
- 人文書法制課が請求を受け付け、各課に割り振る
- 人各課が対象文書を集め、請求番号のフォルダに保存する。紙のものはテキスト付きのPDFにする
- 自動保存をきっかけに中継プログラムが動き、ページ数・容量・テキストの有無を確かめる
- 自動決まった形式(電話番号、メールアドレス、口座番号らしい数字の並び)を、規則で拾う
- 自動Claude が、文書の種類と審査基準の要点を踏まえ、不開示にあたりうる箇所を原文のまま抜き出す
- 自動抜き出した文字列がそのページのテキストに含まれるかを照合し、規則で拾ったものと合わせる
- 自動候補の一覧(ページ、文字列、類型、理由、確信度)と、候補を強調表示したPDFを作る
- 人各課の担当者が候補を1件ずつ見て、塗る・塗らない・保留を決める。候補の無いページも流し読みする
- 人文書法制課が、各課の判断と理由を審査基準に照らして確かめる
- 人確定した範囲で黒塗りの処理を行い、処理後のPDFから文字が消えていることを確かめる
- 自動候補、判断、理由、処理後の確認結果を保存する
各工程の詳しい説明を読む
- 文書法制課が請求を受け付け、対象文書を持つ課を特定して割り振る
- 各課の担当者が対象文書を集め、紙のものはスキャンしてPDFにする
- 1ページずつ読み、不開示にあたりそうな箇所に印を付ける
- 印を付けた箇所ごとに、条例のどの号にあたるかと理由をメモする
- PDFの編集ソフトで黒塗りの範囲を指定し、文書法制課へ案を送る
- 文書法制課が案を読み、審査基準と違う箇所を各課に差し戻す
- 確定した範囲で黒塗りの処理をし、開示の準備をする
(a)1ページずつ読む時間が、期限を圧迫する。 補助金の申請書類が300ページあれば、担当者は本来の業務の合間に何日もかけて読むことになります。 読み込みが終わらないために、期限の延長を検討する件が出ます。
(b)氏名や口座番号は、散らばっていると見落とす。 表の中の氏名、押印の横の手書きの名前、添付の見積書の隅の振込先。本文の中の氏名は見つけても、欄外や添付資料の中のものを見落とします。 見落としは、開示した後に請求者からの指摘で分かることもあります。
(c)判断が、担当者と課でぶれる。 同じ種類の文書で、ある課は業者の担当者の氏名を塗り、別の課は塗らない。6番目の差し戻しの多くは、この種類のぶれです。 審査基準はあっても、各課の担当者が1件ごとに引いて確かめる時間はありません。
(d)理由のメモが、決定の起案に使えない。 4番目のメモは担当者ごとに書き方が違い、「個人情報のため」だけのものもあれば、条例の号まで書いたものもあります。 文書法制課が決定通知の理由を書くときに、改めて確かめ直すことになります。
- 【人】 文書法制課が請求を受け付け、各課に割り振る
- 【人】 各課が対象文書を集め、請求番号のフォルダに保存する。紙のものはテキスト付きのPDFにする
- 【自動】 保存をきっかけに中継プログラムが動き、ページ数・容量・テキストの有無を確かめる
- 【自動】 決まった形式(電話番号、メールアドレス、口座番号らしい数字の並び)を、規則で拾う
- 【自動】 Claude が、文書の種類と審査基準の要点を踏まえ、不開示にあたりうる箇所を原文のまま抜き出す
- 【自動】 抜き出した文字列がそのページのテキストに含まれるかを照合し、規則で拾ったものと合わせる
- 【自動】 候補の一覧(ページ、文字列、類型、理由、確信度)と、候補を強調表示したPDFを作る
- 【人】 各課の担当者が候補を1件ずつ見て、塗る・塗らない・保留を決める。候補の無いページも流し読みする
- 【人】 文書法制課が、各課の判断と理由を審査基準に照らして確かめる
- 【人】 確定した範囲で黒塗りの処理を行い、処理後のPDFから文字が消えていることを確かめる
- 【自動】 候補、判断、理由、処理後の確認結果を保存する
8番目が、この設計の分かれ目です。 人が判断するのは候補だけですが、候補の無いページを読まずに済ませることはしません。 流し読みの目的は、AIも規則も拾わなかった箇所、たとえば手書きの書き込みや画像の中の文字を見つけることです。全文を精読していた時間が、候補の判断と流し読みに置き換わります。
10番目を独立の手順にしているのは、黒塗りの処理そのものに失敗の型があるからです。 黒い図形を文字の上に重ねただけでは、下の文字がPDFのテキストとして残ります。処理後のPDFからテキストを取り出し、塗った文字列が残っていないかを確かめます。
02今回想定するシステム構成
対象文書(電子の文書・テキスト付きPDF・スキャンしたPDF) │ 紙は複合機の文字認識でテキスト付きPDFにする ▼【トリガー】請求番号のフォルダへの保存 中継プログラム(Python) ├──▶ ページ数・容量・パスワードの有無・テキストの有無の確認 ├──▶ 規則による検出(電話番号・メール・口座番号らしい並び) ▼ Claude API(PDFをそのまま渡す。構造化出力) │ ① 文書の種類の判定 ② 不開示にあたりうる箇所の抜き出し │ ③ 類型(個人・法人等・公共安全・審議検討・事務事業)と理由 ▼ 中継プログラム ── 抜き出した文字列がそのページにあるかの照合/規則の結果と統合 ▼ 候補の一覧(スプレッドシート)+ 候補を強調表示したPDF ▼ 【人:所管課が判断 → 文書法制課が確認 → 黒塗りの処理】 ▼ 処理後のPDFのテキストを取り出し、塗った文字列が残っていないかを確認
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Claude API(不開示にあたりうる箇所の抜き出しと、類型・理由の付与) | OpenAI API、Gemini API |
| 連携 | 中継プログラム(Python。フォルダの監視、規則の検出、照合、強調表示のPDFの作成) | Node.js で同じものを書く |
| 保管 | 文書管理システムと請求番号のフォルダ | 庁内のファイルサーバー |
| 黒塗りの処理 | PDFの編集ソフトの墨消しの機能 | ─ |
PDFの編集ソフトと受付台帳は、新しく足すものではありません。 この構成は候補を出すまでで、黒塗りの処理そのものは、今と同じソフトで人が行います。 最初の準備作業は、文書法制課の審査基準を、文書の種類ごとの要点に書き直すことです。
土台になるのは、Claude API のPDFの読み取りです。 Anthropic のドキュメントでは、PDFの中の文章・画像・図表・表について尋ねられ、各ページを文章と画像の両方として処理するとされています。表の中の氏名や、欄外の記載のようなレイアウトに依存する箇所を読めることが、この題材に合っています。
1回の要求には上限があります。 要求の大きさは32MBまで、ページ数は600ページまで(要求のコンテキストが100万トークン未満の場合は100ページまで)で、パスワードや暗号化の無い標準のPDFが対象とされています。細かい文字の多いページや複雑な表は、ページ数の上限の前にコンテキストを使い切ることがあるとされ、分けて送ることが勧められています。
出力は、構造化出力で受け取ります。 output_config.format に JSON Schema を渡すと、スキーマに沿った応答が返るとされています。ここで1つ、設計上の分かれ道があります。 Claude には文書の該当箇所を返す引用(citations)の機能もありますが、引用と構造化出力は一緒に使えず、併用すると400のエラーが返るとされています。この構成では構造化出力を選び、引用の代わりに、抜き出した文字列をプログラムで照合します。 さらに、引用の機能はテキストを取り出せないスキャンのPDFでは使えないとされており、スキャンの文書が混ざるこの業務では、照合を自分で持つほうが扱いやすいという理由もあります。
03どうやって実装するのか
処理の起点を決める
各課が請求番号のフォルダに対象文書を保存したことを起点にします。 請求の受付のときではありません。対象文書を集めるのは各課で、集め終わるまで何日かかかるからです。フォルダの名前に請求番号を付け、受付台帳と結び付けます。
1ファイルずつ処理し、処理が終わったファイルには結果のファイルを横に置きます。 候補の一覧と強調表示のPDFが並んでいれば処理済み、並んでいなければ未処理です。同じフォルダに後から文書が足されても、その文書だけが処理されます。
処理の順は、決定の期限の近い請求からにします。受付台帳から期限を引き、同じ日に複数の請求の文書が保存されたときは、期限の近いほうを先に処理します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 対象文書 | PDF(テキスト付き・スキャン)。請求番号、所管課 | 請求番号のフォルダ |
| 請求の情報 | 請求の内容、期限、請求番号 | 受付台帳 |
| 文書の種類ごとの要点 | 「補助金の申請書」「工事の契約書」などの種類ごとに、塗る例・塗らない例 | 文書法制課の審査基準を書き直したもの |
| 規則の検出の結果 | 電話番号・メールアドレス・口座番号らしい並びと、そのページ | 中継プログラム |
質を決めるのは、文書の種類ごとの要点です。 条例の条文だけを渡すと、生成AIは「個人に関する情報」を広く取り、職員の氏名も、業者の代表者の氏名も、同じ扱いで候補に挙げます。 候補が多すぎると、人の判断の時間が減りません。過去の決定の例から、種類ごとに「この文書のこの欄は塗る」「この欄は塗らない」を書き出した要点を渡します。
要点は、決めつけではなく候補の優先度として使います。 要点で「塗らない」とされる欄でも、特殊な事情がありうる記載は候補に残し、確信度を下げて返させます。判断を人に残すための情報として渡すということです。
データの取得方法を決める
PDFは、Claude API にそのまま渡します。 対象文書のページ数が多いときは、中継プログラムがページの範囲で分けて送ります。同じ文書を何度も送る場合は、Files API に上げて file_id で参照する方法もドキュメントで案内されています。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 対象文書のPDF | 請求番号のフォルダ | 抜き出しの対象 |
| 各ページのテキスト | 中継プログラムがPDFから取り出す | 抜き出した文字列の照合 |
| 文書の種類ごとの要点 | 文書法制課の要点の一覧 | 候補の優先度 |
| 請求の期限 | 受付台帳 | 処理の順番 |
各ページのテキストは、中継プログラムの側でも取り出します。 AIに渡すためではなく、AIが返した文字列を照合する相手として持っておくためです。スキャンのPDFは、複合機の文字認識で付いたテキストを使います。
文書の種類は、AIに最初に判定させます。 種類によって渡す要点が変わるので、1回目の呼び出しで種類を判定し、2回目で種類に合った要点を付けて抜き出しをさせます。1つのPDFに複数の種類の文書が綴じられていることも多いので、種類はページの範囲ごとに返させます。
AIへ渡す前に整形する
- パスワードと暗号化の確認 … パスワード付きのPDFは受け付けられません。所管課に解除を依頼します
- 容量とページ数の確認 … 1回の要求の上限を超えるものは、ページの範囲で分けます。細かい文字の多い文書は、上限より少ないページ数で分けます
- テキストの有無の確認 … テキストが取り出せないページは、照合ができないページとして印を付けます
- 規則による検出 … 電話番号、メールアドレス、口座番号らしい数字の並び、郵便番号と番地の組み合わせを正規表現で拾います
- ページ番号の付与 … PDFのページ番号と、文書に印刷されたページ番号がずれている場合があるため、PDFのページ番号で統一します
- 文書の種類の判定 … 1回目の呼び出しで、ページの範囲ごとの種類を判定します
4番目は、AIの抜き出しと並べて使います。 形式の決まった情報は、規則のほうが確実に拾えます。規則とAIのどちらか一方が拾えば候補にすることで、見落としの側を減らします。
3番目で印を付けたページは、人の流し読みを精読に切り替えます。 テキストが無いページは、AIが画像として読んでいても照合ができません。照合のできないページの候補は、すべて確信度を下げて扱います。
AIに処理させる
させるのは、不開示にあたりうる箇所を原文のまま抜き出し、類型と理由を付けることです。 類型は、情報公開の制度で定められている不開示情報の区分に合わせます。総務省の説明では、国の制度の不開示情報として次の6つが挙げられています。地方公共団体は各団体の条例によるため、区分は自団体の条例に合わせて置き換えます。
| 類型 | 中身の例 | 判断できないときの扱い |
|---|---|---|
| 個人情報 | 特定の個人を識別できる情報。氏名、住所、生年月日、顔写真、印影、組み合わせで個人が分かる記載 | 公務員か民間人か分からなければ候補に残し、確信度を下げる |
| 法人情報 | 法人の正当な利益を害する情報。口座番号、単価の内訳、技術上のノウハウ | 公表済みか分からなければ候補に残す |
| 国家安全情報 | 国の安全、諸外国との信頼関係等を害する情報 | 自治体の文書では稀。挙げる場合は必ず確信度を下げる |
| 公共安全情報 | 公共の安全、秩序維持に支障を及ぼす情報。警備の配置、施設の鍵の管理 | 候補に残す |
| 審議検討等情報 | 審議・検討等に関する情報で、意思決定の中立性等を不当に害するおそれがある情報 | AIは候補に挙げるだけ。 該当性は所管課が判断する |
| 事務事業情報 | 事務・事業の適正な遂行に支障を及ぼす情報。入札の予定価格、試験の問題 | 候補に残す |
右端の列は、どれも「候補に残す」の側に倒しています。 迷った箇所を落とすと、その箇所は人の目に触れないまま開示されるおそれがあります。迷った箇所は確信度を下げて残し、落とすかどうかは人が決めます。
| させないこと | 理由 |
|---|---|
| 開示・不開示を決める | 条例の解釈と過去の決定に照らした判断は、所管課と文書法制課が行う |
| 抜き出した文字列を言い換える | 照合ができなくなる。原文のまま返させる |
| 候補を絞る | 見落としの側を減らすため、絞るのは人が行う |
| 公益上の理由による開示を検討する | 不開示情報にあたっても開示する判断は、組織として行う |
| 請求者の意図を推し量る | 誰が何のために請求したかは、箇所の洗い出しに関係しない |
2行目が、照合の前提です。 「山田太郎」を「申請者の氏名」と言い換えて返すと、どこを塗ればよいかが分かりません。文字列はPDFの表記そのまま、全角・半角も変えずに写させます。
指示内容を固定する
あなたは市役所で、情報公開請求の対象文書から、不開示情報に
あたりうる箇所の候補を洗い出す職員を補助します。
あなたが挙げた候補は、所管課と文書法制課の職員が1件ずつ判断します。
開示するか、不開示にするかをあなたが決めることはありません。
【作業】
渡したPDFの各ページを読み、【不開示情報の類型】にあたりうる箇所を
すべて挙げてください。本文だけでなく、表の中、欄外、押印の周り、
添付資料、図の中の文字も読んでください。
【厳守事項】
- text には、PDFに書かれている文字列をそのまま写してください。
言い換え、要約、全角と半角の変換、空白の削除をしないでください。
- page には、PDFの何ページ目か(1から数える)を入れてください。
文書に印刷されているページ番号ではありません。
- 迷った箇所は、候補から外さずに confidence を low にしてください。
候補を減らすことより、見落としを減らすことを優先してください。
- 【文書の種類の要点】で「塗らない例」とされている欄でも、
特別な事情が書かれている場合は、confidence を low にして挙げてください。
- 同じ氏名が何度も出てくる場合は、出てくるたびに1件ずつ挙げてください。
- reason には、なぜその類型にあたりうるのかを、文書の中の根拠
(どの欄か、誰の情報か)とともに1文で書いてください。
- 開示すべきか、不開示にすべきかの意見を書かないでください。
- 画像の中の文字で読み取れないものは、unreadable に
ページと場所を書いてください。推測で文字を補わないでください。
【文書の種類】{doc_type}({page_range}ページ)
【文書の種類の要点】{doc_rules}
【不開示情報の類型】{categories}
「出てくるたびに1件ずつ」を書いているのは、黒塗りの処理が箇所の単位だからです。 同じ氏名を1件にまとめて返すと、2回目以降の出現が塗られずに残ります。 1つの報告書に同じ申請者の氏名が十数回出てくることは珍しくありません。
「印刷されているページ番号ではない」も、実際によく起きる食い違いです。 表紙や目次が付いた文書では、印刷されたページ番号とPDFのページ番号が数ページずれます。ずれたまま照合すると、正しい候補がすべて照合に失敗します。
出力形式を固定する
次の形のJSONで受け取ります。
{
"request_no": "",
"file": "",
"candidates": [
{
"page": 0,
"text": "",
"category": "personal | corporate | national_security | public_safety | deliberation | administration",
"reason": "",
"confidence": "high | low"
}
],
"unreadable": [
{ "page": 0, "location": "" }
]
}
1つ目の理由は、page と text の組で照合できることです。 中継プログラムは、候補ごとに「そのページのテキストに、text がそのまま含まれるか」を調べます。含まれれば verified、含まれなければ not_found を付けます。 not_found は、言い換えが起きたか、ページがずれたか、画像の中の文字かのどれかで、人が必ず見ます。
2つ目は、category を列挙で限れることです。 類型は6つに限ってスキーマに入れます。条例に合わせて類型を置き換えるときは、スキーマの列挙だけを直せば済みます。 Claude の構造化出力は enum に対応し、すべてのオブジェクトで additionalProperties を false にする必要があるとされています。
3つ目は、unreadable を分けて持てることです。 読めなかった箇所を候補と混ぜると、「候補が無い」のか「読めなかった」のかが区別できません。 読めなかった場所は、人が画像で確かめる一覧として別に返させます。
中継プログラムは、このJSONを規則の検出の結果と合わせて、次のような一覧にします。
| ページ | 文字列 | 類型 | 出どころ | 照合 | 確信度 | 判断 |
|---|---|---|---|---|---|---|
| 3 | 山田太郎 | 個人情報 | AI | verified | high | (空欄) |
| 3 | 090-0000-0000 | 個人情報 | 規則+AI | verified | high | (空欄) |
| 12 | 普通 1234567 | 法人情報 | 規則 | verified | ─ | (空欄) |
| 15 | 担当者の手書きの署名 | 個人情報 | AI | not_found | low | (空欄) |
「判断」の列は、人が埋める列です。 塗る・塗らない・保留のどれかを入れ、塗らないときは理由も書きます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 請求番号のフォルダ | 中継プログラムの監視 | 対象文書の保存を検知する |
| 受付台帳 | 読み取りのみ | 請求番号と期限を引く |
| Claude API | API呼び出し | 文書の種類の判定と、候補の抜き出し |
| 候補の一覧 | スプレッドシートの作成 | 候補、照合の結果、人の判断の列 |
| 強調表示のPDF | 中継プログラムが作成 | 候補の箇所に色を付けた閲覧用のPDF |
強調表示のPDFは、閲覧用です。黒塗りの処理には使いません。 候補に色を付けたPDFを作るのは、担当者が一覧と原本を行き来せずに判断できるようにするためです。黒塗りの処理は、人が判断した後に、PDFの編集ソフトの墨消しの機能で行います。 中継プログラムに黒塗りまでさせると、判断の前に塗られた文書ができます。
受付台帳には書き込みません。 期限を引くだけにします。処理の状況は、請求番号のフォルダの中の結果のファイルで分かります。
人が確認する
この業務では、すべての候補を人が判断します。 開示した情報は取り消せないため、確信度が高い候補でも、自動で塗る・塗らないを決めることはしません。
not_foundとunreadableを先に見る … 照合できなかった候補と読めなかった場所です。多くは画像の中の文字か、ページのずれです- 候補を1件ずつ判断する … 塗る・塗らない・保留を決めます。塗らないときは理由を書きます
- 候補の無いページを流し読みする … 手書きの書き込み、図の中の文字、写真に写った人の顔を確かめます
- 文書法制課が判断を確かめる … 審査基準と違う判断が無いかを見ます。保留は文書法制課が決めます
- 黒塗りの処理後に、文字が消えているかを確かめる … 処理後のPDFからテキストを取り出し、塗った文字列を検索します
3番目を省かないでください。 AIが読めるのは、PDFの中で読める形になっているものまでです。写真に写り込んだ人の顔や、図面の中の手書きの名前は、候補に挙がらないことがあります。 流し読みは、それを拾うための手順です。
5番目は、中継プログラムで機械的に行えます。 塗ると決めた文字列の一覧を持っているので、処理後のPDFのテキストにそれが残っていないかを照合します。 残っていれば、図形を重ねただけの処理です。
目標は、600ページをならして1ページ1.5分です。 候補の判断に1分、流し読みと処理後の確認に0.5分という想定です。候補が1ページに何件も出る文書は時間がかかり、候補の無いページは数十秒で済みます。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDF | 受け付けられない。所管課に解除を依頼する |
| 1回の要求の上限を超える | ページの範囲で分けて送る。細かい文字の多い文書は、上限より少ないページで分ける |
| テキストが取り出せないページ | 照合ができない。そのページの候補は確信度を下げ、人が精読する |
| 候補の文字列がそのページに無い | not_found。前後のページも探し、見つからなければ人へ |
| 1つのPDFに複数の種類の文書 | 種類の判定をページの範囲ごとに行い、範囲ごとに要点を変える |
| 写真や図面が中心の文書 | AIの候補は参考にとどめ、人が全ページを見る |
| 候補が1ページに何十件も出る | 名簿や一覧表の類。表の列ごとの判断に切り替える |
| APIが応答しない・形式が崩れる | 結果のファイルを置かずに残す。期限の近い請求は手作業に切り替える |
下から2行目は、名簿の類で必ず起きます。 参加者名簿のような文書では、候補が数百件になります。1件ずつ判断するのではなく、「氏名の列は塗る、所属の列は塗らない」のように列の単位で決めるほうが早く、ぶれもありません。
記録を残す
- 対象文書の原本と、請求番号・所管課
- Claude に渡したページの範囲と、返ってきたJSONの全文
- 規則の検出の結果と、照合の結果(
verified/not_found) - 候補ごとの人の判断と、塗らないとした理由
- 文書法制課が判断を変えた箇所と、その理由
- 黒塗り処理後のPDFと、処理後の文字の残りの確認結果
4つ目と5つ目が、次の判断を速くします。 同じ種類の文書で「この欄は塗らない」という判断がたまると、それは文書の種類ごとの要点に足すべき例です。文書法制課の審査基準が、判断の記録から育っていきます。
6つ目は、開示の後に問い合わせや審査請求があったときの記録です。 どの箇所を、どの理由で塗ったかが、候補の段階から残っていれば、なぜその判断をしたかを後から説明できます。
04実装レベルの3段階
最小構成では、ページ数がさばけません。 数ページずつ貼るので、月600ページには使えません。見落としがどの程度かを確かめる段階です。 半自動化で、1ページ5分が2.5分程度になります。 候補の一覧は出ますが、照合が無いのでページと文字列を人が原本で探すことになり、処理後の確認も手作業のままです。本格構成で1.5分になり、この段階が本記事の想定です。 差が出るのは、候補を原本の中で探す作業と、処理後に文字が残っていないかの確認が、1件ずつの手作業だからです。 段階を飛ばさないでください。 半自動化で1か月回すと、どの種類の文書で候補が多すぎるか、どの種類で見落としが出るかが分かります。文書の種類ごとの要点を整えてから本格構成に進むほうが、判断の時間が減ります。
05工数削減シミュレーション
導入後 600件 × 1.5分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 情報公開請求が月に十数件以上あり、対象文書が合わせて数百ページになる市区町村・都道府県、公立大学・公立病院などの公的な機関。対象文書の多くが電子の文書またはテキスト付きのPDFで、各課の担当者が1ページずつ読んで不開示の箇所を探している場合。黒塗りの判断が担当者ごとにぶれ、情報公開の担当課が後から直していることが多い場合。条例の解釈や過去の決定の例を、審査基準の形で文書にまとめている、またはまとめる予定がある場合。
- 請求が年に数件で、対象文書も数十ページにとどまる場合。対象文書の大半が手書きの紙や図面で、テキストとして読める形にできない場合。請求の多くが存否応答拒否の検討を要する類型で、箇所の洗い出しより請求そのものへの対応の判断が中心になる場合。なお、ある情報が不開示情報にあたるかの最終的な判断と、開示決定そのものは、この構成では代替できません。
07最小構成で試す方法
- 過去に開示を終えた請求から、対象文書を3件選ぶ(種類の違う文書にする。うち1件は名簿や一覧表を含むもの)
- その3件について、実際に塗った箇所の一覧を、黒塗りの前後のPDFから作る
- 黒塗りの前の文書を、庁内で利用が認められている生成AIの画面に数ページずつ貼る
- 「このページから、個人を特定できる情報、法人の利益を害しうる情報、事務の遂行に支障を及ぼしうる情報にあたりうる箇所を、原文のまま、ページ番号と一緒にすべて挙げてください。迷ったものも挙げてください」と指示する
- 出てきた候補を、実際に塗った箇所の一覧と見比べる
試すときに扱うのは、黒塗りの前の文書です。 個人の情報や法人の情報がそのまま入っています。試す段階でも、庁内の規程で認められた環境だけを使ってください。
| 出てきた内容 | 判断 |
|---|---|
| 実際に塗った箇所をほぼ拾い、塗らなかった箇所も候補にある | 中継プログラムの構築に進む |
| 実際に塗った箇所を見落としている | 見落とした箇所の種類を見る。画像の中の文字なら流し読みで補う。本文なら指示を直す |
| 候補が多すぎて判断が減らない | 文書の種類ごとの要点が要る。審査基準の書き直しが先 |
1行目の「塗らなかった箇所も候補にある」は、失敗ではありません。 この構成は見落としを減らす側に倒しているので、候補が実際の黒塗りより多いのは設計どおりです。 見るべきは、実際に塗った箇所を漏れなく拾えているかです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが確信の無い箇所を候補から落とす | 迷ったら挙げさせ、確信度を下げる。 絞るのは人 |
| 抜き出した文字列が言い換えられる | 原文のまま写させ、ページのテキストと照合する |
| ページ番号がずれて照合に失敗する | PDFのページ番号で統一する |
| 同じ氏名の2回目以降が塗られない | 出現ごとに1件ずつ挙げさせる |
| 引用の機能と構造化出力を併用しようとする | 併用すると400のエラー。 照合を自前で持つ |
| スキャンのPDFで照合ができない | 複合機の文字認識でテキスト付きにする。無理なら人が精読 |
| 写真の中の顔や手書きの名前が候補に無い | 候補の無いページも流し読みする |
| 名簿で候補が数百件になる | 列の単位で判断する |
| 図形を重ねただけの黒塗りで文字が残る | 処理後のPDFのテキストを照合する |
| 候補が多すぎて判断が減らない | 文書の種類ごとの要点を渡す |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIの出力を「そのまま使える結果」として扱うところから起きます。候補は判断の材料で、文字列は照合してから使うという2点を守れば、運用に乗ります。
下から2行目は、AIと関係なく起きている失敗です。 図形を重ねただけの黒塗りは、今の手作業でも起こりえます。処理後の確認を中継プログラムに持たせることで、この構成は手作業の頃より確実になります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 黒塗り前の対象文書そのものです。個人の氏名・住所・生年月日、法人の口座番号や単価の内訳、事故の報告、審議の途中の資料が含まれます。
- 黒塗り前の文書を外部へ渡すことを、規程と照らす … この構成は、不開示にすべき情報を含む文書を、そのままAIに渡します。利用する環境とデータの扱いを、庁内の情報セキュリティの規程と照らしてから始めてください
- 開示・不開示をAIに決めさせない … 不開示情報にあたるかは条例の解釈で、公益上の理由による開示のように、組織として行う判断もあります。 この構成が出すのは候補までです
- 自動で塗らない … 判断の前に塗られた文書ができると、塗る必要の無い箇所まで塗られたまま開示されるおそれがあります
- 処理後の文字の残りを必ず確かめる … 開示した文書は取り消せません。図形を重ねただけの処理を、機械で見つけます
- 判断の記録を残す … 審査請求があったとき、どの箇所をなぜ塗ったかを説明できるように、候補の段階から判断と理由を残します
- 条例の区分に合わせる … 本記事の類型は、総務省が説明する国の制度の区分です。地方公共団体では各団体の条例によるため、区分と要点は自団体の条例に合わせてください
誤りが起きた場合のリスクは、塗るべき情報を開示してしまうことと、開示すべき情報を塗ってしまうことの2つです。 前者は候補を絞りすぎると、後者は自動で塗ると起きます。候補は広く、判断は人に、処理は確かめてからという3つで防ぎます。
10まず何から始めるか
1週目:文書の種類ごとの要点を書き出す
過去の決定の例から、請求の多い文書の種類を5つ選び、種類ごとに「塗る欄」「塗らない欄」「判断の分かれる欄」を書き出します。 補助金の申請書、工事の契約書、審議会の資料のように、件数の多いものから始めます。
2週目:3件で試す
開示を終えた請求から3件を選び、黒塗りの前の文書で候補を挙げさせます。実際に塗った箇所を漏れなく拾えているかを最優先で見ます。 見落としがあれば、その箇所が画像の中か本文かを確かめます。
3週目:照合と規則の検出を作る
中継プログラムで、PDFのページのテキストを取り出し、AIの候補を照合し、規則の検出と合わせて一覧にするところまで作ります。この時点では強調表示のPDFは作らず、一覧だけを所管課に見てもらいます。
4週目:処理後の確認を足す
塗ると決めた文字列が、処理後のPDFに残っていないかを確かめる機能を足します。これは、AIの候補の有無と関係なく、今日から使える機能です。
2か月目: フォルダの監視と強調表示のPDFを足し、請求の多い2つの課で使い始めます。候補の件数、not_found の件数、人が「塗らない」とした件数を毎週数えます。3か月目以降: 判断の記録から文書の種類ごとの要点を更新し、1ページ5分が何分になったかを実測します。要点が判断の記録を反映して更新され、処理後の文字の残りが1件も出なくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 開示請求の対象が、職員が組織的に用いるものとして保有する文書・図画・電磁的記録であること。不開示情報が記録されている場合を除き開示しなければならないとされていること。不開示情報として、個人情報、法人情報、国家安全情報、公共安全情報、審議検討等情報、事務事業情報が定められていること | 総務省: 開示請求できる文書・できない文書 | 2026-09-29 |
PDFの中の文章・画像・図表・表を扱え、各ページを文章と画像の両方として処理すること。要求の大きさが32MBまで、ページ数が600ページまで(コンテキストが100万トークン未満では100ページまで)で、パスワードや暗号化の無い標準のPDFが対象であること。細かい文字の多い文書は分けて送るよう勧められていること。Files API で file_id を参照できること | Claude Docs: PDF support | 2026-09-29 |
output_config.format に JSON Schema を渡して構造化出力を得ること。enum に対応し、すべてのオブジェクトで additionalProperties を false にする必要があること | Claude Docs: Structured outputs | 2026-09-29 |
| 引用の機能と構造化出力は併用できず、併用すると400のエラーになること。テキストを取り出せないスキャンのPDFは引用の対象にならないこと | Claude Docs: Citations | 2026-09-29 |
不開示情報の区分と判断の基準は、各団体の情報公開条例と審査基準に従ってください。 本記事は総務省と Anthropic の公開ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0320)についてのご相談はこちらから。
