Instructions et exigences de configuration de l'atelier
Protégez votre compte et votre progression. Utilisez toujours une fenêtre de navigation privée et les identifiants de l'atelier pour exécuter cet atelier.

Analyser des formulaires avec Document AI et Python

Atelier 10 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

GSP1139

Logo des ateliers d'auto-formation Google Cloud

Présentation

Document AI est une solution de reconnaissance de documents qui exploite des données non structurées (par exemple, des documents, des e-mails, des factures, des formulaires, etc.) et en facilite la compréhension, l'analyse et l'utilisation. L'API fournit une structure via la classification de contenu, l'extraction d'entités, la recherche avancée, etc.

Dans cet atelier, vous allez apprendre à utiliser l'analyseur de formulaires de Document AI pour analyser un formulaire manuscrit avec Python. Vous allez utiliser un formulaire d'admission médicale simple comme exemple, mais cette procédure fonctionne avec n'importe quel formulaire généralisé compatible avec DocAI.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :

  • Extraire des données d'un formulaire scanné à l'aide de l'analyseur de formulaires de Document AI
  • Extraire des paires clé/valeur d'un formulaire à l'aide de l'analyseur de formulaires de Document AI
  • Extraire et exporter des données CSV à partir d'un formulaire à l'aide de l'analyseur de formulaires de Document AI

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :

    • Le bouton "Ouvrir la console Google Cloud"
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).

    L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.

    {{{user_0.username | "Username"}}}

    Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".

  4. Cliquez sur Suivant.

  5. Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.

    {{{user_0.password | "Password"}}}

    Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".

  6. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  7. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas à des essais sans frais.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche. Icône du menu de navigation et champ de recherche

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

  2. Passez les fenêtres suivantes :

    • Accédez à la fenêtre d'informations de Cloud Shell.
    • Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

Résultat :

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Activer l'API Document AI

Avant de pouvoir utiliser Document AI, vous devez activer l'API.

  1. Ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell en haut de la console.

  2. Dans Cloud Shell, exécutez la commande suivante pour activer l'API Document AI.

gcloud services enable documentai.googleapis.com

L'écran qui s'affiche devrait ressembler à ce qui suit :

Operation "operations/..." finished successfully.

Vous devrez également installer Pandas, une bibliothèque d'analyse de données Open Source pour Python.

  1. Exécutez la commande suivante pour installer Pandas.
pip3 install --upgrade pandas
  1. Exécutez la commande suivante pour installer les bibliothèques clientes Python pour Document AI.
pip3 install --upgrade google-cloud-documentai

L'écran qui s'affiche devrait ressembler à ce qui suit :

... Installing collected packages: google-cloud-documentai Successfully installed google-cloud-documentai-2.15.0

Vous êtes maintenant prêt à utiliser l'API Document AI.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Activer l'API Document AI

Tâche 2 : Créer un processeur d'analyse de formulaires

Vous devez d'abord créer une instance d'analyseur de formulaires à utiliser sur la plate-forme Document AI lors de ce tutoriel.

  1. Dans la console Cloud, ouvrez le menu de navigation (Icône du menu de navigation), cliquez sur Afficher tous les produits > Intelligence artificielle > Document AI.

Page de présentation de Document AI

  1. Cliquez sur Explorer les processeurs, puis dans Général, cliquez sur Analyseur de formulaires pour ouvrir la page Créer un processeur.

Processeurs

  1. Nommez-le lab-form-parser et sélectionnez la région la plus proche dans la liste.

  2. Cliquez sur Créer pour créer le processeur.

  3. Copiez l'ID de votre processeur. Vous devrez l'utiliser ultérieurement dans votre code.

ID du processeur

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer un processeur

Tester le processeur dans la console Cloud

Vous pouvez tester votre processeur dans la console en important un document.

  1. Effectuez un clic droit sur l'image ci-dessous, puis sélectionnez Enregistrer l'image sous pour télécharger l'exemple de formulaire.

Formulaire médical

  1. Sur la page Détails du processeur, cliquez sur Importer un document de test. Sélectionnez le formulaire que vous venez de télécharger.

Votre processeur d'analyse de formulaires traitera le document et renverra les données de formulaire analysées. Le résultat devrait ressembler à ce qui suit :

Formulaire analysé

Tâche 3 : Télécharger l'exemple de formulaire

Dans cette section, vous allez télécharger un exemple de document contenant un formulaire d'admission médicale simple.

  1. Exécutez la commande suivante pour télécharger l'exemple de formulaire dans Cloud Shell.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/intake-form.pdf .
  1. Vérifiez que le fichier a bien été téléchargé dans Cloud Shell à l'aide de la commande suivante :
ls intake-form.pdf

Tâche 4 : Extraire les paires clé/valeur du formulaire

