Konwertuj dane PDF na wpisy w bazie danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Konwertuj dane PDF na wpisy bazy danych

Kilka organizacji i firm korzysta z dokumentów PDF do udostępniania ważnych dokumentów, takich jak faktury, paski wypłat, finanse, zlecenia pracy, pokwitowania i inne. Jednak pliki PDF nie są najlepszymi formatami do przechowywania danych historycznych, ponieważ nie można ich łatwo wyeksportować i uporządkować w przepływy pracy. Dlatego ludzie używają algorytmów ekstrakcji informacji do digitalizacji plików PDF i zeskanowanych dokumentów do ustrukturyzowanych formatów, takich jak JSON, CSV, tabele lub Excel, które można łatwo przekonwertować na inne organizacyjne przepływy pracy.

W niektórych przypadkach pliki PDF zawierają niezbędne informacje do przetworzenia w różnych systemach ERP, CMS i innych systemach opartych na bazach danych. Niestety dokumenty PDF nie mają łatwej funkcji PDF do bazy danych, a pisanie skryptów lub budowanie przepływu pracy wokół tego zadania jest nieco skomplikowane. To tutaj pojawiają się algorytmy OCR i Deep Learning (DL), aby wyodrębnić dane z tych formatów PDF i wyeksportować je do bazy danych. W tym poście na blogu przyjrzymy się różnym sposobom, w jaki można to osiągnąć, korzystając z technologii DL oraz niektórych popularnych interfejsów API na rynku.

Co to jest konwersja plików PDF do bazy danych?

Konwersja PDF do bazy danych polega na wyeksportowaniu danych z plików PDF do bazy danych, takiej jak Postgres, Mongo, MySQL itp.

Załóżmy, że mamy zbudować aplikację internetową lub system ERP, który przechowuje i przechowuje informacje o fakturach z różnych źródeł. Ręczne dodawanie historycznych faktur do bazy danych jest trudnym zadaniem i jest bardzo podatne na błędy. Z drugiej strony użycie prostego OCR może nie wydobyć dokładnie tabel z faktur.

Tutaj przydaje się zaawansowana konwersja plików PDF do bazy danych oparta na sztucznej inteligencji!

Czy ten oparty na sztucznej inteligencji proces konwersji plików PDF do bazy danych może być zautomatyzowany? - Tak.

W poniższych sekcjach używamy wizji komputerowej i głębokiego uczenia się, aby wykrywać regiony stołu ze skanowanych dokumentów. Tabele te są dalej przechowywane w określonym formacie danych, takim jak CSV lub Excel, i zostaną przesłane bezpośrednio do baz danych.

Zanim je omówimy, zrozumiemy kilka przypadków użycia, w których wykrywanie plików PDF do bazy danych może być przydatne.

Różne przypadki użycia plików PDF do baz danych

