Heim > Artikel > Backend-Entwicklung > Extrahieren von Daten aus schwierigen PDFs mit Google Gemini in Python-Sprache
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 Spitzenleistungen 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.
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.
Ö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.
Um die Pipe nutzen zu können, 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:
Jetzt müssen Sie dies als Umgebungsvariable festlegen. Der Vorgang variiert je nach Betriebssystem:
Für Windows:
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
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:
Ein Beispiel einer 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
Nun 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 (das PDF 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:
Die Ergebnisse der Extraktion für die Stücklisten-PDF, wie auf der thepi.pe-Plattform angezeigt
The extraction results are returned as a list of dictionaries. We can process these results to create a pandas DataFrame:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
This creates a DataFrame with all the extracted information, including textual content and descriptions of visual elements like figures and tables.
Now that we have our data in a DataFrame, we can easily export it to various formats. Here are some options:
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
This creates an Excel file named "extracted_research_data.xlsx" with a sheet named "Research Data". The index=False parameter prevents the DataFrame index from being included as a separate column.
If you prefer a simpler format, you can export to CSV:
df.to_csv("extracted_research_data.csv", index=False)
This creates a CSV file that can be opened in Excel or any text editor.
The key to successful extraction lies in defining a clear schema and utilizing the AI model's multimodal capabilities. As you become more comfortable with these techniques, you can explore more advanced features like custom chunking methods, custom extraction prompts, and integrating the extraction process into larger data pipelines.
Das obige ist der detaillierte Inhalt vonExtrahieren von Daten aus schwierigen PDFs mit Google Gemini in Python-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!