科目の自動振り分けは、OCR結果のほんの小さな誤読で崩れます。ここでは「なぜズレるのか」を誤読パターンで分解し、TenshiLinkの帳票整理にそのまま使える対策へ落とし込みます。
よくあるOCR誤読パターンと、振り分けを守る設計
1) 科目らしき文字が「似た見た目」で置換される
例として、略語・全角/半角・記号の癖が重なると「費」「事」「雑」「通」などが別の字として読まれやすくなります。結果としてルールが条件不一致になり、振り分けが飛びます。
- 科目名を「完全一致」だけで判定しない。近似語の許容、正規化(全角半角、記号の統一)を先に行う。
- 誤読で置換されがちな文字ペアをログから抽出し、対策ルールに反映する。
2) 「余計な空白・改行」がルールを壊す
OCRは読み取りの都合で、科目の前後に空白や改行を混ぜます。たとえば「旅費交通費」が「旅費 交通費」になっただけでも、前方一致や部分一致の設計によっては外れます。
- 入力テキストは、連続空白を1つに潰し、前後の空白をtrimする。
- 科目判定の前に、改行をスペースへ変換してから照合する。
3) 数字や税率が混ざって、科目が別扱いになる
科目の自動振り分けが、支払内容と一緒に「金額」「税率」「端数」へ引っ張られると、科目側の手当が崩れます。OCR結果の粒度が揺れると、振り分けキーが別のフィールドにまたがります。
- 科目判定は「語」中心にし、金額条件は後段の整合性チェックへ回す。
- 税や合計の突合はルールの主キーにしない。むしろ例外検知に使う。
4) 「科目」より先に「店名・商品名」が勝ってしまう
誤読以前に、ルールの優先順位が問題であることがあります。店名から自動分類しようとして、結果として科目の意図より上位ルールが適用されてしまうケースです。
- 優先順位は「科目の根拠が強い情報」から。店名→科目の順だと危険。
- 最終的な科目が確定したら、店名は補助ラベルとして保持する。
守りの運用:振り分けを崩さないためのチェック観点
- 1 科目を判定する前に、OCRテキストの正規化(空白・改行・全角半角)を必ず行う。
- 2 「似ている文字」の誤読を、過去データから具体的に潰す(一般論で終わらせない)。
- 3 ルールの主キーと後段の整合性チェックを分離し、混線を防ぐ。
うまく回っているように見えても、運用のどこかで「科目が選ばれる根拠」が揺れていることがあります。TenshiLinkでは、ログに基づいて誤読を潰し、科目振り分けのルールを守り続ける考え方が有効です。