Questa guida ti permette di costruire una pipeline avanzata per analizzare documenti PDF in modo strutturato utilizzando Docling Parse. Attraverso questa workflow, inizieremo da un ambiente Python stabile, gestiremo eventuali problemi di dipendenze, creeremo un PDF multipagina con testo, colonne, contenuti simili a tabelle, forme vettoriali, e un'immagine incorporata. Utilizzeremo quindi Docling Parse per estrarre parole, caratteri e linee con coordinate precise, renderizzeremo sovrapposizioni visive e salveremo i risultati in file JSON e CSV. Questa pipeline mostra come un'analisi avanzata del PDF possa sostenere compiti legati all'IA dei documenti come l'analisi del layout, il riconoscimento dell'ordine della lettura, l'elaborazione delle tabelle e la preparazione dei documenti per l'individuazione.

Configurazione dell’ambiente Colab per Docling Parse

Per prima cosa, installiamo i pacchetti necessari in un ambiente Google Colab.

import os, sys, subprocess, textwrap, json, time, shutil

from pathlib import Path

def run(cmd):

print(f"\n$ {cmd}")

return subprocess.run(cmd, shell=True, text=True, capture_output=False)

run(f'{sys.executable} -m pip install -q --no-cache-dir -U "pillow>=10.4.0,<12" reportlab pandas matplotlib docling-core docling-parse')

import pandas as pd

import matplotlib.pyplot as plt

from reportlab.lib.pagesizes import A4

from reportlab.lib import colors

from reportlab.platypus import Table, TableStyle

from reportlab.pdfgen import canvas

from docling_core.types.doc.page import TextCellUnit

from doclingparse.pdfparser import DoclingPdfParser

WORKDIR = Path("/content/doclingparseadvanced_tutorial")

WORKDIR.mkdir(parents=True, exist_ok=True)

PDFPATH = WORKDIR / "advanceddoclingparsedemo.pdf"

OUT_DIR = WORKDIR / "outputs"

OUTDIR.mkdir(existok=True)

DEMOIMAGEPATH = WORKDIR / "demo_bitmap.png"

Questa configurazione include Docling Parse, Docling Core, Pillow, ReportLab, Pandas, e Matplotlib. Risolviamo inoltre eventuali problemi di importazione di Pillow, in modo da rendere il notebook robusto per potere riprendere il lavoro nel caso di installazione rotta nel Colab. Definiamo poi percorsi di lavoro, cartelle di output, e destinazioni che utilizziamo durante l'esecuzione.

Creazione di un documento test con molti elementi grafici

Procediamo creando un'immagine semplice e un documento PDF test personalizzato. Questo documento sarà composto da testo a due colonne, forme vettoriali, tabelle, testi densi e un’immagine incorporata.

Gli elementi che generiamo per il test includono:

    • Un titolo principale con descrizione introduttiva.
    • Sezioni di testo a due colonne con differenti stili.
    • Nuance grafiche come rettangoli, ovali e linee.
    • Una piccola tabella con dati e struttura.
    • Pagine successive contenenti un’immagine, testo multi-blocco e forme.

Questi elementi ci permetteranno di valutare la capacità di Docling Parse di elaborare in maniera strutturata diversi tipi di contenuti.

Estrazione di elementi testuali, parole e linee

Passiamo ora all’estrazione delle informazioni testuali dal documento generato.

Dopo aver installato e configurato l’ambiente, utilizziamo il modulo DoclingParser di Docling Parse per analizzare il documento, estrarre parole, caratteri e segmentazioni delle linee con le loro coordinate. Questi dati vengono strutturati in unità di testo e salvati in formato JSON.

I dati estratti

I dati che estraiamo includono:

    • Parole: Individuano ogni singola parola estratta, con corrispondenti coordinate.
    • Caratteri: Posizionano letteralmente ogni singolo carattere del testo.
    • Linee: Evidenziano le strutture di righe di testo basate su coordinate, permettendo di ricostruire l’ordine di lettura.
    • Pagine: Gestiscono il layout della pagina, con riferimenti alle altre strutture presenti (testo, immagini, grafica vettoriale).

Rendering visivo e salvataggio in formato JSON e CSV

Dopo l’estrazione, generiamo output visivi sovrapponendo l’analisi estratta sulle pagine PDF per visualizzare la corrispondenza tra testo e struttura grafica.

Il processo prevede:

    • Creazione di sovrapposizioni visive usando Matplotlib per verificare la correttezza delle estrazioni.
    • Slicing di output JSON per mostrare la struttura espressa da Docling Parse.
    • Salvataggio delle informazioni estratte in formati JSON e CSV per successive analisi o input a un modello.

Esplorazione ulteriore della pipeline

Una volta completata la pipeline, puoi estendere le capacità di Docling Parse aggiungendovi:

    • Un motore di elaborazione per tabelle.
    • Un sistema di riconoscimento dell’ordine del testo (reading order).
    • Un modulo di classificazione per identificare documenti o elementi in base al layout.

Queste estensioni permettono di integrare funzioni di AI su larga scala per applicazioni come l’AI per la gestione documentale, l’estrattore di informazioni e la preparazione del contenuto.

Ciò rende il framework Docling Parse non solo un analizzatore di PDF, ma anche un punto di partenza per applicazioni di elaborazione dei dati, estratto informazioni e modelli avanzati.