AIの読み取り精度を上げるマスタ設計
「紙をAIに読ませたが、社名が微妙に違う」「商品名が毎回ばらつくので、結局手で直している」——読み取りを試した会社が最初にぶつかるのがここです。
結論から言うと、読み取り精度は読む力ではなく、選ばせる候補の設計で大きく変わります。自由に書かせれば誤読はそのまま出ますが、あらかじめ候補を絞っておけば、誤読があっても正しい値に戻せます。
株式会社Fyveは中小企業の業務をAI前提に組み替える立場から、この記事ではツールの比較ではなく、マスタを先に持たせて候補を絞るという設計の考え方を扱います。
読み取り精度は「読む力」だけで決まらない
読み取りの話をすると、どのツールが賢いかという比較になりがちです。しかし同じツールでも、渡し方を変えれば結果は変わります。理由は、文字を画像から取り出す作業が本質的に推測だからです。
紙に印字された文字には、形が似ているものが必ずあります。カタカナの「ロ」と漢字の「口」、数字の「1」と小文字の「l」、「0」と「O」、「8」と「B」。手書きになれば「7」と「1」、「6」と「0」、「ソ」と「ン」も混ざります。感熱紙が薄くなっていれば、点や線の一部が欠けます。
このとき、出力先に制約がなければ、推測の曖昧さがそのまま結果に出ます。取引先名の1文字目がカタカナの「ロ」と出てくるか、漢字の「口」と出てくるかは、その1文字の見え方で決まります。どちらも「読めている」のに、後工程では別の取引先として扱われます。
ところが、取引先が社内に50社しかないと分かっていれば話が変わります。出てきた文字列を50社のリストと突き合わせて、いちばん近いものに寄せればよい。1文字違っていても、50社の中で「サンプル商店」に近いものが1つしかなければ、正解に戻せます。候補が有限であることが、誤読を吸収する仕組みになるわけです。
これは特別な技術ではなく、業務の側で先に情報を持っているかどうかの話です。読み取りの精度を上げたいとき、先に触るべきなのはツールではなく、自社が持っている一覧のほうです。
自由記述と選択問題の違い
同じことを試験にたとえると分かりやすくなります。
- 自由記述:答えの候補が無限。1文字間違えれば間違いになる
- 選択問題:候補が有限。多少あやしくても、選択肢のどれに近いかで正解に届く
読み取りの設計とは、自由記述の問題を選択問題に書き換える作業です。取引先名も、商品名も、勘定科目も、部門名も、本来は「社内で決まっている有限の一覧」から選ばれるべき値です。それを毎回ゼロから文字として当てさせているのが、精度が出ない構造的な理由です。
候補を絞ると効く条件
ただし、絞れば必ず効くわけではありません。効くのは次の条件が満たされるときです。
- 候補の数が十分に少ない:数十から数百のオーダー。数万件あると、似た候補が増えて絞る効果が薄れます
- 候補同士が互いに区別しやすい:ここが見落とされます。「A店」「A店2」「A店(新)」のように似た名前が並んでいると、絞っても正解に戻せません
- 候補に入っていない値が来る割合が低い:新規取引先ばかりなら、マスタは効きません
2番目の条件から、設計上の指針が出ます。マスタを作るとき、名前の付け方そのものを見直す。互いに1〜2文字しか違わない名前が並んでいるなら、区別できる略称やコードを別に持たせます。これはAIのためではなく、人が入力するときにも同じだけ効きます。
項目によって戦略が違う
すべての項目をマスタで絞れるわけではありません。項目の性質で3つに分かれます。
- 一覧から選べる項目(取引先・商品・勘定科目・部門・店舗):マスタで候補を絞る
- 数値の項目(金額・数量・日付):候補は絞れないが検算できる。明細の合計と総額が一致するか、日付が実在するか、税率区分と税額の関係が成り立つか
- 自由文の項目(備考・用途):絞れず検算もできない。人が持つ
この切り分けをせずに「読み取り精度」とひとくくりに語ると、打ち手が出てきません。絞る・検算する・人が持つの3つに割り振ることが、設計の最初の作業です。

どのマスタを先に持たせるか
全部を一度に作ろうとすると、着手する前に止まります。効果の順に並べると次のようになります。
1. 取引先マスタ
いちばん効きます。理由は、取引先が決まるとその先の項目が連鎖して決まるからです。この取引先なら勘定科目はこれ、部門はここ、支払条件はこう。1つ当たれば複数の項目が埋まるので、投資効率が高い。
2. 勘定科目マスタ(と対応ルール)
勘定科目は数十件で、すでに会計ソフトの中に存在しています。作るのは科目そのものではなく、取引先や品目と科目の対応です。「この取引先からの請求はこの科目」という対応表を持たせるだけで、判断の大半が自動的に決まります。
3. 商品・品目マスタ
件数が多くなりがちで、表記も揺れやすい領域です。ただし小売や飲食では売上分析に直結するので、優先度は状況次第で上がります。全品目を作るのではなく、件数または金額の大きい上位から作るのが現実的です。
4. 部門・店舗・担当者マスタ
件数が少なく作りやすい割に、集計の切り口として必須になります。コードを短く決めておけば、ファイル名や表の列としても使い回せます。
この順で作ると、少ない作業量で効果が出る順番になります。商品マスタから始めたくなりますが、たいてい取引先のほうが先に効きます。
マスタの最小構成
マスタは項目を増やすほど維持できなくなります。最小構成は4列です。
- コード:社内で一意の短い識別子。数字でも英数字でもよいが、途中で意味を持たせない(分類を埋め込むと分類変更で壊れます)
- 正式名称:帳票や書類に載せる正式な表記
- 照合用の表記:読み取り結果と突き合わせるための正規化した表記(後述)
- 別名・略称:現場で使われている呼び方。複数持てるようにする
これに加えて、運用のために2列を足します。
- 有効・廃止のフラグ:使わなくなっても行は消さない。消すと過去データとの突合が壊れます
- 登録日:いつ追加されたか。マスタが安定してきたかどうかを見る材料になります
逆に、最初は入れないほうがよい項目もあります。住所、電話番号、担当者名、支払条件。これらは更新が必要になる情報で、更新されないまま古い値が残ると、かえって混乱の原因になります。必要になった時点で足せば十分です。

表記ゆれをどこで吸収するか
マスタを作っても、突き合わせがうまくいかない最大の原因は表記ゆれです。同じ会社を指しているのに、書類ごとに書き方が違います。
- 法人格:株式会社○○ / ㈱○○ / (株)○○ / ○○株式会社 / ○○(株)
- 全角と半角:ABC商事 / ABC商事、123 / 123
- スペース:サンプル 商店 / サンプル商店、名前の間の全角スペース
- 支店・営業所:○○商事 / ○○商事 大阪支店 / ○○商事大阪
- 屋号と法人名:レシートには店舗の屋号だけが印字され、請求書には法人名が載る
- 長音とカタカナ:コンピューター / コンピュータ、半角カナ
- 旧字・異体字:髙 / 高、﨑 / 崎
比較用のキーと表示用の名称を分ける
ここが設計の要点です。照合に使う文字列と、人に見せる文字列を同じものにしない。
照合用のキーは、次のような正規化を通した結果にします。
- 全角を半角に統一する(英数字と記号)
- 半角カナを全角カナに統一する
- スペース・中黒・ハイフンなどの記号を除去する
- 法人格の表記(株式会社・㈱・(株)・有限会社など)を除去する
- 支店・営業所・店などの接尾語を、別列に分離する
この処理を通すと「㈱ABC商事 大阪支店」と「ABC商事(株) 大阪支店」が、どちらも「abc商事」+支店「大阪」という形に落ちます。この状態で突き合わせれば一致します。一方、帳票に印字するのは正式名称の列を使う。2つを分けておかないと、正規化した名前が請求書に載るという事故が起きます。
正規化のルールは会社ごとに違って構いませんが、1か所にまとめて書いておくことが重要です。処理のあちこちに散らばると、片方だけ直して不整合になります。
突合は段階に分ける
読み取り結果とマスタの突き合わせは、いきなり「近いものに寄せる」のではなく段階に分けます。段階を分けると、どこまでを自動で通すかを制御できます。
- 段階1:完全一致——正規化したキーが一致。自動で確定してよい
- 段階2:別名一致——別名・略称の列と一致。自動で確定してよい
- 段階3:部分一致——マスタ側の名前が読み取り結果に含まれる、またはその逆。候補が1件だけなら確定候補、複数なら人が選ぶ
- 段階4:類似一致——数文字の違いを許して近いものを探す。ここは自動確定にしない。候補を提示して人が選ぶ
- 段階5:未マッチ——どれにも当たらない。人が処理し、必要ならマスタに追加する
段階4を自動確定にしたくなりますが、ここがいちばん危険な間違いが生まれる場所です。似た名前の別会社に自動で寄せてしまうと、誰も気づかないまま別の取引先の売掛や買掛に計上されます。読めなかったものは目に見えますが、間違って自動で通ったものは目に見えません。
AIに読み取らせる場合も、渡し方は同じ考え方でできます。マスタの一覧を渡し、「この一覧のいずれかを選ぶ。該当するものがなければ空欄にして、原文をそのまま返す」という制約を明示する。一覧にない値を勝手に作らせない指示が重要です。制約なしに任せると、それらしい名前を組み立てて返してくることがあります。

