Spaces:
Running
Running
File size: 1,186 Bytes
aabd32c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#Questa parte è responsabile dell'estrazione del testo e delle informazioni sul
#layout utilizzando spaCyLayout
import spacy
from typing import Any
from spacy_layout import spaCyLayout
import logging
logger = logging.getLogger(__name__)
#Configurazione del logger
logging.basicConfig(level=logging.INFO)
#Funzione per inizializzare e restituire l'istanza di spacy con il componenete spacylayout
#Ci permette di analizzare la struttura del PDF (colonne, titoli, etc.)
def get_layout_extractor():
#Inizializza un modello spaCy vuoto in italiano
nlp = spacy.blank("it")
#Aggiunge il componente spaCyLayout al modello
layout_extractor = spaCyLayout(nlp)
logger.info("Estrattore spaCyLayout per PDF inizializzato")
return layout_extractor
#Funzione per caricare il documento da bytes
def load_pdf_from_bytes(pdf_bytes: bytes, layout_extractor: Any):
try:
#Chiama l'estrattore sui bytes del PDF
doc = layout_extractor(pdf_bytes)
logger.info("Estrazione del layout del PDF completata")
return doc
except Exception as e:
logger.error(f"Errore durante il caricamento o l'estrazione del PDF: {e}")
return None |