Parametri comuni di elaborazione del testo
Quando si invia una richiesta di elaborazione del testo utilizzando l'API REST watsonx.ai, si include un payload che specifica i dettagli di configurazione per l'operazione di elaborazione del testo.
È possibile utilizzare diverse API di elaborazione del testo per comprendere e convertire i documenti in un formato testuale più semplice, utilizzabile in una soluzione RAG. È possibile utilizzare l'API di classificazione del testo per determinare se il documento corrisponde al formato dei dati strutturati di alcuni tipi di documenti comuni. In base ai risultati della classificazione, è possibile personalizzare la richiesta di estrazione del testo per estrarre il testo e altri contenuti strutturati dal documento in modo più efficiente.
Effettuare le scelte relative alle seguenti impostazioni, comuni alle richieste API REST di classificazione ed estrazione del testo:
- Lingua del documento di input
- Elaborare il testo dalle immagini del documento di input
- Elaborare le coppie chiave-valore nel documento di input
Oltre ai parametri comuni dell'API REST, è possibile impostare parametri specifici per i vari metodi API di elaborazione del testo nella libreria di comprensione dei documenti. Per ulteriori dettagli, consultare i seguenti argomenti:
Specificare le lingue del documento di input con il parametro languages
Se il documento è in una lingua diversa dall'inglese, è necessario specificare la lingua con il suo codice ISO 639 nel parametro languages della richiesta API.
"parameters": {
"languages": [
"de"
]
}
Se il documento contiene un mix di lingue, elencare ogni lingua separatamente. Il codice lingua specificato varia a seconda che il documento contenga testo stampato a macchina o scrittura a mano. Se il documento contiene testo stampato e scritto a mano in una lingua specifica, è necessario specificare entrambi i tipi di codici lingua nell'elenco delle lingue.
Restrizioni linguistiche con le API di elaborazione del testo
- Classificazione testo
È possibile utilizzare l'API di classificazione solo con documenti in lingua inglese.
- Estrazione di testo
Non è possibile utilizzare l'API di estrazione con un documento in lingua mista se le lingue non condividono una scrittura comune. Tuttavia, è possibile utilizzare documenti con un mix di inglese e un'altra lingua in qualsiasi scrittura. 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 estrarre il testo dalle immagini in un documento con testo misto giapponese e francese.
È possibile utilizzare l'API di estrazione del testo per estrarre i dati delle coppie chiave-valore solo da documenti in lingua inglese.
Lingue di scrittura supportate
La tabella seguente elenca le lingue supportate per il riconoscimento del testo scritto a mano:
| Lingua | Chiave di invocazione |
|---|---|
| Inglese | it_hw / eng_hw |
| Tedesco | de_hw / deu_hw |
Se il documento contiene testo scritto a mano in inglese, utilizza il en_hw codice lingua nel corpo della richiesta API supportato su s390x.
Lingue supportate per la stampa automatica
La tabella seguente fornisce dettagli sulle lingue supportate dall'API di estrazione del testo per il riconoscimento del testo stampato:
| Lingua | Codice lingua ISO 639 | Codice script API | Script |
|---|---|---|---|
| acehnese | ‐ | latn |
latino |
| Africano | af |
latn |
latino |
| Albanese | sq |
latn |
latino |
| Araucano/Mapuche | ‐ | latn |
latino |
| Awadhi | ‐ | deva |
Devanagari |
| aymara | ay |
latn |
latino |
| balinese | ‐ | latn |
latino |
| Basco | eu |
latn |
latino |
| Bielorusso | be |
cyrl |
Cirillico |
| Bemba | ‐ | latn |
latino |
| Bengalese | ‐ | beng |
Bengalese |
| Bikol | ‐ | latn |
latino |
| bislama | bi |
latn |
latino |
| bhojpuri | ‐ | deva |
Devanagari |
| Bulgaro | bg |
cyrl |
Cirillico |
| Catalano | ca |
latn |
latino |
| Cebuano | ‐ | latn |
latino |
| Ceceno | ‐ | cyrl |
Cirillico |
| Cinese (semplificato) | zh_cn |
cjk |
Han (semplificato) |
| Cinese (tradizionale) | zh_tw |
cjk |
Han (tradizionale) |
| Choctaw | ‐ | latn |
latino |
| Cree | cr |
latn |
latino |
| Dakota | ‐ | latn |
latino |
| Danese | da |
latn |
latino |
| Dogri | ‐ | deva |
Devanagari |
| Olandese | nl |
latn |
latino |
| Inglese | en |
latn |
latino |
| Inglese (britannico) | en |
latn |
latino |
| Estone | et |
latn |
latino |
| fijiano | fj |
latn |
latino |
| Filippino | fil |
latn |
latino |
| Finlandese | fi |
latn |
latino |
| Francese | fr |
latn |
latino |
| Francese (Canada) | fr |
latn |
latino |
| Galiziano | gl |
latn |
latino |
| Gayo | ‐ | latn |
latino |
| Tedesco | de |
latn |
latino |
| gilbertese | ‐ | latn |
latino |
| Greco | el |
el |
Greco |
| creolo haitiano | ht |
latn |
latino |
| Ebraico | he |
he |
Ebraico |
| Hiligaynon | ‐ | latn |
latino |
| Hindi | hi |
deva |
Devanagari |
| IBAN | ‐ | latn |
latino |
| Iloko | ‐ | latn |
latino |
| Indonesiano | id |
latn |
latino |
| Irlandese | ga |
latn |
latino |
| Italiano | it |
it |
latino |
| Giapponese | ja |
cjk |
Giapponese |
| Giavanese | jv |
latn |
latino |
| Kachin | ‐ | latn |
latino |
| Kalaallisut | kl |
latn |
latino |
| Khasi | ‐ | latn |
latino |
| Kinyarwanda | rw |
latn |
latino |
| Congo | kg |
latn |
latino |
| Konkani | ‐ | deva |
Devanagari |
| Coreano | ko |
cjk |
Coreano |
| Kosraeano | ‐ | latn |
latino |
| Kuanyama | kj |
latn |
latino |
| latino | la |
latn |
latino |
| Basso tedesco | ‐ | latn |
latino |
| Lozi | ‐ | latn |
latino |
| Luo | ‐ | latn |
latino |
| Macedone | mk |
cyrl |
Cirillico |
| Maithili | ‐ | deva |
Devanagari |
| Malgascio | mg |
latn |
latino |
| Manx | gv |
latn |
latino |
| Marathi | mr |
deva |
Devanagari |
| Inglese medioevale | ‐ | latn |
latino |
| alto-medio tedesco | ‐ | latn |
latino |
| Minangkabau | ‐ | latn |
latino |
| Mohawk | ‐ | latn |
latino |
| Mongolo | mn |
cyrl |
Cirillico |
| Ndonga | ng |
latn |
latino |
| Nepali | ne |
deva |
Devanagari |
| Nord Ndebele | nd |
latn |
latino |
| Norvegese | no |
no |
latino |
| Nyankole | ‐ | latn |
latino |
| Occitano | oc |
latn |
latino |
| Ojibwa | oj |
latn |
latino |
| Inglese antico | ‐ | latn |
latino |
| francese antico | ‐ | latn |
latino |
| antico alto tedesco | ‐ | latn |
latino |
| antico norvegese | ‐ | latn |
latino |
| Antico provenzale | ‐ | latn |
latino |
| Pampanga | ‐ | latn |
latino |
| Pangasinan | ‐ | latn |
latino |
| papiamento | ‐ | latn |
latino |
| Polacco | pl |
latn |
latino |
| Portoghese | pt |
pt |
latino |
| Portoghese (europeo) | pt |
pt |
latino |
| Quechua | qu |
latn |
latino |
| Romancio | rm |
latn |
latino |
| Rundi | rn |
latn |
latino |
| Russo | ru |
cyrl |
Cirillico |
| Sango | sg |
latn |
latino |
| Sanscrito | sa |
deva |
Devanagari |
| scozzesi | ‐ | latn |
latino |
| Serbo | sr |
cyrl |
Cirillico |
| Shona | sn |
latn |
latino |
| Spagnolo | es |
es |
latino |
| Spagnolo (America Latina) | es |
es |
latino |
| sundanese | su |
latn |
latino |
| Swahili | sw |
latn |
latino |
| Swati | ss |
latn |
latino |
| Svedese | sv |
sv |
latino |
| Tamil | ta |
deva |
Tamil |
| Telugu | te |
deva |
Telugu |
| Tailandese | th |
th |
Tailandese |
| Tsonga | ts |
latn |
latino |
| tswana | tn |
latn |
latino |
| Turco | tr |
tr |
latino |
| Ucraino | uk |
cyrl |
Cirillico |
| Uzbeko | uz |
cyrl |
Cirillico |
| Vietnamita | vi |
vi |
latino |
| Xhosa | xh |
latn |
latino |
| Zulu | zu |
latn |
latino |
Documenti che contengono sia testo stampato a macchina che testo scritto a mano
Se il documento contiene una combinazione di testo stampato e testo scritto a mano, è necessario richiamare l'API specificando i codici lingua sia per il modello linguistico relativo al testo stampato che per quello relativo al testo scritto a mano.
| Lingua | Codice |
|---|---|
| Inglese | languages_list = [ 'en', 'en_hw'] |
| Tedesco | languages_list = [ 'de', 'de_hw'] |
Documenti in diverse lingue
Non è supportata la combinazione di lingue che non utilizzano lo stesso alfabeto, tranne nel caso in cui l'inglese sia abbinato a un'altra lingua.
Se un documento contiene testo in più lingue che utilizzano l'alfabeto latino o CJK, è possibile specificare più codici lingua nel file languages_list. Ad esempio, se si specificano sia fra che eng, il servizio mappa internamente la richiesta al latn modello.
Sono supportati solo i linguaggi di scripting elencati nella tabella dei linguaggi supportati. Non è possibile specificare più di uno script in una singola richiesta.
Combinazioni consentite:
['fra', 'spa']– due lingue che utilizzano lo stesso alfabeto['jpn', 'eng']– una lingua non latina abbinata all'inglese['jpn'](Se il documento contiene testo in giapponese e in inglese, è sufficiente specificarlo.)['fra', 'spa', 'eng']['jpn', 'kor']– due lingue che utilizzano lo stesso alfabeto['heb', 'eng']– una lingua non latina abbinata all'inglese['latn']– script singolo['cjk']– script singolo
Combinazioni non supportate:
['heb', 'fra']– una lingua non latina abbinata a una lingua latina diversa dall'inglese['cjk', 'fra']['jpn', 'fra', 'eng']– una lingua non latina abbinata a due lingue latine['latn', 'cjk']– due diversi copioni
Estrazione di testo dalle immagini con il parametro ocr_mode
È possibile specificare come elaborare il testo nelle immagini del documento utilizzando il riconoscimento ottico dei caratteri (OCR). Specificare il seguente parametro nel corpo della richiesta API:
"parameters": {
"ocr_mode": "enabled"
}
La tabella seguente fornisce dettagli sulle diverse modalità OCR che è possibile utilizzare per specificare come elaborare le immagini nella richiesta API:
| Modalità OCR | Descrizione |
|---|---|
disabled |
I file immagine e i documenti scansionati non vengono elaborati. Per i documenti ibridi che contengono sia immagini che testo, viene estratto solo il testo. |
enabled |
L'OCR viene eseguito solo se non è stato possibile estrarre alcun testo dal documento. Le immagini incorporate nei documenti vengono elaborate. |
forced |
Ogni pagina del documento viene convertita in immagine ed elaborata con l'OCR. Ogni tipo di documento, compresi i file di solo testo, viene convertito in immagini prima di essere elaborato. |
Configurazione della pipeline di elaborazione delle coppie chiave-valore con il parametro semantic_config
È possibile identificare ed estrarre informazioni strutturate in coppie chiave-valore da documenti non strutturati o semi-strutturati come fatture, moduli, contratti o ricevute. Il testo elaborato è in un formato in cui ogni dato (il valore) è associato a un identificatore unico (la chiave). I dati delle coppie chiave-valore vengono elaborati utilizzando un modello di base generico o un modello ottimizzato per formati di documenti specifici.
Per elaborare i dati delle coppie chiave-valore, assicurati di avere le GPU e i modelli di base richiesti installati nel tuo cluster. Per ulteriori dettagli, consultare i modelli di base nella watsonx.ai IBMSoftware Hub documentazione.
È possibile utilizzare l'API di classificazione del testo per verificare rapidamente se un documento può essere classificato in uno dei diversi schemi predefiniti per i tipi di documento più comuni, senza eseguire l'estrazione della coppia chiave-valore. Se il documento non corrisponde a un tipo predefinito, è possibile definire un nuovo tipo di documento e uno schema personalizzato prima di eseguire una richiesta API di estrazione del testo.
Utilizzare i vari parametri di semantic_config nel corpo della richiesta dell'API REST per configurare le seguenti funzionalità della pipeline di elaborazione delle coppie chiave-valore:
È inoltre possibile impostare campi nel semantic_config parametro specifici per il metodo API di estrazione del testo. Per ulteriori dettagli, consultare la sezione "Specificare come estrarre i dati in coppie chiave-valore ".
Lingue supportate:
- Cinese
- Inglese
- Francese
- Tedesco
- Italiano
- Giapponese
- Portoghese
- Spagnolo
Definizione di schemi con il campo schemas
In base al layout, i documenti possono essere classificati a grandi linee nei seguenti tipi:
- Documenti a layout variabile
- Documenti senza una struttura coerente, come fatture, ordini di acquisto o passaporti, in cui la struttura si estende su più pagine.
- Documenti a layout fisso
- Documenti strutturati in cui ogni pagina segue un formato predefinito, come ad esempio un modulo fiscale in cui ogni pagina ha un layout specifico.
Schemi predefiniti
È possibile classificare o estrarre il testo dai file in schemi predefiniti per i seguenti tipi di documenti comuni supportati:
- Fattura
- Bolletta
- Documento di prestito ipotecario
- Polizza di carico
- Modulo doganale
- Ricevuta di consegna
- Relazione sulle spese
- Ricevuta
- Ordine di acquisto
- Modulo per le tasse
- Rendiconto finanziario
- Avviso di bonifico o di pagamento
- Estratto conto bancario
- Estratto conto della carta di credito
- Patente di guida
- Passaporto
- Carta d'identità nazionale
- W-4 forma
- I-9 forma
- Modulo di accettazione del paziente
- Sinistro assicurativo
- Trascrizione
- Diploma o certificazione
- Modulo di richiesta di risarcimento per invalidità standard dell'assicurazione sulla vita
- Modulo di autorizzazione all'assicurazione sulla vita standard
- Modulo assicurativo standardizzato dell'Associazione per la ricerca e lo sviluppo delle operazioni cooperative (ACORD)
- Dichiarazione del richiedente - modulo di richiesta di risarcimento in caso di morte
- Licenza e permesso commerciale
Schemi personalizzati
Se i documenti contengono contenuti strutturati unici, è possibile fornire uno schema personalizzato che definisce dati specifici e identificatori unici. Quando si specifica uno schema personalizzato, il processo di estrazione del testo esclude automaticamente la classificazione del documento in uno degli schemi predefiniti e utilizza solo lo schema fornito nel parametro schemas del sito semantic_config.
Per informazioni su come definire i parametri in uno schema personalizzato, vedere Creazione di schemi personalizzati per l'estrazione di coppie chiave-valore.
L'esempio seguente fornisce uno schema personalizzato per una ricevuta nel corpo della richiesta API REST:
"semantic_config": {
"schemas": [ {
"document_type": "Receipt",
"document_description": "A receipt issued for a purchase at ABC store.",
"fields": {
"receipt_number": {
"default": "",
"example": "R-20241027-ABC",
"description": "Unique identifier on the receipt."
},
"customer_name": {
"default": "",
"example": "John Smith",
"description": "Full name of the customer or payee."
},
"date_of_transaction": {
"default": "",
"example": "2023-01-01",
"description": "Date when the purchase or payment occurred."
},
"total_paid": {
"default": "",
"example": "8.64",
"description": "Final amount paid by the customer."
},
"payment_method": {
"default": "",
"example": "Credit Card",
"description": "How payment was made, such as cash, card, check, etc.)."
},
}
} ]
}
Controllo del modo in cui gli schemi predefiniti e personalizzati interagiscono con il campo schemas_merge_strategy
È possibile definire il modo in cui gli schemi personalizzati creati interagiscono con gli schemi predefiniti supportati dall'API di elaborazione del testo.
La tabella seguente fornisce dettagli sui diversi modi in cui vengono elaborati gli schemi predefiniti e personalizzati quando si configura l'impostazione schemas_merge_strategy nel parametro semantic_config :
| Impostazione della strategia di schema | Descrizione |
|---|---|
replace |
Scartare tutti gli schemi predefiniti e utilizzare solo lo schema personalizzato. |
merge |
Gli schemi personalizzati vengono uniti e sovrascrivono qualsiasi schema predefinito che condivida lo stesso attributo document_type nella definizione dello schema. |
Per impostazione predefinita, se si crea uno schema personalizzato per un tipo di documento che corrisponde a uno schema predefinito supportato, entrambi gli schemi vengono uniti prima di essere utilizzati per elaborare i dati della coppia chiave-valore nel documento.