「一致しなかった」を必ず残す設計
未マッチをどう扱うかで、運用が続くかどうかが決まります。よくない設計は2つあります。
- 空欄で通す:抜けに気づけません。後で集計したときに合計が合わず、原因を追う作業が発生します
- エラーで止める:1件のために全体が止まり、担当者が仕組みを使わなくなります
正しくは、未マッチという状態を明示して先に進める形です。行は残し、ステータス列に「未マッチ」と入れ、読み取った原文をそのまま別列に残す。処理は続行し、未マッチの行だけを週次でまとめて人が見る。
この設計にすると、副産物としてマスタの育て方が決まります。未マッチの棚卸しが、マスタ追加の唯一の入口になる。思いついたときに追加するのではなく、実際に来たものだけを追加する。この規律があると、マスタが実データと乖離しません。
もうひとつ、原文を残すことには別の効用があります。あとから「なぜこの取引先に紐づいたのか」を検証できる。原文を捨てて結果だけを残すと、間違いが見つかったときに原因を追えません。
マスタが無い会社の始め方
「うちにはマスタがない」という会社は少なくありません。会計ソフトの補助科目に取引先が入っているだけ、あるいは担当者の頭の中にあるだけ、という状態です。
この場合、ゼロから作るのではなく過去の実データから抽出するのが速いです。
- 手順1:直近3か月の通帳の入出金明細、カード明細、買掛の記録を集める
- 手順2:取引先名の列を取り出し、件数の多い順に並べる
- 手順3:上位から順に、正式名称と略称を確認して行を作る
- 手順4:件数の少ない下位は作らない。未マッチとして扱い、実際に来たら追加する
ここで大事なのは、全件作ろうとしないことです。取引先の一覧を見渡すと、少数の取引先が件数の大半を占めているのがふつうです。上位だけ作れば、未マッチとして人が見る件数は大きく減ります。残りは運用しながら育てます。
全部作ろうとして「取引先の棚卸しプロジェクト」になってしまい、半年経っても始まらないというのが、この領域でいちばん多い失敗です。不完全なマスタでも、無いより効きます。
入力側にも同じ候補を効かせる
マスタを作ると、読み取りだけでなく人の入力にも使えます。Excelならデータの入力規則でリストから選ぶ形にする。フォームなら選択肢にする。入口を選択式にすると、そもそも表記ゆれが発生しません。
読み取りの精度を上げる話と、入力を選択式にする話は、同じ「候補集合を絞る」という一つの設計です。片方だけやると、人が打ったデータのほうが揺れるという逆転が起きます。
勘定科目の対応表をどう作るか
取引先マスタができたら、次に効くのが科目との対応です。ここは「マスタ」というより判断のルールを表にしたもので、記帳作業のうち機械的に決まる部分を切り出す作業になります。
対応の付け方は3層で考えます。
- 層1:取引先で決まるもの——この取引先からの請求は必ずこの科目。通信会社、リース会社、家賃の支払先など。いちばん確実に決まる層です
- 層2:品目のキーワードで決まるもの——同じ取引先から複数の種類を買っている場合。品目に含まれる語で振り分けます。ホームセンターや通販の請求がこれにあたります
- 層3:どちらでも決まらないもの——人が判断します。ここを無理にルール化すると、間違った科目が静かに増えます
実装の要点は、優先順位を明示することです。層1と層2の両方に当たったときどちらを取るのか、キーワードが複数当たったときどれを取るのか。ここを決めていないと、処理の順番によって結果が変わります。
また、この対応表は会計側の科目体系が変わったら必ず見直す必要があります。科目を統合したり枝番を増やしたりしたときに対応表が古いままだと、廃止した科目に仕訳が付き続けます。科目の変更と対応表の更新を同じ作業として扱ってください。なお、どの支出をどの科目で処理するかという判断自体は税務・会計の領域なので、対応表の内容は顧問税理士に確認したうえで固めます。私が設計するのは、決まったルールを機械が扱える形に落とす部分です。
マスタ設計のアンチパターン
うまくいかない作り方には共通した型があります。作る前に避けておくと、後の作り直しがなくなります。
- コードに意味を埋め込む——「先頭の1桁が業種、次の2桁が地域」といった設計。分類が変わった瞬間にコードを振り直すことになり、過去データとの接続が切れます。コードは意味を持たない連番にして、分類は別の列で持ちます
- 1つのセルに複数の別名を詰める——「○○商店、○○ショウテン、マルマル」のようにカンマ区切りで入れると、突合のたびに分解処理が必要になります。別名は行を分けて持つか、専用の列を複数用意します
- 正式名称をそのまま照合キーに使う——法人格や全角半角の違いで一致しなくなります。照合用の列を必ず別に持ちます
- 使わなくなった行を削除する——過去データの突合が壊れます。廃止フラグで運用します
- 誰でも自由に追加できる状態にする——重複行が増え、同じ相手が2つのコードを持つようになります。追加の入口は1つに絞ります
- 表計算ソフトの複数ファイルに分散させる——部署ごとに自分用のマスタを持ち始めると、どれが正なのか分からなくなります。1か所に置いて全員がそれを参照する形にします
この6つは、どれも「後で困る」類の設計です。作り始める前に決めておけば追加コストはゼロですが、運用が始まってから直すと過去データの移行が伴います。最初の30分で決めるべき項目だと考えてください。
メンテナンス負荷をどう抑えるか
マスタは作ったあと放置されると死にます。負荷を抑える原則は3つです。
追加の入口を1つにする
前述のとおり、未マッチの棚卸しだけを追加の入口にします。複数の人が思いついたときに追加できる状態にすると、重複行が増えます。同じ会社が2行ある状態は、突合の精度をむしろ下げます。
行を消さずに廃止フラグを立てる
取引が終わった相手の行を削除すると、過去データの突合が壊れます。廃止フラグを立てて、新規の候補には出さないが照合には使える状態にします。
棚卸しの頻度と担当を決める
週次で5分、未マッチの一覧を見る時間を決めます。「気づいたときに」では回りません。件数が多い月は10分かかりますが、溜めて月末に1時間やるより短く済みます。
運用が安定してくると、マスタへの追加件数は自然に減っていきます。追加件数の推移が、そのまま仕組みの成熟度を表します。毎月同じだけ追加が発生しているなら、取引先が増え続けているか、正規化のルールが足りていないかのどちらかです。
マスタで精度が上がらないケース
限界も明示しておきます。次の場合、マスタを整えても効果は限定的です。
- そもそも判読できない:手書きで崩れている、感熱紙が退色している、印字が欠けている。候補を絞る前に、文字として情報が残っていません
- 書類に社名が印字されていない:レシートに屋号や店番だけが載っているケース。マスタ側に屋号を別名として登録していないと当たりません
- 候補同士が似すぎている:同一グループの店舗名が1文字違いで並んでいる場合。この場合は名前ではなく、店番などの別のキーで照合します
- 品目名が極端に略記されている:レジのレシートは印字幅の制約で独自の略記になりがちです。この略記自体を別名として登録する必要があります
- 新規の相手が多い:スポット取引が中心の業態では、未マッチが常に一定量出ます
整理すると、マスタは既知のものを速くする道具であって、未知のものを当てる道具ではないということです。この性質を理解しておけば、未マッチが出ることを失敗と捉えずに済みます。未マッチが出るのは正常な動作で、それを人が処理する導線があるかどうかが設計の質です。
何を測るべきか
マスタを整えた効果は、精度という一つの数字では測れません。分けて見ます。
- 未マッチ率:全件のうち、人が判断した割合。マスタの網羅度を表します
- 人が値を直した件数:自動で確定したのに間違っていたもの。ここが実質的な信頼度です
- 直した項目の内訳:取引先か、金額か、科目か。どこに手を入れるべきかが分かります
- マスタ追加件数の推移:減っていけば安定、横ばいなら正規化不足の疑い
- 誤って自動確定した件数:いちばん重要で、いちばん見えにくい。定期的にサンプルを抜き取って確認する必要があります
最後の項目は、抜き取り検査という形でしか把握できません。月に一度、確定済みのデータから数十件を無作為に選んで原本と照合する。手間はかかりますが、これをやっていない自動化は、間違いの量が分からないまま動いていることになります。
測るべき指標を先に決めておくと、ツールを比較するときの基準にもなります。逆に基準を決めずに複数のツールを試すと、感覚で選ぶことになります。
関連する設計の記事
マスタで候補を絞る前に、そもそも紙が処理の入口まで届いていなければ意味がありません。スキャナからフォルダ、フォルダから処理へのつなぎ方は別記事で扱っています。
少額多件数のレシートや小口現金では、マスタより先に締めのタイミングの設計が効きます。店舗の売上を集める場合は、店舗コードと商品マスタが集計の土台になります。それぞれレシート・小口現金のデータ化と店舗の売上集計をデジタル化する設計で扱っています。
Excel側でマスタを持って集計に使う操作はExcelのCopilot使い方、AIに任せられる業務範囲の全体像はMicrosoft 365 Copilotで何ができる?業務別を参照してください。期待した結果が出ないときの考え方はCopilotが役に立たないと感じる理由と対処にまとめています。
よくある質問
マスタは何件くらいから効き始めますか
件数そのものより、実際に来る書類のうち何割がマスタに載っているかで決まります。取引先が300社あっても、日常的に来る請求書の大半が上位30社なら、その30社を作った時点で効果が出ます。まず自社の件数分布を見るのが先です。
会計ソフトの取引先データをそのまま使えますか
出発点としては使えます。ただし会計ソフトの登録名は正式名称で、書類に印字される屋号や略称が入っていないことが多いです。別名の列を足す作業が必要になります。また、使われていない古い登録が残っている場合は、廃止フラグで区別します。
商品マスタは全商品を登録する必要がありますか
必要ありません。件数または金額の上位から作り、残りは未マッチとして扱います。分析上「その他」でまとめてよい商品を無理に登録すると、維持できなくなります。
表記ゆれの正規化はどこでやればよいですか
処理の入口に1か所だけ置きます。読み取り結果とマスタの両方に同じ正規化を通してから比較する形です。複数の場所に同じような処理を書くと、片方だけ修正して不整合になります。
似た名前の別会社を間違えて紐づけないようにできますか
類似一致を自動確定にしないことで防げます。数文字の違いを許す照合は候補提示までにとどめ、確定は人が行う。加えて、確定済みデータの抜き取り検査を定期的に行って、実際に誤りが混ざっていないかを確認します。
マスタは誰が管理すべきですか
そのデータを使って記帳や集計をする人です。現場やシステム担当が管理すると、実際の突合で困っている人と管理者が別になり、必要な別名が追加されません。困っている人が直せる状態にするのが原則です。
マスタを作る前にAIの読み取りを試すべきですか
両方できるなら並行で構いませんが、比較のためにツールを試すのであれば、マスタ無しの状態で比較しても実運用の判断材料にはなりません。実際の運用ではマスタが入るので、条件が違います。まず自社の取引先上位を洗い出し、それを渡した状態で試すほうが、判断に使える結果になります。
まとめ
読み取りの精度は、業務の側で持っている情報で変えられます。
- 候補が有限であることが、誤読を吸収する仕組みになる
- 自由記述の問題を選択問題に書き換えるのが設計の本質
- 候補同士が区別しやすいことが条件。似た名前が並んでいるなら名前の付け方を見直す
- 項目を「絞る・検算する・人が持つ」の3つに割り振る
- マスタは取引先から作る。1つ当たれば複数の項目が連鎖して決まる
- 照合用のキーと表示用の正式名称を分ける。正規化ルールは1か所に集約する
- 突合は段階に分け、類似一致は自動確定にしない
- 未マッチは空欄にせず明示して残し、その棚卸しをマスタ追加の唯一の入口にする
- マスタは全件作らない。過去3か月の実データの上位から作る
- いちばん怖いのは誤って自動確定した件数。抜き取り検査で把握する
読み取りを速くする前に、選ばせる候補を用意する。順番はこちらが先です。
御社の業務に合わせたCopilot導入・定着支援
「ライセンスを配ったのに使われない」を終わらせる。
業務の棚卸しから、効く業務の切り分け、社内への定着まで一貫して支援します。