Titel: Ett träningsbart verktyg för att klassificera nyhetstexter (A learnable tool for classifying news texts)



Relevanta dokument
Klustring av svenska tidningsartiklar

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

de var svåra att implementera och var väldigt ineffektiva.

Föreläsning 7. Felrättande koder

Kravspecifikation Fredrik Berntsson Version 1.3

Att använda Weka för språkteknologiska problem

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Artificiell Intelligens Lektion 7

Kategorisering och klustring. Kategorisering vid indexering. Kategorisering. Kategorisering föränderligtf. Klustring

Datorlaboration :: 1 Problembeskrivning ::

Prototypbaserad Inkrementell Diagnos. Anders Holst SICS, Swedish Institute of Computer Science AB

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

HKGBB0, Artificiell intelligens

Föreläsning 13 Innehåll

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Statistisk mönsterigenkänning

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

1 Minkostnadsflödesproblem i nätverk

TNK049 Optimeringslära

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Manual HSB Webb brf

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Graärgning och kromatiska formler

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Introduktion till frågespråket SQL (v0.91)

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Regression med Genetiska Algoritmer

DIGITAL KOMMUNIKATION

Mälardalens högskola

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Föreläsning 5. Approximationsteori

Föreläsning 5: Grafer Del 1

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

UPPGIFT 1 V75 FIGUR 1.

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

1 Duala problem vid linjär optimering

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Föreläsning 6: Analys och tolkning från insamling till insikt

TANA17 Matematiska beräkningar med Matlab

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Vinjetter TDDC91 Datastrukturer och algoritmer

Övningshäfte 2: Induktion och rekursion

Experimentella metoder, FK3001. Datorövning: Finn ett samband

Moment Viktiga exempel Övningsuppgifter

Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014

SVÄNGNINGSTIDEN FÖR EN PENDEL

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Lutande torn och kluriga konster!

TAIU07 Matematiska beräkningar med Matlab

Linköpings universitet

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken.

Vektorgeometri för gymnasister

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik Lösningsförslag till del I

Googles sidrankning - linjär algebra värt en förmögenhet

Webbserverprogrammering

Automatisk textsammanfattning

Semantic and Physical Modeling and Simulation of Multi-Domain Energy Systems: Gas Turbines and Electrical Power Networks

Föreläsning 10. Grafer, Dijkstra och Prim

Ansiktsigenkänning med MATLAB

SF1545 Laboration 1 (2015): Optimalt sparande

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

Tentamen Marco Kuhlmann

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Konvergens för iterativa metoder

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

Laboration 1: Optimalt sparande

Lösningsförslag till övningsuppgifter, del V

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Numerisk lösning till den tidsberoende Schrödingerekvationen.

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

EXPERIMENTELLT PROBLEM 2 DUBBELBRYTNING HOS GLIMMER

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Numerisk Analys, MMG410. Lecture 12. 1/24

reella tal x i, x + y = 2 2x + z = 3. Här har vi tre okända x, y och z, och vi ger dessa okända den naturliga

Subtraktion. Räkneregler

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Vektorgeometri för gymnasister

Projekt i bildanalys Trafikövervakning

DFA Design For Assembly

Word-guide Introduktion

TAIU07 Matematiska beräkningar med Matlab

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Transkript:

Examensarbete vid NADA, KTH Av Erik Herou Titel: Ett träningsbart verktyg för att klassificera nyhetstexter (A learnable tool for classifying news texts) Examensarbete inom datalogi Handledare: Anders Green Examinator: Kerstin Severinson Eklundh Uppdragsgivare: Adaptlogic AB 2002-04-09

Ett träningsbart verktyg för att klassificera nyhetstexter Sammanfattning Det är i många sammanhang ett problem att framställa metadata, data om data, för de stora mängder texter som förekommer i digitala medier. Textklassificering är ett forskningsområde som går ut på att statistiskt analysera texter och deras metadata för att finna samband vilka kan utnyttjas för att senare automatiskt tilldela metadata till nya texter. Hur detta görs beror på vilken metod man använder för själva analysen, kallad maskininlärning. Detta examensarbete har syftat till att studera olika sådana metoder och deras lämplighet för textklassificering för nyhetstexter. Studien utmynnade i ett beslut att med hjälp av en prototyp praktiskt utvärdera en metod som bygger på Bayes regel för betingad sannolikhet. Prototypen har studerats och utvärderats med avseende på tidsprestanda och träffsäkerhet i tilldelning av metadata för en mängd tidningsartiklar. Tidsprestanda för prototypen anses vara tillräcklig för den specifika realtidstillämpning som beskrivs i arbetet. Under testerna analyserade prototypen ca 2 000 nyligen publicerade artiklar för att försöka hitta samband för tilldelning av 27 olika ämnen och geografiska kodningar. Matematisk utvärdering av systemet visade att artikelmängden gav systemet en träffsäkerhet på runt 80 % i sin tilldelning av vanligt förekommande ämnen som sport eller krig. Träffsäkerheten på många andra ämnen blev dock mycket låg på grund av att det fanns för få artiklar med de respektive ämnena i den mängd som analyserades. Textklassificeringen som utvärderas i prototypen anses, förutsatt viss vidareutveckling, ha stor potential i det aktuella sammanhanget och uppskattades av de tilltänkta användarna. På sikt kan även en helt automatisk tillämpning vara både möjlig och högst användbar. A learnable tool for classifying news texts Abstract In many situations the creation of metadata, data describing data, is a problem. This is especially obvious when dealing with the huge amounts of text availiable through digital medias today. Text classification is the research discipline of automatical assigning of metadata to, or classification of, texts written in natural language. This is done through statistic analysis of texts and metadata, in its abstract form called machine learning, which can be done in many different ways. This master s thesis is a study of different techniques for machine learning and their suitability for a text classfication application in the context of news articles. The decision taken based on the study was to evaluate a method based on Bayes rule using a prototype system. The evaluation is also covered by this report. The prototype has been evaluated regarding the significance of the metadata it assigns to a set of news articles and the speed with which it does so. The time complexity and execution speed of the system is considered acceptable for the real-time application described in this report. The tests of the prototype were performed using 2 000 news articles and 27 different topics and geographic codes for the initial set-up analysis required by the system. The mathematic evaluation of the prototype indicated that using this relatively small set of news text for the set-up analysis was enough for the system to have a significance of about 80 % for some of the metadata fields, and less for others. The number of occurrences of each metadata field in the set-up dataset was closely connected to the system s ability to correctly assign the fields to new texts, respectively. The text classifier implemented and described in this report is considered to have an interesting potential for applications in the newspaper situation, also described. The prototype recieved quite a lot of interest and positive response from the potential users. It is also claimed in the report that a more or less automatic classification process for the newspaper might be a good application of the classifier in the future.