Bazy danych to najlepsze sposoby przechowywania informacji zarówno w chmurze, jak i w pamięci lokalnej. Pozwalają nam wykonywać różne operacje i manipulacje za pomocą prostych zapytań. Oto kilka przypadków użycia, które można znacznie zoptymalizować dzięki automatycznemu przepływowi pracy konwersji plików PDF do bazy danych:

  1. Zarządzanie fakturami w Internecie: Firmy i organizacje mają do czynienia z kilkoma fakturami każdego dnia; i trudno im ręcznie przetworzyć każdą fakturę. Czasami wystawiają i odbierają faktury w formacie innym niż cyfrowy, co utrudnia ich śledzenie. Dlatego opierają się na aplikacjach internetowych, które mogą przechowywać wszystkie ich faktury w jednym miejscu. Konwerter plików PDF na bazę danych może zautomatyzować pobieranie danych z faktur do aplikacji internetowej. Aby skutecznie zautomatyzować te zadania, moglibyśmy uruchomić zadania cron i zintegrować je z usługami innych firm, takimi jak n8n i Zapier – gdy nowa faktura zostanie zeskanowana i przesłana, może uruchomić algorytm i automatycznie umieścić ją w tabelach.
  2. Zarządzanie zapasami EComt: Wiele procesów zarządzania zapasami w e-com nadal odbywa się poprzez ręczne wprowadzanie produktów z plików PDF i zeskanowanych kopii. Muszą jednak przesłać wszystkie swoje dane do oprogramowania do zarządzania rozliczeniami, aby śledzić wszystkie swoje produkty i sprzedaż. Dlatego użycie algorytmu konwersji tabeli do bazy danych może pomóc zautomatyzować ich ręczne wprowadzanie i zaoszczędzić zasoby. Ten proces zazwyczaj obejmuje skanowanie listy inwentarzowej zeskanowanych dokumentów i eksportowanie ich do określonych tabel bazy danych na podstawie różnych reguł i warunków biznesowych.
  3. Wyodrębnianie danych z ankiet: Aby zebrać opinie i inne cenne informacje, zwykle przeprowadzamy ankietę. Stanowią krytyczne źródło danych i spostrzeżeń dla prawie wszystkich osób zaangażowanych w gospodarkę informacyjną, od firm i mediów po władze i naukowców. Gdy są one gromadzone online, łatwo jest wyodrębnić stan danych tabeli na podstawie odpowiedzi użytkownika i przesłać go do bazy danych. Jednak w większości przypadków odpowiedzi na ankiety są na papierze. W takich przypadkach bardzo trudno jest ręcznie zbierać informacje i przechowywać je w formacie cyfrowym. Dlatego poleganie na algorytmach od tabeli do bazy danych może zaoszczędzić czas, a także obniżyć dodatkowe koszty.

Jak wyodrębnić informacje z plików PDF do relacyjnych i nierelacyjnych baz danych?

Plik PDF jest postrzegany jako dwa różne typy, generowany elektronicznie i generowany nieelektronicznie.

  1. Elektroniczne pliki PDF: ten zeskanowany dokument PDF może zawierać ukryty tekst za obrazem; są one również nazywane elektronicznie generowanymi plikami PDF.
  2. Nieelektroniczne pliki PDF: w tym typie widzimy więcej treści zakodowanych na stałe jako obrazy. Dzieje się tak, gdy masz papierowy dokument zeskanowany do pliku PDF.

W przypadku pierwszego typu (generowanego elektronicznie) mogliśmy polegać na prostych językach programowania i frameworkach, takich jak Python i Java. W przypadku nieelektronicznie generowanych plików PDF będziemy musieli wykorzystać techniki widzenia komputerowego z OCR i głębokim uczeniem. Jednak te algorytmy mogą nie być takie same dla wszystkich algorytmów wyodrębniania tabeli i będą musiały ulec zmianie w zależności od typu danych, aby uzyskać wyższą dokładność. NLP (przetwarzanie języka naturalnego) jest również wykorzystywane do zrozumienia danych w tabelach i wyodrębnienia ich w niektórych przypadkach.

Z drugiej strony istnieją dwa rodzaje baz danych (relacyjne i nierelacyjne); każda z tych baz danych ma różne zestawy reguł w oparciu o ich architekturę. Relacyjna baza danych ma strukturę, co oznacza, że ​​dane są zorganizowane w postaci tabel. Kilka przykładów to MySQL, Postgres itp.

W przeciwieństwie do tego, nierelacyjna baza danych jest zorientowana na dokumenty, co oznacza, że ​​wszystkie informacje są przechowywane w bardziej uporządkowanej kolejności. W jednym dokumencie konstruktora będą wymienione wszystkie dane — na przykład MongoDB.

PDF do bazy danych, gdy dokumenty są generowane elektronicznie

Jak wspomniano, w przypadku elektronicznie generowanych plików PDF proces wyodrębniania tabel jest prosty. Chodzi o to, aby wyodrębnić tabele, a następnie za pomocą prostych skryptów je przekonwertować lub dodać do tabel. W przypadku wyodrębniania tabeli z plików PDF istnieją przede wszystkim dwie techniki.

