I file PDF (Portable Document Format) sono comunemente usati per condividere documenti elettronicamente. Gli individui e le aziende utilizzano i file PDF per condividere informazioni allo stesso modo. Spesso abbiamo bisogno di estrarre alcune informazioni dai file PDF per un'ulteriore elaborazione. Tuttavia, l'estrazione del testo da un file PDF può essere impegnativa, soprattutto se il documento contiene una formattazione e un layout complessi. Fortunatamente, ci sono diversi modi per farlo.
Qui, forniremo il metodo più comunemente usato per estrarre il testo dai PDF usando Python. Python comprende diverse librerie che consentono un'estrazione efficiente del testo PDF.
L'articolo esplora alcune popolari librerie Python per l'estrazione di testo da file PDF e il processo di estrazione del testo passo dopo passo dai PDF.
Librerie Python per l'elaborazione PDF
Python ha diverse librerie ben integrate che gestiscono efficacemente fonti di dati non strutturate come i file PDF. Ecco un elenco di alcune librerie Python per l'elaborazione di PDF.
- PyPDF2: È una libreria Python per PDF che può aiutare a dividere, unire, ritagliare e trasformare pagine di file PDF. pyPDF2 consente inoltre di estrarre testo da file PDF.
- PyMuPDF: PyMuPDF è un wrapper Python per la libreria MuPDF C. Ti consente di leggere, scrivere e manipolare file PDF in Python. Inoltre, puoi accedere ai metadati del documento PDF, estrarre testo e immagini e decrittografare un documento PDF con PyMuPDF.
- ReportLab: È una libreria Python open source che può essere utilizzata per creare e manipolare file PDF. Fornisce un'API di alto livello per la creazione di documenti PDF da zero e supporta l'incorporamento di immagini e caratteri.
- Pdf2dox: È una libreria Python per estrarre dati utilizzando la libreria PyMuPDF da file PDF.
Converti istantaneamente PDF complessi in formato testo utilizzando il convertitore da PDF a testo. Provalo gratuitamente.
Impostazione dell'ambiente di sviluppo
Prima di discutere i passaggi per l'estrazione del testo dal PDF, è essenziale configurare un ambiente di sviluppo e installare le librerie Python richieste per estrarre il testo.
- Installa Python: Se non l'hai già fatto, dovrai installare Python sul tuo sistema. Puoi scaricare l'ultima versione di Python da qui.
- Installa pip: Per verificare se hai pip installato in Python, esegui
py -m ensurepip --default-pip
Se pip non viene eseguito automaticamente, scaricalo qui ed eseguire il codice seguente per l'installazione o l'aggiornamento
pip.python get-pip.py
- Installa la libreria richiesta: Installa qualsiasi libreria Python per lavorare con i file PDF. Qui installeremo la libreria comunemente usata, PyPDF2. Per installarlo, esegui il seguente comando.
pip install PyPDF2
Dopo aver installato Python e le librerie richieste, il tuo ambiente di sviluppo è impostato. Puoi usare qualsiasi editor di testo o IDE per scrivere codice Python, come Visual Studio Code, PyCharm o Sublime Text.
Useremo la libreria Python PyPDF2 per estrarre i file.
Inserisci PDF:
# importazione dei moduli richiesti |
Produzione:
Ora, comprendiamo ogni codice separatamente.
- lettore = PdfReader('nanonets.pdf')
Dal modulo PyPDF2, abbiamo creato un oggetto della classe PDFReader. Prenderà l'argomento posizionale richiesto del percorso del file pdf.
- print(len(lettore.pagine))
La proprietà pages fornisce un elenco di PageObjects. Qui possiamo usare la funzione Python integrata len() per ottenere il numero di pagine nel file pdf.
- pagina = lettore.pagine[0]
Possiamo anche ottenere una specifica pagina di file pdf toccando l'indice della pagina. L'indicizzazione dell'elenco inizia da 0 in Python, quindi questo comando ci darà la prima pagina del file.
- testo = page.extract_text()
stampa (testo)
Useremo questo comando per estrarre il testo dalla pagina pdf.
Pre-elaborazione del testo estratto per pulirlo e normalizzarlo
Diverse tecniche di pre-elaborazione, come la rimozione di parole non significative, lettere minuscole, rimozione di punteggiatura, stemming o lemmatizzazione, vengono utilizzate per pulire e normalizzare il testo estratto in Python.
Ingresso: Python è un popolare linguaggio di programmazione utilizzato per l'analisi dei dati e l'apprendimento automatico. È facile da imparare e dispone di un'ampia gamma di librerie per varie applicazioni.
Codice:
testo = “Python è un popolare linguaggio di programmazione utilizzato per l'analisi dei dati e l'apprendimento automatico. È facile da imparare e dispone di un'ampia gamma di librerie per varie applicazioni." |
Produzione: ['python' 'popolare' 'programmazione' 'linguaggio' 'usato' 'dati' 'analisi' 'macchina' 'apprendimento' 'facile' 'apprendimento' 'ampio' ' gamma,' 'librerie', 'varie', 'applicazioni']
Questo passaggio ha rimosso parole non significative come "is", "a", "for", "and", "it" e "has" e ha anche minuscolo tutte le parole nel testo.
Salvataggio del testo estratto in un file o database
Esegui il seguente codice:
con aprire('testo_estratto.txt', 'w') as f: |
Questo codice aprirà un file denominato testo_estratto.txt in modalità di scrittura. IL f.scrivi() Il metodo scrive il testo pre-elaborato nel file. Converte l'elenco di parole in testo_pulito a una stringa unendo le parole con uno spazio (' '), quindi scrive la stringa risultante nel file.
Quindi, il risultato è che il testo pre-elaborato viene salvato in un file denominato testo_estratto.txt nella directory di lavoro corrente.
Converti istantaneamente PDF complessi in formato testo utilizzando il convertitore da PDF a testo. Provalo gratuitamente.
Diverse tecniche avanzate possono essere utilizzate per migliorare la precisione dell'estrazione del testo. Ecco alcune tecniche:
- Riconoscimento ottico dei caratteri (OCR): L'OCR è un processo che converte le immagini scansionate in testo codificato dalla macchina. L'OCR può essere utilizzato per estrarre testo da file PDF che contengono immagini o pagine digitalizzate. Sono disponibili diversi motori OCR, tra cui Tesseract, Google Cloud Vision e Amazon Textract.
- Tecniche di pre-elaborazione: Le tecniche di pre-elaborazione implicano la manipolazione del file PDF prima dell'effettivo processo di estrazione. Ciò include tecniche come de-skewing, de-noising e thresholding per rimuovere rumore, skew e altre distorsioni che possono influenzare l'accuratezza del processo di estrazione.
- Analisi del layout: Implica l'identificazione e la classificazione dei diversi elementi di un file PDF, come blocchi di testo, tabelle e immagini. Queste informazioni possono migliorare l'accuratezza dell'estrazione del testo identificando la struttura del documento.
- Strumenti di apprendimento automatico: Diversi strumenti di estrazione del testo, come nanonet, utilizza tecniche di apprendimento automatico per estrarre il testo dai file PDF in modo accurato.
Suggerimenti per ottimizzare le prestazioni e ridurre l'utilizzo della memoria in Python
La gestione efficace della memoria in Python può essere complessa e richiede la comprensione delle strutture dati e degli oggetti di Python. Ecco alcuni suggerimenti per ottimizzare le prestazioni e ridurre l'utilizzo della memoria durante l'esecuzione del codice in Python.
1. Usa le funzioni e le librerie Python integrate
L'uso delle funzioni Python integrate è un modo efficace per accelerare il codice. Si consiglia di incorporare queste funzioni nel codice quando appropriato perché sono ottimizzate e ben testate per le prestazioni.
Queste funzioni sono veloci perché vengono eseguite in C, un linguaggio ad alte prestazioni. Esempi di queste funzioni includono max, min, all, map e molte altre.
2. Utilizzare Pytorch DataLoader
L'addestramento di un set di dati di grandi dimensioni può richiedere un uso intensivo della memoria. L'utilizzo di DataLoader di PyTorch fornisce una soluzione a questo problema consentendo la creazione di più mini-batch di dati dall'intero set di dati. Ogni mini-batch, che può contenere diversi campioni determinati dalla memoria disponibile, viene caricato senza problemi nel modello, consentendo l'addestramento efficiente di grandi set di dati.
3. Utilizzare la comprensione dell'elenco sui cicli
In Python, i loop sono comuni, ma le list comprehension offrono un modo più conciso e veloce per creare nuove liste. È migliore del metodo append per aggiungere elementi a un elenco Python.
4. Spese generali dichiarazione di importazione
In Python, il posizionamento dell'istruzione import può influire sulle prestazioni del codice e sull'utilizzo della memoria. L'importazione di un pacchetto all'esterno di una funzione può comportare un'esecuzione più rapida del codice, ma può anche richiedere più memoria rispetto all'importazione del pacchetto all'interno di una funzione. Considerare i compromessi tra prestazioni e utilizzo della memoria è importante quando si decide dove posizionare le istruzioni di importazione in Python.
5. Blocchi di dati
Il chunking o il caricamento dei dati in piccoli batch è una tecnica utile per prevenire errori di memoria quando si lavora con set di dati di grandi dimensioni in Python. In molti casi, tutti i dati non sono necessari contemporaneamente e il tentativo di caricare tutto in un singolo batch può causare l'arresto anomalo del programma a causa dei limiti di memoria. Elaborando i dati in blocchi più piccoli, è possibile evitare questi errori di memoria e salvare i risultati secondo necessità. Pertanto, il chunking dei dati è comune nell'elaborazione e nell'analisi dei dati per prevenire problemi relativi alla memoria.
6. Concatenazione di stringhe
Due modi comuni per concatenare le stringhe in Python utilizzano l'operatore '+' o il metodo join(). Mentre l'operatore '+' è ampiamente utilizzato, il metodo join() è più efficace e veloce per concatenare le stringhe. Il motivo principale è che ad ogni passaggio l'operatore '+' crea una nuova stringa e copia la vecchia stringa, mentre il metodo join() funziona in modo diverso, risultando in una concatenazione più veloce.
Converti istantaneamente PDF complessi in formato testo utilizzando il convertitore da PDF a testo. Provalo gratuitamente.
Takeaway
La gestione degli errori di memoria in Python può essere impegnativa, ma esistono vari metodi per ottimizzare l'utilizzo della memoria e prevenire gli overflow della memoria. Il primo passaggio consiste nell'identificare il motivo principale del problema e nell'applicare i metodi di ottimizzazione della memoria applicabili. Se il problema persiste, i processi correlati possono essere ottimizzati oppure l'operazione può essere suddivisa in blocchi più piccoli utilizzando un servizio di database esterno.
Con questi suggerimenti e tecniche, è possibile ottimizzare l'utilizzo della memoria ed evitare problemi relativi alla memoria quando si lavora con set di dati di grandi dimensioni in Python. Sebbene le librerie Python offrano un modo conveniente per estrarre il testo dai file PDF, vale la pena considerare altri strumenti automatizzati per l'estrazione del testo, come Nanonet.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://nanonets.com/blog/extract-text-from-pdf-file-using-python/
- :È
- $ SU
- 1
- 7
- 8
- a
- accelerare
- accesso
- precisione
- con precisione
- Avanzate
- influenzare
- Tutti
- Consentire
- consente
- già
- Amazon
- Testo Amazon
- .
- ed
- api
- applicabile
- applicazioni
- AMMISSIONE
- opportuno
- SONO
- argomento
- articolo
- AS
- At
- il tentativo
- Automatizzata
- automaticamente
- disponibile
- BE
- perché
- prima
- Meglio
- fra
- Blocchi
- Rotto
- incassato
- aziende
- by
- Materiale
- casi
- Causare
- impegnativo
- carattere
- riconoscimento del personaggio
- dai un'occhiata
- classe
- Cloud
- codice
- Uncommon
- comunemente
- complesso
- considerando
- contenere
- contiene
- Comodo
- Nucleo
- Crash
- creare
- creato
- Creazione
- creazione
- raccolto
- Corrente
- dati
- analisi dei dati
- elaborazione dati
- Banca Dati
- dataset
- Decidere
- decrypt
- determinato
- Mercato
- diverso
- discutere
- documento
- documenti
- giù
- scaricare
- ogni
- editore
- Efficace
- in maniera efficace
- efficiente
- elettronicamente
- elementi
- enable
- consentendo
- Motori
- Inglese
- Intero
- Ambiente
- errori
- particolarmente
- essential
- qualunque cosa
- Esempi
- esecuzione
- estratto
- FAST
- più veloce
- pochi
- Compila il
- File
- Nome
- i seguenti
- font
- Nel
- formato
- per fortuna
- Gratis
- da
- function
- funzioni
- ulteriormente
- ottenere
- ottenere
- gif
- Dare
- Google cloud
- maniglia
- Avere
- Aiuto
- qui
- alto livello
- Alte prestazioni
- Come
- Tutorial
- Tuttavia
- HTTPS
- identificazione
- immagini
- Impact
- importare
- importante
- importazione
- competenze
- in
- includere
- inclusi
- Compreso
- incorporando
- Index
- individui
- informazioni
- install
- installato
- coinvolgere
- problema
- sicurezza
- IT
- accoppiamento
- Lingua
- grandi
- con i più recenti
- disposizione
- IMPARARE
- apprendimento
- biblioteche
- Biblioteca
- piace
- limiti
- Lista
- elenchi
- caricare
- Caricamento in corso
- macchina
- machine learning
- Principale
- make
- FA
- gestione
- manipolazione
- molti
- carta geografica
- max
- Memorie
- Unire
- Metadati
- metodo
- metodi
- Moda
- modello
- Moduli
- Scopri di più
- maggior parte
- multiplo
- Detto
- Bisogno
- New
- Rumore
- numero
- oggetto
- oggetti
- OCR
- of
- offrire
- Vecchio
- on
- aprire
- open source
- operazione
- operatore
- ottimizzazione
- OTTIMIZZA
- ottimizzati
- ottimizzazione
- Altro
- Altri
- al di fuori
- pacchetto
- pagina
- sentiero
- performance
- persiste
- posto
- Platone
- Platone Data Intelligence
- PlatoneDati
- Popolare
- possibile
- prevenire
- processi
- i processi
- lavorazione
- Programma
- Programmazione
- proprietà
- fornire
- fornisce
- Python
- pytorch
- gamma
- Leggi
- Lettore
- ragione
- riconoscimento
- raccomandato
- riducendo
- relazionato
- rimuovere
- rimosso
- rimozione
- richiedere
- necessario
- colpevole
- risultante
- Risultati
- Correre
- running
- s
- Risparmi
- senza soluzione di continuità
- servizio
- set
- alcuni
- Condividi
- compartecipazione
- singolo
- storto
- piccole
- inferiore
- So
- soluzione
- alcuni
- fonti
- lo spazio
- specifico
- dividere
- inizio
- dichiarazione
- dichiarazioni
- step
- Passi
- Fermare
- La struttura
- studio
- tale
- supporti
- sistema
- Fai
- tecniche
- tesseract
- che
- Il
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- suggerimenti
- a
- Tokens
- strumenti
- Training
- Trasformare
- capire
- e una comprensione reciproca
- upgrade
- us
- Impiego
- uso
- utilizzare
- vario
- Ve
- versione
- visione
- W
- Modo..
- modi
- se
- quale
- while
- largo
- Vasta gamma
- ampiamente
- volere
- con
- Word
- parole
- Lavora
- lavoro
- lavori
- valore
- scrivere
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro