PDF Verilerini Veritabanı Girişlerine Dönüştürün PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

PDF Verilerini Veritabanı Girişlerine Dönüştürün

Birçok kuruluş ve işletme, faturalar, maaş bordroları, mali bilgiler, iş emirleri, makbuzlar ve daha fazlası gibi önemli belgeleri paylaşmak için PDF belgelerine güvenir. Ancak PDF'ler, kolayca dışa aktarılamadığından ve iş akışları halinde düzenlenemediğinden, geçmiş verileri depolamak için gidilecek biçimler değildir. Bu nedenle, insanlar PDF'leri ve taranan belgeleri JSON, CSV, Tablolar veya Excel gibi kolayca diğer kurumsal iş akışlarına dönüştürülebilecek yapılandırılmış biçimlerde dijitalleştirmek için bilgi çıkarma algoritmalarını kullanır.

Bazı durumlarda, PDF'ler farklı ERP'lerde, CMS'de ve diğer veritabanı güdümlü sistemlerde işlenecek temel bilgileri içerir. Ne yazık ki, PDF belgelerinin kolay bir PDF'den veritabanına işlevi yoktur ve bu görev etrafında komut dosyaları yazmak veya bir iş akışı oluşturmak biraz karmaşıktır. Bu, OCR ve Derin Öğrenme (DL) algoritmalarının, bu PDF formatlarından veri çıkarmak ve bir veritabanına dışa aktarmak için resme girdiği yerdir. Bu blog yazısında, piyasadaki bazı popüler API'lerin yanı sıra DL teknolojilerini kullanarak bunu nasıl başarabileceğinizin farklı yollarını inceleyeceğiz.

PDF'den Veritabanına Dönüştürme Nedir?

PDF'den Veritabanına Dönüştürme, PDF'lerden Postgres, Mongo, MySQL vb. bir veritabanına veri aktarma görevidir.

Farklı kaynaklardan gelen fatura bilgilerini tutan ve koruyan bir web uygulaması veya ERP sistemi oluşturduğumuzu varsayalım. Geçmiş faturaları bir veritabanına manuel olarak eklemek zorlu bir iştir ve hataya açık bir iştir. Öte yandan, basit bir OCR kullanmak, faturalardan tabloları doğru bir şekilde çıkarmayabilir.

Gelişmiş AI güdümlü PDF'den Veritabanına dönüştürmenin kullanışlı olduğu yer burasıdır!

Bu AI güdümlü PDF'den veritabanına dönüştürme işlemi otomatikleştirilebilir mi? - Evet.

Aşağıdaki bölümlerde, taranan belgelerden tablo bölgelerini algılamak için bilgisayarla görme ve derin öğrenme kullanıyoruz. Bu tablolar ayrıca CSV veya excel gibi belirli bir veri formatında saklanır ve doğrudan veritabanlarına gönderilir.

Bunları tartışmadan önce, PDF'den veritabanına algılamanın yararlı olabileceği bazı kullanım durumlarını anlayalım.

PDF'den Veritabanlarına için farklı kullanım durumları

Veritabanları, hem bulutta hem de yerel depolamada bilgi depolamanın en iyi yoludur. Basit sorgular kullanarak farklı işlemler ve manipülasyonlar yapmamızı sağlarlar. Otomatik bir PDF'den veritabanına dönüştürme iş akışıyla büyük ölçüde optimize edilebilecek bazı kullanım örnekleri şunlardır:

  1. Web'de Fatura Yönetimi: İşletmeler ve kuruluşlar her gün birkaç faturayla uğraşırlar; ve her faturayı manuel olarak işlemeleri onlar için zordur. Ayrıca, bazen dijital olmayan bir biçimde fatura kesip alırlar, bu da takip edilmesini zorlaştırır. Bu nedenle, tüm faturalarını tek bir yerde saklayabilen web tabanlı uygulamalara güveniyorlar. Bir PDF'den veritabanına dönüştürücü, faturalardan web uygulamasına veri çekmeyi otomatikleştirebilir. Bu görevleri verimli bir şekilde otomatikleştirmek için cron işlerini çalıştırabilir ve bunları n8n ve Zapier gibi üçüncü taraf hizmetlerle entegre edebiliriz - yeni bir fatura taranıp yüklendiğinde algoritmayı çalıştırabilir ve otomatik olarak tablolara aktarabilir.
  2. ECom Envanter Yönetimit: Pek çok e-com envanter yönetimi hala PDF'lerden ve taranmış kopyalardan ürünlerin manuel olarak girilmesi yoluyla yürütülmektedir. Ancak tüm ürünlerini ve satışlarını takip edebilmek için tüm verilerini fatura yönetimi yazılımına yüklemeleri gerekiyor. Bu nedenle, tablodan veritabanına dönüştürme algoritmasını kullanmak, manuel girişlerini otomatikleştirmeye ve kaynaklardan tasarruf etmeye yardımcı olabilir. Bu süreç tipik olarak, taranan belgelerden envanter listesinin taranmasını ve bunları farklı iş kuralları ve koşullarına göre belirli veritabanı tablolarına aktarmayı içerir.
  3. Anketlerden Veri Çıkarma: Geri bildirim ve diğer değerli bilgileri toplamak için genellikle bir anket yaparız. İşletmeler ve medyadan hükümete ve akademisyenlere kadar bilgi ekonomisiyle uğraşan neredeyse herkes için kritik bir veri ve içgörü kaynağı sağlarlar. Bunlar çevrimiçi olarak toplandığında, kullanıcı yanıtına göre tablo veri durumunu çıkarmak ve bir veritabanına yüklemek kolaydır. Ancak, çoğu durumda, anket yanıtları kağıt üzerindedir. Bu gibi durumlarda, manuel olarak bilgi toplamak ve bunları dijital biçimde depolamak çok zordur. Bu nedenle, bir tablodan veritabanına algoritmalara güvenmek zamandan tasarruf sağlayabilir ve ayrıca ek maliyetleri azaltabilir.

PDF'lerden İlişkisel ve İlişkisel Olmayan Veritabanlarına bilgi nasıl çıkarılır?

Bir PDF dosyası, elektronik olarak oluşturulmuş ve elektronik olarak oluşturulmamış olmak üzere iki farklı tür olarak görülür.

  1. Elektronik PDF'ler: Bu taranmış PDF belgesinde görüntünün arkasında gizli metin olabilir; bunlara ayrıca elektronik olarak oluşturulmuş PDF'ler de denir.
  2. Elektronik olmayan PDF'ler: Bu türde, resim olarak kodlanmış daha fazla içerik görüyoruz. Bu, bir PDF dosyasına taranmış basılı bir belgeniz olduğunda geçerlidir.

İlk tür için (elektronik olarak oluşturulmuş) Python ve Java gibi basit programlama dillerine ve çerçevelerine güvenebiliriz. Elektronik olarak oluşturulmamış PDF'ler için OCR ve derin öğrenme ile Computer Vision tekniklerini kullanmamız gerekecek. Ancak, bu algoritmalar tüm tablo çıkarma algoritmaları için aynı olmayabilir ve daha yüksek doğruluk elde etmek için veri türüne bağlı olarak değişmeleri gerekecektir. NLP (Doğal Dil İşleme), tabloların içindeki verileri anlamak ve bazı durumlarda çıkarmak için de kullanılır.

Öte yandan, iki tür veri tabanı vardır (ilişkisel ve ilişkisel olmayan); bu veritabanlarının her birinin mimarisine bağlı olarak farklı kural kümeleri vardır. İlişkisel bir veritabanı yapılandırılmıştır, yani veriler tablolarda düzenlenir. Birkaç örnek MySQL, Postgres vb.

Buna karşılık, ilişkisel olmayan veritabanı belge odaklıdır, yani tüm bilgiler daha çok bir çamaşır listesi düzeninde depolanır. Tek bir oluşturucu belgesinde, tüm verilerinizi listelemiş olacaksınız - örneğin, MongoDB.

Belgeler elektronik olarak oluşturulduğunda bir veritabanına PDF

Tartışıldığı gibi, elektronik olarak oluşturulmuş PDF'ler için tabloları çıkarma işlemi basittir. Buradaki fikir, tabloları çıkarmak ve ardından bunları dönüştürmek veya tablolara eklemek için basit komut dosyaları kullanmaktır. PDF'lerden tablo çıkarma için öncelikle iki teknik vardır.