Technika nr 1 Strumień: Algorytm analizuje tabele w oparciu o odstępy między komórkami, aby symulować strukturę tabeli — identyfikując, gdzie nie ma tekstu. Jest on oparty na funkcjonalności PDFMiner polegającej na grupowaniu znaków na stronie w słowa i zdania przy użyciu marginesów. W tej technice najpierw wiersze są wykrywane przez zgrubne domysły na podstawie pozycji tekstu na osi y (tj. wysokości). Cały tekst w tym samym wierszu jest uważany za część tego samego wiersza. Następnie czytnik jest grupowany i składany razem jako inna grupa, aby zidentyfikować kolumny w tabeli. Wreszcie tabela jest zestawiana razem na podstawie wierszy i kolumn wykrytych we wcześniejszych krokach.

Technika nr 2 Krata: W przeciwieństwie do strumienia, Krata jest bardziej deterministyczna. Oznacza to, że nie opiera się na domysłach; najpierw analizuje tabele, które mają zdefiniowane linie między komórkami. Następnie może automatycznie analizować wiele tabel obecnych na stronie. Ta technika działa zasadniczo na podstawie kształtu wielokątów i identyfikacji tekstu wewnątrz komórek tabeli. Byłoby to proste, gdyby plik PDF miał funkcję identyfikującą wielokąty. Gdyby tak było, prawdopodobnie miałby sposób na odczytanie tego, co jest w środku. Jednak tak nie jest. W związku z tym do identyfikacji tych kształtów i wyodrębnienia zawartości tabeli szeroko wykorzystuje się widzenie komputerowe.

Wyodrębnione tabele są przede wszystkim zapisywane w formacie ramki danych. Jest to jeden z natywnych typów danych oferowanych przez jedną z najpopularniejszych pand bibliotek Pythona. Istnieje kilka zalet przechowywania danych z tabeli w ramce danych. Można je łatwo obsługiwać, manipulować i eksportować do różnych formatów, takich jak JSON, CSV lub tabele. Jednak zanim wypchniemy te ramki danych do tabel, powinniśmy najpierw połączyć się z bazą danych DB-Client, a następnie przeprowadzić migrację tabeli. Używając języków takich jak Python, możemy znaleźć kilka bibliotek, które mogą łączyć się z tymi źródłami danych i eksportować dane.

PDF do bazy danych, gdy dokumenty są generowane w sposób nieelektroniczny

Omówione powyżej techniki mogą nie działać w przypadku plików PDF generowanych nieelektronicznie, ponieważ dane tutaj są ręcznie skanowane z innego źródła. Dlatego będziemy używać technik OCR i Deep Learning do wyodrębniania danych ze zeskanowanych dokumentów i eksportowania ich do baz danych.

W skrócie, optyczne rozpoznawanie znaków, OCR to specjalne narzędzie, które konwertuje drukowane litery z zeskanowanych dokumentów na tekst do edycji. Aby zidentyfikować tabele PDF z dokumentów, najpierw musimy określić pozycję tabeli, a następnie zastosować OCR, aby wyodrębnić dane z komórek tabeli. Oto kroki, jak to osiągnąć:

  1. Najpierw wykrywamy odcinki linii, stosując kontury poziome i pionowe.
  2. Przecięcia linii między liniami są wykrywane przez obserwację intensywności pikseli wszystkich linii. Jeśli piksel linii ma większą intensywność niż reszta piksela, jest częścią dwóch linii, a zatem jest przecięciem.
  3. Krawędzie stołu określa się, patrząc na intensywność pikseli przecinanych linii. Tutaj brane są wszystkie piksele linii, a najbardziej zewnętrzne linie reprezentują granice stołu.
  4. Analiza obrazu jest tłumaczona na współrzędne PDF, gdzie określane są komórki. Tekst jest przypisywany do komórki na podstawie jej współrzędnych x i y.
  5. OCR jest stosowany do współrzędnych w celu wyodrębnienia tekstu
  6. Wyodrębniony tekst jest eksportowany do ramki danych na podstawie pozycji tabeli.

