Che cos'è il modello di layout di Document Intelligence?

Questo contenuto si applica a:checkmarkv4.0 (GA) | Versioni precedenti:blue-checkmarkv3.1 (GA)red-checkmarkv3.0 (ritiro)red-checkmarkv2.1 (ritiro)

Il modello di layout Azure Document Intelligence in Foundry Tools è un'API avanzata di analisi dei documenti basata su Machine Learning. Il modello è disponibile nel cloud di Document Intelligence. È possibile usarlo per acquisire documenti in vari formati e restituire rappresentazioni strutturate dei dati dei documenti. Il modello combina una versione avanzata delle potenti funzionalità di riconoscimento ottico dei caratteri (OCR) con modelli di Deep Learning per estrarre testo, tabelle, segni di selezione e struttura del documento.

Analisi del layout della struttura del documento

L'analisi del layout della struttura dei documenti è il processo di analisi di un documento per estrarre aree di interesse e le relative relazioni. L'obiettivo è estrarre testo e elementi strutturali dalla pagina per creare modelli di comprensione semantica migliori. Esistono due tipi di ruoli in un layout di documento:

  • Ruoli geometrici: testo, tabelle, figure e segni di selezione sono esempi di ruoli geometrici.
  • Ruoli logici: titoli, intestazioni e piè di pagina sono esempi di ruoli logici di testi.

La figura seguente mostra i componenti tipici in un'immagine di una pagina di esempio.

Figura che mostra un esempio di layout del documento.

Opzioni di sviluppo

Document Intelligence v4.0: 2024-11-30 (GA) supporta gli strumenti, le applicazioni e le librerie seguenti.

Funzionalità Risorse ID modello
Modello di layout Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

Lingue supportate

Per un elenco completo delle lingue supportate, vedere Supporto per la lingua: Modelli di analisi dei documenti.

Tipi di file supportati

Modello di layout di Document Intelligence v4.0: 2024-11-30 (GA) supporta i formati di file seguenti:

Modello PDF Immagine:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Struttura

Requisiti di input

  • Foto e scansioni: per ottenere risultati ottimali, fornire una foto chiara o una scansione di alta qualità per ogni documento.
  • PDF e TIFF: per pdf e TIFF, è possibile elaborare fino a 2.000 pagine. Con una sottoscrizione di livello gratuito, vengono elaborate solo le prime due pagine.
  • Blocchi password: se i PDF sono bloccati da password, è necessario rimuovere il blocco prima dell'invio.
  • Dimensioni file: le dimensioni del file per l'analisi dei documenti sono pari a 500 MB per il livello a pagamento (S0) e 4 MB per il livello gratuito (F0).
  • Dimensioni immagine: le dimensioni dell'immagine devono essere comprese tra 50 pixel x 50 pixel e 10.000 pixel x 10.000 pixel.
  • Altezza del testo: l'altezza minima del testo da estrarre è di 12 pixel per un'immagine da 1024 x 768 pixel. Questa dimensione corrisponde a circa 8 punti di testo a 150 punti per pollice.
  • Addestramento del modello personalizzato: il numero massimo di pagine per i dati di addestramento è 500 per il modello su misura personalizzato e 50.000 per il modello neurale personalizzato.
  • Training del modello di estrazione personalizzato: la dimensione totale dei dati di training è di 50 MB per il modello di template e 1 GB per il modello neurale.
  • Training del modello di classificazione personalizzato: le dimensioni totali dei dati di training sono pari a 1 GB con un massimo di 10.000 pagine. Per 2024-11-30 (GA), le dimensioni totali dei dati di training sono pari a 2 GB con un massimo di 10.000 pagine.
  • Tipi di file di Office (DOCX, XLSX, PPTX): il limite massimo di lunghezza della stringa è di 8 milioni di caratteri.

Per altre informazioni sull'utilizzo del modello, sulle quote e sui limiti dei servizi, vedere Limiti del servizio.

Introduzione al modello di layout

Vedere in che modo i dati, tra cui testo, tabelle, intestazioni di tabella, segni di selezione e informazioni sulla struttura, vengono estratti dai documenti usando Document Intelligence. Sono necessarie le risorse seguenti:

  • Sottoscrizione Azure. È possibile crearne uno gratuitamente.

  • Istanza Document Intelligence nel portale di Azure. È possibile usare il piano tariffario gratuito (F0) per provare il servizio. Dopo la distribuzione della risorsa, selezionare Vai alla risorsa per ottenere la chiave e l'endpoint.

    Screenshot che mostra le chiavi e la posizione dell'endpoint nel portale Azure.

