Vom PDF zum Text – Schritt für Schritt Anleitung

in

am

Seit vielen Jahren hat sich das PDF Dateiformat als Standard für die digitale Verteilung von Dokumenten etabliert. Jedes Gerät, ob PC, Smartphone oder Tablet, ist in der Lage, PDFs zu lesen. Die Viewer waren von Anbeginn kostenlos. Das hat massiv zur weiten Verbreitung beigetragen.

Das Format wird auch kontinuierlich erweitert, z. B. um Formulare ausfüllen oder Unterschriften setzen zu können. Die Probleme beginnen aber, wenn man die Informationen innerhalb des PDF Dokuments weiterverarbeiten möchte. Manuelles Copy & Paste funktioniert selten, da Text oft auch als Bildinformation gespeichert wurde, von dem zeitlichen Aspekt ganz zu schweigen. Dieser Problematik haben sich Anbieter auf unterschiedliche Weise genähert, damit PDF zu Text Konvertierung strukturiert, automatisiert und intelligent durchgeführt werden kann. Diese Prozesse wollen wir hier näher beleuchten.

Hintergrund zur Text-zu-PDF Konvertierung

Wenn man von PDF-zu-Text Konvertierung spricht, bezieht es sich ganz allgemein auf den Prozess, bei dem Konverter die Textinhalte eines PDF Dokuments automatisiert extrahieren und in ein bearbeitbares Textformat, umwandeln. Dies kann nützlich sein, wenn man den Text aus einem PDF Dokument weiterverarbeiten oder in einer anderen Anwendung verwenden möchte. Es gibt viele Tools und Dienste, die diesen Prozess automatisieren und die Konvertierung von PDF-zu-Text erleichtern.

Einige dieser Tools bieten auch die Möglichkeit, spezielle Layout- oder Formatierungselemente wie Tabellen oder Absätze beizubehalten, um sicherzustellen, dass der Text in der neuen Anwendung so gut wie möglich wiedergegeben wird. PDF-zu-Text Konvertierung kann auch hilfreich sein, wenn man den Text aus einem gescannten PDF Dokument extrahieren möchte, in dem die Schrift nur als Bildinformation vorhanden ist. Dafür finden OCR (Optical Character Recognition) Technologien Anwendung, die die Bildinformationen interpretieren und den Text generieren.

Abhängig von den Möglichkeiten des Anwenders und den Zielen der Konvertierung eines PDFs zu Text, bietet Konfuzio verschiedene Möglichkeiten, um den Text zu extrahieren (z.B. als TXT oder Word Datei). Diese sind im Überblick:

  1. Der manuelle Prozess: Für gelegentliche Umwandlungen können PDF-Dateien manuell auf Konvertierungsplattformen hochgeladen werden, um den ausgelesenen Text dann als Download zurückzuerhalten und individuell weiterzuverarbeiten.
  2. Per Programmierschnittstelle (API): Bei mehr Dokumentenaufkommen kann durch flexible APIs mit etwas Programmieraufwand effiziente Prozesse für die Automatisierung von PDF-zu-Text Konvertierungen erstellt werden.
  3. Via Programmbibliotheken: Die Konvertierungsfunktionalität steht über die Programmbibliotheken direkt im Quellcode der eigenen Anwendung zur Verfügung. Sehr beliebt hierbei sind Angebote für die Programmiersprache Python.

Variante 1 – Anleitung für den manuellen Prozess

  1. Öffne eine öffentliche PDF-zu-Text Konverter. Diese erlauben oft kostenlose Konvertierungen.
  2. Folge den Anweisungen der Plattform, um die eigene PDF Datei vom lokalen Computer auf die Plattform hochzuladen.
  3. Nach Upload der PDF Datei generiert die Plattform den reinen Text, meist noch unstrukturiert. Der Text steht entweder in einem Textfeld auf der Webseite zum kopieren bereit. Oder die Anwendung hat eine Textdatei zum herunterladen erzeugt.
  4. Kopiere den Text aus der generierten Datei oder der Webseite direkt in den TextView der Konfuzio-Plattform.
  5. Bringe hier einfach Labels (Annotationen) direkt an den noch unstrukturierten Daten an, um die künstliche Intelligenz auf die spezifische Form der Daten zu trainieren.

Manual Annotation via TextView

Variante 2 – Anleitung für PDF-zu-Text per API

