René Ouëndag (2001)
Het Effect van Taalkundige Hulptechnieken bij Statistische Classificatie van Documenten
Master's thesis, Rijksuniversiteit Groningen.
[ Paper (PDF, 305 kb) ]

1. Inleiding

In het afgelopen decennium heeft e-mail zich, voor zowel de thuisgebruiker als voor bedrijven, ontwikkeld tot een veelgebruikt communicatiemiddel. Het voordeel van e-mail is dat het snel en in grote hoeveelheden verstuurd kan worden en dat het relatief weinig kost. Maar aangezien de hoeveelheid e-mail die per dag wordt verstuurd alsmaar toeneemt, ontstaan er naast de genoemde voordelen ook problemen.

Spam

Voor sommige bedrijven vormt e-mail namelijk een manier om grote groepen mensen iets aan de man te brengen, soms ook dingen die niet helemaal "schoon" zijn. Dit soort mail wordt ook wel junk mail of spam genoemd en is te vergelijken met ongewenst ongeadresseerd drukwerk. Gevolg is, dat veel mensen elke dag tussen belangrijke mail ook dingen tegenkomen waar ze niet om gevraagd hebben. Eigenlijk zou er voor dit soort berichten een soort "sticker" moeten zijn waardoor het niet meer in een mailbox terecht kan komen.

Verloren overzicht

Er zijn ook bedrijven die zich op een andere manier bezighouden met e-mail, en wel met het beantwoorden ervan, zoals callcenters en helpdesks. Aangezien zij over uiteenlopende onderwerpen per dag duizenden mails kunnen ontvangen, raakt op een gegeven moment het overzicht tussen de verschillende vragen zoek. Om iets meer overzicht te krijgen en ook om in bepaalde onderwerpen gespecialiseerde mensen specifieke vragen te kunnen laten beantwoorden, is het een oplossing om de mail in categorieën te verdelen.

Automatische classificatie

Om bovenstaande problemen op te lossen is het in categorieën indelen van e-mail, oftewel het classificeren ervan, de oplossing. Je kunt hier natuurlijk voor iemand een dagtaak van maken, maar er bestaat ook een andere oplossing en dat is door het de computer te laten doen.

De meeste e-mailprogramma's kennen filters die meestal door iemand zelf kunnen worden ingesteld. Hierbij kan e-mail van familieleden of collega's in aparte mappen worden gezet door op e-mailadres te filteren of kan e-mail op onderwerp worden gesorteerd door naar de onderwerpregel te kijken. Helaas is dit voor het filteren van spam niet voldoende (alhoewel er al veel spam kan worden herkend aan woorden in de onderwerpregel) en ook voor het classificeren van e-mail van callcenters en helpdesks is dit te eenvoudig. Beter is het om te kijken naar de inhoud van een e-mail. Hiervoor moet de mail worden doorgelezen en nu is de vraag hoe we dat een computer kunnen laten doen.

Stel dat er twee categorieën zijn: een over auto's en een over computers. Als een mens een e-mail krijgt over bougies en stuurkolommen, dan zal het voor deze persoon niet moeilijk zijn om te beslissen dat dit een typisch mailtje is over auto's. De reden hiervoor is dat een mens weet dat een bougie en een stuurkolom niets met een computer van doen hebben, wat wil zeggen dat de mens deze twee voorwerpen niet associeert met een computer. Het is natuurlijk zo dat een mens niet automatisch weet dat bougies en stuurkolommen bij auto's horen, een mens moet dit soort dingen eerst leren voordat het bij dit denkproces gebruikt kan worden.

Dan gaan we nu weer terug naar de computer. Een computer heeft geen kennis van al deze onderwerpen en kan ook niet denken als een mens. Wat een computer wel kan is rekenen, en dat is juist wat we nodig hebben om een computer e-mail te laten classificeren.

Het eerste wat nodig is, is dat we een computer het verschil leren tussen de twee onderwerpen. Dit doen we door voorbeelden te verzamelen van de twee verschillende onderwerpen en deze los van elkaar aan te bieden aan de computer. We kunnen nu de computer een model laten maken in de vorm van een woordenlijst met daarbij voor elke categorie het aantal voorkomens van elk woord en de daarbij behorende kans. Bieden we nu de computer de mail aan over de bougies en stuurkolommen, dan hoeft het apparaat alleen maar uit te zoeken welke van de twee categorieën het meest waarschijnlijk is. Dit gebeurt door voor elk woord in het bericht de kans op te zoeken voor een bepaalde categorie. Het zal blijken dat de computer de categorie "auto's" aanwijst als dé categorie voor dit bericht, omdat de twee woorden "bougie" en "stuurkolom" in deze categorie een hoge kans hebben en in de categorie "computers" een (hele) kleine.

Deze techniek is nu heel eenvoudig te gebruiken om mail te verdelen in spam en non-spam. Er is hiervoor een onderzoek gedaan door Sahami e.a. (1998). Zij stelden ook dat de eenvoudige filters niet voldoende zijn om spam te filteren en dat het handig zou zijn om de computer te laten uitzoeken wat spam is en wat niet. Het zou ook mogelijk moeten zijn om persoonlijke en dus veel specifiekere spam-filters te maken door te kijken wat de persoon in kwestie als spam en als non-spam beschouwt. Hiervoor moet de computer twee vooraf gemaakte categorieën, een met en een zonder spam, hebben en daarbij ook nog wat extra informatie in de vorm van eigenschappen van spam, zoals woorden als "free" en (excessief) veel leestekens. Verder kunnen bekende e-mailadressen worden omgezet naar de namen van de betreffende personen.

