Deepdoctection ist eine Python-Bibliothek, die die Aufgaben der Dokumentextraktion und der Dokumentenlayoutanalyse mit Hilfe von Deep-Learning-Modellen orchestriert.
Deepdoctection konzentriert sich auf Anwendungen und ist für diejenigen gemacht, die reale Probleme im Zusammenhang mit der Dokumentextraktion aus PDFs oder Scans in verschiedenen Bildformaten programmieren möchten.
Dieser Artikel wurde auf Deutsch verfasst und redaktionell überprüft. Weitere Sprachen stehen als automatische Übersetzung zur Verfügung. Wir freuen uns über Feedback am Ende des Artikels.
Websites vs. Dokumente und Scans als Informationsträger
Angenommen Sie möchten von einer Webseite Rezensionen auswerten. Mit ein wenig Programmiererfahrung können Sie in kurzer Zeit umfassende Untersuchungen wie Sentiment Analysen erstellen.
Nun nehmen Sie an, Sie möchten wieder Kundenfeedback auswerten. Diesmal aber liegen die Informationen in gescannten Formularen vor. Vielleicht sind die Formulare nicht alle identisch und einige wurden handschriftlich ausgefüllt. In diesem Fall werden Sie wesentlich mehr Zeit zum Erreichen Ihre Ziele aufwenden müssen.
Aber was ist der große Unterschied?
Sofern Sie Ihre Informationen aus Webseiten beziehen wollen, müssen Sie Ihre Daten per Webcrawling zu sich holen und aufbereiten, so dass aus der rohen HTML-Darstellung nur die Informationen übrigbleiben, die Sie für Ihre Analyse benötigen. Bis zur Analyse reicht ein regelbasierter Ansatz aus.
Nun zu den Formularen: Hier haben Sie vielleicht ein digitalisiertes Dokument, aber dieses Dokument speichert seine Inhalte in Pixelform, das heißt in abertausenden von Zahlen zwischen 0 und 255. Nun können Sie eine OCR-Engine darüber laufen lassen und Sie erhalten eine Kombination von Wörtern und Koordinaten.
Jetzt beginnt die eigentliche Arbeit, denn Sie müssen jetzt dem Formular Struktur geben: Zum Beispiel: Wie erkenne ich die Entitäten in dem Formular? Welche Wortblöcke gehören zusammen? Welche Strukturen gibt es, wie zum Beispiel Tabellen oder Paragrafen?
Um solche Probleme anzugehen, benötigen Sie einen Fundus an Hilfsmitteln. Zum einen kann künstliche Intelligenz Hilfe leisten, zum anderen muss künstliche Intelligenz aber orchestriert werden, um im Gesamtpaket wirkungsvoll zu sein.
deepdoctection – Pipelines für Document AI
deepdoctection ist ein auf Python basierendes Open Source Framework, welches Sie bei der Extraktion von Informationen aus Dokumenten unterstützt. Sie finden den Quellcode bei Github.

Nutzung von Bild und Text
Im Unterschied zu gängigen Natural Language Processing Frameworks bietet deepdoctection die Möglichkeit, Pipelines zu erstellen, bei denen multimodale Modelle verwendet werden können, die neben Text- auch Bildinformationen einlesen. Hierzu gehören Positionsinformationen von Wörtern und Textsegmenten oder das gesamte Bild. Es hat sich nämlich gezeigt, dass besonders für Dokumente aus der täglichen Geschäftswelt (Formulare, Berichte, Präsentationen), KI-Modelle, die visuelle Informationen berücksichtigen, für die Extraktion besser funktionieren. Hierzu gehört die LayoutLM-Familie, eine Gruppe von Modellen, die von Microsoft entwickelt wurde.
Mit deepdoctection können Sie diese Modelle im Zusammenspiel mit OCR für die Klassifikation von Dokumenten oder der Extraktion von Entitäten ausprobieren.
Layoutanalyse und Tabellenextraktion
Daneben bietet deepdoctection die Möglichkeit, Modelle für die Dokumenten-Layout-Analyse einzusetzen. Diese sind äußerst nützlich, um eine Strukturierung des Dokumentes in bestimmte Bereiche wie Tabellen, Figuren oder Listenelemente vorzunehmen.
Auch Tabellen können rekonstruiert werden und als csv-Datei oder sogar als HTML-Struktur extrahiert werden. Deepdoctection können Sie einfach online testen.

OCR
OCR ist eine weitere wichtige Komponente und hierfür bietet deepdoctection die Möglichkeit, verschiedene OCR-Frameworks einzusetzen. Hierzu gehört das bekannteste Open Source Framework Tesseract, aber auch das modernere DocTr, welches für viele Use-Cases genauere Ergebnisse liefert.
Open Source Basismodelle
deepdoctection bietet die Möglichkeit, Basismodelle aus verschiedenen hochwertigen Open Source Bibliotheken zu verwenden. Besonders die Ausführung von mehreren KI-Modellen in einem einfachen Aufruf ist die Stärke von deepdoctection.
Trainieren und Evaluieren von Modellen
Kein Modell funktioniert für alle Use-Cases. Aber es lässt sich die Genauigkeit wesentlich verbessern, indem man Modelle auf eigene Daten trainiert. Für verschiedene Basis-Modelle bietet deepdoctection vorkonfigurierte Trainingsskripte, so dass Sie nicht mühevoll nach einem geeigneten Setting suchen müssen.
Bevor man ein Modell produktiv nehmen möchte, muss man es evaluieren, um zu sehen, ob die Vorhersageergebnisse auf noch nicht gesehenen Daten akkurat genug sind. Hierfür bietet deepdoctection Metriken und Evaluierungsinstrumente an, die Sie nutzen können, um die Prognosefähigkeit Ihres Modells umfassend bewerten zu können.
Anlegen von Datasets
deepdoctection bietet die Möglichkeit, eigene Datensätze anzulegen und zu registrieren. Dieses erleichtert das Trainieren von Basismodellen und bietet überdies die Möglichkeit mehrere Datensets zu vereinen.
Schlusswort
Erkunden Sie, was in Document AI alles möglich ist. Nutzen Sie deepdoctection, um Ihre eigenen Use-Cases in Document AI anzugehen.
Tutorials für Einsteiger sowie für fortgeschrittene Themen stehen als Jupyter Notebook zur Verfügung. Darüber finden Sie eine umfassende Dokumentation zur Architektur sowie zur API des Frameworks.
Und sollten Sie Fragen haben, stellen Sie ein Issue ein oder nutzen Sie das Forum auf Github.
Über den Autor von deepdoctection

Dr. Janis Meyer arbeitet seit vielen Jahren als selbständiger Machine Learning Engineer und Unternehmensberater.
Der Trigger, sich mit Document AI Themen zu beschäftigen war für ihn ein Projekt, bei dem es darum ging, aus Finanzberichten spezifische Kennzahlen zu extrahieren.
Er hat deepdoctection entwickelt, um in kurzen Iterationszyklen neue Machine Learning Modelle, zur Lösung von Document AI Themen in Pipelines zu integrieren.
Dr. Janis Meyer berät Endkunden und Plattformbetreiber bei Einführungs- und Innovationsthemen von Intelligent Automation Themen. Hierzu gehört allgemeine Beratung, sowie Projekt, Umsetzungs-, Test- und Produktionsmonitoring.
Konfuzio vs. deepdoctection
deepdoctection kann in Konfuzio genutzt werden, um individuelle Anwendungsfälle umzusetzten. Konfuzio bietet dadurch die Möglichkeit in kurzen Iterationszyklen neue Modelle zu testen und bei erfolgreicher Evaluation diese schnell in den Produktionsprozess zu integrieren.