Estrazione del testo dai documenti

Ultimo aggiornamento: 16 apr 2025
Estrazione del testo dai documenti

Estrazione di testo per convertire documenti PDF aziendali di alta qualità in un formato di file più semplice che può essere utilizzato da modelli di intelligenza artificiale o per trovare e isolare informazioni chiave da documenti come i contratti.

Modi per sviluppare

È possibile estrarre il testo dai documenti utilizzando questi metodi di programmazione:

Panoramica

Semplificare i documenti aziendali in questo modo è particolarmente utile per le attività di generazione potenziata dal recupero, in cui si desidera trovare informazioni rilevanti per una query utente e includerle con l'input di un modello di base. Includere informazioni contestuali accurate nell'input del modello aiuta il modello di base a incorporare informazioni fattuali e aggiornate nell'output del modello. Per ulteriori informazioni, vedere Generazione aumentata dal recupero (RAG).

L'estrazione del testo è potente anche nei casi in cui si desidera estrarre entità o categorie specifiche di informazioni da un documento in base alla sua struttura.

Python

È possibile estrarre il testo dai file in formato IBM watsonx.ai a livello di programmazione utilizzando la libreria Python.

Vedere la classe Text Extractions della libreria watsonx.ai Python.

Prova il notebook di esempio: utilizza il servizio di estrazione testo di watsonx.ai per estrarre il testo da un file.

Node.js

È possibile estrarre il testo dai file in formato IBM watsonx.ai in modo programmatico utilizzando l'SDK di Node.js. Per ulteriori informazioni, consulta le seguenti risorse:

Per saperne di più, vedere l'esempio di codice.

API REST

È possibile utilizzare il metodo di estrazione del testo del documento dell'API REST watsonx.ai per convertire i file PDF altamente strutturati e che utilizzano diagrammi, immagini e tabelle per trasmettere le informazioni, in un formato di file più facile da lavorare in modo programmatico, come markdown o JSON.

L'API di estrazione del testo applica la tecnologia di comprensione del linguaggio naturale sviluppata da IBM per identificare le strutture dei documenti.

L'estrazione del testo è un processo asincrono che converte un file alla volta. È possibile effettuare richieste di metodi paralleli per estrarre il testo da un insieme di documenti.

L'estrazione del testo è disponibile solo con i piani a pagamento. La fatturazione si basa sul numero di pagine elaborate. Per ulteriori informazioni, consultare la sezione Dettagli di fatturazione per gli asset di IA generativa.

Per i dettagli sui metodi API, consultare la documentazione di riferimento dell'API.

Prima di iniziare

  1. Creare una credenziale di attività.

    La credenziale di un'attività è una chiave API utilizzata per autenticare i lavori di lunga durata avviati dai passaggi che verranno eseguiti durante la procedura di estrazione del testo. Non è necessario passare le credenziali dell'attività nella richiesta API. Per ulteriori informazioni, vedere Creazione delle credenziali dell'attività.

  2. Quando si invia una richiesta di estrazione di testo, si include un payload che specifica i dettagli di configurazione per l'operazione di estrazione del testo. Scegliere le seguenti opzioni, in modo da poter impostare nel corpo della richiesta i parametri che soddisfano le proprie preferenze di configurazione:

  3. Il metodo di estrazione del testo richiede che il file da cui si vuole estrarre il testo sia memorizzato come risorsa di connessione nel progetto e che sia referenziato dal suo ID di connessione. Per ulteriori informazioni, vedere Gestione dei documenti.

Tipi di file supportati

È possibile utilizzare l'API per estrarre il testo dai seguenti tipi di file:

  • PDF
  • GIF
  • JPG
  • PNG
  • TIFF

È possibile memorizzare il testo estratto nei seguenti formati:

  • JSON
  • Markdown

Lingue supportate

La capacità di estrarre il testo dalle immagini è chiamata riconoscimento ottico dei caratteri (OCR). Questa funzionalità è utile per conservare le informazioni contenute in immagini, diagrammi o testo incorporato in file come i PDF scansionati.

Sebbene il riconoscimento ottico dei caratteri possa estrarre il testo da immagini rumorose, la qualità dei file di immagine deve soddisfare il requisito minimo di 80 DPI (punti per pollice).

Se il documento con immagini che si desidera convertire è in una lingua diversa dall'inglese, è necessario specificare la lingua con il suo codice ISO 639 nel parametro language_list della richiesta.

    "languages_list": [
      "fr"
    ]

Se il documento contiene un mix di lingue, elencare ogni lingua separatamente. Il riconoscimento ottico dei caratteri è in grado di convertire le immagini in un documento multilingue solo se le lingue condividono una scrittura comune. Ad esempio, è possibile estrarre il testo dalle immagini di un documento con un mix di testo inglese e francese, poiché entrambe le lingue sono basate sul latino. Tuttavia, non è possibile utilizzare l'OCR per estrarre il testo dalle immagini in un documento con testo misto giapponese e inglese.

La funzione di riconoscimento ottico dei caratteri può estrarre il testo dalle immagini di documenti scritti nelle seguenti lingue:

Lingua Codice lingua ISO 639 Script:
Cinese (semplificato) zh-CN Cinese
Cinese (tradizionale) zh-TW Cinese
Danese da Latino
Olandese nl Latino
Inglese en Latino
Grafia inglese en_hw Latino
Finlandese fi Latino
Francese fr Latino
Tedesco de Latino
Greco el Greco
Ebraico he Ebraico
Italiano it Latino
Giapponese ja Giapponese
Coreano ko Coreano
Norvegese (Bokmål) nb Latino
Norvegese (Nynorsk) nn Latino
Polacco pl Latino
Portoghese pt Latino
Spagnolo es Latino
Svedese sv Latino

Estrazione del testo dalle tabelle

Convertire i dati tabellari all'interno di un documento in testo consumabile che catturi le informazioni della tabella. Molti modelli linguistici di grandi dimensioni hanno difficoltà a interpretare correttamente le informazioni tabellari.

Per abilitare la conversione delle tabelle, specificare il seguente parametro nella richiesta.

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

Scelta del formato del file di output

Per impostazione predefinita, il testo estratto viene scritto in sintassi JSON. Se invece si desidera che il testo estratto sia scritto in markdown, specificare il seguente parametro nel corpo della richiesta API:

"assembly_md": {}

Gestione dei documenti

Si aggiungono i documenti che si desidera elaborare nell'IBM Cloud Object Storage, in modo da poterli consultare dall'API.

Sono supportate solo le risorse di connessione che utilizzano la coppia 'Chiave di accesso e chiave segreta per le credenziali. Per ulteriori informazioni su come impostare la connessione, vedere Riferimento ai file dell'API.

Ad esempio, si fa riferimento al file aggiunto a IBM Cloud Object Storage come segue:

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

Si definisce la posizione in cui si desidera memorizzare il file di output generato come segue:

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

Il diagramma seguente mostra il flusso di lavoro utilizzato per estrarre informazioni strutturali su un documento aziendale con l'API di estrazione del testo.

watsonx.ai flusso di lavoro API di estrazione del testo del documento

Procedura

Seguite questi passaggi di alto livello per estrarre il testo da un documento aziendale utilizzando l'API REST:

  1. Aggiungete il file da cui volete estrarre il testo a un bucket IBM Cloud Object Storage e quindi definite una connessione dal vostro progetto watsonx.ai all'istanza del servizio IBM Cloud Object Storage.

    Per ulteriori informazioni, vedere Aggiunta di file da utilizzare come riferimento dall'API.

  2. Utilizzare il metodo Avviare una richiesta di estrazione di testo per avviare il processo di estrazione del testo.

    Si noti l'ID restituito nel campo metadata.id. Questo ID viene utilizzato come ID di estrazione per controllare lo stato della richiesta nella fase successiva.

  3. Utilizzare la funzione Ottieni i risultati della richiesta per verificare lo stato della richiesta.

    Controllare lo stato è l'unico modo per scoprire se il processo non è riuscito per qualche motivo.

    Quando lo stato è Completed, il file di testo estratto è disponibile nel bucket IBM Cloud Object Storage specificato.

  4. Scaricare il file generato da Cloud Object Storage.

Esempio di richiesta

Ad esempio, il comando seguente invia una richiesta per estrarre il testo dal file 'retail_guidebook.pdf e salvarlo in formato 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...'

Il corpo della richiesta è il seguente:

{
    "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": {}
  }

Dalla risposta, copiare il metadata.id, come 64162e0a-b05d-4ba6-a688-422893f58663. Specificare questo ID nell'endpoint che si usa per controllare lo stato del processo di estrazione.

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...'

Dettagli output

Il testo estratto viene scritto in un file markdown con il nome specificato nel campo 'results_reference.location.file_name.

Il markdown cattura le strutture del documento, come le sezioni e le tabelle. Ad esempio, l'immagine seguente mostra come una tabella del file PDF originale viene rappresentata in markdown dopo l'estrazione del testo. È inclusa un'anteprima della tabella markdown per mostrare che il testo della tabella originale nel PDF rimane intatto dopo l'estrazione.

Tre schermate: la prima mostra una tabella in un documento PDF, la successiva mostra il testo della tabella estratto come markdown e la terza mostra un'anteprima della tabella

Esempio di output JSON

Quando il testo viene estratto in un file JSON, il file risultante contiene dettagli sulle diverse strutture di dati del documento, come sezioni, paragrafi, strutture di tabelle, token e altro.

Per ulteriori informazioni su come lavorare con il testo estratto in formato JSON, vedere Parsing delle strutture JSON generate dall'estrazione del testo.

Utilizzando il testo estratto dal file PDF

È possibile convertire il file markdown generato in un file di testo cambiando l'estensione del file da '.md a '.txt. Il file di testo risultante include i tag markdown. Se si desidera rimuovere i tag, si può usare una libreria di parser per trovare e convertire i tag.

È possibile utilizzare una libreria di elaborazione JSON per estrarre il testo dal file JSON generato e memorizzarlo come testo normale. Ad esempio, il comando seguente estrae il testo da ogni token per tutte le strutture del documento e lo memorizza in un file chiamato parsed_output_text.txt:

cat output_retail.json | jq '[.all_structures.tokens[].text] | join(" ")' > parsed_output_text.txt
Nota: Questo comando utilizza jq, un processore JSON a riga di comando che deve essere installato separatamente.

Dopo aver convertito il file generato in un file TXT, è possibile utilizzare il testo estratto come informazione contestuale per un prompt del modello di fondazione nei seguenti modi:

Ulteriori informazioni

Argomento principale: Codifica di soluzioni di IA generativa