1. 2 8 M A A R T 2 0 1 8 , V O G I N - I P L E Z I N G
AUTOMATISCHE CLASSIFICATIE
VAN TEKSTEN
SUZAN VERBERNE
2. WIE BEN IK
1998-2002: bachelor & master Taal- en Spraaktechnologie
2005-2009: Promotie op het onderwerp van vraag-antwoordsystemen
2009-2017: Onderzoeker en docent op het gebied van Text Mining en
Information Retrieval, Radboud Universiteit
Nu: Universitair Docent bij het Leiden Institute for Advanced Computer
Science (LIACS), betrokken bij het Data Science Onderzoeksprogramma
Onderzoek: projecten over text mining en information retrieval in allerlei
toepassingsgebieden
Onderwijs: Data Science & Text Mining
Suzan Verberne
3. BIBLIOTHEKEN EN INFORMATION RETRIEVAL
Kleine zijsprong:
De bibliotheekwetenschappen (‘library and information sciences’)
stonden aan de basis van het vakgebied Information Retrieval
Doel: de bibliothecaris ondersteunen met technologie
Suzan Verberne
4. TEXT MINING
Text mining: informatie ontsluiten die in teksten is opgeslagen
Classificatie van teksten (documenten of delen ervan) is vaak een eerste
stap die die vindbaarheid vergroot
Daarna: informatie-extractie (belangrijke termen, relaties, events)
En meestal ook: ontsluiting van informatie via een gebruikers-interface.
Suzan Verberne
5. AUTOMATISCHE CLASSIFICATIE VAN TEKSTEN
Automatische classificatie van (web)teksten vindt continu plaats
meest beroemde toepassing: spamdetectie
classificatie helpt het zoekproces (internet/archieven)
Inhoud van deze lezing:
Wat is tekstclassificatie
Wat is nodig voor tekstclassificatie: van taakdefinitie tot evaluatie
Suzan Verberne
10. TEKSTCLASSIFICATIE
Op basis van welke kenmerken heb je je beslissing genomen?
Classificatieprobleem: kiezen tussen twee of meer categorieën
(classes)
De kenmerken die je gebruikt om je beslissing te maken zijn features
Voor tekstclassificatie worden meestal de woorden uit het
document gebruikt als features
Suzan Verberne
18. WAT IS NODIG VOOR TEKSTCLASSIFICATIE
Definitie van de taak
Voorbeelddata
Feature-extractie
Classificatiemethode
Evaluatie
Suzan Verberne
19. WAT IS NODIG VOOR TEKSTCLASSIFICATIE
Definitie van de taak
Voorbeelddata
Feature-extractie
Classificatiemethode
Evaluatie
Suzan Verberne
20. DEFINIEER JE TAAK
Wat is de teksteenheid die je wilt classificeren?
Hele boeken/tijdschriften? (nieuwe materialen in een bibliotheek)
Hele documenten? (denk aan een e-mailarchief: classificatie per bericht)
Een document kan kort zijn! Een forumbericht of tweet bijvoorbeeld
Secties? (denk aan notulen)
Zinnen? (denk aan taalherkenning of sentimentclassificatie)
Wat zijn de categorieën?
Zijn de categorieën vooraf gegeven?
Suzan Verberne
21. WAT IS NODIG VOOR TEKSTCLASSIFICATIE
Definitie van de taak
Voorbeelddata
Feature-extractie
Classificatiemethode
Evaluatie
Suzan Verberne
22. VOORBEELDDATA
Voorbeelddata (trainingsdata):
Een set van teksten met categorieën/labels
Dit kunnen bestaande metadata zijn (door mensen gemaakt)
Of nieuwe labels kunnen worden toegekend speciaal om de classifier te
trainer
Om een classificatiemodel mee te trainen
Suzan Verberne
26. WOORDEN ZIJN FEATURES
Keuzes in het maken van de features:
Wel of niet functiewoorden weggooien
Hoeveel features gebruiken (grootte van vocabulaire van de classifier)
Wel of niet lemmatiseren (interests interest)
…
Doc id Content Class
1 request urgent interest urgent Spam
2 assistance low interest deposit Spam
3 symposium defense june No spam
4 notas symposium deadline june No spam
5 registration assistance symposium deadline ?
Suzan Verberne
27. CLASSIFICATIE-METHODEN
Veel gebruikte machine-learning methoden:
Bereken de kans op het voorkomen van elke term gegeven elke categorie op
basis van de voorkomens in de trainingsdata (Naïve Bayes)
Leer regels, bijvoorbeeld “als de e-mail het woord ‘urgent’ bevat dan is het
spam” (Decision Trees)
Bepaal waar precies de verschillen tussen twee categorieën zitten; zoek
voorbeelden in de trainingsdata die precies op de grens tussen twee
categorieën zitten (Support Vector Machines)
Vind de voorbeelden in de trainingsdata die het meest lijken op het te
classificeren document (kNN)
Meestal werken we met een experimentele omgeving waar we
methoden kunnen vergelijken. Bijvoorbeeld Scikit-learn in Python
Suzan Verberne
29. WAT IS NODIG VOOR TEKSTCLASSIFICATIE
Definitie van de taak
Voorbeelddata
Feature-extractie
Classificatiemethode
Evaluatie
Suzan Verberne
30. EVALUATIE
Hoe goed is de classifier?
Meten op voorbeelddata (want daarvan weten we de categorieën)
Splits de voorbeelddata in een trainingset en een testset
Bijvoorbeeld 80% om te trainen en 20% om te testen
Suzan Verberne
31. EVALUATIEMATEN
Menselijke classificatie = referentie
Classificatie door automatische classsifier
8 ware categorieën
waarvan 5 toegekend
Recall = 5/8
6 toegekende
categorieën
waarvan 5 correct
Precisie = 5/6
We rapporteren
meestal het
gemiddelde:
F1 = 2×
precision ×recall
precision + recall
Suzan Verberne
32. RESULTATEN: WAT KUN JE VERWACHTEN?
Waar hangt de kwaliteit van de classifier van af?
De moeilijkheid van de taak: hoe meer categorieën, hoe moeilijker
De hoeveelheid trainingsdocumenten (per categorie tientallen, maar
liever honderden documenten nodig)
De lengte van de documenten: korte documenten zijn moeilijker te
classificeren
De kwaliteit is nooit perfect. Meer dan 90% is heel mooi
maar 60-80% is realistischer
vaak is er een afweging tussen het belang van precision en recall
Suzan Verberne
33. WAT IS NODIG VOOR TEKSTCLASSIFICATIE
Definitie van de taak
Voorbeelddata
Feature-extractie
Classificatiemethode
Evaluatie
Suzan Verberne
34. PROBEER HET ZELF
Python leren:
https://www.codecademy.com/learn/python
https://www.coursera.org/learn/python (Python for everybody)
https://www.coursera.org/learn/python-machine-learning (applied machine learning
in Python)
http://www.karsdorp.io/python-course/ (Python for the Humanities)
Machine learning in Python met sklearn:
http://scikit-learn.org/stable/tutorial/basic/tutorial.html
Text processing and categorization in Python:
http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
https://towardsdatascience.com/machine-learning-nlp-text-classification-using-
scikit-learn-python-and-nltk-c52b92a7c73a
Suzan Verberne