Spinoza lezen met een computer: waar is dat nu goed voor? Die vraag hield mij afgelopen week bezig in Canada, waar ik was voor het jaarlijkse Digital Humanities Summer Institute (DHSI). Op de groene campus van de University of Victoria leerde ik hoe ik mijn onderzoeksmateriaal (beter) digitaal kan analyseren.
Wat levert het op om Spinoza’s vertaalde teksten digitaal te analyseren? Goeie vraag. Ik heb twee korte antwoorden. 1. Digitale analysemethoden maken nieuwe kennis mogelijk, ook over Spinoza. 2. Digitaal lezen maakt wetenschappelijke analyses controleerbaar en herhaalbaar. Het lange antwoord volgt hieronder.
Het Digital Humanities Summer Institute is een soort zomerkamp voor geesteswetenschappers die van programmeren houden. Honderden deelnemers volgen in totaal 70 verschillende cursussen in het gebruik van specialistische software en zijn na 40 uur behoorlijk vaardig – en stijf van de rsi. Om te begrijpen waarom zij zichzelf dit aandoen, moet je weten dat deze ‘digital humanists’ een beetje anders zijn dan andere geesteswetenschappers. Ze doen een poging het centrale onderzoeksobject in de humanities – tekst – ook met de computer te beschrijven en analyseren. Dat is een vreselijke generalisering, maar volgens mij is die poging meteen ook het enige algemene verschil met andere geesteswetenschappers. Onderzoekers van deze digitale school stellen niet per definitie andere vragen (maar soms wel), gebruiken ook niet per se andere bronnen (hoewel soms wel) en slijten hun dagen vaak nog steeds in archieven en bibliotheken (en soms niet).
Deze computernerds van de geesteswetenschappen vormen een kleine minderheid, die weliswaar in de laatste jaren relatief veel onderzoeksgeld toebedeeld krijgt. Daardoor ligt hun onderzoek onder een vergrootglas, en terecht. Maken ze hun beloftes wel waar? Ikzelf kreeg er recent flink van langs toen schrijver en criticus Kees ’t Hart in een essay in De Gids twee artikelen aanviel waaraan ik meegewerkt heb (beide artikelen kwamen overigens zonder financiering tot stand). Zijn kritiek richtte zich onder andere op onze poging om literatuur in tabellen en getallen te stoppen. Ik schreef een repliek met mijn collega Roel Smeets en nodigde ’t Hart uit voor een kop koffie. Dat werd een leuk gesprek, maar voor mij was de les wel dat ons type onderzoek gevoelig ligt bij sommige lezers en schrijvers. Hun kritiek verdient een serieus antwoord.
De computer maakt nieuwe kennis en onderzoeksvragen mogelijk
Stel, je wilt de relatie analyseren tussen verschillende versies van een bepaalde tekst. Ik ben toevallig geïnteresseerd in Nederlandse vertalingen van Descartes en Spinoza, maar je kunt ook denken aan verschillende versies van een Wikipedia-pagina, relaties tussen manuscripten en hun gedrukte variant, verschillende weergaves van nieuwsberichten van grote persbureaus, enzovoort.
Bij zulke vragen is de computer je vriend, want in essentie draaien zulke vergelijkingen om een matching-taak, en computers zijn dol op matchen. Concreet is het de bedoeling om in twee parallelle teksten automatisch gelijkwaardige zinnen te herkennen op basis van overlap in woordgebruik. In vaktermen heet dat sentence alignment of ‘collatie’, afhankelijk van je tak van wetenschap. Zulke technieken worden al toegepast in de ontwikkeling van vertaalmachines als Google Translate en programma’s die automatisch teksten kunnen genereren. Maar wat nou als we ze gebruiken om verschillende vertalingen van Spinoza te lezen met een computer?
Via een slimme vorm van ‘sentence alignment’ is het mogelijk om ondanks grote verschillen in spelling en woordgebruik gelijkwaardige zinnen automatisch te herkennen. Ik paste de techniek toe op twee Nederlandse vertalingen uit 1693 en 1694 van Spinoza’s Tractatus Theologico-Politicus (1670). Een voorbeeld van zo’n match staat hieronder, uit Spinoza’s pleidooi voor de vrijheid van meningsuiting. Je ziet: hoewel allerlei woorden afwijken qua spelling (‘quaad’ en ‘kwaad’, ‘veinsen’ en ‘veinzen’) en er soms totaal andere woorden gebruikt zijn (‘lieden’ en ‘mannen’, ‘boze’ en ‘oneerlijke’), worden deze formuleringen toch als vergelijkbare zinnen herkend.
Tijdens het DHSI leerde ik van mijn geweldige docent Aaron Mauro hoe je zo’n analyse efficiënt kunt visualiseren. Onderstaande grafiek toont bijvoorbeeld de tekstuele overlap per zinspaar voor alle geïdentificeerde equivalente zinnen. Een taak die mij met de hand weken zou kosten, voltooit mijn laptop met één muisklik. Of nou ja: de berekening duurt dik twee uur en de processor gaat een beetje snuiven en zuchten, maar daarna verschijnt toch mooi dit plaatje op je scherm:
Oké leuk, maar wat betekent dit? Wat opvalt in deze grafiek is dat in een deel van de parallelle zinnen (specifieker: de eerste vier hoofdstukken na het voorwoord) de score van de metriek aanzienlijk hoger ligt (rond de 0.4) dan in de rest van de tekst (rond de 0.1). Dat suggereert dat deze hoofdstukken uit beide edities gebaseerd zijn op een en dezelfde, oudere tekstversie, terwijl de rest van de tekst onafhankelijk van de andere variant ontstaan is. Die gedeeltelijke overlap geeft vervolgens zicht op een complexe geschiedenis van de verspreiding van Spinoza’s verboden boek in de zeventiende eeuw, maar dat is een verhaal voor een andere keer.
Want het wordt nog leuker. We kunnen ook eenvoudig de meest frequente verschillen in woordgebruik per zin plotten (zie hieronder). In sommige gevallen gaat het om een verschil in spelling tussen beide vertalingen (‘mozes’ versus ‘moses’) maar in andere gevallen komen we zo met één druk op de knop structurele vertaalvoorkeuren op het spoor (‘heerschappy’ versus ‘regeeringe’, ‘geschiedeniszen’ versus ‘historien’ etc.). Dergelijke verschillen in vertaalvoorkeuren geven inzicht in de manier waarop vroegmoderne filosofie in de Nederlandse volkstaal werd overgezet tijdens de vroege Verlichting.
Digitaal lezen maakt wetenschappelijke analyses controleerbaar en herhaalbaar
Digitale methoden stellen mij bovendien in staat om transparant te zijn over mijn onderzoeksresultaten. Door die transparantie kunnen anderen mijn analyses controleren en herhalen. Wetenschap is altijd slechts een benadering van de werkelijkheid en elke methode heeft zijn mankementen. Als onderzoeker moet je daarom zo expliciet mogelijk zijn over de keuzes die je gemaakt hebt. Die controleerbaarheid draagt hopelijk bij aan het vertrouwen in de (geestes-)wetenschappen.
Daarom heb ik de code die nodig is om bovenstaande analyse te herhalen beschikbaar gesteld in een Jupyter notebook op het platform Github. Zo’n notebook is een soort recept waarin alle stappen in de analyse uitgelegd zijn. Om ook zelf de code te kunnen draaien moet je eerst even het (gratis) programma Anaconda installeren (en daarna Jupyter via de Anaconda navigator), maar wie dat niet wil kan een statische html-versie gebruiken. Wie zegt: ‘hé cool man, dat algoritmisch lezen, maar ik geloof er geen barst van’, kan zo op zijn minst de stappen volgen en onderbouwen welke keuzes problematisch zijn. Wie denkt ‘niet gek, maar ik zou het zelf iets anders aanpakken’, kan de code manipuleren. Goed, ik geef toe, voor die laatste optie moet je een beetje leren programmeren in Python. Maar daarvan is nog nooit iemand slechter geworden.
Leren programmeren
Wil je ook leren programmeren of leren hoe je teksten digitaal analyseert? Hieronder vind je enkele uitstekende gratis tutorials (zo ben ik zelf ook begonnen):
Mike Kestemont et al., Introduction to Programming in Python
Text Mining and Analytics, Coursera