Dopo aver recuperato la chiave e l'endpoint, usare le opzioni di sviluppo seguenti per compilare e distribuire le applicazioni di Document Intelligence.

Estrazione dei dati

Il modello di layout estrae elementi strutturali dai documenti. Nella parte restante di questo articolo sono descritti gli elementi strutturali seguenti, insieme alle indicazioni su come estrarli dall'input del documento:

Eseguire l'analisi del documento di layout di esempio in Document Intelligence Studio. Passare quindi alla scheda risultati e accedere all'output JSON completo.

Screenshot che mostra i risultati nella scheda di output JSON in Document Intelligence Studio.

Pagine

L'insieme pages è un elenco di pagine all'interno del documento. Ogni pagina viene rappresentata in sequenza all'interno del documento e include l'angolo di orientamento, che indica se la pagina viene ruotata e la larghezza e l'altezza (dimensioni in pixel). Le unità di pagina nell'output del modello vengono calcolate come illustrato nella tabella seguente.

Formato file Unità di pagina calcolata Totale pagine
Immagini (JPEG/JPG, PNG, BMP, HEIF) Ogni immagine = 1 unità di pagina. Totale immagini
PDF Ogni pagina nel PDF = 1 unità di pagina. Totale pagine nel PDF
TIFF Ogni immagine in un file TIFF corrisponde a un'unità di pagina. Totale immagini in TIFF
Word (DOCX) Fino a 3.000 caratteri = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Pagine totali di un massimo di 3.000 caratteri ciascuno
Excel (XLSX) Ogni foglio di lavoro = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Totale fogli di lavoro
PowerPoint (PPTX) Ogni diapositiva = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Totale diapositive
HTML Fino a 3.000 caratteri = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Pagine totali di un massimo di 3.000 caratteri ciascuno
# Analyze pages.
for page in result.pages:
print(f"----Analyzing layout from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")

Estrarre le pagine selezionate

Per documenti a più pagine di grandi dimensioni, usare il pages parametro di query per indicare numeri di pagina o intervalli di pagine specifici per l'estrazione di testo.

Paragrafi

Il modello di layout estrae tutti i blocchi identificati di testo nell'insieme paragraphs come oggetto di primo livello in analyzeResults. Ogni voce di questa raccolta rappresenta un blocco di testo e include il testo estratto come content e le coordinate di delimitazione polygon . Le informazioni spans indicano il frammento di testo all'interno della content proprietà di primo livello che contiene il testo completo del documento.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Ruoli dei paragrafi

Il nuovo rilevamento di oggetti di pagina basato su Machine Learning estrae ruoli logici come titoli, intestazioni di sezione, intestazioni di pagina, piè di pagina e altro ancora. Il modello di layout di Document Intelligence assegna determinati blocchi di testo nella paragraphs raccolta con il relativo ruolo o tipo specializzato stimato dal modello.

È consigliabile usare i ruoli di paragrafo con documenti non strutturati per comprendere il layout del contenuto estratto per un'analisi semantica più completa. I seguenti ruoli di paragrafo sono supportati.

Ruolo stimato Descrizione Tipi di file supportati
title Intestazioni principali sulla pagina PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Uno o più sottotitoli nella pagina PDF, Image, DOCX, XLSX, HTML
footnote Testo nella parte inferiore della pagina PDF, Immagine
pageHeader Testo vicino al bordo superiore della pagina PDF, Image, DOCX
pageFooter Testo vicino al bordo inferiore della pagina PDF, Image, DOCX, PPTX, HTML
pageNumber Numero di pagina PDF, Immagine
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Testo, righe e parole

Il modello di layout del documento in Document Intelligence estrae testo in stile stampa e scritto a mano come lines e words. L'insieme styles include qualsiasi stile scritto a mano per le righe, se rilevato, insieme agli intervalli che puntano al testo associato. Questa funzionalità si applica alle lingue scritte a mano supportate.

Per Microsoft Word, Excel, PowerPoint e HTML, il modello di layout Document Intelligence v4.0 2024-11-30 (GA) estrae tutto il testo incorporato così come è. I testi vengono estratti come parole e paragrafi. Le immagini incorporate non sono supportate.

# Analyze lines.
if page.lines:
    for line_idx, line in enumerate(page.lines):
    words = get_words(page, line)
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{line.polygon}'"
    )

    # Analyze words.
    for word in words:
        print(f"......Word '{word.content}' has a confidence of {word.confidence}")

Stile scritto a mano per le righe di testo

