Cara mengekstrak pasangan Nilai-Kunci dari Dokumen menggunakan pembelajaran mendalam

Node Sumber: 810340

Blog tutorial ini membahas beberapa kasus penggunaan ekstraksi pasangan nilai-kunci, pendekatan tradisional dan terkini untuk menyelesaikan tugas, dan contoh implementasi dengan kode.

Pasangan Nilai-Kunci atau KVP pada dasarnya adalah dua item data yang ditautkan, sebuah kunci, dan sebuah nilai, di mana kunci tersebut digunakan sebagai pengidentifikasi unik untuk nilai tersebut. Contoh klasik data KVP adalah kamus: kosakata adalah kuncinya, dan definisi kosakata adalah nilai yang terkait dengannya. Faktanya, pasangan data ini bisa ada di berbagai jenis dokumen teks; dalam formulir, kuncinya adalah tipe data/pertanyaan (misalnya Nama, Usia), dan nilainya adalah atribut aktual yang Anda isi; di dalam faktur, kuncinya adalah item yang dibeli, dan nilainya dapat berupa harga item yang berbeda.

Formulir adalah contoh paling umum dari tampilan informasi jenis pasangan Nilai-Kunci

Namun, tidak seperti tabel, KVP seringkali bisa ada dalam data tidak terstruktur atau format yang tidak dikenal dan terkadang bahkan sebagian ditulis tangan. Misalnya, saat Anda mengisi formulir, aspek kuncinya dapat dicetak sebelumnya sebagai kotak, dan nilainya ditulis tangan saat Anda mengisinya. Ekstraksi data manual dari dokumen semacam itu bisa jadi menakutkan dan salah, belum lagi kesulitan saat dokumen ini dipindai sebagai gambar, bukan teks yang dikodekan mesin. Dengan demikian, menemukan struktur yang mendasari untuk melakukan ekstraksi KVP secara otomatis dapat meningkatkan efisiensi secara drastis baik untuk penggunaan pribadi maupun industri.


Nanonet API OCR memiliki banyak hal menarik gunakan kasing. Bicaralah dengan pakar AI Nanonets untuk mempelajari lebih lanjut.


Aplikasi ekstraksi KVP yang efisien dapat secara kasar dikategorikan menjadi penggunaan pribadi dan bisnis. Bagian berikut memberikan gambaran umum tentang beberapa kasus penggunaan utama di mana pengambilan data yang cepat dan akurat bisa sangat bermanfaat.

Pribadi

Gambar dari Unsplash

Sementara otomatisasi sebagian besar digunakan untuk produksi skala besar, ekstraksi nilai kunci yang cepat dan akurat juga dapat bermanfaat bagi partai kecil dan penggunaan pribadi untuk meningkatkan organisasi dan efisiensi rutinitas harian kita.

Pemindaian ID dan konversi data:

ID Pribadi adalah contoh umum dokumen yang berisi berbagai KVP, dari nama yang diberikan hingga tanggal lahir. Saat diperlukan untuk aplikasi online, kami sering kali harus mencari dan mengetik informasi secara manual, yang bisa jadi membosankan dan berulang. Ekstraksi KVP dari gambar ID dapat memungkinkan kami dengan cepat mengubah data menjadi teks yang dapat dimengerti mesin. Menemukan bidang yang cocok untuk nilai yang berbeda kemudian akan menjadi tugas yang sepele untuk program, dan satu-satunya upaya manual yang diperlukan adalah hanya memindai untuk pemeriksaan ulang.

Faktur ekstraksi data untuk penganggaran:

Penganggaran adalah aspek penting dari rutinitas pribadi kita. Meskipun pengembangan excel dan spreadsheet telah membuat tugas-tugas sulit tersebut menjadi lebih sederhana, ekstraksi KVP atas barang-barang yang dibeli dan harganya yang sesuai hanya dari gambar faktur dapat mempercepat seluruh proses lebih cepat lagi. Data dan angka terstruktur memungkinkan kami melakukan analisis dengan cepat dan mewaspadai pembelian yang berada di luar kemampuan kami.

Bisnis / Industri

Gambar dari Unsplash

Baik industri maupun perusahaan harus berurusan dengan ribuan dokumen dengan format serupa setiap hari. Dari aplikasi hingga manajemen aset, proses pengambilan informasi dokumen ini seringkali padat karya. Oleh karena itu, otomatisasi pada langkah awal penggalian pasangan nilai kunci dalam data yang tidak diformat dapat secara signifikan mengurangi redundansi sumber daya manusia, sekaligus memastikan keandalan data yang diambil.

Otomatisasi pemindaian dokumen:

Pemerintah atau bisnis besar seperti bank memproses formulir tulisan tangan dalam jumlah besar dengan format yang identik untuk berbagai tujuan (misalnya, aplikasi Visa, transfer bank). Mengambil informasi tulisan tangan dari formulir dan mengubahnya menjadi dokumen digital melalui upaya manusia bisa menjadi tugas yang sangat berulang dan membosankan yang akibatnya sering menyebabkan kesalahan kecil. Saluran ekstraksi KVP yang tepat untuk mengubah data tulisan tangan menjadi nilai yang sesuai dari kunci yang berbeda, kemudian memasukkan ke dalam sistem skala besar tidak hanya dapat mengurangi kesalahan tersebut tetapi juga menghemat pengeluaran tenaga kerja ekstra.

Pengumpulan survei dan analisis statistik:

Perusahaan dan Organisasi Non-Pemerintah (LSM) mungkin sering memerlukan umpan balik dari pelanggan atau warga negara secara umum untuk memperbaiki produk atau rencana promosi mereka saat ini. Untuk mengevaluasi umpan balik secara komprehensif, analisis statistik sering diperlukan. Namun, masalah serupa dalam mengubah data tidak terstruktur dan survei tulisan tangan menjadi angka numerik yang dapat digunakan untuk kalkulasi masih ada, dan karenanya ekstraksi KVP memainkan peran penting dalam mengubah gambar survei ini menjadi data yang dapat dianalisis.

Pendekatan tradisional

Elemen terpenting dari ekstraksi KVP dan menemukan data berguna yang mendasarinya adalah proses Optical Character Recognition (OCR). Dengan kata sederhana, OCR adalah konversi elektronik dari gambar dan foto yang dipindai menjadi teks yang dikodekan mesin untuk perhitungan lebih lanjut.

Sebelum akurasi pembelajaran mendalam memenuhi kebutuhan pasar untuk tugas-tugas tersebut, OCR dilakukan dengan prosedur berikut:

  1. Kumpulkan database dari jenis yang diketahui (mis. Huruf dan simbol)
  2. Gunakan sensor foto untuk mengumpulkan poin / fitur dari sebuah gambar
  3. Bandingkan poin yang diambil dari fotosensor dengan atribut fisik huruf dan simbol
  4. Ubah kumpulan poin menjadi tipe yang diketahui setelah menemukan atribut kemiripan tertinggi

Meskipun metode ini tampaknya paling efektif sepanjang waktu, terdapat dua batasan utama dari pendekatan tradisional:

Memerlukan templat dan aturan untuk berbagai jenis dokumen:

Dengan hanya menggunakan perataan atribut fisik, masih sulit untuk menentukan kotak atau format yang dibuat, dan dengan demikian ekstraksi KVP mungkin masih memerlukan templat atau aturan tambahan untuk menangkap data yang diperlukan.

Cacat mudah karena tulisan tangan yang sulit:

Penjajaran atribut fisik menjadi rawan kesalahan jika tulisan tangan terlalu berbeda dalam hal ukuran dan gaya. Karena karakter tulisan tangan ini tidak diketahui sebelum benar-benar terlihat, mereka juga tidak mungkin menjadi bagian dari database. Hal ini sering kali memerlukan OCR untuk menjalankan algoritme yang lebih canggih selain pencocokan atribut untuk akurasi yang lebih baik.

Namun, meskipun ada kendala yang membuat ekstraksi KVP dari dokumen yang dipindai tampaknya menemui jalan buntu, peningkatan pembelajaran mendalam baru-baru ini telah menjelaskan pendekatan baru dan kreatif untuk masalah tersebut.

Pembelajaran Mendalam dalam Tindakan

Pembelajaran mendalam adalah salah satu cabang utama pembelajaran mesin yang mendapatkan popularitas dalam beberapa dekade terakhir. Tidak seperti pendekatan ilmu komputer dan teknik tradisional, di mana kami merancang sistem yang menerima masukan untuk menghasilkan keluaran, pembelajaran mendalam berharap untuk mengandalkan masukan dan keluaran untuk merancang sistem perantara yang dapat diperluas ke masukan yang tidak terlihat dengan membuat apa yang disebut saraf jaringan.

Jaringan saraf adalah arsitektur yang terinspirasi oleh fungsi biologis otak manusia. Jaringan terdiri dari beberapa lapisan, setiap lapisan berisi banyak neuron buatan dan fungsi aktivasi. Input seperti gambar diumpankan ke depan untuk membuat prediksi, dan kesalahan prediksi di-propagasi mundur untuk mengubah bobot di seluruh jaringan.

Karena kapasitas GPU dan memori meningkat drastis, pembelajaran mendalam telah menjadi strategi yang disukai dalam beberapa tahun terakhir yang memicu variasi kreatif jaringan saraf. Salah satu jaringan saraf yang paling umum digunakan saat ini, terutama dalam domain computer vision adalah jaringan saraf konvolusional (CNN). CNN pada dasarnya adalah kernel konvolusional yang meluncur melalui gambar untuk mengekstrak fitur, yang sering kali disertai dengan lapisan jaringan tradisional untuk melakukan tugas-tugas seperti klasifikasi gambar atau deteksi objek.

Dengan beberapa pemahaman dasar tentang pembelajaran mendalam, bagian berikut membahas beberapa pendekatan pembelajaran mendalam untuk ekstraksi KVP.

Tesseract OCR Mesin

Teknik OCR terbaru juga telah memasukkan model pembelajaran yang mendalam untuk mencapai akurasi yang lebih tinggi. Mesin Tesseract OCR yang saat ini dikelola oleh Google adalah salah satu contoh yang menggunakan jenis jaringan pembelajaran mendalam tertentu: memori jangka pendek (LSTM).

Apa itu LSTM?

LSTM adalah keluarga jaringan tertentu yang diterapkan pada input urutan. Intuisinya sederhana - untuk data yang berurutan, seperti saham atau prakiraan cuaca, hasil sebelumnya mungkin menjadi indikator penting untuk masukan berikutnya, dan karenanya akan bermanfaat untuk meneruskan informasi secara konsisten dari titik data sebelumnya untuk prediksi baru. Demikian pula, untuk deteksi huruf di OCR, huruf yang terdeteksi sebelumnya dapat membantu dalam menentukan apakah huruf yang diprediksi lebih sedikit sesuai dengan kebutuhan (mis. Jika huruf "D" dan "o" terdeteksi, "g" memiliki kemungkinan yang jauh lebih tinggi untuk menjadi huruf berikutnya dalam baris dari "y", meskipun mungkin terlihat serupa).

Arsitektur Tesseract

Gambar di atas adalah arsitektur detail dari Tesseract V4 saat ini. Kotak pembatas kecil dipindahkan ke depan piksel demi piksel dengan waktu. Gambar yang dibatasi oleh kotak diekstraksi untuk melewati LSTM maju dan mundur, diikuti oleh lapisan konvolusi untuk hasil akhir.

Bagaimana cara membantu Ekstraksi KVP?

Arsitektur yang ditingkatkan membuat akurasi dan ketahanan OCR jauh lebih tinggi, dan karenanya lebih mudah untuk mengubah berbagai jenis teks menjadi satu dokumen elektronik terstruktur. Dokumen elektronik dengan string yang dapat dibaca mesin ini lebih mudah diatur untuk ekstraksi KVP.

Pembaca Mendalam

Selain memimpin kemajuan dalam OCR, pembelajaran mendalam juga menciptakan peluang untuk eksplorasi. Deep Reader, makalah lokakarya dari konferensi CS teratas ACCV *, adalah salah satu contoh yang memanfaatkan jaringan saraf untuk mengenali bentuk dan format yang melampaui kata dan simbol dari dokumen yang dipindai. Teknik tersebut dapat sangat membantu dalam tugas-tugas seperti ekstraksi KVP.

* Catatan Samping: Makalah penelitian terbaik dari domain ilmu komputer biasanya diterbitkan dalam konferensi tingkat atas. Penerimaan ke konferensi semacam itu melambangkan persetujuan dan pengakuan dari para ahli di bidangnya. Konferensi Asia tentang Visi Komputer (ACCV) adalah salah satu konferensi yang diakui dalam domain visi komputer.

Apa itu Deep Reader?

