Toolbox 003: Google Refine

Elke week bespreken we in Toolbox een programma of techniek om datavraagstukken op te lossen of lekker verkennend bezig te zijn. Vandaag gaan we aan de slag met Google Refine. Dit gratis programma gaat om het opschonen en verrijken van data, dus deze week geen mooie kaartjes maar gewoon veel tabellen.

Google Refine heette vroeger Freebase en is onderdeel van Freebase.com wat een wiki-achtig databasesysteem is. Refine is software om rommelige data op te schonen of data te verrijken aan de hand van API-calls of data uit Freebase. Refine is gratis te downloaden, als je het opstart zal er een icoontje in de taakbalk verschijnen, dit is puur de javaserver waar Refine op draait, je werkt ermee vanuit je browser.

Maak een diamant van ruwe grondstof
Google Refine is handig omdat het data opsplitst in zogenaamde “facets”. Refine ziet data als een ruwe grondstof waar je iets nuttig van maakt. Google symboliseert dat als een diamant. Facets laat je een ander deel van die datadiamant zien en geeft je de mogelijkheid om deze aan te passen. Als voorbeeld pakken we data van alle data die het ministerie van buitenlandse zaken heeft vrijgegeven rondom de projecten die zij uitvoeren (IATI_ACTIVITIES.XML). Dit is een interessant document omdat het op een nauwkeurig niveau laat zien waar we ontwikkelingsgeld instoppen.

Schep inzicht door de kolommen te scheiden
De kolom iati-activity – sector toont een beschrijving van het soort project dat beschreven wordt. Dit is een bruikbare verdeling om te laten zien hoeveel geld er gestoken wordt in projecten rondom eerlijke verkiezingen, educatie of verbeteren van de voedselvoorziening. Door de kolom onder te verdelen door middel van een text-facet krijgen we een overzicht van de verschillende sectoren die genoemd worden in de data.

Wat we zien is dat er veel sectoren zijn, onder landbouw zie je bijvoorbeeld Agrarian reform, Agricultural alternative development, Agricultural co-operatives, Agricultural development maar ook dingen als food crop production. Door over een facet te bewegen met een muis en op edit te klikken kunnen we deze een voor een versimpelen naar Agriculture. Hierdoor creëren we een overzichtelijkere verdeling van typen projecten. De data wordt zo bruikbaarder voor bijvoorbeeld een visualisatie.


Naast text-facets zijn er ook andere soorten facets die andere onderverdelingen maken. Zo kan je de kolom iati-activity – transaction – value overzichtelijk maken door een ‘number facet’ te gebruiken, hierdoor zie je een verdeling van de bedragen die overgemaakt zijn.

Naast het gebruiken van Facets en scripts om data op te schonen heeft Refine een functie voor het maken van geautomatiseerde API-calls. API staat voor “application programming interface” en betekent dat een softwarepakket of website een manier heeft voor andere software om er mee te communiceren. De meest voorkomende vorm waar je mee te maken krijgt is REST, wat in de praktijk betekend dat je een URL aanroept zoals in een browser maar dat deze in plaats van een website, leesbare data terug geeft. De optie Add column by fetching URLs maakt het mogelijk om met API calls te maken om zo geautomatiseerd extra velden aan je data toe te voegen.

Hierboven zie je de API-call, in Refine een expression genoemd, om bij plaatsnamen automatisch de GPS-coordinaten te krijgen van de Google Maps API. Dit is handig als je je gegevens wil laten zien in een kaartje. Het gedeelte tussen aanhalings tekens is de vaste call die je maakt “http://maps.google.com/maps/api/geocode/json?sensor=false&adress=”. Dit komt neer op:

- Ik vraag iets aan de google maps website via de api “http://maps.google.com/maps/api”
- Om adressen om te zetten naar GPS-coordinaten “/geocode/”
- Deze wil ik in JSON formaat terug hebben “/josn/”
- Dit apparaat heeft zelf geen GPS aan boord “sensor=false”
- En dit is het adres waar ik de GPS data van wil hebben “&adress=”

Gegevens uit de API van Twitter, KVK of Facebook halen
het “escape(value + “, Nederland”,”url) ” gedeelte zorgt ervoor dat de waardes uit de geslecteerde kolom worden gebruikt voor de aanvraag. Om te voorkomen dat er per ongeluk buitenlandse plaatsen worden teruggegeven, zetten we er zelf nog “, Nederland” achter.

Maar niet alleen Google Maps heeft een API. Met de openKVK API zou je bijvoorbeeld automatisch de kvk-nummers kunnen opvragen bij een lijst bedrijfsnamen en voor een lijst met twitter gebruikersnamen kan allerlei informatie worden opgehaald door middel van de Twitter API.

Op deze manier kun je extra informatie aan je dataset toevoegen. Een uitgebreide uitleg met een voorbeeld hoe je de Facebook API gebruikt kun je hier vinden. Let wel op de API limieten, sommige API’s staan maar een beperkte aantal vragen per uur of per dag toe, en of je API-call klopt voordat je 50.000 calls probeert te maken naar een arme server die niets kan met je aanvraag.

Volgende week gaan we verder met Fusion Tables van Google
We zouden nog veel meer met de data kunnen en moeten doen voordat we er echt mee aan de slag kunnen, maar ik hoop dat je een idee hebt waarvoor je Refine kan gebruiken. De Refine site heeft handige introductie video’s die je meer mogelijkheden laten zien en mocht je vragen hebben, kun je terecht in ons forum.

Maar Refine werkt alleen lokaal, hoe delen we onze bewerkte data met de rest van de wereld en kunnen we de data bespreken met collega’s? Daarvoor is Google Fusion Tables erg geschikt en dat wordt dan ook het onderwerp van de volgende toolbox.

Over Heinze Havinga

Schrijft voor regiohack over tools en technieken en is altijd lastig te vallen met vragen over data verzamelen, ordenen en visualiseren. In het dagelijkse leven zelfstandige ondernemer op het gebied van webmashups, interactieve installaties en creatieve vraagstukken. Op twitter te vinden onder @HeinzeHavinga
Dit bericht is geplaatst in Toolbox. Bookmark de permalink.

4 Reacties op Toolbox 003: Google Refine

  1. Pingback: Toolbox 004: Google Fusion Tables - RegiohackRegiohack

  2. Pingback: Toolbox 008: De reis van pdf naar fusion tables - RegiohackRegiohack

  3. Ben Teeuwen zegt:

    Handig, bedankt!

  4. Pingback: Toolbox ROOSdagen editie - RegiohackRegiohack

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>