2015-02-16 19 views
25

Esistono librerie open source che supportano l'estrazione della tabella &?Estrai/Identifica tabelle da PDF python

Con questo intendo:

  1. Identificare una struttura tabella esiste
  2. adesso la tabella dal suo contenuto
  3. Estrarre dati della tabella in un formato di output utile ad esempio JSON/CSV ecc

Ho osservato con domande simili su questo argomento e ha trovato il seguente:

  • PDFMiner che affronta problema 3, ma sembra che l'utente è tenuto a specificare di PDFMiner in cui un esiste una struttura tabella per ogni tabella (correggimi se ho torto)
  • pdf-table-extract che tenta di risolvere il problema 1 ma secondo l'elenco To-Do, al momento non è possibile identificare le tabelle che sono separate da spazi vuoti. Questo è un problema poiché tutte le tabelle nei miei PDF sono separate da spazi bianchi!

Attualmente, sto pensando che avrei dovuto dedicare molto tempo allo sviluppo di una soluzione di Machine Learning per identificare strutture di tabelle da PDF. Pertanto, qualsiasi approccio alternativo sarebbe più che benvenuto!

+4

Se è possibile utilizzare anche strumenti oltre a python, si consiglia di dare un'occhiata a [tabula] (http://tabula.technology/). – mkl

+0

grazie. Lo esamineremo sicuramente. Sono ansioso di trovare una soluzione in Python grazie alla velocità con cui python può essere scritto –

risposta

17

si dovrebbe assolutamente avere uno sguardo a questa risposta di mine:

e hanno anche uno sguardo a tutti i link in essa inclusi.

Tabula/TabulaPDF è attualmente il miglior strumento di estrazione tabella disponibile per lo scraping PDF.

+2

solo un aggiornamento sull'efficacia di questa risposta ... Ho hackerato una soluzione insieme usando 'tabula' l'anno scorso per iterare attraverso circa 100 PDF con alcuni formati in comune. Non era bello ma era il meglio del peggio e ha risparmiato tempo significativo. –

+0

https://pypi.python.org/pypi/pdftable soddisferà i requisiti? –

8

vorrei solo aggiungere alla risposta molto utile da Kurt Pfeifle - v'è ora un wrapper Python per Tabula, e questo sembra funzionare molto bene finora: https://github.com/chezou/tabula-py

Questo permette di convertire il vostro tavolo PDF a un frame di dati di Pandas. Puoi anche impostare l'area in coordinate x, y che è ovviamente molto utile per i dati irregolari.

15

Dopo molte ore fruttuose di esplorazione di librerie OCR, bounding box e algoritmi di clustering, ho trovato una soluzione così semplice da farti desiderare di piangere!

Spero che stiate usando Linux;

pdftotext -layout NAME_OF_PDF.pdf

INCREDIBILE !!

Ora avete un file di testo bello, con tutte le informazioni allineati in belle colonne, ora è banale per formattare in un csv ecc ..

E 'per momenti come questo che amo Linux, questi ragazzi è venuto con soluzioni AMAZING per tutto, e metterlo lì GRATIS!

+0

Link ai documenti? esempi? Se la libreria che menzioni è quella che sospetto, non sembra soddisfare i criteri per 1. o 2. –

+0

Grazie, funziona molto bene! :) –

+0

OMG, questo ha funzionato incredibilmente bene !!! – vy32