Konvertieren Sie PDF-Daten in Datenbankeinträge PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Konvertieren Sie PDF-Daten in Datenbankeinträge

Mehrere Organisationen und Unternehmen verlassen sich auf PDF-Dokumente, um wichtige Dokumente wie Rechnungen, Gehaltsabrechnungen, Finanzdaten, Arbeitsaufträge, Quittungen und mehr zu teilen. PDFs sind jedoch nicht die bevorzugten Formate zum Speichern historischer Daten, da sie nicht einfach exportiert und in Workflows organisiert werden können. Daher verwenden Menschen Informationsextraktionsalgorithmen, um PDFs und gescannte Dokumente in strukturierte Formate wie JSON, CSV, Tabellen oder Excel zu digitalisieren, die leicht in andere organisatorische Arbeitsabläufe konvertiert werden können.

In einigen Fällen enthalten PDFs wichtige Informationen, die in verschiedenen ERPs, CMS und anderen datenbankgesteuerten Systemen verarbeitet werden müssen. Leider haben PDF-Dokumente keine einfache PDF-zu-Datenbank-Funktion, und das Schreiben von Skripten oder das Erstellen eines Workflows um diese Aufgabe herum ist etwas kompliziert. Hier kommen OCR- und Deep Learning (DL)-Algorithmen ins Spiel, um Daten aus diesen PDF-Formaten zu extrahieren und in eine Datenbank zu exportieren. In diesem Blogbeitrag werden wir uns verschiedene Möglichkeiten ansehen, wie Sie dies erreichen können, indem Sie DL-Technologien sowie einige beliebte APIs auf dem Markt verwenden.

Was ist PDF-zu-Datenbank-Konvertierung?

PDF to Database Conversion ist die Aufgabe, Daten aus PDFs in eine Datenbank wie Postgres, Mongo, MySQL usw. zu exportieren.

Angenommen, wir würden eine Webanwendung oder ein ERP-System erstellen, das Rechnungsinformationen aus verschiedenen Quellen enthält und verwaltet. Das manuelle Hinzufügen historischer Rechnungen zu einer Datenbank ist eine schwierige Aufgabe und sehr fehleranfällig. Auf der anderen Seite kann die Verwendung einer einfachen OCR Tabellen aus Rechnungen möglicherweise nicht genau extrahieren.

Hier kommt die fortschrittliche KI-gesteuerte PDF-zu-Datenbank-Konvertierung ins Spiel!

Kann dieser KI-gesteuerte PDF-zu-Datenbank-Konvertierungsprozess automatisiert werden? - Ja.

In den folgenden Abschnitten verwenden wir Computer Vision und Deep Learning, um Tabellenbereiche aus gescannten Dokumenten zu erkennen. Diese Tabellen werden außerdem in einem bestimmten Datenformat wie CSV oder Excel gespeichert und direkt in Datenbanken übertragen.

Bevor wir diese diskutieren, lassen Sie uns einige Anwendungsfälle verstehen, in denen die PDF-zu-Datenbank-Erkennung nützlich sein kann.

Verschiedene Anwendungsfälle für PDF to Databases

