Per addestrare o valutare una versione del processore o addestrare un modello predefinito del processore è necessario un set di dati etichettato dei documenti.
Questa pagina descrive come creare un set di dati, importare documenti e definire uno schema. Per etichettare i documenti importati, consulta Etichettare i documenti.
Questa pagina presuppone che tu abbia già creato un processore che supporta l'addestramento, l'ottimizzazione dell'addestramento o la valutazione. Se il tuo processore è supportato, vedrai la scheda Addestramento nella Google Cloud console.
Opzioni di archiviazione del set di dati
Puoi scegliere tra due opzioni per salvare il set di dati:
- Gestita da Google
- Località personalizzata Cloud Storage
A meno che tu non abbia requisiti speciali (ad esempio per conservare i documenti in un insieme di cartelle abilitate per CMEK), ti consigliamo l'opzione di archiviazione gestita da Google, più semplice. Una volta creata, l'opzione di archiviazione del set di dati non può essere modificata per il processore.
La cartella o la sottocartella per una località Cloud Storage personalizzata deve iniziare vuota ed essere trattata come di sola lettura. Eventuali modifiche manuali ai contenuti potrebbero rendere inutilizzabile il set di dati, con il rischio di perderlo. L'opzione di archiviazione gestita da Google non presenta questo rischio.
Per eseguire il provisioning della località di archiviazione:
Spazio di archiviazione gestito da Google (consigliato)
Visualizza le opzioni avanzate durante la creazione di un nuovo processore.

Mantieni l'opzione predefinita del gruppo di pulsanti di opzione per lo spazio di archiviazione Gestito da Google.

Seleziona Crea.

Verifica che il set di dati sia stato creato correttamente e che la località del set di dati sia Località gestita da Google.

Opzione di archiviazione personalizzata
Attiva o disattiva le opzioni avanzate.

Seleziona Specificherò la mia località di archiviazione.

Scegli una cartella Cloud Storage dal componente di input.

Seleziona Crea.

Operazioni API Dataset
Questo esempio mostra come utilizzare il
processors.updateDataset
per creare un set di dati. Una risorsa del set di dati è una risorsa singleton in un processore, il che significa che non esiste una RPC per la creazione di risorse. In alternativa, puoi utilizzare la RPC updateDataset per impostare le preferenze. Document AI offre un'opzione per archiviare i documenti del set di dati in un bucket Cloud Storage che fornisci o per farli gestire automaticamente da Google.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
LOCATION: Your processor location
PROJECT_ID: Your Google Cloud project ID
PROCESSOR_ID The ID of your custom processor
GCS_URI: Your Cloud Storage URI where dataset documents are stored
Bucket fornito
Segui i passaggi successivi per creare una richiesta di set di dati con un bucket Cloud Storage che fornisci.
Metodo HTTP
PATCH https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/datasetJSON della richiesta:
{
"name":"projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset"
"gcs_managed_config" {
"gcs_prefix" {
"gcs_uri_prefix": "GCS_URI"
}
}
"spanner_indexing_config" {}
}Gestita da Google
Se vuoi creare il set di dati gestito da Google, aggiorna le seguenti informazioni:
Metodo HTTP
PATCH https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/datasetJSON della richiesta:
{
"name":"projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset"
"unmanaged_dataset_config": {}
"spanner_indexing_config": {}
}Per inviare la richiesta, puoi utilizzare curl:
Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando:
CURL
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset"Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
}Importa documenti
Un set di dati appena creato è vuoto. Per aggiungere documenti, seleziona Importa documenti e seleziona una o più cartelle Cloud Storage contenenti i documenti che vuoi aggiungere al set di dati.
Se Cloud Storage si trova in un progetto Google Cloud diverso, assicurati di concedere l'accesso in modo che Document AI possa leggere i file da quella località. In particolare, devi concedere il ruolo
Visualizzatore oggetti Storage al
service agent principale di Document AI
service-{project-id}@gcp-sa-prod-dai-core.iam.gserviceaccount.com. Per saperne di più, consulta
Service agent.

