2. Achtergrond
• Promotieonderzoek digitale methoden voor historisch onderzoek
– Hoofdstuk met analyse van 10k blog posts van 73 historici over 10 jaar
– Docent inleiding digitale geschiedenis
• Onderzoeker Dialogic
– O.a. projecten waarin grote collecties wetenschappelijke abstracts
worden geclassificeerd
3. Van op naar in bronmateriaal zoeken
• Meestal wordt vooral gewerkt met metadata: de beschrijvende
gegevens over bronmateriaal
– Titels, auteurs, publicatie jaren, etc.
• Maar dat heeft beperkingen:
– De variatie van woorden in een bron is veel groter dan in de metadata
– Soms wil je niet een document vinden maar een antwoord
4. Van metadata naar data
• Zoeken in documenten
• Overzichten maken van teksten
– Hands-on
• Concepten identificeren in teksten
– Hands-on
• Natural language processing
• Collecties van teksten maken
5. Zoeken in grote collecties van documenten
• Wanneer je zoekt op Google of Google Scholar dan doorzoek je heel
grote collecties van documenten
• Hiervoor gebruikt Google een index en een ranking
6. Index
Index: alfabetische lijst van termen en op welke pagina’s deze dan
staan
– Net als achterin een boek
Rechts: index van On the Origin of Species
7. Ranking naar relevantie
Ranking: bij duizend resultaten bepalen van volgorde van relevantie
– Overlap met ingevoerde zoektermen
– Term frequency * inverse document frequency
8. Ranking naar relevantie
Ranking: bij duizend resultaten bepalen van volgorde van relevantie
– Overlap met ingevoerde zoektermen
– Term frequency * inverse document frequency
Document
A A A A
B B C B
A C D A
9. Ranking naar relevantie
Ranking: bij duizend resultaten bepalen van volgorde van relevantie
– Overlap met ingevoerde zoektermen
– Term frequency * inverse document frequency
Document
A A A A
B B C B
A C D A
Collectie van documenten
A A A A
A A A A
A A A A
B A A A
C A A A
10. Ranking naar relevantie
Ranking: bij duizend resultaten bepalen van volgorde van relevantie
– Overlap met ingevoerde zoektermen
– Term frequency * inverse document frequency
– Autoriteit van pagina (bijv. PageRank)
– Contextuele informatie
11. Zoeken in grote collecties van documenten
• Voorbeelden waarin dit kan
– Google
– Google Books
– Delpher
12. Zoeken met voorbeelden
• Hoeft niet te zoeken met enkele woorden maar met meerdere
woorden
• Of zoeken met voorbeeldtekst
https://app.dimensions.ai/discover/publication
Klik op zoekbalk > Abstract search (inmiddels betaalde feature)
13. Overzichten maken van teksten
• Bij vervormen van teksten naar index kan je ook de index zelf als
bron gebruiken
• Overzichten van hoe woorden gebruikt worden:
– Keywords in context (KWIC)
– Word clouds
– Trends
14. Keywords in Context
voorgaande termen - zoekterm - opvolgende termen
• Geeft inzicht in hoe woorden
gebruikt worden
https://voyant-tools.org/?view=Contexts
15. Word clouds
Visuele weergave van frequentie van
woorden
• Frequentie → grootte
• Locatie van woord heeft geen betekenis
• Moeilijkheid is bepalen welke woorden
interessant zijn
https://voyant-tools.org/?view=Cirrus
16. Trends
Visuele weergave van frequentie van een of meer woorden over de
tijd
• sad*
https://voyant-tools.org/?view=Trends
17. Trends: n-grams
Google Ngram Viewer
• n-gram (n=aantal woorden, bijv. 2)
• Y-as: bij opgegeven 2-gram, hoeveel procent vormt dit van alle 2-
grams
https://books.google.com/ngrams/
19. Trends: n-grams
Google Ngram Viewer geavanceerd zoeken:
• Wildcards: * (in plaats van een woord)
• Inflection :book/booked/booking → book_INF
• Case insensitive: book of BOOK als 1 of 2 woorden)
• Part-of-speech tags: tackle_VERB of tackle_NOUN
• Combining n-grams: + - / *
https://books.google.com/ngrams/info
21. Hands-on
Hands-on: aan de slag met Voyant Tools
https://voyant-tools.org/
Alternatief: https://voyant.lincsproject.ca/
Documentatie: https://voyant.lincsproject.ca/docs/#!/guide/tools
22. Hands-on
Hands-on: aan de slag met Voyant Tools
Lokaal installeren van Voyant Tools
Github: https://github.com/voyanttools/VoyantServer
ZIP uitpakken en JAR file opstarten
Java: https://www.java.com/nl/download/
23. Van zoeken naar ‘mining’
Keyword search heeft twee belangrijke nadelen:
1. Te veel resultaten (en vertrouw je de ranking?)
2. Mismatch tussen zoekterm en document (boeken over WW1 van
voor 1940)
24. Van zoeken naar ‘mining’
We willen twee typen oplossingen:
1. Te veel resultaten (en vertrouw je de ranking?)
Analyse van teksten als data, ook wel distant reading
1. Mismatch tussen zoekterm en document (boeken over WW1 van
voor 1940)
Zoeken op concepten i.p.v. woorden
25. Distant reading
Term bedacht door literatuurwetenschapper Franco Moretti
“[Y]ou invest so much in individual texts only if you think that very few of them
really matter”
“At bottom, it’s a theological exercise—very solemn treatment of very few texts
taken very seriously—whereas what we really need is a little pact with the devil:
we know how to read texts, now let’s learn how not to read them. Distant
reading: where distance, let me repeat it, is a condition of knowledge: it allows
you to focus on units that are much smaller or much larger than the text”
26. Distant reading
• Geen eenduidige methode maar een fundamentele aanpassing:
niet zoeken naar individuele documenten, maar het geheel van
documenten analyseren op trends en patronen
• Daarbij mogelijkheid om te verdiepen van tekst naar concepten
27. Concepten identificeren in teksten
• Kunnen we van woorden naar concepten?
• Hoe identificeer je nieuwsartikelen over voetbal waar het woord
“voetbal” niet in voorkomt?
– stadion ronaldo goal keeper fc utrecht
– fiets tour de france pogacar
28. Concepten identificeren in teksten
Topic modelling
• Aanname: twee documenten met dezelfde topics hebben overlap
in woorden
• Welke woorden komen vaker samen voor?
– Woorden hoeven niet altijd samen voor te komen
– Woorden kunnen in meerdere topics voorkomen
29. Concepten identificeren in teksten
Topic modelling = bepalen van latente topics aan de hand van de
woorden in documenten:
• Een document bevat een combinatie van topics
• Een topic bestaat uit een combinatie van woorden
30. Concepten identificeren in teksten
Blei, D. M. (2012). Probabilistic topic models. Communications of the ACM, 55(4), 77-84.
31. Concepten identificeren in teksten
Topic modelling = bepalen van latente topics aan de hand van de
woorden in documenten:
• Een document bevat een combinatie van topics
• Een topic bestaat uit een combinatie van woorden
Statistische bepaling van welke combinatie goede weergave geeft
• Iteraties: aantal keer dat het algoritme over de gehele collectie gaat
32. Concepten identificeren in teksten
Topic modelling aannames
• Volgorde van woorden maakt niet uit (bag of words)
• Volgorde van documenten maakt niet uit (maar kan je achteraf wel
gebruiken voor trends)
• Je moet zelf aangeven hoeveel topics je wil hebben
• Werkt beste als documenten bestaan uit maximaal paar honderd
woorden (blog posts, nieuwsberichten, abstracts, paragrafen)
33. Concepten identificeren in teksten
Topic model output
• Uit welke woorden bestaat elk topic
• Per document hoeveel % beslaat elk topic
34. Concepten identificeren in teksten
Topic modelling heeft een wat hoger leercurve
• https://mimno.infosci.cornell.edu/jsLDA/index.html
• https://programminghistorian.org/en/lessons/topic-modeling-and-
mallet
• https://senderle.github.io/topic-modeling-
tool/documentation/2017/01/06/quickstart.html
35. Hands-on
Hands-on: draai zelf een topic model van je eigen casus of van de
corpora aangeboden door Voyant
https://voyant-tools.org/?view=Topics
https://voyant.lincsproject.ca/?view=Topics
36. Entiteiten identificeren in teksten
Sommige concepten worden wél genoemd, maar bestaan uit
meerdere woorden
• Named Entity Recognition (NER)
Het herkennen van objecten met een naam
• Bijvoorbeeld: overzicht van genoemde personen, steden, organisaties
• Mark Rutte studeerde geschiedenis aan de Universiteit Leiden
37. Entiteiten identificeren in teksten
Sommige concepten worden wél genoemd, maar bestaan uit
meerdere woorden
• Named Entity Recognition (NER)
Het herkennen van objecten met een naam
• Bijvoorbeeld: overzicht van genoemde personen, steden, organisaties
• Mark Rutte studeerde geschiedenis aan de Universiteit Leiden
39. Entiteiten identificeren in teksten
Toepassingen:
– Kaart van alle genoemde locaties
– Netwerk van personen die samen
genoemd worden
– Tellen van personen die genoemd
worden
https://histograph.cvce.eu/
40. Entiteiten identificeren in teksten
Sommige concepten worden wél genoemd, maar bestaan uit
meerdere woorden
• Named Entity Recognition (NER)
Het herkennen van objecten met een naam
• Bijvoorbeeld: overzicht van genoemde personen, steden, organisaties
• Mark Rutte studeerde geschiedenis aan de Universiteit Leiden
41. Natural language processing
• NLP is een interdisciplinair onderzoeksveld op het snijvlak van
taalkunde en informatica met sterke links naar kunstmatige
intelligentie
• Doel is om computers om te leren gaan met natuurlijke taal
• Chatbots, Google Translate, Apple Siri, Google BERT
(tekstclassificatie), Spamfilter
• Soms lastig: primair gericht op Engels
42. Natural language processing
• Teksten automatisch samenvatten
– Resoomer https://resoomer.com/nl/
– SciTLDR https://scitldr.apps.allenai.org/
• Maar je kan ook teksten genereren
– GPT-2 demo https://bellard.org/textsynth/
43. Normaliseren van tekst
Hoe moeten woorden geteld worden? Daarvoor wil je soms
normaliseren (ook wel pre-processing)
• Lowercase: “digitaliseren” en “Digitaliseren” zijn hetzelfde
• Tokenize: “digitaliseren” en “digitaliseren!!” zijn hetzelfde
• Stopwoorden: in “de digitalisering” is “de” niet interessant
44. Normaliseren van tekst
Hoe moeten woorden geteld worden? Daarvoor wil je soms
normaliseren (ook wel pre-processing)
• Lemmatiseren vs stemming
Woord Stam Lemma
gelopen gelop lopen
digitalisering digitaliser digitaliseren
gewezen gewez zijn
45. Normaliseren van tekst
Hoe moeten woorden geteld worden? Daarvoor wil je soms
normaliseren (ook wel pre-processing)
• Lemmatiseren vs stemming
47. NLP tools
• Stanza http://stanza.run/
• LeTs Demo https://www.lt3.ugent.be/lets-demo/
• CLARIN tools https://www.clarin.eu/resource-families
• TAPoR directory tools voor text analyse http://tapor.ca/
Opdracht: plak een tekst (wikipedia of uit je eigen casus) in Stanza
48. Collectie van teksten aanmaken
• Websites scrapen https://webscraper.io/
• Nexis Uni (krantenartikelen, toegang vereist)
• Gale Digital Scholar Lab (veel gedigitaliseerde content en analyse
tools, toegang vereist)
• Delpher https://delpher.nl/data
Copyright zit vaak in de weg
• Wikipedia daarom ook een dankbare bron