La risposta include se ogni riga di testo è in uno stile scritto a mano o meno, insieme a un punteggio di attendibilità. Per altre informazioni, vedere Supporto linguistico scritto a mano. L'esempio seguente mostra un frammento JSON di esempio.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Se si abilita la funzionalità del componente aggiuntivo font/style, si ottiene anche il risultato del tipo di carattere/stile come parte dell'oggetto styles .

Segni di selezione

Il modello di layout estrae anche i segni di selezione dai documenti. I segni di selezione estratti vengono visualizzati all'interno della pages raccolta per ogni pagina. Includono la delimitazione polygon, confidence e la selezione state (selected/unselected). La rappresentazione testuale (ovvero :selected: e :unselected) è inclusa anche come indice iniziale (offset) e length che fa riferimento alla proprietà di primo livello content che contiene il testo completo del documento.

# Analyze selection marks.
if page.selection_marks:
    for selection_mark in page.selection_marks:
        print(
            f"Selection mark is '{selection_mark.state}' within bounding polygon "
            f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
        )

Tabelle

L'estrazione di tabelle è un requisito fondamentale per l'elaborazione di documenti contenenti grandi volumi di dati in genere formattati come tabelle. Il modello di layout estrae le tabelle nella pageResults sezione dell'output JSON. Le informazioni sulla tabella estratte includono il numero di colonne e righe, intervallo di righe e intervallo di colonne.

Ogni cella con il relativo poligono di delimitazione viene restituita insieme alle informazioni che indicano se l'area viene riconosciuta come columnHeader o meno. Il modello supporta l'estrazione di tabelle ruotate. Ogni cella della tabella contiene l'indice di riga e di colonna e le coordinate del poligono di delimitazione. Per il testo della cella, il modello restituisce le span informazioni che contengono l'indice iniziale (offset). Il modello restituisce anche il length all'interno del contenuto di primo livello che contiene il testo completo del documento.

Di seguito sono riportati alcuni fattori da considerare quando si usa la funzionalità di estrazione delle bale di Document Intelligence:

  • I dati da estrarre vengono presentati come tabella e la struttura della tabella è significativa?
  • I dati possono essere inseriti in una griglia bidimensionale se i dati non sono in formato tabella?
  • Le tabelle si estendono su più pagine? In tal caso, per evitare di dover etichettare tutte le pagine, dividere il PDF in pagine prima di inviarlo a Document Intelligence. Dopo l'analisi, eseguire la post-elaborazione delle pagine in una singola tabella.
  • Se si creano modelli personalizzati, vedere Campi tabulari . Le tabelle dinamiche hanno un numero variabile di righe per ogni colonna. Le tabelle fisse hanno un numero costante di righe per ogni colonna.

Nota

L'analisi delle tabelle non è supportata se il file di input è XLSX. Per la versione 2024-11-30 (GA), le aree di delimitazione per figure e tabelle coprono solo il contenuto principale ed escludono la didascalia e le note a piè di pagina associate.

