Automatische classificatie van teksten Suzan Verberne 20 september 2016 NOTaS-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 collecties 2. Bouw een automatische classifier voor recentere, ongeannoteerde edities Aanpak: 1. Zet de gescande PDF’s uit 1986, 1994 en 1998 om naar teksten met labels 2. Train en evalueer hiermee een classifier 3. 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 Voorbeelddocumenten Representeren als feature vectors Een classificatiemodel leren Toepassen op een nieuw document Build classifier Classifier 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 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 – 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 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 Voorbeelddocumenten 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: precision × recall F1 = 2 × precision + recall 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 interrater 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