Dans cette section, vous allez utiliser l'API de traitement en ligne pour appeler le processeur d'analyse de formulaires que vous venez de créer. Ensuite, vous allez extraire les paires clé/valeur détectées dans le document.

Le traitement en ligne permet d'envoyer un unique document. Vous n'avez ensuite plus qu'à attendre la réponse. Vous pouvez également utiliser le traitement par lot si vous souhaitez envoyer plusieurs fichiers ou si la taille du fichier dépasse le nombre maximal de pages pour le traitement en ligne.

Le code permettant d'envoyer une requête de traitement est presque identique pour tous les types de processeurs : seul l'ID du processeur change. L'objet de réponse Document contient une liste des pages du document d'entrée. Chaque objet page contient une liste de champs de formulaire et leur emplacement dans le texte.

Le code suivant parcourt chaque page et en extrait l'ensemble des clés, valeurs et scores de confiance. Il s'agit de données structurées qui peuvent être plus facilement stockées dans des bases de données ou utilisées dans d'autres applications.

  1. Dans Cloud Shell, créez un fichier nommé form_parser.py et collez-y le code suivant :
import pandas as pd from google.cloud import documentai_v1 as documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ Processes a document using the Document AI Online Processing API. """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # Instantiates a client documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # The full resource name of the processor, e.g.: # projects/project-id/locations/location/processor/processor-id # You must create new processors in the Cloud Console first resource_name = documentai_client.processor_path(project_id, location, processor_id) # Read the file into memory with open(file_path, "rb") as image: image_content = image.read() # Load Binary Data into Document AI RawDocument Object raw_document = documentai.RawDocument( content=image_content, mime_type=mime_type ) # Configure the process request request = documentai.ProcessRequest( name=resource_name, raw_document=raw_document ) # Use the Document AI client to process the sample form result = documentai_client.process_document(request=request) return result.document def trim_text(text: str): """ Remove extra space characters from text (blank, newline, tab, etc.) """ return text.strip().replace("\n", " ") PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu' PROCESSOR_ID = "FORM_PARSER_ID" # Create processor in Cloud Console # The local file in your current working directory FILE_PATH = "form.pdf" # Refer to https://cloud.google.com/document-ai/docs/processors-list # for supported file types MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) names = [] name_confidence = [] values = [] value_confidence = [] for page in document.pages: for field in page.form_fields: # Get the extracted field names names.append(trim_text(field.field_name.text_anchor.content)) # Confidence - How "sure" the Model is that the text is correct name_confidence.append(field.field_name.confidence) values.append(trim_text(field.field_value.text_anchor.content)) value_confidence.append(field.field_value.confidence) # Create a Pandas Dataframe to print the values in tabular format. df = pd.DataFrame( { "Field Name": names, "Field Name Confidence": name_confidence, "Field Value": values, "Field Value Confidence": value_confidence, } ) print(df)
  1. Remplacez YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID et FILE_PATH par les valeurs appropriées pour votre environnement.
Remarque : FILE_PATH correspond au nom du fichier que vous avez téléchargé dans Cloud Shell à l'étape précédente. Si vous n'avez pas renommé le fichier, il devrait s'appeler intake-form.pdf. C'est cette valeur que vous devez indiquer dans le code.
  1. Exécutez le script avec la commande suivante :
python3 form_parser.py

Vous devriez obtenir le résultat suivant :

Field Name Field Name Confidence Field Value Field Value Confidence 0 Phone #: 0.999982 (906) 917-3486 0.999982 1 Emergency Contact: 0.999972 Eva Walker 0.999972 2 Marital Status: 0.999951 Single 0.999951 3 Gender: 0.999933 F 0.999933 4 Occupation: 0.999914 Software Engineer 0.999914 5 Referred By: 0.999862 None 0.999862 6 Date: 0.999858 9/14/19 0.999858 7 DOB: 0.999716 09/04/1986 0.999716 8 Address: 0.999147 24 Barney Lane 0.999147 9 City: 0.997718 Towaco 0.997718 10 Name: 0.997345 Sally Walker 0.997345 11 State: 0.996944 NJ 0.996944 ...

Tâche 5 : Analyser des tableaux

L'analyseur de formulaires peut également extraire des données de tableaux dans des documents. Dans cette section, vous allez télécharger un nouvel exemple de document et extraire les données du tableau. Puisque vous chargez les données dans Pandas, vous pouvez les exporter dans un fichier CSV et dans de nombreux autres formats en utilisant un seul appel de méthode.

Télécharger le formulaire d'exemple contenant des tableaux

Notre exemple de document contient un formulaire et un tableau.

  1. Exécutez la commande suivante pour télécharger l'exemple de formulaire dans Cloud Shell.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/form_with_tables.pdf .
  1. Vérifiez que le fichier a bien été téléchargé dans Cloud Shell à l'aide de la commande suivante :
ls form_with_tables.pdf

Extraire les données des tableaux

La requête de traitement des données de tableaux est identique à la requête d'extraction de paires clé/valeur. La différence réside dans les champs à partir desquels vous extrayez les données dans la réponse. Les données des tableaux sont stockées dans le champ pages[].tables[].

Cet exemple extrait les informations des lignes d'en-tête et des lignes de corps de chaque tableau sur toutes les pages, puis affiche le tableau et l'enregistre au format CSV.

  1. Créez un fichier nommé table_parsing.py et collez-y le code suivant :
# type: ignore[1] """ Uses Document AI online processing to call a form parser processor Extracts the tables and data in the document. """ from os.path import splitext from typing import List, Sequence import pandas as pd from google.cloud import documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ Processes a document using the Document AI Online Processing API. """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # Instantiates a client documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # The full resource name of the processor, e.g.: # projects/project-id/locations/location/processor/processor-id # You must create new processors in the Cloud Console first resource_name = documentai_client.processor_path(project_id, location, processor_id) # Read the file into memory with open(file_path, "rb") as image: image_content = image.read() # Load Binary Data into Document AI RawDocument Object raw_document = documentai.RawDocument( content=image_content, mime_type=mime_type ) # Configure the process request request = documentai.ProcessRequest( name=resource_name, raw_document=raw_document ) # Use the Document AI client to process the sample form result = documentai_client.process_document(request=request) return result.document def get_table_data( rows: Sequence[documentai.Document.Page.Table.TableRow], text: str ) -> List[List[str]]: """ Get Text data from table rows """ all_values: List[List[str]] = [] for row in rows: current_row_values: List[str] = [] for cell in row.cells: current_row_values.append( text_anchor_to_text(cell.layout.text_anchor, text) ) all_values.append(current_row_values) return all_values def text_anchor_to_text(text_anchor: documentai.Document.TextAnchor, text: str) -> str: """ Document AI identifies table data by their offsets in the entirety of the document's text. This function converts offsets to a string. """ response = "" # If a text segment spans several lines, it will # be stored in different text segments. for segment in text_anchor.text_segments: start_index = int(segment.start_index) end_index = int(segment.end_index) response += text[start_index:end_index] return response.strip().replace("\n", " ") PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu' PROCESSOR_ID = "FORM_PARSER_ID" # Create processor before running sample # The local file in your current working directory FILE_PATH = "form_with_tables.pdf" # Refer to https://cloud.google.com/document-ai/docs/file-types # for supported file types MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) header_row_values: List[List[str]] = [] body_row_values: List[List[str]] = [] # Input Filename without extension output_file_prefix = splitext(FILE_PATH)[0] for page in document.pages: for index, table in enumerate(page.tables): header_row_values = get_table_data(table.header_rows, document.text) body_row_values = get_table_data(table.body_rows, document.text) # Create a Pandas Dataframe to print the values in tabular format. df = pd.DataFrame( data=body_row_values, columns=pd.MultiIndex.from_arrays(header_row_values), ) print(f"Page {page.page_number} - Table {index}") print(df) # Save each table as a CSV file output_filename = f"{output_file_prefix}_pg{page.page_number}_tb{index}.csv" df.to_csv(output_filename, index=False)
  1. Remplacez YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID et FILE_PATH par les valeurs appropriées pour votre environnement.