Förord Denna rapport beskriver ett examensarbete genomfört på institutionen för numerisk analys och datalogi, NADA, vid Kungliga tekniska högskolan, KTH, i Stockholm. Arbetet har genomförts under hösten 2001 och motsvarar 20 akademiska poäng. Uppdragsgivare har varit Adaptlogic AB där mina handledare varit Erik Wallin och Christoffer Atle. Handledare på NADA har varit Anders Green och examinator Kerstin Severinson Eklundh. Examensarbetet var en ansats till tillämpning av tekniker från området artificiell intelligens och lärande system i en verklig situation. Sådana tekniker är fortfarande alltför ovanliga utanför universitets- och högskolevärlden även om några kommersiella projekt har pågått i många år. Potentialen för artificiell intelligens och autonoma eller lärande system inom informationsinhämtning ( information retreival ) och informationsnavigering är enorm. Med hjälp av lättanvända, smarta verklighetsanknutna applikationer av metoder från artificiell intelligens kan människor återta kontrollen över den informationsbest vi släppt lös, och jag hoppas kunna vara en del av det framtida arbetet inom detta yrkes- och forskningsområde under många år framöver. Min upplevelse av examensarbetet är att det uppnådde sina mål väl. Det ena målet var att studera några maskininlärningsmetoder för att kunna göra en rekommendation om den lämpligaste. Det målet uppnåddes. Det andra målet var att producera en prototyp som var användbar för vidare tester. Det målet nådde jag också. Jag vill speciellt tacka Erik Wallin och Christoffer Atle på Adaptlogic för möjligheten att genomföra examensarbetet där, min handledare Anders Green på NADA för hjälp och ett engagemang stundtals mycket större än vad som förväntas av en handledare samt Thorbjörn Frisk för kreativt samarbete kring maskininlärning. Jag vill också tacka Johan Möller och Klas Sabelström på Svenska Dagbladet för generös tillgång till artikeldatabaser, samt utvecklarna på Adaptlogic för de tips jag fått för att underlätta systemutvecklandet.

Innehållsförteckning 1 INLEDNING...9 1.1 Problemintroduktion varför ämnet är intressant...9 1.2 Vad är textklassificering?...9 1.3 Disposition...9 2 PROBLEMDEFINITION...11 2.1 Målsättning med examensarbetet...11 2.2 Om den aktuella situationen...11 2.2.1 Krav på textklassificeringssystemet...11 2.2.2 Systemmiljö och datatillgång...12 2.3 Analys av uppgiften...12 2.4 Avgränsningar...13 3 NÅGRA METODER FÖR TEXTKLASSIFICERING...15 3.1 Maskininlärning för textklassificering...15 3.2 Terminologi...15 3.3 Att behandla och representera en text...16 3.3.1 Attributrepresentation i form av word-by-document-matris...16 3.3.2 Språkhantering stemming och stopping...17 3.4 Besvärliga saker med verkliga texter...17 3.5 Något om maskininlärares utdata...18 3.6 Utvärderingsmått...18 3.6.1 Precision, täckning och breakeven...19 3.6.2 Multipla klasser...19 3.7 Studerade maskininlärningsmetoder...20 3.7.1 Nearest-neighbor (knn)...20 3.7.2 Naiv Bayes...21 3.7.3 Klusterbaserade metoder...22 3.7.4 Supportvektormaskiner (SVM)...23 3.7.5 BCPNN...25 3.7.6 Några publicerade utvärderingar...26 3.8 Komplexitet och prestanda för studerade metoder...27 3.8.1 Träning...27 3.8.2 Körning...27 3.9 Att minska krav på träningsdatavolymer...28 3.9.1 Uncertainty sampling välj ut optimalt träningsdata...28 3.9.2 Transductive SVM...28 4 METODDISKUSSION OCH METODVAL...29 4.1 Val av klassificeringsmetod...29 4.1.1 Metodernas lämplighet i nyhetsapplikationen...29 4.1.2 Utvärderingskriterier...29 4.1.3 Motivering och val...30 4.2 Metod för algoritmutvärdering...31 5 ARBETSFÖRLOPP...33 5.1 Ställningstaganden och viktiga förändringar...33 5.2 Samarbete kring maskininlärningskomponenter...33 5.3 Prestandaoptimering...34 5.3.1 Optimering av realtidsanrop...34 5.3.2 Uppstart av systemet...34 5.3.3 Minskad tidsåtgång vid träning...34 6 PROTOTYP AV TEXTKLASSIFICERINGSSYSTEMET...37 6.1 Arkitektur...37 6.2 Förenklingar och avkall i första versionen...38

