Maison > Article > développement back-end > Extraire des données de PDF délicats avec Google Gemini en lignes de Python
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.
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.
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.
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 :
Maintenant, vous devez définir cela comme variable d'environnement. Le processus varie en fonction de votre système d'exploitation :
Pour Windows :
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
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 :
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
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 :
Les résultats de l'extraction du PDF de la facture quantitative tels que consultés sur la plateforme thepi.pe
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.
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!