Pisahkan paket dokumen multi-bentuk secara cerdas dengan Amazon Textract dan Amazon Comprehend

Node Sumber: 1372716

Banyak organisasi dengan berbagai ukuran dan vertikal industri masih mengandalkan dokumen dalam jumlah besar untuk menjalankan operasi sehari-hari mereka. Untuk mengatasi tantangan bisnis ini, pelanggan menggunakan layanan pemrosesan dokumen cerdas dari AWS seperti Teks Amazon dan Amazon Comprehend untuk membantu ekstraksi dan otomatisasi proses. Sebelum Anda bisa mengekstrak teks, key-value pair, tabel, dan entitas, Anda harus bisa memisahkan dokumen PDF multi halaman yang sering kali berisi tipe formulir yang heterogen. Misalnya, dalam pemrosesan hipotek, broker atau individu pemrosesan pinjaman mungkin perlu membagi paket pinjaman PDF terkonsolidasi, yang berisi aplikasi hipotek (formulir Fannie Mae 1003), W2, verifikasi pendapatan, formulir pajak 1040, dan banyak lagi.

Untuk mengatasi masalah ini, organisasi menggunakan pemrosesan berbasis aturan: mengidentifikasi jenis dokumen melalui judul formulir, nomor halaman, panjang formulir, dan sebagainya. Pendekatan ini rawan kesalahan dan sulit untuk diskalakan, terutama ketika tipe formulir mungkin memiliki beberapa variasi. Oleh karena itu, solusi ini cepat rusak dalam praktiknya dan meningkatkan kebutuhan akan campur tangan manusia.

Dalam posting ini, kami menunjukkan bagaimana Anda dapat membuat solusi pemisahan dokumen Anda sendiri dengan sedikit kode untuk kumpulan formulir apa pun, tanpa membuat aturan khusus atau memproses alur kerja.

Ikhtisar solusi

Untuk postingan ini, kami menggunakan serangkaian formulir aplikasi hipotek umum untuk menunjukkan bagaimana Anda dapat menggunakan Amazon Textract dan Amazon Comprehend untuk membuat pemisah dokumen cerdas yang lebih tangguh daripada pendekatan sebelumnya. Saat memproses dokumen untuk aplikasi hipotek, peminjam mengirimkan PDF multi halaman yang terdiri dari jenis dokumen heterogen dengan panjang halaman yang berbeda-beda; untuk mengekstrak informasi, pengguna (misalnya, bank) harus memecah PDF ini.

Meskipun kami menunjukkan contoh spesifik untuk formulir hipotek, Anda biasanya dapat menskalakan dan menerapkan pendekatan ini ke hampir semua kumpulan dokumen PDF multi-halaman.

Kami menggunakan Amazon Textract untuk mengekstrak data dari dokumen dan membangun dataset yang kompatibel dengan Amazon Comprehend untuk melatih a model klasifikasi dokumen. Selanjutnya, kami melatih model klasifikasi dan membuat endpoint klasifikasi yang dapat melakukan analisis dokumen secara real-time. Perlu diingat bahwa titik akhir klasifikasi Amazon Textract dan Amazon Comprehend dikenakan biaya, jadi lihat Harga Amazon Textract dan Harga Amazon Comprehend untuk informasi lebih lanjut. Terakhir, kami menunjukkan bagaimana kami dapat mengklasifikasikan dokumen dengan titik akhir ini dan memisahkan dokumen berdasarkan hasil klasifikasi.

Solusi ini menggunakan layanan AWS berikut:

Prasyarat

Anda harus menyelesaikan prasyarat berikut untuk membuat dan menerapkan solusi ini:

  1. Install Piton 3.8.x.
  2. Install jq.
  3. Install CLI AWS SAM.
  4. Install Buruh pelabuhan.
  5. Pastikan Anda memilikinya pip terpasang.
  6. Instal dan konfigurasikan itu Antarmuka Baris Perintah AWS (AWS CLI).
  7. Konfigurasi kredensial AWS Anda.

Solusinya dirancang untuk bekerja secara optimal di us-east-1 dan us-west-2 Wilayah untuk memanfaatkan kuota default yang lebih tinggi untuk Amazon Texttract. Untuk beban kerja Regional tertentu, lihat Titik akhir dan kuota Amazon Textract. Pastikan Anda menggunakan satu Wilayah untuk seluruh solusi.

Kloning repo

Untuk memulai, tiru repositori dengan menjalankan perintah berikut; lalu kami beralih ke direktori kerja:

git clone https://github.com/aws-samples/aws-document-classifier-and-splitter.git
cd aws-document-classifier-and-splitter

Alur kerja solusi

Solusinya terdiri dari tiga alur kerja:

  • alur kerja1_endpointbuilder โ€“ Mengambil dokumen pelatihan dan membuat titik akhir klasifikasi khusus di Amazon Comprehend.
  • alur kerja2_docsplitter โ€“ Bertindak sebagai layanan pemisahan dokumen, di mana dokumen dibagi berdasarkan kelas. Ini menggunakan titik akhir klasifikasi yang dibuat di workflow1.
  • alur kerja3_local โ€“ Ditujukan untuk pelanggan yang berada di industri yang sangat diatur dan tidak dapat menyimpan data di Amazon S3. Alur kerja ini berisi versi lokal dari workflow1 dan workflow2.

Mari selami lebih dalam setiap alur kerja dan cara kerjanya.

Alur Kerja 1: Bangun pengklasifikasi Amazon Comprehend dari dokumen PDF, JPG, atau PNG

Alur kerja pertama mengambil dokumen yang disimpan di Amazon S3 dan mengirimkannya melalui serangkaian langkah untuk mengekstrak data dari dokumen melalui Amazon Textract. Kemudian, data yang diekstraksi digunakan untuk membuat titik akhir klasifikasi kustom Amazon Comprehend. Hal ini ditunjukkan dalam diagram arsitektur berikut.

Peluncuran workflow1, Anda memerlukan Amazon S3 URI dari folder yang berisi file dataset pelatihan (bisa berupa gambar, PDF satu halaman, atau PDF multi halaman). Struktur folder harus sebagai berikut:

root dataset directory
---- class directory
-------- files

Alternatifnya, struktur dapat memiliki subdirektori bersarang tambahan:

root dataset directory
---- class directory
-------- nested subdirectories
------------ files

Nama subdirektori kelas (tingkat direktori kedua) menjadi nama kelas yang digunakan dalam model klasifikasi kustom Amazon Comprehend. Misalnya, dalam struktur file berikut, kelas untuk form123.pdf is tax_forms:

training_dataset
---- tax_forms
-------- page_1
------------ form123.pdf

Untuk meluncurkan alur kerja, selesaikan langkah-langkah berikut:

  1. Unggah kumpulan data ke bucket S3 yang Anda miliki.

Rekomendasinya adalah memiliki lebih dari 50 sampel untuk setiap kelas yang ingin Anda klasifikasikan. Tangkapan layar berikut menunjukkan contoh struktur kelas dokumen ini.

  1. Bangun sam-app dengan menjalankan perintah berikut (modifikasi perintah yang disediakan sesuai kebutuhan):
cd workflow1_endpointbuilder/sam-app
sam build
sam deploy --guided
Stack Name [sam-app]: endpointbuilder
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Creating the required resources...
Successfully created!
Managed S3 bucket: {your_bucket}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

Output build adalah ARN untuk mesin status Step Functions.

  1. Saat build selesai, navigasikan ke Mesin negara halaman di konsol Step Functions.
  2. Pilih mesin negara yang Anda buat.
  3. Pilih Mulai eksekusi.
  4. Masukkan parameter masukan yang diperlukan berikut ini:
{
โ€œfolder_uriโ€: โ€œs3://{your dataset}โ€
}

  1. Pilih Mulai eksekusi.

Mesin negara memulai alur kerja. Ini bisa memakan waktu beberapa jam tergantung pada ukuran kumpulan data. Tangkapan layar berikut menunjukkan mesin status kami sedang berlangsung.

Saat mesin negara selesai, setiap langkah dalam grafik berwarna hijau, seperti yang ditunjukkan pada tangkapan layar berikut.

Anda dapat menavigasi ke konsol Amazon Comprehend untuk melihat titik akhir diterapkan.

Anda sekarang telah membuat pengklasifikasi khusus menggunakan dokumen Anda. Ini menandai akhir dari workflow1.

Alur kerja 2: Bangun titik akhir

Alur kerja kedua mengambil titik akhir yang Anda buat workflow1 dan membagi dokumen berdasarkan kelas yang modelnya telah dilatih. Hal ini ditunjukkan dalam diagram arsitektur berikut.

Peluncuran workflow2, kami membangun sam-app. Ubah perintah yang disediakan sesuai kebutuhan:

cd workflow2_docsplitter/sam-app
sam-app % sam build
Build Succeeded sam-app % sam deploy --guided
Configuring SAM deploy
=========================================
Stack Name [sam-app]: docsplitter
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Managed S3 bucket: {bucket_name}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

Setelah tumpukan dibuat, Anda menerima DNS Load Balancer di Output tab tumpukan CloudFormation. Anda dapat mulai membuat permintaan ke titik akhir ini.

Contoh permintaan tersedia di workflow2_docsplitter/sample_request_folder/sample_s3_request.py mengajukan. API mengambil tiga parameter: nama bucket S3, dokumen Amazon S3 URI, dan ARN titik akhir klasifikasi Amazon Comprehend. Workflow2 hanya mendukung input PDF.

Untuk pengujian kami, kami menggunakan dokumen hipotek 11 halaman dengan lima jenis dokumen berbeda.

Respons untuk API adalah URI Amazon S3 untuk file .zip dengan semua dokumen terpisah. Anda juga dapat menemukan file ini di keranjang yang Anda sediakan di panggilan API.

Unduh objek dan tinjau pemisahan dokumen berdasarkan kelas.

Ini menandai akhir dari workflow2. Kami sekarang telah menunjukkan bagaimana kami dapat menggunakan titik akhir klasifikasi Amazon Comprehend khusus untuk mengklasifikasikan dan membagi dokumen.

Alur kerja 3: Pemisahan dokumen lokal

Alur kerja ketiga kami mengikuti tujuan yang mirip dengan workflow1 dan workflow2 untuk menghasilkan titik akhir Amazon Comprehend; namun, semua pemrosesan dilakukan menggunakan mesin lokal Anda untuk menghasilkan file CSV yang kompatibel dengan Amazon Comprehend. Alur kerja ini dibuat untuk pelanggan di industri yang sangat diatur di mana dokumen PDF yang bertahan di Amazon S3 mungkin tidak dapat dilakukan. Diagram arsitektur berikut adalah representasi visual dari alur kerja pembuat titik akhir lokal.

Diagram berikut mengilustrasikan arsitektur pembagi dokumen lokal.

Semua kode untuk solusi tersedia di workflow3_local/local_endpointbuilder.py file untuk membangun titik akhir klasifikasi Amazon Comprehend dan workflow3_local/local_docsplitter.py untuk mengirim dokumen untuk pemisahan.

Kesimpulan

Pemisahan dokumen adalah kunci untuk membangun alur kerja pemrosesan dokumen yang sukses dan cerdas. Ini masih menjadi masalah yang sangat relevan untuk bisnis, terutama organisasi yang menggabungkan beberapa jenis dokumen untuk operasi sehari-hari mereka. Beberapa contoh termasuk memproses dokumen klaim asuransi, aplikasi polis asuransi, dokumen SEC, formulir pajak, dan formulir verifikasi pendapatan.

Dalam postingan ini, kami mengambil sekumpulan dokumen umum yang digunakan untuk pemrosesan pinjaman, mengekstraksi data menggunakan Amazon Textract, dan membuat titik akhir klasifikasi khusus Amazon Comprehend. Dengan endpoint tersebut, kami mengklasifikasikan dokumen yang masuk dan membaginya berdasarkan kelasnya masing-masing. Anda dapat menerapkan proses ini ke hampir semua kumpulan dokumen dengan aplikasi di berbagai industri, seperti layanan kesehatan dan keuangan. Untuk mempelajari lebih lanjut tentang Amazon Texttract, kunjungi halaman web.


Tentang Penulis

Aditi Rajnish adalah mahasiswa rekayasa perangkat lunak tahun pertama di University of Waterloo. Minatnya meliputi visi komputer, pemrosesan bahasa alami, dan komputasi tepi. Dia juga bersemangat tentang penjangkauan dan advokasi STEM berbasis komunitas. Di waktu luangnya, ia dapat ditemukan panjat tebing, bermain piano, atau belajar cara membuat scone yang sempurna.

Raja Pathak adalah Arsitek Solusi dan penasihat Teknis untuk pelanggan Fortune 50 dan FSI (Perbankan, Asuransi, Pasar Modal) Menengah di Kanada dan Amerika Serikat. Raj berspesialisasi dalam Pembelajaran Mesin dengan aplikasi dalam Ekstraksi Dokumen, Transformasi Pusat Kontak, dan Visi Komputer.

Sumber: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-text-and-amazon-comprehend/

Stempel Waktu:

Lebih dari Blog Pembelajaran Mesin AWS