W ten sposób możemy wyodrębnić tabele za pomocą CV. Istnieje jednak kilka wad. Te algorytmy zawodzą w przypadku dużych tabel i tabel z różnymi stylami szablonów. Tu właśnie pojawia się głębokie uczenie; używają specjalnego rodzaju struktury sieci neuronowej, aby uczyć się na podstawie danych i identyfikować podobne wzorce w oparciu o zdobyte informacje. W ciągu ostatniej dekady osiągnęli najnowocześniejszą wydajność, zwłaszcza w przypadku zadań takich jak ekstrakcja informacji. Przyjrzyjmy się teraz, jak głębokie sieci neuronowe mogą uczyć się na podstawie danych i wyodrębniać tabele z dowolnego dokumentu.

Szkolenie głębokich sieci neuronowych obejmuje określony przepływ pracy; te przepływy pracy są często zmieniane w zależności od typu danych, z którymi pracujemy i wydajności ich modelu. Pierwsza faza przepływu pracy polega na zbieraniu danych i przetwarzaniu ich w oparciu o nasz model. W naszym przypadku wyodrębniania tabel z dokumentów PDF zestaw danych powinien w idealnym przypadku zawierać dokumenty nieustrukturyzowane. Dokumenty te są konwertowane na obrazy, ładowane jako tensory i przygotowywane jako klasa ładowania danych do szkolenia. Następnie zwykle definiujemy wszystkie hiperparametry, które są wymagane do uczenia. Obejmują one zwykle ustawienie wielkości partii, funkcji strat, optymalizatora dla modelu. Wreszcie, architektura sieci neuronowej jest definiowana lub budowana na podstawie wcześniej zdefiniowanego modelu. Ten model zostanie przeszkolony na podstawie danych i dostrojony na podstawie metryk wydajności.

Poniżej znajduje się zrzut ekranu różnych kroków związanych z trenowaniem modelu głębokiego uczenia:

Typowy przepływ pracy ML (Źródło)

Wyodrębnianie danych z pdf i eksportowanie ich do bazy danych SQL za pomocą Pythona

Do tej pory dowiedzieliśmy się, czym jest konwersja pdf do bazy danych i omówiliśmy kilka przypadków użycia, w których może to być pomocne. Ta sekcja praktycznie podejdzie do tego problemu za pomocą Computer Vision i wykryje tabele w zeskanowanych plikach PDF i wyeksportuje je do baz danych. Aby kontynuować, upewnij się, że zainstalowałeś Python i OpenCV na swoim komputerze lokalnym. Możesz też skorzystać z internetowego notatnika Google Collab.

Krok 1: Zainstaluj Tabulę i Pandy

W tym przykładzie użyjemy Tabuli i Pand do wyodrębnienia i wypychania tabel do baz danych. Zainstalujmy je przez pip i zaimportujmy do naszego programu.

import tabula
import pandas as pd

Krok 2: Wczytywanie tabel do Dataframe

Teraz będziemy używać read_pdf funkcja z tabuli do czytania tabel z plików PDF; zauważ, że ta biblioteka działa tylko w dokumentach PDF, które są generowane elektronicznie. Oto fragment kodu:

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

df = pd.concat(table)

Tutaj, jak widać, najpierw używamy do odczytania zawartości pliku PDF, ustawiamy parametr multiple_tables na False, ponieważ dokument użyty w przykładzie ma tylko jedną tabelę.

Teraz załadujemy tę listę do ramki danych za pomocą pand i możesz sprawdzić typ tabeli, używając metody typu; to zwróci natywną ramkę danych pandy.

Krok 3: Migracja Dataframe do Postres

