Uit onderzoek van Pointer blijkt dat veel raadsleden en wethouders last hebben van haatberichten en bedreigingen op X (voorheen Twitter). Vooral politici die asiel of LHBTI+-rechten in hun portefeuille hebben, krijgen hiermee te maken. Ook mensen met een migratie-achtergrond krijgen vaak te maken met haat. In dit artikel leggen we uit hoe we meer dan 10.000 berichten gericht aan 221 politici bekeken, en achterhaalden van wie deze haatberichten voornamelijk komen.
Voor dit onderzoek maakten we gebruik van Zeeschuimer, een Firefox-extensie waarmee je tweets binnen kunt halen nadat je ze hebt bezocht in een webbrowser (in ons geval geautomatiseerd via Selenium). We vulden een openbare dataset met alle Nederlandse lokale politici (wethouders, burgemeesters, raadsleden) aan met informatie uit openbare bronnen en een automatische zoekslag naar Twitter-accounts. De accounts die we onderzochten, komen van lokale politici uit heel Nederland, verspreid over het politieke spectrum.
Van elk van deze accounts haalden we vervolgens alle tweets binnen, tot een maximum van 10.000. Vervolgens haalden we ook de reacties op deze tweets binnen. Deze labelden we met behulp van kunstmatige intelligentie. Hiervoor gebruikten we een lokaal taalmodel in combinatie met een prompt (zie onderstaand). Het gebruikte model is Llama3.1 van Meta. We draaiden dit lokaal met Ollama, zodat we deze data buiten big tech om konden analyseren, en gebruikten een Python-script om door de resultaten heen te gaan. Ondanks dat de tweets openbaar zijn, vonden we dit dus toch een fijnere manier van werken dan wanneer we alles naar de cloud zouden sturen.
Reacties labelen als haatdragend of bedreigend
De reacties die door kunstmatige intelligentie werden gelabeld als haatdragend of bedreigend, controleerden we daarna nog met de hand. Hierbij gebruikten we dezelfde definities als in de prompt (zie hieronder). Om het werkbaar te houden, controleerden we maximaal 500 tweets per politicus met de hand. Dit betekent dat we in enkele gevallen, wanneer AI meer dan 500 reacties als haatdragend of bedreigend labelde, niet alle brondata hebben gebruikt.
Onze ervaring met het gebruik van kunstmatige intelligentie, en specifiek met een lokaal gedraaid taalmodel, is dat het model heel snel iets labelt als haatdragend of bedreigend. Ondanks de duidelijke definities in de prompt, waren er veel vals positieven, waardoor we ons genoodzaakt voelden om alles met de hand te controleren. Er waren weinig valse negatieven, wat wil zeggen dat het taalmodel weinig tweets labelde als niet haatdragend of bedreigend wanneer ze dat wel waren.
Door het benodigde handwerk konden we niet werken op een schaal als bijvoorbeeld De Groene Amsterdammer (dat een eigen model trainde) en RTL Nederland (dat een model van OpenAI gebruikte) eerder deden in vergelijkbare onderzoeken.
Hiervoor gebruiken we de definitie van Amnesty International, geïnspireerd door het eerdere onderzoek van De Groene Amsterdammer:
Haatzaaien of haatspraak is taalgebruik dat een persoon of groep aanvalt op grond van godsdienst of seksuele oriëntatie, of een uiting is van xenofobie of rassendiscriminatie.
Amnesty baseert deze grotendeels op Artikel 137d van het Nederlands Wetboek van Strafrecht:
1. Hij die in het openbaar, mondeling of bij geschrift of afbeelding, aanzet tot haat tegen of discriminatie van mensen of gewelddadig optreden tegen persoon of goed van mensen wegens hun ras, hun godsdienst of levensovertuiging, hun geslacht, hun hetero- of homoseksuele gerichtheid of hun lichamelijke, psychische of verstandelijke handicap, wordt gestraft met gevangenisstraf van ten hoogste een jaar of geldboete van de derde categorie.
2. Indien het feit wordt gepleegd door een persoon die daarvan een beroep of gewoonte maakt of door twee of meer verenigde personen wordt gevangenisstraf van ten hoogste twee jaren of een geldboete van de vierde categorie opgelegd.
Bedreiging
Om een tweet als bedreiging te classificeren in ons onderzoek, moet deze voldoen aan deze definitie:
Een tweet is bedreigend wanneer deze direct oproept tot geweld of het begaan van een strafbaar feit/ongrondwettelijke handeling tegen de politicus of mensen om de politicus heen. Ook een oproep tot geweld jegens bevolkingsgroepen of een passief geformuleerde bedreiging vallen onder deze definitie.
Deze definitie is gebaseerd op de definitie uit Artikel 285 uit het Wetboek van Strafrecht:
Bedreiging met openlijk in vereniging geweld plegen tegen personen of goederen, met geweld tegen een internationaal beschermd persoon of diens beschermde goederen, met enig misdrijf waardoor gevaar voor de algemene veiligheid van personen of goederen of gemeen gevaar voor de verlening van diensten ontstaat, met verkrachting, met feitelijke aanranding van de eerbaarheid, met enig misdrijf tegen het leven gericht, met gijzeling, met zware mishandeling of met brandstichting, wordt gestraft met gevangenisstraf van ten hoogste twee jaren of geldboete van de vierde categorie.
Algemeen
Simpelweg beledigende of negatieve tweets hebben we expliciet niet meegenomen als haatdragend. Bij twijfel hebben we zaken niét als haat of bedreiging gelabeld. Later in het proces heeft er altijd minstens één persoon meegekeken met het labelen van de data, nooit hebben we alleen gevaren op de labels van kunstmatige intelligentie.
Het daadwerkelijk aantal haat- en dreigberichten ligt hoogstwaarschijnlijk een stuk hoger dan dat we in ons onderzoek vermelden. Door onze manier van labelen (bij twijfel geen label van haat of bedreiging), omdat we maximaal 500 berichten per politicus handmatig controleerden en omdat we niet alle accounts van alle lokale politici konden analyseren is er vrijwel zeker sprake van onderrapportage.
De gebruikte prompt
Deze prompt gaven we aan Llama3.1 van Meta:
Je krijgt een tweet te zien en bepaalt of deze een bedreiging dan wel haat bevat. De tweets zijn in het Nederlands en gericht aan lokale Nederlandse politici.
Een tweet is bedreigend wanneer deze direct oproept tot geweld tegen de politicus of mensen om de politicus heen. Ook een oproep tot geweld tegen bevolkingsgroepen (bijv. 'alle moslims zouden moeten hangen') of een passieve bedreiging ('ze zouden mensen als jou op moeten hangen') gelden als een bedreiging.
Een tweet bevat haat als er een belediging in zit die specifiek is gericht op iemands ras, afkomst, gender, seksuele oriëntatie of beperking.
Je hebt een gestructureerde output, waarbij je de property is_threat een waarde van True of False meegeeft op basis van de bovenstaande beschrijving. Hetzelfde doe je voor de property is_hate. In de reasoning property geef je een korte redenering (in de stijl van een tweet, met maximaal 20 woorden) voor je keuzes. Die redenering is in het Nederlands.
Kijk hier de Pointer-uitzending 'Lokaal bestuur onder vuur' terug, of via NPO Start.