Data Cleaning nelle Scienze Umane
Laboratorio introduttivo alla pulizia dei dati con OpenRefine
Partiamo dai dati
Immagine: Redon, O. (1905–1916). *The Chariot of Apollo* [Oil on canvas, 26 x 32 in. (66 x 81.3 cm)]. Anonymous Gift, 1927. Accession No. 27.29.
Cosa sono i dati nelle scienze umane?
Un dato è qualsiasi valore assegnato a qualcosa che può essere quantificato, qualificato o interpretato in qualche modo per essere utilizzato come prova informativa.
Numeri, parole, immagini, video, foto, registrazioni audio, interviste, manoscritti, appunti, collezioni…
Per essere utili, i dati devono essere organizzati…
… per essere compresi da te in futuro.
… per essere leggibili dalle macchine (Interoperable secondo FAIR).
… per essere compresi dagli altri (Reusable secondo FAIR).
Tutti i dati sono disordinati
Non dare mai la qualità dei tuoi dati per scontato.
L'80% dell’analisi dei dati è dedicato al processo di pulizia dei dati e alla loro preparazione per ulteriori manipolazioni e analisi.
La pulizia e la preparazione devono essere iterative.
La pulizia e la preparazione sono necessarie per lavorare con i dataset.
Un dataset è una raccolta di dati
Ogni valore appartiene a una variabile e a un’osservazione.
Ogni variabile forma una colonna.
Ogni osservazione forma una riga.
Un dataset di fonti iconografiche mitologiche (1/3)
Link: https://mythologiae.unibo.it/
Obiettivo: raccogliere un insieme di fonti iconografiche, classificarle, localizzarle rispetto agli istituti fisici di conservazione e creare
un collegamento fra rappresentazione iconografica e fonti testuali di riferimento.
La collezione è il frutto di attività laboratoriali, in cui gli studenti sono stati chiamati a scegliere e interpretare opere d’arte eterogenee, provenienti da diverse realtà di conservazione.
Un dataset di fonti iconografiche mitologiche (2/3)
Il filo conduttore che lega fra di loro le opere della collezione è la scena mitologica che esse raffigurano.
Gli annotatori, dunque, non solo hanno compiuto un’analisi ermeneutica di ciascuna opera, assegnando una categoria concettuale (tema ricorrente) concordata sulla base di una tassonomia interna, ma hanno anche associato al tema, dove possibile, le opere letterarie da cui il tema ha tratto origine o quelle opere che lo hanno, in una qualche forma, ripreso.
Un dataset di fonti iconografiche mitologiche (3/3)
Ogni opera è descritta da una serie di metadati, per lo più con valori testuali, come titolo, autore, periodo, collocazione, e note.
Questo rende i dati contenuti in Mythologiae estremamente ricchi da una parte, ed estremamente poco strutturati dall’altra.
Inoltre, essendo stato compilato manualmente da diverse persone, alcuni dati contenuti nel dataset tendono ad essere disomogenei in termini di formato, separatori, ecc.
La pulizia dei dati è difficile (ma ne vale la pena)!
Può essere riassunta in una serie di attività:
- Preparare i dati;
- Eliminare inutili ridondanze;
- Separare o combinare i valori;
- Gestire errori e incoerenze (esempio: duplicati, valori nulli, errori di ortografia o formattazione incoerenti, ecc.);
- Standardizzare quando possibile.
Non modificare mai i dati originali
Fai sempre una copia prima di apportare modifiche.
Esegui il backup dei file.
Tieni traccia di tutti i passaggi.
Salva i tuoi file nella codifica UTF-8.
Descrivi sempre i dati
Documenta tutto il necessario per capire cosa c’è nel dataset e come utilizzarlo
Considera di indicare almeno:
- Il “chi”, “cosa”, “quando”, “dove” e “come” dei dati;
- Modalità di reperimento e accesso ai dati;
- Suggerimenti sull’idoneità dei dati per rispondere a domande specifiche;
- Avvertenze sui problemi o le incoerenze note nei dati;
- Informazioni per verificare che i dati siano importati correttamente.
Una colonna per ogni variabile.
Una riga per ogni osservazione.
Una cella per ogni valore.
Inserimento di più di un tipo di informazione in una cella (esempi: commenti, unità di misura, metadati, ecc.).
Aggiungi le informazioni aggiuntive al titolo della colonna o in una colonna separata.
Aggiungi i metadati in un documento separato.
Esempi: evidenziare celle, righe o colonne che dovrebbero essere escluse da un'analisi; lasciare righe vuote per indicare separazioni nei dati, ecc.
Aggiungi le unità al titolo della colonna o in una colonna separata.
Aggiungi le informazioni in una colonna separata.
Aggiungi i metadati in un documento separato.
Non utilizzare più tabelle o più schede
Esempio: più di una tabella o scheda all'interno di un singolo foglio di calcolo.
Se possibile, combina tutto in una tabella unica o mantieni ogni tabella in un file separato.
Non utilizzare caratteri speciali
Se possibile, evita caratteri speciali nei titoli delle colonne e nel testo: / \ : * . ? ‘ < > [ ] ( ) & $ æ Æ ...
Evita sempre di utilizzare spazi nei titoli delle colonne: invece, utilizza underscore (_) o CamelCase (esempio: TitoloPrincipale).
Sii coerente
- Scenario 1: date visualizzate in molti formati diversi (esempi: “12 luglio 2024”, “12/07/2024”, “12-07-2024”, ecc.);
- Utilizza standard internazionali (esempi: EDTF);
- Scenario 2: nomi visualizzati in molte varianti diverse (esempi: “Alessandro Manzoni”, “A. Manzoni”, “Manzoni”, “Manzoni, Alessandro”, ecc.);
- Utilizza record di autorità (esempi: VIAF);
- Sii coerente anche nella capitalizzazione delle parole, nella scelta dei delimitatori e nelle convenzioni di denominazione per le variabili;
- Evita di utilizzare il delimitatore usato dal dataset (esempi:
,, ;, /, ecc.) nei dati stessi; - Fai attenzione agli spazi!
Elimina la ridondanza (con cautela!)
Nell’eliminazione includi:
- Duplicati;
- Osservazioni irrilevanti;
- Dati incompleti;
- Dati non validi;
- Dati in conflitto.
Sono tutte interpretazioni: considera sempre se un’osservazione o una colonna debbano essere eliminate o meno!
Tratta sempre i valori NULL
Usa un metodo coerente che sia compatibile e che non causi errori (come lasciare la cella vuota).
Considera che:
- Può essere difficile sapere se un valore è mancante o è stato trascurato durante l’inserimento dei dati;
- Gli spazi vuoti possono essere confusi quando spazi (
) o tabs (/) sono usati come delimitatori; NA e NULL sono valori nulli ragionevoli.
Esegui sempre un controllo di qualità
Verifica:
- Errori grammaticali;
- Uso incoerente di maiuscole e minuscole;
- Titoli incoerenti per le colonne;
- Unità di misura incoerenti, tipi di dati incoerenti (esempio: numero, stringa), schemi di denominazione, ecc.;
- Valori fuori intervallo.
Quando hai finito, esporta e condividi
Utilizza una licenza aperta per far sapere agli altri esattamente cosa possono e non possono fare con i dati (esempio: Creative Commons Zero (CC0)).
Utilizza formati aperti per rendere i dati interoperabili (esempio: CSV), quando possibile.
Considera di condividere i tuoi dati su GitHub e/o di pubblicarli su un repository (esempio: Zenodo, Figshare, ecc.) per renderli visibili, accessibili e stabili.
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 particolare valore appare in una colonna nei tuoi dati;
- Vuoi sapere come i valori sono distribuiti in tutto il dataset;
- Vuoi normalizzare 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 allineare i dati a una fonte esterna.
Installazione di OpenRefine
Creazione di un progetto (1/3)
- Scarica il dataset Mythologiae (link in chat);
- In Create Project > This computer, clicca su Choose files e carica
mythologiae-dataset.csv; - Clicca su Next.
Creazione di un progetto (2/3)
- 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)
- 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)
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)
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
- 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
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
- 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
- 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
- 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)
- Tipicamente, crei 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)
- 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)
- Molteplici facet sono impilate una sopra l'altra (esempio: nell'immagine viene aggiunta
cho_author).
Filter (1/2)
- 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)
- 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)
- È 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)
- Puoi usare più facet per migliorare il filtraggio.
Filtrare con i Facet (3/3)
- Puoi usare facet personalizzati per ottenere determinati effetti (esempio: filtrare le righe con celle vuote).
Sort (1/2)
- Puoi determinare l'ordine in cui vengono mostrate le righe in base ad alcune condizioni.
- Clicca sulla freccia e seleziona Sort.
Sort (2/2)
- 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)
- 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)
- 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)
- 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)
- 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)
- Puoi decidere come dividere le celle;
- Idealmente, dovresti sempre usare nel testo un separatore (esempio:
,, |, ;, ecc.), e indicarlo qui; - Clicca su OK.
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)
- Clicca sulla freccia e seleziona Reconcile;
- Seleziona Start reconciling.
Reconcile (3/5)
- Seleziona il servizio di riconciliazione (esempio:
VIAF); - Clicca su Next.
Reconcile (4/5)
- 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)
- 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.
Le vostre task
Abbiamo individuato quattro colonne problematiche che richiedono una pulizia approfondita dei dati:
dcho_theme: il tema mitologico individuato nell’opera;cho_century: il secolo a cui risale l’opera;cho_date: la data di creazione dell’opera;cho_sources_classic: le fonti classiche associate al tema mitologico individuato nell’opera.
dcho_theme (1/2)
- Impostare un separatore comune (
|), sostituendo quindi quello esistente (ricordati di rimuovere anche gli spazi vuoti prima e/o dopo!); - Dividere i valori (split);
- Raggruppare i valori (cluster);
- Normalizzare i valori NULL (esempio: Non categoria →
NULL); - Mantenere solo l’ultimo valore a destra se c’è una gerarchia, solitamente indicata da una sequenza di termini separati da
>;- Esempio: Gli dèi>Efeso →
Efeso; - Esempio: Saghe familiari e epiche>Enea>Enea e Didone innamorati →
Enea e Didone innamorati.
dcho_theme (2/2)
- Standardizzare quando possibile (vedi Iconclass):
- Iscriviti e accedi a Iconclass;
- Cerca il tema nella barra di ricerca;
- Scegli l’opzione più appropriata (magari sarà necessario adattarsi un po’);
- Aggiungi al tema esistente nel dataset l’identificativo dell’opzione trovata tra parentesi e preceduto da
Iconclass::- Esempio: L’Enigma della Sfinge →
L'Enigma della Sfinge (Iconclass:94T33); - Esempio: Eracle cattura il cinghiale di Erimanto →
Eracle cattura il cinghiale di Erimanto (Iconclass:94L324);
- Se non lo trovi, lascia il valore così com’è (dopo averlo ovviamente pulito e corretto).
cho_century
- Raggruppare i valori (cluster);
- Modificare (Esempio: eliminare le virgole);
- Normalizzare i valori NULL (Esempio: cella vuota →
NULL). - Standardizzare (vedi EDTF):
- Rappresentazione delle date CE (d.C.):
[YYYY]([“-”][MM])([“-”][DD]);- Esempio: “20 giugno 1992” →
1992-06-20;
- Rappresentazione delle date BCE (a.C.):
["-"][YYYY]([“-”][MM])([“-”][DD]);- Esempio: “1800 a.C.” →
-1800;
- Rappresentazione dei periodi:
[YYYY]["/"][YYYY];- Esempio: “II secolo” →
0100/0199; - Esempio: “II secolo a.C.” →
-0199/-0100.
cho_date (1/2)
- Impostare un separatore comune (
|), sostituendo quindi quello esistente (ricordati di rimuovere anche gli spazi vuoti, prima e/o dopo!); - Dividere i valori (split);
- Raggruppare i valori (cluster);
- Normalizzare i valori NULL (esempio: cella vuota →
NULL); - Standardizzare (vedi EDTF):
- Rappresentazione delle date CE (d.C.):
[YYYY]([“-”][MM])([“-”][DD]): anno a quattro cifre obbligatorio, mese e giorno a due cifre facoltativi a seconda della precisione della data esistente;- Esempio: 1992 →
1992; - Esempio: Maggio 1992 →
1992-05; - Esempio: 8 maggio 1992 →
1992-05-08; - Esempio: 640 d.C. →
0640;
- Rappresentazione delle date BCE (a.C.):
["-"][YYYY]([“-”][MM])([“-”][DD]);- Esempio: 460 a.C. →
-0460; - Esempio: 1500 a.C. →
-1500;
cho_date (2/2)
- Standardizzare (vedi EDTF):
- Rappresentazione dei periodi CE:
[YYYY]["/"][YYYY];- Esempio: “1705-1706” →
1705/1706 - Esempio: “550-530 a.C.” →
-0550/-0530;
- Rappresentazione dell’incertezza:
[date]["%"];- Nel dataset l’incertezza è indicata con una certa varianza (ca., circa, ecc.), da eliminare di conseguenza e sostituire con
% alla fine della data; - Esempio: 1590 circa →
1590%; - Esempio: 1705-1706 ca. →
1705/1706%; - Esempio: ca 403 a.C. →
-0403%; - Esempio: Sconosciuta (fra il 1635 e il 1700) →
1635-1700&.
cho_sources_classic (1/4)
- Impostare un separatore comune (
|), sostituendo quindi quelli (plurale!) esistenti (ricordati di rimuovere anche gli spazi vuoti, prima e/o dopo!);- Un piccolo anticipo: alcune celle, pur avendo valori separabili, non hanno un separatore (quindi usa il buonsenso e correggi manualmente);
- Esempio: Ovidio, Le Metamorfosi, I, vv. 750 e ss, Igino, Fabulae, 161, Callimaco, Inni, Inno ad Apollo →
Ovidio, Le Metamorfosi, I, vv. 750 e ss|Igino, Fabulae, 161|Callimaco, Inni, Inno ad Apollo;
- Dividere i valori (split);
- Raggruppare i valori (cluster);
- Normalizzare i valori NULL (esempio: cella vuota →
NULL);- Attenzione: usa
NULL solo per le celle già vuote, prima dello split; se tra più citazioni ne hai una vuota, elimina solo quella e mantieni le altre; - Esempio: Apollod. 3.5.8| |Hdt. 2.175 →
Apollod. 3.5.8|Hdt. 2.175; - Esempio: cella vuota →
NULL;
cho_sources_classic (2/4)
- Standardizzare (vedi Perseus):
- Cerca la citazione su Perseus;
- Scegli l’opzione più appropriata;
- Sostituisci la citazione esistente nel dataset con l’opzione trovata:
- Esempio: Apollodoro, Biblioteca, II 5 →
Apollod. 2.5; - Esempio: Omero, Odissea, XI vv.601-604 →
Hom. Od. 11.601-604; - Esempio: Omero, Odýsseia, Lib. X - Lib. XII, VI secolo a.C. →
Hom. Od. 10-12; - Esempio: Apollodorus, Epitome →
Apollod. Epit. - Esempio: Publio Ovidio Nasone, Metamorphoseon libri XV, Lib. XIV, fine VIII secolo d.C. →
Ov. Met. 15;
cho_sources_classic (3/4)
- Le citazioni non canoniche vanno salvate così come sono in una colonna separata
cho_sources_other, sempre con | come separatore, anche se non le trovate su Perseus;- Esempio: Omero, Odýsseia, Lib. X - Lib. XII, VI secolo a.C.; Publio Ovidio Nasone, Metamorphoseon libri XV, Lib. XIV, fine VIII secolo d.C.; →
Omero, Odýsseia, Lib. X - Lib. XII, VI secolo a.C.|Publio Ovidio Nasone, Metamorphoseon libri XV, Lib. XIV, fine VIII secolo d.C.;
- Le citazioni consecutive (magari separate da una virgola, o uno spazio) vanno esplicitate separatamente;
- Esempio: Diod. 1.16, 4.61 →
Diod. 1.16|Diod. 4.61; - Esempio: Hes. Th. 304 327-335 →
Hes. Th. 304|Hes. Th. 327-335;
cho_sources_classic (4/4)
- Testo superfluo come ss. va eliminato;
- Esempio: Hes. Theog. 288 ss. →
Hes. Th. 288; - Esempio: Eneide II 594-620 “Figlio quale grande dolore suscita indomabili ire?” (trad. Luca Canali) →
Hom. Aen. 2.594-620; - Esempio: Altre fonti su Enea: Omero, Iliade →
Hom. Il.;
- Non dimenticare di eliminare eventuali spazi tra i numeri (sostituendoli ove necessario con un punto), oppure di aggiungerli se mancano tra i nomi e i numeri:
- Esempio: Hes. Th.287-295 →
Hes. Th. 287-295;
Altre colonne
- Tutte: normalizzare i valori NULL, correggere i refusi, sostituire i separatori con
|, fate attenzione agli spazi; dcho_keyword: dividere, raggruppare, modificare (mantenere solo italiano);cho_author: raggruppare, modificare, riconciliare con VIAF (“Person”);cho_period: raggruppare, modificare;cho_type: raggruppare, modificare;cho_location: raggruppare, modificare, riconciliare con VIAF (“Organization”).
Conclusioni
Potete già fare molto per aumentare la qualità dei dati! Riassumendo:
- Esplorate i dati utilizzando facet, filtri e sorting;
- Trasformate i dati tramite: modifiche singole e di massa, raggruppamenti (cluster), divisioni (split) e sostituzioni;
- Riconciliate i dati con fonti esterne, quando possibile, automaticamente o manualmente;
- Ricordate che potete sempre tornare indietro.
Data Cleaning nelle Scienze Umane
Fine