"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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

Publié le 2024-08-17
Parcourir:655

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 le traitement de 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 procéder :

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

Puis 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. Supposons 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 Devis quantitatif. 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 de 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

Utilisons maintenant extract_from_file pour extraire les 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 pi.pe

Traitement des résultats

Les résultats de l'extraction sont renvoyés sous forme de liste de dictionnaires. Nous pouvons traiter ces résultats pour créer un DataFrame pandas :

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

Cela crée un DataFrame avec toutes les informations extraites, y compris le contenu textuel et les descriptions d'éléments visuels tels que les figures et les tableaux.

Exportation vers différents formats

Maintenant que nous avons nos données dans un DataFrame, nous pouvons facilement les exporter vers différents formats. Voici quelques options :

Exportation vers Excel

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

Cela crée un fichier Excel nommé « extracted_research_data.xlsx » avec une feuille nommée « Research Data ». Le paramètre index=False empêche l'index DataFrame d'être inclus en tant que colonne distincte.

Exportation au format CSV

Si vous préférez un format plus simple, vous pouvez exporter au format CSV :

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

Cela crée un fichier CSV qui peut être ouvert dans Excel ou dans n'importe quel éditeur de texte.

Notes de fin

La clé d'une extraction réussie réside dans la définition d'un schéma clair et l'utilisation des capacités multimodales du modèle d'IA. À mesure que vous vous familiariserez avec ces techniques, vous pourrez explorer des fonctionnalités plus avancées telles que des méthodes de segmentation personnalisées, des invites d'extraction personnalisées et l'intégration du processus d'extraction dans des pipelines de données plus vastes.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/emcf/extracting-data-from-tricky-pdfs-with-google-gemini-in-10-lines-of-python-7ni?1 En cas de violation , veuillez contacter study_golang @163.comdelete
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3