Klustring av svenska texter P E T E R J O H A N S S O N Examensarbete Stockholm, Sverige 2006
Klustring av svenska texter P E T E R J O H A N S S O N Examensarbete i datalogi om 20 poäng vid Programmet för teknisk fysik Kungliga Tekniska Högskolan år 2006 Handledare på CSC var Hercules Dalianis Examinator var Stefan Arnborg TRITA-CSC-E 2006:008 ISRN-KTH/CSC/E--06/008--SE ISSN-1653-5715 Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC 100 44 Stockholm URL: www.csc.kth.se
Sammanfattning Att klustra texter är att automatiskt kategorisera en samling texter efter innehållsmässig likhet. Det vill säga att ur en mängd texter skapas ett antal delmängder i vilka texterna läggs efter ordlikhet. Detta examensarbete undersöker hur väl klustring fungerar då klustringen sker efter ordens grundform och nominalfraser i svenska texter. Två textsamlingar undersöks KTH News Corpus och Karolinska Institutets medicinska textsamling. Ur dessa två textsamlingar plockas nominalfraser och ordens grundformer ut som sedan klustras. KTH:s News Corpus klustras med hjälp av ett program utvecklat av doktoranden Magnus Rosell vid Nada, KTH. Textsamlingen från Karolinska Institutet klustras med det kommersiella verktyget Semio. Förbehandling av svenska texter ger bättre resultat för Semio än utan förbehandling.
Clustering of Swedish texts Abstract To cluster texts is to automatically categorise a collection of texts after similarity according to word content. It means that from a set of texts create a number of subsets in which the texts are put after similarity. This thesis investigates how well clustering works when clustering is based on the words base form as well as nominal phrases on Swedish texts. Two collections of texts have been investigated KTH (Royal Institute of Technology) News Corpus and a medical collection of texts from Karolinska Institutet. From these two collections of texts the nominal phrases and the words base forms are extracted. These extracted outputs are used to cluster the texts. KTH News Corpus is clustered using a programme developed by Magnus Rosell a graduate student at Nada, KTH. The collection of texts from Karolinska Institutet is clustered with the commercial tool Semio. The preprocessing of Swedish improves the results from Semio compared to without pre-processing.
Förord Jag har gjort detta examensarbete inom Språkteknologigruppen på Institutionen för Numerisk Analys och Datalogi (NADA) vid Kungliga Tekniska Högskolan i Stockholm. Min handledare har varit docent Hercules Dalianis vilken jag vill passa på att tacka för den hjälp och vägledning jag har fått. Mitt tack går även till övriga i språkteknologigruppen som har hjälpt till särskilt professor Viggo Kann som gjort denna uppsats möjlig och Magnus Rosell för all hjälp och råd jag har fått under arbetets gång.
Innehållsförteckning 1 Inledning 1 2 Bakgrund och tidigare arbeten 2 2.1 Bakgrund 2 2.2 Klustring. 2 2.3 Tidigare arbeten.. 2 2.4 Utvärderingsmått. 6 3 Utförande 8 3.1 Implementation 8 3.2 Klustring med Rosells program 9 3.3 Klustring med Semio 10 4 Utvärdering 12 5 Slutord 14 6 Litteraturförteckning 15 A Ordlista 17 B Nominalfraser 18 C Exempel 19
1 Inledning Uppgiften för detta examensarbete var att klustra svenska medicinska artiklar och texter åt Karolinska Institutet och Språkteknologigruppen på Nada, KTH med hjälp av Semio[18] för att sedan klustra samma material med hjälp Magnus Rosells klustringsimplementation[3] och utvärdera resultatet. Arbetet utfördes inom ramen för Infomat-projektet på NADA, som finansieras av Vetenskapsrådet. Magnus Rosell har tidigare inom språkgruppen på NADA undersökt klustring av svenska tidningsartiklar genom uppdelning av ord i ordstammar och ordled. I detta examensarbete undersöks klustring av svenska artiklar med hjälp av nominalfraser (se appendix) och lemmatiserade ord, vilket tidigare inte gjorts. Ett lemmatiserat ord är ett ord i dess grundform (normalform). 1
2 Bakgrund och tidigare arbeten 2.1 Bakgrund I dagens ökande informationsflöde behövs det verktyg för att kategorisera och dela upp texter efter innehåll. I bibliotek är böcker indelade efter kategorier, underkategorier och till slut i bokstavsordning för att göra det lättare för människor att hitta det de söker. Tidningar brukar vara sorterade på något sätt för att vara överskådliga, t.ex. inrikes-, utrikes-, ekonomi- och sportnyheter. Tänk dig Dagens Nyheter med artiklarna utan någon indelning, att hitta det man är intresserad av skulle vara tidsödande. Informationen på Internet är inte sorterad på något sätt utan för att hitta informationen man är intresserad krävs en sökmotor eller att man känner till adressen till den sökta informationen. 2.2 Klustring Med kategorisering menas att man låter föra dokument till på förhand uppgjorda kategorier, när man talar om automatisk kategorisering menas att man låter en dator göra denna uppgift. Klustring innebär att man låter datorn finna naturliga grupperingar (kategorier) bland t.ex. texter/dokument. Klustring lämpar sig alltså inte för exempelvis tidningar med förutbestämda kategorier. Kluster kan beskrivas på följande två sätt [9]. Element i ett och samma kluster skall uppvisa så stor likhet som möjligt, det vill säga dokumenten i ett kluster bör ligga nära varandra. Element i olika kluster skall uppvisa så stor olikhet som möjligt, det vill säga olika kluster bör ligga långt ifrån varandra. 2.3 Tidigare arbeten Datorstödda klustringsmetoder har förekommit sedan mitten av sjuttiotalet inom en mängd områden. Anledningen till att man började använda datorer var att det var tidskrävande att sortera in materialet man vill gruppera för hand. Givetvis finns det även områden där man vill upptäcka dolda strukturer i sitt material. Fram till och med i början av 90-talet så var informationssökning och klustring ett smalt forskningsområde som mest fick intresse från bibliotek och informationssökningsexperter. I och med Internets (World Wide Web) uppkomst, uppstod ett enormt behov av att söka information på detta medium varför forskningen kring informationssökning och klustring har ökat markant. Dokumentklustring har traditionellt i huvudsak använts som ett medel att förbättra sökmotorers prestation genom att förklustra hela korpuset [2]. En korpus är en textsamling (dokumentmängd) sammanställd för vetenskapliga undersökningar. Det vanligaste sättet att klustra textdokument är genom att jämföra dokumenten efter något likhetsmått. Det vill säga att två dokument ur samma kluster ska vara mer lika varandra än två dokument ur olika kluster. Hur dokumenten representeras och hur likhet mellan olika dokument definieras skiljer sig mycket mellan olika tillämpningar. 2
Vivisimo[10] är en sökmotor som funnits sen år 2000 som använder sig av klustringsteknik. Den tillverkar ett hierarkiskt kluster när frågan ställs av de 200 första träffarna, inte av hela dokumentsamlingen. Traditionellt sett har sökmotorer förklustrat korpus men då Internet inte är statiskt så är det inte optimalt att ha fördefinierade kluster. En annan sökmotor som tidigare använt klustring är Northern Light [11]. Sökmotorer som AltaVista och Google använder andra tekniker som sidrankning m.m. Alla sökmotorer innehåller dock alltid tre delar [5]: En spindel (eng. spider, crawler) som letar igenom nätet och hämtar hem sidorna. En indexerare går igenom sidan och indexerar innehållet (orden). En sökmodul som söker i indexet. Att klustra texter används inom informationssökningstekniken som ett led i att förbättra resultaten. De andra leden brukar vara borttagning av stoppord, stemming, viktning av ord, (t.ex. orden i titeln antas vara viktigare än andra etc.) skapa index och normalisering. Normaliseringen av texterna görs under indexeringen och stemming ingår i normaliseringen [3][7]. Dokumentlängden brukar också ofta normaliseras. Det förekommer många olika sätt att förbättra resultaten inom området. De stora sökmotorerna på Internet använder idag inte dessa metoder överhuvudtaget utan indexerar alla termer i dokumentet. Förespråkarna för detta pekar på enkelheten och att det bättre speglar syntaxen i sökfrågorna att indexera alla ord i texterna. Trots detta pekar all forskning på att t.ex. stemming förbättrar sökresultaten. Anledningen till att de stora sökmotorerna inte använder dessa metoder är den stora dokumentmängden, exempelvis Google lagrar ungefär 1,3 miljarder webbsidor[19]. Representationen av texter görs ofta med den s.k. Vektormodellen[1] (eng. Vector Model). Det måste påpekas att detta gäller för mindre sökmotorer som är väldokumenterade, då de säljs tills kunder. De stora sökmotorerna på Internet är betydligt mer restriktiva då det gäller att dokumentera och därmed avslöja sin teknologi. Texterna representeras som ordvektorer ofta sorterade efter bokstavsordning med ett index som beror på hur frekvent ordet är i texten. Varje dokument ges med andra ord av en vektor: d = ( w 1, j, w 2, j,, w t, j ) t antalet termer, j värdet på termen. Antalet dokument i korpuset är D och d D. Mängden av texter representeras i ett flerdimensionellt rum med lika många dimensioner som antalet ord i textmängden. Rummet spänns upp av ordvektorerna, men alla linjärkombinationer av ordvektorer ger inte upphov till en existerande ordvektor. Alla dimensionerna är dessutom inte likvärdiga. Trots detta betraktar man rummet på vanligt geometriskt vis och gör geometriska tolkningar vad gäller avståndet mellan ordvektorerna [3]. Inom informationssökning representeras frågor som ett (kort) dokument och jämförs sedan med dokumenten i korpuset för att hitta de mest närliggande dokumenten. Det finns många sätt att beräkna likhet mellan dokument, ett vanligt sätt är att beräkna vinkeln mellan dokumenten med hjälp av cosinus [1]. 3
d1 d 2 cos( d 1, d 2 ) = = d1 * d 2 d * d 1 2 Ju mindre vinkeln är desto mer liknar dokumenten varandra, denna metod kräver att vektorerna är normaliserade. I facklitteratur ersätts ofta cosinus med beteckningen sim ( d 1, d 2 ) där sim står för engelskans similarity (likhet). Bland andra klassiska representationer av texter finns Booleanska modeller och sannolikhetsmodeller där den Booleanska modellen anses vara den svagaste då den inte kan finna partiala samband [1]. Modellerna delas in i tre huvudgrupper teoretiska modeller, algebraiska modeller och sannolikhetsmodeller. I den teoretiska gruppen ingår den Booleanska modellen, Fuzzy set och extended Boolean men ingen av dessa mängd teoretiska modelleringsmetoder har blivit populär inom informationssökningsområdet [1]. Bland de algebraiska modellerna finns en generaliserad Vektorrymdsmodell (eng. Vector Space Model), Latent Semantic Indexing Model (LSI) och Neural Network Model. LSI är en metod som bygger på vektormodellen. Det man försöker göra är att gruppera ihop dokument som har många gemensamma ord, på detta sätt kan man hitta dokument med liknande innehåll även om man inte använder samma ord och termer. Huvudidén med LSI är att projicera varje dokument till ett lägre antal dimensioner med t.ex. Single value decomposition (SVD) [12]. Då man projicerar så kommer en del vektorer att inte bli särskiljbara och väljer man de nya basvektorerna lämpligt så kommer de stora skillnaderna att kvarstå medan de mindre skillnaderna att försvinna. På detta sätt kan man klustra korpus och även hitta synonymer t.ex. om man söker efter båtsbygge så kommer man antagligen hitta dokument om skeppsbygge eftersom många av orden i dokumenten troligen är lika. Single value decomposition (SVD) är ett av många namn på liknande metoder för att projicera mångdimensionella data till ett mindre antal dimensioner. Metoden är nära besläktad med bland annat egenanalys och spektralanalys [12]. En metod att minska antalet dimensioner ytterligare är att använda en approximation av LSI/LSA kallad Random Indexing [13]. LSA står för Latent Semantic Analysis och är detsamma som Latent Semantic Indexing. Tanken bakom Neural Network Model eller Neuronnätsmodellen är att försöka efterlikna en hjärnas uppbyggnad [4]. Ett artificiellt neuronnät består av ett antal noder som ska efterlikna hjärnans neuroner och vikter emellan dessa noder. När en nod skickar ut en signal mottas signalen av andra noder viktade via kopplingen mellan noderna, sedan fortsätter signalen att fortplanta sig från dessa noder osv. så länge inte signalstyrkan blir lägre än ett visst tröskelvärde [4]. Neuronnätsmodellen har inte blivit testad ingående på stora korpusar och har inte fått något stort genomslag inom informationssökningsområdet, sökmotorn Autonomy[15] bygger på denna teknik. Inom sannolikhetsmodellerna är Bayesian Networks dominerande. Ett Bayesiskt nätverk är en Directed Acyclic Graph (DAG). Inom denna modell finns en variant kallad Interference Network Model som blivit implementerad i Inquery Retrieval System [14]. 4
Klustring kan göras på många olika sätt, ofta delar man upp klustringsalgoritmerna i hierarkisk och icke-hierarkisk klustring. Figur 1. En enkel klassifikation av klustringalgoritmer [8]. Hierarkisk klustring innebär som namnet betyder att man skapar en hierarki av kluster. Denna hierarki kan man åskådliggöra som ett träd, där klustret högst upp i trädet motsvarar roten och innefattar alla andra kluster. Klusterna i den lägsta nivån motsvarar trädets löv och innefattar givetvis inga andra kluster. Det finns två typer av hierarkisk klustring. Vanligast är sammanfogande algoritmer (agglomerativa) där alla texter är varsitt kluster från början. Sedan slås klusterna samman iterativt nerifrån och upp om dessa uppfyller ett visst kriterium. Den mest använda algoritmen i denna kategori kallas Group Average Link. Det finns även uppdelande-algoritmer (divisiva). Då börjar man med ett enda kluster och med hjälp av ett utvärderingsmått delar man upp texterna i flera kluster iterativt. Uppdelande algoritmer arbetar alltså uppifrån och ner till skillnad från de sammanfogande. Med Monothetic i figuren menas algoritmer som bara tar med exempelvis titeln när de klustrar, medan Polythetic tar med mer information. Således ger den senare bättre resultat men är långsammare. Hierarkisk klustring tenderar ofta till att bli mycket beräkningsintensiv då det sker en fullständig uppdelning i olika kluster på varje nivå av hierarkin när den byggs upp. Klustringen kräver också mycket minne då man måste ha en avståndsmatris mellan varje dokumentpar i korpuset [6]. Dessutom kan det vara svårt att få en bra överblick över hierarkin om man inte har en väldigt liten hierarki [8]. Icke-hierarkiska algoritmer har som namnet antyder ingen hierarki utan klusterna ligger på en nivå utan någon inbördes ordning/relation. Dessa algoritmer är ofta mycket mindre beräkningsintensiva än de hierarkiska. Icke-hierarkiska ligger ofta mellan O(n) och O(n 2 ) i komplexitet medan de hierarkiska ligger mellan O(n 2 ) och O(n 3 ) [8]. 5
2.4 Utvärderingsmått Det är brukligt att utvärdera implementationer och nya arbeten även inom klustringsområdet. Det är svårt att avgöra om en klustring är bra, en utvärderingsmetod kan ge ett bra värde och en annan ett dåligt. Om man har en känd indelning kan man jämföra den aktuella klustringens uppdelning med denna. Detta kallas för yttre mått och de vanligaste är precision och täckning (recall) [1]. Precision = Täckning = antalet korrekta texter i klustret antal texter i klustret antalet korrekta texter i klustret totala antalet korrekta texter Ett annat mått är entropi, ju lägre entropi ett system har desto mer ordnat är det. En välordnad klustring är vad man söker [3]. För ett enskilt kluster beräknas entropin i detta examensarbete i likhet med Rosells [3] enligt: E j = - i p log p ij ij Där p ij är sannolikheten att text i i kluster j tillhör klassen (kända indelningen) i. Sannolikheten beräknas genom att dividera antalet texter som tillhör klass i i kluster j med totala antalet texter i klustret j. Den totala entropin för klustringen beräknas sedan som summan av de enskilda klustringsentropierna viktade med storleken på de enskilda klustren. m njej E kluster = n j=1 Där m är totala antalet kluster, n j är antalet texter i den enskilda klustren och n är totala antalet texter i korpusen. Ett annat mått som använts i detta examensarbete är standardavvikelse. Detta ger ett spridningsmått (jämfört med medelvärdet som är ett lägesmått) på avståndet mellan text och typen av text innehållsmässigt. Definitionen på standardavvikelse (s) för en enskild text är följande: s 2 = (t i t) 2 där t i är den enskilda textens värde och t värdet på kategorin i vilken t i ingår. 6
Saknar man en känd indelning kan man använda statistiska eller geometriska iakttagelser av uppdelningen för att utvärdera klustringen. Detta kallas då för inre mått. 7
3 Utförande I det här kapitlet förklaras de olika modulerna (programmen) som använts i detta examensarbete och hur de arbetar tillsammans. 3.1 Implementation Inputfiler NP- -Extraktor Granska Rosells klustrare Outputfiler Semio Figur 2. Kommunikationen mellan applikationerna och filerna. Figur 2 ovan visar ett enkelt diagram över kommunikationen mellan NP-Extraktorn som utvecklats inom ramen för detta examensarbete i programspråket Java och övriga program/filer. NP-Extraktorn använder Granska [17] för att extrahera nominalfraser (eng. nominal phrases) och lemmatiserade ord ur inputfilerna (indata). Ett lemmatiserat ord är ett ord i dess grundform, för en utförlig förklaring av nominalfraser se appendix. Granska är ett program för datorstödd språkgranskning som har utvecklas på KTH i Stockholm. Inputfiler i diagrammet nedan är filerna som ska bearbetas vilket är det första som läses in. Då programmet har läst in en fil måste denna fil analyseras (eng. parse) beroende på filtypen. De olika typer av filer som behövde analyseras i detta examensarbete var text- och HTMLfiler och Karolinska Institutets egna filformat för sina medicinska texter. Det som sker under analysen är att allt utom text som tillhör artikeln tas bort. Det som tas bort är taggar m.m.. När detta är klart skickas filen till en version av Granska som körs på en av Nadas servrar. Granska svarar genom att skicka tillbaka en XML-fil (Extensible Markup Language) där texten är grammatiskt granskad. Från denna fil extraheras nominalfraserna och de lemmatiserade orden. Outputfilerna består av Granskas XML-fil, en fil med nominalfraserna och en fil med de lemmatiserade orden. Nominalfraserna och de lemmatiserade orden kan även fås genom att anropa metoder i programmet vilket förenklade och optimerade klustringen med Rosells klustrare. 8
3.2 Klustring med Rosells program Magnus Rosells uppgift i sitt examensarbete[3] var att konstruera, analysera och implementera en klustringsalgoritm för textfiler. För detaljer kring detta arbete hänvisas till rapporten [3]. Då både denna och min NP-Extraktorn gjordes i Java medgav detta direkt kommunikation mellan programmen vilket förenklade arbetet. De texter som klustrats på är tidningsartiklar från KTH:s News Corpus som även användes av Rosell. Dessa filer är på html-format och efter att texterna som skulle ingå i klustringarna bearbetats (se kap. 3.1) gjordes flera olika klustringar. De olika klustringarna gjordes på följande: De lemmatiserade orden. Nominalfraserna. Kombinationen av dessa två. Kombinationen med dubbelt så hög vikt på nominalfraserna. Magnus Rosells behandling av de svenska texterna: 1. Ta bort html-taggar och dela upp i ord 2. Ta bort stoppord 3. Generera ordled och ta bort vissa av dem 4. Stemma orden 5. Ta bort låg- och högfrekventa ord i korpusen 6. Ta bort texter med få ord 7. Vikta ord i titel och fetstil 8. Vikta orden efter hur frekventa de är 9. Normalisera texterna 10. Genomföra klustringen 9
3.3 Klustring med Semio Karolinska Institutet (KI) har en stor mängd medicinska texter och artiklar skrivna på svenska. Tidigare har KI klustrat sin medicinska korpus efter orden i denna med Semio. Semio är ett paket av klustrings- och indexeringsprogram utvecklat av Entrieva[18]. Grunden i paketet utgörs av Semio Tagger som samlar in text från de filer som klustringen ska byggas på och extraherar fraser ur dessa filer. Dessa fraser anser Semio vara representativa för innehållet i texterna. Dessa filer kan hämtas från en stor mängd olika källor databaser [18]. Fraserna som Semio Tagger har extraherat kan visas grafiskt i Semio Map (se figur 3 nedan). I denna visas sambandet fraserna har till varandra och hänsyn tas till frekvens (vikt) i textmängden. Då Semio är utvecklat för engelska kunde den inte bearbeta de svenska orden utan dessa fick bli i samma form som i texterna, detta ger förstås inte en vidare bra kategorisering. Uppgiften i detta examensarbete blev att klustra korpuset efter nominalfraserna i titlarna, sammanfattningarna och nyckelorden. Semios behandling av de engelska texterna: 1. Läsa in filerna 2. Konvertera olika filformat 3. Frasextraktion (inkl. stopplistor m.m.) 4. Fraskategorisering 5. Frasviktning 6. Dokumentkategorisering 7. Dokumentviktning 8. Genomföra klustringen Arbetsgången för de svenska texterna är densamma, skillnaden är att filerna som Semio läser in är output-filerna från NP-Extraktorn. Semio skapar en s.k. CBF (Categorized Bundle File) som innehåller följande information om dokumentet: Dokumentets ursprungliga text Metadata associerade med dokumentet Extraherade fraser från dokumentet Kategorier och vikter av fraser och dokument Detta är all information som skapas om dokumenten. Tyvärr är informationen i CBF-filerna krypterade så det går inte att jämföra och utvärdera resultaten från Semio med resultatet från Rosells klustrare. Bilden nedan visar hur gränssnittet ser ut för Semio. 10
Figur 3. Skärmdump från Semio med resultat från examensarbetet. 11
4 Utvärdering Textmängden som klustrades med Rosells klustrare var 2500 nyhetsartiklar från KTH News Corpus, spridda över fem kategorier Ekonomi, Nöje, Sport, Inrikes- och Utrikesnyheter. Textmängderna klustrades fyra gånger med avseende på lemman, nominalfraser, lemman och nominalfraser och slutligen lemman och nominalfraser där nominalfraserna har givits dubbel vikt. Entropi Standardavvikelse Bara lemma 1.4556 0.0908 Bara nominalfraser 1.8004 0.1199 Lemma och nominalfraser 1.4334 0.1134 Lemma och nominalfraser med dubbel vikt 1.4983 0.1309 Tabell 1 resultat från klustring med nominalfraser och lemman. I tabell 1 ses att enbart lemman och lemman kombinerat med nominalfraser ger bäst resultat. Lemman kombinerat med nominalfraser ger marginellt lägre entropi men har däremot högre standardavvikelse. Klustringen med enbart nominalfraser ger en markant högre entropi och även högre standardavvikelse. Anledningen till detta borde vara att relativt mycket information i texterna försvinner när nominalfraserna extraheras. Att lemman ger bättre resultat än nominalfraser är inget förvånande då klustring efter lemman baseras på ords grundformer. Klustring efter grundformen är i en mening mer strikt än om klustringen skulle ha skett efter obehandlade ord i texterna, med detta menas att ändelser och tidsformer (presens, imperfekt m.fl.) försvinner och ersätts med grundformen i klustringen. Detta borde även vara anledningen till att entropin och standardavvikelsen är högre när klustringen görs på nominalfraser då betydelsebärande ord som substantiv klustras med ändelser och tidsformer. I nominalfraser ingår givetvis även prepositioner, konjunktioner osv. vilket ger ett brus i klustringen som återspeglas i högre entropi och standardavvikelse. En annan viktig faktor för resultaten är att i klustringen med lemman togs vanligt förekommande ord bort efter en stopplista, vilket inte kunde användas med nominalfraserna då dessa fraser skulle ha blivit obegripliga om ord togs bort i dem. Karolinska Institutets medicinska textsamling klustrades enbart på nominalfraser som extraherades från artiklarnas rubriker och nyckelord. Denna klustring gjordes med Semio vilken KI tidigare gjort en klustring med på textsamlingen utan att på förhand bearbeta texterna. Denna tidigare klustring gjordes på ord efter ord i texterna och behövde förbättras för att vara till någon hjälp för forskarna på KI att hitta dolda samband i texterna m.m. Dessvärre gick det inte att jämföra matematiskt de olika klustringarna som gjorts i Semio eller mellan Semio och Rosells klustrare. Trots det gick det så att säga visuellt avgöra att klustringen med nominalfraser i Semio var utan tvivel mycket bättre än den tidigare med 12
obearbetade ord. Detta faktum att det inte gick att jämföra resultaten från Semio före och efter förbehandlingen gjorde det omöjligt att få siffror på förbättringen som nominalfraser visuellt gav. Anledningen till att det inte gick att jämföra dessa resultat är att Semio krypterar sina filer, detta för att inte avslöja sin klustringsteknologi. Tid gavs inte till en klustring efter lemman vilket säkerligen skulle ha givit ett ännu bättre resultat. Dessutom var textsamlingen förorenad av främmande ord på andra språk vilket försämrade resultatet. 13
5 Slutord En av idéerna bakom klustring från början var att det kunde förbättra resultaten från sökmotorer, vilket känns naturligt att från en fråga leta upp det kluster som bäst överensstämmer med den specifika frågan. Dock har inte denna teknik visat sig förbättra resultaten nämnvärt, vilket inte behöver innebära att metoden ska uteslutas inom informationssökning i framtiden. Idag handlar mycket av klusterforskningen om att utveckla och förbättra möjligheten att hitta dolda samband och utforska texter, det är inom denna kategori detta arbete återfinns. Att hitta dolda samband i stora textsamlingar som den medicinska från Karolinska Institutet som undersökts i detta examensarbete är ett område som det kommer att forskas mycket på framöver. Förhoppningsvis har denna rapport inom detta intressanta område gett eller kommer att ge något för framtida forskning. Detta kan vara att hitta samband mellan vissa levnadsvanor och sjukdomar eller ärftliga faktorer. Dessa kan t.ex. undersökas från Karolinska Institutets världsunika tvillingregister eller i andra texter som Språkteknologigruppen på Nada, KTH och Rosell arbetar med. 14
6 Litteraturförteckning [1] R. Baeza-Yates & B. Ribeiro-Neto (1999), Modern Information Retrieval, Addison- Wesley, ISBN 0-201-39829-X [2] C.J. Van Rijsbergen (1979), Information Retrieval, Butterworths, http://www.dcs.gla.ac.uk/keith/preface.html ( 2003-04-15 ) [3] M. Rosell (2002) Klustring av svenska tidningsartiklar, Examensarbete (20p), Numerisk Analys och Datalogi, Kungliga Tekniska Högskolan, Stockholm, http://www.nada.kth.se/~rosell/exjobb/rapport.pdf ( 2003-04-15 ) [4] S. Haykin (1994), Neural Networks a Comprehensive Foundation 2 nd ed., Prentice Hall, ISBN 0-132-73350-1 [5] D. Stolpe (2003), Högre kvalite med automatisk textbehandling, Examensarbete (20p), Numerisk Analys och Datalogi, Kungliga Tekniska Högskolan, Stockholm, http://www.f.kth.se/~f92-dst/foo.pdf ( 2003-04-15 ) [6] G. Fung (2001) A Comprehensive Overview of Basic Clustering Algorithms, University of Wisconsin, http://www.cs.wisc.edu/~gfung/clustering.pdf ( 2003-04-15 ) [7] K. Bäckström (2000), Marknadsundersökning och utvärdering av indexeringsprogram, Examensarbete (20p) Institutionen för lingvistik, Uppsala universitet, http://stp.ling.uu.se/~matsd/thesis/arch/2000-006.pdf ( 2003-04-16 ) [8] G. M. Downs och J. M. Barnard (1995), Hierarchical and non-hierarchical Clustering., Daylight EUROMUG meeting, Stevenage UK., http://www.daylight.com/meetings/mug96/barnard/e-mug95.html ( 2003-04-23 ) [9] J. Dewe (1998), En prototyp för att klassificera dokument från WWW med avseende på genre och ämne, Examensarbete (20p), Numerisk Analys och Datalogi, Kungliga Tekniska Högskolan, Stockholm, http://www.d.kth.se/~d92-jde/examensarbete/dropjaw.html ( 2003-04-17 ) [10] Vivisimo Document Clustering, http://vivisimo.com ( 2003-04-21 ) [11] Northern Light Search, http://www.northernlight.com ( 2003-04-22 ) [12] A. Gabrielsson (2000), Dokumentrekommendationssystem och intranät, Examensarbete (20p) Institutionen för lingvistik, Uppsala universitet, http://stp.ling.uu.se/~matsd/thesis/arch/2000-002.pdf ( 2003-04-22 ) [13] M. Sahlgren SICS, http://www.sics.se/~mange/papers/clef02.ps ( 2003-04-22 ) 15
[14] J.P. Callan, W.B. Croft och S.M. Hardin (1992), The INQUERY Retrieval System, in Proceedings of the 3rd International Conference on Database and Expert Systems, http://www.ida.liu.se/labs/iislab/courses/irif/irif_extralitteraturlista.html ( 2003-04-23 ) [15] Autonomy Systems, http://www.autonomy.com/ ( 2003-04-22 ) [16] G. Colliander, Kurs i elementär svensk grammatik 2000, Institutionen för nordiska språk, Stockholms universitet, http://www.nordiska.su.se/personal/colliander-g/gram/ ( 2003-06-24 ) [17] Granska, Språkteknologigruppen, Nada, KTH, http://www.nada.kth.se/theory/projects/granska/popular.html ( 2003-07-03 ) [18] Semio, Entrieva, http://www.semio.com ( 2004-01-15 ) [19] Google, http://www.google.se ( 2004-10-02 ) 16
A Ordlista Lemma: Ett lemma eller lemmatiserat ord är ett ord i dess grundform. T.ex är cykel grundform till cyklar, cykeln, cyklarnas. Ordled: Med ordled menas en uppdelning av sammansatta ord i deras enskilda ord. De enskilda orden ingår sedan när klustringen utförs. Dock kan sammansatta ord delas upp som inte bör delas upp t.ex. upp-tagen och miss-förstånd. För att inte dessa ord ska användas kan även en stopplista för ordled användas. Stemming: Vid stemming tas böjningarna på orden bort. Stemming är en enklare form av lemmatisering som inte kräver lika mycket datorkraft. Dock riskerar ord med olika mening att få samma stam. Stoppord: Stopporden är så kallade vanligt förekommande icke-betydelse bärande ord. T.ex. och, eller, på, under, genom, med etc. Stopporden filtreras bort från texter med hjälp av en stoppordlista eller stopplista. Ofta ligger stoppordens andel på cirka 40% av orden i texter. Taggning: Med taggning menas att en tagg sätts på varje ord i texten som bearbetas och som beskriver vilken ordklass ordet tillhör. Detta är viktigt av flera anledningar t.ex. böjningar och då olika ordklasser ges olika vikt i texter. 17
B Nominalfraser Med termen fras avses vanligen en språklig enhet som består av mer än ett ord, men en grammatisk fras kan också bestå av endast ett ord. Varje fras består av ett huvudord och eventuellt en eller flera bestämningar. Ex på olika fraser: arga katter, katter med rivet skinn, katter med rivet skinn dansa tango, mycket trevlig oerhört länge. En fras bildar på något sätt en sammanhängande logisk helhet. När ett substantiv (eller pronomen) är huvudord i en fras, kallas frasen nominalfras. I litteraturen förkortas nominalfrasen NP efter engelskans Noun Phrase. Nominalfrasen är en viktig del av satsen, där den kan inta olika funktioner såsom subjekt, objekt m m. Speciellt med NP är att den kan byggas ut på olika sätt med många olika bestämningar till huvudordet. Bestämningarna i en nominalfras kallas attribut. I följande tabell finner du exempel på NP:n med olika attribut. Själva huvudordet är markerat med fetstil och attributen omarkerade: Attributtyper adjektivattribut adverbattribut prepositionsattribut genitivattribut infinitivattribut bisats relativsats: Nominalfraser en liten katt trädet därborta damen med hunden Kalles kaviar Konsten att ljuga Frågan vad han tjänade Katten som sitter i trädet Detta appendix är taget från Gunilla Collianders kurs i elementär svensk grammatik [16]. 18
C Exempel Texter kan skrivas på många olika format. Exempel på format är HTML för Internet, textfiler etc. Formatet som KI använder i sin medicinska korpus finns nedan:..la:swe..dt:artikel..si:spriline *** BRS DOCUMENT BOUNDARY ***..UI:37900..AU:Berleen, Göran..TT:Spri-studie om invandrares sjukvårdskonsumtion... I detta till synes kryptiska format genomfördes klustringen efter bl.a. TT vilket är titeln på artikeln. En HTML-fil ser ut enligt nedan: <html> <head> <title> Danskt stridsflygplan störtade i Nordsjön </title> </head> <body> Olyckan inträffade när planet var ute på ett träningsuppdrag över Nordsjön. </body> </html> 19
Då denna text bearbetas tas först HTML-taggarna bort och texten blir som nedan. Danskt stridsflygplan störtade Nordsjön Olyckan inträffade planet träningsuppdrag Nordsjön. Därefter skapas nominalfraserna och lemman se kap. 3.1. Dansk strid flygplan störta Nordsjön Olycka in träff plan träning uppdrag Nordsjön Då bearbetningen kommit hit genomförs steg som viktning av orden, borttagning av ord i texterna efter en stopplista. Dessa ord kan vara prepositioner, konjunktioner, hög- och lågfrekventa ord. När detta är genomfört klustras till slut textmängden. 20
TRITA-CSC-E 2006:008 ISRN-KTH/CSC/E--06/008--SE ISSN-1653-5715 www.kth.se