Datenbanken sind die beste Möglichkeit, Informationen sowohl in der Cloud als auch im lokalen Speicher zu speichern. Sie ermöglichen es uns, verschiedene Operationen und Manipulationen mit einfachen Abfragen durchzuführen. Hier sind einige Anwendungsfälle, die mit einem automatisierten PDF-zu-Datenbank-Konvertierungs-Workflow stark optimiert werden könnten:

  1. Rechnungsverwaltung im Web: Unternehmen und Organisationen haben täglich mit mehreren Rechnungen zu tun; und es ist schwierig für sie, jede Rechnung manuell zu bearbeiten. Außerdem stellen und erhalten sie manchmal Rechnungen in einem nicht digitalen Format, was ihre Nachverfolgung erschwert. Daher verlassen sie sich auf webbasierte Anwendungen, die alle ihre Rechnungen an einem Ort speichern können. Ein PDF-zu-Datenbank-Konverter könnte die Datenextraktion aus den Rechnungen in die Webanwendung automatisieren. Um diese Aufgaben effizient zu automatisieren, könnten wir Cron-Jobs ausführen und sie in Dienste von Drittanbietern wie n8n und Zapier integrieren – wenn eine neue Rechnung gescannt und hochgeladen wird, kann sie den Algorithmus ausführen und sie automatisch in Tabellen verschieben.
  2. ECom Bestandsverwaltungt: Ein Großteil der E-Com-Bestandsverwaltung läuft immer noch über die manuelle Eingabe von Produkten aus PDFs und gescannten Kopien. Sie müssen jedoch alle ihre Daten in die Abrechnungsverwaltungssoftware hochladen, um alle ihre Produkte und Verkäufe im Auge zu behalten. Daher kann die Verwendung des Konvertierungsalgorithmus von Tabelle zu Datenbank dazu beitragen, ihre manuelle Eingabe zu automatisieren und Ressourcen zu sparen. Dieser Prozess beinhaltet typischerweise das Scannen der Bestandsliste aus gescannten Dokumenten und deren Export in spezifische Datenbanktabellen basierend auf unterschiedlichen Geschäftsregeln und -bedingungen.
  3. Datenextraktion aus Umfragen: Um Feedback und andere wertvolle Informationen zu sammeln, führen wir normalerweise eine Umfrage durch. Sie bieten eine wichtige Quelle für Daten und Erkenntnisse für fast alle, die in der Informationswirtschaft tätig sind, von Unternehmen und Medien bis hin zu Regierungen und Wissenschaftlern. Wenn diese online gesammelt werden, ist es einfach, den Tabellendatenstatus basierend auf der Benutzerantwort zu extrahieren und in eine Datenbank hochzuladen. In den meisten Fällen liegen die Umfrageantworten jedoch auf Papier vor. In solchen Fällen ist es sehr schwierig, Informationen manuell zu sammeln und in einem digitalen Format zu speichern. Daher kann die Verwendung von Tabellen-zu-Datenbank-Algorithmen Zeit sparen und auch zusätzliche Kosten senken.

Wie extrahiert man Informationen aus PDFs in relationale und nicht-relationale Datenbanken?

Eine PDF-Datei wird als zwei verschiedene Arten angesehen, elektronisch generiert und nicht elektronisch generiert.

  1. Elektronische PDFs: Dieses gescannte PDF-Dokument enthält möglicherweise versteckten Text hinter dem Bild; diese werden auch als elektronisch generierte PDFs bezeichnet.
  2. Nicht-elektronische PDFs: Bei diesem Typ sehen wir mehr Inhalte, die als Bilder fest codiert sind. Dies ist der Fall, wenn Sie ein Papierdokument in eine PDF-Datei scannen lassen.

Für den ersten Typ (elektronisch generiert) konnten wir auf einfache Programmiersprachen und Frameworks wie Python und Java zurückgreifen. Für die nicht elektronisch generierten PDFs müssen wir Computer-Vision-Techniken mit OCR und Deep Learning verwenden. Diese Algorithmen sind jedoch möglicherweise nicht für alle Tabellenextraktionsalgorithmen gleich und müssen je nach Datentyp geändert werden, um eine höhere Genauigkeit zu erreichen. NLP (Natural Language Processing) wird auch verwendet, um die Daten in Tabellen zu verstehen und sie in einigen Fällen zu extrahieren.

Andererseits gibt es zwei Arten von Datenbanken (relationale und nicht-relationale); Jede dieser Datenbanken hat basierend auf ihrer Architektur unterschiedliche Regelsätze. Eine relationale Datenbank ist strukturiert, was bedeutet, dass die Daten in Tabellen organisiert sind. Einige Beispiele sind MySQL, Postgres usw.

Im Gegensatz dazu ist die nicht-relationale Datenbank dokumentenorientiert, was bedeutet, dass alle Informationen eher in einer Wäschelistenreihenfolge gespeichert werden. In einem einzigen Konstruktordokument haben Sie alle Ihre Daten aufgelistet – zum Beispiel MongoDB.

PDF in eine Datenbank, wenn Dokumente elektronisch generiert werden

Wie bereits erwähnt, ist der Prozess des Extrahierens von Tabellen für elektronisch generierte PDFs unkompliziert. Die Idee ist, Tabellen zu extrahieren und sie dann mit einfachen Skripten zu konvertieren oder in Tabellen einzufügen. Für die Tabellenextraktion aus PDFs gibt es hauptsächlich zwei Techniken.

Technik Nr. 1 Stream: Der Algorithmus parst Tabellen basierend auf Leerzeichen zwischen Zellen, um eine Tabellenstruktur zu simulieren und zu identifizieren, wo kein Text vorhanden ist. Es basiert auf der Funktionalität von PDFMiner, Zeichen auf einer Seite mithilfe von Rändern in Wörter und Sätze zu gruppieren. Bei dieser Technik werden zuerst die Zeilen erkannt, indem grobe Schätzungen auf der Grundlage der y-Achsen-Position (dh der Höhe) eines Textes gemacht werden. Der gesamte Text in derselben Zeile wird als Teil derselben Zeile betrachtet. Als nächstes wird der Leser gruppiert und als eine andere Gruppe zusammengesetzt, um die Spalten in der Tabelle zu identifizieren. Schließlich wird die Tabelle basierend auf den in früheren Schritten erkannten Zeilen und Spalten zusammengestellt.

Technik Nr. 2 Gitter: Im Gegensatz zum Stream ist Lattice deterministischer. Das heißt, es verlässt sich nicht auf Vermutungen; Zuerst werden Tabellen analysiert, die Linien zwischen Zellen definiert haben. Als nächstes kann es automatisch mehrere Tabellen analysieren, die auf einer Seite vorhanden sind. Diese Technik funktioniert im Wesentlichen, indem sie sich die Form von Polygonen ansieht und den Text in den Tabellenzellen identifiziert. Dies wäre einfach, wenn ein PDF eine Funktion hat, die Polygone erkennen kann. Wenn dies der Fall wäre, hätte es plausibel eine Methode, um zu lesen, was sich darin befindet. Dies ist jedoch nicht der Fall. Daher wird Computervision häufig verwendet, um diese Formen zu identifizieren und den Inhalt der Tabelle zu extrahieren.

Die extrahierten Tabellen werden hauptsächlich in einem Datenrahmenformat gespeichert. Es ist einer der nativen Datentypen, die von einem der beliebtesten Pandas der Python-Bibliothek angeboten werden. Das Speichern von Tabellendaten in einem Datenrahmen hat mehrere Vorteile. Sie können einfach gehandhabt, manipuliert und in verschiedene Formate wie JSON, CSV oder Tabellen exportiert werden. Bevor wir diese Datenrahmen jedoch in Tabellen schieben, sollten wir uns zuerst mit der DB-Client-Datenbank verbinden und dann die Tabelle migrieren. Mithilfe von Sprachen wie Python können wir mehrere Bibliotheken finden, die eine Verbindung zu diesen Datenquellen herstellen und Daten exportieren können.

PDF in die Datenbank, wenn Dokumente nicht elektronisch generiert werden

Die oben besprochenen Techniken funktionieren möglicherweise nicht für nicht elektronisch generierte PDFs, da die Daten hier manuell über eine andere Quelle gescannt werden. Aus diesem Grund werden wir OCR- und Deep-Learning-Techniken verwenden, um Daten aus gescannten Dokumenten zu extrahieren und sie in Datenbanken zu exportieren.

Kurz gesagt, Optical Character Recognition, OCR, ist ein spezielles Tool, das gedruckte Buchstaben aus gescannten Dokumenten in bearbeitbaren Text umwandelt. Um PDF-Tabellen aus Dokumenten zu identifizieren, müssen wir zuerst die Position der Tabelle identifizieren und dann OCR anwenden, um Daten aus Tabellenzellen zu extrahieren. Im Folgenden sind die Schritte aufgeführt, wie dies erreicht wird:

  1. Zuerst erkennen wir die Liniensegmente, indem wir horizontale und vertikale Konturen anwenden.
  2. Die Linienschnittpunkte zwischen Linien werden durch Betrachten der Intensität der Pixel aller Linien erfasst. Weist ein Linienpixel eine höhere Intensität auf als der Rest des Pixels, ist es Teil zweier Linien und damit ein Schnittpunkt.
  3. Die Ränder der Tabelle werden bestimmt, indem die Intensität der Pixel von sich schneidenden Linien betrachtet wird. Hier werden alle Pixel einer Zeile genommen, und die äußersten Zeilen repräsentieren die Grenzen der Tabelle.
  4. Die Bildanalyse wird in die PDF-Koordinaten übersetzt, wo die Zellen bestimmt werden. Der Text wird anhand seiner x- und y-Koordinaten einer Zelle zugeordnet.
  5. OCR wird auf die Koordinaten angewendet, um den Text zu extrahieren
  6. Der extrahierte Text wird basierend auf der Position der Tabelle in einen Datenrahmen exportiert.

