Dai la cera, togli la cera

Lezione 11 del corso di Digital Humanities e Data Management per i Beni Culturali (2024/2025)

Sebastian Barzaghi | sebastian.barzaghi2@unibo.it | https://orcid.org/0000-0002-0799-1527 | https://www.unibo.it/sitoweb/sebastian.barzaghi2/

OpenRefine

Uno strumento per la pulizia dei dati

OpenRefine permette di:

  • Identificare e correggere errori;
  • Combinare dati da diverse fonti;
  • Non modifica il file originale;
  • Tutte le azioni sono reversibili e tracciate;
  • La documentazione può essere pubblicata insieme ai dati;
  • Il flusso di lavoro può essere salvato e applicato a nuovi dataset.

Alcuni scenari di utilizzo

  • Vuoi sapere quante volte un certo valore appare in una colonna in un dataset;
  • Vuoi sapere come i valori sono distribuiti in tutto il dataset;
  • Vuoi allineare date formattate in modi diversi ad un unico formato comune;
  • Vuoi normalizzare nomi o termini che, pur riferendosi alle stesse entità, differiscono tra loro;
  • Vuoi separare frammenti di dati combinati insieme in dati individuali;
  • Vuoi riconciliare i dati ad una fonte esterna.

Installazione di OpenRefine

