Skip to content

Tips for Open Refine

WimLo edited this page Jul 15, 2021 · 4 revisions

Standard operations

Strings zoeken en vervangen in cellen

Bijvoorbeeld, wil je van persistente ODIS-uri's enkel de code? Maak dan een nieuwe kolom aan en transformeer de ODIS-uri's met volgende code: value.replace("http://www.odis.be/lnk/", "")

Kolommen concateneren

Formule: value + cells[‘Column’].value (Verouderd: Ondertussen is er een heel nuttige functie 'join columns' in de GUI)

Lege cellen opvullen na een 'split cells with multiple values' actie

Zorg ervoor dat de data worden weergegeven in 'records view'. Maak vervolgens een nieuwe kolom aan, of transformeer de kolom met volgende code: row.record.cells[columnName].value[0]

Hierbij:

  • Wordt de parameter columnName tussen "" geschreven.
  • value[0] betekent heel eenvoudig dat er bij een error een nulwaarde wordt toegevoegd.

Alle info: http://kb.refinepro.com/2012/03/fill-down-right-and-secure-way.html

Een kolom toevoegen gebaseerd op een andere kolom, aan de hand van een regex-match

value.find(regex)[0]

De waarde van "find" is een array met matches. Jij wilt meestal gewoon de eerste hebben. Om geen array te krijgen maar gewoon de eerste waarde zet je in GREL [0] achter je GREL-functie.

Een regex in open refine GREL zet je tussen /()/ Bijvoorbeeld, geef mij de waarde tussen twee slashes:

value.find(/(\/.+\/)/)[0]

Kolom toevoegen met de waarde van een COUNTIF (AANTAL.ALS) operatie

Gebruik de 'add column based on other column'-knop Voeg volgende formule in.

facetCount(value, "value", columnName)

Hierbij:

  • Wordt de parameter columnName tussen "" geschreven.

Alle info: https://kb.refinepro.com/2011/09/countif-in-google-refine-with.html

Cluster operations

Zie voor alle info de Open Refine docs op https://github.com/OpenRefine/OpenRefine/wiki/Clustering-In-Depth

Uit ondervinding geven metaphone en Cologne (dat zaken controleert aan de hand van de uitspraak van woorden) goede resultaten bij persoonsnamen.

Gebruik zeker ook altijd de methode Nearest Neighbour. Over het algemeen leverde methode ppm, met als instellingen "radius 2" en "block chars 2" erg goede controlelijsten op. (Je kunt dit nog verder verfijnen, maar dit kost tijd, zie de Open refine docs).

Zie bv. Vaerwyck Henri. Deze dubbel dook bij Metaphone en Cologne niet op.