0 / 0
Retourner à la version anglaise de la documentation
Extraction de texte à partir de documents
Dernière mise à jour : 06 déc. 2024
Extraction de texte à partir de documents

Convertissez des documents PDF professionnels de haute qualité dans un format de fichier plus simple pouvant être utilisé par des modèles d'IA.

Vous pouvez utiliser la méthode d'extraction de texte de document de l'API REST watsonx.ai pour convertir les fichiers PDF qui sont très structurés et utilisent des diagrammes, des images et des tableaux pour transmettre des informations, dans un format de fichier plus facile à utiliser par programme, tel que markdown ou JSON.

L'extraction de texte n'est disponible qu'avec les plans payants. La facturation est basée sur le nombre de pages traitées. Pour plus d'informations, voir les détails de la facturation pour les ressources génératives d'IA.

Simplifier vos documents commerciaux de cette manière est particulièrement utile pour les tâches de génération augmentée par extraction, lorsque vous souhaitez trouver des informations pertinentes par rapport à une requête d'utilisateur et les inclure dans les données d'entrée d'un foundation model. L'inclusion d'informations contextuelles précises dans les données d'entrée du modèle permet au foundation model d'intégrer des informations factuelles et actualisées dans les données de sortie du modèle. Pour plus d'informations, voir Retrieval-augmented generation (RAG).

L'API d'extraction de texte applique la technologie de compréhension du langage naturel développée par IBM pour identifier les structures des documents.

L'extraction de texte est un processus asynchrone qui convertit un fichier à la fois. Vous pouvez effectuer des demandes de méthodes parallèles pour extraire du texte d'un ensemble de documents.

Types de fichier pris en charge

Vous pouvez utiliser l'API pour extraire du texte des types de fichiers suivants :

  • format PDF

Vous pouvez enregistrer le texte extrait dans les formats suivants :

  • JavaScript Object Notation
  • Démarque

Gestion des documents

Vous ajoutez les documents que vous souhaitez traiter dans IBM Cloud Object Storage afin de pouvoir les référencer à partir de l'API.

Seuls les actifs de connexion qui utilisent la paire " Clé d'accès et clé secrète pour les informations d'identification sont pris en charge. Pour plus d'informations sur l'établissement de la connexion, voir Référencement de fichiers à partir de l'API.

Par exemple, vous faites référence au fichier que vous ajoutez à IBM Cloud Object Storage comme suit :

"document_location": {
  "type": "connection_asset",
  "connection": {
    "id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
  },
  "location": {
    "file_name": "document.pdf",
    "bucket":"janessandbox"
  }
}

Vous définissez l'emplacement où vous souhaitez stocker le fichier de sortie généré comme suit :

"results_location": {
  "type": "connection_asset",
  "connection": {
    "id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
  },
  "location": {
    "file_name": "extracted_document.json"
  }
}

Langues prises en charge

La capacité d'extraction de texte à partir d'images est appelée reconnaissance optique de caractères (OCR). Cette capacité est utile pour préserver les informations qui sont représentées dans des images, des diagrammes ou du texte intégré dans des fichiers tels que des PDF numérisés.

Bien que la reconnaissance optique de caractères permette d'extraire du texte à partir d'images bruitées, la qualité des fichiers d'image doit répondre à l'exigence minimale de 80 DPI (points par pouce).

Si le document avec images que vous voulez convertir est dans une langue autre que l'anglais, vous devez spécifier la langue par son code ISO 639 dans le paramètre language_list de votre requête.

    "languages_list": [
      "fr"
    ]

Si le document comporte un mélange de langues, il convient d'énumérer chaque langue séparément. La reconnaissance optique de caractères ne peut convertir les images d'un document multilingue que si les langues partagent un script commun. Par exemple, vous pouvez extraire du texte à partir d'images dans un document contenant un mélange de texte anglais et français, car les deux langues sont basées sur le latin. Cependant, vous ne pouvez pas utiliser l'OCR pour extraire le texte des images d'un document contenant à la fois du texte japonais et du texte anglais.

La fonction de reconnaissance optique de caractères permet d'extraire du texte à partir d'images dans des documents rédigés dans les langues suivantes :

Langue Code linguistique ISO 639 Script
Chinois (simplifié) zh-CN Chinois
Chinois (traditionnel) zh-TW Chinois
Danois da Latin
Néerlandais nl Latin
Anglais en Latin
Écriture anglaise en_hw Latin
Finnois fi Latin
Français fr Latin
Allemand de Latin
Grec el Grec
Hébreu he Hébreu
Italien it Latin
Japonais ja Japonais
Coréen ko Coréen
Norvégien (Bokmål) nb Latin
Norvégien (nynorsk) nn Latin
Polonais pl Latin
Portugais pt Latin
Espagnol es Latin
Suédois sv Latin

Extraction de texte à partir de tableaux

Convertir les données tabulaires d'un document en texte consommable qui capture les informations du tableau. De nombreux modèles linguistiques de grande taille ont des difficultés à interpréter correctement les informations tabulaires.

Pour activer la conversion des tableaux, spécifiez le paramètre suivant dans votre demande.

"steps": {
    "tables_processing": {
      "enabled": true
    }
  }