Zanim wypchniemy naszą tabelę do baz danych, najpierw powinniśmy nawiązać z nią połączenie z naszego programu i możemy to zrobić za pomocą sqlalchemy klient w Pythonie. Podobnie różne języki programowania oferują tego rodzaju klientom bazy danych interakcję z bazami danych bezpośrednio z naszych programów.

W tym programie będziemy używać create_engine metoda, która pozwala nam połączyć się z bazą danych; upewnij się, że zastąpiłeś poświadczenia bazy danych w podanym ciągu, aby to zadziałało. Następnie używamy write_frame funkcja eksportu wyodrębnionej tabeli do podłączonej bazy danych.

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

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

I tak po prostu udało nam się wyeksportować tabele z plików PDF do bazy danych, wygląda to całkiem prosto i łatwo, ponieważ użyliśmy prostego przetworzonego elektronicznie wygenerowanego pliku PDF. Poniżej przedstawiono popularne techniki uczenia głębokiego, które można wykorzystać do wyodrębniania tabel z tabel generowanych nieelektronicznie:

  1. Papers with Code – GFTE: Ekstrakcja tabel finansowych na podstawie wykresów
  2. Papers with Code – PubTables-1M: W kierunku uniwersalnego zbioru danych i metryk do uczenia i oceny modeli wyodrębniania tabel
  3. TableNet: Model Deep Learning do kompleksowego wykrywania tabel i ekstrakcji danych tabelarycznych ze skanowanych obrazów dokumentów

Wprowadź Nanonets: zaawansowany OCR dla konwersji tabeli PDF do bazy danych

W tej sekcji przyjrzymy się, w jaki sposób Nanonets może pomóc nam tworzyć tabele w bazie danych w bardziej konfigurowalny i łatwiejszy sposób.

Nanonets™ to OCR w chmurze, który może pomóc zautomatyzować ręczne wprowadzanie danych za pomocą sztucznej inteligencji. Będziemy mieć pulpit nawigacyjny, w którym będziemy mogli budować / trenować nasze modele OCR na naszych danych i transportować je w formacie JSON/CSV lub dowolnym innym pożądanym formacie. Oto niektóre z zalet używania Nanonets jako skanera dokumentów PDF.

Jedną z najważniejszych cech Nanonets jest prostota, jaką zapewnia usługa. Można zdecydować się na te usługi bez żadnego zaplecza programistycznego i łatwo wyodrębnić dane PDF przy użyciu najnowocześniejszej technologii. Poniżej znajduje się krótki opis tego, jak łatwo jest przekonwertować plik PDF na bazę danych.

Krok 1: Wejdź na nanonets.com i zarejestruj się/zaloguj.

Konwertuj dane PDF na wpisy w bazie danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Krok 2: Po rejestracji przejdź do obszaru „Wybierz, aby rozpocząć”, gdzie możesz skorzystać z gotowych ekstraktorów lub stworzyć je samodzielnie, korzystając ze swojego zestawu danych. Tutaj będziemy używać gotowego ekstraktora faktur.

Konwertuj dane PDF na wpisy w bazie danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Krok 3: Prześlij PDF obrazów, aby przeprowadzić ekstrakcję danych i wybierz opcję automatycznego wyodrębniania.

Konwertuj dane PDF na wpisy w bazie danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Krok 4: Utwórz nową integrację integracji MySQL, aby wyeksportować wyodrębnione dane do bazy danych. Alternatywnie możesz wybrać różne opcje w oparciu o wybrane przez siebie bazy danych.

Konwertuj dane PDF na wpisy w bazie danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Nawiąż połączenie danych i kliknij dodaj integrację. Dzięki temu dane zostaną wyodrębnione i automatycznie przesłane do bazy danych za każdym razem, gdy przesyłane są pliki. Jeśli nie znajdziesz wymaganych integracji, zawsze możesz użyć interfejsu API Nanonets i napisać proste skrypty, aby wykonać automatyzację.

Znak czasu:

Więcej z AI i uczenie maszynowe