So können wir Tabellen mit CV extrahieren. Allerdings gibt es hier ein paar Nachteile. Diese Algorithmen versagen bei großen Tabellen und Tabellen mit unterschiedlichen Vorlagenstilen. Hier kommt Deep Learning ins Spiel; Sie verwenden eine spezielle Art von neuronalem Netzwerk-Framework, um aus Daten zu lernen und ähnliche Muster basierend auf den Erkenntnissen zu identifizieren. In den letzten zehn Jahren haben sie Spitzenleistungen erbracht, insbesondere für Aufgaben wie die Informationsextraktion. Sehen wir uns nun an, wie tiefe neuronale Netze aus Daten lernen und Tabellen aus beliebigen Dokumenten extrahieren können.

Das Training tiefer neuronaler Netze beinhaltet einen bestimmten Arbeitsablauf; Diese Workflows werden häufig basierend auf der Art der Daten, mit denen wir arbeiten, und der Leistung ihres Modells geändert. In der ersten Phase des Workflows werden die Daten gesammelt und auf der Grundlage unseres Modells verarbeitet. In unserem Fall, die Tabellen aus den PDF-Dokumenten zu extrahieren, sollte der Datensatz idealerweise unstrukturierte Dokumente enthalten. Diese Dokumente werden in Bilder konvertiert, als Tensoren geladen und als Dataloader-Klasse für das Training bereitgestellt. Als nächstes definieren wir normalerweise alle Hyperparameter, die für das Training benötigt werden. Dazu gehören normalerweise die Einrichtung der Stapelgröße, der Verlustfunktion und des Optimierers für das Modell. Schließlich wird eine neurale Netzwerkarchitektur definiert oder auf einem vordefinierten Modell aufgebaut. Dieses Modell wird anhand von Daten trainiert und anhand der Leistungskennzahlen feinabgestimmt.

Im Folgenden sehen Sie einen Screenshot verschiedener Schritte, die beim Trainieren eines Deep-Learning-Modells erforderlich sind:

Typischer ML-Workflow (Quelle)

Daten aus PDF extrahieren und mit Python in eine SQL-Datenbank exportieren

Bisher haben wir gelernt, was die PDF-zu-Datenbank-Konvertierung ist, und einige Anwendungsfälle besprochen, in denen sie hilfreich sein kann. In diesem Abschnitt wird dieses Problem praktisch mithilfe von Computer Vision angegangen und Tabellen in gescannten PDFs erkannt und in Datenbanken exportiert. Stellen Sie sicher, dass Sie Python und OpenCV auf Ihrem lokalen Computer installieren, um mitzumachen. Alternativ können Sie ein Online-Notizbuch von Google Collab verwenden.

Schritt 1: Installieren Sie Tabula und Pandas

In diesem Beispiel verwenden wir Tabula und Pandas, um Tabellen zu extrahieren und in Datenbanken zu verschieben. Lassen Sie sie uns über Pip installieren und in unser Programm importieren.

import tabula
import pandas as pd

Schritt 2: Tabellen in Dataframe einlesen

Jetzt werden wir die verwenden read_pdf Funktion from tabula zum Lesen von Tabellen aus PDFs; Beachten Sie, dass diese Bibliothek nur mit elektronisch generierten PDF-Dokumenten funktioniert. Nachfolgend das Code-Snippet:

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

df = pd.concat(table)

Hier, wie wir sehen können, verwenden wir zuerst, um den Inhalt für die PDF-Datei zu lesen, wir setzen den Parameter multiple_tables auf False, da das im Beispiel verwendete Dokument nur eine Tabelle hat.

Jetzt laden wir diese Liste mit Pandas in einen Datenrahmen, und Sie können den Typ der Tabelle mit der Typmethode überprüfen. Dadurch wird ein nativer Pandas-Datenrahmen zurückgegeben.

Schritt 3: Dataframe zu Postres migrieren

