Automatische classificatie van teksten

Post on 15-Apr-2017

138 views 1 download

Transcript of Automatische classificatie van teksten

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

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

Wat is tekstclassificatie?

Spam of geen spam?

Spam of geen spam?

Spam of geen spam?

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

• Binaire classificatie (twee categorieën)

• Multi-class / one-of classificatie

• Multi-label classificatie

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

Spamdetectie

Taalherkenning

Het indelen van nieuws in secties

Het indelen van boeken in genres

Het indelen van archiefstukken naar proces

Het toekennen van trefwoorden aan archiefstukken

Wat is nodig voor tekstclassificatie?

Wat is nodig voor tekstclassificatie

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

Wat is nodig voor tekstclassificatie

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

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

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

Wat is nodig voor tekstclassificatie

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

Voorbeelddata

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

Build classifier

Classifier

Voorbeeld-documenten

Representeren als feature vectors

Een classificatie-model leren

Toepassen op een nieuw document

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

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

Social Book Search Lab Annotation Interface

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

Wat is nodig voor tekstclassificatie

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

Feature-extractie

Voorbeeld-documenten

Representeren als feature vectors

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

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

Wat is nodig voor tekstclassificatie

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

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)

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:

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

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%

Wat is nodig voor tekstclassificatie

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

Bedankt!

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