if result.tables:
    for table_idx, table in enumerate(result.tables):
        print(f"Table # {table_idx} has {table.row_count} rows and " f"{table.column_count} columns")
        if table.bounding_regions:
            for region in table.bounding_regions:
                print(f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}")
        # Analyze cells.
        for cell in table.cells:
            print(f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'")
            if cell.bounding_regions:
                for region in cell.bounding_regions:
                print(f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'")

Risposta di output in formato Markdown

L'API di layout può restituire il testo estratto in formato Markdown. Usare il outputContentFormat=markdown per specificare il formato di output in Markdown. Il contenuto markdown viene restituito come parte della content sezione.

Nota

Per la versione 4.0 2024-11-30 (GA), la rappresentazione delle tabelle viene modificata in tabelle HTML per consentire il rendering di elementi come celle unite e intestazioni multirow. Un'altra modifica correlata consiste nell'usare i caratteri della casella di controllo Unicode ☒ e ☐ per i segni di selezione anziché :selected: e :unselected:. Questo aggiornamento indica che il contenuto dei campi di selezione contiene :selected: anche se gli intervalli fanno riferimento ai caratteri Unicode nell'intervallo di primo livello. Per una definizione completa degli elementi Markdown, vedere Formato di output Markdown.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Figure

Le figure (grafici e immagini) nei documenti svolgono un ruolo fondamentale nell'integrare e migliorare il contenuto testuale. Forniscono rappresentazioni visive che facilitano la comprensione delle informazioni complesse. L'oggetto figures rilevato dal modello di layout ha proprietà chiave come:

  • boundingRegions: posizioni spaziali della figura nelle pagine del documento, inclusi il numero di pagina e le coordinate poligono che delineano il limite della figura.
  • spans: il testo si estende in relazione alla figura che specifica i relativi offset e lunghezze all'interno del testo del documento. Questa connessione consente di associare la figura al contesto testuale pertinente.
  • elements: Gli identificatori per elementi di testo o paragrafi all'interno del documento che sono correlati alla figura o la descrivono.
  • caption: descrizione se presente.

Quando output=figures viene specificato durante l'operazione di analisi iniziale, il servizio genera immagini ritagliate per tutte le figure rilevate a cui è possibile accedere tramite /analyeResults/{resultId}/figures/{figureId}. Il FigureId valore è l'ID incluso in ogni oggetto di figura, seguendo una convenzione non documentata di {pageNumber}.{figureIndex} dove figureIndex viene reimpostato a uno per pagina.

Per la versione 4.0 2024-11-30 (GA), le aree di delimitazione per figure e tabelle coprono solo il contenuto principale ed escludono la didascalia e le note a piè di pagina associate.

# Analyze figures.
if result.figures:
    for figures_idx,figures in enumerate(result.figures):
        print(f"Figure # {figures_idx} has the following spans:{figures.spans}")
        for region in figures.bounding_regions:
            print(f"Figure # {figures_idx} location on page:{region.page_number} is within bounding polygon '{region.polygon}'")

Sezioni

L'analisi gerarchica della struttura dei documenti è fondamentale per organizzare, comprendere ed elaborare documenti estesi. Questo approccio è fondamentale per segmentare semanticamente i documenti lunghi per migliorare la comprensione, facilitare la navigazione e migliorare il recupero delle informazioni. L'avvento della generazione aumentata mediante recupero (RAG) nell'AI generativa di documenti sottolinea l'importanza dell'analisi della struttura gerarchica dei documenti.

Il modello di layout supporta sezioni e sottosezioni nell'output, che identifica la relazione di sezioni e oggetti all'interno di ogni sezione. La struttura gerarchica viene mantenuta in elements per ogni sezione. È possibile usare la risposta di output al formato Markdown per ottenere facilmente le sezioni e le sottosezioni in Markdown.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Questo contenuto si applica a:segno di spuntav3.1 (GA) | Versione più recente:segno di spunta violav4.0 (GA) | Versioni precedenti:segno di spunta bluv3.0segno di spunta bluv2.1

Questo contenuto si applica a:segno di spunta rossov3.0 (in dismissione) | Versioni più recenti:segno di spunta violav4.0 (GA)segno di spunta violav3.1 | Versione precedente:segno di spunta bluv2.1 (in dismissione)

Questo contenuto si applica a:red-checkmarkv2.1 | Versione più recente:blue-checkmarkv4.0 (GA)

Il modello di layout di Document Intelligence è un'API avanzata di analisi dei documenti. Il modello è basato su Machine Learning ed è disponibile nel cloud di Document Intelligence. È possibile usarlo per acquisire documenti in vari formati e restituire rappresentazioni strutturate dei dati dei documenti. Combina una versione avanzata delle potenti funzionalità OCR con i modelli di Deep Learning. È possibile usarlo per estrarre testo, tabelle, segni di selezione e struttura del documento.

Analisi del layout dei documenti

L'analisi del layout della struttura dei documenti è il processo di analisi di un documento per estrarre aree di interesse e le relative relazioni. L'obiettivo è estrarre testo e elementi strutturali dalla pagina per creare modelli di comprensione semantica migliori. Esistono due tipi di ruoli in un layout di documento:

  • Ruoli geometrici: testo, tabelle, figure e segni di selezione sono esempi di ruoli geometrici.
  • Ruoli logici: titoli, intestazioni e piè di pagina sono esempi di ruoli logici di testi.

La figura seguente mostra i componenti tipici in un'immagine di una pagina di esempio.

Figura che mostra un esempio di layout del documento.

Lingue e impostazioni locali supportate

Per un elenco completo delle lingue supportate, vedere Supporto per la lingua: Modelli di analisi dei documenti.

Document Intelligence v2.1 supporta gli strumenti, le applicazioni e le librerie seguenti.

Funzionalità Risorse
Modello di layout Strumento di etichettatura
di Document Intelligence• API
REST• SDK
della libreria client• Contenitore Docker di Document Intelligence

Indicazioni per l'input

Formati di file supportati:

Modello PDF Immagine:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Leggere
Struttura
Documento generale
Preassemblato
Estrazione personalizzata
Classificazione personalizzata
  • Foto e scansioni: per ottenere risultati ottimali, fornire una foto chiara o una scansione di alta qualità per ogni documento.
  • PDF e TIFF: per pdf e TIFF, è possibile elaborare fino a 2.000 pagine con una sottoscrizione di livello gratuito. Vengono elaborate solo le prime due pagine.
  • Dimensioni file: le dimensioni del file per l'analisi dei documenti sono pari a 500 MB per il livello a pagamento (S0) e 4 MB per il livello gratuito (F0).
  • Dimensioni immagine: le dimensioni dell'immagine devono essere comprese tra 50 pixel x 50 pixel e 10.000 pixel x 10.000 pixel.
  • Blocchi password: se i PDF sono bloccati da password, è necessario rimuovere il blocco prima dell'invio.
  • Altezza del testo: l'altezza minima del testo da estrarre è di 12 pixel per un'immagine da 1024 x 768 pixel. Questa dimensione corrisponde a circa 8 punti di testo a 150 punti per pollice.
  • Addestramento del modello personalizzato: il numero massimo di pagine per i dati di addestramento è 500 per il modello su misura personalizzato e 50.000 per il modello neurale personalizzato.
  • Training del modello di estrazione personalizzato: la dimensione totale dei dati di training è di 50 MB per il modello di template e 1 GB per il modello neurale.
  • Training del modello di classificazione personalizzato: le dimensioni totali dei dati di training sono pari a 1 GB con un massimo di 10.000 pagine. Per 2024-11-30 (GA), le dimensioni totali dei dati di training sono pari a 2 GB con un massimo di 10.000 pagine.
  • Tipi di file di Office (DOCX, XLSX, PPTX): il limite massimo di lunghezza della stringa è di 8 milioni di caratteri.

Guida all'input

  • Formati di file supportati: JPEG, PNG, PDF e TIFF.
  • Numero di pagine supportato: per PDF e TIFF vengono elaborate fino a 2.000 pagine. Per i sottoscrittori del livello gratuito, vengono elaborate solo le prime due pagine.
  • Dimensioni del file supportate: le dimensioni del file devono essere inferiori a 50 MB e le dimensioni devono essere almeno 50 x 50 pixel e al massimo 10.000 x 10.000 pixel.

Inizia

È possibile usare Document Intelligence per estrarre dati quali testo, tabelle, intestazioni di tabella, segni di selezione e informazioni sulla struttura dai documenti. Sono necessarie le risorse seguenti:

  • Sottoscrizione Azure. È possibile crearne uno gratuitamente.
  • Istanza Document Intelligence nel portale di Azure. È possibile usare il piano tariffario gratuito (F0) per provare il servizio. Dopo la distribuzione della risorsa, selezionare Vai alla risorsa per ottenere la chiave e l'endpoint.

Screenshot che mostra le chiavi e la posizione dell'endpoint nel portale Azure.

Dopo aver recuperato la chiave e l'endpoint, è possibile usare le opzioni di sviluppo seguenti per compilare e distribuire le applicazioni document intelligence.

Nota

Document Intelligence Studio è disponibile con le API v3.0 e le versioni successive.

REST API

Strumento di etichettatura di esempio di Document Intelligence

  1. Passare allo strumento di etichettatura dell'esempio di analisi dei documenti.

  2. Nella home page dello strumento di esempio selezionare Usa layout per ottenere testo, tabelle e segni di selezione.

    Screenshot che mostra le impostazioni di connessione per il processo di layout di Document Intelligence.

  3. Nel campo endpoint del servizio Document Intelligence, incolla l'endpoint che hai ottenuto con la tua sottoscrizione a Document Intelligence.

  4. Nel campo chiave, incolla la chiave ottenuta dalla risorsa di Document Intelligence.

  5. Nel campo Origine selezionare URL dal menu a discesa. È possibile usare il documento di esempio:

  6. Selezionare Run Layout (Esegui layout). Lo strumento di etichettatura di esempio di Document Intelligence chiama l'API Analizza Layout per analizzare il documento.

    Screenshot che mostra il riquadro a discesa Layout.

  7. Visualizzare i risultati. Vedere il testo estratto evidenziato, i segni di selezione rilevati e le tabelle rilevate.

    Screenshot che mostra le impostazioni di connessione per lo strumento Di etichettatura di esempio di Document Intelligence.

Document Intelligence v2.1 supporta gli strumenti, le applicazioni e le librerie seguenti.

Funzionalità Risorse
API di Layout Strumento di etichettatura
di Document Intelligence• API
REST• SDK
della libreria client• Contenitore Docker di Document Intelligence

Estrarre dati

Il modello di layout estrae elementi strutturali dai documenti. Gli elementi strutturali sono descritti qui e le indicazioni seguenti illustrano come estrarli dall'input del documento.

Estrarre dati

Il modello di layout estrae elementi strutturali dai documenti. Gli elementi strutturali sono descritti qui e le indicazioni seguenti illustrano come estrarli dall'input del documento.

Pagina

L'insieme pages è un elenco di pagine all'interno del documento. Ogni pagina viene rappresentata in sequenza all'interno del documento e include l'angolo di orientamento che indica se la pagina viene ruotata e la larghezza e l'altezza (dimensioni in pixel). Le unità di pagina nell'output del modello vengono calcolate come illustrato nella tabella seguente.

Formato file Unità di pagina calcolata Totale pagine
Immagini (JPEG/JPG, PNG, BMP, HEIF) Ogni immagine = 1 unità di pagina. Totale immagini
PDF Ogni pagina nel PDF = 1 unità di pagina. Totale pagine nel PDF
TIFF Ogni immagine in un file TIFF corrisponde a un'unità di pagina. Totale immagini in TIFF
Word (DOCX) Fino a 3.000 caratteri = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Pagine totali di un massimo di 3.000 caratteri ciascuno
Excel (XLSX) Ogni foglio di lavoro = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Totale fogli di lavoro
PowerPoint (PPTX) Ogni diapositiva = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Totale diapositive
HTML Fino a 3.000 caratteri = 1 unità di pagina. Le immagini incorporate o collegate non sono supportate. Pagine totali di un massimo di 3.000 caratteri ciascuno
"pages": [
    {
        "pageNumber": 1,
        "angle": 0,
        "width": 915,
        "height": 1190,
        "unit": "pixel",
        "words": [],
        "lines": [],
        "spans": []
    }
]
# Analyze pages.
for page in result.pages:
    print(f"----Analyzing layout from page #{page.page_number}----")
    print(
        f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
    )

Estrarre pagine selezionate dai documenti

Per documenti a più pagine di grandi dimensioni, usare il pages parametro di query per indicare numeri di pagina o intervalli di pagine specifici per l'estrazione di testo.

Paragrafo

Il modello di layout estrae tutti i blocchi identificati di testo nell'insieme paragraphs come oggetto di primo livello in analyzeResults. Ogni voce di questa raccolta rappresenta un blocco di testo e include il testo estratto come content e le coordinate di delimitazione polygon. Le informazioni span indicano il frammento di testo all'interno della content proprietà di primo livello che contiene il testo completo del documento.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Ruolo del paragrafo

Il nuovo rilevamento di oggetti di pagina basato su Machine Learning estrae ruoli logici come titoli, intestazioni di sezione, intestazioni di pagina, piè di pagina e altro ancora. Il modello di layout di Document Intelligence assegna determinati blocchi di testo nella paragraphs raccolta con il relativo ruolo o tipo specializzato stimato dal modello. È consigliabile usare i ruoli di paragrafo con documenti non strutturati per comprendere il layout del contenuto estratto per un'analisi semantica più completa. I seguenti ruoli di paragrafo sono supportati.

Ruolo stimato Descrizione Tipi di file supportati
title Le intestazioni principali nella pagina PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Uno o più sottotitoli nella pagina PDF, Image, DOCX, XLSX, HTML
footnote Testo nella parte inferiore della pagina PDF, Immagine
pageHeader Testo vicino al bordo superiore della pagina PDF, Image, DOCX
pageFooter Testo vicino al bordo inferiore della pagina PDF, Image, DOCX, PPTX, HTML
pageNumber Numero di pagina PDF, Immagine
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Testo, riga e parola

Il modello di layout del documento in Document Intelligence estrae testo stampato e scritto a mano come righe e parole. L'insieme styles include qualsiasi stile scritto a mano per le righe, se rilevato insieme agli intervalli che puntano al testo associato. Questa funzionalità si applica alle lingue scritte a mano supportate.

Per Word, Excel, PowerPoint e HTML, il modello di layout Document Intelligence v4.0 2024-11-30 (GA) estrae tutto il testo incorporato così come è. I testi vengono estratti come parole e paragrafi. Le immagini incorporate non sono supportate.

"words": [
    {
        "content": "While",
        "polygon": [],
        "confidence": 0.997,
        "span": {}
    },
],
"lines": [
    {
        "content": "While healthcare is still in the early stages of its Al journey, we",
        "polygon": [],
        "spans": [],
    }
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
    words = line.get_words()
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{format_polygon(line.polygon)}'"
    )

    # Analyze words.
    for word in words:
        print(
            f"......Word '{word.content}' has a confidence of {word.confidence}"
        )

Stile scritto a mano

La risposta include la classificazione di ogni riga di testo come scritto a mano o meno, insieme a un punteggio di affidabilità. Per altre informazioni, vedere Supporto linguistico scritto a mano. L'esempio seguente mostra un frammento JSON di esempio.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Se si abilita la funzionalità del componente aggiuntivo font/style, si ottiene anche il risultato del tipo di carattere/stile come parte dell'oggetto styles .

Segno di selezione

Il modello di layout estrae anche i segni di selezione dai documenti. I segni di selezione estratti vengono visualizzati all'interno della pages raccolta per ogni pagina. Includono la delimitazione polygon, confidence e la selezione state (selected/unselected). La rappresentazione testuale (ovvero :selected: e :unselected) è inclusa anche come indice iniziale (offset) e length che fa riferimento alla proprietà di primo livello content che contiene il testo completo del documento.

{
    "selectionMarks": [
        {
            "state": "unselected",
            "polygon": [],
            "confidence": 0.995,
            "span": {
                "offset": 1421,
                "length": 12
            }
        }
    ]
}
# Analyze selection marks.
for selection_mark in page.selection_marks:
    print(
        f"Selection mark is '{selection_mark.state}' within bounding polygon "
        f"'{format_polygon(selection_mark.polygon)}' and has a confidence of {selection_mark.confidence}"
    )

Tabella

L'estrazione di tabelle è un requisito fondamentale per l'elaborazione di documenti contenenti grandi volumi di dati in genere formattati come tabelle. Il modello di layout estrae le tabelle nella pageResults sezione dell'output JSON. Le informazioni sulla tabella estratte includono il numero di colonne e righe, intervallo di righe e intervallo di colonne. Ogni cella con il relativo poligono di delimitazione viene restituita insieme alle informazioni che indicano se l'area viene riconosciuta come columnHeader o meno.

Il modello supporta l'estrazione di tabelle ruotate. Ogni cella della tabella contiene l'indice di riga e di colonna e le coordinate del poligono di delimitazione. Per il testo della cella, il modello restituisce le span informazioni che contengono l'indice iniziale (offset). Il modello restituisce anche il length all'interno del contenuto di primo livello che contiene il testo completo del documento.

Di seguito sono riportati alcuni fattori da considerare quando si usa la funzionalità di estrazione delle bale di Document Intelligence:

  • I dati da estrarre vengono presentati come tabella e la struttura della tabella è significativa?
  • I dati possono essere inseriti in una griglia bidimensionale se i dati non sono in formato tabella?
  • Le tabelle si estendono su più pagine? In tal caso, per evitare di dover etichettare tutte le pagine, dividere il PDF in pagine prima di inviarlo a Document Intelligence. Dopo l'analisi, eseguire la post-elaborazione delle pagine in una singola tabella.
  • Se si creano modelli personalizzati, vedere Campi tabulari . Le tabelle dinamiche hanno un numero variabile di righe per ogni colonna. Le tabelle fisse hanno un numero costante di righe per ogni colonna.

Nota

L'analisi delle tabelle non è supportata se il file di input è XLSX. Document Intelligence v4.0 2024-11-30 (GA) supporta aree di delimitazione per figure e tabelle che coprono solo il contenuto principale ed esclude la didascalia e le note a piè di pagina associate.

{
    "tables": [
        {
            "rowCount": 9,
            "columnCount": 4,
            "cells": [
                {
                    "kind": "columnHeader",
                    "rowIndex": 0,
                    "columnIndex": 0,
                    "columnSpan": 4,
                    "content": "(In millions, except earnings per share)",
                    "boundingRegions": [],
                    "spans": []
                    },
            ]
        }
    ]
}

# Analyze tables.
for table_idx, table in enumerate(result.tables):
    print(
        f"Table # {table_idx} has {table.row_count} rows and "
        f"{table.column_count} columns"
    )
    for region in table.bounding_regions:
        print(
            f"Table # {table_idx} location on page: {region.page_number} is {format_polygon(region.polygon)}"
        )
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
        for region in cell.bounding_regions:
            print(
                f"...content on page {region.page_number} is within bounding polygon '{format_polygon(region.polygon)}'"
            )

Annotazioni

Il modello di layout estrae annotazioni nei documenti, come ad esempio spunte e croci. La risposta include il tipo di annotazione, insieme a un punteggio di attendibilità e al poligono di delimitazione.

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

Output dell'ordine di lettura naturale (solo alfabeto latino)

È possibile specificare l'ordine in cui vengono restituite le righe di testo con il readingOrder parametro di query. Usare natural per un output dell'ordine di lettura più comprensibile per le persone, come illustrato nell'esempio seguente. Questa funzionalità è supportata solo per le lingue latine.

Screenshot dell'elaborazione dell'ordine di lettura nel modello di layout.

Selezionare il numero di pagina o l'intervallo per l'estrazione di testo

Per documenti a più pagine di grandi dimensioni, usare il pages parametro di query per indicare numeri di pagina o intervalli di pagine specifici per l'estrazione di testo. L'esempio seguente mostra un documento con 10 pagine, con testo estratto per entrambi i casi, tutte le pagine (1-10) e le pagine selezionate (3-6).

Screenshot che mostra l'output del modello di layout delle pagine selezionate.

Operazione Get Analyze Layout Result

Il secondo passaggio consiste nel chiamare l'operazione Get Analyze Layout Result . Questa operazione accetta come input l'ID risultato creato dall'operazione Analyze Layout . Restituisce una risposta JSON che contiene un campo di stato con i valori possibili seguenti.

Campo Digitare Valori possibili
Stato Stringa notStarted: l'operazione di analisi non è stata avviata.

running L'operazione di analisi è in corso.

failed Operazione di analisi non riuscita.

succeeded Operazione di analisi riuscita.

Chiamare questa operazione in modo iterativo fino a quando non restituisce il succeeded valore. Per evitare di superare la frequenza delle richieste al secondo, usare un intervallo da tre a cinque secondi.

Quando il campo di stato ha il succeeded valore, la risposta JSON include il layout estratto, il testo, le tabelle e i segni di selezione. I dati estratti includono righe di testo estratte e parole, rettangoli delimitatori, aspetto del testo con indicazioni scritte a mano, tabelle e segni di selezione con indicato selezionato/non selezionato.

Classificazione scritta a mano per le righe di testo (solo alfabeto latino)

La risposta include la classificazione di ogni riga di testo di uno stile scritto a mano o meno, insieme a un punteggio di attendibilità. Questa funzionalità è supportata solo per le lingue latine. Nell'esempio seguente viene illustrata la classificazione scritta a mano per il testo nell'immagine.

Screenshot che mostra il processo di classificazione della scrittura a mano nel modello di layout.

Output JSON di esempio

La risposta all'operazione Get Analyze Layout Result è una rappresentazione strutturata del documento con tutte le informazioni estratte. Vedere un file di documento di esempio e il relativo output di layout di esempio strutturato.

L'output JSON ha due parti:

  • Il readResults nodo contiene tutto il testo riconosciuto e il segno di selezione. La gerarchia di presentazione del testo è pagina, quindi riga e quindi singole parole.
  • Il pageResults nodo contiene le tabelle e le celle estratte con i rettangoli delimitatori, l'attendibilità e un riferimento alle righe e alle parole nel readResults campo.

Output di esempio

Testo

L'API di layout estrae testo da documenti e immagini con più angoli e colori di testo. Accetta foto di documenti, fax, testo stampato e/o scritto a mano (solo inglese) e modalità miste. Il testo viene estratto con informazioni fornite su righe, parole, riquadri di delimitazione, punteggi di affidabilità e stile (scritto a mano o altro). Tutte le informazioni di testo sono incluse nella readResults sezione dell'output JSON.

Tabelle con intestazioni

L'API Layout estrae le tabelle nella pageResults sezione dell'output JSON. È possibile analizzare, fotografare o digitalizzare documenti. Le tabelle possono essere complesse con celle o colonne unite, con o senza bordi e con angoli dispari.

Le informazioni sulla tabella estratte includono il numero di colonne e righe, intervallo di righe e intervallo di colonne. Ogni cella con il relativo rettangolo di delimitazione viene restituita insieme all'indicazione se l'area sia riconosciuta come parte di un'intestazione o meno. Le celle di intestazione previste dal modello possono estendersi su più righe e non sono necessariamente le prime righe di una tabella. Funzionano anche con tabelle ruotate. Ogni cella della tabella include anche il testo completo con riferimenti alle singole parole della readResults sezione.

Figura che mostra un esempio di tabelle.

Segni di selezione (documenti)

L'API di layout estrae anche i segni di selezione dai documenti. I segni di selezione estratti includono il rettangolo di selezione, la confidenza e lo stato selezionati/non selezionati. Le informazioni sul contrassegno di selezione vengono estratte nella readResults sezione dell'output JSON.

Guida alla migrazione