Cum se extrag datele din tabele în PDF-uri cu Tabula și OpenRefine

Sunt tone de date acolo, blocate în mese încorporate în eseuri și rapoarte PDF. PDF-urile sunt omniprezente, totuși este mai greu să folosești datele ridicate în interiorul lor decât ar fi într-o foaie de calcul. Chiar dacă puteți extrage datele, poate fi dificil să obțineți rezultate consecvente. O masă ar putea avea linii pentru a arăta limitele celulei, în timp ce altele ar putea avea numai spații albe pentru a obține o vizualizare de tabel. Ele pot varia, de asemenea, în termeni de conținut care cuprind rânduri și / sau coloane, și adesea singura constanta este că toți au date pe care doriți să le extrageți.

În timp ce puteți extrage manual datele din tabel într-un PDF, este departe de a fi simplu. Nu există nici un motiv să luăm atât de mult timp când există instrumente care să facă munca mai simplă. În acest tutorial, vă vom arăta cum să extrageți tabelul din PDF ușor cu Tabula și apoi să curățați datele dezordonate într-o formă mai utilizabilă cu OpenRefine.

De ce Tabula?

Toți cei care lucrează cu date cunosc o problemă obișnuită: ați găsit câteva date interesante pentru proiectul dvs. jurnalistic sau statistici pentru pregătirea unei hărți frumoase, dar datele sunt murdare și prinse într-un fișier PDF, care nu poate fi citit automat de programul dvs. Deci, fie trebuie să scrieți sau să efectuați un proces de lungă durată de copiere și inserare a rândurilor de date din fișierul PDF în Excel. Acest tip de muncă manuală creează frecare și, ulterior, pierdeți mult timp.

Fiind un absolvent de cercetare, am trecut prin această durere de copiere manuală și lipire de masă pentru teza mea. Întotdeauna am visat o aplicație care poate extrage tabelul din PDF cu un singur clic - și exact asta este Tabula. Este o aplicație gratuită, bazată pe java, care rulează într-o interfață web de pe computerul dvs., care poate extrage date din aproape orice tabel într-un PDF. În câteva secunde, puteți extrage datele care vă vor lua ore să reintroduceți manual.

Cum se utilizează Tabula?

În primul rând, descărcați fișierul zip corespunzător pentru computerul dvs. de pe site-ul Tabula și dezarhivați-l într-un dosar la alegere. Asigurați-vă că aveți instalat Java v6 sau 7; dacă nu, îl puteți descărca gratuit de pe site-ul Oracle. Această legătură este legată de versiunea fără anunțuri / bara de instrumente, deci nu va trebui să vă faceți griji cu privire la instalarea altceva.

Când lansezi Tabula, vei vedea inițial o fereastră de comandă și în câteva secunde browserul tău ar trebui să se deschidă automat http://127.0.0.1:8080. Dacă nu, deschideți browserul web și introduceți această adresă URL în câmpul de adresă. A depune fișierul PDF și Tabula vă vor procesa fișierul și vă vor arăta o listă frumoasă de miniaturi de pagină. Căutați masa pe care doriți să o extrageți sau dacă aveți un PDF mic, puteți verifica opțiunea "Auto-Detect Tables".

Ecranul inițial al tabulei care arată miniaturile de pagină și tabelul pe care doriți să le extrageți

Faceți clic și trageți pentru a selecta zona din tabel. După ce eliberați mouse-ul, Tabula vă va arăta masa extrasă într-un format prietenos. Dacă datele sunt neclare, încercați să eliminați anteturile sau notele de subsol și altele. În cele din urmă, puteți să descărcați tabelul extras ca valori separate prin virgulă (CSV) sau valori separate (TSV) sau să copiați datele în clipboard. Odată ce datele se află în foaia de calcul, este posibil să fie nevoie să faceți o anumită modificare, cum ar fi corectarea anteturilor sau a notelor de subsol.

Tabelul extras din PDF cu Tabula

