Maison  >  Article  >  développement back-end  >  Extraire des données de PDF délicats avec Google Gemini en lignes de Python

Extraire des données de PDF délicats avec Google Gemini en lignes de Python

WBOY
WBOYoriginal
2024-07-19 15:27:28867parcourir

Dans ce guide, je vais vous montrer comment extraire des données structurées à partir de PDF à l'aide de modèles de langage de vision (VLM) comme Gemini Flash ou GPT-4o.

Gemini, la dernière série de modèles de langage visuel de Google, a démontré des performances de pointe en matière de compréhension de textes et d'images. Cette capacité multimodale améliorée et cette longue fenêtre contextuelle le rendent particulièrement utile pour traiter des données PDF visuellement complexes avec lesquelles les modèles d'extraction traditionnels ont du mal, telles que des figures, des graphiques, des tableaux et des diagrammes.

Ce faisant, vous pouvez facilement créer votre propre outil d'extraction de données pour l'extraction visuelle de fichiers et Web. Voici comment :

La longue fenêtre contextuelle et la capacité multimodale de Gemini le rendent particulièrement utile pour le traitement de données PDF visuellement complexes là où les modèles d'extraction traditionnels ont du mal.

Configuration de votre environnement

Avant de nous lancer dans l'extraction, configurons notre environnement de développement. Ce guide suppose que Python est installé sur votre système. Sinon, téléchargez-le et installez-le depuis https://www.python.org/downloads/

⚠️ Notez que si vous ne souhaitez pas utiliser Python, vous pouvez utiliser la plateforme cloud sur thepi.pe pour télécharger vos fichiers et télécharger votre résultat au format CSV sans écrire de code.

Installer les bibliothèques requises

Ouvrez votre terminal ou votre invite de commande et exécutez les commandes suivantes :

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

Pour ceux qui découvrent Python, pip est le programme d'installation du package pour Python, et ces commandes téléchargeront et installeront les bibliothèques nécessaires.

Configurez votre clé API

Pour utiliser thepipe, vous avez besoin d'une clé API.

Avertissement : bien que thepi.pe soit un outil open source gratuit, l'API a un coût d'environ 0,00002 $ par jeton. Si vous souhaitez éviter de tels coûts, consultez les instructions de configuration locale sur GitHub. Notez que vous devrez toujours payer le prestataire LLM de votre choix.

Voici comment l'obtenir et le configurer :

  1. Visitez https://thepi.pe/platform/
  2. Créez un compte ou connectez-vous
  3. Trouvez votre clé API dans la page des paramètres

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

Maintenant, vous devez définir cela comme variable d'environnement. Le processus varie en fonction de votre système d'exploitation :

  • Copiez la clé API depuis le menu des paramètres sur la plateforme thepi.pe

Pour Windows :

  1. Recherchez « Variables d'environnement » dans le menu Démarrer
  2. Cliquez sur "Modifier les variables d'environnement système"
  3. Cliquez sur le bouton "Variables d'environnement"
  4. Sous « Variables utilisateur », cliquez sur « Nouveau »
  5. Définissez le nom de la variable comme THEPIPE_API_KEY et la valeur comme votre clé API
  6. Cliquez sur "OK" pour enregistrer

Pour macOS et Linux :
Ouvrez votre terminal et ajoutez cette ligne à votre fichier de configuration shell (par exemple, ~/.bashrc ou ~/.zshrc) :

export THEPIPE_API_KEY=your_api_key_here

Ensuite, rechargez votre configuration :

source ~/.bashrc # or ~/.zshrc

Définir votre schéma d'extraction

La clé d'une extraction réussie consiste à définir un schéma clair pour les données que vous souhaitez extraire. Disons que nous extrayons des données d'un document de facturation :

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

Un exemple de page du document Bill of Quantity. Les données de chaque page sont indépendantes des autres pages, nous effectuons donc notre extraction "par page". Il y a plusieurs éléments de données à extraire par page, nous définissons donc plusieurs extractions sur True

En regardant les noms des colonnes, nous pourrions vouloir extraire un schéma comme celui-ci :

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

Vous pouvez modifier le schéma à votre guise sur la plateforme thepi.pe. En cliquant sur "Afficher le schéma", vous obtiendrez un schéma que vous pourrez copier et coller pour l'utiliser avec l'API Python

Image description

Extraction de données à partir de PDF

Maintenant, utilisons extract_from_file pour extraire des données d'un PDF :

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

Ici, nous avons chunking_method="chunk_by_page" car nous voulons envoyer chaque page au modèle d'IA individuellement (le PDF est trop volumineux pour être alimenté en une seule fois). Nous définissons également multiple_extractions=True car les pages PDF contiennent chacune plusieurs lignes de données. Voici à quoi ressemble une page du PDF :

Image description

Les résultats de l'extraction du PDF de la facture quantitative tels que consultés sur la plateforme thepi.pe

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn