カスタム列抽出の使い方:
必要なデータだけを取得し、ページ全体は不要
ほとんどの文書抽出ツールはテキストのコピー機のようなものです。ページをスキャンし、見つけたすべてをスプレッドシートにダンプします。発注書から3つのフィールド(PO番号、仕入先名、合計金額)だけが必要でも、ページ上の47個のテキスト文字列すべてが出力され、そこから手動で必要な3つを選び出す必要があります。カスタム列抽出はこのロジックを逆転させます。AIに何が欲しいかを先に伝えると、そのデータだけを返してくれます。
「すべて抽出」が間違いの出発点である理由
従来のOCRが答える質問は一つだけです。「このページにどんな文字があるか?」。書類の画像を機械可読な文字の羅列に変換します。単語、数字、透かし、ページ番号まで、すべてです。1ページの請求書なら、50~80個のテキスト文字列が構造もラベルもないままスプレッドシートに放り込まれます。あなたの仕事は、その出力を読み解き、どの文字列が請求書番号で、日付で、合計金額かを特定し、実際に使うスプレッドシートにコピーすることになります。
だからこそ、「すべてのテキストをOCRする」は、ビジネス文書処理において正解になることはほとんどありません。書類上のすべてのテキストが必要になることはほぼなく、必要なのは5~10個の特定フィールドだけです。残りはノイズです。そして、そのノイズを除去する時間こそ、自動化で節約しようとしていた時間そのものなのです。
カスタム列抽出は逆のアプローチから始まります。すべてを抽出して後からフィルタリングするのではなく、最初に抽出する列を定義します。AIは目的のフィールドをレンズとして文書を読み取り、PO番号、仕入先名、合計金額を探し、それ以外は無視します。出力は、あなたが名付けた列だけを持つ、まさに欲しかったスプレッドシートになります。
重要なポイント: 抽出精度は対象を絞るほど向上します。「すべてのテキストを探して抽出せよ」と指示されたAIには優先順位の仕組みがなく、ページ上のすべてのテキスト文字列が等しく扱われます。一方、「PO番号、仕入先名、注文合計金額を探せ」と指示されたAIは、意味的な手がかり(「PO番号はどんな見た目か?」)と文脈(「合計金額は通常どこに表示されるか?」)を使って、それらの特定の値を探すことに集中でき、精度が向上します。特化こそが精度なのです。
列名は指示書:命名戦略
入力する列名は、あなたとAIの間の主要なコミュニケーション手段です。適切に書かれた列名は正確な指示となります。つまり、AIにどのような値を探し、どのようにフォーマットするかを正確に伝えます。曖昧な列名(「金額」)ではAIへの指示が不十分です。適切な列名(「注文合計金額」や「請求書合計」)は検索範囲を絞り込み、初回で正しい数値を取得できる可能性を高めます。
最も正確な抽出結果を得るための命名原則は以下の通りです。
| 原則 | 悪い例 | 良い例 | 理由 |
|---|---|---|---|
| エンティティを具体的に指定する | 番号 | 注文番号 | 「番号」だけでは、請求書番号、行番号、参照番号など何でも該当します。「注文番号」と指定することで、AIは正確にどの番号を探すべきか理解します。 |
| 位置や役割に関する文脈を含める | 日付 | 請求書日付 | 文書には複数の日付(発行日、期日、納品日)が存在する場合があります。どれかを指定することで曖昧さを回避します。 |
| 説明的な修飾語を使用する | 住所 | 配送先住所 | 請求書や注文書には、請求先住所と配送先住所の両方が含まれることがよくあります。種類を明示することで混同を防ぎます。 |
| 希望する形式を明記する | 金額 | 合計金額(数値) | 「(数値)」を追加することで、AIに数値のみを抽出し、通貨記号を削除するよう指示します。 |
| 一般的な文書用語に合わせる | 顧客 | 購入者会社名 | 実際に文書で使用されている言語を使用します。「購入者」は注文書で標準的であり、「顧客」は請求書で標準的です。 |
厳格な命名規則に従う必要はありません。AIは自然言語を理解します。「Due Date」でも「Payment Due Date」でも機能します。ただし、より具体的に指定するほど、AIが解決すべきあいまいさが減り、抽出精度が向上します。
3つの実践的な抽出シナリオ
同じカスタム列機能が、さまざまな文書タイプやワークフローに適応します。ここでは、それぞれ異なる列設定戦略を持つ3つの一般的なシナリオを紹介します。
シナリオ1:請求書処理
必要な項目: 請求書番号、請求日、支払期日、取引先名、小計、消費税額、合計金額、通貨。これら8つのフィールドは、形式やレイアウトに関係なく、ほぼすべての請求書に記載されています。
列の設定: 上記のフィールド名をそのまま入力します。明細行がある複数ページの請求書の場合は、「品目説明」「数量」「単価」「明細合計」の列を追加します。各明細行が出力の1行になり、その請求書のヘッダーフィールド(番号、日付、取引先)が各行に繰り返し表示されるため、取引先ごとのフィルタリングや集計が容易になります。
バッチ処理のヒント: 複数の取引先からの請求書を一度に処理する場合(例:月末の買掛金処理)、すべての請求書を1つのバッチでアップロードできます。AIは各請求書から独立して抽出し、結果を1つのスプレッドシートに統合します。すべての行で列は統一されます。
シナリオ2:発注書処理
必要な項目: 発注番号、発行日、仕入先名、品目コード、品目説明、注文数量、単価、明細合計、希望納期。これらのフィールドは、発注書のヘッダーと明細行の詳細を1回の処理でカバーします。
列設定のポイント: 発注書は請求書よりも表形式の情報が多いため、明細行に必要なすべての列(品目コード、説明、数量、単価、行合計)をヘッダーフィールドと同じ列リストに含めてください。AIはヘッダーフィールド(発注番号、仕入先名)が文書全体に適用されることを理解し、明細行ごとにそれらを繰り返します。一方、明細行フィールドは表内の行ごとに異なります。
複数ページの処理: 発注書が複数ページにわたり、各ページで列ヘッダーが繰り返される場合、AIはその繰り返しを認識し、出力から除外します。200行の明細がある10ページの発注書は、手動で結合が必要な10個の別々の表ではなく、200行のデータとして出力されます。
シナリオ3:仕入先見積比較
必要な情報: 仕入先名、品目説明、数量、単価、行合計、リードタイム(日数)、支払条件、通貨。5社の仕入先からの見積を一度にアップロードすると、AIは同じ列定義を使用して各見積からデータを抽出します。各仕入先の見積フォーマットがどれほど異なっていても問題ありません。
主な利点: 異なる仕入先が同じ情報に異なる名称を使用する場合があります。ある仕入先は「SKU」、別の仕入先は「品番」、さらに別の仕入先は「品目コード」と呼ぶかもしれません。AIの意味理解により、同義語や仕入先ごとのマッピングを設定しなくても、これらすべてが「品目コード」列に自動的にマッピングされます。
ファイルは安全に処理され、保存されません。
テンプレートとして保存:一度設定すれば、ずっと使える
特定の書類タイプ(例:標準的な請求書の抽出列)に適した列セットを定義したら、それをテンプレートとして保存できます。次回請求書を処理する際、8つの列名をすべて再入力する代わりに、ワンクリックでテンプレートを読み込めます。
ここで、一度きりの設定コストが継続的に報われます。初回の請求書列の設定は2分で完了します。その後は、5枚でも50枚でも、どのバッチでも列が事前に読み込まれた状態から始められます。ファイルをアップロードすれば、AIが保存したテンプレートに基づいて処理し、毎回一貫した構造のスプレッドシートが得られます。
テンプレートはチームの一貫性維持にも役立ちます。複数のメンバーが書類を処理する場合、同じテンプレートを共有することで、全員の出力に同一の列が同一順序で揃い、フィールド名のばらつきや列の欠落、時間経過によるフォーマットのずれが生じません。
よくある質問
列の数に制限はありますか?
厳密な上限はありませんが、実用的な目安があります。15~20列程度までは安定して抽出できます。それを超えると、すべての書類に存在しないエッジケースのフィールドを扱うことになります。5~12列の適切に命名された列セットに絞ることで、AIが各フィールドに集中できるため、30列の網羅的なリストよりも良い結果が得られます。多くのフィールドが必要な場合は、コアフィールドと補足フィールドの2パスに分けることを検討してください。
特定の書類にフィールドが存在しない場合はどうなりますか?
該当セルは空白になります。例えば、「税額」という列を設定しても、対象書類に税が含まれていない場合(州間B2B請求書や輸出書類など)、その行の税額セルは空欄になります。スプレッドシートの構造は一貫して維持され、すべての行に同じ列が存在しますが、AIが書類内で見つけた値のみが入力されます。
異なる種類の書類を同じバッチで処理できますか?
可能ですが、列セットがバッチ内のすべての書類タイプに適合している必要があります。請求書、発注書、領収書をまとめてアップロードし、「請求書番号/発注書番号/領収書番号」のような列を設定すると、AIは各書類の各フィールドを探そうとします。該当フィールドがない書類のセルは空白になります。最良の結果を得るには、同じ種類の書類をまとめてバッチ処理してください。これにより、列定義が焦点を絞ったものになり、出力もクリーンに保たれます。
手入力と比べて精度はどのくらいですか?
印刷された整った文書の場合、フィールドレベルの精度は90%を超えます。つまり、最初のパスで10個中9個の値が正しく抽出されます。これは、データ品質の研究によるとキーストロークあたり1〜3%の誤り率が内在する手動データ入力と比較して好ましい結果です。違いは、AIのエラーは予測可能である傾向がある(類似したフィールド名の混同、低解像度テキストの誤読)のに対し、人間のエラーはランダム(タイプミス、転置、行のスキップ)であることです。AIの出力をざっと確認すればほとんどの問題は見つかりますが、自分の手入力ミスを見つけるには元の文書と一語一句照らし合わせる必要があり、最初の入力と同じくらい時間がかかります。
AIはチェックボックス、スタンプ、署名を処理できますか?
はい — これらに対応する列を定義できます。「承認チェックボックス(チェックあり/なし)」「会社印あり(はい/いいえ)」「承認署名あり(はい/いいえ)」のようなわかりやすい名前を使用してください。AIはこれらの視覚要素を識別し、適切なステータスを返します。署名の場合、出力は通常「あり」または「なし」です — 存在の確認であり、本人確認ではありません。