Când trebuie să închideți Tabula în Windows, comutați la fereastra de comandă și apăsați Control-C. Așteptați până când există un mesaj care spune că închiderea este completă. Această fereastră s-ar putea închide automat sau închide-o singură. În Mac, comutați la aplicație (faceți clic dreapta pe pictograma din doc) și apăsați CMD-Q. Dacă executați Mac OS X 10.8 sau o versiune ulterioară, asigurați-vă că ați reglat setările Gatekeeper pentru a evita mesajele de eroare în timpul instalării.

Tabula nu va fi perfectă tot timpul și mai sunt încă câteva probleme de rezolvat. Deocamdată funcționează doar pe text bazat numai pe PDF, astfel încât sunteți blocat cu muncă manuală dacă ați scanat fișiere PDF - deși dacă aveți o copie a Acrobat, este posibil să puteți converti PDF-uri de imagine într-un PDF editabil care va lucrează cu Tabula. De asemenea, dacă aveți PDF-uri cu rânduri cu mai multe linii, atunci Tabula va raporta erori frecvente în tabele fără separatoare grafică rând, deci asigurați-vă că aveți grijă.

De ce OpenRefine?

Greseli greșite ocazionale, spațiu suplimentar, punctuație aleatorie, capitalizare ciudată, înregistrări duplicate și multe altele par parcurgând cursul atunci când extrageți date din PDF-uri. Indiferent cât de frumos arată extrasul la prima vedere, datele dvs. vor fi o mizerie dacă există orice erori, creând probleme în recuperarea datelor, interoperabilitatea și indexarea.

Acolo este locul unde OpenRefine (anterior Google Refine) vine. Este un alt instrument gratuit care vă ajută să identificați cu ușurință aceste erori și inexactități de date. OpenRefine nu numai că vă permite să diagnosticați rapid acuratețea datelor dvs., dar și să acționați automat asupra anumitor erori. Se poate transforma datele în mai multe celule existente în vrac, în scopul de a curăța datele, poate extinde cu mai multe date din alte surse și să o convertească în alte formate, astfel încât să le puteți utiliza în aplicațiile pe care le doriți.

Cum se utilizează OpenRefine?

OpenRefine încă o dată are o interfață web, rulează pe computer și necesită Java. Singura diferență este de data asta, se va deschide în browserul dvs. la http://127.0.0.1:3333.

Când deschideți OpenRefine, puteți observa trei opțiuni pe partea stângă: Creați un proiect în care puteți importa date fie din computer, o adresă Web, Clipboard sau o foaie de calcul Google; Proiect deschis care vă ajută să reveniți la un proiect existent creat în timpul unei sesiuni anterioare; și Proiect de import care ne permite să importăm direct o arhivă a proiectului OpenRefine. OpenRefine înțelege o varietate de formate de fișiere de date, inclusiv TSV, CSV, documente Excel și chiar XML și JSON - un favorit pentru dezvoltatorii de aplicații web și de aplicații.

Ecranul inițial al OpenRefine

Răsfoiți fișierul CSV exportat și faceți clic pe Următor →. În ecranul următor, veți obține o prezentare generală a setului de date, așa cum va apărea în OpenRefine. În mod prestabilit, prima linie va fi analizată corect ca numele unei coloane. O altă opțiune este că "Mesajele de cotare sunt utilizate pentru a închide celulele care conțin separatoare de coloane". Dacă lăsați-o selectată, asigurați-vă că ați verificat dacă toate valorile celulelor sunt într-adevăr închise în ghilimele din fișierul original. În caz contrar, deselectați această casetă pentru a vă asigura că ghilimelele nu sunt interpretate greșit de OpenRefine.

Celelalte opțiuni pot fi utile în unele cazuri; încercați să le selectați și să le deselectați pentru a vedea cum le afectează datele. Observați cum previzualizarea actualizează pentru a reflecta aceste modificări. De asemenea, asigurați-vă că selectați codificarea corectă pentru a evita amestecarea unor caractere speciale. Când totul pare corect, dați proiectului numele și faceți clic Creați un proiect.

