Come estrarre i dati dalle tabelle in PDF con Tabula e OpenRefine

Ci sono tonnellate di dati là fuori, rinchiusi in tabelle incorporate in saggi e rapporti PDF. I PDF sono onnipresenti, ma è più difficile usare i dati saliti al loro interno di quanto non sarebbe in un foglio di calcolo. Anche se puoi estrarre i dati, può essere difficile ottenere risultati coerenti. Una tabella potrebbe avere linee per indicare i contorni delle celle, mentre altri potrebbero avere solo spazi bianchi per ottenere una vista tabella. Possono anche variare in termini di contenimento di righe sparse e / o colonne, e spesso l'unica costante è che hanno tutti i dati che vuoi estrarre.

Mentre è possibile estrarre manualmente i dati da una tabella in un PDF, è tutt'altro che semplice. Non c'è motivo di impiegare tanto tempo quando ci sono strumenti per semplificare il nostro lavoro. In questo tutorial, ti mostrerò come estrarre facilmente la tabella dal PDF con Tabula e poi pulire i dati disordinati in una forma più utilizzabile con OpenRefine.

Perché Tabula?

Chiunque lavori con i dati conosce un problema comune: hai trovato alcuni dati interessanti per il tuo progetto giornalistico o le statistiche per preparare una bella mappa, ma i dati arrivano disordinati e intrappolati all'interno di un file PDF, non automaticamente leggibili dal tuo programma. Pertanto, è necessario scrivere o eseguire un lungo processo di copia e incolla di file di dati dal file PDF in Excel. Questo tipo di lavoro manuale crea attrito e successivamente si perde molto tempo.

Essendo un laureato in ricerca, ho passato questo dolore per copiare manualmente e incollare il tavolo per la mia tesi. Ho sempre sognato un'applicazione che estrae la tabella da PDF con un solo clic, ed è esattamente ciò che Tabula è. È un'app gratuita, basata su java, che viene eseguita in un'interfaccia Web sul computer in grado di estrarre i dati da quasi qualsiasi tabella in un PDF. In pochi secondi è in grado di estrarre i dati che ti richiederebbero ore per ridistribuirli manualmente.

Come usare Tabula?

Innanzitutto, scarica il file zip corrispondente per il tuo computer dal sito Web Tabula e decomprimili in una cartella a tua scelta. Assicurati di aver installato anche Java v6 o 7; in caso contrario, è possibile scaricarlo gratuitamente dal sito Web di Oracle. Il collegamento è alla versione di ad / toolbar, quindi non dovrai preoccuparti di altro che venga installato.

Quando avvii Tabula, inizialmente vedrai una finestra di comando e in pochi secondi il tuo browser dovrebbe aprirsi automaticamente http://127.0.0.1:8080. In caso contrario, apri il browser web e digita questo URL nel campo dell'indirizzo. Sottoscrivi il tuo file PDF e Tabula elaboreranno il tuo file e ti mostreranno un bel elenco di miniature di pagina. Cerca la tabella che desideri estrarre oppure, se disponi di un PDF piccolo, puoi selezionare l'opzione "Rileva automaticamente le tabelle".

Schermata iniziale di Tabula che mostra le miniature delle pagine e la tabella che si desidera estrarre

Fare clic e trascinare per selezionare l'area della tabella. Una volta rilasciato il mouse, Tabula mostrerà la tabella estratta in un formato amichevole. Se i dati sono sfocati, prova a rimuovere le intestazioni o le note a piè di pagina e altro ancora. Infine, puoi scaricare la tabella estratta come valori separati da virgola (CSV) o valori separati da tabulazioni (TSV) o copiare i dati negli Appunti. Una volta che i dati sono nel foglio di calcolo, potrebbe essere necessario fare un po 'di editing come correggere le intestazioni o le note a piè di pagina.

Tabella estratta da PDF con Tabula

Quando hai bisogno di chiudere Tabula in Windows, passa a quella finestra di comando e premi Control-C. Attendi finché non viene visualizzato un messaggio che informa che l'arresto è stato completato. Quella finestra potrebbe chiudersi automaticamente o chiuderla da sola. In Mac, passare all'applicazione (fare clic con il pulsante destro del mouse sull'icona nel dock) e premere CMD-Q. Se utilizzi Mac OS X 10.8 o versioni successive, assicurati di regolare le impostazioni di Gatekeeper per evitare messaggi di errore durante l'installazione.

Tabula non sarà perfetto sempre e ci sono ancora alcuni problemi da risolvere. A partire da ora funziona solo su PDF basato su testo, quindi sei bloccato con la manodopera se hai dei PDF scansionati, anche se hai una copia di Acrobat, potresti convertire PDF di immagini in un PDF modificabile che lavorare con Tabula. Inoltre, se si dispone di PDF con righe su più righe, Tabula segnalerà frequenti errori nelle tabelle senza separatori di righe grafiche, quindi assicuratevi di fare attenzione.

Perché OpenRefine?

Errori di battitura occasionali, spazio extra, punteggiatura casuale, strane lettere maiuscole, record duplicati e altro sono il corso quando estrai i dati dai PDF. Non importa quanto sia bello l'estratto a prima vista, i tuoi dati saranno un disastro se c'è qualunque errori, creando problemi nel recupero dei dati, interoperabilità e indicizzazione.

È qui che entra in gioco OpenRefine (in precedenza Google Refine). È un altro strumento gratuito che ti aiuta a identificare facilmente questi errori e imprecisioni nei dati. OpenRefine non solo consente di diagnosticare rapidamente la precisione dei dati, ma anche di agire su determinati errori in modo automatico. Può trasformare i dati su più celle esistenti alla rinfusa, allo scopo di ripulire i dati, può estenderli con più dati da altre fonti e convertirli in altri formati in modo da poterli utilizzare nelle app che si desidera.

Come usare OpenRefine?

OpenRefine ancora una volta ha un'interfaccia web, gira sul tuo computer e richiede Java. L'unica differenza è che questa volta si aprirà nel browser in http://127.0.0.1:3333.

Quando apri OpenRefine, puoi notare tre opzioni sul lato sinistro: Crea progetto in cui è possibile importare i dati dal computer, da un indirizzo Web, da un Appunto o da un foglio di calcolo Google; Progetto aperto che ti aiuta a tornare a un progetto esistente creato durante una precedente sessione; e Importa progetto che ci consente di importare direttamente un archivio di progetti OpenRefine esistente. OpenRefine comprende una varietà di formati di file di dati tra cui TSV, CSV, documenti Excel e persino XML e JSON, uno dei preferiti per gli sviluppatori di applicazioni e web.

Schermata iniziale di OpenRefine

Passare al file CSV esportato e fare clic Il prossimo. Nella schermata successiva, si ottiene una panoramica del set di dati così come apparirà in OpenRefine. Per impostazione predefinita, la prima riga verrà analizzata correttamente come nome di una colonna. Un'altra opzione è la casella di controllo "Virgolette sono usate per racchiudere le celle che contengono separatori di colonne". Se la lasci selezionata, assicurati di verificare che tutti i valori della cella siano effettivamente racchiusi tra virgolette nel file originale. Altrimenti, deseleziona questa casella per assicurarti che le virgolette non vengano interpretate erroneamente da OpenRefine.

Le altre opzioni potrebbero tornare utili in alcuni casi; prova a selezionarli e deselezionarli per vedere come influiscono sui tuoi dati. Si noti come l'anteprima si aggiorna per riflettere queste modifiche. Inoltre, assicurati di selezionare la codifica corretta per evitare che i caratteri speciali vengano mescolati. Quando tutto sembra giusto, dai un nome al tuo progetto e fai clic Crea progetto.

Set di dati caricato in OpenRefine

Per dimostrare le varie tecniche di manipolazione dei dati è possibile utilizzare il proprio set di dati o scaricare un set di dati demo dal repository Github per provare se stessi. Una volta caricato il set di dati in OpenRefine, è necessario imparare a esplorare i dati analizzando le diverse zone. Dall'alto verso il basso è possibile osservare quattro zone.

Nella prima zona, è possibile vedere il numero totale di righe per un determinato file. Nella seconda zona, puoi provare ad alternare righe e record facendo clic su una parola. Questa zona consente anche di scegliere se visualizzare 5, 10 o 50 righe / record su una pagina e fornisce anche il modo corretto di navigare da una pagina all'altra. Nella terza zona, troverai qui la prima riga che è stata analizzata come intestazione della colonna al momento della creazione del progetto. Nel mio set di dati, le colonne si leggono Università, dotazione, numFaculty e così via. La colonna più a sinistra viene sempre chiamata Tutti ed è diviso in tre sotto-colonne contenenti stelle, bandiere e ID. Ogni colonna ha un menu a cui è possibile accedere facendo clic sul piccolo triangolo a discesa. Infine, la quarta zona mostra l'area principale effettiva che visualizza i valori effettivi delle celle. Se passi il mouse su una cella, puoi modificare quel particolare tipo di dati.

Diverse zone di OpenRefine

Le colonne sono una parte essenziale di OpenRefine e, per impostazione predefinita, tutte le colonne sono espanse e possono essere ingombranti se ci sono molte colonne nel progetto. Se si desidera nascondere temporaneamente altre colonne per facilitare il lavoro sugli altri, fare clic sul piccolo triangolo a discesa in qualsiasi colonna per mostrare il menu e selezionare vista. Puoi vedere quattro opzioni qui: Comprimi questa colonna, Comprimi tutte le altre colonne, Comprimi colonne a sinistra e Comprimi colonne a destra.

Gioca con le singole opzioni di colonna finché non sei soddisfatto del risultato. Per espandere nuovamente una colonna, fai clic su di essa. In alcuni casi, potrebbe essere utile modificare l'ordine delle colonne, ad esempio per riunire colonne che devono essere confrontate. Per ottenere ciò, accedere al menu di qualsiasi colonna e fare clic Modifica colonna. Di nuovo, sono disponibili quattro opzioni: Sposta colonna all'inizio, Sposta colonna alla fine, Sposta colonna a sinistra e Sposta colonna a destra. Se vuoi riordinare completamente le colonne, usa la colonna chiamata Tutti

Il vista opzione qui ti offre un modo rapido per espandere o comprimere tutte le colonne, mentre Modifica colonna ti offre un modo rapido per riorganizzare le colonne trascinandole o sopprimendole rilasciandole a destra, come mostrato nello screenshot seguente.

Riorganizzazione delle colonne in OpenRefine

Quando il tuo progetto è grande, la prima cosa che dovresti imparare è come ordinare i dati come un aiuto visivo dato che l'ordinamento può rendere il set di dati più semplice da esplorare e manipolare. Al fine di ordinare i dati da loro Università nomi, scegliere Ordinare nel menu della colonna per accedere alla seguente schermata. Guardando lo screenshot puoi ordinare i valori delle celle in base al loro tipo: testo, numeri, date e booleani e per ogni tipo possono essere ordinati in ordine diverso.

Ad esempio, il testo può essere ordinato in ordine alfabetico (da a a z) o in ordine alfabetico invertito (da z a a), booleano falso e poi vero o viceversa e così via. Inoltre, possiamo specificare dove verranno memorizzati gli errori e gli spazi vuoti in relazione ai valori validi trascinandoli nell'ordine desiderato. Ad esempio, gli errori potrebbero essere ordinati prima per individuarli più facilmente, seguiti da valori validi in valori medi e vuoti alla fine.

Ordinamento dei dati in OpenRefine

Uno degli strumenti di OpenRefine che userete più spesso è sfaccettatura. In genere, si crea un aspetto su una colonna particolare. Il facet riepiloga le celle in quella colonna per darti una grande immagine dei tuoi dati nella barra laterale e allo stesso tempo ti permette di filtrare i dati su qualche sottoinsieme di righe che vuoi cambiare alla rinfusa. Esistono vari modi per sfogliare i dati e in base ai valori del set di dati e alle esigenze dell'utente: sfaccettature di testo per archi, sfaccettature numeriche per numeri e date e sfaccettature personalizzate per definire il tuo testo e le tue sfaccettature numeriche.

Il facet di testo è uno strumento molto utile, simile al filtro in un foglio di calcolo. Il facet di testo raggruppa valori di testo univoci in gruppi. Questo può aiutarci a unire le informazioni e possiamo vedere i valori, che possono essere scritti in molti modi diversi. Ora creeremo un aspetto di testo sul nazione colonna facendo clic sul menu a discesa di quella colonna e selezionare Sfaccettatura → Sfaccettatura del testo.

Il risultato di questa faccetta appare nella scheda Facet / Filter sulla sinistra dello schermo. Nella seguente schermata possiamo vedere la colonna nazione raggruppati secondo i nomi, ma ho trovato alcune voci strane come "U.S", "Stati Uniti" e "U.S.A", insieme agli "Stati Uniti" dispari. Non sono tutti uguali?

Facet di testo in OpenRefine

È possibile modificare manualmente queste discrepanze, ma non è necessario. L'opzione Grappolo ti aiuterà a trovare facilmente questo tipo di dati sporchi e a risolverli. Clicca il nazione colonna a discesa e vai a Modifica celle → Cluster e Modifica, OpenRefine ti presenterà quindi una finestra di dialogo in cui puoi scegliere diversi metodi di clustering, ognuno dei quali può utilizzare varie funzioni di Keying.

Nel Valori nel cluster, puoi vedere le diverse ortografie e quante righe contengono una particolare ortografia. Il fondersi? colonna contiene una casella di controllo e, se la si controlla, tutti i valori in tale cluster verranno modificati nel valore in Nuovo valore della cella colonna. Qui posso inserire manualmente il nuovo valore della cella come "Stati Uniti d'America" ​​e quindi puoi fare clic Unisci selezionati e chiudi pulsante per unire tutti i cluster selezionati.

Potresti trovare altre discrepanze nel set di dati; se è così, selezionare diverso Metodo dal menu a discesa e scegli diversi Funzioni di trasparenza. Gioca con diverse opzioni fino a quando non risolvi tutte le incongruenze. Se vuoi approfondire come funziona il clustering OpenRefine, assicurati di controllare questo articolo nel suo Github.

Raggruppamento in OpenRefine

Quando una sfaccettatura di testo raggruppa valori di testo univoci in gruppi, una sfaccettatura numerica raggruppa i numeri in intervalli numerici. Abbiamo bisogno di pulire i dati per il numero di studenti nel numStudents colonna. Non tutti i valori sono numerici e molti di essi possono contenere bit di testo oltre al numero effettivo degli studenti. Per capire quali voci devono essere corretti, userò un aspetto numerico.

Nel numStudents menu colonna, vai a Sfaccettatura → Sfaccettatura numerica e guarda ciò che appare nel Faccetta / filtro scheda a sinistra. Questo ci mostra un istogramma dei valori e, inoltre, elenca il numero di voci per tipo (numerico, non numerico, vuoto, errore), tieni un orologio sul non numerica righe e deselezionare gli altri tipi. Possiamo già vedere alcuni problemi, poiché alcune celle hanno "testo oltre ai numeri" e varie altre discrepanze. Quindi la colonna numerica in breve non è puramente numerica e contiene alcuni dati sporchi.

Possiamo fare due cose qui: usa la faccetta del testo per elencare tutto il "testo oltre i numeri" nella barra laterale di sinistra, quindi passa il mouse sopra qualsiasi dato disordinato e vedrai un'opzione chiamata modificare, una finestra di dialogo si aprirà e quindi rimuovere il testo con Backspace e fare clic Applicare. Nel mio set di dati ho rimosso il testo "Great Valley" da 560 righe con un solo clic.

Sfaccettatura numerica in OpenRefine

Gli sfaccettature sono strumenti decisamente potenti ma a volte è possibile che si notino incongruenze nella colonna delle celle e l'unico modo per modificare le celle in una colonna è richiamare il Trasformazione comune comando su quella colonna; dalla selezione del menu a discesa della colonna Modifica celle → Trasformazione comune comando. Vedrai ci sono una serie di utili funzioni qui per ripulire i tuoi dati e assicurarti che siano coerenti. Ecco perché: a volte nel processo di immissione dei dati, le persone mettono uno spazio prima o dopo un nome. Non sarai in grado di vederlo, ma quando si tratta di combinare due serie di dati, il software del foglio di calcolo la interpreterà come due serie di dati. Ad esempio, "Rahul" è diverso da "Rahul".

Vai alla colonna in cui vuoi rimuovere gli spazi, quindi vai a Modifica celle → Trasformazione comune → Taglia gli spazi bianchi iniziali e finali. Un altro problema comune con i dati è la formattazione incoerente, a volte qualcuno lascia il blocco dei tappi o dimentica di scrivere un nome in maiuscolo. Queste tre opzioni: in titlecase, in maiuscolo, in minuscolo converte tutte le celle in quella colonna in una formattazione coerente, in un modo o nell'altro.

Trasformazione comune in OpenRefine

Una caratteristica molto utile di OpenRefine è la gestione della cronologia di tutte le modifiche che hanno interessato i dati dalla creazione del progetto. In pratica, questo significa che non dovresti mai aver paura di provare le cose con il set di dati. Sentiti libero in ogni momento di trafficare con i tuoi dati e applicare qualsiasi numero di sfaccettature o trasformazioni perché puoi sempre annullarlo se ti accorgi che è stato un errore

 Per accedere alla cronologia del progetto, fare clic su Annulla Ripristina scheda in alto a sinistra dello schermo, proprio accanto al Filtro / Facet, come mostrato nello screenshot. Per tornare indietro nel tempo, fare clic sull'ultimo passaggio che si desidera mantenere e il resto verrà visualizzato in grigio. Per annullare tutte le modifiche e ripristinare i dati come erano prima di effettuare qualsiasi trasformazione, fare clic su 0. Crea progetto. Per ripetere, fai clic sul passaggio a cui desideri ripristinare la cronologia.

Storia del progetto in OpenRefine

Una volta terminato il progetto, è possibile esportare i dati da un progetto OpenRefine esistente. Il Esportare il menu in alto a destra dello schermo ti consente di fare proprio questo. I formati supportati sono: TSV, CSV, formato Excel, foglio di calcolo ODF, tabella JSON e HTML. L'ultima opzione è utile se vuoi pubblicare i tuoi dati puliti online.

Conclusione

Con questo tutorial, hai le basi su come usare Tabula e OpenRefine. Ad un certo punto, potresti essere sopraffatto dalla complessità di OpenRefine, ma non preoccuparti. Prenditi il ​​tuo tempo e ricorda che lavorare con i dati non è solo codice o clic, devi seguire la tua intuizione per ottenere dati in grande forma e puoi sempre annullare qualsiasi cosa se commetti un errore.

Se hai problemi a iniziare con Tabula o OpenRefine, o se hai metodi unici da condividere, assicurati di farcelo sapere nei commenti qui sotto.