AI活用の再設計 15|OCRの精度を追わない。読めなかったときの推定ルールと確認の1箇所を設計する

未分類

医療費控除の集計は、レシートの束から患者名・医療機関・金額を1枚ずつ目で拾い、集計用の様式に手で転記する作業だった。 文字がかすれたレシートに当たると、そこで手が止まる。 何のレシートか判断がつかないまま、机の上でレシートの山だけが動かなくなる。 1枚を読み違えると、確認のために手前まで数え直す羽目になる。

この記事は、税理士向けの生成AI活用をまとめた書籍の事例をお題に借りて、自分の実運用を書いてきたシリーズの続きである。 ここからの数本は、お題を書籍ではなく2025年分の確定申告の現場から取る。

レシートを1枚ずつ目で拾い様式へ手で転記し読めない文字で手が止まる従来のやり方と、画像を渡して5項目を抽出し読めない欄は推定ルールで補完してから人間がテーブルで1回確認する自分の再設計の対比図
図1: 読めない文字で数え直す従来と、推定ルールと確認1箇所で埋める自分の対比

読めなかったときの推定ルールを先に決める

医療費レシートの画像をAIに渡すと、患者名・医療機関名・区分・金額・日付の5項目を読み取り、国税庁様式の医療費集計フォームに書き込むところまでをコマンド1つにまとめている。 拾う項目を先にこの5つへ絞ってあるので、AIが読み取るべき対象にも、あとで人間が確認すべき対象にも迷わない。 レシートには患者名が印字されていないことが少なくない。 その場合は、同じ日に同じ医療機関を受診した他のレコードから推定するという優先順位ルールを決めておき、読み取れなかった欄をこの順で自動補完する。 たとえば同じ日に同じ医療機関のレシートが複数枚読み込まれていれば、患者名を読み取れた側の記録を、読み取れなかった側にも当てはめる。 補完した結果はそのまま様式に書き込まず、一度テーブル形式で全件を並べて表示し、そこで内容を確認してから書き込みに進む。 確認する場所を1箇所に決めているので、レシート1枚ごとに目を止める作業は残っていない。 出力は必ずタイムスタンプ付きの新しいファイルとして生成し、様式のテンプレートそのものは上書きしない。 読み違えた回があっても、テンプレートに戻って次の回をやり直せる。

精度を追わず、人間の推測を明文化する

OCRは必ずどこかで読み損ねる。 精度を上げる努力を重ねるより、次の3つを先に決めておくほうが、運用は安定する。

  • 読めなかったとき、何を根拠にどの順で推定するか
  • 人間が全件を確認する場所を、どこか1箇所に決めておくか
  • 出力をどう壊さない設計にするか
患者名が読み取れないとき、同じ日に同じ医療機関を受診した他のレコードがあれば推定して補完し、なければ空欄のまま人間の確認へ進む分岐と、出力は常にタイムスタンプ付き新規ファイルでテンプレートを上書きしないという注記を示す図
図2: 読めない患者名を推定で埋め、確認は必ずテーブル1箇所に集約する分岐設計

この推定ルールは、精度の妥協ではない。 患者名のないレシートを見たとき、人間も同じ場面で同じ推測をしている。 同じ日に同じ医療機関に行った記録があれば、この患者だろうと当たりをつける。 その頭の中の判断を、後から確認できる形でルールとして書き出しただけである。 推定である以上、外れることはある。 だからこそ確認する場所を1箇所に決め、そこを通らない限り様式には書き込まれない設計にしている。

医療費集計は毎年同じ設計で使い回せる

医療費控除の集計は、確定申告の季節になれば毎年発生する。 レシートの形式も、患者名が印字されないという癖も、年によって大きくは変わらない。 一度決めた推定ルールと確認の1箇所は、翌年もそのまま使い回せる。

会計事務所に置き換えるなら、レシートの読み取り精度を上げる努力に時間をかけるより、読めなかったときにどの記録から推定するか、誰がどこで確認するか、出力先をどう壊さないかを1回決めることになる。 担当者が変わっても、推定ルールと確認する場所さえ引き継げば、同じ設計のまま回せる。 毎年同じ理由で立ち止まっていた作業が、毎年同じ理由では立ち止まらない作業に変わる。

読めなかったときにどう振る舞うかを決めておくことも、確認する場所を1箇所に絞ることも、出力を壊さない設計にすることも、すべて同じ話に帰着する。 精度を上げる努力ではなく、作法と工程をファイルにする。