Amazon Textract ve Amazon Comprehend ile çok formlu belge paketlerini akıllıca ayırın

Kaynak Düğüm: 1372716

Farklı boyutlara ve sektör dikeylerine yayılan birçok kuruluş, günlük operasyonlarını yürütmek için hala büyük hacimli belgelere güveniyor. Bu iş sorununu çözmek için müşteriler, AWS'nin aşağıdakiler gibi akıllı belge işleme hizmetlerini kullanıyor: Amazon Metin Yazısı ve Amazon Kavramak yardım etmek çıkarma ve proses otomasyonu. Metni, anahtar/değer çiftlerini, tabloları ve varlıkları ayıklayabilmeniz için, genellikle heterojen form türleri içeren çok sayfalı PDF belgelerini bölebilmeniz gerekir. Örneğin, ipotek işlemlerinde, bir komisyoncu veya kredi işlemi yapan kişinin ipotek başvurusu (Fannie Mae formu 1003), W2'ler, gelir doğrulaması, 1040 vergi formları ve daha fazlasını içeren birleştirilmiş bir PDF kredi paketini bölmesi gerekebilir.

Bu sorunu çözmek için kuruluşlar kurallara dayalı işleme kullanır: form başlıkları, sayfa numaraları, form uzunlukları vb. aracılığıyla belge türlerini tanımlama. Bu yaklaşımlar hataya açıktır ve özellikle form türlerinin çeşitli varyasyonları olduğunda ölçeklenmesi zordur. Buna göre, bu geçici çözümler pratikte hızla bozulur ve insan müdahalesi ihtiyacını artırır.

Bu gönderide, özel kurallar oluşturmadan veya iş akışlarını işlemeden herhangi bir form kümesi için çok az kod kullanarak kendi belge bölme çözümünüzü nasıl oluşturabileceğinizi gösteriyoruz.

Çözüme genel bakış

Bu gönderi için, önceki yaklaşımlardan daha sağlam bir akıllı belge ayırıcı oluşturmak için Amazon Textract ve Amazon Comprehend'i nasıl kullanabileceğinizi göstermek için bir dizi yaygın ipotek başvuru formu kullanıyoruz. İpotek başvuruları için belgeleri işlerken, borçlu, değişen sayfa uzunluklarına sahip heterojen belge türlerinden oluşan çok sayfalı bir PDF sunar; bilgileri çıkarmak için kullanıcı (örneğin bir banka) bu PDF'yi parçalamalıdır.

İpotek formları için belirli bir örnek göstersek de, genellikle bu yaklaşımı hemen hemen her çok sayfalı PDF belgesi kümesine ölçekleyebilir ve uygulayabilirsiniz.

Belgeden veri çıkarmak için Amazon Textract kullanıyoruz ve bir Amazon Comprehend uyumlu veri kümesi oluşturuyoruz. belge sınıflandırma modeli. Ardından, sınıflandırma modelini eğitir ve gerçek zamanlı belge analizi gerçekleştirebilen bir sınıflandırma uç noktası oluştururuz. Amazon Textract ve Amazon Comprehend sınıflandırma uç noktalarının ücrete tabi olduğunu unutmayın. Amazon Textract fiyatlandırması ve Amazon Comprehend fiyatlandırması daha fazla bilgi için. Son olarak, belgeleri bu uç nokta ile nasıl sınıflandırabileceğimizi ve sınıflandırma sonuçlarına göre belgeleri nasıl ayırabileceğimizi gösteriyoruz.

Bu çözüm, aşağıdaki AWS hizmetlerini kullanır:

Önkoşullar

