請求書を手動で処理しなければならなかったことがある場合は、その処理がいかに時間と手間がかかるものであるかをご存知でしょう。 言うまでもなく、すべてを手作業で行うと何かを見落としやすいため、ミスが発生しやすくなります。
そこで請求書パーサーの出番です。これらのツールは、請求書からデータを抽出するプロセスを自動化し、必要な情報をすばやく簡単に取得できるようにします。 これにより、多くの時間と手間が省け、請求書が正確に処理されるようになります。
この記事では、請求書パーサーを使用して請求書データを抽出するプロセスについて説明し、テーブル抽出、高度な OCR、ディープ ラーニングなど、それを行うための最良の方法について説明します。
また、手作業による処理よりも自動化された請求書データ抽出の利点についても検討します。 さっそく飛び込みましょう。
請求書パーサーとは何ですか?
請求書パーサーは、請求書ドキュメントを読み取って解釈するように設計されたソフトウェアの一種です。 これには、PDF、画像、およびその他の種類のファイルを含めることができます。
請求書パーサーの目的は、請求書 ID、合計支払額、請求日、顧客名などの重要な情報を請求書から抽出することです。 請求書パーサーは、手作業によるデータ抽出で発生する可能性のある間違いを回避することで、正確さを確保するのに役立ちます。
この情報は、次のようなさまざまな目的に使用できます。 APオートメーション, 月末決算の流れ、および請求書管理。
請求書パーサーは、スタンドアロン プログラムにすることも、大規模なビジネス ソフトウェア システムに統合することもできます。 これらのツールは、チームがレポートを生成したり、Excel などの他のアプリケーションにデータをエクスポートしたりすることを容易にし、他のビジネス管理アプリケーションと一緒に使用されることがよくあります。
市場にはさまざまな請求書解析ソフトウェア ソリューションがあるため、特定のニーズを満たすものを選択することが不可欠です。
請求書パーサーはどのように機能しますか?
請求書パーサーの仕組みを理解するには、パーサーに関する実用的な知識が重要です。
パーサーは、特定のマークアップ言語で記述されたドキュメントを解釈および処理するために使用されます。 ドキュメントをトークンと呼ばれる小さな断片に分割し、各トークンを分析して、その意味とドキュメントの全体的な構造にどのように適合するかを判断します。
これを行うには、パーサーは使用されるマークアップ言語の文法を深く理解している必要があります。 これにより、個々のトークンを識別し、トークン間の関係を正しく理解できます。 パーサーに応じて、このプロセスは手動または自動のいずれかになります。 手動パーサーでは、誰かがドキュメントをステップ実行して各トークンを識別する必要がありますが、自動パーサーはアルゴリズムを使用してトークンを自動的に検出して処理します。 いずれにせよ、パーサーは、マークアップ言語で書かれたドキュメントを理解する上で重要な役割を果たします。
データ抽出では、請求書解析により請求書ドキュメントを分析し、関連情報を抽出できます。
たとえば、多くの請求書を受け取り、それらのデータを構造化された形式で保存したい場合を考えてみましょう。 請求書の解析により、すべてのファイルをロードして光学式文字認識 (OCR) を実行できるため、データを読み取ってすべてのキーと値のペアを数分以内に抽出できます。 次に、いくつかの後処理アルゴリズムを使用して、JSON や CSV などの読みやすい形式に保存できます。 あなたもすることができます プロセスとワークフローを構築する 請求書解析を使用して、ビジネスの記録からの請求書の抽出を自動化します。
Python による請求書の解析
Python は、請求書の解析など、さまざまなデータ抽出タスク用のプログラミング言語です。 このセクションでは、Python ライブラリを使用して請求書からデータを抽出する方法について説明します。
テキストの読み取り、言語、フォントの処理、ドキュメントの配置、キーと値のペアの抽出などのさまざまなタスクが含まれるため、すべてのデータ型で実行できる汎用の最先端の請求書パーサーを構築することは困難です。 しかし、オープンソース プロジェクトの助けと工夫があれば、少なくともこれらの問題のいくつかを解決して開始することができました。
たとえば、サンプルの請求書で tabula というツールを使用します。これは、請求書の解析用にテーブルを抽出するための Python ライブラリです。 以下のコード スニペットを実行するには、Python と tabula/tabulate の両方がローカル マシンにインストールされていることを確認してください。
from tabula import read_pdf
from tabulate import tabulate
# PDF file to extract tables from
file = "sample-invoice.pdf"
# extract all the tables in the PDF file
#reads table from pdf file
df = read_pdf(file ,pages="all") #address of pdf file
print(tabulate(df[0]))
print(tabulate(df[1]))
出力
- ------------ ----------------
0 Order Number 12345
1 Invoice Date January 25, 2016
2 Due Date January 31, 2016
3 Total Due $93.50
- ------------ ----------------
- - ------------------------------- ------ ----- ------
0 1 Web Design $85.00 0.00% $85.00
This is a sample description...
- - ------------------------------- ------ ----- ------
数行のコードで PDF ファイルからテーブルを抽出できます。 これは、PDF ファイルが適切にフォーマットされ、位置合わせされ、電子的に作成された (カメラでキャプチャされていない) ためです。 対照的に、ドキュメントが電子的に生成されるのではなく、カメラでキャプチャされていた場合、これらのアルゴリズムがデータを抽出することははるかに困難だったでしょう。これが、光学式文字認識の出番です。
使ってみよう 遺言、請求書を解析するためのPython用の一般的なOCRエンジン。
import cv2
import pytesseract
from pytesseract import Output
img = cv2.imread('sample-invoice.jpg')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
print(d.keys())
これにより、次の出力が得られます–
dict_keys(['level', 'page_num', 'block_num', 'par_num', 'line_num', 'word_num', 'left', 'top', 'width', 'height', 'conf', 'text'])
この辞書を使用して、検出された各単語、それらの境界ボックス情報、それらのテキスト、およびそれらの信頼スコアを取得できます。
以下のコードを使用してボックスをプロットできます–
n_boxes = len(d['text'])
for i in range(n_boxes):
if float(d['conf'][i]) > 60:
(x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])
img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
次の出力が表示されます。
これが、請求書の地域を使用して認識する方法です。 ただし、キーと値のペアを抽出するには、カスタム アルゴリズムを構築する必要があります。 これについては、次のセクションで詳しく説明します。
従来の請求書パーサーの問題 (ルール ベースのキャプチャ)
今日、多くの組織は、請求書データの抽出に依然としてレガシー システムに依存しています。
これらの「ルールベース」のシステムは、請求書の各項目を解析し、それらを一連のルールと比較して、情報をデータベースに追加する必要があるかどうかを判断します。
この方法は長い間使用されてきましたが、いくつかの欠点があります。 従来の請求書パーサーが直面する一般的な問題をいくつか見てみましょう。
- スキャン中のページの傾き: ルールベースの請求書パーサーの問題の XNUMX つは、「ページの傾斜」が難しいことです。 これは、請求書のフィールドが直線上に配置されていない場合に発生し、パーサーがデータを正確に識別して抽出することが困難になります。 これは多くの場合、均一に印刷されないプリンターや、正しく配置されていない可能性のあるデータを手動で入力したことが原因である可能性があります。
- フォーマット変更: ビジネスが直面する最も一般的な問題の XNUMX つは、標準形式でフォーマットされていない請求書です。 これにより、請求書からデータを抽出しようとすると問題が発生する可能性があります。 たとえば、さまざまなフォントを使用したり、請求書のレイアウトを月ごとに変更したりできます。 データを解析して、各列が何を表しているかを判断するのは困難です。 たとえば、請求書に新しいフィールドを追加したり、既存のフィールドを別の位置に配置したりできます。 または、完全に新しい構造が存在する可能性があるため、通常のルールベースのパーサーでは請求書を正しく認識できません。
- テーブル抽出: ルール ベースのテーブル エクストラクタは、多くの場合、テーブルからデータを抽出する最も直接的で簡単な方法です。 ただし、これらのシナリオでは、処理中に無限ループが発生し、無限に長い行をメモリにロードするために時間を浪費する (または何も出力しない) ため、ヘッダーを含まないテーブルや特定の列に null 値を含むテーブルを処理する場合には制限があります。まったく)それらの属性も含む依存式があった場合。 さらに、テーブルが複数のページにまたがる場合、ルールベースのパーサーはそれらを XNUMX つではなく別のテーブルとして扱うため、抽出プロセスを誤解させます。
Nanonets を使用して AI ベースの請求書パーサーを構築する
光学式文字認識 (OCR) とディープ ラーニングを備えた請求書パーサーは、スキャンまたは PDF に変換された請求書からデータを抽出できます。 次に、このデータを会計ソフトウェアに取り込み、経費を追跡し、レポートを生成できます。
ディープ ラーニング アルゴリズムは、顧客の名前、住所、製品情報など、請求書の特定の要素を識別する方法を学習できます。 これにより、より正確なデータ抽出が可能になり、データをシステムに手動で入力するために必要な時間を短縮できます。 ただし、そのようなアルゴリズムを構築するには多くの時間と専門知識が必要ですが、心配する必要はありません。 ナノネットはあなたの背中を持っています!
Nanonets は、人工知能を使用して PDF ドキュメント、画像、スキャンしたファイルからの表の抽出を自動化する OCR ソフトウェアです。 他のソリューションとは異なり、新しいドキュメント タイプごとに個別のルールとテンプレートは必要ありません。 代わりに、時間の経過とともに改善しながら、半構造化された目に見えないドキュメントを処理するために認知知能に依存しています。 出力をカスタマイズして、関心のあるテーブルまたはデータ エントリのみを抽出することもできます。
高速で正確、使いやすく、カスタム OCR モデルをゼロから構築でき、Zapier との統合もいくつかあります。 ドキュメントをデジタル化し、テーブルまたはデータ フィールドを抽出し、シンプルで直感的なインターフェイスで API を介して日常のアプリと統合します。
Nanonets が最高の PDF パーサーである理由
- Nanonets はページ上のデータを抽出できますが、コマンド ライン PDF パーサーはオブジェクト、ヘッダー、およびメタデータ (タイトル、#pages、暗号化ステータスなど) のみを抽出します。
- NanonetsPDF解析テクノロジーはテンプレートベースではありません。 Nanonets PDF解析アルゴリズムは、一般的なユースケース向けに事前にトレーニングされたモデルを提供するだけでなく、目に見えないドキュメントタイプも処理できます。
- ネイティブ PDF ドキュメントの処理とは別に、Nanonet の組み込み OCR 機能により、スキャンしたドキュメントや画像も処理できます。
- AIおよびML機能を備えた堅牢な自動化機能。
- ナノネットは、非構造化データ、一般的なデータ制約、複数ページの PDF ドキュメント、表、および複数行の項目を簡単に処理します。
- Nanonets は、後処理を必要としない出力を提供するために、カスタム データを継続的に学習および再トレーニングできるノーコード ツールです。
Nanonets による請求書の自動解析 – 完全にタッチレスな請求書処理ワークフローの作成
既存のツールを Nanonets と統合し、データ収集、エクスポート ストレージ、簿記を自動化します。
Nanonets は、請求書解析ワークフローの自動化にも役立ちます。
- 電子メール、スキャンしたドキュメント、デジタル ファイル/画像、クラウド ストレージ、ERP、API など、複数のソースから請求書データをインポートして統合します。
- 請求書、領収書、請求書、その他の財務書類からインテリジェントに請求書データを取得して抽出します。
- ビジネス ルールに基づくトランザクションの分類とコーディング。
- 自動承認ワークフローを設定して、内部承認を取得し、例外を管理します。
- すべてのトランザクションを調整します。
- Quickbooks、Sage、Xero、Netsuite などの ERP または会計ソフトウェアとシームレスに統合します。