0 / 0
Retourner à la version anglaise de la documentation
Extraction programmatique de texte à partir d'un fichier
Dernière mise à jour : 03 févr. 2025
Extraction programmatique de texte à partir d'un fichier

Vous pouvez extraire du texte des fichiers dans IBM watsonx.ai de manière programmatique en utilisant la bibliothèque Python.

Vous pouvez exécuter une tâche d'extraction de texte de document pour extraire le texte d'un fichier stocké dans IBM Cloud Object Storage à l'aide du ibm-watsonx-ai Python SDK et récupérer les résultats dans un fichier JSON.

Exemple de bloc-notes

L'exemple de notebook Python " Use watsonx.ai Text Extraction service to extract text from file " contient du code pour exécuter un travail d'extraction de texte dans watsonx.ai

Utiliser une tâche d'extraction de texte pour extraire du texte d'un fichier

Ce cahier utilise la classe Text Extractions de la bibliothèque watsonx.ai Python.

Les étapes de haut niveau suivantes sont nécessaires pour configurer un document source à partir duquel le texte est extrait et un fichier de sortie pour collecter les résultats extraits, et pour exécuter une tâche d'extraction de texte afin de générer les résultats :

  1. Téléchargez un document source vers IBM Cloud Object Storage et un fichier JSON à remplir avec les données extraites.

    from ibm_watsonx_ai.helpers import DataConnection, S3Location
    
    local_source_file_name = "granite_code_models_paper.pdf"
    source_file_name = "./files/granite_code_models_paper.pdf"
    results_file_name = "./files/text_extraction_granite_code_models_paper.json"
    
  2. Créer des objets de connexion de données qui représentent le document source et le fichier de résultats.

    document_reference = DataConnection(connection_asset_id=connection_asset_id,
                                        location=S3Location(bucket=bucketname,
                                                            path=source_file_name))
    
    results_reference = DataConnection(connection_asset_id=connection_asset_id,
                                       location=S3Location(bucket=bucketname,
                                                           path=results_file_name))
    
  3. Initialiser un objet gestionnaire d'extraction de texte en utilisant la classe TextExtractions.

    from ibm_watsonx_ai.foundation_models.extractions import TextExtractions
    
    extraction = TextExtractions(api_client=client,
                                project_id=project_id)
    
  4. Définissez les propriétés que vous souhaitez extraire dans le processus d'extraction de texte. Dans cet exemple, le texte en anglais est détecté à l'aide de la reconnaissance optique de caractères (OCR) et tous les tableaux présents dans les documents sont traités.

    from ibm_watsonx_ai.metanames import TextExtractionsMetaNames
    
    steps = {TextExtractionsMetaNames.OCR: {'language_list': ['en']},
            TextExtractionsMetaNames.TABLE_PROCESSING: {'enabled': True}}
    
  5. Exécutez le travail d'extraction de texte et récupérez l'identifiant du travail.

    details = extraction.run_job(document_reference=document_reference, 
                                results_reference=results_reference, 
                                steps=steps)
    extraction_job_id = extraction.get_id(extraction_details=details)
    
  6. Une fois la tâche terminée, vous pouvez télécharger le fichier de sortie des résultats et traiter les données extraites.

    results_reference = extraction.get_results_reference(extraction_id=extraction_job_id)
    filename = "text_extraction_results_granite_code_models_paper.json"
    results_reference.download(filename=filename)
    
    import json
    
    metadata = json.load(open(filename, 'r'))
    metadata.get('all_structures').get('tokens')[:10]
    

En savoir plus

Sujet parent : Python bibliothèque