顧客から届く住所・氏名の変更届を読み取り、本人確認書類との食い違いと記入漏れを点検する
郵送で届く住所・氏名の変更届と、添えられた本人確認書類の写しを読み取ります。必須欄が埋まっているか、届出書の新しい住所・氏名が写しと一致するかを項目ごとに判定し、そのまま処理できるものと人が見るものに分けます。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- その他/保険/金融
- 対象部門
- カスタマーサポート
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 郵便を開封し、届出書と写しをスキャンする
- 届出書の顧客番号・氏名から、顧客情報の画面を開く
- 変更の種類(住所・氏名・電話番号)のチェック、新しい住所・氏名、届出日、署名か押印の有無を目で確かめる
- 写しの種類を確かめ、写しの住所・氏名・生年月日を、届出書と顧客情報の画面に見比べる
- 写しの有効期限が切れていないかを確かめる
- 不備があれば、不備の内容を書いた返送の案内を作る
- そろったものを、顧客情報の変更の入力に回す
- 人郵便を開封し、届出書と写しを1通ずつまとめてスキャンし、受付フォルダに保存する
- 自動定時実行のスクリプトが新しいファイルを見つけ、形式・解像度・ページ数を確かめる
- 自動Google Document AI の Enterprise Document OCR が全ページの文字を読み、マイナンバーカードの裏面にあたるページを見つけて取り除く
- 自動届出書のページを Form Parser が読み、欄の名前と値、チェック欄の状態、信頼度を返す
- 自動顧客番号で顧客情報を引き、生年月日と現在の住所・氏名をそろえる
- 自動Gemini API が、写しの種類を判定し、届出書と写しの住所・氏名がゆれか食い違いかを項目ごとに判定する
- 自動スクリプトが、必須欄・有効期限・生年月日を規則で確かめ、`ready` / `needs_return` / `needs_human` を決める
- 自動`needs_return` のものに、不備の内容を並べた返送の案内の下書きを作る
- 人担当者が `needs_return` と `needs_human` のものだけを開き、判定を確かめる
- 人`ready` のものは一覧で流し見て、顧客情報の変更の入力に回す
各工程の詳しい説明を読む
- 郵便を開封し、届出書と写しをスキャンする
- 届出書の顧客番号・氏名から、顧客情報の画面を開く
- 変更の種類(住所・氏名・電話番号)のチェック、新しい住所・氏名、届出日、署名か押印の有無を目で確かめる
- 写しの種類を確かめ、写しの住所・氏名・生年月日を、届出書と顧客情報の画面に見比べる
- 写しの有効期限が切れていないかを確かめる
- 不備があれば、不備の内容を書いた返送の案内を作る
- そろったものを、顧客情報の変更の入力に回す
(a)表記のゆれで手が止まる。 「3丁目」と「三丁目」、「5番12号」と「5-12」、「ハイツ」と「ハイツ」。同じ住所を同じと言い切るまでに、1件ずつ考え込みます。
(b)本当の食い違いを見落とす。 番地の数字の入れ違い、建物名の部屋番号の抜け。ゆれに慣れた目は、本当の違いも「ゆれ」として流します。 変更後の郵便物が届かず、顧客からの問い合わせで気づきます。
(c)不備の基準が担当者ごとに違う。 届出日の記入が無いものを返送する担当者と、受付日で代える担当者がいます。同じ不備で、返送される顧客とされない顧客が出ます。
(d)裏面の写しの扱いがばらつく。 マイナンバーカードの裏面が写っていると、担当者が気づいて黒塗りにする。気づかなければ、個人番号の写った画像がスキャンのフォルダに残ります。
- 【人】 郵便を開封し、届出書と写しを1通ずつまとめてスキャンし、受付フォルダに保存する
- 【自動】 定時実行のスクリプトが新しいファイルを見つけ、形式・解像度・ページ数を確かめる
- 【自動】 Google Document AI の Enterprise Document OCR が全ページの文字を読み、マイナンバーカードの裏面にあたるページを見つけて取り除く
- 【自動】 届出書のページを Form Parser が読み、欄の名前と値、チェック欄の状態、信頼度を返す
- 【自動】 顧客番号で顧客情報を引き、生年月日と現在の住所・氏名をそろえる
- 【自動】 Gemini API が、写しの種類を判定し、届出書と写しの住所・氏名がゆれか食い違いかを項目ごとに判定する
- 【自動】 スクリプトが、必須欄・有効期限・生年月日を規則で確かめ、
ready/needs_return/needs_humanを決める - 【自動】
needs_returnのものに、不備の内容を並べた返送の案内の下書きを作る - 【人】 担当者が
needs_returnとneeds_humanのものだけを開き、判定を確かめる - 【人】
readyのものは一覧で流し見て、顧客情報の変更の入力に回す
3番目が、この設計の分かれ目です。 裏面をAIに渡してから取り除くのでは遅く、読み取りの最初の段階で、渡す前に取り除きます。 取り除いたページは保存せず、「裏面が同封されていた」という記録だけを残します。
7番目を規則で決めているのも、意図してのことです。 届出日が無いときに返送するか、どの書類を本人確認書類として認めるかは、自行の事務の取り決めで、後から変わります。 AIには、書かれていることの読み取りと比べ方の判定だけをさせます。
02今回想定するシステム構成
郵送の変更届(届出書+本人確認書類の写し) │ 1通ずつスキャンして受付フォルダへ ▼【トリガー】30分おきの定時実行 Python ── 形式・解像度・ページ数の確認 ▼ Google Document AI(Enterprise Document OCR) │ 全ページの文字 → 裏面のページを見つけて取り除く ▼ Google Document AI(Form Parser) │ 届出書の欄の名前と値、チェック欄、信頼度 ▼ Python ── 顧客番号で顧客情報を引く(生年月日・現住所・氏名) ▼ Gemini API ── 写しの種類の判定、住所・氏名のゆれか食い違いかの判定 ▼ Python ── 必須欄・有効期限・生年月日を規則で確認 ▼ 判定(ready / needs_return / needs_human) ▼ 【人が不備と判断不能のものだけ確認】 ├──▶ 返送の案内の下書き └──▶ 顧客情報の変更の入力へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Enterprise Document OCR、Form Parser) | Azure AI Document Intelligence |
| 生成AI | Gemini API(写しの種類の判定、住所・氏名の比べ方の判定) | Claude API、OpenAI API |
| 差異計算 | Python(必須欄・有効期限・生年月日の確認) | 受付管理の表の数式 |
| 連携 | Python(受付フォルダの監視、顧客情報の照会、確認一覧の作成) | 既存の事務の連携の仕組み |
| 保管 | 行内のファイルサーバー(受付フォルダと処理済みフォルダ) | 文書管理システム |
勘定系の顧客情報は、新しく足すものではありません。 この構成は顧客情報を読むだけで、住所・氏名の変更の入力は、これまでどおり担当者が行います。
OCRに Google Document AI を選ぶのは、日本語で使えるプロセッサが2つそろっているからです。 Enterprise Document OCR は文書の文字を読み取るプロセッサで、対応言語に日本語が含まれます。 Form Parser は、キーと値のペア(欄の名前と値)とチェック欄、表、一般的なエンティティを取り出すプロセッサで、こちらも日本語に対応しています。
Form Parser は、書類に書かれた欄の名前をそのまま欄の名前として返します。 あらかじめ項目を決めておく抽出の仕組みとは違い、様式の版が違っても、書かれている欄の名前と値の組が返ります。 3種類の版が混ざる届出書に向いています。
専用の本人確認書類のプロセッサは使いません。 Document AI のプロセッサ一覧にある運転免許証や本人確認書類向けのものは、米国の書類が対象で、対応言語は英語だけです。日本の本人確認書類の写しは、Enterprise Document OCR で文字として読みます。
ページ数の上限は、同期処理で15ページ、非同期のバッチ処理では Form Parser が100ページ、Enterprise Document OCR が500ページです。 変更届の1通は数ページなので、同期処理で足ります。
03どうやって実装するのか
処理の起点を決める
受付フォルダを30分おきに見に行き、新しいファイルがあれば処理します。 郵便は午前と午後にまとめて届き、開封とスキャンもまとめて行います。保存した瞬間に動かす必要はありません。
処理の単位は、郵便1通分です。 届出書と写しを1つのファイルにまとめてスキャンします。別々のファイルにすると、どの写しがどの届出書のものかを取り違えます。 スキャンの前に、封筒ごとに受付番号の付いた区切りの紙を挟む決まりにします。
処理が終わったファイルは処理済みフォルダへ移します。 移すのは最後まで成功したときだけで、受付フォルダに残っている数が未処理の数です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 届出書と写しのファイル | 1通分のPDF。受付番号、受け取った日 | 受付フォルダ |
| 読み取り結果(全ページ) | 各ページの文字、信頼度 | Enterprise Document OCR |
| 読み取り結果(届出書) | 欄の名前と値、チェック欄の状態、信頼度 | Form Parser |
| 顧客情報 | 顧客番号、氏名、生年月日、現在の住所 | 勘定系の顧客情報(照会) |
| 事務の取り決めの表 | 必須欄、本人確認書類として認める書類、省略してよい条件 | 事務センターが整える表 |
| 欄の名前の対応表 | 版ごとの欄の名前と、共通の項目名の対応 | 事務センターが整える表 |
質を決めるのは、下の2つの表です。 事務の取り決めの表が無ければ、第3章の(c)がそのまま残ります。欄の名前の対応表は、3種類の版の「おところ」「新住所」「変更後のご住所」を、1つの項目名 new_address に寄せるためのものです。
顧客情報から引くのは、生年月日と現在の住所・氏名だけです。 生年月日は写しと照らして同じ人かを確かめるため、現在の住所は「変更前の住所」として届出書に書かれた値と照らすためです。口座の残高や取引の履歴は引きません。
データの取得方法を決める
まず、全ページを Enterprise Document OCR で読みます。 目的は2つです。1つは裏面のページを見つけること、もう1つは写しの文字を取ることです。
裏面のページは、文字の並びで見つけます。 「個人番号」という文字と、12桁の数字の並びが同じページにあれば、裏面の候補です。この判定はスクリプトの規則で行い、AIには渡しません。 候補になったページは、その場で取り除きます。
次に、届出書のページを Form Parser に渡します。 届出書は1ページ目と決めておき、区切りの紙の次のページを届出書として扱います。返ってくる結果から、次のものを取ります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 欄の名前と値 | pages の formFields の fieldName と fieldValue | 必須欄の値と、新しい住所・氏名 |
| チェック欄の状態 | fieldValue の valueType(filled_checkbox / unfilled_checkbox) | 変更の種類(住所・氏名・電話番号) |
| 値の位置と信頼度 | 各欄の layout の textAnchor と confidence | 読み取りに自信が無い欄を見分ける |
欄の値は、文書全体の本文の一部として指されています。 textAnchor の textSegments が startIndex と endIndex で本文の範囲を指すので、その範囲を本文から切り出して値にします。
チェック欄は、印が付いているかどうかが valueType で返ります。 印の付いたものは filled_checkbox、付いていないものは unfilled_checkbox です。「住所の変更」に印が無いのに新しい住所が書かれている届出書は、珍しくありません。
AIへ渡す前に整形する
- 形式の確認 … PDF、TIFF、JPEG、PNG などの対応形式であることを確かめます。スキャナの出力はPDFに統一します
- 解像度の確認 … スキャンは最低200dpi、300dpi以上が一般に最も良い結果になるとされています。写しの小さな文字のため、300dpiで取ります
- ページ数の確認 … 同期処理は15ページまでです。超えるものは封筒の区切りの誤りを疑い、人へ回します
- 裏面のページの除去 … 上の規則で候補になったページを取り除き、除いたことだけを記録します
- 欄の名前の寄せ … 欄の名前の対応表で、版ごとの名前を共通の項目名に寄せます
- 住所の下ごしらえ … 全角と半角、ハイフンの種類をそろえます。漢数字と算用数字の置き換えはしません。 置き換えの規則そのものが誤りのもとになるので、比べ方の判定に任せます
6番目で置き換えを控えているのは、意図してのことです。 「一ツ橋」の「一」を「1」に変えると、地名が壊れます。機械的にそろえてよいのは、意味の変わらない文字の幅と記号だけです。
AIに処理させる
させるのは、写しの種類を決めることと、届出書と写しの住所・氏名について、同じか・違うか・判断できないかを判定し、根拠を書き出すことだけです。 必須欄の有無、有効期限、生年月日の一致は、スクリプトが規則で確かめます。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 写しの種類 | 運転免許証・マイナンバーカードの表面・資格確認書・住民票の写し・その他 | 決められなければ unknown |
| 新しい住所 | 届出書と写しで、表記のゆれか、別の住所か | 部屋番号が片方にしか無いなどは unclear |
| 新しい氏名 | 届出書と写しで、同じ氏名か | 旧字体と新字体の違いは unclear |
| 写しの住所の新しさ | 写しの住所が、新しい住所になっているか | 裏書きの欄が読めなければ unclear |
4行目を入れているのは、転居したばかりの顧客が多いからです。 運転免許証は裏面の備考欄に新しい住所が書かれることがあり、表面の住所だけを見ると「写しの住所が古い」と判定してしまいます。 裏書きの欄も読んだうえで判定させます。
| させないこと | 理由 |
|---|---|
| 写しが本物かの判断 | 本人確認の判断で、この構成の範囲外 |
| 住所の補完・訂正 | 「5-12」を「5番12号」に書き直して返さない |
| 旧字体・新字体の読み替え | 「髙」と「高」を同じと決めない。登録の扱いは事務の取り決め |
| 不備として返送するかの判断 | 事務の取り決めの表と規則で決める |
| 個人番号の読み取り | 裏面のページはそもそも渡さない |
2行目がいちばん起きやすい失敗です。 比べさせると、AIは両方を「正しい表記」に直してから比べ、直した住所を値として返します。 顧客情報の変更に入力する値は、届出書に書かれたとおりのものです。AIの書き直しが入り込まないよう、返させるのは判定と根拠だけにします。
指示内容を固定する
あなたは銀行の事務センターで、郵送で届いた住所・氏名の変更届を点検する立場です。
届出書と、添えられた本人確認書類の写しの読み取り結果だけを見て判定してください。
推測で埋めないでください。
【1. 写しの種類を決める】
driver_license / mynumber_card_front / health_insurance_certificate /
residence_certificate / other / unknown のどれか1つ。
【2. 住所を比べる】
届出書の new_address と、写しに書かれた住所を比べ、次のどれかを選ぶ。
- same ...... 表記のゆれだけで、同じ住所と読める
(例:「三丁目5-12」と「3丁目5番12号」)
- different . 番地・号・建物名・部屋番号のどこかが違う
- unclear ... 片方にしか無い要素がある、読み取りの信頼度が低いなど、決められない
運転免許証は、裏面の備考欄の住所も写しの住所として読んでください。
【3. 氏名を比べる】
届出書の new_name と、写しの氏名を比べ、same / different / unclear を選ぶ。
旧字体と新字体の違いは unclear にしてください。
【厳守事項】
- 住所や氏名を書き直さないでください。値は読み取った文字列のまま evidence に写してください。
- 「正しい表記」に直してから比べた結果を返さないでください。
- 迷ったときに same を選ばないでください。
- 読み取りの信頼度が {threshold} を下回る値に基づく判定は、unclear にしてください。
- 写しが本物か、本人のものかは判定しないでください。
- 返送すべきかどうかは書かないでください。
- 12桁の数字の並びが読み取り結果に含まれていても、書き写さないでください。
【届出書の読み取り結果】{form_fields}
【写しの読み取り結果】{id_text}
【信頼度の基準値】{threshold}
「正しい表記に直してから比べない」を明記しないと、根拠が消えます。 AIは比べる前に両方をそろえたくなり、そろえた文字列を根拠として書きます。担当者が見たいのは、届出書と写しに実際に何と書かれていたかです。
最後の1行は、念のための二重の守りです。 裏面のページは前処理で取り除いていますが、表面にも何かの拍子に番号が写り込む可能性はゼロではありません。 出力にも書かせないことで、ログに番号が残る経路を閉じます。
出力形式を固定する
Gemini API の構造化出力で、次の形のJSONを受け取ります。 構造化出力はJSONのスキーマの一部の機能をサポートしており、enum で選べる値を縛れます。返るJSONは構文として正しいことが保証されますが、値そのものはアプリケーションの側で確かめるよう公式に案内されています。
{
"receipt_no": "",
"id_document_type": "driver_license | mynumber_card_front | health_insurance_certificate | residence_certificate | other | unknown",
"address_check": {
"result": "same | different | unclear",
"form_value": "", "id_value": "", "reason": ""
},
"name_check": {
"result": "same | different | unclear",
"form_value": "", "id_value": "", "reason": ""
}
}
form_value と id_value は、スクリプトが読み取り結果と突き合わせます。 AIが写した文字列が、読み取り結果の中にそのまま存在するかを確かめ、存在しなければAIが書き直したものとして unclear に置き換えます。 値を確かめるよう案内されている部分を、ここで確かめます。
AIの出力とは別に、スクリプトが規則で決める項目を持ちます。
| 項目 | 値 | 意味 |
|---|---|---|
required_fields | ok / missing | 事務の取り決めの表にある必須欄がすべて埋まっているか |
change_type_consistent | ok / mismatch | チェック欄の種類と、書かれた変更の中身が合うか |
birthdate_match | match / mismatch / unknown | 写しの生年月日と顧客情報の一致 |
id_valid | valid / expired / unknown | 写しの有効期限(期限のある書類のみ) |
back_side_removed | true / false | 裏面のページを取り除いたか |
verdict | ready / needs_return / needs_human | 取り決めの表と規則で決めた判定 |
verdict | 条件 |
|---|---|
ready | 必須欄がそろい、住所・氏名が same、生年月日が match、写しが valid |
needs_return | 必須欄の missing、写しの expired、認めない種類の写し |
needs_human | different か unclear がある、mismatch がある、読み取りの信頼度が低い |
different を needs_return にしていないのは、読み違いの可能性が残るからです。 本当に食い違っているのか、OCRが番地の数字を読み違えたのかは、人が原本の画像で確かめてから決めます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ | スクリプトの定時実行 | 新しいスキャンのファイルを見つける |
| Google Document AI | API呼び出し | 全ページの文字、届出書の欄とチェック欄、信頼度 |
| 顧客情報 | 照会(読み取りのみ) | 生年月日と現在の住所・氏名 |
| Gemini API | API呼び出し(構造化出力) | 写しの種類と、住所・氏名の比べ方の判定 |
| 確認用の一覧 | 受付管理の表 | 判定と根拠を並べる |
顧客情報へは書き込みません。 住所・氏名の変更の入力は、ready のものも含めて担当者が行います。この構成が入力まで行うと、読み違えた住所が、そのまま顧客情報になる経路ができます。
返送の案内も自動では送りません。 下書きを担当者が確かめ、郵送で返します。
人が確認する
人が開くのは needs_return と needs_human のものだけです。 ready のものは一覧で流し見て、変更の入力に回します。全件を開く設計にすると、第10章の40.0時間には収まりません。
needs_humanのdifferentを先に見る … 届出書と写しの画像を並べ、読み違いか本当の食い違いかを決めますunclearを見る … 部屋番号の有無、旧字体と新字体など、事務の取り決めの表で扱いを決めますneeds_returnの下書きを確かめる … 不備が本当に不備かを画像で確かめてから送ります- 判定を覆したら記録する … どの項目を、どちらに変えたかを残します
1番目を省かないでください。 本当の食い違いを見落とすと、変更後の郵便物が別の住所に届きます。 金融機関からの郵便物には、取引の内容が書かれています。
目標は、1,200件をならして1件2分です。 開くのは2割前後という想定で、転居の多い3月と4月は unclear が増え、2分を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| マイナンバーカードの裏面が同封されている | 読み取りの最初に取り除き、保存しない。同封されていたことだけを記録 |
| 裏面の候補の判定を外れた | 担当者が画像で気づいたら、その場で取り除き、規則を見直す |
| 届出書が1ページ目に無い | 区切りの紙の誤り。封筒単位で人へ |
| 古い版の届出書で、欄の名前が対応表に無い | 欄の名前の対応表に足す。足すまでは人へ |
| チェック欄の印と変更の中身が合わない | change_type_consistent を mismatch にし、人へ |
| 手書きの文字が読めない | 信頼度が低い値は unclear として人へ |
| 写しの有効期限が読めない | id_valid を unknown にし、人へ |
| 顧客番号が書かれていない | 氏名と生年月日で顧客を探すのは人が行う。機械で名寄せしない |
| 写しが入っていない | needs_return。返送の案内に「本人確認書類の写し」を入れる |
| APIが応答しない | 受付フォルダに残す。処理済みへ移すのは成功時だけ |
上から2行目までを、最も重く扱います。 どちらも個人番号に関わり、起きたときの後始末が、ほかの例外よりはるかに大きいからです。
記録を残す
- 元のスキャンのファイル(裏面のページを取り除いた後のもの)と、受付番号・受け取った日
- 裏面のページを取り除いた記録(受付番号とページ番号だけ。画像も番号も残さない)
- Document AI が返した結果の全文
- AIに渡した内容と、返ってきたJSONの全文。AIの写した値を読み取り結果と突き合わせた結果
- 規則の判定と
verdict、そのとき使った事務の取り決めの表の版 - 人が判定を覆した記録 … どの項目を、どちらに変えたか
- 返送した日と、再提出との対応
2つ目で番号を残さないのは、残した瞬間に管理の対象になるからです。 記録するのは「どの受付の何ページ目に裏面があり、取り除いた」という事実だけにします。
04実装レベルの3段階
最小構成では件数がさばけません。 月1,200件には使えません。確かめるための段階です。 半自動化で、①と②の目視が確認に変わります。 ただし裏面の確認と返送の案内は担当者の手に残ります。本格構成で③と④も自動になり、この段階が本記事の想定です。 段階を飛ばさないでください。 とくに裏面の除去は、半自動化の段階で規則の当たり外れを1か月見てから本格構成に入れます。外れたときの重さが、ほかの誤りと違うからです。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 住所・氏名の変更届を紙で受け付けており、事務センターに毎月千件前後が本人確認書類の写しを添えて郵送で届く銀行・信用金庫・証券会社。届出書の記入漏れと、本人確認書類の住所・氏名との食い違いを担当者が目視で確かめていて、見落としが後の郵便物の不着や手続きのやり直しにつながっている場合。保険会社の契約者の変更届にも当てはまります。
- 変更の手続きがほぼアプリやWebで完結し、紙の届出書が月に数十件しか届かない場合。本人確認そのもの(書類が本物か、本人が出したものか)の判定を自動化したい場合、この構成では代替できません。印鑑の照合も対象外です。
07最小構成で試す方法
- 先月受け付けた変更届から20件を選ぶ(うち数件は、住所の表記が複雑なものと、不備で返送したものを入れる)
- 届出書と写しのスキャン画像から、マイナンバーカードの裏面が写ったものを除く
- 手元のAIサービスの画面に、届出書と写しを1件ずつ貼り付ける
- 「届出書の新しい住所・氏名と、本人確認書類の住所・氏名を比べて、表記のゆれだけなら same、違いがあれば different、決められなければ unclear としてください。住所を書き直さず、書かれたとおりの文字列を根拠として示してください。必須欄の空欄も挙げてください」と指示する
- 出てきた判定を、当時の担当者の判断と突き合わせる
20件は必ずやってください。 確かめたいのは、「ゆれ」と「食い違い」の分け方が、担当者の判断と合うかどうかです。
| 出てきた内容 | 判断 |
|---|---|
| 担当者と同じ判定が出た | OCRのAPIとの連携に進む |
| 住所を書き直して比べた | 指示の書き方と、値の突き合わせで直る。構成は有効 |
| 担当者どうしで判断が割れていた | 事務の取り決めの表が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 部屋番号の抜けを返送するか、旧字体をどう扱うかは、担当者ごとに違っていたはずです。 それを表にしてから、同じ20件で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが住所を書き直してから比べる | 書き直しを禁じ、写した値が読み取り結果にあるかをスクリプトで確かめる |
| マイナンバーカードの裏面がAIに渡る | 読み取りの最初に規則で取り除く。 AIの前に置く |
| 漢数字を機械的に算用数字に置き換える | 地名が壊れる。そろえるのは文字の幅と記号だけ |
| 運転免許証の裏書きの住所を見落とす | 裏面の備考欄も写しの住所として読ませる |
| 旧字体と新字体を同じとみなす | unclear にし、事務の取り決めで扱いを決める |
| 専用の本人確認書類のプロセッサを使おうとする | 米国の書類が対象で英語だけ。Enterprise Document OCR で文字を読む |
| 届出書と写しを別ファイルにする | 取り違える。1通を1ファイルにし、区切りの紙を挟む |
| 古い版の届出書の欄を拾えない | 欄の名前の対応表に、版ごとの名前を入れる |
different をそのまま返送に回す | 読み違いの可能性がある。必ず人が画像で確かめる |
| 不備の基準が担当者ごとに違う | 取り決めの表にして、事務センターで合意する |
上の2行が、この構成の失敗のほとんどです。 1行目は判定の根拠を失わせ、2行目は扱ってはいけない情報を扱わせます。どちらも「AIに渡す前と後に、機械の規則を置いてあるか」で防げます。
下の2行も、同じくらい早く効いてきます。 食い違いをそのまま返送に回すと、読み違いのたびに顧客に手間をかけさせます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の氏名、新旧の住所、生年月日、電話番号、そして本人確認書類の写しです。マイナンバーカードの裏面が同封されていれば、個人番号も含まれます。
- 個人番号を扱わない … デジタル庁のQ&Aでは、マイナンバーカードを身分証明書として使う場合、裏面のマイナンバーを書き写したりコピーを取ったりすることはできないとされています。裏面のページはAIに渡さず、保存もしない流れを設計の最初に置きます
- 外部へ渡す範囲を段階ごとに絞る … 生成AIに渡すのは、届出書の欄の値と写しの文字のうち、判定に要るものだけです。口座番号や顧客情報の残りは渡しません
- データを処理する地域を決める … Document AI のプロセッサは作る地域を選びます。Form Parser と Enterprise Document OCR の対応地域は
us、eu、asia-southeast1、asia-south1、australia-southeast1、europe-west2、europe-west3、northamerica-northeast1で、日本の地域は一覧にありません。 どこで処理するかを、自行の外部委託の規程に照らして決めます - この構成は本人確認を代替しません … 写しが本物か、本人が出したものかの判断は、これまでどおり事務の手続きの中で人が行います
- 顧客情報を自動で書き換えない … 住所・氏名の変更の入力は担当者が行います
- 保存期間を決める … スキャンのファイル、読み取り結果、AIとのやり取りを、それぞれいつまで残すかを自行の規程で決めます
誤りが起きた場合のリスクは、本当の食い違いを見落として郵便物が別の住所に届くことと、個人番号の写った画像が残ることの2つです。 前者は different と unclear を人に回さないと起き、後者は裏面の除去をAIの後に置くと起きます。どちらも機械の規則の置き場所で決まるので、そこだけは設計で守ります。
10まず何から始めるか
1週目:事務の取り決めの表を作る
事務センターの担当者で、どの欄が空なら返送するか、どの書類を本人確認書類として認めるか、部屋番号の抜けや旧字体をどう扱うかを書き出します。担当者ごとに違っていた判断が、ここで見えます。
2週目:20件で試す
第8章のとおり、先月の変更届から20件を選び、手元のAIサービスで住所・氏名を比べさせます。当時の担当者の判断と突き合わせ、住所を書き直していないかを最優先で見ます。
3週目:裏面の除去の規則を確かめる
過去1か月分のスキャンで、「個人番号」の文字と12桁の数字の並びという規則が、裏面のページを取りこぼさず、ほかのページを誤って取り除かないかを確かめます。取りこぼしが1件でもあれば、規則を足します。
4週目:読み取りから判定までをつなぐ
スクリプトで受付フォルダを見に行き、Enterprise Document OCR と Form Parser を呼び、欄とチェック欄の読み取りを一覧に書き出すところまで作ります。この時点では verdict を出さず、読み取りの一覧だけを見ます。
2か月目: 顧客情報の照会と住所・氏名の判定、規則の判定を足し、verdict を出します。needs_return と needs_human の件数を毎週数えます。3か月目以降: 返送の案内の下書きを足し、1件7分が何分になったかを実測します。転居の多い3月と4月を一度越え、unclear の扱いを取り決めの表に書き足した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Enterprise Document OCR が文書の文字を読み取り、対応言語に日本語が含まれること。Form Parser がキーと値のペア(欄とチェック欄)、表、一般的なエンティティを取り出し、対応言語に日本語が含まれること。ページの上限が同期処理で15、バッチ処理で Form Parser が100、Enterprise Document OCR が500であること。対応地域が us、eu、asia-southeast1、asia-south1、australia-southeast1、europe-west2、europe-west3、northamerica-northeast1 であること。運転免許証などの本人確認書類向けのプロセッサが米国の書類を対象とし、対応言語が英語だけであること | Google Cloud: Processor list | 2026-09-29 |
Form Parser の結果で、欄が formFields の fieldName と fieldValue で返り、書類に書かれた欄の名前がそのまま欄の名前になること。チェック欄の状態が valueType の filled_checkbox / unfilled_checkbox で返ること。各欄の layout に textAnchor(startIndex・endIndex)と confidence が付くこと | Google Cloud: Handle the processing response | 2026-09-29 |
| 対応するファイル形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などであること。スキャンは最低200dpi、300dpi以上が一般に最も良い結果になるとされていること | Google Cloud: Supported files | 2026-09-29 |
Gemini の構造化出力が JSON Schema の一部の機能(enum、required など)をサポートし、構文として正しいJSONを返すが、値はアプリケーションの側で確かめるよう案内されていること | Google AI for Developers: Structured output | 2026-09-29 |
| マイナンバーカードを身分証明書として使う場合、裏面に記載されたマイナンバーを書き写したりコピーを取ったりすることはできないとされていること(Q4-1-3) | デジタル庁: マイナンバー制度に関するよくある質問 | 2026-09-29 |
どの不備で返送するか、どの書類を本人確認書類として認めるかは、自行の事務の規程と、関係する法令の担当部署の判断に従ってください。 本記事は Google Cloud、Google AI for Developers、デジタル庁のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0373)についてのご相談はこちらから。