Remarque : FILE_PATH correspond au nom du fichier que vous avez téléchargé dans Cloud Shell à l'étape précédente. Si vous n'avez pas renommé le fichier, il devrait s'appeler form_with_tables.pdf. Il s'agit de la valeur par défaut, et vous n'avez pas besoin de la modifier.
  1. Exécutez le script avec la commande suivante :
python3 table_parsing.py

Vous devriez obtenir le résultat suivant :

Page 1 - Table 0 Item Description 0 Item 1 Description 1 1 Item 2 Description 2 2 Item 3 Description 3

Le répertoire à partir duquel vous exécutez le code devrait également comporter un nouveau fichier CSV.

  1. Exécutez la commande suivante pour lister les fichiers de votre répertoire de travail actuel :
ls

Vous devriez obtenir le résultat suivant :

form_with_tables_pg1_tb0.csv

Félicitations !

Vous avez réussi à utiliser l'API Document AI pour extraire des données d'un formulaire manuscrit. Vous avez également appris à utiliser la bibliothèque cliente Python de Document AI pour extraire des paires clé/valeur d'un formulaire ainsi que des données tabulaires d'un formulaire contenant des tableaux.

Étapes suivantes et informations supplémentaires

Consultez les ressources suivantes pour en savoir plus sur Document AI et la bibliothèque cliente Python :

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière modification du manuel : 21 juillet 2025

Dernier test de l'atelier : 21 juillet 2025

Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.