Teknik #1 Akış: Algoritma, bir tablo yapısını simüle etmek için hücreler arasındaki boşluklara dayalı olarak tablolar arasında ayrıştırır ve metnin nerede bulunmadığını belirler. PDFMiner'ın bir sayfadaki karakterleri kenar boşluklarını kullanarak sözcüklere ve cümlelere ayırma işlevi üzerine kurulmuştur. Bu teknikte, ilk olarak, bazı metinlerin y ekseni konumuna (yani yükseklik) dayalı olarak kaba tahminler yapılarak satırlar tespit edilir. Aynı satırdaki tüm metinler aynı satırın parçası olarak kabul edilir. Ardından, okuyucu gruplandırılır ve tablodaki sütunları tanımlamak için farklı bir grup olarak bir araya getirilir. Son olarak, önceki adımlarda tespit edilen satır ve sütunlara dayalı olarak tablo bir araya getirilir.

Teknik #2 Kafes: Akışın aksine, Kafes daha belirleyicidir. Yani tahminlere dayanmaz; önce hücreler arasında tanımlanmış çizgiler olan tablolar arasında ayrıştırır. Ardından, bir sayfada bulunan birden çok tabloyu otomatik olarak ayrıştırabilir. Bu teknik esasen çokgenlerin şekline bakarak ve tablo hücrelerinin içindeki metni tanımlayarak çalışır. Bir PDF'nin çokgenleri tanımlayabilen bir özelliği varsa bu basit olurdu. Olsaydı, içinde ne olduğunu okumak için makul bir yöntem olurdu. Ancak öyle değil. Bu nedenle, bilgisayar görüşü bu şekilleri tanımlamak ve tablonun içeriğini çıkarmak için yaygın olarak kullanılmaktadır.

Ayıklanan tablolar öncelikle bir veri çerçevesi biçiminde kaydedilir. En popüler Python kitaplığı pandalarından biri tarafından sunulan yerel veri türlerinden biridir. Tablo verilerini bir veri çerçevesinde depolamanın birkaç avantajı vardır. Kolayca işlenebilir, işlenebilir ve JSON, CSV veya tablolar gibi farklı biçimlere aktarılabilirler. Ancak bu veri çerçevelerini tablolara göndermeden önce, önce DB-Client veritabanına bağlanmalı ve ardından tabloyu geçirmeliyiz. Python gibi dilleri kullanarak bu veri kaynaklarına bağlanabilen ve verileri dışa aktarabilen birkaç kitaplık bulabiliriz.

Belgeler elektronik olmayan şekilde oluşturulduğunda veritabanına PDF

Buradaki veriler farklı bir kaynak aracılığıyla manuel olarak tarandığından, yukarıda tartışılan teknikler elektronik olarak oluşturulmamış PDF'ler için çalışmayabilir. Bu nedenle taranan belgelerden veri çıkarmak ve veritabanlarına aktarmak için OCR ve Derin Öğrenme tekniklerini kullanacağız.

Kısacası, Optik Karakter Tanıma, OCR, taranan belgelerden yazdırılan harfleri düzenlenebilir metne dönüştüren özel bir araçtır. Belgelerden PDF tablolarını tanımlamak için önce tablonun konumunu belirlememiz ve ardından tablo hücrelerinden veri çıkarmak için OCR uygulamamız gerekir. Bunun nasıl elde edildiğine ilişkin adımlar şunlardır:

  1. İlk olarak yatay ve dikey konturlar uygulayarak çizgi parçalarını tespit ederiz.
  2. Çizgiler arasındaki çizgi kesişimleri, tüm çizgilerin piksellerinin yoğunluğuna bakılarak tespit edilir. Bir çizgi pikseli, pikselin geri kalanından daha fazla yoğunluğa sahipse, iki çizginin parçasıdır ve dolayısıyla bir kesişimdir.
  3. Tablonun kenarları, kesişen çizgilerin piksellerinin yoğunluğuna bakılarak belirlenir. Burada bir çizginin tüm pikselleri alınır ve en dıştaki çizgiler tablonun sınırlarını temsil eder.
  4. Görüntü analizi, hücrelerin belirlendiği PDF koordinatlarına çevrilir. Metin, x ve y koordinatlarına göre bir hücreye atanır.
  5. Metni çıkarmak için koordinatlara OCR uygulanır
  6. Çıkarılan metin, tablonun konumuna dayalı olarak bir veri çerçevesine aktarılır.

