0 / 0
Torna alla versione inglese della documentazione
Estrazione del testo dai documenti
Ultimo aggiornamento: 06 dic 2024
Estrazione del testo dai documenti

Convertire documenti PDF aziendali di alta qualità in un formato di file più semplice, utilizzabile dai modelli AI.

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

La semplificazione dei documenti aziendali in questo modo è particolarmente utile per le attività di generazione aumentata del reperimento, in cui si desidera trovare informazioni rilevanti per una query dell'utente e includerle nell'input di un foundation model. L'inclusione di informazioni contestuali accurate nell'input del modello aiuta il foundation model a incorporare informazioni concrete e aggiornate nell'output del modello. Per ulteriori informazioni, vedere Generazione aumentata dal recupero (RAG).

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.

Tipi di file supportati

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

  • PDF

È possibile memorizzare il testo estratto nei seguenti formati:

  • JSON
  • Markdown

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

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

Dettagli API

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

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

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 Riferimento dei file 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 il metodo Get the results of the request 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.

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

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 si presenta come segue:

{
    "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 foundation model nei seguenti modi:

Ulteriori informazioni

Argomento principale: Codifica di soluzioni di IA generativa

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni