Wat vind je op deze site?
Deze site laat zien hoe de drie oefendatasets van de training in elkaar zitten: uit welke databases en bronnen de tekstfragmenten (chunks) komen, uit welke periode, hoeveel ervan als relevant zijn gelabeld en hoe lang ze zijn. Alles is gebaseerd op alleen de metadata in de CSV-bestanden; de inhoud van de fragmenten zelf wordt niet getoond.
Hoe lees je een themapagina?
Kies bovenaan een thema en daarna de omvang van de steekproef: 100, 1.000 of 10.000 chunks. Elke pagina toont kerncijfers, opmerkingen over de data en een reeks grafieken. Beweeg met de muis over een grafiek voor de exacte waarden; klik op een legenda-item om een reeks aan of uit te zetten.
Kleuren
Goud is altijd relevant, blauw altijd niet relevant, op elke pagina. Relevantie komt uit de kolom is_relevant van de bronbestanden.
Twee analyses per steekproef
Metadata-visualisatie: wie, wat, waar en wanneer, uit de kolommen van de CSV-bestanden.
NLP-analyse (kosteloos): welke begrippen (woordgroepen) in de Russische teksten voorkomen, welke typisch zijn voor relevante fragmenten, welke per database opvallen en welke in de tijd ‘uitbarsten’. Dezelfde gratis methode als in het NATO PASP-project: geen betaald taalmodel, alles lokaal berekend.
De prompt
Met deze prompt kun je hetzelfde soort app laten maken voor een eigen dataset. Vervang [DATASET.csv] door je eigen bestand.
Maak één interactieve webpagina (één zelfstandig HTML-bestand, Nederlandstalig) met alle analytisch interessante visualisaties van de METADATA in de dataset [DATASET.csv]. Gebruik alleen de metadatakolommen (database, bron, datum, jaar, taal, relevantie) en eenvoudige statistieken van de tekstfragmenten (aantal tokens per chunk). Toon de inhoud van de fragmenten zelf niet. Laat in elk geval zien: kerncijfers; verdeling over databases en bronnen, uitgesplitst naar relevant / niet relevant; het verloop in de tijd per maand; het aandeel relevante fragmenten per database; database × jaar; de verdeling van chunklengte in tokens. Elke grafiek krijgt een tooltip bij hover, een titel die zegt wat je ziet, en een korte uitleg wat je eruit kunt afleiden. Meld eerlijk wat ontbreekt of afwijkt in de data (lege kolommen, minder rijen dan de naam van het bestand belooft).
Gebruikte modellen en hulpmiddelen
| Bouw van deze site | Claude Opus 5.5 (Claude Code 2.1.296), lokaal script build_site.py |
|---|---|
| Tokens tellen | tiktoken |
| Grafieken | Plotly.js 2.34.0 |
| NLP-analyse | spaCy 3.8.16 met het Russische model ru_core_news_lg en pymorphy3 (grondvormen); CiteSpace-equivalente woordgroepen; Dunning G² en Kleinberg-bursts zoals in NATO PASP. Allemaal open source, lokaal uitgevoerd. |
| Kosten | Geen. Er is geen enkele betaalde modelaanroep gedaan: alle cijfers zijn lokaal berekend uit de CSV-bestanden. |
| Gebouwd op |
Fragmenten per maand
Wanneer zijn de bronteksten gepubliceerd? Pieken laten zien welke periode de dataset domineert.
Fragmenten per database
Welke bronsoorten leveren de data, en hoeveel daarvan is relevant?
Aandeel relevant per database
Welke databases leveren naar verhouding de meeste relevante fragmenten? (n = aantal fragmenten)
De 15 grootste bronnen
Welke kanalen, media en accounts wegen het zwaarst? Een dataset die op een paar bronnen leunt, kan eenzijdig zijn.
Database × jaar
Komt elke database uit dezelfde jaren, of verschuift de mix door de tijd?
Fragmenten per weekdag
Op welke dagen zijn de bronteksten gedateerd?
Lengte van de fragmenten (tokens)
Hoe lang is een chunk? Dit bepaalt hoeveel tekst een model per fragment moet lezen, en wat annoteren kost.
Tokenstatistieken
Spreiding van de lengte, apart voor relevante en niet-relevante fragmenten.
Omvang en relevantie per steekproef
Hoeveel fragmenten, en welk deel relevant, in elke steekproef van dit thema.
Lengte per steekproef
Tokens per fragment (doos = middelste 50%, streep = mediaan, snorharen = 10%–90%). Lijken de kleine steekproeven op de grote?
Herkomst per steekproef
Aandeel per database in elke steekproef (100%). Een kleine steekproef die een andere bronmix heeft dan de grote, geeft een ander beeld van het thema.
Verloop in de tijd per steekproef
Aandeel van de fragmenten per maand. Bestrijken de kleine steekproeven dezelfde periode?
De 25 belangrijkste woordgroepen van de grote steekproef, in elke steekproef
Voor de 25 woordgroepen die in de 10.000-steekproef in de meeste fragmenten voorkomen: in welk percentage van de fragmenten zie je ze terug in de 1.000- en de 100-steekproef? Gelijke balken = de kleine steekproef weerspiegelt de grote.
Verdeling over de semantische clusters van de grote steekproef
De steekproeven zijn genest (de 100 zit in de 1.000, de 1.000 in de 10.000), dus van elk fragment weten we in welk cluster van de 10.000-steekproef het valt. Welke onderwerpen zijn in de kleine steekproeven over- of ondervertegenwoordigd?
Semantische kaart van de fragmenten
Elke stip is een fragment. Fragmenten met een vergelijkbare betekenis liggen dicht bij elkaar (inbedding met Qwen3-Embedding-0.6B, teruggebracht naar twee dimensies met UMAP). De kleur is het cluster. De afstanden op de kaart zijn bij benadering; de clusters zelf zijn berekend in de volledige ruimte.
Clusters en subclusters
Per cluster: een label in het Nederlands, de woordgroepen die het cluster het sterkst onderscheiden van de rest (G², zoals CiteSpace zijn clusters labelt), omvang, aandeel relevant, periode en de belangrijkste databases. Klik open voor subclusters en voorbeeldteksten.
Hoe is dit berekend?
Sleutelbegrippen: de 25 meest voorkomende woordgroepen
In hoeveel fragmenten komt elke woordgroep voor (documentfrequentie), en hoeveel daarvan zijn relevant? Woordgroepen staan in de grondvorm (nominatief).
Wat onderscheidt relevante van niet-relevante fragmenten?
Contrast in plaats van frequentie (de kern van CiteSpace): Dunning G². Rechts (goud) woordgroepen die oververtegenwoordigd zijn in relevante fragmenten, links (blauw) in niet-relevante. Hoe langer de balk, hoe sterker het contrast; G² > 3,84 is significant op 5%, > 10,83 op 0,1%.
Uitbarstingen in de tijd (Kleinberg-bursts)
Welke woordgroepen kwamen in een bepaalde periode plotseling veel vaker voor dan normaal? De balk loopt van begin tot eind van de uitbarsting; de stip is het eerste voorkomen in de dataset. Gesorteerd op sterkte.
Typische woordgroepen per database
Per database de woordgroepen die daar het sterkst oververtegenwoordigd zijn ten opzichte van alle andere databases (G²). Zo zie je het eigen register van elke brontype.
Hoe is dit berekend?
Vergelijking van de drie thema's
Dezelfde steekproefgrootte naast elkaar: waarin verschillen Transparent Battlefield, Grey-Zone Warfare en Effective Deterrence in bronnen, tijd, lengte en woordgebruik?
Omvang en relevantie
Aantal fragmenten en aandeel relevant per thema.
Lengte van de fragmenten
Spreiding van het aantal tokens per fragment (doos = middelste 50%, streep = mediaan, snorharen = 10%–90%).
Herkomst: aandeel per database
Welk deel van elk thema komt uit welke database? (100% per thema; kleine databases samen als ‘overig’.)
Verloop in de tijd
Aandeel van de fragmenten per maand, per thema. Zo zie je of de thema's dezelfde periode beslaan.
Typische woordgroepen per thema
Per thema de woordgroepen die daar het sterkst oververtegenwoordigd zijn ten opzichte van de twee andere thema's (G² op documentfrequentie).
Gedeelde woordgroepen
Woordgroepen die in alle drie de thema's veel voorkomen (percentage van de fragmenten per thema).
Overlap in woordgebruik
Hoeveel van de 200 meest voorkomende woordgroepen delen twee thema's? (Jaccard-index: 0 = niets gemeen, 1 = identiek.)