6.3 Genomförda integrationer...39 6.4 Gränssnittutformning...39 6.4.1 Klassificeringsgränssnitt...39 6.4.2 Träningsgränssnitt...40 7 RESULTAT OCH UTVÄRDERING...43 7.1 Diskussion kring gränssnittet med användare...43 7.2 Klassificeringskorrekthet matematisk utvärdering...43 7.3 Jämförelse med andras publicerade resultat...47 7.4 Analys av det konstruerade systemet...47 8 SLUTSATSER OCH REKOMMENDATIONER...49 9 KÄLLFÖRTECKNING...51

1 Inledning 1 Inledning 1.1 Problemintroduktion varför ämnet är intressant Den teknik som används för distribution av information är idag mycket lättillgänlig och integrerad i samhället, vilket lett till att informationsflödet blivit enormt. Många användare upplever att de översköljs av och måste kunna hantera mycket stora volymer text i många olika verksamheter. Behovet av metadata i form av informationsklassificering är nu större än någonsin när aktörer börjar integrera sina processer med varandra och utbyter data. Att manuellt strukturera dessa stora informationsmängder är inte bara tidsödande utan lämnar också stora utrymmen för fel och inkonsekvens. Sedan många år arbetas det med automatisk textklassificering både inom forskningsvärlden och för kommersiella tillämpningar. Att låta en maskin strukturera informationen går snabbt, och även om en viss felprocent uppstår kan det vara acceptabelt ställt i relation till de tidsbesparingar som görs. Textklassificering är ett område som är nära förknippat med maskininlärning och artificiell intelligens. Tekniker för lärande maskiner för exempelvis strukturering och metadatahantering för texter finns av varierande form sedan tidigare, som kommersiellt exempel kan det engelska företaget Autonomy nämnas. Inom artificiell intelligens finns många inlärningsmetoder som kan verka kryptiska och svåra att följa för en människa som använder dem. Därför är det viktigare än någonsin att de applikationer som utnyttjar sådana metoder har ett gränssnitt som är användbart och som gör att användaren känner sig trygg och vågar lita på att applikationen fungerar som den ska. Arbete som syftar till att kombinera verkliga tillämpningar av tekniker inom artificiell intelligens och användbara gränssnitt är av dessa orsaker mycket viktigt för att det någonsin skall leda till intressanta vardagstillämpningar. 1.2 Vad är textklassificering? En människa kan på tiondelar av en sekund avgöra om en text är skriven på ett visst språk, om den handlar om globala världsnyheter, sporthändelser, programmeringsteknik eller kultur, om den är intressant för läsaren eller ej o.s.v. Textklassificering är ett forskningsområde där syftet är att låta en maskin göra motsvarande avgöranden givet en text. Att klassificera en text innebär att texten tilldelas en eller flera egenskaper, vilka kan motsvaras av en klass. Innebörden av en klass kan vara till exempel sport, intressant innehåll för mig eller typiskt ärende för tekniska supporten. Problemet som ett textklassificeringssystem skall lösa är alltså att för en klass automatiskt kunna avgöra om en viss text bör tilldelas klassen eller ej. För att systemet skall kunna göra sådana avgöranden använder det sig oftast av någon inlärningsmetod som gör statistiska analyser av stora mängder text där klassificering redan är gjord och kan antas vara korrekt. Genom att jämföra texter som handlar om exempelvis sport med sådana som inte gör det kan en lärande maskin ställa in sig så att den med en viss grad av säkerhet kan skilja på sporttexter och andra texter. I kapitel 1 kommer jag att utförligt förklara hur textklassificering går till. 1.3 Disposition Denna rapport beskriver examensarbetet genom att först presentera målet, syftet och en analys av vad som med hänsyn till dessa behövde göras under arbetet. Sedan presenteras de metoder för textklassficering, maskininlärning och gränssnittsdesign som studerats och övervägts och utifrån denna presentation motiveras valet av metoder för respektive moment. Därefter beskrivs viktiga ställningstaganden som gjorts under examensarbetets lopp, det resultat som producerades i form av en prototyp samt en utvärdering av prototypen. Rapporten avslutas med en analys av resultat och utvärdering samt en diskussion kring nyttan av och potentialen för textklassificering i applikationsområdet nyhetstextklassificering. 9

2 Problemdefinition 2 Problemdefinition I detta kapitel redovisas de krav, målsättningar och förutsättningar som gällde för examensarbetet, samt hur jag utifrån det valde att avgränsa och fokusera uppgiften. 2.1 Målsättning med examensarbetet Syftet med examensarbetet var att utvärdera om ett automatiskt textklassificeringssystem kan användas hos en tidning som publicerar textmaterial på sin webbplats och som vill märka materialet med metadata. Målet med detta examensarbete var därför att göra en teoretisk utvärdering av ett fåtal (högst fem) metoder för textklassificering för den aktuella situationen, samt att utförligare beskriva och implementera en eller två av de lämpligaste metoderna för att göra verkliga tester av dess effektivitet. Målet var också att implementationen skulle innehålla ett gränssnitt användbart nog att användas som utgångspunkt för vidare tester och utveckling hos uppdragsgivaren. Den ursprungliga planen för examensarbetet var att använda en iterativ designprocess där de tilltänkta användarna fick vara delaktiga i gränssnittsdesignen enligt principer som contextual inquiry 1 och participatory design 2, där användarnas arbete studeras och där de får vara delaktiga i utformandet av prototyper på flera nivåer. Dock handlade det här om ett gränssnitt av begränsat omfång så designprocessen skulle bli relativt enkel. Tyvärr orsakade den nedåtgående konjunkturen under hösten 2001 en del nedskärningar i mediabranschen, så även hos tidningen. Det blev därmed svårare än planerat att få någon egentlig användarinblandning i designprocessen. Detta moment av arbetet fick därför byta fokus till att i huvudsak byggas på designriktlinjer från litteratur. Det gjordes också en avslutande diskussion med några användare för att få en bild av vilket första intryck de fick av textklassificeringsverktyget och dess användbarhet. Användarna utgjordes i första hand av de ansvariga för metadataprojektet på tidningen. 2.2 Om den aktuella situationen Den tilltänkta avnämaren för textklassificeringssystemet är en tidning som publiceras både i tryck och i webbformat. Artiklar för webbpublicering matas in i systemet av journalister, och godkänns sedan av redigerare för publicering på webbsidan. I början av mitt examensarbete höll tidningen tillsammans med Adaptlogic på att införa en mer utförlig metainformation kring sina artiklar. I samband med detta konstruerades även ett gränssnitt med vilket märkning av artiklar med metainformation (kallas i fortsättningen för klassificering) kan göras av journalisterna vid inmatningen av artikeln eller av redigerarna i samband med godkännandet. I den första versionen av publiceringsverktyget, vilken var den som användes under mitt arbete, görs detta genom att man väljer ett av åtta alternativ under geografi (t.ex. Stockholm, Sverige, Norden ) samt ett lämpligt antal av nitton val under ämnen (t.ex. Sport, Nöje, Krig & oroligheter ). 2.2.1 Krav på textklassificeringssystemet Examensarbetet skulle innefatta utformandet av ett verktyg som kunde fungera som stöd i det moment där journalister eller redigerare skall klassificera en artikel. När vyn för att välja t.ex. ämne och geografi visas, skulle verktyget se till att den redan var ifylld med ett förslag på ett lämpligt för den artikel som matats in, baserat på artikelns textinnehåll. Verktyget kallas därför i fortsättningen förslagsverktyg. En viss felprocent kommer alltid att finnas i ett automatiskt textklassificeringssystem, men är felet tillräckligt litet kan systemet ändå göra nytta. Om klassificeringen på sikt automatiseras helt så att den görs av systemet utan att ens först godkännas av användarna, kan tidsvinsten direkt vägas mot kostnaden i form av en viss felprocent. Mitt uppdrag begränsade sig dock 1 Wixon, Holtzblatt, Knox: Contextual design: an emergent view of system design. 2 Shneiderman: Designing the user interface. 11

2 Problemdefinition till genereringen av klassificeringsförslag och ett gränssnitt för det manuella godkännandet av dem, varför en analys av hur detta gränssnitt bör utformas också måste göras. För att ett förslagsverktyg skall tillföra något måste förslaget naturligtvis vara korrekt, så att verktyget hjälper snarare än irriterar användaren genom att ständigt föreslå fel och orsaka mer arbete än det gör nytta. Det måste också gå mycket snabbt att ta fram ett förslag för att inte användaren skall känna att man lika gärna kan läsa igenom den aktuella artikeln översiktligt och klassificera den manuellt. Det kan också vara bra om förslagsverktyget åskådliggör hur starkt det anser ett förslag vara. En sådan indikation kan vara till stöd för användaren i valet om verktygets förslag skall accepteras eller ändras manuellt. För att snabba upp användarens arbetsflöde är det viktigt att han eller hon mycket snabbt uppfattar hur verktyget klassificerat en text och inte behöver tolka en ointuitiv visualisering. De tilltänkta användarna av förslagsverktyget i den situation examensarbetet behandlar var ett fåtal journalister och redigerare vilka lätt skulle kunna läras använda det. Eftersom dessa användares huvudsakliga arbete består i arbete med det verktyg som skulle utökas med förslagsverktyget, skulle de sannolikt ställa stora krav på snabbhet och inte tolerera tidsfördröjningar eller avbrott. Systembelastningen på förslagsverktyget kunde tack vare den begränsade användargruppen förväntas vara mycket liten, sällan högre än något tiotal per minut, då det inte skulle användas från någon extern webbplats. 2.2.2 Systemmiljö och datatillgång Systemmiljön är en riklig blandning av plattformar och format. Tidningens miljö består av ett publiceringsverktyg i form av en webbapplikation i ASP och COM-objekt med en Oracledatabas för artikellagring. Förslagsgränssnittet skulle byggas för att kunna infogas i detta publiceringsverktyg. Adaptlogics miljö bestod av en tilläggsplattform skriven helt i Java, där ett API fanns att utnyttja från tidningens olika webapplikationer för intern och extern funktionalitet. Det var således lämpligt att skriva även förslagsverktyget i Java så att det kunde utnyttja viss funktionalitet från Adaptlogics plattform på ett enkelt sätt. Dock fanns artikelinnehållet lagrat i tidningens system och de artiklar som skulle klassificeras av verktyget matades in i detsamma, medan metadata för artiklar endast fanns tillgänglig i Adaptlogics plattform via Java-API:t. Under examensarbetet fanns en export av tidningens artikeldatabas tillgänglig i form av en SQL-databas för Microsoft SQL Server. På grund av det sätt som tidningen lagrar sina artiklar (t.ex. olika mallar, backup- och datastädningsrutiner o.s.v.) innehöll denna export inte samtliga artiklar utan bara en delmängd av artiklarna skrivna under september och oktober, vilket blev i storleksordningen 3400 stycken. Förslagsverktyget skulle ha två funktioner; träning och klassificering. För träningen skulle det krävas tillgång till stora mängder sammankopplade texter och metadata. Därmed skulle verktyget behöva ansluta parallellt till både Adaptlogics Java-API och tidningens artikeldatabas samtidigt under träningen. Vid klassificeringen skall tidningens publiceringsverktyg kunna leverera en text till förslagsverktyget och få tillbaka ett förslag på vilka klasser som vore lämpligast att tilldela texten. Därför krävs en lösning som medger att publiceringsverktyget, skrivet i ASP, kan använda förslagsverktyget. 2.3 Analys av uppgiften Baserat på en analys av de förutsättningar som beskrivits ovan var följande punkter vad som behövde genomföras under examensarbetet: Utred i detalj hur automatisk textklassificering kan göras Identifiera maskininlärningsmetoder som ofta förekommer inom textklassificering Utred hur de identifierade maskininlärarna fungerar Utred hur man utvärderar en textklassificerare och maskininlärares korrekthet Välj metod för textklassificering och maskininlärning 12