Choix du format du fichier de sortie

Par défaut, le texte extrait est écrit en syntaxe JSON. Si vous souhaitez que le texte extrait soit écrit en markdown, spécifiez le paramètre suivant dans le corps de la requête API :

"assembly_md": {}

Détails relatifs aux API

Le diagramme suivant montre le flux de travail que vous utilisez pour extraire des informations structurelles sur un document commercial à l'aide de l'API d'extraction de texte de document.

watsonx.ai workflow API d'extraction de texte de document

Suivez les étapes suivantes pour extraire du texte d'un document commercial à l'aide de l'API REST :

  1. Ajoutez le fichier dont vous souhaitez extraire le texte à un IBM Cloud Object Storage bucket, puis définissez une connexion entre votre watsonx.ai et l'instance de service IBM Cloud Object Storage.

    Pour plus d'informations, voir Référencement des fichiers de l'API.

  2. Utilisez la méthode Démarrer une demande d'extraction de texte pour lancer le processus d'extraction de texte.

    Notez l'identifiant renvoyé dans le champ metadata.id. Vous utiliserez cet identifiant comme identifiant d'extraction pour vérifier le statut de votre demande à l'étape suivante.

  3. Utilisez la méthode Get the results of the request pour vérifier l'état de votre demande.

    La vérification de l'état est le seul moyen de savoir si le processus a échoué pour une raison quelconque.

    Lorsque l'état est Completed, le fichier texte extrait est disponible dans le IBM Cloud Object Storage bucket spécifié.

  4. Téléchargez le fichier généré à partir de Cloud Object Storage.

Pour plus de détails sur les méthodes de l'API, voir la documentation de référence de l'API.

Exemple de demande

Par exemple, la commande suivante soumet une requête pour extraire du texte du fichier " retail_guidebook.pdf et l'enregistrer au format markdown.

curl -X POST \
  'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions?version=2024-10-18' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...'

Le corps de la requête se présente comme suit :

{
    "project_id": "e40e5895-ce4d-42a3-b699-8ac764b89a09",
    "document_reference": {
      "type": "connection_asset",
      "connection": {
        "id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
      },
      "location": {
        "bucket":"my-cloud-object-storage-bucket",
        "file_name": "retail_guidebook.pdf"
      }
    },
    "results_reference": {
      "type": "connection_asset",
      "connection": {
        "id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
      },
      "location": {
        "bucket":"my-cloud-object-storage-bucket",
        "file_name": "output_retail.md"
      }
    },
    "steps": {
      "ocr": {
        "languages_list": [
          "en"
        ]
      },
      "tables_processing": {
        "enabled": true
      }
    },
    "assembly_md": {}
  }

Dans la réponse, copiez le metadata.id, tel que 64162e0a-b05d-4ba6-a688-422893f58663. Spécifiez cet identifiant dans le point de terminaison que vous utilisez pour vérifier l'état du processus d'extraction.

curl -X GET \
  'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions/64162e0a-b05d-4ba6-a688-422893f58663?project_id=e40e5895-ce4d-42a3-b699-8ac764b89a09&version=2024-09-23' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...'

Détails de la sortie

Le texte extrait est écrit dans un fichier markdown portant le nom que vous avez spécifié dans le champ " results_reference.location.file_name.

La démarque capture les structures du document, telles que les sections et les tableaux. Par exemple, l'image suivante montre comment un tableau du fichier PDF original est représenté en markdown après l'extraction du texte. Un aperçu du tableau markdown est inclus pour montrer que le texte du tableau original dans le PDF reste intact après l'extraction.

Trois captures d'écran : la première montre un tableau dans un document PDF, la suivante montre le texte du tableau extrait en markdown, et la troisième montre un aperçu du tableau

Exemple de sortie JSON

Lorsque le texte est extrait vers un fichier JSON, le fichier résultant contient des détails sur les différentes structures de données du document, telles que les sections, les paragraphes, les structures de tableau, les jetons, etc.

Pour plus d'informations sur la manière de travailler avec du texte extrait au format JSON, voir Analyse des structures JSON générées par l'extraction de texte.

Utilisation du texte extrait du fichier PDF

Vous pouvez convertir le fichier markdown généré en fichier texte en changeant l'extension du fichier de " .md à " .txt. Le fichier texte résultant comprend les balises markdown. Si vous souhaitez supprimer le balisage, vous pouvez utiliser une bibliothèque d'analyseur syntaxique pour trouver et convertir les balises.

Vous pouvez utiliser une bibliothèque de traitement JSON pour extraire le texte du fichier JSON généré et le stocker en tant que texte brut. Par exemple, la commande suivante extrait le texte de chaque jeton pour toutes les structures du document et le stocke dans un fichier nommé parsed_output_text.txt :

cat output_retail.json | jq '[.all_structures.tokens[].text] | join(" ")' > parsed_output_text.txt
Note: Cette commande utilise jq, un processeur JSON en ligne de commande qui doit être installé séparément.

Après avoir converti le fichier généré en fichier TXT, vous pouvez utiliser le texte extrait comme information contextuelle pour une invite de foundation model manière suivante :

En savoir plus

Thème parent: Codage de solutions d'IA générative

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus