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.
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 ceci 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
Puis 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. Supposons que nous extrayons des données d'un document de facturation :
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
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 :
Les résultats de l'extraction du PDF de la facture quantitative tels que consultés sur la plateforme pi.pe
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.
Maintenant que nous avons nos données dans un DataFrame, nous pouvons facilement les exporter vers différents formats. Voici quelques options :
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.
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.
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.
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