Raffinering av data

Smart verktøy hjelper deg med å få oversikt over datasettet, "vaske" det og gjøre det klart for analyse og presentasjon.

Når data-jak­ten gir resul­tater, og du endelig får hen­dene på et saftig datasett — hva da? Jo, det skal jo inn i en data­base, eller Excel eller SPSS eller et annet verk­tøy, for analyse. Om målet er å lage en webap­p­likasjon eller skrive en artikkel, så trenger du over­sikt over hva dataset­tet innehold­er. Og kan­skje en liten datavask? 

Vaskehjelp

Google Refine er et open source-pro­gram for net­topp dette. Det er hverken en data­base eller et reg­n­ear­kpro­gram — det er litt begge del­er. For deg som synes pro­gram­mer­ing høres skum­melt ut, slapp av, dette er ikke nød­vendigvis mer kom­plis­ert enn Excel. Det likn­er til og med litt. For deg som synes Excel høres litt uproft og begrenset ut, slapp av, du kan scripte (Jython, Clo­jure og et eget GEL, grid­works expres­sion lan­guage) og eksportere til flere for­nuftige for­mater. Pro­gram­met lar deg vaske data, få over­sikt, gjøre små analyser, og eksportere til videre bruk. Det krev­er ikke noen spe­sielle forkunnskaper, og kan fritt tas i bruk av alle. Det kan se ut som om du laster dataene opp til en serv­er, da pro­gram­met kjør­er i net­tle­seren, men det gjør det heldigvis ikke, og du kan analy­sere og vaske ditt hem­melige datasett i fred.

Hvordan kommer jeg i gang?

Last ned og installer Google Refine. Så laster du inn et datasett. 

For enkel­hets skyld bruk­er jeg videre data om idrettsan­legg postet på data.norge.no. Dette dataset­tet er en .csv-fil, alt­så en tek­st­fil med kom­ma-sep­a­r­erte verdier*. Ved å sjekke filens innhold** kan vi se at det ikke er kom­ma (,) men semi­kolon (;) som sep­a­r­erer ver­di­ene. Vi ser også at filen ikke har noen rad øverst med fork­lar­ing på hva som er i hver kolonne. Dette er ting som Google Refine spør om når du starter et nytt pros­jekt, så en liten sjekk av dataene i din favoritt tekst-edi­tor er påkrevd.

google refine start project

Husk å velge rik­tig sep­a­ra­tor, og skriv inn 0 i bok­sen for head­er hvis det ikke er noen. Ellers spis­er Google Refine denne raden.

Datasettet er vellykket lastet inn i Google Refine — grei skuring

Du og jeg ser forskjell på på Tufte IL og tufte i.l. I en data­base hvor vi skal hente ut alle idrettsplass­er som tilhør­er dette idrettslaget kan dette tolkes som to ulike ting. Videre har vi prob­le­mer som Tufte IL og Tufet IL. Dette er feil som slike datasett ofte innehold­er. De er laget av men­nesker, og vi men­nesker gjør masse slike feil. I Google Refine kan du gjøre bot på andres syn­der. Via et rel­a­tivt rikt arse­nal av funksjon­er kan du rette opp slike feil i alle radene på en gang. Vel, en ret­telse av gan­gen, men på alle radene sam­tidig. “Finn og erstatt” igjen. Det er også mer avanserte algo­rit­mer for å finne og grup­pere slike tek­stlige likheter. Pro­gram­met innehold­er en hel del ulike måter å vaske dataene på, både for tekst og tall. 

cluster

Google Refine har flere algo­rit­mer for å finne celler som innehold­er nesten det samme, og lar deg erstat­te alle feil­stavinger og andre språk­lige avvik. 

NB: Vær var­som med de mer avanserte tekst-funksjonene hvis du ikke er helt sikker på hva som foregår. Det er lite forskjell på Tufte IL ogtufte L.i, men mer alvorlig hvis du slår sam­men Åsen IL med Tåsen IL eller Os kom­mune med Ås kom­mune. Pro­gram­met vil fores­lå slike likheter som poten­sielle kan­di­dater til sam­menslåing også, det vil neppe folk på Tåsen, Åsen, Os og Ås bli glade for. 

Inspeksjon: Minianalyse med facets

google refine facets

