Kecerdasan Data Generatif

Ekstrak Tabel dari PDF โ€“ Tutorial Kode Python

Tanggal:

Blog ini berfungsi sebagai titik awal bagi siapa saja yang ingin mengekstrak tabel dari file dan gambar PDF. Kami mulai dengan tutorial kode python yang membawa Anda melalui proses penerapan OCR pada file PDF dan gambar untuk mendeteksi dan mengekstrak tabel dalam format terstruktur (daftar, objek json, bingkai data panda). Kami kemudian melihat platform tanpa kode untuk ekstraksi tabular otomatis, dan kemudian menjelajahi beberapa alat ekstraksi tabel yang tersedia secara online gratis.

Pengantar

Jumlah total dokumen PDF di dunia diperkirakan telah melampaui 3 triliun. Adopsi dokumen-dokumen ini dapat dikaitkan dengan sifat inherennya yang independen dari platform, sehingga memiliki pengalaman rendering yang konsisten dan andal di seluruh lingkungan.

Ada banyak contoh yang muncul setiap hari di mana ada kebutuhan untuk membaca dan mengekstrak teks dan informasi tabel dari PDF. Orang dan organisasi yang secara tradisional melakukan ini secara manual mulai mencari alternatif teknologi yang dapat menggantikan upaya manual menggunakan AI.

OCR adalah singkatan dari Optical Character Recognition, dan menggunakan AI untuk mengubah gambar teks yang dicetak atau tulisan tangan menjadi teks yang dapat dibaca mesin. Ada berbagai Mesin OCR open-source dan closed-source yang ada saat ini. Perlu dicatat bahwa sering kali, pekerjaan tidak selesai setelah OCR membaca dokumen dan memberikan output yang terdiri dari aliran teks, dan lapisan teknologi dibangun di atasnya untuk menggunakan teks yang sekarang dapat dibaca mesin dan mengekstrak atribut yang relevan di dalamnya. format yang terstruktur.

Kami akan menggunakan faktur di bawah ini untuk ekstraksi tabel. Tujuannya adalah untuk membaca jumlah, deskripsi, harga satuan, jumlah setiap produk dalam PDF faktur dalam format tabel.

faktur.pdf

Mari kita mulai.

Prasyarat

OCR yang diperlukan untuk memproses file dan mengekstrak tabel ditangani oleh panggilan API ke Nanonets API.

Untuk melakukan panggilan API dan mendapatkan tabel yang diekstrak dari pdf, kita memerlukan file permintaan perpustakaan. Untuk kode pascapemrosesan yang mengubah respons API menjadi daftar kerangka data, kita memerlukan panda dan mati rasa perpustakaan. Anda dapat menginstalnya ke dalam lingkungan python Anda dengan menggunakan pip.

pip install requests pandas numpy

Untuk mendapatkan prediksi pertama Anda, jalankan cuplikan kode di bawah ini. Anda harus menambahkan API_KEY dan MODEL_ID untuk mengotentikasi diri Anda sendiri.

Anda bisa mendapatkan API_KEY dan MODEL_ID gratis dengan mendaftar di https://app.nanonets.com/#/signup?redirect=tools.

Setelah selesai, jalankan potongan kode di bawah ini.

import requests url = 'https://app.nanonets.com/api/v2/OCR/Model/REPLACE_MODEL_ID/LabelFile/?async=false' data = {'file': open('invoice.png', 'rb')} response = requests.post(url, auth=requests.auth.HTTPBasicAuth('REPLACE_API_KEY', ''), files=data)

Kami mendapatkan output di bawah ini.

Grafik result objek berisi larik objek hasil bijaksana halaman. Setiap objek berisi prediction objek memiliki semua tabel yang terdeteksi sebagai elemen array. Setiap tabel yang terdeteksi kemudian memiliki array yang dipanggil cells, yang merupakan array dari semua sel dari tabel yang terdeteksi. Baris, kolom, dan teks asli yang terdeteksi ditampilkan sebagai row, col, ocr_text atribut dari setiap objek sel di cells.