Diese Variante setzt Programmierkenntnisse voraus. Außerdem benötigt man klare Vorstellungen, welche Kategorien von Dokumenten erwartet werden können, um die Weiterverarbeitung der Texte nach der Konvertierung so effizient wie möglich zu gestalten.

  1. Das Dokument wird per API-Befehl auf den Server geladen. Dazu wird die Kategorie und das zugehörige Projekt angegeben (Probiere es hier)
  2. Sobald der Upload erfolgreich war, erscheint das Dokument in der Konfuzio Administrator Oberfläche, bereits der richtigen Kategorie zugeordnet.
  3. Die Textinformationen wurden dann durch Konfuzio bereits aus dem PDF ausgelesen und stehen dem Programm zur Verfügung (Probiere es hier)
  4. Über die Administratoroberfläche kann die Datei nun geöffnet werden, um den Textinformationen wiederum Annotationen zur Kategorisierung der Informationen zuzuordnen. Mit trainierter KI ist auch dieser Schritt dann automatisiert.

PDF zu Text mit Hilfe der Konfuzio API

Eine umfangreiche Einführung zur Arbeit mit der API zeigt ein anschauliches Video hier.

Variante 3 – Anleitung zur Nutzung der Python SDK

Für Entwickler, die bereits mit Python vertraut sind, ist die Nutzung des Konfuzio Python SDK als Codebibliothek für die schnelle Einbindung der Konvertierungs- und Verarbeitungsfunktionalitäten besonders einfach. Die Einbindung der API-Aufrufe ist hier bereits nutzerfreundlich umgesetzt. Es ist sehr mächtig, wir wollen uns hier aber auf die Konvertierung von PDFs zu Text konzentrieren.

  1. Falls dies die erste Nutzung der SDK-Funktionalitäten ist, muss er Entwickler dieses zunächst herunterladen und auf der eigenen Entwicklungsumgebung installiert werden. (Mehr dazu hier)
  2. Importiere die SDK Programmbibliothek in den eigenen Quellcode:

    from konfuzio_sdk.data import Project

  3. Das zu ladende PDF Dokument sollte durch das Programm zu finden sein. Es kann online oder auf der lokalen Festplatte liegen. Die Datei wird geöffnet und die binären Daten zur Verarbeitung auf der Zielumgebung zwischengespeichert.
  4. Im nächsten Schritt wird das Upload-Kommando upload_file_konfuzio_api von Konfuzio mit den notwendigen Parametern konfiguriert(Dateiname, ID des Projekts, Status) und ausgeführt.
  5. Sobald der Upload abgeschlossen ist, hat die Plattform das PDF bereits per OCR zu Text konvertiert. Über das project Objekt kann dieser einfach ausgelesen werden.

Der Code sieht in der Übersicht so aus:

from konfuzio_sdk.data import Project
project = Project(id_=11957)
from pathlib import Path
import requests
filename = Path('energiezertifikat.pdf')
url = 'https://www.energieausweis-online-erstellen.de/app/uploads/2016/09/muster-bedarfsausweis.pdf'
response = requests.get(url)
print(response.status_code)
response = requests.get(url, stream=True)
if response.status_code == 200:
  with open(filename, 'wb') as pdf_object:
    pdf_object.write(response.content)
    print(f'{filename} was successfully saved!')
from konfuzio_sdk.api import upload_file_konfuzio_api
request = upload_file_konfuzio_api(filename, project_id=project.id_, dataset_status=2)
project.get(update=True)
[document.status for document in project.documents]
project.documents[-1].text

Die Verarbeitung von Bildern verläuft sehr ähnlich. Viele weitere Beispiele und Anleitungen zur Nutzung des Konfuzio Python SDK finden sich hier.

Text extrahiert und was nun?

Wie die Beispiele zeigen, ist es mit dem Konvertieren der Dokumente nicht getan. Erst wenn der Text auch weiter genutzt werden kann, bietet sich ein Mehrwert für den Aufwand der Konvertierung. Mit Konfuzio können Typen von Daten manuell gelabelt werden (Das Datum der Rechnung oder die Kontonummer). Das ist aber nur der allererste Schritt. Denn im Hintergrund steckt die künstliche Intelligenz, die alle neuen Dokumente analysiert. Die manuellen Labels dienen als Trainingsmaterial für die KI. Schnell übernimmt sie und ist immer besser in der Lage, selbst Daten innerhalb der Texte zu identifizieren und zu klassifizieren. Sie kann verschiedene Dokumententypen erlernen. So werden auch große Mengen von Dokumenten schnell analysiert, die Daten strukturiert und die Informationen für die weitere Nutzung vorbereitet. So können die Daten aus PDF-Dateien mit deutlich reduziertem manuellen Aufwand in die folgenden Businessprozesse integriert und automatisiert verarbeitet werden.

Offener Laptop, auf Bildschirm ist HTML Code zu sehen
lets work together
de_DEDE