Om nu te berekenen of iets spam is of niet, gebruiken zij een naive Bayes classifier, iets waarover in het volgende hoofdstuk verder zal worden gesproken. Bovendien geven ze "strafpunten" om te voorkomen dat non-spam wordt aangezien voor spam. Om te kijken hoe goed dit systeem werkt gebruiken ze een mailgeschiedenis van een jaar van een persoon, wat neerkomt op ongeveer 1800 e-mails, waarvan er ongeveer 250 vooraf als non-spam zijn aangemerkt. Hierdoor is het effect van de "strafpunten" ook beter te zien.

Verder waren er drie varianten waarmee getest werd. Bij de eerste variant werd alleen met losse woorden gewerkt, bij de tweede met woorden en zinnen en bij de laatste met zowel woorden, zinnen als de extra toegevoegde spam-informatie. Hierbij bleek dat de versie met alleen woorden het laagste presteerde, de versie met woorden en zinnen niet veel beter, maar de versie met zowel woorden, zinnen als extra informatie bijna een maximale precisie haalde. Het is dus mogelijk om een relatief effectief automatisch spam-filter te maken met behulp van automatische classificatie.

Naar het effect van het gebruik van automatische classificatie voor callcenters en helpdesks is ook onderzoek gedaan, en wel door Busemann e.a. (2000). In hun onderzoek gaan ze nog een stap verder dan het classificeren van e-mail alleen. Ze hebben namelijk onderzocht of het haalbaar is de e-mail automatisch te laten beantwoorden. Zij werken hierbij met ongeveer 5000 e-mails, verdeeld over 47 categorieën.

Hun systeem bestaat uit een shallow-text-processor (zie ook hoofdstuk 4) en verder wordt er gebruik gemaakt van meerdere classificatietechnieken waaronder zich ook weer naive Bayes bevindt. De resultaten van experimenten variëren en komen bij technieken waarbij maar één mogelijke categorie wordt gegeven niet boven de 50%. Bij één techniek is het echter mogelijk om een ranking van de 5 meest waarschijnlijke categorieën te krijgen. Hier ligt het resultaat ongeveer 20% hoger, maar dan hoeft de juiste categorie niet bovenaan te staan.

Naar aanleiding van deze experimenten is een e-mailbeantwoordingsprogramma gemaakt, dat met de laatstgenoemde techniek bepaalt welk onderwerp een bepaalde e-mail heeft en vervolgens een lijst met mogelijke antwoorden geeft, met de meest waarschijnlijke van de serie volledig op het scherm. Dit systeem is overigens ook al in praktijk getest en geeft een verhoging van het aantal beantwoorde e-mails per uur ten opzichte van het niet gebruiken van automatische classificatie.

Er is overigens niet alleen onderzoek gedaan naar het gebruik van classificatie in praktijk-situaties. Ook naar verbetering van de onderliggende classificatietechnieken is onderzoek gedaan. Zo heeft het aantal woorden dat wordt gebruikt bij classificatie invloed op de uitkomst ervan. Dit fenomeen heet pruning of featureselectie. Hierbij is een feature hetzelfde als een woord. Onder andere Koller en Sahami (1997) hebben geprobeerd door middel van pruning een verbetering in de precisie van een classificatiesysteem te krijgen. Dit doen ze door de categorieën onder te brengen in een hiërarchie en daarbij voor elke categorie de woorden te selecteren die het meeste zeggen over deze categorie.

Verder is er op het gebied van de classificatiedata (de mails) nog het een en ander onderzocht, met name op het gebied van het toevoegen van taalkundige informatie die kan helpen bij statistische classificatie. Voorbeelden hiervan zijn de al eerder genoemde shallow text processing (Busemann e.a., 2000) en (Neumann en Schmeier, 1999), maar ook phrase indexing (Kraaij en Pohlmann, 1997), stemming (Kraaij en Pohlmann, 1994) en compound analysis (Kraaij en Pohlmann, 1997). Als laatste noem ik hier ook nog het voeden van een classificatiemodel met voor een categorie zowel positieve als negatieve gegevens (Dagan e.a., 1997).

Doelstelling

In deze scriptie zal ik proberen een antwoord te vinden op de vraag of en in hoeverre taalkundige hulptechnieken een positief effect hebben op de statistische classificatie van Nederlandstalige documenten. Hiervoor bespreek ik in het volgende hoofdstuk enkele statistische classificatietechnieken als naive Bayes en maximum entropy, maar ook smoothing. In hoofdstuk 3 komt dan het gebruikte materiaal aan bod, waaronder RainBOW en de gebruikte documentensets.

Hoofdstuk 4 bevat mijn scriptieonderzoek waarin ik probeer vast te stellen of taalkundige hulptechnieken inderdaad een positieve bijdrage leveren aan de classificatie van documenten. Als laatste bevat hoofdstuk 5 de conclusie waarin zal blijken dat taalkundige hulptechnieken als stemming en STP afzonderlijk een verbetering laten zien die kan oplopen tot 1%. Gebruik van beide taalkundige hulptechnieken brengt zelfs in één geval een verbetering van 2% teweeg. Dit resultaat is overigens wel afhankelijk van de gebruikte dataset.