Methode
Hoe de cijfers tot stand komen, wat ze wel en niet betekenen, hoe goed het model is, en waar de ruwe gegevens staan.
Wat we verzamelen
Van NOS, NU.nl, RTL Nieuws, AD, De Telegraaf, Trouw, de Volkskrant, EenVandaag, Hart van Nederland, Het Parool lezen we de openbare feeds, sitemaps en, voor de jaren sinds 2020, de artikelnummers die de sites zelf in hun adressen zetten. Elk artikel wordt één keer opgehaald door een herkenbare bot die robots.txt volgt en maximaal één verzoek per twee seconden per site doet. Nieuwe artikelen worden na 1, 6 en 24 uur opnieuw bekeken voor wijzigingen in kop of tekst. Elk kwartier leggen we de voorpagina's vast; voor de jaren daarvoor gebruiken we het Internet Archive, tot acht opnames per dag. Betaalmuren omzeilen we nooit.
Alleen nieuws telt mee: sport, entertainment, woon- en kookrubrieken, gesponsorde stukken, video's, liveblogs en regionale edities worden wel geregistreerd maar niet beoordeeld. Op 2026-09-06 zijn dat 79.019 nieuwsartikelen sinds 2020-09, waarvan 70.930 met een modeloordeel. De aanvulling van de geschiedenis loopt nog; de cijfers groeien dagelijks en de eerste weken zijn onvolledig.
Vier lagen
| Verzamelen | Alles wat de site zelf geeft: kop, intro, tekst, rubriek, tags, auteur, beelden, links, plaatsing op de voorpagina, reacties. De oorspronkelijke HTML blijft bewaard, zodat een betere lezer later nooit een nieuwe download vraagt. |
| Berekenen | Zonder taalmodel, gratis en herhaalbaar: elk woord geteld als grondvorm, personen en organisaties met een aliaslijst, citaten en sprekers, kenmerken van koppen, leesbaarheid, persbureaukenmerken, verhalen die meerdere media brachten. |
| Beoordelen | Een taalmodel leest elk nieuwsartikel apart, zonder te weten van welk medium het is en zonder geheugen van andere artikelen, en vult een vast formulier in (zie hieronder). Elk oordeel draagt de letterlijke zin uit het artikel als bewijs, de versie van de instructie en het model. |
| Thema's | De categorieën van de site: woordlijsten met versienummer over de opgeslagen tekst, namen en oordelen. Een nieuw thema of een nieuwe versie wordt met terugwerkende kracht over alle jaren berekend. Subthema's (per partij, per land, per soort protest) zijn gewone thema's met een ouder. |
Het formulier van het model (versie judge-v4)
Per artikel, met vaste lijsten zodat tellingen over de jaren vergelijkbaar blijven. Een gewijzigde lijst betekent een nieuwe versie; oude en nieuwe versies worden nooit gemengd.
| Soort en onderwerp | Nieuws, analyse, opinie, uitleg, service of factcheck; één tot drie onderwerpen; soort gebeurtenis; de concrete kwestie in een paar woorden; bereik (landelijk, lokaal, buitenland); aanleiding (gebeurtenis, eigen onderzoek, eigen peiling, vervolg, reactie, eigen keuze); één geval of een patroon. |
| Kant | Of het stuk als geheel de kwestie steunend, kritisch, gebalanceerd of neutraal benadert, met de zin die dat laat zien. |
| Actoren | Tot acht personen, partijen, landen, organisaties: hoe de woordkeuze van het artikel ze neerzet (gunstig, neutraal, ongunstig, gemengd), met de zin, en of ze aan het woord komen. |
| Wie krijgt een podium | Elke bron die letterlijk of in parafrase spreekt: soort (politicus, overheid, politie en justitie, deskundige, belangenorganisatie, bedrijf, burger, slachtoffer of nabestaande, verdachte of advocaat, bekend persoon, andere media, buitenlandse overheid, anonieme bron), kant ten opzichte van de kwestie, man of vrouw, citaat of parafrase, met de zin. |
| Invalshoek en autoriteit | Tot drie invalshoeken (economie, veiligheid, moraal, eerlijkheid, recht, en zo verder); zinnen die draagvlak, een meerderheid, deskundigen of het verleden inzetten als argument; zinnen die een emotie oproepen (angst, woede, hoop, medelijden, trots, afkeer). |
| Woorden | Geladen woorden in de tekst, gesplitst naar de eigen stem van het medium en woorden binnen een citaat van een bron. |
| Oorzaak, schuld, oplossing | Welke oorzaak het artikel zelf noemt (klimaatverandering, beleid, een persoon, een groep, een buitenlandse staat, de economie, natuur of toeval, aanval of conflict, misdaad, ziekte, technisch falen, desinformatie, maatschappelijke ontwikkeling); wie de schuld krijgt; of een oplossing ontbreekt, genoemd wordt of centraal staat; welke direct betrokken kant niet aan het woord komt; of het stuk verslechtering of verbetering voorspelt. |
| Personen | Bij misdaad, ongelukken, rampen, aanslagen en oorlog: welke kenmerken het artikel noemt van slachtoffers en verdachten (geslacht, leeftijd, nationaliteit, afkomst, religie, verblijfsstatus, woonplaats, beroep, psychische toestand, strafblad), letterlijk. |
Hoe goed is het model
Het model is DeepSeek V4 Flash, hetzelfde model dat ook op eigen hardware draait. Voordat de geschiedenis werd beoordeeld is het formulier op drie manieren gecontroleerd: 100 willekeurige artikelen door het zwaardere DeepSeek V4 Pro met redeneren aan, 30 artikelen door Claude (een ander modelhuis), en een handmatige controle van dezelfde 30. De overeenkomst per veld tussen Flash en Pro op 100 artikelen:
| Soort artikel, kop tegenover tekst | 97 en 93 procent |
| Beeld van actoren (312 paren) | 87 procent |
| Toon, soort bron (225 paren) | 84 en 80 procent |
| Soort gebeurtenis, kant, oplossing, onderwerp | 79, 75, 74 en 73 procent |
| Plaatsen, onderwerpen (alle drie), invalshoeken | 75, 68 en 62 procent (overlap) |
| Bronnen gevonden, kant van bronnen, geladen woorden | 60, 52 en 41 procent (overlap) |
Lezing: velden die iets benoemen (soort, gebeurtenis, onderwerp, wie hoe wordt neergezet, wie spreekt) zijn stabiel tussen verschillende modellen. Velden die iets beoordelen (kant, kant van een bron, invalshoek, geladen woorden) zijn dat half; de verschillen bij "kant" zitten vooral tussen neutraal en gebalanceerd. Daarom tonen we benoemende velden als telling en beoordelende velden als modeloordeel met deze marge. Geen enkel cijfer op deze site is een verdict; het is een telling met de zinnen erachter.
Bewijszinnen worden na elke tienduizend oordelen automatisch gecontroleerd: in 96 tot 100 procent staan ze letterlijk in het artikel. Antwoorden buiten de vaste lijsten worden weggelaten of als "anders" geteld en apart bijgehouden.
Hoe we "afwijking" laten zien
Nooit één biasscore per medium, nooit een politiek etiket op een persoon. Elk signaal staat per medium naast de andere media over dezelfde periode en dezelfde thema's. Het model kent het medium niet en krijgt bij elk artikel dezelfde instructie, dus een scheefheid van het model trekt alle media even scheef: het verschil tussen media blijft staan. De lezer ziet het verschil, klikt door naar de zinnen en trekt zelf de conclusie.
Beperkingen
- De geschiedenis wordt aangevuld; per thema staat vanaf welke maand de cijfers volledig zijn.
- Woordlijsten missen artikelen zonder de gebruikte woorden en vangen soms een artikel dat het woord terloops gebruikt; de matchreden staat bij elk artikel en de lijsten worden per versie verbeterd.
- Oordeelsvelden dragen de foutmarge hierboven. Een verschil tussen media van enkele procentpunten zegt niets; een verschil dat jaar na jaar terugkomt wel.
- Naamherkenning mist en verwart soms namen; de aliaslijst groeit met de gegevens.
- De verhalengroepering (versie stories-tfidf-1) is grof: tekstovereenkomst binnen 48 uur.
Versies
Berekenen compute-1, sentiment sentiment-1, verhalen stories-tfidf-1, lexicon 1, oordeel judge-v4. Gegevens bijgewerkt 6-9-2026, 12:22:28.
Open data
Dagelijkse aggregaten per medium als CSV, per maand, met een gegevenswoordenboek; per thema een JSON met alle tellingen per medium, maand en jaar (index) en per thema en veld de voorbeeldzinnen. Geen artikelteksten: alleen koppen, korte bewijszinnen en links naar het oorspronkelijke artikel. Licentie CC BY 4.0.