Ga direct naar navigatie Ga direct naar hoofdcontent

Blijven coderen, voor een nóg nauwkeurigere uitkomst

Op plannen voor een snelweg, dijk, spoor of luchthaven komen al gauw 100 tot duizenden zienswijzen binnen. En dat vaak in een paar weken tijd. De mailbox stroomt snel over. Roel van Endhoven, data-engineer bij het Datalab van Rijkswaterstaat vertelde tijdens het Tech event @Rijksoverheid #data #online hoe text mining helpt om berichten snel bij de juiste deskundige af te leveren.

Text mining

Het ministerie van Infrastructuur en Waterstaat (IenW) ontvangt jaarlijks duizenden reacties op voorgenomen overheidsbesluiten van burgers, bedrijven en maatschappelijke organisaties. ‘Een zienswijze is de mening of vraag van een burger over een plan van de overheid. We vinden het belangrijk om zorgvuldig te kunnen reageren op reacties van burgers. Handmatige verwerking van de brieven kost veel tijd. Ze moeten allemaal worden gelezen en naar experts worden doorgestuurd voor een inhoudelijke reactie’, vertelt Roel. Text mining maakt een slimme aanpak mogelijk: de computer spit de teksten alvast door en zet de onderwerpen in ‘bakjes’ in de juiste categorie in een speciaal dashboard. ‘Dit maakt het een stuk gemakkelijker om de brieven naar de juiste expert te sturen voor een reactie.’

Statistische inkijk

Het dashboard geeft aan om hoeveel brieven het per onderwerp gaat. Niet iedereen heeft hierin inzage, vertelt Roel. ‘Dat is afhankelijk van de machtiging van de medewerker. De inhoudelijk deskundigen kunnen bijvoorbeeld alleen bij de zienswijzen die over hun onderwerp gaan. Het geeft bovendien een mooie statistische inkijk in wat de onderwerpen zijn. Je ziet in een oogopslag waar de meeste reacties over gaan.’

Roel van Endhoven

‘Text mining maakt het een stuk gemakkelijker om de brieven naar de juiste expert te sturen voor een reactie’

De mens blijft nodig

In de wereld van machine learning en text mining zijn er verschillende manieren om informatie te verwerken, vertelt Roel. ‘Met supervised learning label je een berg bestaande zienswijzen aan categorieën. Voor de hoofdonderwerpen kun je vervolgens een machine learning model trainen. Dit model kan dan voor nieuwe teksten een categorie voorspellen op basis van de geleerde teksten.’ De andere vorm is unsupervised, vervolgt hij. ‘Je geeft de computer dan instructies mee om gelijkende teksten te zoeken of onderwerpen te vinden in de tekst. Maar dit heeft als nadeel dat het resultaat ambigu kan zijn en een menselijke actie nodig is. Je kunt als Rijksoverheid niet de hele besluitvorming uit de computer trekken. Deze vorm is ondersteunend voor de besluitvorming, maar zeker niet leidend.’

Nog niet volledig nauwkeurig

Want computers kunnen heel veel informatie uit teksten halen, maar dat betekent niet dat je achterover kunt leunen, is Roels ervaring. ‘Het model kan bijvoorbeeld getraind worden om de brieven over geluidsoverlast te herkennen, dan gebeurt dat in circa 78% van de gevallen. Op dit moment krijgen we nog geen 100% nauwkeurigheid uit machine learning modellen.’ Toch verwacht hij wel dat de resultaten steeds beter worden: ‘Hoe meer zienswijzen we toevoegen, des te meer categorieën je krijgt. Je voedt het programma daarmee. Dat zorgt ervoor dat het model steeds beter de scheidslijn tussen onderwerpen kan vinden en classificeren.’

Modellen trainen

Als data-engineer werkt hij voortdurend aan het optimaliseren van de modellen en het verbeteren van de kwaliteit van de bijbehorende code. Alleen: dan moet je wel voldoende data beschikbaar hebben om specifieke informatie uit teksten te vissen. En dan ook nog op tijd. ‘Met weinig data is het moeilijk een concreet onderscheid te maken tussen onderwerpen’, legt hij uit. ‘Dat hebben we opgelost door meerdere modellen achter elkaar te trainen. Het beste model pakken we eruit. Zo slagen we er steeds beter in om op projectniveau één heel goed model te trainen, zelfs met een heel beperkte set data.’

Roel van Endhoven

‘Ik ben gewoon fan van het schrijven van kwalitatieve code’

Werken met verschillende algoritmes

Een andere uitdaging is de capaciteit van de computer. ‘Om de gelijkheid tussen documenten te berekenen, gebruik je een algoritme waarin je woorden in de teksten voorbewerkt en omzet naar getallen waarmee de computer kan rekenen. Vervolgens vergelijk je alle documenten met elkaar en krijg je zo een percentuele score van de mate van gelijkheid. Alleen: dat is een exponentieel groeiend probleem. Het aantal variabelen dat je dan met elkaar vergelijkt kan dan al snel in de honderdduizenden oplopen. We ontdekten al snel dat we voor de analyse van tienduizenden documenten geen werkgeheugen meer overhielden om die berekeningen te doen. Laat ik een voorbeeld geven: 60 duizend documenten verwerken kost ongeveer 13 gigabyte werkgeheugen. Maar omdat de applicatie blijft groeien wordt dit al snel meer. Voor 120 duizend documenten kijk je dan al naar 54 gigabyte. Bij het maken van een grote applicatie moet je rekening houden met die groei en daarop inspelen.’

Werkgeheugen en computerkracht

Dat vraagt om slimme oplossingen, wanneer de grenzen zijn bereikt van wat technisch mogelijk is. ‘Je kunt de teksten verkleinen tot identificerende woorden, door alle lidwoorden eruit te halen. Dat is dus een 2e algoritme: dat je optimaliseert, zodat het werkgeheugen en de computerkracht het allemaal kunnen behappen.’ Het komt erop neer, vat hij samen, ‘dat je zoveel mogelijk wilt kunnen met zo min mogelijk resources.’

Kwalitatieve code

En die puzzel fascineert hem. Ik ben gewoon fan van het schrijven van kwalitatieve code. Zulke optimalisatieproblemen? Ik vind ze leuk om op te lossen. Data-scientisten leveren met hun theoretische blik prachtige kwalitatieve modellen op. Dat ik ze dan werkbaar kan maken in een productieomgeving die wij draaien… dat vind ik ontzettend leuk om te doen.’

Down icon Links icon Rechts icon Up icon Facebook icon Instagram icon Linkedin icon Linkedin icon Magnet.me icon Menu icon Search icon Twitter icon Twitter icon