Bevor wir unsere Tabelle in Datenbanken pushen, sollten wir zuerst von unserem Programm aus eine Verbindung zu ihr herstellen, und wir können dies mit der tun sqlalchemy Client in Python. In ähnlicher Weise bieten verschiedene Programmiersprachen diese Art von Datenbankclients an, um direkt aus unseren Programmen heraus mit Datenbanken zu interagieren.

In diesem Programm verwenden wir die create_engine Methode, mit der wir uns mit der Datenbank verbinden können; Stellen Sie sicher, dass Sie die Datenbankanmeldeinformationen in der angegebenen Zeichenfolge ersetzen, damit dies funktioniert. Als nächstes verwenden wir die write_frame Funktion zum Exportieren der extrahierten Tabelle in die verbundene Datenbank.

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

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

Und einfach so konnten wir Tabellen aus PDFs in die Datenbank exportieren, das sieht ziemlich unkompliziert und einfach aus, da wir ein einfach verarbeitetes, elektronisch generiertes PDF verwendet haben. Zum Extrahieren von Tabellen aus nicht elektronisch generierten Tabellen sind die folgenden gängigen Deep-Learning-Techniken, die verwendet werden können:

  1. Papiere mit Code – GFTE: Graphbasierte Finanztabellenextraktion
  2. Artikel mit Code – PubTables-1M: Auf dem Weg zu einem universellen Datensatz und Metriken für das Training und die Bewertung von Tabellenextraktionsmodellen
  3. TableNet: Deep Learning-Modell für die End-to-End-Tabellenerkennung und Tabellendatenextraktion aus gescannten Dokumentbildern

Geben Sie Nanonets: Advanced OCR for PDF Table to Database Conversion ein

In diesem Abschnitt wird untersucht, wie Nanonets uns dabei helfen können, Tabellen in der Datenbank auf anpassbarere und einfachere Weise auszuführen.

Nanonets™ ist eine Cloud-basierte OCR, mit der Sie Ihre manuelle Dateneingabe mithilfe von KI automatisieren können. Wir werden ein Dashboard haben, wo wir unsere OCR-Modelle auf unseren Daten aufbauen/trainieren und sie in JSON/CSV oder jedem gewünschten Format transportieren können. Hier sind einige der Vorteile der Verwendung von Nanonets als PDF-Dokumentenscanner.

Eines der Highlights von Nanonets ist die Einfachheit, die der Service mit sich bringt. Man kann sich ohne Programmierkenntnisse für diese Dienste entscheiden und PDF-Daten einfach mit modernster Technologie extrahieren. Im Folgenden finden Sie eine kurze Übersicht darüber, wie einfach es ist, PDF in die Datenbank zu konvertieren.

Schritt 1: Gehen Sie zu nanonets.com und registrieren/einloggen.

Konvertieren Sie PDF-Daten in Datenbankeinträge PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Schritt 2: Gehen Sie nach der Registrierung zum Bereich „Wählen Sie, um loszulegen“, wo Sie die vorgefertigten Extraktoren verwenden oder mithilfe Ihres Datensatzes selbst einen erstellen können. Hier verwenden wir den vorgefertigten Rechnungsextraktor von Invoice.

Konvertieren Sie PDF-Daten in Datenbankeinträge PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Schritt 3: Laden Sie ein PDF mit Bildern hoch, um die Datenextraktion durchzuführen und wählen Sie die Option zum automatischen Extrahieren.

Konvertieren Sie PDF-Daten in Datenbankeinträge PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Schritt 4: Erstellen Sie eine neue MySQL-Integration, um extrahierte Daten in die Datenbank zu exportieren. Alternativ können Sie verschiedene Optionen basierend auf den Datenbanken Ihrer Wahl auswählen.

Konvertieren Sie PDF-Daten in Datenbankeinträge PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Stellen Sie eine Datenverbindung her und klicken Sie auf Integration hinzufügen. Damit werden die Daten extrahiert und automatisch in eine Datenbank hochgeladen, wenn Dateien hochgeladen werden. Wenn Sie die erforderlichen Integrationen nicht finden, können Sie jederzeit die Nanonets-API verwenden und einfache Skripts schreiben, um die Automatisierung zu erledigen.

Zeitstempel:

Mehr von KI & Maschinelles Lernen