Setul de date încărcat în OpenRefine

Pentru a demonstra diferitele tehnici de manipulare a datelor, puteți să utilizați propriul set de date sau să descărcați un set de date demo din depozitul Github pentru a vă încerca singur. Odată ce setul de date a fost încărcat în OpenRefine ar trebui să învățați să explorați datele scanând diferitele zone. De sus în jos puteți observa patru zone.

În prima zonă, ați putea vedea numărul total de rânduri pentru un anumit fișier. În a doua zonă, puteți încerca să alternați între rânduri și înregistrări făcând clic pe oricare cuvânt. Această zonă vă va permite, de asemenea, să alegeți dacă doriți să afișați 5, 10 sau 50 de rânduri / înregistrări pe o pagină și, de asemenea, să oferiți calea corectă de navigare de la o pagină la alta. În a treia zonă, veți găsi aici primul rând care a fost analizat ca antet de coloană când proiectul a fost creat. În setul de date, coloanele citesc universitate, dotare, numFaculty si asa mai departe. Coloana din stânga este întotdeauna apelată Toate și este împărțit în trei sub-coloane care conțin stele, steaguri și ID-uri. Fiecare coloană are un meniu care poate fi accesat făcând clic pe mic drop-down triunghi. În cele din urmă, a patra zonă prezintă zona principală reală care afișează valorile reale ale celulelor. Dacă deplasați mouse-ul peste o celulă, puteți modifica acel tip de date particular.

Diferite zone ale OpenRefine

Coloanele reprezintă o parte esențială a programului OpenRefine și, în mod implicit, toate coloanele sunt extinse, ceea ce poate fi greoaie dacă există mai multe coloane în proiect. Dacă doriți să ascundeți temporar încă alte coloane pentru a facilita lucrul la celelalte, faceți clic pe micul drop-down triunghi în orice coloană pentru a afișa meniul și a selecta Vedere. Puteți vedea patru opțiuni aici: Reduceți această coloană, Reduceți toate celelalte coloane, Reduceți coloanele în stânga și Reduceți coloanele spre dreapta.

Redați cu opțiunile de coloană individuale până când sunteți mulțumit de rezultat. Pentru a extinde din nou o coloană, faceți clic pe ea. În unele cazuri, ar putea fi util să modificați ordinea coloanelor, de exemplu, pentru a reuni coloanele care trebuie comparate. Pentru a realiza acest lucru, introduceți meniul oricărei coloane și dați clic pe Editați coloana. Din nou, sunt disponibile patru opțiuni: mutați coloana la început, mutați coloana pentru a termina, mutați coloana în stânga și mutați coloana spre dreapta. Dacă doriți să re-comandați complet coloanele, utilizați coloana numită Toate

Vedere opțiunea aici vă oferă o cale rapidă de a extinde sau restrânge toate coloanele, în timp ce Editați coloana vă oferă o modalitate rapidă de rearanjare a coloanelor tragându-le în jurul sau suprimându-le prin aruncarea lor spre dreapta, după cum se arată în următoarea captură de ecran.

Reorganizarea coloanelor în OpenRefine

Când proiectul dvs. este mare, primul lucru pe care ar trebui să-l învățați este cum să sortați datele ca un ajutor vizual, deoarece sortarea poate face setul de date mai ușor de explorat și manipulat. Pentru a sorta datele dvs. prin intermediul lor universitate nume, alege Fel din meniul coloanei pentru a accesa următorul ecran. Privind captura de ecran puteți să sortați valorile celulelor în funcție de tipul lor: text, numere, date și booleani și pentru fiecare tip pot fi sortate în ordine diferită.

De exemplu, textul poate fi sortat fie în ordine alfabetică (a la z) sau în ordine alfabetică inversă (z la a), booleani false, apoi true sau invers și așa mai departe. Mai mult, putem specifica unde vor fi stocate erorile și semnele libere în raport cu valorile valide prin tragerea lor în ordinea dorită. De exemplu, erorile ar putea fi sortate mai întâi pentru a le detecta mai ușor, urmate de valori valide în valori medii și goale la sfârșit.

