TST voor archieven - Suzan Verberne

advertisement
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
Download