市役所の窓口で受け付けた手書きの住民票の写し等の交付請求書を読み取り、請求者の区分に応じた記入漏れを返して受付台帳に転記する
窓口で受け付けた手書きの住民票の写し等の交付請求書をスキャナで読み取り、請求者・対象者・通数・使用目的と記載事項のチェック欄を取り出します。請求者の区分ごとに必要な記入事項がそろっているかを確かめ、漏れを窓口の画面に返して、受付台帳に転記します。
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Power Automate/Python
- 対象業界
- 自治体
- 対象部門
- 総務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 請求者が記載台で請求書を書き、窓口に出す
- 職員が請求書の区分(本人等/代理人/第三者/士業)を見て、必要な欄が埋まっているかを目で確かめる
- 漏れがあれば請求者に書き足してもらう
- 本人確認の書類を見て、代理人なら委任状を確かめる
- 住民基本台帳のシステムで交付の操作をし、手数料を受け取って交付する
- 窓口が空いた時間に、請求書を見ながら受付台帳に転記する
- 人職員が請求書を受け取り、窓口のスキャナで読み込む
- 自動保存をきっかけに処理が動き、様式(本人等用・第三者用・士業用)に合ったモデルで読み取る
- 自動請求者の区分の欄とチェック欄を読み、区分ごとの規則を選ぶ
- 自動必要な欄を1つずつ見て、`ok` / `missing` / `low_confidence` を付ける
- 自動区分に照らして記入できないチェック(第三者の申出での個人番号など)がないかを見る
- 自動結果を窓口の画面に返す(数秒)。`missing` は請求者に書き足してもらう欄、`low_confidence` は職員が目で確かめる欄として分けて出す
- 人職員が画面を見て、書き足しを頼むか、目で確かめて直す
- 人本人確認、代理権の確認、第三者の申出を相当と認めるかの判断をし、交付の操作をする
- 自動職員が確定した内容で、受付台帳に1行を足す
各工程の詳しい説明を読む
- 請求者が記載台で請求書を書き、窓口に出す
- 職員が請求書の区分(本人等/代理人/第三者/士業)を見て、必要な欄が埋まっているかを目で確かめる
- 漏れがあれば請求者に書き足してもらう
- 本人確認の書類を見て、代理人なら委任状を確かめる
- 住民基本台帳のシステムで交付の操作をし、手数料を受け取って交付する
- 窓口が空いた時間に、請求書を見ながら受付台帳に転記する
(a)区分ごとに必要な記入事項が違い、確認がぶれる。 本人等の請求と第三者の申出では、必要な欄が違います。士業の請求なら資格・業務の種類・依頼者の氏名が要ります。慣れた職員は区分を見て必要な欄を思い出しますが、繁忙期に入った職員は、どの様式でも同じ欄だけを見がちです。
(b)チェック欄を見落とす。 請求書には「本籍・筆頭者」「世帯主・続柄」「個人番号」などを記載するかのチェック欄があります。法は、特別の請求がない限りこれらの記載を省略できると定めているので、チェック欄の見落としは、交付する写しの中身を誤ることにつながります。
(c)転記が後回しになる。 窓口が混む時間は台帳の転記ができず、夕方にまとめて打ち込みます。請求書の束から1枚ずつ読んで打つので、通数や対象者の名前の打ち間違いが出ます。
(d)漏れが分かるのが後になる。 夕方の転記の時点で利用の目的の空欄に気づいても、請求者はもう帰っています。 交付してしまった後で記録の不備が見つかると、台帳の備考に書いて残すしかありません。
- 【人】 職員が請求書を受け取り、窓口のスキャナで読み込む
- 【自動】 保存をきっかけに処理が動き、様式(本人等用・第三者用・士業用)に合ったモデルで読み取る
- 【自動】 請求者の区分の欄とチェック欄を読み、区分ごとの規則を選ぶ
- 【自動】 必要な欄を1つずつ見て、
ok/missing/low_confidenceを付ける - 【自動】 区分に照らして記入できないチェック(第三者の申出での個人番号など)がないかを見る
- 【自動】 結果を窓口の画面に返す(数秒)。
missingは請求者に書き足してもらう欄、low_confidenceは職員が目で確かめる欄として分けて出す - 【人】 職員が画面を見て、書き足しを頼むか、目で確かめて直す
- 【人】 本人確認、代理権の確認、第三者の申出を相当と認めるかの判断をし、交付の操作をする
- 【自動】 職員が確定した内容で、受付台帳に1行を足す
6番目で、漏れが請求者のいるうちに分かるのがこの設計の要です。 第3章の(d)のように夕方に気づくのでは遅く、窓口で請求者が帰る前に書き足してもらえるかどうかで、記録の質が決まります。
8番目は、すべて人の判断です。 本人確認の書類は読み取りの対象にせず、第三者の申出を認めるかどうかも、この構成は何も言いません。 機械がするのは、請求書に書かれていることの読み取りと、欄の漏れの指摘だけです。
02今回想定するシステム構成
交付請求書(本人等用・第三者用・士業用、手書き) │ 窓口のスキャナで読み込み ▼【トリガー】保存用のコンテナへの保存 Azure Functions(Python) ▼ Azure AI Document Intelligence(カスタム テンプレート モデル。様式ごとに学習し合成) │ 欄ごとの文字・チェック欄・署名欄と、信頼度 ▼ Azure Functions ── 区分ごとの規則で判定 │ ① 区分の欄 ② 必要な欄 ③ 記入できないチェック ④ 信頼度 ▼ 窓口の画面(記入漏れ/目で確かめる欄) ▼ 【人が書き足し・確認・本人確認・交付】 ▼ 受付台帳(職員が確定した内容で1行を足す)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(カスタム テンプレート モデル) | Google Document AI(Form Parser) |
| 連携 | Azure Functions(Python。保存の検知、読み取りの呼び出し、判定、画面と台帳への受け渡し) | Power Automate |
| 集計 | Azure Functions の判定と台帳の行づくり(区分ごとの規則の表から) | ─ |
| 保管 | Azure Blob Storage(請求書の画像、読み取りの結果、判定の記録) | ─ |
住民基本台帳のシステムには、何もつなぎません。 交付の操作はこれまでどおり職員が行い、この構成は請求書の読み取りと受付台帳への転記だけを受け持ちます。 住民の記録をこの構成から見ることもしません。
土台になるのは、Azure AI Document Intelligence のカスタム テンプレート モデルです。 公式のドキュメントでは、決まった見た目の様式を持つ構造化された文書から、ラベルを付けたキーと値、選択マーク(チェック欄)、表、領域、署名を取り出すモデルで、手書きの文字の対応言語に日本語(ja)が含まれています。
様式が3種類あることには、モデルの合成で対応します。 公式では、テンプレート モデルは決まった見た目に頼るため、様式が変わると精度が下がり、その場合は様式ごとに少なくとも5枚の見本で別々にモデルを学習し、1つの呼び出し先に合成するよう案内されています。本人等用・第三者用・士業用をそれぞれ学習し、合成したモデルを呼びます。
入力は PDF と画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)で、1枚に1つの文書をはっきり写すのが最もよい結果になるとされています。 抽出する文字の最小の高さは1024×768の画像で12ピクセルで、150dpiで約8ポイントの文字に当たります。窓口のスキャナは、細い手書きがこの下限を割らない解像度に設定します。
03どうやって実装するのか
処理の起点を決める
窓口のスキャナで請求書を読み込み、保存用のコンテナにファイルが置かれたことを起点にします。 スキャナの保存先を Azure Blob Storage のコンテナにし、Azure Functions の Blob のトリガーで1枚ずつ処理します。まとめて夕方に処理しないのは、第5章の6番目のとおり、請求者がいるうちに漏れを返すためです。
ファイル名には、窓口の番号と受付の番号を入れます。受付の番号は、窓口で請求者に渡す番号札と同じにしておきます。 画面に返す結果と、目の前の請求者が結びつきます。
郵送で届いた請求も、様式の請求書で届いたものは同じスキャナで読み込みます。便箋に書かれた手紙の請求は、様式が無いのでこの構成の対象にせず、これまでどおり職員が読みます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 請求書の画像 | 本人等用・第三者用・士業用のどれか。受付の番号と窓口の番号 | 窓口のスキャナ |
| 読み取り結果 | 欄ごとの文字、チェック欄の状態、署名欄の有無、欄ごとの信頼度 | Azure AI Document Intelligence |
| 区分ごとの規則の表 | 区分ごとの必要な欄、記入できないチェック、通数の上限の目安 | 市民課が作る表 |
| 手数料の表 | 証明の種類ごとの1通あたりの手数料 | 市の手数料条例から起こした表 |
質を決めるのは、区分ごとの規則の表です。 法の条文を、請求書のどの欄が要るかに置き換えた表で、市民課が様式に合わせて作り、改正や様式の変更のたびに直します。
| 区分 | 必要な欄(例) | 根拠 |
|---|---|---|
| 本人・同一世帯 | 請求者の氏名・住所、対象者の氏名、証明の種類、通数 | 第12条第2項 |
| 代理人 | 上記+窓口に来た人の氏名・住所、委任状の有無の欄 | 第12条第2項第2号 |
| 第三者 | 申出者の氏名・住所、対象者の氏名・住所、利用の目的 | 第12条の3第4項 |
| 士業 | 上記+資格と業務の種類、依頼者の氏名または名称 | 第12条の3第4項第5号 |
この表の「必要な欄」には、法が総務省令に委ねている事項もあります。 省令と市の様式で何を求めているかを、市民課が様式の欄に当てはめて書き足します。表を作る作業そのものが、区分ごとの確認の基準を窓口でそろえることになります。
データの取得方法を決める
読み取りは、Azure Functions から合成したカスタム モデルを呼ぶだけです。モデルの学習は、様式ごとに見本の請求書にラベルを付けて行います。 公式では、学習の呼び出しで buildMode を template にするとテンプレート モデルになります。
POST {endpoint}/documentintelligence/documentModels:build?api-version=2024-11-30
{ "modelId": "juminhyo-third-party-v1",
"buildMode": "template",
"azureBlobSource": { "containerUrl": "...", "prefix": "third-party/" } }
| 取るもの | ラベルの種類 | 何に使うか |
|---|---|---|
| 請求者・対象者の氏名と住所 | キーと値(フィールド) | 必要な欄の判定、台帳 |
| 請求者の区分の欄 | 選択マーク | 規則の選択 |
| 本籍・続柄・個人番号などの記載のチェック | 選択マーク | 記入できないチェックの判定、職員への表示 |
| 証明の種類と通数 | キーと値 | 台帳、手数料の計算 |
| 利用の目的 | 領域 | 第三者・士業の必要な欄 |
| 署名欄 | 署名 | 書かれているかの確認 |
学習の見本には、実際の請求書を使わず、職員が架空の内容で書いたものを使います。 見本は様式ごとに少なくとも5枚で、字のうまい人とそうでない人、ボールペンと鉛筆、チェックを丸で囲んだものとレ点を付けたものを混ぜます。 窓口で起きる書き方のばらつきを、見本の側に入れておきます。
信頼度は欄ごとに受け取ります。 公式では、2024-11-30(GA)の API 版からカスタム モデルの欄の信頼度に単語の信頼度が含まれるようになり、表・行・セルの信頼度も返るとされています。一方で、すべての欄が信頼度を返すわけではないとも書かれています。 信頼度が返らなかった欄は、値があっても low_confidence として扱い、職員が見る側に回します。値が無いことを「確か」と読み替えないための決まりです。
公式では、カスタム テンプレート モデルは学習時に推定の精度を出し、80%以上を目安に、機微な場面では100%近くを目指すよう案内されています。 住民の個人情報を扱うので、推定の精度が十分でない欄は、運用で必ず職員が目で確かめる欄に指定します。
AIへ渡す前に整形する
- 形式の確認 … スキャナの出力を PDF か画像にそろえます
- 向きと傾きの確認 … 逆さに読み込んだものは回転してから呼びます
- 様式の確認 … 合成モデルが返す文書の種類から、どの様式かを確かめます
- 解像度の確認 … 1024×768の画像で12ピクセルの下限を割らない設定かを、導入時に確かめます
- 委任状・本人確認の書類を混ぜない … 請求書だけを読み込み、添付の書類はスキャナに通しません
5番目は、この構成が扱う個人情報を必要な範囲にとどめるためです。 本人確認の書類の画像をクラウドに送る理由は、この構成にはありません。職員が目で見て確かめ、画像は残しません。
AIに処理させる
させるのは、請求書の欄ごとの読み取りと、信頼度を返すことです。 漏れの判定は、Azure Functions のプログラムが規則の表で行います。生成AIは使いません。
| 判定すること | やり方 | 判断できないとき |
|---|---|---|
| 請求者の区分 | 区分の選択マークのどれに印があるか | 印が0個か2個以上なら low_confidence |
| 必要な欄が書かれているか | 規則の表の欄ごとに、値があるか | 値が無ければ missing |
| 読み取りが確かか | 欄ごとの信頼度が設定した値以上か | 下回れば low_confidence |
| 記入できないチェック | 区分に照らして選べない記載の印があるか | 印があれば not_allowed |
| 通数 | 数字として読めるか、目安を超えていないか | 読めなければ low_confidence |
右端の列の missing と low_confidence の区別が、この構成でいちばん大事です。 missing は請求者に書き足してもらう欄、low_confidence は職員が請求書を見て確かめる欄です。混ぜると、書いてある請求者に書き直しを頼むことになります。
not_allowed は、第三者の申出で個人番号の記載に印がある場合などです。 住民基本台帳法は、本人等以外の申出で交付できる写しに表示できる事項から、個人番号と住民票コードを除いています。印があっても交付の中身は職員が決めますが、窓口で請求者に説明が要る場面なので、画面の上に出します。
| させないこと | 理由 |
|---|---|
| 本人確認 | 職員が書類を見て行う |
| 第三者の申出を認めるかの判断 | 市町村長(窓口の職員)が相当と認めるかを判断する |
| 不当な目的かの判断 | 法に基づき職員が判断する |
| 読めない字の推測 | 名前の字を似た字に寄せない |
| 信頼度の付け直し | 読み取りが返した値をそのまま使う |
「読めない字の推測」を禁じるのは、氏名の字体に意味があるからです。 「髙」と「高」、「齋」と「斎」を読み取りの側で寄せると、対象者を取り違えたまま台帳に残ります。 読みにくい字は low_confidence にして、職員が請求書の字を見ます。
指示内容を固定する
この構成では生成AIを使わないので、プロンプトの代わりに判定の規則を設定として持ちます。 規則の表は次のような形で、Azure Functions が読み込みます。
【区分】third_party(第三者)
【必要な欄】
applicant_name 申出者の氏名
applicant_address 申出者の住所
subject_name 対象者の氏名
subject_address 対象者の住所
purpose 利用の目的(空白・「提出のため」だけは missing)
cert_type 証明の種類
copies 通数
【記入できないチェック】
include_individual_number 個人番号の記載
include_resident_code 住民票コードの記載
【信頼度】
氏名・住所の欄 ........ 0.90 未満は low_confidence
チェック欄 ............ 0.85 未満は low_confidence
通数 .................. 0.95 未満は low_confidence
【通数の目安】
6 通以上は low_confidence(職員が請求者に確かめる)
【返し方】
missing ........ 画面の「書き足しを依頼」の枠
low_confidence . 画面の「目で確かめる」の枠
not_allowed .... 画面の最上部
信頼度の値は、導入時に試して決めます。 ここに書いた値は例で、架空の請求書100枚を読ませ、職員が正解と突き合わせて、見落としが出ない値まで上げます。 値を高くするほど職員が見る欄が増えるので、欄ごとに分けて決めます。
「提出のため」だけの利用の目的を missing にするのは、運用の一例です。 第三者の申出では、利用の目的が交付を認めるかの判断の材料になるので、「どこに何のために出すか」が分からない書き方を、窓口で書き足してもらう扱いにすることが考えられます。この基準は市民課が決め、表に書きます。
出力形式を固定する
判定の結果を、Azure Functions が次の形にして窓口の画面に返します。
{
"receipt_no": "",
"window": "",
"form_type": "self | third_party | professional",
"applicant_class": "self | agent | third_party | professional",
"fields": [
{ "name": "applicant_name", "value": "", "confidence": 0,
"status": "ok | missing | low_confidence" }
],
"checks": [ { "name": "include_individual_number", "selected": false,
"confidence": 0, "status": "ok | not_allowed | low_confidence" } ],
"copies": 0,
"fee": 0,
"result": "ready | ask_applicant | staff_check"
}
1つ目の理由は、status と result を別の層に置けることです。 欄ごとの status は読み取りと規則から機械的に決まり、result は missing が1つでもあれば ask_applicant、low_confidence か not_allowed があれば staff_check です。規則が変わっても、直すのは表だけです。
2つ目は、fee を手数料の表から計算できることです。 証明の種類と通数から、条例の手数料の表で計算して画面に出します。通数が low_confidence のときは fee を出しません。 誤った金額を窓口で伝えないためです。
3つ目は、職員が直した値を同じ形で受け取れることです。 画面で職員が直した値で fields を上書きし、直した欄に印を付けて受付台帳に渡します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 窓口のスキャナ | 保存先を Blob Storage のコンテナにする | 請求書の画像を置く |
| Azure AI Document Intelligence | 合成したカスタム モデルの呼び出し | 欄ごとの文字・チェック・信頼度 |
| 窓口の画面 | Azure Functions が結果を返す | 書き足しの依頼と、目で確かめる欄 |
| 受付台帳 | 職員の確定を受けて1行を足す | 区分、請求者、対象者、通数、利用の目的、受付の職員 |
受付台帳に書くのは、職員が画面で「確定」を押したものだけです。 読み取ったままの値を台帳に書くと、low_confidence の欄が確かめられないまま残ります。
住民基本台帳のシステムには書き込まず、そこから読みもしません。 対象者が住民基本台帳に記録されているかを確かめるのは、交付の操作をする職員です。
人が確認する
この構成では、すべての請求書を職員が扱います。 機械がするのは、確かめる欄を絞ることです。
not_allowedを先に見る … 区分に照らして交付できない記載の印があれば、請求者に説明しますmissingの欄を請求者に書き足してもらう … 画面の枠に出た欄だけを頼みますlow_confidenceの欄を請求書で確かめる … 請求書の字を見て、画面の値を直します- 本人確認・代理権・第三者の申出の判断をして交付する … ここはこれまでどおりです
- 画面で確定する … 直した欄に印が付いたまま台帳に入ります
ready の請求書でも、職員は画面の氏名と請求書の氏名を見比べてから確定します。 1件数秒の確認で、読み取りの誤りが台帳に残るのを防ぎます。
目標は、1,800件をならして1件1分です。 ready は画面を見比べて確定するだけ、ask_applicant と staff_check は請求書を確かめるので1〜2分かかる想定です。
繁忙期に入った職員には、画面の3つの枠の意味だけを先に伝えます。 区分ごとにどの欄が要るかを覚えていなくても、画面の「書き足しを依頼」の枠に出た欄を請求者に頼めば、区分ごとの確認になります。 区分の知識は、窓口で画面を見ているうちに身につきます。
運用の最初の1か月は、夕方に係長が当日の請求書から10枚を選び、画面の判定と請求書を見比べます。 ready になったのに欄が空いていた請求書があれば、規則の表か信頼度の値に穴があります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 様式が判別できない | staff_check。職員が様式を選び直して読み取り直す |
| 区分の印が0個か2個以上 | low_confidence。職員が請求者に確かめる |
| 訂正の二重線がある欄 | 信頼度が下がり low_confidence になることが多い。職員が訂正後の字を確かめる |
| 枠からはみ出して書かれた | 欄の値が欠けて missing に見えることがある。職員が画面の画像で確かめてから書き足しを頼む |
| 欄の信頼度が返らない | 値があっても low_confidence。職員が請求書で確かめる |
| 署名欄が空 | 様式で署名を求めている欄なら missing。求めていない様式では見ない |
| 対象者が複数(世帯の全員など) | 対象者の欄を表として読み、行ごとに判定する |
| 便箋の郵送の請求 | 対象外。職員が読む |
| 読み取りが応答しない | 画面に「読み取りできません」と出し、これまでどおり手で確かめて台帳に打つ |
| 様式を改めた | 新しい様式で見本を作り直して学習し、合成し直す |
4行目の「はみ出し」には注意が要ります。 テンプレート モデルは決まった位置の欄を読むので、欄の外に書かれた字は、その欄の値として返らないことがあります。 画面には請求書の画像を並べて出し、missing の欄は画像で空欄かを見てから請求者に頼みます。
記録を残す
- 請求書の画像と、受付の番号・窓口の番号・日時
- 読み取りの結果の全文(欄ごとの値と信頼度、チェック欄、署名欄)
- 判定の結果(
fields、checks、result)と、そのとき使った規則の表の版 - 職員が直した欄と、直す前の値
- 受付台帳に確定した日時と、確定した職員
画像と読み取りの結果の保存期間は、請求書の原本と同じ期間に合わせます。 原本より長く残すと、個人情報を必要以上に持つことになります。市の文書の保存年限の定めに合わせて、期間が過ぎたら消す設定にします。
職員が直した欄の記録は、信頼度の値と見本を見直す材料になります。 同じ欄が毎日直されているなら、その欄の見本が足りないか、信頼度の値が低すぎます。
04実装レベルの3段階
最小構成では件数がさばけません。 実際の請求書を使わない、確かめるための段階です。 半自動化で、1件3分が2分程度になります。 転記は案を直すだけになりますが、漏れの確認は窓口で目で行うままです。本格構成で1分になり、この段階が本記事の想定です。 差が大きいのは、区分ごとの確認が画面の表示に置き換わることです。 段階を飛ばさないでください。 半自動化で夕方にまとめて読ませると、職員が直す欄の傾向が、窓口の流れを止めずに分かります。どの欄の信頼度の値を上げるべきか、どの様式の見本が足りないかを、そこで見極めてから窓口の即時の読み取りに進みます。 いきなり窓口につなぐと、信頼度の値が合っていない欄が staff_check を増やし、かえって窓口が詰まります。
05工数削減シミュレーション
導入後 1,800件 × 1分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 本庁と支所の窓口で住民票の写しの交付請求を紙の請求書で受け付け、月に千件を超える請求書の記入事項の確認と受付台帳への転記を職員が手で行っている市町村。請求書の様式が本人用と第三者用などに決まっていて、窓口にスキャナを置ける場合。繁忙期に会計年度任用職員が窓口に入り、区分ごとの記入事項の確かめ方がぶれている場合。
- 請求の大半がコンビニ交付やオンラインの申請に移っていて、紙の請求書が月に数十件の場合。請求書の様式が決まっておらず、郵送の請求が便箋の手紙で届くものが中心の場合。本人確認や第三者の請求を認めるかの判断まで機械に任せたい場合(これらは住民基本台帳法に基づき市町村長、実際には窓口の職員が行う判断で、この構成は記入事項の読み取りと漏れの指摘までです)。
07最小構成で試す方法
- 3種類の様式で、職員が架空の内容の請求書を各20枚書く(わざと欄を空けたもの、チェックを付け間違えたもの、くせのある字を混ぜる)
- Document Intelligence Studio で、レイアウト モデルに数枚を読ませ、手書きの文字とチェック欄がどこまで読めるかを見る
- 様式ごとに5枚以上にラベルを付けてカスタム テンプレート モデルを学習し、残りを読ませる
- 読み取りの結果を表に書き出し、規則の表で漏れを手で判定する
- 職員が書いた正解と突き合わせる
架空の請求書で試すのは、実際の請求書をいきなりクラウドに送らないためです。 運用の前に、市の情報セキュリティの手続きを済ませます。
| 出てきた内容 | 判断 |
|---|---|
空けた欄が missing、読みにくい字が低い信頼度で出た | 窓口のスキャナとの連携に進む |
| 書いてある欄の信頼度が低い | 見本を足し、字のばらつきを見本に入れる |
| チェック欄の読み取りが不安定 | 丸で囲む・レ点などの書き方を見本に足す。 様式の欄を大きくすることも考える |
3行目は、様式を見直すきっかけになります。 機械が読みにくいチェック欄は、人にとっても付けにくい欄であることが多いからです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読みにくい欄を記入漏れとして返す | 信頼度で missing と low_confidence を分ける |
| どの様式も同じ欄で確かめる | 区分の印を先に読み、規則の表を切り替える |
| 様式ごとに精度がばらつく | 様式ごとに学習して合成する。見本は各5枚以上 |
| 欄の外に書かれた字が返らない | 画面に画像を並べ、missing は画像で確かめてから頼む |
| 似た字に寄せられる | 推測をさせず、信頼度の低い字は職員が見る |
| 本人確認の書類まで読み込む | 請求書だけをスキャナに通す |
| 読み取ったままの値が台帳に入る | 職員の確定を経たものだけを書く |
| 様式を改めたのに古いモデルのまま | 様式の改定と学習のし直しを同じ手順にする |
| 信頼度が返らない欄を確かとして扱う | 返らない欄は low_confidence にする |
| 利用の目的の基準が職員ごとに違う | 基準を規則の表に書き、市民課で決める |
上の2行が、この構成の失敗のほとんどです。 前者は請求者に余計な書き直しを頼み、後者は第三者の申出の利用の目的を見落とします。信頼度と区分という2つの値で、判定を分けておくことがこの構成の守りです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 請求者と対象者の氏名・住所、代理人の氏名・住所、利用の目的、士業の依頼者の名前です。いずれも住民の個人情報です。
- 交付の判断を機械に置かない … 住民基本台帳法は、本人等の請求が不当な目的によることが明らかなときは拒むことができるとし、本人等以外の申出は市町村長が相当と認めるときに交付できるとしています。これらの判断と本人確認は職員が行い、この構成は何も言いません
- 扱う範囲を請求書に限る … 本人確認の書類と委任状は読み込みません。クラウドに送るのは請求書の画像だけです
- データの置き場所とネットワークを確かめる … 請求書の画像を外部のクラウドで読み取ることになります。読み取りのリソースを置くリージョン、庁内のネットワークの区分との関係、市の情報セキュリティの規程を、情報政策の部署と合わせて確かめてから始めてください
- 学習の見本に実際の請求書を使わない … 見本は職員が架空の内容で書きます
- 保存期間を原本に合わせる … 画像と読み取りの結果を、請求書の原本の保存年限より長く持ちません
- 職員が直した記録を残す … 誰がどの欄を直したかが、後から交付の経緯を問われたときの説明になります
誤りが起きた場合のリスクは、第三者の申出の必要な欄を見落として交付することと、書いてある請求者に書き直しを頼むことの2つです。 前者は区分の切り替えで、後者は信頼度の区別で防ぎ、交付するかどうかは必ず職員が決めます。
10まず何から始めるか
1週目:区分ごとの規則の表を作る
市民課で、本人等・代理人・第三者・士業の区分ごとに、請求書のどの欄が要るかを表にします。法の条文と省令、市の様式を突き合わせ、「利用の目的」がどこまで書かれていれば足りるかの基準も決めます。
2週目:架空の請求書で試す
3種類の様式で架空の請求書を各20枚書き、Studio で読ませます。空けた欄が missing に、くせのある字が低い信頼度になっているかを最優先で見ます。
3週目:情報セキュリティの手続きを進める
読み取りのリソースのリージョン、窓口の画面を置く端末のネットワーク、保存期間を、情報政策の部署と決めます。
4週目:1つの窓口でつなぐ
本庁の1つの窓口のスキャナの保存先を設定し、画面に結果を出すところまで作ります。この時点では台帳への書き込みをせず、画面の表示と職員の目での確認を比べます。
2か月目: 台帳への確定を足し、本庁の全窓口に広げます。職員が直した欄の数を毎週数えます。3か月目以降: 支所に広げ、信頼度の値と見本を見直します。職員が直す欄が落ち着き、繁忙期の会計年度任用職員でも同じ基準で確かめられるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
カスタム テンプレート モデルが、決まった見た目の構造化された文書から、ラベルを付けたキーと値・選択マーク・表・領域・署名を取り出すこと。様式が変わると精度が下がり、様式ごとに少なくとも5枚の見本で別々に学習して1つの呼び出し先に合成できること。学習の呼び出しで buildMode を template にすること。入力が PDF と画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)で、1枚に1つの文書が最もよいこと。文字の最小の高さが1024×768の画像で12ピクセル(約8ポイント)であること | Microsoft Learn: Document Intelligence custom template model | 2026-10-14 |
カスタム テンプレート モデルの手書きの文字の対応言語に日本語(ja)が含まれること | Microsoft Learn: Language support for custom models | 2026-10-14 |
| 信頼度が予測の正しさの見込みを0〜1で示し、正確さが重要な場面では自動で受け入れるか人の確認に回すかの判断に使えること。カスタム テンプレート モデルが学習時に推定の精度を出し、80%以上を目安に、機微な場面では100%近くが推奨されること | Microsoft Learn: Interpret and improve accuracy and confidence scores | 2026-10-14 |
| 住民基本台帳法第7条(住民票の記載事項。世帯主との続柄、戸籍の表示、個人番号、住民票コードなど)、第12条(本人等の請求で明らかにする事項、本人であることを明らかにすること、代理人の場合の書類、特別の請求がない限り一部の記載を省略できること、不当な目的が明らかなときは拒めること)、第12条の3(本人等以外の者の申出で、対象者の氏名及び住所と利用の目的を明らかにすること、特定事務受任者の場合の資格・業務の種類・依頼者、相当と認めるときに交付できること、表示できる事項から個人番号と住民票コードを除くこと) | e-Gov 法令API: 住民基本台帳法 | 2026-10-14 |
交付の可否、本人確認、記入事項の基準は、住民基本台帳法と関係する政省令、市の規則と窓口の判断に従ってください。 本記事は Microsoft Learn と e-Gov の法令データで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1445)についてのご相談はこちらから。