Creazione di un progetto (1/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.

Creazione di un progetto (2/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • In Parse data as > CSV / TSV / separator-based files;
  • Character encoding deve avere UTF-8 come valore;
  • Seleziona Columns are separated by > commas (CSV);
  • Spunta Use character " to enclose cells containing column separators;
  • Spunta Trim leading & trailing whitespace from strings.

Creazione di un progetto (3/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Seleziona Parse next 1 line(s) as column headers;
  • Spunta Store blank rows;
  • Spunta Store blank cells as nulls;
  • Clicca su Create project.

Schermata del progetto (1/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Permalink ti consente di tornare ad uno stato di visualizzazione specifico del progetto, con filtri e faccette applicati, inserendo informazioni specifiche della visualizzazione direttamente nell'URL.

Schermata del progetto (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Open apre una nuova scheda del browser mostrando la schermata di creazione del progetto per modificare le impostazioni, avviare un nuovo progetto o aprire un progetto esistente;
  • Export ti consente di selezionare un formato per esportare il dataset;
  • Help apre una nuova scheda del browser contenente un manuale utente.

Schermata della griglia

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Visualizzazione dei dati in formato tabellare;
  • Numero totale di righe;
  • Modalità rows vs modalità records;
  • Numero di righe/record visibili su schermo contemporaneamente.

Facet/Filter

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.

Modi principali per esplorare i dati, mostrando pattern, tendenze e sottogruppi;

  • Refresh aggiorna ciascuna facet con le informazioni più recenti;
  • Reset all resetta tutte le faccette senza rimuoverle;
  • Remove all rimuove tutte le faccette.

Undo/Redo

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Storico del progetto come elenco di modifiche in ordine cronologico;
  • Salvataggio automatico ogni 5 minuti e alla chiusura con CTRL + C;
  • Ogni attività che modifica i dati può essere annullata;
  • La cronologia delle modifiche di ciascun progetto è salvata insieme al progetto stesso.

Modalità rows

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Row: una serie di celle, una cella per colonna;
  • A volte, ci sono più informazioni in una singola cella (esempio: dcho_keyword);
  • In questi casi, se riesci a dividere correttamente questi valori, puoi utilizzare la modalità records di OpenRefine per visualizzarli correttamente.

Modalità records

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Record: una collezione di una o più righe;
  • Le molteplici informazioni in una singola cella (esempio: dcho_keyword), una volta divise, vengono visualizzate ognuna in una riga diversa, ma appartengono allo stesso record;
  • Funziona dopo aver eseguito uno split, un'operazione che vedremo tra poco.

Esplora i dati con le Facet (1/2)

Facet: un aspetto della varianza dei dati in una colonna.

Fornisce una visione d’insieme dei dati.

Consente ulteriori operazioni, come il filtraggio e il clustering.

Esplora i dati con le Facet (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Tipicamente, si crea una facet su una particolare colonna;
  • Fai clic sul triangolo davanti al nome della colonna (esempio: dcho_theme);
  • Seleziona Facet;
  • Seleziona una facet a tua scelta (esempio: Text facet).

Text facet (1/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Prende il contenuto totale delle celle della colonna in questione e le abbina;
  • Ordina per nome o conteggio;
  • Modifica in massa ogni cella identica nella colonna;
  • Ottimo per esaminare i dati e correggere errori di battitura, spazi in eccesso, ecc.

Text facet (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Molteplici facet sono impilate una sopra l'altra (esempio: nell'immagine viene aggiunta cho_author).

Filter (1/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • I filtri possono essere aggiunti su una colonna;
  • Utili per identificare più precisamente dei dati;
  • Clicca sulla freccia e seleziona Text filter.

Filter (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • I filtri condividono lo stesso spazio con le facet;
  • Digita il testo da cercare (esempio: "edipo") per restituire le righe con quel testo contenuto in quella colonna;
  • Sensibilità alle maiuscole e minuscole disattivata di default.

Filtrare con i Facet (1/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • È possibile filtrare anche tramite facet;
  • Clicca su qualsiasi voce in un filtro (esempio: "Allston, Washington" nella facet cho_author);
  • Vengono visualizzate solo le righe con quel valore in quella colonna.

Filtrare con i Facet (2/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Puoi usare più facet per migliorare il filtraggio.

Filtrare con i Facet (3/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Puoi usare facet personalizzati per ottenere determinati effetti (esempio: filtrare le righe con celle vuote).

Sort (1/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Puoi determinare l'ordine in cui vengono mostrate le righe in base ad alcune condizioni.
  • Clicca sulla freccia e seleziona Sort.

Sort (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Seleziona come trattare i valori delle celle durante l'ordinamento (esempio: se sono date, molto probabilmente vorrai selezionare date);
  • Puoi anche selezionare l'ordine effettivo (esempio: prima tutti i valori validi, poi quelli errati, poi quelli mancanti);
  • Clicca su OK.

Cluster (1/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Un ottimo modo per correggere le incongruenze trovate con le facet;
  • Utilizza una varietà di metodi di confronto per trovare diciture simili ma non identiche, e mostrarle in modo da rendere possibile l'allineamento dei valori che dovrebbero essere uguali;
  • Crea una facet;
  • Clicca su Cluster.

Cluster (2/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Clicca su Cluster;
  • Prova diversi algoritmi per rilevare vari cluster;
  • Per ogni cluster, puoi unire i valori sostituendoli con un valore unico e coerente;
  • Per impostazione predefinita, il valore più comune nel cluster viene utilizzato come nuovo valore, ma puoi cambiarlo.

Cluster (3/3)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Prova diversi algoritmi per rilevare vari cluster;
  • Per ogni cluster, puoi unire i valori spuntando Merge?;
  • Clicca su Merge selected & re-cluster per verificare e su Merge selected & Close per terminare.

Modifica delle celle

OpenRefine offre numerose funzionalità per modificare e migliorare il contenuto delle celle in modo automatico ed efficiente.

  • Modifica tramite una facet di testo: clicca su Edit a destra della facet e inserisci un nuovo valore;
  • Utilizzo della funzione trova/sostituisci: seleziona Edit cells > Replace per inserire una stringa da cercare e una stringa da sostituire;
  • Modifica delle singole celle: passa il mouse su una cella e clicca su Edit.

Split (1/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • A volte una cella può contenere più valori (esempio: colonna dcho_keyword, con più valori separati da virgole ,);
  • Fondamentale per la modalità records;
  • Fai clic sulla freccia e seleziona Edit cells;
  • Seleziona Split multi-valued cells.

Split (2/2)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Puoi decidere come dividere le celle;
  • Idealmente, dovresti sempre usare nel testo un separatore (esempio: ,, |, ;, ecc.), e indicarlo qui;
  • Clicca su OK.

Transform

Un meccanismo potente per applicare modifiche che non possono essere ottenute tramite semplici facet, filtri o cluster.

  • Eliminare spazi bianchi iniziali e finali;
  • Dividere i dati in più colonne;
  • Rimuovere la punteggiatura;
  • Standardizzare un formato di dati;
  • Estrarre un particolare tipo di dati da una stringa di testo.

Possono essere preimpostate o scritte ad hoc in un linguaggio chiamato GREL.

Reconcile (1/5)

Processo semi-automatico di allineamento dei dati a fonti esterne.

Utile per:

  • Correggere errori di ortografia o variazioni nei nomi propri;
  • Pulire i valori inseriti manualmente confrontandoli con file di autorità;
  • Collegare i tuoi dati a un dataset esistente.

È necessario il giudizio umano per rivedere e approvare i risultati.

Avviene di default tramite ricerca di stringhe, quindi pulisci e raggruppa i dati prima di riconciliarli!

Reconcile (2/5)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Clicca sulla freccia e seleziona Reconcile;
  • Seleziona Start reconciling.

Reconcile (3/5)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Seleziona il servizio di riconciliazione (esempio: VIAF);
  • Clicca su Next.

Reconcile (4/5)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • A seconda della colonna e del servizio di riconciliazione selezionato, scegli il tipo di entità che desideri riconciliare (esempio: Person);
  • Clicca su Start reconciling.

Reconcile (5/5)

https://datacarpentry.org/spreadsheet-ecology-lesson/01-format-data.html
Fonte: propria.
  • Alcuni valori delle celle vengono riconciliati direttamente (esempio: Houdon, Jean Antoine);
  • Altri richiedono una validazione manuale (esempio: Gérard, Francois Baron);
  • Cliccare sul segno di spunta singolo per riconciliare solo quella cella, o sul segno di spunta doppio per estenderlo a tutte le celle identiche.

Attività pratica

Alcune colonne problematiche in Mythologiae

Le colonne sono:

  • dcho_keyword: parole chiave assegnate alla rappresentazione digitale dell’opera;
  • cho_author: creatore dell’opera.

dcho_keyword

  • Impostare un separatore comune (|), sostituendo quindi quelli (plurale!) esistenti (ricordati di rimuovere anche gli spazi vuoti, prima e/o dopo!);
  • Dividere i valori (split);
  • Raggruppare i valori (cluster);
  • Correggere eventuali valori;
  • Normalizzare i valori NULL (esempio: cella vuota → NULL);
    • Attenzione: usa NULL solo per le celle già vuote, prima dello split; se tra più parole chiave ne hai una vuota, elimina solo quella e mantieni le altre.

cho_author

  • Raggruppare i valori (cluster);
  • Correggere eventuali valori;
  • Normalizzare i valori NULL (esempio: cella vuota → NULL);
  • Riconciliare i valori con VIAF (“Person”).

Cos’altro fare

  • Salvare il dataset ripulito in formato .csv;
  • Salvare i passaggi in un file .json separato;
  • Caricare entrambi in una cartella mythologiae_keyword_author_v0.1.0 da mettere in tutorial > data > csv.

Fine

Lezione 11 del corso di Digital Humanities e Data Management per i Beni Culturali (2024/2025)

Sebastian Barzaghi | sebastian.barzaghi2@unibo.it | https://orcid.org/0000-0002-0799-1527 | https://www.unibo.it/sitoweb/sebastian.barzaghi2/