Sortarea datelor în OpenRefine

Unul dintre instrumentele din OpenRefine pe care le veți folosi cel mai adesea este faceting. De obicei, creați o fațetă pe o anumită coloană. Fateta rezumă celulele din coloana respectivă pentru a vă oferi o imagine de ansamblu a datelor din bara laterală și, în același timp, vă permite să filtrați datele la un subset de rânduri pe care doriți să le modificați în bloc. Există mai multe moduri de a face date și în funcție de valorile setului de date și de nevoile dvs. sunt: text fațete pentru șiruri de caractere, fatete numerice pentru numere și date și fete personalizate pentru definirea propriilor fațete text și numerice.

Fata de text este un instrument foarte util, similar cu filtrul într-o foaie de calcul. Feretele de text grupă valorile de text unice în grupuri. Acest lucru ne poate ajuta să fuzionăm informații și putem vedea valori, care ar putea fi scrise în mai multe moduri diferite. Acum, vom crea o fațetă text pe țară coloana făcând clic pe meniul derulant din coloana respectivă și selectați Facet → Text Facet.

Rezultatul acestei fatete apare în fila Facet / Filtru din stânga ecranului. În următoarea captură de ecran putem vedea coloana țară grupate în funcție de nume, dar am găsit câteva intrări ciudate precum "Statele Unite ale Americii", "Statele Unite" și "S.U.A.", împreună cu "Statele Unite"). Nu sunt toate aceleași?

Text Facet în OpenRefine

Ai putea să editezi manual aceste discrepanțe, dar nu trebuie să faci asta. Optiunea grup vă va ajuta să găsiți cu ușurință acest tip de date murdare și să le remediați. Apasă pe țară coloane și navigați la Editați celule → Cluster și Editați, OpenRefine vă va prezenta apoi o casetă de dialog unde puteți alege diferite metode de grupare, fiecare dintre acestea putând utiliza diferite funcții Keying.

În Valorile din Cluster, puteți vedea diferite scrieri și câte rânduri conțin o anumită ortografie. contopi? coloana conține o casetă de selectare și dacă o verificați, toate valorile din cluster vor fi modificate la valoarea din Valoare nouă a celulei coloană. Aici pot introduce manual noua valoare de celule ca "Statele Unite ale Americii" și apoi puteți face clic Mergeți selectat și închis pentru a îmbina toate grupurile selectate.

S-ar putea să găsiți mai multe discrepanțe în setul de date; dacă da, selectați altfel Metodă din meniul derulant și alegeți diferite Funcții Keying. Redați cu diferite opțiuni până când remediați toate neconcordanțele. Dacă doriți să explorați cum funcționează clustering-ul OpenRefine, asigurați-vă că verificați acest articol în Github.

Clustering în OpenRefine

În cazul în care o fațetă de text grupează valorile de text unice în grupuri, numerele grupurilor numerice numerice se numără în coșuri de dimensiuni numerice. Trebuie să curățăm datele pentru numărul de studenți din numStudents coloană. Nu toate valorile sunt numerice, iar multe dintre ele pot conține fragmente de text în plus față de numărul real al studenților. Pentru a determina care intrări trebuie să fie fixate, voi folosi o fațetă numerică.

În numStudents coloană, navigați la Facet → Fatet numeric și uita-te la ceea ce apare în Facet / Filtru în partea stângă. Aceasta ne arată o histogramă a valorilor și, de asemenea, listează numărul de intrări pe tip (numeric, ne-numeric, gol, eroare), păstrați un ceas pe nenumerică rânduri și debifați celelalte tipuri. Putem vedea deja unele probleme, deoarece unele celule au "text în afară de cifre" și diverse alte discrepanțe. Deci, coloana numerică pe scurt nu este pur numerică și conține date murdare.

