自治体の清掃担当に届く手書きの粗大ごみ収集の申込はがきを読み取り、住所・品目・個数・希望日を受付台帳にそろえ、手数料の計算と収集日の割当ての前に記入漏れと読めない欄を拾う
清掃担当の部署に届く手書きの粗大ごみ収集の申込はがきを読み取り、住所・氏名・品目・大きさ・個数・希望日を受付台帳の項目にそろえます。手数料の計算と収集日の割当ての前に、記入漏れ・読めない欄・収集できない品目に印を付けます。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 対象業界
- 自治体
- 対象部門
- 総務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 郵便で届いたはがきを、受付係が開封日ごとに束ねる
- 1枚ずつ読み、住所、氏名、連絡先、品目、大きさ、個数、出す場所を受付システムに入力する
- 品目を品目表で引き、手数料を確かめる。大きさで金額が変わる品目は、書かれた大きさを見る
- エアコン、テレビ、冷蔵庫など、市で収集できない品目が無いかを見る
- 住所の地区から収集日の枠を見て、収集日を割り当て、受付番号を発行する
- 記入漏れや読めない字があるものは、別に束ねて、問い合わせのはがき(FAX番号があればFAX)を書く
- 受付が済んだものは、収集日・受付番号・手数料額を書いた通知のはがきを作って送る
- 人届いたはがきを、受付係が両面をスキャンして保存する(1日分をまとめて)
- 自動保存をきっかけに処理が動き、画像の形式・枚数・向きを確かめる
- 自動手書きの文字を読み取り、文字ごとの信頼度と画像の品質の点数を返す
- 自動読み取った文字を、受付台帳の項目(住所・氏名・連絡先・品目・大きさ・個数・出す場所・希望日)にそろえる
- 自動住所を住所の一覧と照合し、品目を品目表と照合する。大きさで金額が変わる品目に大きさがあるかを見る
- 自動収集できない品目(家電リサイクル法の対象品目など)と、事業所から出たものらしい記載に印を付ける
- 自動各項目に `ok` / `missing` / `unreadable` / `ambiguous` を付け、1枚ごとに `ready` / `needs_inquiry` / `needs_staff` を決める
- 自動`needs_inquiry` のはがきについて、不足をまとめた問い合わせの文面の下書きを作る
- 人受付係が `needs_inquiry` と `needs_staff` のはがきを画像で確かめ、判定を直す
- 人`ready` のはがきの台帳の案を受付システムに取り込み、収集日を割り当て、受付番号を発行する
各工程の詳しい説明を読む
- 郵便で届いたはがきを、受付係が開封日ごとに束ねる
- 1枚ずつ読み、住所、氏名、連絡先、品目、大きさ、個数、出す場所を受付システムに入力する
- 品目を品目表で引き、手数料を確かめる。大きさで金額が変わる品目は、書かれた大きさを見る
- エアコン、テレビ、冷蔵庫など、市で収集できない品目が無いかを見る
- 住所の地区から収集日の枠を見て、収集日を割り当て、受付番号を発行する
- 記入漏れや読めない字があるものは、別に束ねて、問い合わせのはがき(FAX番号があればFAX)を書く
- 受付が済んだものは、収集日・受付番号・手数料額を書いた通知のはがきを作って送る
(a)読むのに時間がかかる。 2番目は、手書きの字を読みながら入力する作業です。住所の番地、集合住宅の部屋番号、電話番号の数字は、1字違えば別の家になります。読みにくい字ほど時間がかかり、慎重に読むほど枚数が進みません。
(b)品目の書き方がばらばら。 3番目で、はがきには「カラーボックス」「三段の棚」「本だな(小)」のように、品目表と違う言葉で書かれます。品目表のどれに当たるかを決めるのは、経験のある職員です。 経験の浅い職員は、決められないはがきを先輩に回します。
(c)不備に気づくのが入力の途中。 6番目の記入漏れは、2番目の入力の途中で気づきます。大きさが無いことに気づいた時点で、そのはがきの入力を止め、問い合わせの束に移します。 同じはがきに別の不備(部屋番号が無い)があっても、最初の1つで止めているので、返事が来てからもう一度問い合わせることになります。
(d)収集できない品目が見落とされる。 4番目は、品目の欄を最後まで読まないと分かりません。「冷蔵庫(小)、棚、いす」のように並んでいると、最初の品目で引っかかるはずが、入力の流れで通ってしまうことがあります。収集日に作業員が気づき、置いていくことになります。
- 【人】 届いたはがきを、受付係が両面をスキャンして保存する(1日分をまとめて)
- 【自動】 保存をきっかけに処理が動き、画像の形式・枚数・向きを確かめる
- 【自動】 手書きの文字を読み取り、文字ごとの信頼度と画像の品質の点数を返す
- 【自動】 読み取った文字を、受付台帳の項目(住所・氏名・連絡先・品目・大きさ・個数・出す場所・希望日)にそろえる
- 【自動】 住所を住所の一覧と照合し、品目を品目表と照合する。大きさで金額が変わる品目に大きさがあるかを見る
- 【自動】 収集できない品目(家電リサイクル法の対象品目など)と、事業所から出たものらしい記載に印を付ける
- 【自動】 各項目に
ok/missing/unreadable/ambiguousを付け、1枚ごとにready/needs_inquiry/needs_staffを決める - 【自動】
needs_inquiryのはがきについて、不足をまとめた問い合わせの文面の下書きを作る - 【人】 受付係が
needs_inquiryとneeds_staffのはがきを画像で確かめ、判定を直す - 【人】
readyのはがきの台帳の案を受付システムに取り込み、収集日を割り当て、受付番号を発行する
9番目が、この設計の分かれ目です。人が見るのは、印の付いたはがきだけです。 ready のものは台帳の案を流し見て取り込みます。全件を人が読み直す設計にすると、36.0時間はほとんど減りません。
10番目の収集日の割当てを人に残しているのも、意図してのことです。 収集日の枠は地区と曜日と車両の台数で決まり、受付システムが持っています。この構成は受付システムの手前で止め、枠の管理には手を出しません。
02今回想定するシステム構成
申込はがき(両面をスキャン) ▼【トリガー】Cloud Storage への保存(object finalized) Cloud Run functions ── 形式・枚数・向きの確認、表裏の組み合わせ ▼ Google Document AI ├─ Enterprise Document OCR(手書きの文字、信頼度、画像の品質の点数) └─ Form Parser(市が配る申込用はがきの様式。キーと値、チェック欄) ▼ Claude API ── 受付台帳の項目へのそろえ(根拠の文字列付き) ▼ Cloud Run functions ── 住所の一覧・品目表との照合、手数料の候補、収集できない品目の確認 ▼ 台帳の案 + 印の一覧 + 問い合わせの文面の下書き ▼ 【受付係が印の付いたはがきを確認】→ 受付システムへ取り込み、収集日と受付番号
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Enterprise Document OCR と Form Parser) | Azure AI Document Intelligence |
| 生成AI | Claude API(台帳の項目へのそろえ、問い合わせの下書き) | Azure OpenAI、Gemini API |
| 連携 | Cloud Run functions(起動、照合、手数料の候補) | Cloud Workflows |
| 保管 | Cloud Storage(スキャン画像と読み取り結果) | ― |
受付システムには、この構成から書き込みません。 台帳の案はファイルで出し、受付係が確かめてから取り込みます。受付番号の発行と収集日の割当ては、受付システムの仕事です。
読み取りの中心は、Enterprise Document OCR です。 公式のドキュメントでは、Enterprise Document OCR は文字とレイアウトを取り出し、画像の品質の点数(8つの観点のページ単位の品質の指標)、言語と手書きのヒント、回転の補正を持つとされています。対応するファイル形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP です。官製はがきに自由に書かれた申込は、欄の決まった様式ではないので、文字とその位置を取り出すこのプロセッサが向きます。
市が配る申込用のはがきには、Form Parser を使います。 Form Parser はキーと値のペア、表、チェックボックス、一般的なエンティティ(住所、人名、日付、数量など)を取り出すとされています。公式の対応言語の一覧では、Enterprise Document OCR と Form Parser のどちらも、日本語の手書きに対応とされています。
注意が要るのは、空欄の扱いと処理する場所です。 Form Parser の制約として、値が空のキーと値のペア(記入されていない様式など)は確実には取り出せないとされています。記入漏れを見つけたいこの題材では、キーと値が返らなかったことを「空欄」と読みません。 また、両方のプロセッサの対応地域に日本のリージョンはありません。第13章で扱います。
03どうやって実装するのか
処理の起点を決める
スキャンしたはがきが Cloud Storage のバケットに保存されたことを起点にします。 公式のドキュメントでは、Cloud Run は Eventarc を使って Cloud Storage のオブジェクトの変更をきっかけに呼び出せ、オブジェクトの新規作成や上書きのときには google.cloud.storage.object.v1.finalized のイベントが出るとされています。トリガーで監視するバケットとサービスは、同じプロジェクトに置く必要があります。
スキャンは1日1回、午前の郵便が届いた後にまとめて行います。 はがきは1日に十数枚から数十枚で、まとめてスキャンしても昼までに台帳の案がそろいます。午後に受付係が印の付いたはがきを確かめ、その日のうちに受付システムへ取り込みます。
両面をスキャンするのは、表面に差出人の住所が書かれているためです。 裏面に住所を書き忘れても、表面の差出人の欄に書かれていることがよくあります。表と裏を1組として扱い、どちらかに書かれていれば住所はあるとみなします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| はがきの画像 | 表面(差出人)と裏面(申込の内容)の1組 | スキャンの保存先 |
| 読み取り結果 | 文字と位置、文字ごとの信頼度、画像の品質の点数 | Document AI |
| 品目表 | 品目名、別名、大きさの区分、手数料、収集できない品目の印 | 清掃事務所が管理する表 |
| 住所の一覧 | 町名・丁目・番地の範囲、地区(収集日の枠の単位) | 市の住所の一覧 |
| 過去の申込 | 同じ住所・氏名の直近の申込 | 受付システムの台帳の写し |
質を決めるのは、品目表の「別名」の列です。 「カラーボックス」「三段ボックス」「収納ボックス」が同じ品目に当たるのか、別名を持っていないと照合できません。 照合できなかった言葉を毎月ためて、別名に足していきます。
過去の申込は、二重の申込を見つけるために持ちます。 電話で申し込んだ人が、念のためはがきも出すことがあります。同じ住所から同じ品目の申込が直近にあれば、二重の可能性として印を付けます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 文字と位置 | Enterprise Document OCR | 申込の内容の読み取り |
| 文字ごとの信頼度 | 同上 | missing と unreadable の区別 |
| 画像の品質の点数 | 同上 | スキャンのやり直しの判断 |
| キーと値、チェック欄 | Form Parser(申込用はがきのみ) | 市の様式の欄ごとの値 |
| 品目・手数料・別名 | 品目表 | 品目の照合と手数料の候補 |
| 地区 | 住所の一覧 | 住所の照合と、収集日の枠の単位 |
どちらのプロセッサに回すかは、はがきの種類で決めます。 市の申込用はがきは右上に様式の番号が印刷されているので、その番号を読み取れたものだけを Form Parser に回します。 官製はがきは Enterprise Document OCR だけで読みます。
日本語の手書きなので、言語のヒントを付けます。 Enterprise Document OCR は、データの特徴に応じて言語と手書きのヒントを渡すと精度の改善に役立つとされています。
AIへ渡す前に整形する
- 表と裏の組み合わせ … スキャンの順で表と裏を1組にします。枚数が奇数なら、どこかで裏返しが漏れています
- 向きの補正 … はがきは縦書きと横書きが混ざります。回転の補正を使い、読み取りの前に向きをそろえます
- ファイルとページの確認 … 同期の処理は、ファイルが40MBまで、画像が40メガピクセルまで、Enterprise Document OCR と Form Parser は15ページまでです。1組(2ページ)ずつ送ります
- 画像の品質の確認 … 品質の点数が低いページは、読み取りの結果にかかわらず
needs_staffに回します - 余計な部分の除去 … 表面の郵便番号の枠、切手、消印の部分は、申込の内容から外します
- 重複の確認 … 同じ画像が二度スキャンされていないかを、画像の照合で確かめます
4番目を軽く見ないでください。 鉛筆で薄く書かれたはがき、雨で滲んだはがきは、文字が検出されても値として確定できません。品質の点数が低いのに読み取れたことにすると、番地の1字違いがそのまま台帳に入ります。
AIに処理させる
させるのは、読み取った文字を受付台帳の項目にそろえ、根拠にした文字列を書き出すことだけです。 手数料の計算と、品目表との照合はプログラムが行います。
| 項目 | そろえ方 | 判断できないときの扱い |
|---|---|---|
| 住所 | 町名・丁目・番地・建物名・部屋番号に分ける | 番地が無ければ missing、読めなければ unreadable |
| 氏名 | 読み取ったまま | 判読できない字があれば unreadable |
| 連絡先 | 電話番号・FAX番号を区別して数字だけにする | どちらか分からなければ ambiguous |
| 品目 | 書かれた言葉のまま、品目ごとに分ける | ― |
| 大きさ | 品目ごとに、書かれた数字と単位 | 書かれていなければ missing |
| 個数 | 品目ごとに数字にする | 「いくつか」などは ambiguous |
| 出す場所・希望日 | 書かれたまま | 書かれていなければ空(必須ではない) |
品目を「書かれた言葉のまま」としているのが、この表でいちばん大事なところです。 AIに品目表のどれに当たるかを決めさせると、「棚」を手数料の安いほうの品目にそろえることがあります。品目表との照合は、別名の表を使ってプログラムが行い、当たらないものは人に回します。 手数料が決まる判断を、AIの言葉の選び方に預けません。
| させないこと | 理由 |
|---|---|
| 品目表の品目の決定と手数料の計算 | 別名の表とプログラムで行う。金額の根拠を表に置く |
| 収集できるかの判断 | 品目表の印で決まる。最終的には職員が判断する |
| 書かれていない大きさ・個数の推定 | 推定で埋めると、問い合わせるべき不備が消える |
| 住所の補完 | 番地や部屋番号を、似た住所から補わない |
| 収集日の割当て | 受付システムの枠で決まる |
3行目がいちばん起きやすい失敗です。 「本棚」とだけ書かれていると、AIは一般的な大きさを思い浮かべて「中」と書きます。その瞬間、問い合わせるべき不備が消え、収集の日に作業員がその場で手数料の不足に気づくことになります。
指示内容を固定する
あなたは市の清掃事務所で、粗大ごみの申込はがきを受付台帳に転記する立場です。
渡すのは、はがき1枚(表面と裏面)の読み取り結果です。
読み取り結果に書かれていることだけを使い、推測で埋めないでください。
【そろえる項目】
1. 住所(町名・丁目・番地・建物名・部屋番号)
2. 氏名
3. 連絡先(電話番号・FAX番号を区別)
4. 品目ごとの、品目の言葉・大きさ・個数
5. 出す場所、希望日(書かれていれば)
【status の選び方】
- ok ......... 値が読み取れており、その項目として解釈できる
- missing .... 値が書かれていない
- unreadable . 文字は検出されているが信頼度が低く、値として確定できない
- ambiguous .. 値の候補が複数あり、1つに決められない
迷ったときに ok を選ばないでください。
【厳守事項】
- 品目は、はがきに書かれた言葉のまま写してください。品目表の名前に言い換えないでください。
- 大きさ・個数が書かれていない品目は、missing にしてください。
一般的な大きさや「1個」を推測で入れないでください。
- 住所の番地・部屋番号が書かれていなければ missing です。似た住所から補わないでください。
- 表面の差出人の欄に住所があれば、裏面に無くても住所として使い、source に「表面」と書いてください。
- 手数料、収集できるかどうか、収集日は書かないでください。
- evidence には、各項目の根拠にした文字列をそのまま写してください。
- confidence は、読み取り結果が返した値をそのまま入れてください。
- 粗大ごみの申込ではない(問い合わせ、苦情、別の手続き)と判断した場合は、
document_type に種類を書き、項目をそろえないでください。
【読み取り結果】{ocr_result}
【申込用はがきの様式の場合のキーと値】{form_fields}
「品目表の名前に言い換えない」を明記しないと、親切にそろえます。 AIは品目表を渡されていなくても、「カラーボックス」を「棚」とまとめ直します。まとめ直した言葉は別名の表で照合できず、照合できたとしても、どの言葉から照合したのかが残りません。
「1個を推測で入れない」も同じ理由です。 個数が書かれていないはがきの多くは1個ですが、2個以上のこともあり、手数料が変わります。 書かれていないことを示すのは missing で、埋まった値ではありません。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API では、output_config.format に type: "json_schema" でスキーマを渡すと、スキーマに合った JSON が返るとされています。すべてのオブジェクトで additionalProperties を false にします。
{
"postcard_id": "",
"document_type": "bulky_waste_application",
"address": { "town": "", "chome": "", "banchi": "", "building": "", "room": "",
"source": "front | back", "status": "", "confidence": 0, "evidence": "" },
"name": { "value": "", "status": "", "confidence": 0, "evidence": "" },
"contact": { "tel": "", "fax": "", "status": "", "evidence": "" },
"items": [
{ "written_name": "", "size": "", "quantity": "",
"status": "ok | missing | unreadable | ambiguous", "evidence": "" }
],
"place": "",
"preferred_date": ""
}
これにプログラムが、品目表との照合の結果を足します。
| 項目 | 決め方 |
|---|---|
matched_item / fee_candidate | 別名の表で品目表に当て、大きさの区分から手数料の候補を引く |
not_collectible | 品目表の「収集できない」の印 |
district | 住所の一覧との照合 |
verdict | ready / needs_inquiry / needs_staff |
1つ目の理由は、missing と unreadable で行き先を分けられることです。
| 状態 | 行き先 |
|---|---|
すべての必須の項目が ok、品目表に当たる | ready:台帳の案へ |
missing があり、unreadable が無い | needs_inquiry:問い合わせの下書きへ |
unreadable または ambiguous がある、品目表に当たらない、収集できない品目がある | needs_staff:受付係がはがきを見る |
2つ目は、品目ごとに不備を持てることです。 items が配列なので、「棚は大きさが無い、いすは問題ない」のように品目ごとに状態を持てます。問い合わせの下書きは、不備のある品目と項目を全部並べて1通にします。
3つ目は、evidence と confidence で確認が速くなることです。 画像を開く前に、どの文字をどれくらいの信頼度で読んだかが一覧で分かります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| スキャンの保存先 | Cloud Storage への保存で Cloud Run functions を起動 | はがきの画像を受け取る |
| Google Document AI | API呼び出し(同期の処理) | 文字・信頼度・品質の点数、様式のキーと値 |
| Claude API | API呼び出し(構造化出力) | 台帳の項目へのそろえと、問い合わせの下書き |
| 品目表・住所の一覧 | 読み取り | 品目の照合、手数料の候補、地区 |
| 受付システム | 台帳の案のファイルを受付係が取り込む | 収集日の割当てと受付番号の発行 |
受付システムへは、ファイルで渡します。 受付システムに外部から書き込む口があるかは、製品ごとに違います。最初は、受付係が台帳の案を確かめて取り込む形で始めます。
手数料は「候補」として渡します。 品目表から引いた金額でも、大きさの区分の境目にある品目は、受付係がはがきの記載を見て決めます。候補と確定を別の列にしておけば、受付係が金額を変えた件数を数えられ、品目表の区分の見直しに使えます。
人が確認する
needs_staffを先に見る … 読めない欄、品目表に当たらない品目、収集できない品目が含まれるものです。多くは、はがきの実物を見れば決まりますneeds_inquiryの不足を確かめる …missingの欄が本当に空欄かを、画像で確かめます- 問い合わせの下書きを直す … 不足を全部並べた1通にします。連絡先がFAXならFAX、無ければはがきで送ります
- 収集できない品目の案内を添える … 家電リサイクル法の対象品目などは、市の案内の文面を添えて返します
- 品目表に当たらなかった言葉を記録する … 別名の表に足す候補として、月末にまとめます
2番目を省かないでください。 missing の判定は、申込者に問い合わせるかどうかに直結します。 書いてあったのに聞き返された人は、次からはがきで申し込むのをためらいます。
目標は、360枚をならして1枚2分です。 印の付くはがきが3割前後という想定で、それより多い月は、スキャンの設定か品目表の別名が足りていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 表と裏の組み合わせがずれる | 枚数が奇数ならスキャンをやり直す |
| 画像の品質の点数が低い | needs_staff。解像度を上げてスキャンし直す |
| 鉛筆の薄い字・滲んだ字 | unreadable で受付係へ。はがきの実物で読む |
| 品目表に当たらない言葉 | needs_staff。受付係が品目を決め、別名の候補に記録 |
| 収集できない品目が含まれる | 他の品目は受け付け、収集できない品目の案内を添える |
| 会社や商店から出たものらしい記載 | needs_staff。家庭以外から出るものかを受付係が判断 |
| 同じ住所から同じ品目の申込が直近にある | 二重の可能性として印。電話・インターネットの受付と照合 |
| 粗大ごみの申込ではないはがき | document_type を見て、担当の係へ回す |
| Document AI が応答しない | 保存先に残し、再実行。処理済みに移すのは成功時だけ |
上から3行目までが大半を占めます。 どれもAIの問題ではなく、スキャンの手順と、はがきの書かれ方の問題です。
記録を残す
- はがきの画像(表と裏)と、届いた日、スキャンした日時
- 読み取り結果(文字、信頼度、画像の品質の点数)
- AIが返したJSONと、品目表との照合の結果、
verdict - 人が判定を覆した記録 … どの項目を、どちらに変えたか
- 問い合わせを送った日と返事が届いた日、受付システムに取り込んだ日
- 品目表に当たらなかった言葉の一覧
4つ目と最後の行は、品目表を育てる材料です。 毎月の当たらなかった言葉を別名に足すと、needs_staff の件数が月ごとに減っていくのが見えます。
04実装レベルの3段階
最小構成では枚数がさばけません。 1枚ずつ貼るので、確かめるための段階です。 半自動化で1枚6分が2分程度になり、この段階が本記事の想定です。 読み取りと照合と問い合わせの下書きが自動になり、受付係は印の付いたはがきと台帳の案を確かめます。本格構成は、受付システムに外部から取り込む口があるかで決まります。 無ければ、半自動化のままで十分に効果があります。 段階を飛ばさないでください。 半自動化を1か月回すと、品目表に当たらなかった言葉と、品質の点数が低いはがきの共通点が先に分かります。
05工数削減シミュレーション
導入後 360件 × 2分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 粗大ごみの収集を事前申込・有料で行い、電話やインターネットに加えてはがきでも申込を受け付けている市区町村の清掃担当の部署(環境事業所・清掃事務所など)。電話での申込が難しい高齢の方や、聴覚・音声機能・言語機能に障がいのある方からのはがきが月に数百枚届き、職員が手書きの文字を読んで受付台帳に入力し、品目表を引いて手数料を確かめている場合。記入漏れがあると、はがきやFAXで問い合わせ直すしかなく、収集日の通知が遅れている場合。
- はがきの申込が月に数十枚で、目視で足りる場合。申込のほとんどがインターネットに移っている場合。自治体の情報セキュリティの規程で、住民の氏名・住所・電話番号を国外のリージョンで処理するクラウドサービスに渡せない場合(この構成の読み取りサービスには日本のリージョンがありません)。なお、収集できる品目か、手数料をいくらとするか、減免の対象かの判断は職員が行うもので、この構成では代替できません。
07最小構成で試す方法
- 先月届いたはがきから30枚を選ぶ(うち数枚は、問い合わせになったものを入れる)
- その30枚について、当時入力した台帳の内容と、問い合わせた内容を手元に置く
- 氏名・住所・電話番号を黒塗りした写しを作る
- 社内で利用が認められている生成AIの画面に、写しの画像を1枚ずつ貼る
- 「このはがきの品目・大きさ・個数を、書かれた言葉のまま表にしてください。書かれていない項目と、読めない項目を分けてください。推測で埋めないでください」と指示する
- 出てきた表を、当時の台帳と問い合わせの内容と突き合わせる
黒塗りを省かないでください。 試す段階でも、住民の氏名・住所・電話番号を外部のサービスに渡すことに変わりはありません。住所の読み取りの精度は、本番の構成で、規程の確認を済ませてから確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の問い合わせと同じ不足が出た | 読み取りと照合の自動化に進む |
| 大きさや個数を推測で埋めた | 指示の書き方で直る。構成は有効 |
| 字が読めずに判定できない枚数が多い | スキャンの設定が先。 AIの問題ではない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 大きさ・個数が推測で埋まる | 指示で禁じ、missing のまま問い合わせに回す |
missing と unreadable が混ざる | 信頼度と品質の点数で分ける。混ぜると書いた人に聞き返す |
| 品目を品目表の言葉に言い換える | 書かれた言葉のまま写させ、照合はプログラムで行う |
| 空欄のキーと値が返らない | 返らなかったことを空欄と読まない。 必須の項目の一覧で見る |
| 表と裏の組み合わせがずれる | 枚数の偶奇で確かめる |
| 縦書きのはがきが読めない | 回転の補正を使い、向きをそろえてから読む |
| 収集できない品目が通る | 品目表の印で必ず止める |
| 不足を1つずつ問い合わせる | 1枚の不足を全部並べて1通にする |
| 処理する場所を確かめずに始める | 日本のリージョンが無いことを、規程の担当と先に確認する |
上の2行が、この構成の失敗のほとんどです。 どちらも「空欄に見える」ことから出発しています。判定の根拠を、信頼度という数値に置いてあるかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 住民の氏名、住所、電話番号・FAX番号と、出すごみの品目です。品目から、引っ越しや家族の状況(介護用ベッド、ベビー用品)が推し量られることがあります。
- 処理する場所を規程の担当と確かめる … Form Parser と Enterprise Document OCR の対応地域は、米国・欧州のマルチリージョンと、ムンバイ、シンガポール、シドニー、ロンドン、フランクフルト、モントリオールで、日本のリージョンはありません。 住民の個人情報を国外で処理してよいかは、自治体の情報セキュリティの規程と個人情報の担当で先に決めます
- AIに渡す範囲を絞る … 台帳の項目へのそろえに要るのは、はがきに書かれた内容だけです。受付システムの過去の申込や、住民の他の情報は渡しません。 二重の申込の照合はプログラムで行います
- 問い合わせを自動で送らない … 出すのは下書きまでです。電話で聞き返せない人に、誤った問い合わせを送ると取り消す手段が限られます
- はがきの原本の扱いを決める … スキャンした画像と、はがきの実物のどちらを、いつまで残すかを決めます。問い合わせの返事が届くまでは、実物を残します
- この構成は、収集の可否と手数料を決めない … 収集できる品目か、手数料をいくらとするか、減免の対象かは、職員が品目表と市の規則に沿って決めます
誤りが起きた場合のリスクは、書いてあることを申込者に聞き返すことと、書いていないことを推測で埋めることの2つです。 前者は missing と unreadable を混ぜると起き、後者は推測を許すと起きます。どちらも、何を missing とするかの設計で守ります。
10まず何から始めるか
1週目:品目表に別名と大きさの区分を足す
品目表に、別名の列と、大きさで金額が変わる品目の区分の列を足します。300を超える品目を一度に埋める必要はありません。はがきでよく書かれる上位50品目から埋めます。
2週目:30枚で試す
先月のはがきから30枚を選び、黒塗りした写しをAIの画面に貼って、品目と不足を表にさせます。当時の問い合わせと突き合わせ、大きさや個数を推測で埋めていないかを最優先で見ます。
3週目:処理する場所を決める
読み取りのサービスに日本のリージョンが無いことを、情報セキュリティの担当と個人情報の担当に説明し、使ってよいかを決めます。 使えない場合は、日本のリージョンで処理できる読み取りのサービスに差し替えます。
4週目:保存先から台帳の案までをつなぐ
スキャンの保存を起点に、読み取り、そろえ、品目表との照合、台帳の案の書き出しまでを作ります。この時点では問い合わせの下書きを出さず、台帳の案と職員の入力を並べて見比べます。
2か月目: 問い合わせの下書きを足し、needs_inquiry と needs_staff の件数を毎週数えます。3か月目以降: 品目表に当たらなかった言葉を別名に足し、1枚6分が何分になったかを実測します。問い合わせの往復が1回で済むようになり、needs_staff の件数が月ごとに減っていくのが見えた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 粗大ごみ収集が事前申込・有料であること。聴覚・音声機能・言語機能障がいなどのある方はFAX・はがきで申込ができ、住所、氏名、粗大ごみの品目や大きさ、数量を記載すること。はがきの場合は地域の環境事業センターへ申し込み、収集日・受付番号・品目ごとの手数料額をはがきで知らせること。家電リサイクル法の対象品目(エアコン、テレビ、冷蔵庫、冷凍庫、洗濯機、衣類乾燥機)は収集できないこと。会社や商店等から出されるものは収集できないこと。申込みされていないもの、受付番号等が確認できないもの、手数料券の金額が不足しているものは収集できないこと | 大阪市: 粗大ごみ収集(事前申込・有料) | 2026-10-08 |
| Enterprise Document OCR が手書きを含む文字を取り出し、画像の品質の点数(8つの観点)、言語と手書きのヒント、回転の補正を持つこと。PDF、GIF、TIFF、JPEG、PNG、BMP、WebP を扱うこと | Google Cloud: Enterprise Document OCR | 2026-10-08 |
| Form Parser がキーと値のペア、表、チェックボックス、一般的なエンティティ(住所、人名、日付、数量など)を取り出すこと。値が空のキーと値のペア(記入されていない様式など)を確実には取り出せないこと | Google Cloud: Form Parser | 2026-10-08 |
| Enterprise Document OCR と Form Parser の対応言語の一覧で、日本語の手書きが対応とされていること | Google Cloud: Processor list | 2026-10-08 |
| Form Parser と OCR の対応地域が us、eu と、asia-south1、asia-southeast1、australia-southeast1、europe-west2、europe-west3、northamerica-northeast1 であり、日本のリージョンが無いこと | Google Cloud: Regional and multi-regional support | 2026-10-08 |
| 同期の処理のファイルが40MBまで、画像が40メガピクセルまでであること。Enterprise Document OCR と Form Parser の同期の処理が15ページまでであること | Google Cloud: Document AI limits | 2026-10-08 |
Cloud Run が Eventarc で Cloud Storage のオブジェクトの変更から呼び出せること。新規作成・上書きで google.cloud.storage.object.v1.finalized のイベントが出ること。監視するバケットとサービスを同じプロジェクトに置くこと | Google Cloud: Create triggers from Cloud Storage events | 2026-10-08 |
構造化出力を output_config.format に type: "json_schema" を指定して受け取れること。すべてのオブジェクトで additionalProperties を false にすること | Claude Docs: Structured outputs | 2026-10-08 |
収集の可否、手数料、減免、個人情報を外部のサービスで処理してよいかの判断は、市の規則と規程に沿って職員と担当部署が行うものです。 本記事は大阪市の案内と公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0889)についてのご相談はこちらから。
