Heim  >  Artikel  >  Backend-Entwicklung  >  Extrahieren von Daten aus schwierigen PDFs mit Google Gemini in Python-Sprache

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

WBOY
WBOYOriginal
2024-07-19 15:27:28835Durchsuche

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.

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 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:

  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 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

Image description

Extrahieren von Daten aus PDFs

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:

Image description

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

Processing the Results

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.

Exporting to Different Formats

Now that we have our data in a DataFrame, we can easily export it to various formats. Here are some options:

Exporting to Excel

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.

Exporting to CSV

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.

Ending Notes

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn