Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Grote hoeveelheden tekst analyseren als data

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
workshop-zoeken-WAR
workshop-zoeken-WAR
Chargement dans…3
×

Consultez-les par la suite

1 sur 48 Publicité

Plus De Contenu Connexe

Similaire à Grote hoeveelheden tekst analyseren als data (20)

Plus par voginip (20)

Publicité

Plus récents (20)

Grote hoeveelheden tekst analyseren als data

  1. 1. Grote hoeveelheden tekst analyseren als data Max Kemman VOGIN-IP-lezing 11 mei 2022
  2. 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. 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. 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. 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. 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. 7. Ranking naar relevantie Ranking: bij duizend resultaten bepalen van volgorde van relevantie – Overlap met ingevoerde zoektermen – Term frequency * inverse document frequency
  8. 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. 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. 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. 11. Zoeken in grote collecties van documenten • Voorbeelden waarin dit kan – Google – Google Books – Delpher
  12. 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. 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. 14. Keywords in Context voorgaande termen - zoekterm - opvolgende termen • Geeft inzicht in hoe woorden gebruikt worden https://voyant-tools.org/?view=Contexts
  15. 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. 16. Trends Visuele weergave van frequentie van een of meer woorden over de tijd • sad* https://voyant-tools.org/?view=Trends
  17. 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/
  18. 18. Trends: n-grams Google Ngram Viewer
  19. 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
  20. 20. Trends: n-grams Opletten met veranderend taalgebruik • Woord ≠ concept
  21. 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. 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. 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. 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. 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. 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. 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. 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. 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. 30. Concepten identificeren in teksten Blei, D. M. (2012). Probabilistic topic models. Communications of the ACM, 55(4), 77-84.
  31. 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. 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. 33. Concepten identificeren in teksten Topic model output • Uit welke woorden bestaat elk topic • Per document hoeveel % beslaat elk topic
  34. 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. 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. 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. 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
  38. 38. Entiteiten identificeren in teksten Toepassingen: – Kaart van alle genoemde locaties
  39. 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. 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. 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. 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. 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. 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. 45. Normaliseren van tekst Hoe moeten woorden geteld worden? Daarvoor wil je soms normaliseren (ook wel pre-processing) • Lemmatiseren vs stemming
  46. 46. Analyseren van tekst Part-of-speech (POS) tags • Identificeren zelfstandig naamwoorden, werkwoorden etc.
  47. 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. 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

×