Poi scegli una delle seguenti opzioni di assegnazione:
- Addestramento: assegna al set di addestramento.
- Test: assegna al set di test.
- Suddivisione automatica: esegue lo shuffling casuale dei documenti nel set di addestramento e test.
- Non assegnato: non viene utilizzato per l'addestramento o la valutazione. Puoi assegnare manualmente in un secondo momento.
Puoi sempre modificare le assegnazioni in un secondo momento.
Quando selezioni Importa, Document AI importa nel
set di dati tutti i
tipi di file supportati, nonché i file JSON
Document. Per i file JSON Document, Document AI importa il documento e converte le relative entities
in istanze di etichette.
Document AI non modifica la cartella di importazione né legge la cartella dopo che l'importazione è stata completata.
Seleziona Attività nella parte superiore della pagina per aprire il riquadro Attività, che elenca i file importati correttamente e quelli che non sono stati importati.
Se hai già una versione esistente del processore, puoi selezionare la casella di controllo Importa con etichettatura automatica nella finestra di dialogo Importa documenti. I documenti vengono etichettati automaticamente utilizzando il processore precedente quando vengono importati. Non puoi addestrare o ottimizzare l'addestramento dei documenti con etichetta automatica né utilizzarli nel set di test senza contrassegnarli come etichettati. Dopo aver importato i documenti con etichetta automatica, esaminali e correggili manualmente. Poi seleziona Salva per salvare le correzioni e contrassegnare il documento come etichettato. A questo punto puoi assegnare i documenti in modo appropriato. Consulta Etichettatura automatica.
RPC ImportDocuments
Questo esempio mostra come utilizzare il metodo dataset.importDocuments per importare documenti nel set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
LOCATION: Your processor location
PROJECT_ID: Your Google Cloud project ID
PROCESSOR_ID: The ID of your custom processor
GCS_URI: Your Cloud Storage URI where dataset documents are stored
DATASET_TYPE: The dataset type to which you want to add documents. The value should be either `DATASET_SPLIT_TRAIN` or `DATASET_SPLIT_TEST`.
TRAINING_SPLIT_RATIO: The ratio of documents which you want to autoassign to the training set.
Set di dati di addestramento o test
Se vuoi aggiungere documenti al set di dati di addestramento o di test:
Metodo HTTP
POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/importDocumentsJSON della richiesta:
{
"batch_documents_import_configs": {
"dataset_split": DATASET_TYPE
"batch_input_config": {
"gcs_prefix": {
"gcs_uri_prefix": GCS_URI
}
}
}
}Set di dati di addestramento e test
Se vuoi suddividere automaticamente i documenti tra il set di dati di addestramento e di test:
Metodo HTTP
POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/importDocumentsJSON della richiesta:
{
"batch_documents_import_configs": {
"auto_split_config": {
"training_split_ratio": TRAINING_SPLIT_RATIO
},
"batch_input_config": {
"gcs_prefix": {
"gcs_uri_prefix": "gs://test_sbindal/pdfs-1-page/"
}
}
}
}Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:
CURL
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/importDocuments"Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
}RPC DeleteDocuments
Questo esempio mostra come utilizzare il metodo dataset.batchDeleteDocuments per eliminare documenti dal set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
LOCATION: Your processor location
PROJECT_ID: Your Google Cloud project ID
PROCESSOR_ID: The ID of your custom processor
DOCUMENT_ID: The document ID blob returned by <code>ImportDocuments</code> request
Elimina documenti
Metodo HTTP
POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/batchDeleteDocumentsJSON della richiesta:
{
"dataset_documents": {
"individual_document_ids": {
"document_ids": DOCUMENT_ID
}
}
}Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:
CURL
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/batchDeleteDocuments"Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
}Assegna documenti al set di addestramento o test
In Suddivisione dati, seleziona i documenti e assegnali a set di addestramento, test set o non assegnati.