2 Problemdefinition Utforma gränssnittet för klassificeraren Tillverka en prototyp av textklassificerare och gränssnitt Utvärdera prototypen med avseende på klassificeringskorrekthet och gränssnitt 2.4 Avgränsningar Endast den maskininlärningsmetod jag efter de teoretiska studierna ansåg vara bäst lämpad skulle implementeras i en prototyp. En körbar prototyp för hela textklassificeringssystemet skulle implementeras, men vissa funktioner skulle lämnas för att tas hand om senare. Arkitekturen skulle därför vara gjord så att prototypen lätt skulle kunna utvidgas till ett mer fullständigt system. Under examensarbetet skulle det inte tillverkas funktionalitet för språkhantering som att göra om ord till grundform, ett moment som dock kan behövas i textklassificeringssammanhang för god prestanda. Språkhanteringskomponenter skulle endast användas i den mån redan existerande lösningar fanns tillgängliga. 13

3 Några metoder för textklassificering 3 Några metoder för textklassificering I detta kapitel presenteras grunderna inom textklassificering och i sammanhanget tillämplig maskininlärning. Det kan vara till nytta för förståelsen av den senare redovisningen av resultatet och diskussionerna kring detsamma. Beskrivningarna i kapitel 3.7 är bitvis mycket tekniska och kan läsas översiktligt av den som är mer intresserad av prototypen än algoritmdiskussionsdelen av arbetet. I detta kapitel kommer följande typer av maskininlärningsmetoder förklaras, för att i kapitel 4.1 tas upp i en jämförelse vilken utmynnar i val av metod att implementera. Nearest-neighbor-principer Supportvektormaskiner Bayesianska klassificerare Kluster 3.1 Maskininlärning för textklassificering Som nämndes i inledningen till denna rapport handlar textklassificering om att automatiskt tilldela egenskaper till en text. För att göra detta måste man börja med att representera texten på ett datalogiskt effektivt sätt. Denna representation kan sedan analyseras med hjälp av maskininlärningsmetoder, varav några beskrivs nedan. Genom att representera texter som en iakttagelse av världen i form av en mängd attribut och representera klasser som okända variabel vars sant/falskt-värde skall approximeras, kan textklassificering göras med hjälp av många olika maskininlärare. En typiskt maskininlärarsystem kan utifrån en mängd givna iakttagelser om världen uppskatta några eftersökta okända parametrar. Detta kan systemet göra genom att det före användning matats med ett stort antal iakttagelser om världen där den sökta parametern också är känd. På så vis kan maskininlärningssystemet, beroende på hur dess algoritmer är uppbyggda, approximera samband mellan parametrarna i iakttagelsen och de eftersökta parametrarna. Innan maskininlärningssystemet kan användas måste det matas med iakttagelser kombinerat med kända värden på de parametrar som senare kommer att behöva approximeras. Detta moment kallas för träning. 3.2 Terminologi I rapporten används en viss terminologi som är vedertagen inom maskininlärning och textklassificering. Nedan förklaras terminologin och vissa av grundkoncepten översiktligt, baserat på majoriteten av de källor som studerats. Texter som förekommer i klassificeringssammanhanget kallas dokument eller exempel. Exempel är en mer vedertagen term i maskininlärningssammanhang eftersom den är lämplig oavsett i vilket sammanhang inlärningsalgoritmen beskrivs. Termen träningsexempel används också och vilket innebär ett manuellt klassificerat exempel som kan användas som facit för träning och testning av algoritmer. Varje exempel som behandlas av en maskininlärningsmetod består på något sätt av attribut, även kallade features. Det angreppssätt till textklassificering jag använder här gör till att börja med ett attribut av varje ord. När det gäller klassificering talar man om positiva och negativa exempel, där ett positivt exempel innebär att ett exempel tillhör en klass och ett negativt att exemplet inte gör det. I den mest grundläggande formen handlar klassificering om binär klassificering, att välja huruvida ett exempel skall tillhöra en klass eller ej, t.ex. detta är en intressant text för användaren. I många sammanhang, så även i nyhetsapplikationen som studerats i detta examensarbete, kan exemplen tillhöra noll till många klasser. Då många maskininlärningsalgoritmer endast kan göra en binär klassificering av ett exempel till en klass, brukar tillvägagångssättet vara att 15

3 Några metoder för textklassificering bedöma tilldelningen av varje tänkbar klass för exemplet som en enskild uppgift, och en maskininlärare tränas för varje klass. 3.3 Att behandla och representera en text Att representera en text som en lång sträng är oftast opraktiskt i maskininlärningssammanhang. För att kunna använda någon maskininlärningsmetod måste texter kunna representeras på ett lämpligare sätt. Samtliga metoder som studerats under detta examensarbete använder sig av en serie attribut. Attributen fungerar som räknare för varje känt ords antal förekomster, och varje exempeltext representeras av sin speciella kombination av värden på räknarna. När det gäller textklassificering måste exemplen, d.v.s. texterna, förbehandlas för att på ett bra sätt kunna göras om till attribut. Sådant som skiljetecken, siffror och andra icke-ord väljer man ofta att rensa bort. Dessutom kan man vilja göra om ord till grundform eller ta bort informationsfattiga ord, vilket beskrivs senare i detta kapitel. 3.3.1 Attributrepresentation i form av word-by-document-matris Den allra vanligaste representationen av texter vid textklassificering är den så kallade vector space-modellen, där varje text motsvaras av en vektor i en rymd 3. Rymden spänns upp av en dimension per attribut, d.v.s. alla ord som förekommer i minst ett dokument i träningsmängden. Det typiska sättet att välja attribut är att efter borttagning av informationsfattiga ord och omformning av ord till grundform välja varje enskilt ord som ett attribut. Dessa vektorer kan sedan inordnas i en matris, kallad word-by-document-matris, där varje rad motsvarar ett ord (attribut) och varje kolumn ett dokument. I fortsättningen av rapporten används förkortningen WBD för denna matris. Man kan alltså på varje position i matrisen finna information om ett visst ords förekomst i ett visst dokument. Enklast att tänka sig är att räkna antalet gånger ordet förekommit i dokumentet, men andra typer av information kan lagras. Detta utvecklas ytterligare i kapitlen nedan. WBD-matriser används i alla metoder jag har undersökt. Orsaken till att WBDrepresentationen av data är så populär både för representation av text och som indata till maskininlärningsalgoritmer i andra sammanhang är förstås att dess generaliserade format gör att det blir lätt att konstruera inlärningsalgoritmer som är generella nog att användas i många sammanhang. Samtidigt kan man använda många olika inlärningsalgoritmer om data lagrats på detta sätt. En reparametrisering (se även kapitel 3.4), transformation av WBD-matrisen till en rymd med färre dimensioner, kan vara lämplig ibland. Vissa metoder såsom supportvektormaskiner klarar av en stor mängd attribut och inom textkategorisering anses de flesta orden ha relevans för klassificeringen 4. När reparametrisering är olämplig kan istället en rensning, feature selection, av WBD-matrisen vara lämplig. Enligt något mått väljer man då ut de ord som verkar innehålla minst information om dokumentmängden. Ett exempel på ett sådant mått är information gain, vilket går ut på att välja de ord med hjälp av vilka man mest distinkt delar upp dokumentmängden i sådana som tillhör en klass och sådana som inte gör det 5. 3.3.1.1 Viktning och ordräknare Då WBD-matrisen skall fyllas med innehåll är den enklaste varianten att inte räkna antalet förekomster, utan endast avgöra om ordet förekommer eller ej, så kallad boolesk viktning. Värdet för en position i matrisen blir då sant eller falskt (alternativt 0 eller 1) 6. Vid ordfrekvensviktning räknar man även antalet gånger ordet förekommer i respektive dokument 7. Här påverkar alltså dokumentens längd dess matrisrepresentation kraftigt. 3 Aas, Eikvil: Text Categorisation: a survey 4 Joachims: Text categorization with support vector machines: learning with many relevant features. 5 Aas, Eikvil: Text Categorisation: a survey 6 Aas, Eikvil: Text Categorisation: a survey 16