Kami sekarang akan melakukan beberapa pemrosesan pos untuk mengubah respons json menjadi kerangka data panda. Setelah mendapatkan respons API di atas, Anda dapat menjalankan cuplikan kode di bawah untuk mendapatkan daftar kerangka data yang berisi tabel yang terdeteksi.

import pandas as pd
import numpy as np alldfs = []
for item in response.json()["result"]: tables = [] dfs = [] for pred in item['prediction']: if pred['type'] == 'table': labels = ['none'] * 100 maxcol = 0 for cell in pred['cells']: if labels[cell['col'] - 1] == 'none': labels[cell['col'] - 1] = cell['label'] if cell['col'] > maxcol: maxcol = cell['col'] labels = labels[:maxcol] df = pd.DataFrame(index=np.arange(100), columns=np.arange(100)) for cell in pred['cells']: df[cell['col']][cell['row']] = cell['text'] df=df.dropna(axis=0,how='all') df=df.dropna(axis=1,how='all') df.columns = labels tables.append(df) alldfs.append(tables)

Setelah menjalankan ini, file alldfs objek adalah daftar di mana setiap objek daftar berisi prediksi untuk setiap halaman dokumen. Selain itu, setiap objek itu sendiri merupakan daftar kerangka data yang berisi semua tabel di halaman itu.

Kita dapat melihat bahwa dua tabel yang ada di pdf faktur telah terdeteksi dan disimpan sebagai kerangka data di halaman pertama alldfs[0], dan kedua tabel tersebut dapat diakses di alldfs[0][0] dan alldfs[0][1].

Jadi, kami telah melakukan OCR pada file PDF pertama kami dan mengekstrak tabel darinya. Kami memeriksa respons json dan melakukan pemrosesan pasca menggunakan panda dan numpy untuk mendapatkan data dalam format yang diinginkan. Anda juga dapat menerapkan postprocessing Anda sendiri untuk memproses dan menggunakan data dari respons json sesuai dengan kasus penggunaan Anda.

Kami juga menyediakan platform tanpa kode bersama dengan Nanoents API dengan dukungan tambahan untuk item baris, impor dan ekspor otomatis dari ERP/perangkat lunak/database populer, kerangka kerja untuk menyiapkan aturan persetujuan dan validasi, dan banyak lagi.


Salah satu pakar AI kami dapat melakukan panggilan selama 15 menit untuk mendiskusikan kasus penggunaan Anda, memberikan demo yang dipersonalisasi, dan menemukan paket terbaik untuk Anda.


Lakukan Lebih Banyak โ€“ Ekstrak Item Baris dan Bidang Rata

Anda dapat memperluas fungsionalitas Nanonets OCR untuk mendeteksi bidang datar dan item baris beserta tabel dari file pdf dan gambar. Kamu bisa latih model kustom Anda sendiri dalam 15 menit untuk mendeteksi item baris atau bidang datar apa pun dalam gambar atau file pdf. Nanonets juga menawarkan model siap pakai dengan dukungan item baris yang ditambahkan untuk jenis dokumen populer seperti faktur, kwitansi, SIM, kartu ID, resume, dll.

Dengan demikian, membuat model khusus atau menggunakan salah satu model bawaan kami memungkinkan Anda mendeteksi dan mengekstrak item baris, bidang datar, dan tabel dalam satu panggilan API.

Mari kita ambil contoh faktur di atas. Tujuannya sekarang adalah untuk mendeteksi bidang datar seperti nama penjual, alamat penjual, nomor telepon, email, jumlah total beserta tabel dari file pdf faktur menggunakan Nanonets OCR.

Anda bisa pergi ke https://app.nanonets.com dan tiru model jenis dokumen faktur yang telah dilatih sebelumnya.

Setelah selesai, navigasikan ke arah Mengintegrasikan bagian di panel navigasi kiri, yang menyediakan cuplikan kode siap pakai untuk mengekstrak item baris, bidang datar, dan tabel menggunakan Nanonets API.

