„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Extrahieren von Daten aus schwierigen PDFs mit Google Gemini in Python-Sprache

Extrahieren von Daten aus schwierigen PDFs mit Google Gemini in Python-Sprache

Veröffentlicht am 17.08.2024
Durchsuche:328

In diesem Leitfaden zeige ich Ihnen, wie Sie mithilfe von Vision-Language-Modellen (VLMs) wie Gemini Flash oder GPT-4o strukturierte Daten aus PDFs extrahieren.

Gemini, Googles neueste Serie von Vision-Language-Modellen, hat modernste Leistung beim Text- und Bildverständnis gezeigt. Diese verbesserte multimodale Fähigkeit und das lange Kontextfenster machen es besonders nützlich für die Verarbeitung visuell komplexer PDF-Daten, mit denen herkömmliche Extraktionsmodelle Schwierigkeiten haben, wie z. B. Abbildungen, Diagramme, Tabellen und Diagramme.

Auf diese Weise können Sie ganz einfach Ihr eigenes Datenextraktionstool für die visuelle Datei- und Webextraktion erstellen. So geht's:

Das lange Kontextfenster und die multimodale Fähigkeit von Gemini machen es besonders nützlich für die Verarbeitung visuell komplexer PDF-Daten, bei denen herkömmliche Extraktionsmodelle Schwierigkeiten haben.

Einrichten Ihrer Umgebung

Bevor wir uns mit der Extraktion befassen, richten wir unsere Entwicklungsumgebung ein. In dieser Anleitung wird davon ausgegangen, dass Sie Python auf Ihrem System installiert haben. Wenn nicht, laden Sie es von https://www.python.org/downloads/

herunter und installieren Sie es.

⚠️ Beachten Sie, dass Sie, wenn Sie Python nicht verwenden möchten, die Cloud-Plattform unter thepi.pe verwenden können, um Ihre Dateien hochzuladen und Ihr Ergebnis als CSV herunterzuladen, ohne Code schreiben zu müssen.

Installieren Sie die erforderlichen Bibliotheken

Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung und führen Sie die folgenden Befehle aus:

pip install git https://github.com/emcf/thepipe
pip install pandas

Für Python-Neulinge: pip ist das Paketinstallationsprogramm für Python, und diese Befehle laden die erforderlichen Bibliotheken herunter und installieren sie.

Richten Sie Ihren API-Schlüssel ein

Um die Pipe zu verwenden, benötigen Sie einen API-Schlüssel.

Haftungsausschluss: Während thepi.pe ein kostenloses Open-Source-Tool ist, kostet die API etwa 0,00002 US-Dollar pro Token. Wenn Sie solche Kosten vermeiden möchten, schauen Sie sich die Anleitung zur lokalen Einrichtung auf GitHub an. Beachten Sie, dass Sie weiterhin den LLM-Anbieter Ihrer Wahl bezahlen müssen.

So erhalten und richten Sie es ein:

  1. Besuchen Sie https://thepi.pe/platform/
  2. Erstellen Sie ein Konto oder melden Sie sich an
  3. Suchen Sie Ihren API-Schlüssel auf der Einstellungsseite

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

Jetzt müssen Sie dies als Umgebungsvariable festlegen. Der Vorgang variiert je nach Betriebssystem:

  • Kopieren Sie den API-Schlüssel aus dem Einstellungsmenü auf der pi.pe-Plattform

Für Windows:

  1. Suchen Sie im Startmenü nach „Umgebungsvariablen“
  2. Klicken Sie auf „Systemumgebungsvariablen bearbeiten“
  3. Klicken Sie auf die Schaltfläche „Umgebungsvariablen“
  4. Klicken Sie unter „Benutzervariablen“ auf „Neu“
  5. Legen Sie den Variablennamen als THEPIPE_API_KEY und den Wert als Ihren API-Schlüssel fest
  6. Klicken Sie zum Speichern auf „OK“

Für macOS und Linux:
Öffnen Sie Ihr Terminal und fügen Sie diese Zeile zu Ihrer Shell-Konfigurationsdatei hinzu (z. B. ~/.bashrc oder ~/.zshrc):