3 Några metoder för textklassificering Därmed måste maskininlärningsmetoden som använder matrisen kunna ta hänsyn till detta för att två dokument med kraftigt liknande innehåll men av olika längd inte skall riskera att anses som mycket olika. För att även ta hänsyn till hur unikt ett ord är sett över hela mängden av träningsdokument kan dess inverse document frequency användas 8 och multipliceras med dess frekvens ( term frequency ) i varje dokument. Innehållet i matrisen, kallat a ij för ord nummer i, dokument j, räknas ut enligt: a ij = f ij N log( ) n i där f ij är antalet förekomster av ordet i i dokument j, N totala antalet dokument och n i antalet dokument i vilka ordet i förekommer minst en gång 9. 3.3.2 Språkhantering stemming och stopping Eftersom exempelvis läsa, läste, läs är väldigt närstående varandra semantiskt kan det vara lämpligt att gruppera dessa. Detta görs med stemming, vilket innebär omvandling av ord så att de representeras enbart av sin stam. Eftersom sätt att böja ord varierar mellan språk krävs en stemmingalgoritm anpassad för det språk man arbetar med. En ofta förekommande stemmingalgoritm för engelska är Porters algoritm 10. Arbete med stemmingalgoritmer på svenska görs också och har visat sig förbättra resultaten i andra textbehandlingssammanhang 11. Vid textklassificering vill man naturligtvis på något sätt hitta gemensamma egenskaper och skillnader mellan dokument för att kunna förutsäga nya dokuments klasstillhörighet. Vissa ord är dock så vanligt förekommande att de inte kan användas för att hitta några samband, eller saknar informationsvärde av andra orsaker och man väljer därför i många sammanhang att ta ignorera dem när man bygger sin representation av dokumenten. Vilka ord som bör tas bort beror förstås på språk, sammanhang och hur man representerar dokumenten. Förfarandet med att ta bort ord på detta sätt kallas stopping. 3.4 Besvärliga saker med verkliga texter Vid inläsningen av texten behöver man någon representation för vad den handlar om. Man måste då välja hur omfattande analys av texten man vill göra. Den enklaste varianten är förstås att bara se texten som en mängd ord utan innebörd. En enklare utökning av denna variant är att räkna olika kombinationer av ord och fraser, där exempelvis tysk rodelåkare identifieras som ett attribut istället för att orden tysk och rodelåkare identifieras var för sig. Då man bygger en WBD-matris räknas dock enbart antalet förekomster av ord, d.v.s. man använder det förstnämnda synsättet, även kallat bag-of-words. Många maskininlärningsmetoder behandlar varje ord, d.v.s. rad i WBD-matrisen, fristående från de andra och kan därmed gå miste om mönster bland dokumentklassningen som bygger på kombinationer av ord. Naiv Bayes (se kapitel 3.7.2) är ett exempel på detta som har visat sig mycket effektiv trots detta förenklande antagande 12. Det har också visat sig att detta enkla bag-of-words-angreppssätt har varit ungefär lika effektivt som andra metoder som involverar lingvistisk analys eller domänkunskap 13. Att istället göra uttömmande sökningar på 7 Aas, Eikvil: Text Categorisation: a survey 8 Aas, Eikvil: Text Categorisation: a survey 9 Aas, Eikvil: Text Categorisation: a survey 10 Porter, M.F: An algorithm for suffix stripping. 11 Carlberger, Dalianis, Hassel, Knutsson: Improving precision in information retreival for Swedish using stemming. 12 Dumais, Platt, Heckerman: Inductive learning algorithms and representations for text categorization 13 Lewis: Naive (Bayes) at forty: the independence assumption in information retreival 17

3 Några metoder för textklassificering kombinationer av ordförekomster är dels svårare att modellera, och dels mycket beräkningstungt då alla kombinationer skulle behöva sökas igenom, eller åtminstone en stor del enligt någon lämplig avgränsning. En av de stora vinsterna med att använda bag-of-words är att man tack vare det förenklande antagandet att alla ord är fristående från varandra minskar beräkningsbehovet dramatiskt till en volym som går att hantera. Det finns emellertid sätt att behandla WBD-matrisen så att resultatet innehåller nya attribut som istället motsvarar kombinationer av ordförekomster 14. LSI, latent semantic indexing, är en metod för reparametrisering som bland annat syftar till detta. Genom en singulärvärdesdekomposition, SVD, rensas brus i WBD-matrisen ut och en ny matris innehållandes element som motsvarar en form av ordstruktur i dokumenten bildas. Dokumenten kan sedan jämföras med sina respektive kolumner i denna matris istället 15. I praktiska sammanhang medför förstås naturligt språk ytterligare svårigheter. De flesta språk böjer många ord på en mängd olika sätt, och sällan helt regelbundet. I sådana fall blir stemminguppgiften svårare och man riskerar att missa samband som egentligen finns. Det faktum att så många moment inom textklassificering beror på vilket språk man arbetar med medför förstås också vissa problem. Exempelvis är explicita stemmingregler för engelska är helt oanvändbara på franska texter. Därför måste en textklassificerare som riskerar att stöta på flera olika språk vara anpassad till en sådan uppgift. Några forskningsprojekt kring stemmingalgoritmer som är intressanta vid arbete med svensk text är Carlberger et al. 2001 16 om en svensk stemmer och Hedlund 2001 17, ett examensarbete vid NADA vilket syftade till att undersöka möjligheter att automatiskt konstruera stemmingregler oberoende av språk. 3.5 Något om maskininlärares utdata Många maskininlärningsmetoder levererar ett kontinuerligt utvärde, ibland med innebörden sannolikhet för att ett exempel skall tillhöra en viss klass. I de fall utvärdet indikerar någon form av styrka i påståendet att ett exempel kan tillhöra en viss klass, måste man omvandla detta till ett beslut huruvida exemplet skall tilldelas klassen eller ej. Man använder sig då av ett tröskelvärde för den minimala styrka som krävs för tilldelning av klassen (kallas thresholding). Lämpliga tröskelvärden beror förstås på sammanhang och tillgängliga exempel. Lewis och Ringuette 18 talar om en variant av den naiva Bayes-klassificeringsmetoden (se kapitel 3.7.2) kallad PropBayes som utökas till att tilldela klasser proportionellt mot hur ofta klassen förekommer i träningsdatat. Om X procent av träningsdatat tillhör klassen C, tilldelas kx procent av testdatat klassen C. Konstanten k används för att justera proportionaliteten. Genom att öka k ökar man sannolikheten att en viss klass skall tilldelas ett dokument. En proportionell tilldelning av klasser på detta sätt kan tillämpas vid alla metoder där utvärdet är kontinuerligt, eftersom man då kan välja var på skalan mellan maximal styrka i en positiv respektive negativ klass tröskeln för positiv respektive negativ klass skall placeras så att önskad proportionalitet uppnås. 3.6 Utvärderingsmått Då många maskininlärningsalgoritmer av olika orsaker ger kontinuerliga utvärden måste man ofta välja ett tröskelvärde eller någon annan inställning för algoritmen som gör att den kan användas för en binär klassificering. När det gäller just tröskelvärde för hur starkt algoritmen föreslår tilldelning av en klass innebär både ett högt och ett lågt värde risk för felklassificeringar. Ett för högt tröskelvärde gör att algoritmen kanske låter bli att tilldela 14 Aas, Eikvil: Text Categorisation: a survey 15 Aas, Eikvil: Text Categorisation: a survey. 16 Carlberger, Dalianis, Hassel, Knutsson: Improving precision in information retreival for Swedish using stemming. 17 Hedlund, Automatic construction of stemming rules 18 Lewis, Ringuette: A comparison of two learning algorithms for text categorization. 18

