Automatische classificatie van teksten

41
Automatische classificatie van teksten Suzan Verberne 20 september 2016 NOTaS-bijeenkomst bij Nationaal Archief

Transcript of Automatische classificatie van teksten

Page 1: Automatische classificatie van teksten

Automatische classificatie van tekstenSuzan Verberne20 september 2016NOTaS-bijeenkomst bij Nationaal Archief

Page 2: Automatische classificatie van teksten

Wie ben ik

• PhD from Radboud University in 2010, on Information Retrieval / Natural Language Processing

• Research topics since then:- Text classification- Information Extraction- Personalized content filtering- Information seeking behavior- Information access for the humanities- Summarization of discussion forum threads

• Teaching:- Text Mining - Information Retrieval

Page 3: Automatische classificatie van teksten

Wat is tekstclassificatie?

Page 4: Automatische classificatie van teksten

Spam of geen spam?

Page 5: Automatische classificatie van teksten

Spam of geen spam?

Page 6: Automatische classificatie van teksten

Spam of geen spam?

Page 7: Automatische classificatie van teksten

Tekstclassificatie

• Op basis van welke kenmerken heb je je beslissing genomen?

• Classificatieprobleem: kiezen tussen twee of meer alternatieven (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

Page 8: Automatische classificatie van teksten

• Binaire classificatie (twee categorieën)

• Multi-class / one-of classificatie

• Multi-label classificatie

Page 9: Automatische classificatie van teksten

Voorbeeld-toepassingen• Zijn deze taken binair, multi-class of multi-label?

Page 10: Automatische classificatie van teksten

Spamdetectie

Page 11: Automatische classificatie van teksten

Taalherkenning

Page 12: Automatische classificatie van teksten

Het indelen van nieuws in secties

Page 13: Automatische classificatie van teksten

Het indelen van boeken in genres

Page 14: Automatische classificatie van teksten

Het indelen van archiefstukken naar proces

Page 15: Automatische classificatie van teksten

Het toekennen van trefwoorden aan archiefstukken

Page 16: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie?

Page 17: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 18: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 19: Automatische classificatie van teksten

Definieer je taak

• Wat is de teksteenheid die je wilt classificeren?- Hele documenten (denk aan een e-mailarchief: classificatie per bericht)- Secties? (denk aan notulen, of partijprogramma’s)- Zinnen? (denk aan taalherkenning of sentimentclassificatie)

• Wat zijn de categorieën?

• Voorbeeld-probleem: Verkiezingsprogramma’s geannoteerd door Isaac Lipschits

Page 20: Automatische classificatie van teksten
Page 21: Automatische classificatie van teksten
Page 22: Automatische classificatie van teksten
Page 23: Automatische classificatie van teksten

Lipschits-classificatie-probleem

Doelen (PoliticalMashup project):

1. Digitaliseer de 1977–1998 Lipschits collecties2. Bouw een automatische classifier voor recentere, ongeannoteerde edities

Aanpak:

3. Zet de gescande PDF’s uit 1986, 1994 en 1998 om naar teksten met labels4. Train en evalueer hiermee een classifier5. Pas de classifier toe op de 2006-2012 data

Page 24: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 25: Automatische classificatie van teksten

Voorbeelddata

Voorbeelddata (trainingsdata):• Een set van teksten met categorieën/labels• Om een classificatiemodel mee te trainen

Page 26: Automatische classificatie van teksten

Build classifier

Classifier

Voorbeeld-documenten

Representeren als feature vectors

Een classificatie-model leren

Toepassen op een nieuw document

Page 27: Automatische classificatie van teksten

Hoe kom je aan voorbeelddata?

1. Bestaande data- Door experts gemaakte indelingen, bijvoorbeeld

– Patentclassificatie– Partijprogramma’s, door Isaac Lipschits van trefwoorden voorzien

- Door leken gemaakte indelingen (user-generated content), bijvoorbeeld– Hashtags als categorieën: #fail voor negatief sentiment

Page 28: Automatische classificatie van teksten

Hoe kom je aan voorbeelddata?

2. Voorbeelddata (laten) maken- Maak een selectie van documenten- Definieer een set van categorieën- Menselijke classificatie

– Experts– Crowdsourcing (Amazon Mechanical Turk, Crowdflower)

• Hoeveel voorbeelddata heb je nodig?- Minimaal enkele tientallen/honderden per categorie- Hoe meer, hoe beter- Hoe moeilijker het probleem, hoe meer voorbeelden nodig

Mechanical Turk, an expression used for machines or devices that can purportedly do a

fully automated task, but which in reality is done by a hidden person

Page 29: Automatische classificatie van teksten

Social Book Search Lab Annotation Interface

Page 30: Automatische classificatie van teksten

Inter-rater agreement

• 2 menselijke classifiers zijn het nooit 100% met elkaar eens• Laat altijd een deel van de voorbeelddata door 2 of 3 mensen classificeren• En bereken dan hun onderlinge overeenstemming (agreement)• Dan weet je hoe betrouwbaar de voorbeelddata is

• Referentie-data = ‘gold standard’ / ‘ground truth’

voor wie meer wil weten: Cohen’s Kappa

Page 31: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 32: Automatische classificatie van teksten

Feature-extractie

Voorbeeld-documenten

Representeren als feature vectors

Page 33: Automatische classificatie van teksten

Woorden zijn features

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 ?

• Keuzes in het maken van de features:- Wel of niet stopwoorden (functiewoorden) weggooien- Hoeveel features gebruiken (grootte van vocabulaire van de classifier)- Wel of niet lemmatiseren (interests interest)- Wel of niet woordgroepen meenemen als features (“PhD defense”)- Featurewaarde binair (wel/niet voorkomen), het aantal keer, of een gewogen score

Page 34: Automatische classificatie van teksten

Classificatie-methoden

• Veel gebruikte 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

Page 35: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 36: Automatische classificatie van teksten

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- Of, als je niet zoveel data hebt, steeds roterende 80-20 (cross validation)

• In het geval van Lipschits:- Trainen op 1986 en 1994- Toepassen op 1998 (met labels, dus bruikbaar als testset)- Na optimalisatie toepassen op 2006-2012 data (zonder labels)

Page 37: Automatische classificatie van teksten

Evaluatiematen

• Menselijke classificatie = referentie

• Classificatie door automatische classifier

• 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:

Page 38: Automatische classificatie van teksten

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 inter-

rater agreement is een indicator)- De hoeveelheid trainingsdocumenten en de kwaliteit van de handmatige

classificatie- De lengte van de documenten: korte documenten zijn moeilijker te

classificeren

Page 39: Automatische classificatie van teksten

Resultaten: wat kun je verwachten?

• Wat is een reële F-score?

- Makkelijke binaire classificatietaak: 90-99%– Bijvoorbeeld: herken book search requests op een lezers-discussie-forum

- Moeilijke multi-label classificatietaak: 30-70%– De categorieën met weinig voorbeelden halen de gemiddelde nauwkeurigheid

omlaag– Bijvoorbeeld: patentclassificatie, Lipschits partijprogramma’s

• Resultaten voor de 1998-partijprogramma’s (Lipschits-classificatie)- Precisie: ~70%- Recall: 37%

Page 40: Automatische classificatie van teksten

Wat is nodig voor tekstclassificatie

• Definitie van de taak • Voorbeelddata• Feature-extractie• Classificatiemethode• Evaluatie

Page 41: Automatische classificatie van teksten

Bedankt!

• http://sverberne.ruhosting.nl • http://twitter.com/suzan