export THEPIPE_API_KEY=your_api_key_here

Dann laden Sie Ihre Konfiguration neu:

source ~/.bashrc # or ~/.zshrc

Definieren Ihres Extraktionsschemas

Der Schlüssel zu einer erfolgreichen Extraktion liegt in der Definition eines klaren Schemas für die Daten, die Sie extrahieren möchten. Nehmen wir an, wir extrahieren Daten aus einem Stücklistendokument:

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

Ein Beispiel für eine Seite aus dem Stücklistendokument. Die Daten auf jeder Seite sind unabhängig von den anderen Seiten, daher führen wir unsere Extraktion „pro Seite“ durch. Pro Seite müssen mehrere Daten extrahiert werden, daher setzen wir mehrere Extraktionen auf True

Wenn wir uns die Spaltennamen ansehen, möchten wir vielleicht ein Schema wie dieses extrahieren:

schema = {
  "item": "string",
  "unit": "string",
  "quantity": "int",
}

Sie können das Schema auf der pi.pe-Plattform nach Ihren Wünschen ändern. Wenn Sie auf „Schema anzeigen“ klicken, erhalten Sie ein Schema, das Sie zur Verwendung mit der Python-API kopieren und einfügen können

Image description

Extrahieren von Daten aus PDFs

Jetzt verwenden wir extract_from_file, um Daten aus einer PDF-Datei abzurufen:

from thepipe.extract import extract_from_file
results = extract_from_file(
  file_path = "bill_of_quantity.pdf",
  schema = schema,
  ai_model = "google/gemini-flash-1.5b",
  chunking_method = "chunk_by_page"
)

Hier haben wir chunking_method="chunk_by_page", weil wir jede Seite einzeln an das KI-Modell senden möchten (die PDF-Datei ist zu groß, um alle auf einmal einzuspeisen). Wir setzen auch multiple_extractions=True, da die PDF-Seiten jeweils mehrere Datenzeilen enthalten. So sieht eine Seite aus dem PDF aus:

Image description

Die Ergebnisse der Extraktion für die Stücklisten-PDF, wie auf der thepi.pe-Plattform angezeigt

Verarbeitung der Ergebnisse

Die Extraktionsergebnisse werden als Liste von Wörterbüchern zurückgegeben. Wir können diese Ergebnisse verarbeiten, um einen Pandas-DataFrame zu erstellen:

import pandas as pd
df = pd.DataFrame(results)
# Display the first few rows of the DataFrame
print(df.head())

Dadurch wird ein DataFrame mit allen extrahierten Informationen erstellt, einschließlich Textinhalten und Beschreibungen visueller Elemente wie Abbildungen und Tabellen.

Exportieren in verschiedene Formate

Da wir nun unsere Daten in einem DataFrame haben, können wir sie problemlos in verschiedene Formate exportieren. Hier sind einige Optionen:

Exportieren nach Excel

df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")

Dadurch wird eine Excel-Datei namens „extracted_research_data.xlsx“ mit einem Blatt namens „Research Data“ erstellt. Der Parameter index=False verhindert, dass der DataFrame-Index als separate Spalte eingefügt wird.

Exportieren in CSV

Wenn Sie ein einfacheres Format bevorzugen, können Sie in CSV exportieren:

df.to_csv("extracted_research_data.csv", index=False)

Dadurch wird eine CSV-Datei erstellt, die in Excel oder einem beliebigen Texteditor geöffnet werden kann.

Schlussbemerkungen

Der Schlüssel zu einer erfolgreichen Extraktion liegt in der Definition eines klaren Schemas und der Nutzung der multimodalen Fähigkeiten des KI-Modells. Wenn Sie mit diesen Techniken vertrauter werden, können Sie erweiterte Funktionen wie benutzerdefinierte Chunking-Methoden, benutzerdefinierte Extraktionsaufforderungen und die Integration des Extraktionsprozesses in größere Datenpipelines erkunden.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/emcf/extracting-data-from-tricky-pdfs-with-google-gemini-in-10-lines-of-python-7ni?1 Falls ein Verstoß vorliegt Bitte kontaktieren Sie Study_golang @163.comdelete
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3