3 Några metoder för textklassificering exempel en viss klass, fast den borde ha gjort det. Ett för lågt tröskelvärde gör istället att algoritmen kanske tilldelar exempel en viss klass, fast den inte borde ha gjort det. 3.6.1 Precision, täckning och breakeven Man talar inom utvärdering av klassificeringsmetoder om termerna recall eller täckning andelen dokument från klassen C som av algoritmen också tilldelas C vid testning och precision andelen dokument från dem som vid testning tilldelats klassen C som faktiskt tillhör den 19. Täckning och precision blir alltså varandras motsatser med avseende på tröskelvärdets inverkan, och då man önskar så höga värden som möjligt på både täckning och precision blir man tvungen att välja det tröskelvärde som ger den bästa kompromissen mellan de två. Eftersom täckningen ökar med ett minskat tröskelvärde och precision minskar med detsamma, söker man efter den punkt där de båda är lika höga och kallar den för breakeven-point. Denna punkt används ofta vid jämförelser mellan algoritmer 20. För varje klass beräknas täckning och precision enligt: a = antal exempel korrekt tilldelade klassen C b = antal exempel felaktigt tilldelade klassen C c = antalet exempel från klassen C som ej tilldelats klassen C täckning = a/(a+c) precision = a/(a+b) 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Tröskel precision täckning Figur 1. Precisionens och täckningens beroende av tröskelvärdet, och hur kurvorna möts i breakevenpunkten. Figuren är en illustration och representerar inte resultat från en verklig maskininlärare. 3.6.2 Multipla klasser I många sammanhang vill man kunna tilldela exempel flera klasser och det är då intressant att utvärdera algoritmens prestanda över alla klasser eftersom breakeven som det beskrivs ovan bara räknas ut för en klass i taget. Micro-averaging och macro-averaging är två metoder för att utvärdera en algoritms klassificeringsprestanda då många klasser och många exempel är inblandade. Som framgår av formlerna nedan så premierar macro-averaging prestanda för varje kategori, oavsett hur vanligt förekommande den är. Micro-averaging premierar istället 19 Witten, Frank: Data mining. 20 Aas, Eikvil: Text Categorisation: a survey. 19

3 Några metoder för textklassificering prestanda per exempel, vilket gör att god prestanda på vanliga kategorier är viktigare än på ovanligare vid micro-averaging 21. Vid macro-averaging beräknas precision och täckning för varje klass, sedan tas medelvärdet över klasserna. Vid micro-averaging räknas istället precision och täckning ut en gång för alla klasser. Om antalet klasser är N, så gäller för macro-average: 1 precision = N a N i i = N a i + c i recall = 1 N a N i i = N a i + b i och för micro-average: precision recall i = 1 N i i = 1 = N N i = 1 a i + i i = 1 = N N a N i + a a i = 1 i = 1 b i c i 3.7 Studerade maskininlärningsmetoder Denna rapport tar upp några av de maskininlärningsmetoder som oftast förekommer i litteratur kring textklassificering. Samtliga metoder har studerats med avseende på algoritm för klasstilldelning, träningsmetod och kända utvärderingar med avseende på tids- och klassificeringsprestanda. Vissa metoder kan bara hantera klassificeringsproblemet för en klass i taget. Andra kan klara mer än så, men jag har ändå valt att bara studera samtliga utifrån enklassperspektivet för att kunna jämföra alla med varandra. Maskininlärningsmetoderna som tas upp här beskrivs för enkelhets skull ur ett textklassificeringsperspektiv snarare än på ett generellt plan för att underlätta för läsaren. 3.7.1 Nearest-neighbor (knn) Nearest-neighbor är en relativt enkel metod som går ut på att hitta exempel i träningsdatamängden som liknar det exempel som skall klassificeras. Detta gör man genom att definiera en rymd där varje attribut som används i träningsexemplen representeras av en dimension. På så vis kan varje dokument representeras i denna rymd som en punkt vilkens koordinater återfinns i exemplets attributmängd. Med hjälp ett avståndsmått kan man hitta punkterna för de träningsexempel som finns närmast ett oklassificerat dokument i attributrymden. Två intressanta avståndsmått för vektorer eller punkter i rymden som förekommer i litteraturen är euklidiskt avstånd och vinkel mellan vektorerna. I sin ursprungliga form innebär nearest-neighbor att man tilldelar det oklassificerade dokumentet samma klass som det närmaste träningsexemplet. En utvidgning av denna är k-nearest-neighbor, knn, där man väljer de k närmaste träningsexemplen i rymden och väljer den klass som förekom flest gånger för att få en stabilare funktion. En variant på denna är weighted average där man man ökar vikten för ett träningsexempel ju närmare 21 Yang: An evaluation of statistical approaches to text categorization. 20