Wie onderzoek doet met data kent het probleem: ze zijn vaak ‘rommelig’. De KB verzorgde een casus voor een workshop waarbij trefwoorden automatisch werden toegekend aan dissertaties. Sara Veldhoen werkte hieraan mee. Wat zijn haar geleerde lessen?
Door: Sara Veldhoen
Tijdens de workshop ICT with Industry van IPN (ICT-Research Platform Netherlands, NWO) hadden we één week om met een team van tien externe onderzoekers te werken aan onze casus. Hoe verlies je zo min mogelijk tijd aan het opschonen en voorbewerken van data, zodat je aan het einde van zo’n week daadwerkelijk bent toegekomen aan een oplossing?
Casus
We werkten in deze workshop aan het automatisch toekennen van onderwerpen (trefwoorden) aan dissertaties. Hiervoor hadden we twee gegevensbronnen. Allereerst de referentiedata, met metadata en trefwoorden uit de KB-catalogus, die als ground truth dienen voor de machine learning. Daarnaast waren er rijkere, maar ruizige inputdata: de dissertaties zelf plus abstracts en wat (heterogene) metadata. Deze bronnen correspondeerden gedeeltelijk met elkaar, maar waren niet met ondubbelzinnige identifiers te koppelen.
Het maken van die koppeling bleek een taai probleem. Om te voorkomen dat alle aandacht hierheen zou gaan, werd al snel geopperd een team data aan te stellen. Zij werkten aan de koppeling en andere problemen in de dataset. Op die manier konden andere teams aan oplossingen bouwen. Voor het ontwikkelen van algoritmes is het immers genoeg om sample data in het juiste formaat te hebben.
Versies
Voor het trainen van machine learning wordt een splitsing gemaakt tussen trainingdata en testdata; de laatste worden niet gebruikt bij het ontwikkelen of verbeteren van methodes. Bij aanvang werd in de referentiedata zo’n splitsing gemaakt. Aangezien er nog geen koppeling was tussen de inputdata en de referentiedata, was het niet duidelijk welke inputdata konden worden gebruikt in de ontwikkelfase. Hierdoor spookten verschillende versies rond, die her en der werden gekopieerd en verrijkt met extra features. Ondertussen leverde team data nieuwere, opgeschoonde versies op. Het bleek een hele uitdaging om ervoor te zorgen dat voor het uiteindelijke trainen en testen van algoritmes dezelfde bronnen werden gebruikt.
Documentatie bijhouden is doorgaans geen favoriete bezigheid. Toch is het nuttig vast te leggen en elkaar op de hoogte te houden welke versies van data er zijn en hoe die van elkaar verschillen, zeker wanneer parallel wordt gewerkt. Nog beter is het wanneer geen redundante kopieën worden gemaakt, maar in plaats daarvan code wordt geschreven die met nieuwe versies van de brondata om kan gaan. Features of verrijkingen kunnen het best worden opgeslagen in aparte bestanden, zodat ze modulair kunnen worden ingezet.
Pragmatisch
Door de workshop leerden we met en van onderzoekers hoe je om kan gaan met rommelige data. Die data volledig opschonen is een ijdel streven, dus geef aspecten die cruciaal zijn voor de taak prioriteit. Met een toegewijd datateam (om te voorkomen dat iedereen bezig blijft met data voorbewerken), communicatie over verschillende versies van de data, flexibele code én een pragmatische instelling kun je in een week veel bereiken.
Sara Veldhoen is research software engineer bij de Koninklijke Bibliotheek
Deze bijdrage komt uit IP nr. 3 / 2019. Het gehele nummer kun je hier lezen.