Best practice per il set di test
La qualità del set di test determina la qualità della valutazione.
Il set di test deve essere creato all'inizio del ciclo di sviluppo del processore e bloccato in modo da poter monitorare la qualità del processore nel tempo.
Ti consigliamo di avere almeno 100 documenti per tipo di documento per il test set. È fondamentale assicurarsi che il set di test sia rappresentativo dei tipi di documenti utilizzati dai clienti per il modello in fase di sviluppo.
Il test set deve essere rappresentativo del traffico di produzione in termini di frequenza. Ad esempio, se elabori i moduli W2 e prevedi che il 70% sia per l'anno 2020 e il 30% per l'anno 2019, circa il 70% del set di test deve essere costituito da documenti W2 2020. Una composizione del test set di questo tipo garantisce che a ogni sottotipo di documento venga data l'importanza appropriata durante la valutazione delle prestazioni del processore. Inoltre, se estrai i nomi delle persone dai moduli internazionali, assicurati che il set di test includa moduli di tutti i paesi target.
Best practice per il set di addestramento
I documenti già inclusi nel set di test non devono essere inclusi nel set di addestramento.
A differenza del set di test, il set di addestramento finale non deve essere rappresentativo dell'utilizzo da parte dei clienti in termini di varietà o frequenza dei documenti. Alcune etichette sono più difficili da addestrare di altre. Pertanto, potresti ottenere prestazioni migliori se il set di addestramento è orientato a queste etichette.
All'inizio non è facile capire quali etichette sono difficili. Devi iniziare con un piccolo set di addestramento iniziale campionato in modo casuale utilizzando lo stesso approccio descritto per il set di test. Questo set di addestramento iniziale deve contenere circa il 10% del numero totale di documenti che prevedi di annotare. Poi puoi valutare in modo iterativo la qualità del processore (cercando pattern di errore specifici) e aggiungere altri dati di addestramento.
Definisci lo schema del processore
Dopo aver creato un set di dati, puoi definire uno schema del processore prima o dopo aver importato i documenti.
Lo schema del processore definisce le etichette, come nome e indirizzo, da estrarre dai documenti.
Seleziona Modifica schema, quindi crea, modifica, attiva e disattiva le etichette in base alle esigenze.
Al termine, seleziona Salva.

Note sulla gestione delle etichette dello schema:
Una volta creata un'etichetta dello schema, non è possibile modificarne il nome.
Un'etichetta dello schema può essere modificata o eliminata solo se non sono presenti versioni del processore addestrate. È possibile modificare solo il tipo di dati e il tipo di occorrenza.
La disattivazione di un'etichetta non influisce sulla previsione. Quando invii una richiesta di elaborazione, la versione del processore estrae tutte le etichette attive al momento dell'addestramento.
Ottieni schema dei dati
Questo esempio mostra come utilizzare dataset.
getDatasetSchema
per ottenere lo schema corrente. DatasetSchema è una risorsa singleton, creata automaticamente quando crei una risorsa del set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
LOCATION: Your processor location
PROJECT_ID: Your Google Cloud project ID
PROCESSOR_ID: The ID of your custom processor
Ottieni schema dei dati
Metodo HTTP
GET https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/datasetSchemaCURL
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/datasetSchema"Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/datasetSchema",
"documentSchema": {
"entityTypes": [
{
"name": $SCHEMA_NAME,
"baseTypes": [
"document"
],
"properties": [
{
"name": $LABEL_NAME,
"valueType": $VALUE_TYPE,
"occurrenceType": $OCCURRENCE_TYPE,
"propertyMetadata": {}
},
],
"entityTypeMetadata": {}
}
]
}
}Aggiorna schema del documento
Questo esempio mostra come utilizzare
dataset.updateDatasetSchema
per aggiornare lo schema corrente. Questo esempio mostra un comando per aggiornare lo schema del set di dati in modo che abbia un'etichetta. Se vuoi aggiungere una nuova etichetta, non eliminare o aggiornare le etichette esistenti, puoi chiamare prima getDatasetSchema e apportare le modifiche appropriate nella risposta.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
LOCATION: Your processor location
PROJECT_ID: Your Google Cloud project ID
PROCESSOR_ID: The ID of your custom processor
LABEL_NAME: The label name which you want to add
LABEL_DESCRIPTION: Describe what the label represents
DATA_TYPE: The type of the label. You can specify this as string, number, currency, money, datetime, address, boolean.
OCCURRENCE_TYPE: Describes the number of times this label is expected. Pick an enum value.
Aggiorna schema
Metodo HTTP
PATCH https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/datasetSchemaJSON della richiesta:
{
"document_schema": {
"entityTypes": [
{
"name": $SCHEMA_NAME,
"baseTypes": [
"document"
],
"properties": [
{
"name": LABEL_NAME,
"description": LABEL_DESCRIPTION,
"valueType": DATA_TYPE,
"occurrenceType": OCCURRENCE_TYPE,
"propertyMetadata": {}
},
],
"entityTypeMetadata": {}
}
]
}
}Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:
CURL
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/dataset/datasetSchema"Scegli gli attributi delle etichette
Tipo di dati
Plain text: un valore stringa.Number: un numero intero o in virgola mobile.Money: un valore monetario. Quando etichetti, non includere il simbolo di valuta.- Quando l'entità viene estratta, viene normalizzata in
google.type.Money.
- Quando l'entità viene estratta, viene normalizzata in
Currency: un simbolo di valuta.Datetime: un valore di data o ora.- Quando l'entità viene estratta, viene
normalizzata nel
ISO 8601formato di testo.
- Quando l'entità viene estratta, viene
normalizzata nel
Address- un indirizzo di località.- Quando l'entità viene estratta, viene normalizzata e arricchita con EKG.
Checkbox: un valore booleanotrueofalse.Signature- un valore booleanotrueofalseinnormalized_value.signature_valueche indica se è presente una firma. Supporta i metodiderive.mention_text: un valore booleanoDetectedo vuoto""inhas_signedche indica se è presente una firma. Supporta i metodiderive.normalized_value.text- un valore booleanoDetectedo vuoto""inhas_signedche indica se è presente una firma. Supporta i metodiderive.normalized_value.boolean_valuenon è compilato.
Metodo
- Quando l'entità è
extracted, i campitextAnchor,type,mentionText, epageAnchorvengono compilati. - Quando l'entità viene
derived, i valori derivati potrebbero non essere presenti nel testo del documento. I campitextAnchorepageAnchor.pageRefs[].bounding_polynon vengono compilati.
Occorrenza
Scegli REQUIRED se prevedi che un'entità venga sempre visualizzata nei documenti di un determinato tipo. Scegli OPTIONAL se non hai questa aspettativa.
Scegli ONCE se prevedi che un'entità abbia un valore, anche se lo stesso
valore viene visualizzato più volte nello stesso documento. Scegli MULTIPLE se prevedi che un'entità abbia più valori.
Etichette principali e secondarie
Le etichette principali-secondarie (note anche come entità tabulari) vengono utilizzate per etichettare i dati in una tabella. La tabella seguente contiene 3 righe e 4 colonne.