Putem face două lucruri aici: utilizați aspectul textului pentru a lista toate "textul în afară de cifre" din bara laterală din stânga, apoi plasați mouse-ul peste orice date dezordonate și veți vedea o opțiune numită Editați | ×, se va deschide o casetă de dialog și apoi veți șterge textul cu Backspace și faceți clic pe aplica. În setul de date am eliminat textul "Great Valley" din 560 de rânduri cu un singur clic.

Figura numerică în OpenRefine

Fatetele sunt instrumente extrem de puternice, dar uneori este posibil să observați neconcordanțe în coloana celulei și singura modalitate de a edita celule într-o coloană este invocarea Transformarea comună comandă pe coloana respectivă; din meniul derulant al coloanei Editați celule → Transformare obișnuită comanda. Veți vedea că există o serie de funcții utile aici pentru a vă curăța datele și pentru a vă asigura că acestea sunt coerente. Iată de ce: uneori, în procesul de introducere a datelor, oamenii au pus un spațiu înainte sau după un nume. Nu veți putea să o vedeți, dar când vine vorba de combinarea a două seturi de date, software-ul de calcul tabelar va interpreta acest lucru ca două seturi de date. De exemplu, "Rahul" este diferit de "Rahul".

Accesați coloana în care doriți să eliminați spațiul alb, apoi navigați la Modificați celulele → Transformare obișnuită → Decuplați spațiul alb și lungul. O altă problemă obișnuită cu datele este formatarea inconsecventă - uneori cineva va lăsa capacele să se blocheze sau să uite să capitalizăm un nume. Aceste trei opțiuni: la titlu, la majuscule, la litere mici convertesc toate celulele din acea coloană pentru a fi formatate în mod consecvent, într-un fel sau altul.

Transformarea comună în OpenRefine

O caracteristică foarte utilă a OpenRefine este manipularea istoricului tuturor modificărilor care au afectat datele de la crearea proiectului. În practică, aceasta înseamnă că nu trebuie să vă fie frică să încercați lucrurile cu setul de date. Simțiți-vă liberi în orice moment să vă jucați cu datele dvs. și să aplicați orice număr de fațete sau transformări, deoarece puteți oricând să le anulați dacă înțelegeți că a fost o greșeală

 Pentru a accesa istoricul proiectului, faceți clic pe Undo / redo în partea stângă sus a ecranului, chiar lângă Filtru / Facet, așa cum se arată în captura de ecran. Pentru a întoarce ceasul, faceți clic pe ultimul pas pe care doriți să îl întrețineți și odihna va deveni gri. Pentru a anula toate modificările și pentru a recupera datele așa cum au fost înainte de efectuarea oricărei transformări, faceți clic pe 0. Creați un proiect. Pentru a relua, faceți clic pe pasul până la care doriți să restaurați istoricul.

Istoricul proiectului în OpenRefine

Odată ce ați terminat proiectul, puteți exporta datele dintr-un proiect OpenRefine existent. Export meniul din partea dreaptă sus a ecranului vă permite să faceți exact acest lucru. Formatele acceptate sunt: ​​TSV, CSV, format Excel, foaie de calcul ODF, JSON și tabel HTML. Ultima opțiune vine la îndemână dacă doriți să publicați datele dvs. curățate online.

Concluzie

Cu acest tutorial, veți avea elementele de bază despre utilizarea Tabula și OpenRefine. La un moment dat, puteți fi copleșit de complexitatea din spatele OpenRefine, dar nu vă faceți griji. Luați-vă timp și amintiți-vă că lucrul cu datele nu este doar cod sau clicuri, trebuie să vă urmați intuiția pentru a obține datele într-o formă excelentă - și puteți întotdeauna să anulați orice dacă faceți o greșeală.

Dacă întâmpinați probleme la pornirea cu Tabula sau OpenRefine sau dacă aveți metode unice pe care doriți să le distribuiți, asigurați-vă că ne-ați informat în comentariile de mai jos.