CV kullanarak tabloları bu şekilde çıkarabiliriz. Ancak burada birkaç dezavantaj var. Bu algoritmalar, büyük tablolar ve farklı şablon stillerine sahip tablolar için başarısız olur. Derin öğrenmenin devreye girdiği yer burasıdır; verilerden öğrenmek ve öğrenmelere dayalı benzer kalıpları belirlemek için özel bir tür sinir ağı çerçevesi kullanırlar. Son on yılda, özellikle bilgi çıkarma gibi görevler için son teknoloji performans elde ettiler. Şimdi, sinir ağlarının verilerden ne kadar derin bilgi edinebileceğine ve herhangi bir belgeden tablolar çıkarabileceğine bakalım.

Derin sinir ağlarının eğitimi, belirli bir iş akışını içerir; bu iş akışları, genellikle birlikte çalıştığımız veri türüne ve modellerinin performansına göre değiştirilir. İş akışının ilk aşaması, verilerin toplanmasını ve modelimize göre işlenmesini içerir. Tabloları PDF belgelerinden çıkarma durumumuzda, veri kümesi ideal olarak yapılandırılmamış belgeler içermelidir. Bu belgeler görüntüye dönüştürülür, tensör olarak yüklenir ve eğitim için veri yükleyici sınıfı olarak hazır hale getirilir. Daha sonra, genellikle eğitim için gerekli olan tüm hiper parametreleri tanımlarız. Bunlar genellikle model için parti boyutunun, kayıp fonksiyonunun ve optimize edicinin ayarlanmasını içerir. Son olarak, önceden tanımlanmış bir modelin üzerine bir sinir ağı mimarisi tanımlanır veya oluşturulur. Bu model, verilere dayalı olarak eğitilecek ve performans ölçütlerine göre ince ayar yapılacaktır.

Aşağıda, bir derin öğrenme modelinin eğitiminde yer alan farklı adımların ekran görüntüsü verilmiştir:

Tipik ML İş Akışı (Kaynak)

Python kullanarak pdf'den veri çıkarma ve SQL veritabanına aktarma

Şimdiye kadar, pdf'den veritabanına dönüştürmenin ne olduğunu öğrendik ve yardımcı olabileceği bazı kullanım durumlarını tartıştık. Bu bölüm, Computer Vision kullanarak bu soruna pratik olarak yaklaşacak ve taranan pdf'lerdeki tabloları algılayacak ve bunları veritabanlarına aktaracaktır. Devam etmek için yerel makinenize Python ve OpenCV yüklediğinizden emin olun. Alternatif olarak, çevrimiçi bir Google Collab not defteri kullanabilirsiniz.

1. Adım: Tabula ve Pandaları Kurun

Bu örnekte, tabloları çıkarmak ve veritabanlarına göndermek için Tabula ve Panda'ları kullanacağız. Bunları pip ile kurup programımıza aktaralım.

import tabula
import pandas as pd

Adım 2: Tabloları Dataframe'e Okuma

Şimdi, kullanacağız read_pdf PDF'lerden tabloları okumak için tablodan işlev; bu kitaplığın yalnızca elektronik olarak oluşturulmuş PDF belgeleri üzerinde çalıştığını unutmayın. Kod parçacığı aşağıdadır:

table = tabula.read_pdf("sample.pdf",pages='all',multiple_tables=False)

df = pd.concat(table)

Burada gördüğümüz gibi, önce PDF dosyasının içeriğini okumak için kullanıyoruz, parametreyi ayarlıyoruz multiple_tables False olarak, örnekte kullanılan belgede yalnızca bir tablo olduğundan.

Şimdi bu listeyi pandaları kullanarak bir veri çerçevesine yükleyeceğiz ve type metodunu kullanarak tablonun tipini kontrol edebilirsiniz; bu, yerel bir panda veri çerçevesi döndürür.

Adım 3: Dataframe'i Postres'e Taşıma

Tablomuzu veritabanlarına göndermeden önce ilk olarak programımızdan tabloya bir bağlantı kurmalıyız ve bunu aşağıdakileri kullanarak yapabiliriz. sqlalchemy python'da istemci. Benzer şekilde, farklı programlama dilleri, bu tür veritabanı istemcilerinin veritabanlarıyla doğrudan programlarımızdan etkileşim kurmasını sağlar.

Bu programda kullanacağımız create_engine veritabanına bağlanmamızı sağlayan yöntem; Bu çalışmayı sağlamak için verilen dizedeki veritabanı kimlik bilgilerini değiştirdiğinizden emin olun. Daha sonra, write_frame çıkarılan tabloyu bağlı veritabanına aktarma işlevi.

engine = create_engine('postgresql+psycopg2://username:password@host:port/database')

sql.write_frame(df, 'table_name', con, flavor='postgresql')

Ve aynen böyle, tabloları PDF'lerden veri tabanına aktarabildik, elektronik olarak oluşturulmuş basit işlenmiş bir PDF kullandığımız için bu oldukça basit ve kolay görünüyor. Elektronik olarak oluşturulmamış tablolardan tablo çıkarmak için kullanılabilecek popüler derin öğrenme teknikleri şunlardır:

  1. Kodlu Kağıtlar – GFTE: Grafik Tabanlı Mali Tablo Çıkarımı
  2. Kodlu Makaleler – PubTables-1M: Tablo çıkarma modellerini eğitmek ve değerlendirmek için evrensel bir veri kümesine ve ölçümlere doğru
  3. TableNet: Uçtan uca Tablo algılama için Derin Öğrenme modeli ve Taranan Belge Görüntülerinden Tablo veri çıkarma

Nanonetlere Girin: PDF Tablosunu Veritabanına Dönüştürme için Gelişmiş OCR

Bu bölüm, Nanonet'lerin veritabanına tabloları daha özelleştirilebilir ve daha kolay bir şekilde gerçekleştirmemize nasıl yardımcı olabileceğine bakacaktır.

Nanonets™, yapay zeka kullanarak manuel veri girişinizi otomatikleştirmenize yardımcı olabilecek bulut tabanlı bir OCR'dir. OCR modellerimizi verilerimiz üzerinde oluşturabileceğimiz/eğitebileceğimiz ve bunları JSON/CSV veya istenilen herhangi bir formatta taşıyabileceğimiz bir panomuz olacak. Nanonet'leri PDF belge tarayıcı olarak kullanmanın avantajlarından bazıları şunlardır.

Nanonets'in öne çıkan özelliklerinden biri, hizmetin getirdiği basitliktir. Herhangi bir programlama arka planı olmadan bu hizmetleri seçebilir ve en son teknoloji ile PDF verilerini kolayca alabilirsiniz. Aşağıda, PDF'yi veritabanına dönüştürmenin ne kadar kolay olduğunun kısa bir özeti yer almaktadır.

1 Adım: nanonets.com'a gidin ve kaydolun/oturum açın.

PDF Verilerini Veritabanı Girişlerine Dönüştürün PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

2 Adım: Kayıttan sonra, önceden oluşturulmuş çıkarıcıları kullanabileceğiniz veya veri kümenizi kullanarak kendi başımıza bir tane oluşturabileceğiniz "Başlamak için seçin" alanına gidin. Burada, Fatura önceden oluşturulmuş fatura çıkarıcıyı kullanacağız.

PDF Verilerini Veritabanı Girişlerine Dönüştürün PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

3 Adım: Veri çıkarma işlemini gerçekleştirmek ve otomatik çıkarma seçeneğini belirlemek için görüntülerin PDF'sini yükleyin.

PDF Verilerini Veritabanı Girişlerine Dönüştürün PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

4. Adım: Ayıklanan verileri veritabanına aktarmak için yeni bir MySQL entegrasyonu entegrasyonu oluşturun. Alternatif olarak, seçtiğiniz veritabanlarına göre çeşitli seçenekler seçebilirsiniz.

PDF Verilerini Veritabanı Girişlerine Dönüştürün PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Veri bağlantısı kurun ve entegrasyon ekle'yi tıklayın. Bununla, dosyalar yüklendiğinde veriler ayıklanacak ve otomatik olarak bir veritabanına yüklenecektir. Gerekli entegrasyonları bulamazsanız, her zaman Nanonets API'sini kullanabilir ve otomasyonu tamamlamak için basit komut dosyaları yazabilirsiniz.

Zaman Damgası:

Den fazla AI ve Makine Öğrenimi