Bu çözümü oluşturmak ve dağıtmak için aşağıdaki ön koşulları tamamlamanız gerekir:

  1. kurmak Python 3.8.x.
  2. kurmak jq.
  3. kurmak AWS SAM CLI'si.
  4. kurmak liman işçisi.
  5. Sahip olduğunuzdan emin olun pip yüklü.
  6. Yükle ve yapılandır the AWS Komut Satırı Arayüzü (AWS CLI'si).
  7. yapılandırma AWS kimlik bilgileriniz.

Çözüm, en iyi şekilde çalışacak şekilde tasarlanmıştır. us-east-1 ve us-west-2 Amazon Textract için daha yüksek varsayılan kotalardan yararlanacak bölgeler. Belirli Bölgesel iş yükleri için bkz. Amazon Textract uç noktaları ve kotaları. Çözümün tamamı için tek bir Bölge kullandığınızdan emin olun.

Depoyu klonlayın

Başlamak için aşağıdaki komutu çalıştırarak depoyu klonlayın; sonra çalışma dizinine geçiyoruz:

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

Çözüm iş akışları

Çözüm, üç iş akışından oluşur:

  • iş akışı1_endpointbuilder – Eğitim belgelerini alır ve Amazon Comprehend'de özel bir sınıflandırma uç noktası oluşturur.
  • iş akışı2_docsplitter – Belgelerin sınıfa göre ayrıldığı belge bölme hizmeti görevi görür. Oluşturulan sınıflandırma uç noktasını kullanır. workflow1.
  • iş akışı3_local – Yüksek düzeyde düzenlemeye tabi sektörlerde faaliyet gösteren ve verileri Amazon S3'te sürdüremeyen müşterilere yöneliktir. Bu iş akışı aşağıdakilerin yerel sürümlerini içerir: workflow1 ve workflow2.

Her bir iş akışını ve nasıl çalıştıklarını derinlemesine inceleyelim.

İş Akışı 1: PDF, JPG veya PNG belgelerinden bir Amazon Comprehend sınıflandırıcısı oluşturun

İlk iş akışı, Amazon S3'te depolanan belgeleri alır ve bunları Amazon Textract aracılığıyla belgelerden verileri çıkarmak için bir dizi adımdan geçirir. Ardından, ayıklanan veriler bir Amazon Comprehend özel sınıflandırma uç noktası oluşturmak için kullanılır. Bu, aşağıdaki mimari diyagramda gösterilmiştir.

Çalıştırmak workflow1, eğitim veri kümesi dosyalarını içeren klasörün Amazon S3 URI'sine ihtiyacınız vardır (bunlar resimler, tek sayfalık PDF'ler veya çok sayfalı PDF'ler olabilir). Klasörün yapısı aşağıdaki gibi olmalıdır:

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

Alternatif olarak, yapı iç içe ek alt dizinlere sahip olabilir:

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

Sınıf alt dizinlerinin adları (ikinci dizin düzeyi), Amazon Comprehend özel sınıflandırma modelinde kullanılan sınıfların adları olur. Örneğin, aşağıdaki dosya yapısında, sınıf için form123.pdf is tax_forms:

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

İş akışını başlatmak için aşağıdaki adımları tamamlayın:

  1. Veri kümesini sahip olduğunuz bir S3 paketine yükleyin.

Tavsiye, sınıflandırmak istediğiniz her sınıf için 50'den fazla örneğe sahip olmaktır. Aşağıdaki ekran görüntüsü, bu belge sınıfı yapısının bir örneğini göstermektedir.

  1. Kurmak sam-app aşağıdaki komutları çalıştırarak (sağlanan komutları gerektiği gibi değiştirin):
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

Derlemenin çıktısı, Step Functions durum makinesi için bir ARN'dir.

  1. Derleme tamamlandığında, şuraya gidin: Devlet makineleri Step Functions konsolundaki sayfa.
  2. Oluşturduğunuz durum makinesini seçin.
  3. Klinik Yürütmeyi başlat.
  4. Aşağıdaki gerekli giriş parametrelerini girin:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Klinik Yürütmeyi başlat.

Durum makinesi iş akışını başlatır. Bu, veri kümesinin boyutuna bağlı olarak birkaç saat sürebilir. Aşağıdaki ekran görüntüsü, durum makinemizin devam ettiğini göstermektedir.

Durum makinesi tamamlandığında, aşağıdaki ekran görüntüsünde gösterildiği gibi grafikteki her adım yeşildir.

Dağıtılan uç noktayı görmek için Amazon Comprehend konsoluna gidebilirsiniz.

Artık belgelerinizi kullanarak özel sınıflandırıcınızı oluşturdunuz. Bu, sonunu işaretler workflow1.

İş Akışı 2: Bir uç nokta oluşturun

İkinci iş akışı, oluşturduğunuz uç noktayı alır. workflow1 ve belgeleri modelin eğitildiği sınıflara göre böler. Bu, aşağıdaki mimari diyagramda gösterilmiştir.

Çalıştırmak workflow2, inşa ediyoruz sam-app. Sağlanan komutları gerektiği gibi değiştirin:

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

Yığın oluşturulduktan sonra, üzerinde bir Load Balancer DNS alırsınız. Çıkışlar CloudFormation yığınının sekmesi. Bu uç noktaya istekte bulunmaya başlayabilirsiniz.

Örnek bir istek mevcuttur workflow2_docsplitter/sample_request_folder/sample_s3_request.py dosya. API üç parametre alır: S3 klasör adı, belge Amazon S3 URI'si ve Amazon Comprehend sınıflandırma uç noktası ARN'si. Workflow2 yalnızca PDF girişini destekler.

Testimiz için beş farklı belge türüne sahip 11 sayfalık bir ipotek belgesi kullanıyoruz.

API yanıtı, tüm bölünmüş belgeleri içeren bir .zip dosyası için bir Amazon S3 URI'sidir. Bu dosyayı API çağrınızda sağladığınız pakette de bulabilirsiniz.

Nesneyi indirin ve sınıfa göre bölünmüş belgeleri inceleyin.

Bu, sonunu işaretler workflow2. Belgeleri sınıflandırmak ve bölmek için özel bir Amazon Comprehend sınıflandırma uç noktasını nasıl kullanabileceğimizi gösterdik.

İş Akışı 3: Yerel belge bölme

Üçüncü iş akışımız şuna benzer bir amacı izler: workflow1 ve workflow2 bir Amazon Comprehend uç noktası oluşturmak için; ancak tüm işlemler, Amazon Comprehend uyumlu bir CSV dosyası oluşturmak için yerel makineniz kullanılarak yapılır. Bu iş akışı, Amazon S3'te kalıcı PDF belgelerinin mümkün olmayabileceği, yüksek düzeyde düzenlemeye tabi sektörlerdeki müşteriler için oluşturulmuştur. Aşağıdaki mimari diyagram, yerel uç nokta oluşturucu iş akışının görsel bir temsilidir.

Aşağıdaki şema, yerel belge ayırıcı mimarisini göstermektedir.

Çözümün tüm kodu şurada mevcuttur: workflow3_local/local_endpointbuilder.py Amazon Comprehend sınıflandırma uç noktasını oluşturmak için dosya ve workflow3_local/local_docsplitter.py bölme için belgeleri göndermek için.

Sonuç

Belge bölme, başarılı ve akıllı bir belge işleme iş akışı oluşturmanın anahtarıdır. Bu, işletmeler, özellikle de günlük operasyonları için birden çok belge türünü bir araya getiren kuruluşlar için hala çok ilgili bir sorundur. Bazı örnekler, sigorta talep belgelerinin, sigorta poliçesi başvurularının, SEC belgelerinin, vergi formlarının ve gelir doğrulama formlarının işlenmesini içerir.

Bu gönderide, kredi işleme için kullanılan bir dizi ortak belgeyi aldık, Amazon Textract kullanarak verileri çıkardık ve bir Amazon Comprehend özel sınıflandırma uç noktası oluşturduk. Bu son nokta ile gelen belgeleri sınıflandırdık ve ilgili sınıflarına göre ayırdık. Bu süreci, sağlık ve finansal hizmetler gibi çeşitli sektörlerdeki uygulamalarla neredeyse her türlü belgeye uygulayabilirsiniz. Amazon Textract hakkında daha fazla bilgi edinmek için, web sayfasını ziyaret et.


Yazarlar Hakkında

Aditi Rajniş Waterloo Üniversitesi'nde birinci sınıf yazılım mühendisliği öğrencisidir. İlgi alanları arasında bilgisayarla görme, doğal dil işleme ve uç bilgi işlem yer almaktadır. Ayrıca topluluk temelli STEM sosyal yardım ve savunuculuğu konusunda tutkulu. Boş zamanlarında kaya tırmanışı yaparken, piyano çalarken veya mükemmel çörek yapmayı öğrenirken bulunabilir.

Raj Pathak Kanada ve Amerika Birleşik Devletleri'ndeki Fortune 50 ve Orta Ölçekli FSI (Bankacılık, Sigorta, Sermaye Piyasaları) müşterilerine Çözüm Mimarı ve Teknik danışmandır. Raj, Belge Çıkarma, İletişim Merkezi Dönüşümü ve Bilgisayarla Görme alanlarındaki uygulamalarla Makine Öğrenimi konusunda uzmanlaşmıştır.

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

Zaman Damgası:

Den fazla AWS Makine Öğrenimi Blogu