Puoi definire queste tabelle utilizzando le etichette principali-secondarie. In questo esempio, l'etichetta principale line-item definisce una riga della tabella.
Crea un'etichetta principale
Nella pagina Modifica schema, seleziona Crea etichetta.
Seleziona la casella di controllo Questa è un'etichetta principale e inserisci le altre informazioni. L'etichetta principale deve avere un'occorrenza
optional_multipleorequire_multiplein modo che possa essere ripetuta per acquisire tutte le righe della tabella.Seleziona Salva.

L'etichetta principale viene visualizzata nella pagina Modifica schema, con un'opzione Aggiungi etichetta secondaria accanto.
Per creare un'etichetta secondaria
Accanto all'etichetta principale nella pagina Modifica schema, seleziona Aggiungi etichetta secondaria.
Inserisci le informazioni per l'etichetta secondaria.
Seleziona Salva.
Ripeti l'operazione per ogni etichetta secondaria che vuoi aggiungere.
Le etichette secondarie vengono visualizzate con rientro sotto l'etichetta principale nella pagina Modifica schema.

Le etichette principali-secondarie sono una funzionalità di anteprima e sono supportate solo per le tabelle. La profondità di nidificazione è limitata a 1, il che significa che le entità secondarie non possono contenere altre entità secondarie.
Crea etichette dello schema da documenti etichettati
Crea automaticamente le etichette dello schema importando file JSON Document pre-etichettati.
Durante l'importazione di Document, le etichette dello schema appena aggiunte
vengono aggiunte all'editor dello schema. Seleziona "Modifica schema" per verificare o modificare il tipo di dati e il tipo di occorrenza delle nuove etichette dello schema. Una volta confermato, seleziona le etichette dello schema e seleziona Attiva.
Set di dati di esempio
Per aiutarti a iniziare a utilizzare Document AI Workbench, i set di dati vengono forniti in un
bucket Cloud Storage pubblico che include file JSON di esempio pre-etichettati e non etichettati
Document di più tipi di documenti.
Questi possono essere utilizzati per l'ottimizzazione dell'addestramento o gli estrattori personalizzati a seconda del tipo di documento.
gs://cloud-samples-data/documentai/Custom/
gs://cloud-samples-data/documentai/Custom/1040/
gs://cloud-samples-data/documentai/Custom/Invoices/
gs://cloud-samples-data/documentai/Custom/Patents/
gs://cloud-samples-data/documentai/Custom/Procurement-Splitter/
gs://cloud-samples-data/documentai/Custom/W2-redacted/
gs://cloud-samples-data/documentai/Custom/W2/
gs://cloud-samples-data/documentai/Custom/W9/