Python を使用して請求書からデータを抽出するための包括的なガイド: ステップバイステップの手順

Python を使用して請求書からデータを抽出するための包括的なガイド: ステップバイステップの手順

ソースノード: 2569683

今日のデジタル時代では、企業は毎日大量の請求書を作成します。これらの請求書には、企業が情報に基づいた意思決定を行うのに役立つ貴重な情報が含まれています。ただし、請求書からのデータの抽出は、手動で行うと時間がかかり、エラーが発生しやすい作業になります。幸いなことに、Python は請求書からデータを抽出するプロセスを自動化する強力なソリューションを提供します。

この包括的なガイドでは、Python を使用して請求書からデータを抽出するプロセスを段階的に説明します。

ステップ 1: 必要なライブラリをインストールする

始める前に、必要なライブラリをインストールする必要があります。次のライブラリを使用します。

– PyPDF2: PDF ファイルを読み取るため

– Tesseract OCR: 画像からテキストを抽出します

– OpenCV: 画像の前処理用

– Pandas: 抽出されたデータを構造化フォーマットで保存します

これらのライブラリをインストールするには、コマンド プロンプトを開き、次のコマンドを実行します。

pip インストール PyPDF2

pip インストール pytesseract

pip インストール opencv-python

ピップインストールパンダ

ステップ 2: 請求書の前処理

請求書からデータを抽出する最初のステップは、請求書を前処理することです。請求書には、PDF、スキャンした画像、手書きの文書など、さまざまな形式があります。したがって、テキストが OCR エンジンで読み取れることを確認するために、テキストを前処理する必要があります。

請求書を前処理するには、OpenCV を使用します。 OpenCV は、さまざまな画像処理タスクの実行に使用できる強力なコンピューター ビジョン ライブラリです。

まず、PyPDF2 を使用して請求書を読み取り、OpenCV を使用して画像に変換します。コードは次のとおりです。

cv2をインポート

npとしてnumpyをインポートする

PyPDF2をインポート

pdf_file = open('invoice.pdf', 'rb')

pdf_reader = PyPDF2.PdfFileReader(pdf_file)

ページ = pdf_reader.getPage(0)

page_content = page.extractText()

page_content = page_content.replace('n', ”)

img = np.array(bytearray(page_content), dtype=np.uint8)

img = cv2.imdecode(img, cv2.IMREAD_COLOR)

次に、テキストの品質を向上させるために、しきい値処理、膨張、収縮などのいくつかの画像前処理操作を実行します。コードは次のとおりです。

灰色= cv2.cvtColor(img、cv2.COLOR_BGR2GRAY)

_、しきい値 = cv2.threshold(グレー、150、255、cv2.THRESH_BINARY_INV)

カーネル = np.ones((5, 5), np.uint8)

dilation = cv2.dilate(thresh、カーネル、反復 = 1)

侵食 = cv2.erode(膨張、カーネル、反復=1)

最後に、Tesseract OCR を使用して、前処理された画像からテキストを抽出します。コードは次のとおりです。

ピテッセラクトをインポートする

pytesseract.pytesseract.tesseract_cmd = r'C:Program FilesTesseract-OCRtesseract.exe'

text = pytesseract.image_to_string(侵食)

ステップ 3: データの抽出

請求書からテキストを抽出したので、請求書番号、日付、合計金額などの関連データを抽出する必要があります。

データを抽出するには、正規表現を使用します。正規表現は、テキスト内のパターンを照合するために使用できる強力なツールです。

請求書番号を抽出する方法の例を次に示します。

インポート再

invoice_number_pattern = r'請求書番号:s*(w+)'

請求書番号一致 = re.search(請求書番号パターン, テキスト)

請求書番号 = 請求書番号_match.group(1)

同様に、正規表現を使用して日付や合計金額などの他のデータを抽出できます。

ステップ 4: データの保存

最後に、抽出したデータを CSV ファイルなどの構造化形式で保存する必要があります。これを行うには、Pandas を使用します。

抽出したデータを CSV ファイルに保存する方法の例を次に示します。

パンダをpdとしてインポート

data = {'請求書番号': [請求書番号],

「日付」: [日付]、

「合計金額」: [total_amount]}

df = pd.DataFrame(data)

df.to_csv('invoices.csv', インデックス=False)

まとめ

結論として、Python を使用して請求書からデータを抽出することは、企業が情報に基づいた意思決定を行うための強力なツールとなり得ます。この包括的なガイドでは、Python を使用して請求書からデータを抽出するプロセスを段階的に説明しました。これらの手順に従うことで、請求書からデータを抽出するプロセスを自動化し、ビジネスの時間とリソースを節約できます。