Videre kan du lage “facets” eller “aspek­ter”, som er wid­gets som lar deg trekke ut sub­set av dataset­tet. Slik kan du raskt skaffe deg over­sikt. For eksem­pel tok det to min­ut­ter å finne ut av dataset­tet om idrettsan­legg har 3401 skytean­legg, 101 ake­bakker, 33 minigolf­baner og 17 tur­nan­legg. For en del opp­gaver vil dette være nok. Disse “faset­tene” er enkelt og gre­it spør­ringer i data­basen, og trekker ut del­er av dataene basert på ulike parametre. 

For eksem­pel kan du lett hente ut alle fot­bal­lan­legg, alle anlegg som eies pri­vat eller anlegg som som ikke er eiet av stat/kommune/fylkeskommune. Videre vis­er det seg fort at de 51695 anleggene som finnes stort sett er struk­tur­ert på et tilstrekke­lig kon­sis­tent vis til at det vil kunne brukes videre. Koor­di­nater for lokasjon finnes også, og med en runde i et GIS-verk­tøy vil vi kunne hente ut enheter etter lokasjon.

I illus­trasjo­nen over er anleg­gstyper som har med fot­ball val­gt, det er enkelt å eksportere kun disse til en fot­ball-app, hvis noen entu­si­aster vil lage en.

Det er mange og mer avanserte funksjon­er i Google Refine, du finner dem beskrevet på pros­jek­t­si­den til pro­gram­met på code.google.com/p/google-refine. Det finnes også noen video-bruk­san­vis­ninger som gir et gre­it innblikk: video1, video2, video3.

Eksport gjøres til et utvalg for­mater, et du kan bruke finner du nok.

Må vi vaske?

Som Fak­ta først-rap­porten vis­er, er kvalitet et av hin­drene (av flere) som gjør at data­holdere i offentlig sek­tor treger med å dele data. Videre har f.eks. Avi­nor erfaringer med at å åpne opp data kan hjelpe til å heve kvaliteten på dem. Dette innebær­er at noen som ikke er Avi­nor har gitt tilbakemeld­ing. Det er bra for begge parter. Så ja, vi må vaske, i alle fall i starten. Heldigvis er ikke dette nød­vendigvis en veldig vanske­lig jobb, og med verk­tøy som Google Refine kan det også bli en ganske effek­tiv pros­ess. Hvis vi ønsker å gjen­bruke data, må vi også sette oss ned for å forstå dataene, vaske og pusse dem, og dernest sette i gang videre­bruk. Det er råda­ta som er mest inter­es­sant å gjen­bruke, og råda­ta er net­topp det, rå.

Lykke til med datavasken!

PS: Det er selvsagt mange ulike metoder for datavask, denne tek­sten omtaler kun én. Grun­nen til at Google Refine blir trukket fram er den uvan­lige kom­bi­nasjo­nen av data­base, reg­n­eark og script­ing. Det er også gratis og open source, og gjør just datavask-jobben bedre enn alle andre verk­tøy jeg har kjennskap til.

* Jeg fant at dette dataset­tet har noen rariteter, f.eks. er noen rad­er innkap­slet i gåsetegn (“), som gjør at det blir noe kluss. Find & replace slike tegn med ingent­ing () og lagre. Så vidt jeg ser skaper dette ikke noen videre prob­le­mer for dataene. Denne “find & replace”-prosessen gjør du i en egnet tekstbehandler
** Du kan sjekke filen i f.eks. Notepad, Texte­d­it eller i et annet tek­st­be­han­dlingsverk­tøy (text­Mate for Mac er min favoritt, Notepad++ for win­dows er etter sigende også fine sak­er, det finnes mye bra open source-ting for Linux).

TEMA

O

ffentli
ge data

116 ARTIKLER FRA VOX PUBLICA

FLERE KILDER - FAKTA - KONTEKST

2 KOMMENTARER

  1. […] This post was men­tioned on Twit­ter by Vox Pub­li­ca, Offentlige data. Offentlige data said: Raf­finer­ing av data: Smart verk­tøy hjelper deg med å få over­sikt over dataset­tet, “vaske” det og gjøre det klart f… http://bit.ly/bjqocv […]

  2. Nå har “the News Appli­ca­tions team” hos Chica­go Tri­bune laget en utvidelse som lar deg gjøre typiske “mat­te-opp­gaver” rett i google refine. For jour­nal­is­ter på jakt etter gjen­nom­snitt, høyeste og laveste ver­di, total sum og opptelling av antall enheter, osv, er dette en svært enkel måte å hente ut slike verdier uten å skrive databasespørringer. 

    Les mer på blog.apps.chicagotribune.com.

til toppen