Dengan kata sederhana, Deep Readers mencoba untuk mengatasi masalah yang sedang berlangsung dari pengambilan informasi yang tidak mencukupi saat mengekstrak hanya kata dan teks saja dengan juga menemukan entitas visual seperti garis, tabel, dan kotak di dalam dokumen yang dipindai ini. Untuk setiap gambar, Deep Reader menolak gambar tersebut, mengidentifikasi dokumen, dan memproses teks tulisan tangan dengan pendekatan pembelajaran mendalam sebelum mendeteksi dan mengekstrak teks dan bentuk yang bermakna. Fitur-fitur ini kemudian digunakan untuk mengambil tabel, kotak, dan yang terpenting, KVP.

Pra-pemrosesan

Sebelum mengekstraksi entitas tekstual, Deep Reader melakukan beberapa langkah pra-pemrosesan untuk memastikan pengambilan kualitas terbaik di bagian terakhir:

  1. Image De-noising: Deep Reader mengadopsi file jaringan permusuhan generatif (GAN) untuk menghasilkan versi input yang tidak bersuara. GAN, pertama kali dikembangkan oleh Ian et al. pada tahun 2014, adalah jaringan saraf yang terdiri dari dua sub-jaringan - generator dan diskriminator. Setelah input diberikan, generator menghasilkan gambar berdasarkan input, dan diskriminator mencoba membedakan antara ground truth dan input yang dihasilkan. Setelah pelatihan selesai, generator dapat berhasil menghasilkan gambar berdasarkan input yang mendekati kebenaran dasar yang sebenarnya. Dalam hal ini, GAN, yang diberi pasangan gambar (satu tanpa noise dan satu lagi bersuara), mencoba mempelajari cara menghasilkan versi gambar tanpa noise dari gambar yang terganggu.
  2. Identifikasi Dokumen: Untuk mengambil entitas visual secara akurat, Deep Reader juga mencoba untuk mengklasifikasikan dokumen yang dipindai ke dalam salah satu templat melalui konvolusional. Jaringan Siam. Jaringan Siam terdiri dari dua lapisan konvolusional identik yang masing-masing menerima gambar dokumen yang dipindai dan templat sebagai input, kemudian menghitung kemiripan di antara keduanya. Kesamaan tertinggi di antara semua perbandingan menyiratkan bahwa dokumen tersebut didasarkan pada template.
  3. Memproses Teks Tulisan Tangan: Untuk mengatasi masalah pengenalan teks tulisan tangan, Deep Reader juga mengadopsi pengenalan teks tulisan tangan melalui encoder-decoder untuk memetakan teks tulisan tangan ke dalam kumpulan karakter.

Arsitektur

Gambar dari Pembaca Mendalam

Setelah pra-pemrosesan, Deep Reader mendeteksi sekumpulan entitas dari gambar, termasuk baris halaman, blok teks, baris blok teks, dan kotak. Deteksi berjalan melalui skema seperti yang ditunjukkan pada gambar di atas untuk mengambil sekumpulan data lengkap dari dokumen yang dipindai. Metode berbasis aturan yang disediakan oleh pakar domain juga diadopsi untuk membantu proses ekstraksi. Misalnya, Deep Reader menggunakan tipe data universal abstrak seperti kota, negara, dan tanggal untuk memastikan bahwa bidang yang diambil relevan.

Penerapan Kode

Dengan sedikit pemahaman tentang ekstraksi KVP, mari kita gali penerapan kode melalui skenario sederhana โ€” ekstraksi perusahaan, alamat, dan harga dari faktur.

Gambar di atas adalah template invoice standar, disimpan dalam format gambar. Kami punya banyak di antaranya faktur dengan format serupa namun mencari KVP secara manual seperti nama perusahaan, alamat, dan total harga adalah pekerjaan yang melelahkan. Oleh karena itu, tujuannya adalah merancang ekstraktor KVP sedemikian rupa sehingga dengan format tertentu (atau format serupa), kita dapat mengambil dan menyajikan KVP secara otomatis.

Untuk melakukan ekstraksi KVP, kita membutuhkan perpustakaan OCR dan perpustakaan pemrosesan gambar. Kami akan menggunakan pustaka openCV yang terkenal untuk membaca dan memproses gambar, dan pustaka PyTesseract untuk OCR. Pustaka PyTesseract adalah pembungkus dari mesin Google Tesseract yang disebutkan di atas, yang akan cukup untuk tugas kita.

* Catatan Samping: Program ini didasarkan pada larutan dari ICDAR Robusting Reading Challenge

Bagian I - Perpustakaan

Anda dapat menggunakan biji untuk menginstal dua pustaka melalui perintah berikut:

https://gist.github.com/ttchengab/c040ab7ce44114d76c63ecef226d5d09

Setelah instalasi, kita kemudian dapat mengimpor pustaka sebagai berikut:

https://gist.github.com/ttchengab/cd32bcd502e99c3e3cc9c73f693927c7

Kami juga harus mengimpor beberapa perpustakaan eksternal:

https://gist.github.com/ttchengab/01280236448e4fc4a03505f6f0baea3f

Bagian II - Pemrosesan Awal Gambar

https://gist.github.com/ttchengab/293fc3ca782b20cf9b05c33f13583338

Fungsi di atas adalah preprocessing gambar kita untuk pengambilan teks. Kami mengikuti pendekatan dua tahap untuk mencapai ini:

Pertama, kami memanfaatkan cv2.imread () berfungsi untuk mengambil gambar untuk diproses. Untuk meningkatkan kejelasan teks pada gambar, kami melakukan dilatasi gambar diikuti dengan penghapusan noise menggunakan beberapa Cv2 fungsi. Beberapa fungsi tambahan untuk pemrosesan gambar juga tercantum di bagian komentar. Kemudian, kami menemukan kontur dari gambar dan berdasarkan kontur kami menemukan persegi panjang pembatas.

Kedua, setelah pemrosesan gambar, kami kemudian mengambil setiap kotak pembatas secara berulang dan menggunakan mesin pytesseract untuk mengambil semua informasi teks untuk dimasukkan ke dalam jaringan untuk ekstraksi KVP.

https://gist.github.com/ttchengab/b81ea8bb1c21121237845d65d15aa3a0

Model di atas adalah LSTM sederhana yang mengambil teks sebagai input dan output KVP nama perusahaan, tanggal, alamat, dan jumlah. Kami mengadopsi model terlatih dari larutan untuk pengujian

Berikut ini adalah fungsi evaluasi untuk jaringan LSTM dengan sekumpulan teks tertentu:

https://gist.github.com/ttchengab/9f31568ef1b916ab0ee74ac1b8b482e5

Bagian IV - Keseluruhan Pipa

https://gist.github.com/ttchengab/c2f7614cbeaa8cd14883d4ebbcd36ba6

Dengan semua fungsi dan pustaka yang diterapkan, seluruh jalur ekstraksi KVP dapat dicapai dengan kode di atas. Menggunakan faktur di atas, kami berhasil mengambil nama dan alamat perusahaan sebagai berikut:

Untuk menguji ketahanan model kami, kami juga dapat mengujinya faktur dengan format tak terlihat seperti berikut:

Dengan menggunakan pipeline yang sama, tanpa pelatihan lebih lanjut, kita dapat memperoleh yang berikut ini:

Meskipun kami tidak dapat mengambil informasi lain seperti nama atau alamat perusahaan, kami masih dapat memperoleh jumlah total dengan benar tanpa pernah melihat format faktur yang serupa sebelumnya!

Dengan pemahaman tentang arsitektur model dan pipeline, kini Anda dapat menggunakan lebih banyak hal faktur format yang lebih relevan sebagai pelatihan dan terus melatih model agar dapat bekerja dengan keyakinan dan akurasi yang lebih tinggi.

Kesimpulan

Munculnya pembelajaran mendalam telah menciptakan peluang untuk memikirkan kembali beberapa masalah non-sepele dalam pencarian informasi. Artikel ini berfungsi sebagai pengantar ekstraksi KVP. Kami memulai dengan mendiskusikan konsep KVP dan kasus penggunaan ekstraksinya. Kemudian, kami mendalami pendekatan pemanfaatan OCR tradisional serta metode pembelajaran mendalam pada ekstraksi. Terakhir, kami mempelajari cara memanfaatkan salah satu mesin OCR berbasis pembelajaran mendalam yang canggih untuk melakukan ekstraksi KVP dari faktur dari template serupa.

Selanjutnya Membaca


Anda mungkin tertarik dengan postingan terbaru kami di:

Update:
Menambahkan bahan bacaan lebih lanjut tentang ekstraksi pasangan nilai kunci dari dokumen

Mulai gunakan Nanonet untuk Otomatisasi

Coba modelnya atau minta demo hari ini!

COBA SEKARANG

Sumber: https://nanonets.com/blog/key-value-pair-extraction-from-documents-using-ocr-and-deep-learning/

Stempel Waktu:

Lebih dari AI & Blog Pembelajaran Mesin