NPO法人が毎月受け取る手書きの寄付の申込書を読み取り、寄付者の台帳と領収書の発行の一覧に転記する
街頭やイベントで集まる手書きの寄付の申込書を読み取り、寄付者の台帳の項目にそろえて転記します。入金を確かめたものだけを、領収書の発行の一覧に載せます。
- AIサービス
- Azure AI/Google Document AI
- 対象業界
- その他/介護/教育
- 対象部門
- 経理/総務
- 対象業務
- データ入力・転記/台帳・マスタ管理
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 届いた申込書に受付の日付と経路(街頭/イベント/郵送)を書き込み、束ねる
- 1枚ずつ見ながら、寄付者の台帳に氏名・住所・連絡先・金額・寄付の種類を入力する
- 台帳を氏名で検索し、前にも寄付をしている人なら同じ寄付者の行にまとめる
- 現金の受領の記録、銀行の入金の明細、口座振替の結果を見て、申込と入金を突き合わせる
- 領収書が「要」で入金が確かめられたものについて、領収書の様式に差し込んで印刷する
- 年次報告への掲載が「可」の寄付者を、別の一覧に書き出す
- 人届いた申込書を、受付の経路ごとに複合機でスキャンし、決めたフォルダに保存する。口座振替の依頼書は抜いて別に扱う
- 自動保存をきっかけに、ファイルを1枚ずつに分け、向きと解像度を確かめる
- 自動Azure AI Document Intelligence のカスタム テンプレート モデルで、記入欄とチェック欄を読み取る
- 自動郵便番号と住所の食い違い、金額のチェック欄の二重記入、必須の欄の空欄を検査する
- 自動寄付者の台帳と、氏名のフリガナ・電話番号・郵便番号で照らし、既存の寄付者の候補を付ける
- 自動入金の記録と、経路・金額・日付で照らし、入金の確認の状態を付ける
- 人職員が確認の画面で、印の付いた欄だけを画像と並べて直し、既存の寄付者の候補を決める
- 人職員が確定したものを台帳に登録する
- 自動入金が確かめられ、領収書が「要」のものを、受領日と受領額を入金の記録から取って領収書の発行の一覧に載せる
各工程の詳しい説明を読む
- 届いた申込書に受付の日付と経路(街頭/イベント/郵送)を書き込み、束ねる
- 1枚ずつ見ながら、寄付者の台帳に氏名・住所・連絡先・金額・寄付の種類を入力する
- 台帳を氏名で検索し、前にも寄付をしている人なら同じ寄付者の行にまとめる
- 現金の受領の記録、銀行の入金の明細、口座振替の結果を見て、申込と入金を突き合わせる
- 領収書が「要」で入金が確かめられたものについて、領収書の様式に差し込んで印刷する
- 年次報告への掲載が「可」の寄付者を、別の一覧に書き出す
(a)入力が月末にたまる。 申込書は毎日少しずつ届きますが、事務局の3名は他の経理の仕事も抱えています。2番の入力は後回しになり、月末にまとめて数百枚を打ち込むことになります。 月をまたぐと、受付の月と入力の月がずれます。
(b)読み違いが領収書に出る。 手書きの氏名の旧字体、住所の番地や部屋番号、郵便番号の数字を読み違えると、その誤りが領収書に印字されて寄付者に届きます。 寄付者から訂正の依頼が来て、領収書を出し直すことが月に何件かあります。
(c)同じ人が別人として登録される。 郵送で前に寄付した人が、イベントの会場でまた申込書を書くと、フリガナの書き方や住所の表記が少し違います。氏名の検索だけでは同じ人と気づけず、台帳に2行できます。 年間の寄付額の集計や、お礼状の送り先が二重になります。
(d)申込と入金の突き合わせが漏れる。 郵送の申込書で振込を選んだ人のうち、実際に振り込まれたかの確認が、申込書を台帳に入れた後に誰も見ないことがあります。入金されていないのに台帳では寄付者になっている行が、年度末の集計で見つかります。
- 【人】 届いた申込書を、受付の経路ごとに複合機でスキャンし、決めたフォルダに保存する。口座振替の依頼書は抜いて別に扱う
- 【自動】 保存をきっかけに、ファイルを1枚ずつに分け、向きと解像度を確かめる
- 【自動】 Azure AI Document Intelligence のカスタム テンプレート モデルで、記入欄とチェック欄を読み取る
- 【自動】 郵便番号と住所の食い違い、金額のチェック欄の二重記入、必須の欄の空欄を検査する
- 【自動】 寄付者の台帳と、氏名のフリガナ・電話番号・郵便番号で照らし、既存の寄付者の候補を付ける
- 【自動】 入金の記録と、経路・金額・日付で照らし、入金の確認の状態を付ける
- 【人】 職員が確認の画面で、印の付いた欄だけを画像と並べて直し、既存の寄付者の候補を決める
- 【人】 職員が確定したものを台帳に登録する
- 【自動】 入金が確かめられ、領収書が「要」のものを、受領日と受領額を入金の記録から取って領収書の発行の一覧に載せる
6番目と9番目が、この設計の要です。 領収書の受領日と金額は、申込書からではなく入金の記録から取ります。 申込書に「10,000円」とあっても、入金が5,000円なら、領収書は5,000円です。食い違いは職員の確認に回します。
7番目で人が見るのは、印の付いた欄だけです。 全欄を画像と見比べる設計にすると、手入力の4分とあまり変わりません。信頼度が十分で検査も通った欄は、一覧で流し見て確定します。
02今回想定するシステム構成
寄付の申込書(手書き。チェック欄あり) │ 経路ごとに複合機でスキャン(300dpi、PDF) ▼【トリガー】決めたフォルダへの保存 Azure Functions ── 1枚ずつに分割、向き・解像度の確認 ▼ Azure AI Document Intelligence(カスタム テンプレート モデル。旧様式と新様式を合成) │ 記入欄の値、チェック欄の selected/unselected、各信頼度、様式の種類 ▼ Azure Functions ── 検査と照合 │ ① 郵便番号と住所 ② 金額のチェック欄の二重記入 ③ 必須の欄 │ ④ 寄付者の台帳との照合(既存の候補) ⑤ 入金の記録との照合 ▼ 確認の一覧(転記可 / 要確認 / 入金待ち) ▼ 【職員が要確認の欄だけ画像と並べて直し、確定】 ├──▶ 寄付者の台帳へ登録 └──▶ 入金確認済みで領収書が要るもの → 領収書の発行の一覧
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(カスタム テンプレート モデル。記入欄とチェック欄の読み取り) | Google Document AI(Form Parser) |
| 連携 | Azure Functions(分割、検査、台帳と入金の記録との照合、一覧の書き出し) | Azure Logic Apps |
| 台帳 | 寄付者の台帳(表計算、または寄付の管理のクラウドサービス) | 会員の管理の仕組み |
| 保管 | Azure Blob Storage(申込書の画像と読み取り結果) | SharePoint のドキュメント ライブラリ |
寄付者の台帳と入金の記録は、新しく足すものではありません。 この構成は確認の一覧を作るまでで、台帳への登録と領収書の発行は職員が確かめてから行います。
土台は、Document Intelligence のカスタム テンプレート モデルです。 公式ページでは、テンプレート モデルはラベル付けしたキーと値のペア、選択マーク(チェック欄)、テーブル、領域、署名を抽出でき、決まった見た目の様式を持つ書類に向くとされています。自団体で決めた様式の申込書は、この型に当たります。
日本語の手書きに対応していることも確かめてあります。 カスタム モデルの言語の一覧では、テンプレート モデルの手書きの文字の抽出に日本語(ja)が載っています。氏名と住所が手書きなので、ここが使えるかで構成が決まります。
様式が変わったときにも対応できます。 公式ページでは、テンプレート モデルは様式が変わると精度が下がるため、様式ごとに少なくとも5枚のサンプルで別々のモデルを学習し、1つのエンドポイントに合成するよう案内されています。申込書を改訂しても、旧い様式が郵送で何か月も届き続けるので、旧様式と新様式のモデルを合成して使います。
03どうやって実装するのか
処理の起点を決める
スキャンした PDF を、決めたフォルダに保存したことを起点にします。 フォルダは経路ごとに3つ(街頭/イベント/郵送)に分けます。経路は申込書の紙面に書かれていないことが多いので、フォルダで持たせます。 街頭とイベントの申込書は現金と一緒に届くので、入金の照合の相手が現金の受領の記録になり、郵送は振込の明細になります。
スキャンは、届いた日のうちに行います。 月末にまとめてスキャンすると、入金の照合で受付の日付と入金の日付が離れ、照合の候補が広がります。1日の終わりに、その日の封筒を開けてスキャンすることを事務局の決まりにします。
封筒ごとに1つのファイルにします。 イベントの会場の封筒には、その日の申込書と現金の受領の記録の控えが入っています。封筒の単位でスキャンすると、ファイル名に封筒の番号を付けられ、現金の受領の記録と1対1で結べます。 ファイルを1枚ずつに分けるのは、その後の処理で行います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申込書の画像 | スキャンした PDF(封筒ごと)、経路、封筒の番号、スキャンの日時 | 経路ごとのフォルダ |
| 読み取り結果 | 記入欄の値、チェック欄の状態、欄ごとの信頼度、様式の種類の信頼度 | Document Intelligence |
| 寄付者の台帳 | 寄付者の番号、氏名、フリガナ、郵便番号、住所、電話番号、過去の寄付の履歴 | 台帳 |
| 入金の記録 | 現金の受領(封筒の番号、金額、日付)、振込の明細(振込人の名義、金額、日付)、口座振替の結果 | 経理の記録 |
| 郵便番号の一覧 | 郵便番号と、都道府県・市区町村・町域 | 一般に配布されている郵便番号のデータ |
質を決めるのは、入金の記録の粒度です。 現金の受領の記録が「イベントの合計額」しか無いと、申込書1枚ごとの金額と照らせません。イベントの会場で、ボランティアが申込書の右上に受け取った金額を書き込む欄を設けると、照合がぐっと楽になります。
口座振替の依頼書は入力データにしません。 依頼書には口座番号と届出印が入っており、収納代行の会社へそのまま送る書類です。事務局の読み取りの仕組みに通す理由がありません。 スキャンの前に抜く手順を、第5章の1番目に入れてあります。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 記入欄の値と信頼度 | カスタム テンプレート モデルの解析結果の fields | 台帳の各項目の候補 |
| チェック欄の状態 | 同上(選択マークの selected/unselected と信頼度) | 寄付の種類、金額、支払の方法、領収書の要否、掲載の可否 |
| 語ごとの信頼度 | 解析結果の pages の words | 欄の信頼度と合わせて、読み取りの確からしさを判断する |
| 様式の種類の信頼度 | 解析結果の文書の種類の信頼度 | 想定外の様式や、申込書でない紙の混入を見つける |
欄の信頼度だけを見て確定しません。 公式ページでは、カスタム モデルの欄の信頼度は値を取り出した位置の確からしさを表し、文字の読み取りの確からしさは語ごとの信頼度として別に返るとされています。両方を見て合成した値で、確定か要確認かを決めます。 位置は正しくても、字が崩れていれば読み違えています。
チェック欄は、選択マークの信頼度も合わせて見ます。 公式ページでは、選択マークの付いた欄は、欄の選択と選択マークの信頼度を合わせたものが全体の確からしさをよく表すとされています。「3,000円」と「5,000円」の両方にうっすら印があるような申込書は、どちらも信頼度が下がります。
AIへ渡す前に整形する
- 口座振替の依頼書の除外 … スキャンの前に人が抜きます。混ざっていたら、様式の種類の信頼度の低さで見つけて除外します
- 1枚ずつへの分割 … 封筒ごとの PDF を、ページで分けます。ファイル名に封筒の番号とページの番号を付けます
- 向きと解像度の確認 … 上下逆のページを回転させ、文字の高さが下限(1024×768の画像で12ピクセル、150dpiで約8ポイント)を下回らないかを見ます
- 白紙と裏面の除外 … 裏面だけのページや白紙を除きます
- 重複の検知 … 同じ封筒を二度スキャンしたものを、封筒の番号で見つけます
3番目は、スキャンの設定で決まります。 公式ページでは、抽出する文字の高さの下限が示されています。手書きの小さな字は、複合機の既定の解像度だと下限に近づきます。 300dpi でスキャンする設定を、複合機に登録しておきます。
AIに処理させる
させるのは、決まった位置の記入欄とチェック欄を読み取り、値と信頼度を返すことだけです。 読み取った値を台帳の形にそろえ、検査と照合をするのはプログラムです。
| 読み取る欄 | 検査と照合 | 要確認にする条件 |
|---|---|---|
| 氏名・フリガナ | 台帳のフリガナと照らす | 語の信頼度が低い。フリガナが空 |
| 郵便番号・住所 | 郵便番号の一覧の町域と、住所の先頭が合うか | 食い違う。番地が空 |
| 電話番号・メールアドレス | 桁数と形式 | 桁が足りない。形式が崩れている |
| 寄付の種類 | 「今回のみ」と「毎月」のどちらか一方 | 両方に印、どちらにも無い |
| 金額 | チェック欄が1つ、または「その他」と記入額 | 2つ以上に印。「その他」に印があるのに額が空 |
| 支払の方法 | 経路と矛盾しないか(郵送で現金など) | 矛盾する |
| 領収書の要否・掲載の可否 | どちらか一方に印 | どちらにも無い |
右端の列の多くは、AIではなく規則で決まります。 読み取りが完全でも、寄付者が金額の欄に2つ印を付けていれば、どちらが本当かは申込書からは分かりません。読み取りの誤りと、記入そのものの矛盾を分けて印にします。 前者はスキャンや字の問題、後者は寄付者への確認の問題です。
| させないこと | 理由 |
|---|---|
| 読めない字の推測での補完 | 領収書に印字される。空欄のまま要確認にする |
| 申込書の金額からの領収書の作成 | 領収書の金額と受領日は入金の記録から取る |
| 既存の寄付者との統合の確定 | 同姓同名の別人がいる。候補を出すまでにする |
| 住所の正規化での番地の書き換え | 郵便番号の一覧で直せるのは町域まで。番地は人が見る |
1行目が、いちばん守るべき線です。 「髙橋」が「高橋」に読まれても、台帳の検索では同じ人に見えますが、寄付者にとっては自分の名前が違う領収書が届くことになります。 字体の違いが読み取りで落ちる可能性があるので、氏名の欄は信頼度にかかわらず、台帳に無い新しい寄付者なら画像と並べて確かめます。
指示内容を固定する
カスタム テンプレート モデルは文章の指示で動くものではなく、ラベル付けした欄の定義と、学習に使うサンプルで何を読むかが決まります。ラベル付けの決まりを、次のように文書にして職員とそろえます。
【申込書のラベル付けの決まり(新様式)】
対象:自団体の寄付の申込書 A4 1枚
学習用のサンプル:記入済みの申込書を5枚以上(できれば15枚)
- 字のきれいなもの、崩れたもの、空欄の多いものを混ぜる
- チェック欄に「✓」「○」「塗りつぶし」の書き方を混ぜる
【欄の名前と種類】
name_kanji ........ 記入欄(氏名)
name_kana ......... 記入欄(フリガナ)
postal_code ....... 記入欄(郵便番号)
address ........... 記入欄(住所。番地・建物名・部屋番号まで1つの欄)
phone ............. 記入欄(電話番号)
email ............. 記入欄(メールアドレス)
type_once / type_monthly ............ 選択マーク(寄付の種類)
amount_3000 / amount_5000 / amount_10000 / amount_other ... 選択マーク(金額)
amount_other_value ................... 記入欄(その他の金額)
pay_cash / pay_transfer / pay_debit .. 選択マーク(支払の方法)
receipt_yes / receipt_no ............. 選択マーク(領収書)
publish_yes / publish_no ............. 選択マーク(年次報告への掲載)
staff_received_amount ................ 記入欄(会場で受け取った金額。ボランティアが記入)
【やらないこと】
- 欄の外の余白に書かれたメモをラベルに含めない
- 署名の欄を氏名の欄として扱わない
- 旧様式のサンプルを新様式のモデルに混ぜない(様式ごとに別のモデルにして合成する)
「様式ごとに別のモデル」を明記するのは、公式の案内に沿うためです。 様式の違うサンプルを1つのモデルに混ぜると、どちらの様式でも精度が落ちます。旧様式と新様式をそれぞれ5枚以上で学習し、合成したモデルを呼びます。
学習の後に出る推定の精度も見ます。 公式ページでは、テンプレート モデルは学習のときに欄ごとの推定の精度を出し、80%以上を目安に、金融や医療のように重要な場面では100%に近い値を勧めるとされています。氏名と住所は領収書に出るので、この2つの欄が100%に近くなるまでサンプルを足します。
出力形式を固定する
1枚ごとに、次の形の JSON を作ります。
{
"file": "",
"envelope_no": "",
"channel": "street | event | mail",
"doc_type_confidence": 0.0,
"fields": {
"name_kanji": { "value": "", "confidence": 0.0, "status": "ok | review | empty" },
"postal_code": { "value": "", "confidence": 0.0, "status": "ok | review | empty" },
"address": { "value": "", "confidence": 0.0, "status": "ok | review | empty" }
},
"checks": {
"amount": { "selected": ["amount_5000"], "other_value": "", "status": "ok | conflict | empty" },
"donation_type": "once | monthly | conflict | empty",
"receipt": "yes | no | conflict | empty"
},
"donor_match": { "status": "new | candidate | matched", "candidates": [""] },
"payment_match": { "status": "matched | mismatch | waiting", "received_amount": 0, "received_date": "" },
"verdict": "ready | review | waiting_payment"
}
fields には、ここに挙げた3つのほかに、フリガナ・電話番号・メールアドレスなどを同じ形で並べます。
1つ目の理由は、欄ごとに status を持てることです。 確認の画面では review と empty の欄だけを画像と並べて出します。1枚の中で直す欄が1つなら、職員はその1つだけを見ます。
2つ目は、checks で記入の矛盾を読み取りの誤りと分けられることです。 conflict は寄付者の記入そのものの問題で、電話やメールで寄付者に確かめるものです。読み取りの review とは、直す人と方法が違います。
3つ目は、payment_match で領収書の元になる値を持てることです。 received_amount と received_date は入金の記録から入れ、領収書の発行の一覧はこの2つから作ります。 申込書の金額は使いません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 経路ごとのフォルダ | Azure Functions の保存のトリガー | スキャンの保存を検知する |
| Document Intelligence | 解析の API(合成したカスタム モデル) | 記入欄とチェック欄の値と信頼度 |
| 寄付者の台帳 | 読み取り(照合)と、職員の確定後の登録 | 既存の寄付者の候補 |
| 入金の記録 | 読み取りのみ | 受領額と受領日 |
| 領収書の発行の一覧 | 表計算への書き出し | 入金確認済みで領収書が要るもの |
台帳への登録は、職員が確定ボタンを押したものだけです。 読み取ったものを台帳に直接書き込みません。既存の寄付者との統合も、職員が候補から選んだときだけ行います。
領収書そのものの発行も、この構成からは行いません。 一覧を作るまでにして、印刷と送付は職員が一覧を確かめてから行います。 領収書は寄付者の確定申告に使われる書類で、出し直しには手間と説明がかかります。
人が確認する
全件、職員が確認の画面で確定させます。 ただし、全欄を見るのではなく、印の付いた欄だけを見ます。
reviewとemptyの欄を直す … 画像の該当箇所と並べて、値を直すか空欄を確かめますconflictを寄付者に確かめる … 金額や寄付の種類の矛盾は、電話かメールで確かめます- 既存の寄付者の候補を決める … 候補が出たものは、住所と電話番号を見て同じ人かを決めます
- 新しい寄付者の氏名を画像と見比べる … 台帳に無い人は、信頼度にかかわらず氏名の字体を確かめます
- 入金の食い違いを経理と確かめる …
mismatchは、申込書の金額と入金額が違うものです
4番目を省かないでください。 新しい寄付者の氏名は、この後ずっと台帳と領収書に使われます。最初の登録で字体を誤ると、毎年の領収書が誤ったまま出続けます。
目標は、420枚をならして1枚3分です。 印の付いていない申込書は一覧で流し見て数秒、要確認の欄がある申込書は1〜2分かかります。要確認が多い月は、スキャンの設定か、サンプルの不足を疑います。
例外に対処する
| 起きること | 対応 |
|---|---|
| 様式の種類の信頼度が低い | 想定外の様式か、申込書でない紙。読み取りを使わず、職員が手で入力する |
| 口座振替の依頼書が混ざっていた | 読み取り結果を保存せずに破棄し、原本を収納代行への送付の束に戻す |
| 文字が小さすぎる・かすれている | review にして画像で確かめる。続くならスキャンの設定を見直す |
| 金額の欄に2つ以上の印 | conflict。寄付者に確かめるまで領収書の一覧に載せない |
| 入金の記録が見つからない | waiting_payment。一定の期間が過ぎたら、寄付者へのお知らせを検討する |
| 申込書の金額と入金額が違う | mismatch。領収書は入金額で作る。差の理由を経理と確かめる |
| 同じ封筒が二度スキャンされた | 封筒の番号で検知し、二重に台帳の候補を作らない |
| 年次報告への掲載の欄が空 | 「不可」として扱い、掲載の一覧に載せない |
| Document Intelligence が応答しない | ファイルをフォルダに残し、次の起動で再処理する |
8行目は、意図して安全な側に倒しています。 掲載してよいかが分からない人の名前を年次報告に載せると、取り消せません。空欄は「載せない」に読みます。
2行目は、起きないように前処理で抜きますが、起きたときの扱いも決めておきます。 口座番号の読み取り結果が保存されてしまうと、事務局が持つべきでない情報を持つことになります。
記録を残す
- 申込書の画像(封筒ごとの原本と、1枚ずつに分けたもの)と、経路・封筒の番号・スキャンの日時
- 読み取り結果の JSON の全文(欄の値と信頼度、語ごとの信頼度、様式の種類の信頼度)
- 検査と照合の結果(
status、conflict、donor_match、payment_match) - 職員が直した欄の、直す前と後の値と、直した人と日時
- 台帳への登録の日時と、領収書の発行の一覧に載せた日時
- 合成したモデルの版と、その版の学習時の推定の精度
4つ目は、モデルの学習し直しの材料です。 同じ欄が繰り返し直されているなら、その欄のラベル付けか、サンプルの偏りに理由があります。直した申込書をサンプルに足して、学習し直します。
6つ目を残すのは、読み取りの誤りが後から見つかったときに、どの版のモデルで読んだかを追えるようにするためです。
04実装レベルの3段階
最小構成では、転記の手間はあまり減りません。 読み取った値を写すので、確かめるための段階です。 半自動化で、1枚8分が3分になります。この段階が本記事の想定です。 台帳への登録は確定ボタンで行い、領収書の発行の一覧は表計算に書き出します。本格構成は、台帳を寄付の管理のクラウドサービスに移すときに検討します。 表計算の台帳のままなら、半自動化で十分に効果が出ます。 段階を進める前に、入金の記録の粒度を見直してください。 会場で受け取った金額を申込書に書き込む欄が無いと、半自動化でも現金の照合は手作業のまま残ります。
05工数削減シミュレーション
導入後 420件 × 3分 ÷ 60 = 21 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 認定NPO法人や、認定を目指しているNPO法人のうち、街頭募金・イベント・郵送で紙の寄付の申込書を毎月数百枚受け取り、事務局の職員が寄付者の台帳に手で入力している場合。申込書の様式が自団体で決まっていて、チェック欄と記入欄の位置が毎回同じ場合。入金(現金の受領、振込、口座振替)の記録を別に持っていて、申込書と突き合わせられる場合。Azure を使っている、または使い始められる場合。
- 寄付の受付がほとんど Web のフォームやオンライン決済で、紙の申込書が月に数十枚以下の場合。申込書の様式がイベントごとにばらばらで、決まった位置に記入欄が無い場合。寄付者の台帳がまだ無く、名寄せの元になる一覧が無い場合。なお、寄付金控除の対象になるかの判断、領収書の記載事項の最終的な確認、口座振替の依頼書の取扱いは、この構成では代替できません。
07最小構成で試す方法
- 先月の申込書から30枚を選ぶ(字のきれいなもの、崩れたもの、チェック欄に二重の印があるもの、空欄の多いものを混ぜる)
- その30枚について、台帳に入力された値を書き出す
- Document Intelligence Studio で、30枚のうち10枚にラベルを付けてテンプレート モデルを学習する
- 残りの20枚を学習したモデルで読み取る
- 読み取った値を、台帳に入力された値と欄ごとに突き合わせる
30枚のうち、氏名と住所が台帳と一致した枚数を最初に数えます。 一致しなかったものは、読み取りの誤りか、台帳への入力の誤りかを画像で確かめます。台帳の側の誤りが見つかることも珍しくありません。
| 出てきた内容 | 判断 |
|---|---|
| 氏名・住所の大半が一致し、チェック欄も正しく読めた | 検査と照合のプログラムに進む |
| チェック欄は読めたが、手書きの氏名の字体を落とした | 想定どおり。新しい寄付者の氏名を人が見る運用で補う |
| 欄の位置がずれて、別の欄の値が入った | 様式のばらつきが大きい。サンプルを増やすか、様式ごとにモデルを分ける |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 申込書の金額で領収書を作ってしまう | 領収書の金額と受領日は入金の記録から取る |
| 手書きの旧字体が新字体で読まれる | 新しい寄付者の氏名は、信頼度にかかわらず画像で確かめる |
| 欄の信頼度だけで確定する | 語ごとの信頼度と合わせて判断する |
| 金額の欄の二重の印を、どちらかに決めてしまう | conflict にして寄付者に確かめる |
| 旧様式と新様式を1つのモデルで学習する | 様式ごとに5枚以上で別に学習し、合成する |
| 口座振替の依頼書を読み取ってしまう | スキャンの前に抜き、混ざったら読み取り結果を破棄する |
| 同じ人が台帳に2行できる | フリガナ・電話番号・郵便番号で候補を出し、人が決める |
| 年次報告への掲載の欄が空なのに載せる | 空欄は「載せない」として扱う |
| 手書きの字が小さく読めない | 300dpi でスキャンする設定を複合機に登録する |
| 月末にまとめてスキャンする | 届いた日にスキャンする決まりにする |
上の2行が、この構成の失敗のほとんどです。 どちらも領収書に出る誤りで、寄付者の確定申告の書類に直接ひびきます。 金額は入金の記録から、氏名は画像との見比べで、という線を最初から守ります。
下の2行は、AIの精度ではなく事務局の段取りの問題です。 読み取りの精度を上げようとする前に、スキャンの設定と、届いた日にスキャンする習慣を整えるほうが効きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 寄付者の氏名、住所、電話番号、メールアドレス、寄付の金額と種類、支払の方法、年次報告への掲載の可否です。どの団体にいくら寄付したかは、寄付者の思想や信条に結び付きうる情報です。
- 寄附者名簿の扱いを決めておく … 特定非営利活動促進法第54条では、認定NPO法人は前事業年度の寄附者名簿を毎事業年度作成し、作成の日から5年間事務所に備え置かなければならないとされています。一方で、閲覧の請求に応じる書類として同条第4項に挙げられているのは役員報酬規程などで、寄附者名簿は含まれていません。 台帳から寄附者名簿を作る手順と、見られる人の範囲を決めておきます
- 口座の情報を持たない … 口座振替の依頼書は読み取りの仕組みに通さず、収納代行の会社へそのまま送ります
- 領収書の記載を税の案内と合わせる … 国税庁の案内では、認定NPO法人への寄付で税額控除を受けるには、寄附金の額、受領した旨と受領年月日、特定非営利活動に関する事業に関連する寄附である旨、法人の名称、寄附者の住所・氏名が記載された書類の添付が要るとされています。この構成で入れるのは住所・氏名と受領額・受領日の元データで、様式そのものは税理士と確かめます
- 掲載の可否を安全な側に倒す … 空欄の人を年次報告に載せません。載せた名前は取り消せません
- 読み取り結果の保存の範囲を決める … 申込書の画像と読み取り結果は、台帳と同じ扱いで保管します。誰が見られるかを台帳と同じにします
- ボランティアに扱いを伝える … 会場で申込書を受け取るボランティアに、封筒に入れて持ち帰ること、写真を撮らないことを伝えます
誤りが起きた場合のリスクは、誤った氏名や金額の領収書が寄付者に届くことと、入金されていない寄付を台帳に寄付として残すことの2つです。 前者は氏名の画像との見比べと入金の記録からの金額で、後者は入金の照合で防ぎます。認定の基準の一つに、寄附者の氏名などが明らかな寄附金を数える項目がある(同法第45条)ので、台帳の正確さは認定の維持にも関わります。
10まず何から始めるか
1週目:申込書の様式と入金の記録を見直す
申込書に、会場で受け取った金額をボランティアが書き込む欄を足します。あわせて、口座振替の依頼書を申込書と別の紙にし、スキャンの前に抜けるようにします。様式を変えるなら、このタイミングが最も安く済みます。
2週目:30枚で試す
先月の申込書から30枚を選び、10枚で Document Intelligence Studio のテンプレート モデルを学習し、残りの20枚を読ませて台帳の値と突き合わせます。氏名と住所の一致の割合と、チェック欄の読み取りを最優先で見ます。
3週目:台帳の重複を整理する
寄付者の台帳を、フリガナ・電話番号・郵便番号で見直し、同じ人の重複をまとめます。照合の元がきれいでないと、候補が増えすぎて確認が終わりません。
4週目:フォルダから確認の一覧までをつなぐ
経路ごとのフォルダの保存を起点に、読み取り、検査、台帳との照合を動かし、確認の一覧を出します。この時点では入金の照合を入れず、読み取りと台帳の照合の出来を見ます。
2か月目: 入金の記録との照合と、領収書の発行の一覧への書き出しを足します。3か月目以降: 職員が直した欄をサンプルに足して学習し直し、1枚8分が何分になったかを実測します。新しい寄付者の氏名の確認と入金の照合が、届いた日のうちに終わるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| テンプレート モデルがラベル付けしたキーと値のペア・選択マーク・テーブル・領域・署名を抽出し、決まった見た目の様式に向くこと。様式ごとに少なくとも5枚のサンプルで別のモデルを学習し、合成するよう案内されていること。PDF と TIFF は最大2,000ページ(無料のレベルは最初の2ページ)、ファイルは有料のレベルで500MB、文字の高さの下限が1024×768の画像で12ピクセル(150dpiで約8ポイント)であること | Microsoft Learn: Custom template document model | 2026-10-15 |
カスタム テンプレート モデルの手書きの文字の抽出の対応言語に日本語(ja)が含まれること | Microsoft Learn: Language support for custom models | 2026-10-15 |
| カスタム モデルが文書の種類の信頼度、欄の信頼度(値の位置の確からしさ)、語ごとの信頼度、選択マークの信頼度を返すこと。テンプレート モデルが学習時に推定の精度を出し、80%以上を目安に、金融や医療など重要な場面では100%に近い値を勧めていること。人の確認を組み込むことを勧めていること | Microsoft Learn: Interpret and improve model accuracy and confidence scores | 2026-10-15 |
| 認定NPO法人が前事業年度の寄附者名簿を毎事業年度作成し、作成の日から5年間事務所に備え置くこと、閲覧の請求の対象が同条第2項第2号から第4号の書類などであること(第54条)。認定の基準に、寄附者の氏名などが明らかな寄附金を数える項目があること(第45条) | e-Gov 法令API: 特定非営利活動促進法 | 2026-10-15 |
| 認定NPO法人等への寄附で税額控除を受けるとき、寄附金の額、受領した旨と受領年月日、特定非営利活動に関する事業に関連する寄附である旨、法人の名称を証する書類(寄附者の住所・氏名が記載されたもの)を確定申告書に添付する必要があること(令和8年4月1日現在法令等) | 国税庁: No.1263 認定NPO法人に寄附をしたとき | 2026-10-15 |
| 寄附金控除を受けるには、寄附した団体などから交付を受けた寄附金の受領証(領収書)を確定申告書に添付するか提示する必要があること。認定NPO法人等への寄附金は認定の有効期間内に支出するものに適用されること | 国税庁: No.1150 一定の寄附金を支払ったとき(寄附金控除) | 2026-10-15 |
領収書の様式と記載事項、寄附者名簿の作り方は、顧問の税理士と所轄庁の案内で確かめてください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1701)についてのご相談はこちらから。
