2009-12-04 8 views
66

Sto cercando una libreria PDF che mi consenta di estrarre il testo da un documento PDF. Ho esaminato PyPDF e questo può estrarre molto bene il testo da un documento PDF. Il problema è che se ci sono tabelle nel documento, il testo nelle tabelle viene estratto in linea con il resto del testo del documento. Questo può essere problematico perché produce sezioni di testo che non sono utili e sembrano confuse (ad esempio, un sacco di numeri purè insieme).Analisi PDF avanzata con Python (estrazione di testo senza tabelle, ecc.): Qual è la migliore libreria?

Sto cercando qualcosa che sia un po 'più avanzato. Vorrei estrarre il testo da un documento PDF, escluso, qualsiasi tabella e formattazione speciale. C'è una libreria là fuori che fa questo? O sono obbligato a fare un po 'di post-elaborazione sul testo di output per sbarazzarmi di queste sezioni?

risposta

53

È inoltre possibile dare un'occhiata a PDFMiner, un altro parser PDF in Python.

La particolarità di PDFMiner che può interessarti è che puoi controllare come raggruppare parti di testo durante l'estrazione. Lo fai specificando lo spazio tra linee, parole, caratteri, ecc. Quindi, magari twittando su questo puoi ottenere quello che vuoi (dipende dalla variabilità dei tuoi documenti). PDFMiner può anche darti la posizione del testo nella pagina, può estrarre i dati per ID oggetto e altre cose. Quindi scava in PDFMiner e sii creativo!

Ma il tuo problema non è davvero facile da risolvere perché, in un PDF, il testo non è continuo, ma è composto da molti piccoli gruppi di caratteri posizionati in modo assoluto nella pagina. L'obiettivo del PDF è quello di mantenere intatto il layout. Non è orientato ai contenuti ma è orientato alla presentazione.

+1

PDFMiner sembra interessante. Sono in grado di utilizzare l'output XML da esso, quindi analizzarlo per ignorare ciò che non desidero. Ciò richiede ancora una sostanziale post-elaborazione, ma per ora è probabilmente la soluzione migliore. Grazie. –

+0

@Etienne, può essere usato se il PDF ha anche altri caratteri di lingua? –

+0

Dovrebbe funzionare con altri caratteri della lingua. Menzione dei documenti: supporto per le lingue CJK e gli script di scrittura verticale. Il modo migliore per essere sicuro, testarlo! – Etienne

-1

Questo è un problema difficile da risolvere in quanto i PDF visivamente simili possono avere una struttura molto diversa a seconda di come sono stati prodotti. Nel peggiore dei casi, la libreria dovrebbe agire come un OCR. D'altra parte, il PDF può contenere una struttura e metadati sufficienti per una facile rimozione di tabelle e figure, che la libreria può essere personalizzata per trarne vantaggio.

Sono sicuro che non ci sono strumenti open source che risolvono il tuo problema per una vasta gamma di PDF, ma ricordo di aver sentito parlare di software commerciale che pretende di fare esattamente quello che chiedi. Sono sicuro che ti imbatterai in loro mentre fai ricerche su Google.

Problemi correlati