Menjalankan cuplikan kode di atas pada file faktur kami, kami dapat mendeteksi item baris beserta tabel dalam panggilan API.

Anda juga dapat menggunakan platform online kami untuk menyiapkan alur kerja otomatis dan mengekstrak item baris dan tabel dari file dan gambar PDF, mengonfigurasi integrasi eksternal dengan ERP/perangkat lunak/database populer, dan menyiapkan aturan persetujuan dan validasi.


Salah satu pakar AI kami dapat melakukan panggilan selama 15 menit untuk mendiskusikan kasus penggunaan Anda, memberikan demo yang dipersonalisasi, dan menemukan paket terbaik untuk Anda.


Kami menawarkan ekstraksi tabel pada platform online kami serta melalui API Nanonets. Setelah akun Nanonets Anda aktif dan berjalan, Anda dapat memilih untuk menggunakan platform alih-alih API untuk mengekstrak tabel dari dokumen Anda.

Anda dapat mengonfigurasi alur kerja Anda di sini. Kami menawarkan integrasi readymade dengan beberapa ERP / software / database populer.

  • impor dan ekspor otomatis ke ERP / software / database
  • menyiapkan aturan persetujuan dan validasi otomatis
  • mengkonfigurasi postprocessing setelah ekstraksi

Salah satu pakar AI kami dapat melakukan panggilan selama 15 menit untuk mendiskusikan kasus penggunaan Anda, memberikan demo yang dipersonalisasi, dan menemukan paket terbaik untuk Anda.


Ada banyak alat OCR online gratis yang dapat digunakan untuk melakukan OCR dan mengekstraksi tabel secara online. Ini hanya masalah mengunggah file masukan Anda, menunggu alat memproses dan memberikan keluaran, lalu mengunduh keluaran dalam format yang diperlukan.

Berikut adalah daftar Alat OCR online gratis yang kami sediakan โ€“

Punya kasus penggunaan OCR/Pemrosesan Dokumen Cerdas perusahaan? Coba Nanonet

Kami menyediakan solusi OCR dan IDP yang disesuaikan untuk berbagai kasus penggunaan โ€“ otomatisasi hutang dagang, otomatisasi faktur, otomatisasi piutang dagang, OCR Kwitansi / KTP / DL / Paspor, integrasi perangkat lunak akuntansi, Otomasi BPO, Ekstraksi Tabel, Ekstraksi PDF, dan banyak lagi. Jelajahi Produk dan Solusi kami menggunakan dropdown di kanan atas halaman.

Misalnya, asumsikan Anda memiliki sejumlah besar faktur yang dibuat setiap hari. Dengan Nanonets, Anda dapat mengunggah gambar-gambar ini dan mengajari model Anda sendiri apa yang harus dicari. Misalnya: Dalam faktur, Anda dapat membuat model untuk mengekstrak nama dan harga produk. Setelah anotasi Anda selesai dan model Anda dibuat, mengintegrasikannya semudah menyalin 2 baris kode.

Berikut adalah beberapa alasan Anda harus mempertimbangkan untuk menggunakan Nanonets โ€“

  1. Nanonet memudahkan untuk mengekstrak teks, menyusun data yang relevan ke dalam bidang yang diperlukan, dan membuang data yang tidak relevan yang diekstraksi dari gambar.
  2. Bekerja dengan baik dengan beberapa bahasa
  3. Berkinerja baik pada teks di alam liar
  4. Latih data Anda sendiri untuk membuatnya berfungsi untuk kasus penggunaan Anda
  5. Nanonets OCR API memungkinkan Anda untuk melatih kembali model Anda dengan data baru dengan mudah, sehingga Anda dapat mengotomatiskan operasi Anda di mana saja lebih cepat.
  6. Tidak diperlukan tim pengembang internal

Mengunjungi Nanonet untuk solusi OCR dan IDP perusahaan.

Mendaftarlah untuk memulai uji coba gratis.

tempat_img

Intelijen Terbaru

tempat_img