Dit artikel is origineel verschenen in de rubriek ‘Vraag het Vreekamp’, bij Villamedia.nl, op dinsdag 4 februari 2025
Hendrina schrijft regelmatig over rechtszaken voor christelijke media. Liefst met een link tussen die twee: ‘wanneer er een predikant losse handjes had, bijvoorbeeld’.
Ze heeft toegang tot de bestandenpostbus van het Openbaar Ministerie (OM), maar het kost te veel tijd om alle Nederlandse dagvaardingen wekelijks te screenen op ‘predikant’, ‘voorganger’ of ‘kerk’.
Nu ontglipte Hendrina onlangs een zaak en daar baalt ze van. “Is er een mogelijkheid om een soort AI-zoekfunctie te bouwen die documenten screent op termen die voor mij relevant zijn?”
Filteren op inhoud
Hendrina is niet de eerste journalist die een model wil trainen om specifiek te filteren op bepaalde inhoud, afkomstig uit PDF’s, van socialmedia of Telegramgroepen. Met het volgende antwoord leer ik je hoe je met basic AI-tools filtert en met een chatbot je eigen modellen traint. Journalistiek doorgaans not done, maar bij deze: kopieer naar hartenlust!
Stap 1: Download, bespreek en structureer
Geen AI-model zonder data, dat wist je al. Maar wie zelf een model traint heeft vooral ook veel tijd nodig (niet eens zozeer technische kennis; die krijg je immers hier). Vele uren zul je vullen met het sorteren van je gedownloade inhoud op categorie. Die logische indeling stel je het best op door gesprekken met anderen, liefst inhoudsdeskundigen.
Ze helpen je om te bepalen hoeveel en welke categorieën er nodig zijn en welke eigenschappen van verschillende voorbeelden ze tot een bepaalde categorie ‘veroordelen’. Als het loopt als een eend, klinkt als een eend… Goede verslaglegging van dit proces helpt bij de verantwoording voor de inzet van AI, richting je team, hoofdredactie, werkgever en publiek. Want let op: het zijn deze keuzes die bepaalde vooroordelen in AI-systemen brengen of versterken.
‘Kerk en ouderling’
Terug naar de praktijk. Voor Hendrina is van belang dat ergens in de tekst het woord ‘kerk’, of ‘ouderling’ moet staan. Een slimmerik merkt op: CTRL+F ‘gewoon’ op die woorden. Niet onwaar natuurlijk, maar doe dat maar wekelijks, in honderden PDFs, voor tientallen woorden. En daarbij: een zaak die zich afspeelde in de Kerkstraat in Nunspeet is niet per se een hit voor Hendrina.
Enfin, zijn de vorige stappen naar eer en geweten uitgevoerd, dan is het tijd om naar de machine te gaan.
Stap 2: Maak je data leesbaar voor de machine
Maak een spreadsheet aan met drie kolommen:
1) een uniek nummer voor elke rij;
2) de inhoud – de tekst van een enkele post, uitspraak of reactie;
3) het label: voor Hendrina volstaat ‘raak’ of ‘mis’. We noemen dit de classes: categorieën die voor jouw onderzoek en model relevant zijn.
Stap 3: Breng evenwicht aan
Zorg dat je voor al je categorieën – de classes – ongeveer evenveel voorbeelden hebt, begin met minimaal 50 per categorie. Hou per categorie nog een paar voorbeelden achter de hand, want daarmee test je straks handmatig of je model functioneert.
Stap 4: Train je model met deze prompt
Sla je spreadsheet op als CSV-bestand. Upload deze naar een chatbot zoals Claude.ai of ChatGPT en geef daarbij de volgende prompt:
Neem het CSV-bestand als uitgangspunt om een classifier model mee te trainen. Er zitten verschillende labels tussen. Ieder item kent maar een enkel label. Nadat je het model hebt getraind op basis van alle voorbeelden in de CSV-file, voer ik je steeds handmatig nieuwe inhoud. Voor die onbekende inhoud voorspel je welk van de verschillende labels het beste past.
Ben je er klaar voor of moet deze prompt eerst verder verfijnd worden om de beoogde classifier door jou te trainen?
Voor de gevorderde lezer: de chatbot creëert nu een tekstgebaseerd, single label classifier model dat de relaties vastlegt (middels wiskunde en statistiek) tussen de inhoud en de labels.
Stap 5: Evalueer je model
Is het model klaar, dan kun je testen. Vraag om een classificatie van een van je achtergehouden voorbeelden. Deze stap heet ‘inferentie’. Vergelijk het met een tentamen waarbij je vergelijkbare vragen krijgt als tijdens de lessen, maar die net iets anders zijn dan het oefenmateriaal. Na een aantal handmatige tests bepaal je of de resultaten bevredigen. Zo niet, dan helpt het om meer voorbeelden toe te voegen aan je trainingsset of om te controleren of je dataset divers en realistisch genoeg is.
Zorg voor een goede representatie van de inhoud die je voor alle classes kunt verwachten in de praktijk. Ik bedoel: laten we toch hopen dat van de honderd dagvaardingen die Hendrina’s model screent, er minder dan 1% een ‘hit’ opleveren.
Stap 6: Pas het toe op een grote hoeveelheid
Presteert het model naar behoren, dan pluk je vanaf deze stap de vruchten van je werk. Je geeft de volledige bak met inhoud (uiteraard met dezelfde structuur als bij stap 2) aan het gecreëerde model en upload de spreadsheet weer naar de chatbot en prompt daarbij het volgende:
Bepaal voor elke rij in dit CSV-bestand het label op basis van de zojuist getrainde classifier. Sla het resultaat op in een nieuw CSV-bestand en deel dat met mij ter download.
Voor veel journalisten is dit experiment met modeltraining per chatbot an sich al waardevol: je ontdekt vrij snel welke beperkingen machines kennen en waar jij als mens het meest mee geholpen bent. Om eerlijk te zijn waren het niet zozeer de prompts en deze methode die Hendrina het meest praktisch hielpen, maar eerder de nieuwe manier van denken in combinatie met het gebruik van AI-tools zoals Pinpoint en NotebookLM. Ze schreef me:
‘Het kost me ongeveer een half uur om alle bestanden te down- en uploaden en [met Pinpoint] naar de bekende woorden te zoeken. Hiermee is mijn werktijd al verkort van zeg 6 uur naar een half uur, een enorme verbetering. Maar vooral het doodsaaie werk van elke keer openen en elke keer zoeken is nu een flink deel minder: erg fijn.’
Oefendata: Waar worden mensen blij van?
Heb je zelf (nog) geen data om mee te experimenteren, gebruik dan deze spreadsheet vol met blije momenten eens: bit.ly/eigenmodelvm.
Hiermee train je volgens de stappen hierboven een model dat momenten van blijdschap - gitaarspelen, wandelen met je hond of uit eten met vrienden - classificeert op zeven soorten: affectie, prestatie, genieten, verbinding, sport en natuur.