Klustring av svenska tidningsartiklar Clustering of swedish newspaper articles (Datalogi)

Storlek: px
Starta visningen från sidan:

Download "Klustring av svenska tidningsartiklar Clustering of swedish newspaper articles (Datalogi)"

Transkript

1 Klustring av svenska tidningsartiklar Clustering of swedish newspaper articles (Datalogi) Magnus Rosell Handledare: Viggo Kann Examinator: Stefan Arnborg 8 mars 2002

2

3 Sammanfattning En klustringsalgoritm för texter tar som indata ett antal texter och returnerar dem i grupper. Texterna inom varje grupp bedöms av algoritmen som lika till innehåll. I den här rapporten undersöks klustring av svenska nyhetstexter från webben. De språkspecifika metoderna stemming och ordledsuppdelning visas förbättra resultaten. Två algoritmer jämförs med varandra. Dessutom presenteras en ny variant av en av dem, kallad Word- Buckshot. Den visar sig dock inte förbättra resultaten. Abstract Clustering of Swedish newspaper articles A document clustering algorithm divides a set of documents into groups. The documents within each group is judged as similar in content by the algorithm. This thesis investigates clustering of Swedish newspaper articles posted on the Internet. It is shown that the language specific methods stemming and splitting words into parts improve the results. Two algorithms are compared. In addition a newvariant of one of them, named WordBuckhsot, is presented. It doesn t improve the results. 3

4 4

5 Tack till Viggo Kann (handledning och Stava) Johan Carlberger (stemming), Hercules Dalianis (tidningsvikter), Martin Hassel (KTH News Corpus) Vännerna Jakob von Döbeln, Gustaf Hast, Arun Kaul, Maria Ögren för deras villiga öra och rör(l)iga intellekt. 5

6 6

7 Innehåll 1 Inledning Motivering Klustringavtexter Klustringellerkategorisering? Korpus Uppgiften samt rapportens innehåll och struktur Representation Vilka ord är viktiga? Stemming eller grundform? Ordled Hur viktiga är orden? Tidningsartikelspecifik viktning Allmänna viktningsprinciper Normalisering av texterna Klusterrepresentation Projektion Möjligautvidgningar Informationimeningsbyggnad Färreordirepresentationen Namn och siffror Synonymer Representationsrummet Likhetsmått Klustrens egenlikhet Andra likhetsmått Likhetsmåttetsväsentlighet Klustringsalgoritmer Ickehierarkiska algoritmer AlgoritmenSinglepass Algoritmenk-klustring Hierarkiska algoritmer Agglomerative sammanfogande Divisive uppdelande Minaegnatankar Min invändning WordBuckshot Utvärderingsmetoder och mått Yttremått Precision och täckning Entropi och informationsvinst Inremått Likhetsmåttet som utvärderingsmått Andramått

8 6Resultat Korpusar Utrustning Representation Trunkeringavklustercentra Stemming Viktningsschema Ordled T idningsspecifikt k-mean Exempelkörningar Iterationskriterium Agglomerativ hierarkisk klustring Jämförelseavtrealgoritmer Rekommendatior Slutord 45 8 Litteraturförteckning 46 A Tabeller 49 8

9 Tabeller 1 Korpusar: antal artiklar Korpusar: antal ord Korpusar: entropin med avseende på tidningarnas klassificering Resultat från k-mean på korpus A1: artiklarnas fördelning Resultat från k-mean på korpus A1: viktiga ord (stemmar) Resultat från k-mean på korpus A1 (10 kluster): artiklarnas fördelning Resultat från k-mean på korpus A1 (10 kluster): viktiga ord (stemmar) Agglomerativ klustring, antal artiklar i klustren Förkortningar i tabellerna Måtten i tabellerna Trunkering Stemming Viktningsschema Orddelar med tf*idf-viktning Orddelar med tf*idf-viktning Tidningsspecifika vikter Klustring av enbart titlar Antal iterationer; k-mean Iterationskriterium baserat på förändring i egenlikhet; k-mean Jämförelse av algoritmer Jämförelse av k-mean och Bisecting k-mean

10 10

11 1 Inledning 1.1 Motivering Inget är mänskligare än att söka sortera saker. Inget är viktigare för vår överlevnad. Hela mänsklighetens historia har varit historien om de ökade kunskaperna i och genomförandet av sätt att dela upp världen i begripliga kategorier. Från samlarmänniskan som på ett medvetet sätt skilde på ätliga och oätliga växter till dagens kyl- och frysdiskar i de stora matvaruhusen går en krokig, men tydlig och viktig utvecklingslinje. För att bli allt bättre på att sortera har vi utvecklat en lång rad geniala hjälpmedel. Två av de mest lysande är skriftspråket och datorn. Med hjälp av båda har vi sorterat, strukturerat och klassificerat vår omvärld. Men båda har bieffekten att de producerar ännu mera vetande att sortera. Och hela vår strävan efter struktur utgör på det viset ett Sisyfosarbete. Att automatiskt försöka strukturera är ett naturligt steg; att till exempel med datorns hjälp dela upp texter i för människor tilltalande grupper. Vi grupperar själva texter på olika sätt. I bibliotek finns till exempel genreindelning och innehållsindelning, tidningar delar in sina nyheter i mer eller mindre accepterade klasser och så vidare. Men oftast finns det fler än en möjlig indelning av en mängd texter och oftast kan flera texter tänkas höra till flera olika grupper. En indelning gjord av en människa blir oftast inte lik en annans indelning av samma mängd texter. Detta är emellertid inte nödvändigtvis något dåligt. Varje indelning visar på någon form av struktur. Att ta del av någon annans indelning kan leda till nya insikter, samtidigt som det kan vara svårt att acceptera dennes indelningsgrunder. Detsamma gäller naturligtvis en dators indelning förutsatt att den på något sätt verkligen återspeglar texternas innehåll. Indelningar av texter kan bli föråldrade eller vara irrelevanta för den undersökning man vill göra. Nya texter passar kanske inte in i en gammal struktur eller förändrar synen på den. Men att göra en ny sortering är dyrbart; att sortera om en stor samling texter manuellt är i praktiken ogörbart. Ett verktyg som automatiskt sorterar texterna antingen efter eget huvud eller med styrning från användaren skulle vara värdefullt. Även om verktygets indelning skulle bli sämre än en människas skulle det vara värdefullt utan det skulle man i de flesta fall aldrig fått någon indelning. Tänk på all information som finns på Internet; den är omöjlig att gå igenom. Ofta är till och med svaret från en sökmotor för stort att överblicka. Man kan fråga sig vad man menar med att en indelning är bra. Detberor naturligtvis på vad man har för indelningsgrunder, om dessa är relevanta och om indelningen är konsekvent. I konsekvens är datorn överlägsen människan, indelningsgrunder måste människan stå för i båda fallen. Hur överför man på något sätt indelningsgrunderna och förmågan att utvinna fakta ur texterna till datorn? 1.2 Klustring av texter Med klustring menas automatisk strukturering av en mängd i kluster (grupper) efter likhet mellan elementen, så att element inom ett kluster är mer lika varandra än element tagna ur två kluster. Det finns olika typer av klustringsalgo- 11

12 ritmer. De vanligaste, varav några få kommer att studeras här, baserar sig på ett likhetsmått mellan elementen. Man definierar likhet mellan element och låter klustringsalgoritmen sedan med hjälp härav sortera mängden. Hur elementen representeras och hur likhet mellan dem definieras skiljer sig från tillämpning till tillämpning. Mätdata i en n-dimensionell kartesisk rymd representeras till exempel som n-dimensionella vektorer och olikhet definieras som kartesiskt avstånd. Hur representerar man texters innehåll och hur jämför man dessa representationer med varandra? Inom informationssökningsområdet brukar man representera texters innehåll med hjälp av förekomster av ord. För varje text skapar man en vektor där varje element har ett ord som index och ett värde beroende av hur många gånger ordet förekommer i texten. Ju mer frekvent ett ord är desto mer väsentligt är det för textens innehåll. Det är ett väsentligt antagande: En texts innehåll kan tillräckligt väl modelleras med hur ofta ord förekommer i den utan hänsyn till i vilka sammanhang de förekommer inom texten. Däremot bevarar man sammanhanget att orden förekommer i samma text. Likhet brukar definieras så att två texter är mer lika varandra ju fler ord de har gemensamt. Ett exempel på likhetsmått är skalärmultiplicering av ordvektorerna. De kluster som byggs upp består av en mängd texter och kan därför också representeras med en ordvektor. Deras ordvektorer blir en representation av innehållet i klustret. Text och kluster blir därmed också jämförbara och samma likhetsmått brukar användas mellan dem som mellan två texter. 1.3 Klustring eller kategorisering? Automatisk kategorisering innebär att man låter datorn föra dokument till på förhand bestämda kategorier. Klustring innebär att man låter datorn avgöra vilka särdrag som finns hos texterna och hur de utifrån dessa ska grupperas. Kategorisering lämpar sig då man har texter man vill föra in i en på förhand given struktur, klustring då man vill upptäcka strukturer man inte förut visste om. Båda metoderna kan vara informativa om man har en textmängd vars innehåll man inte känner; kategorisering för in texterna i en struktur man valt och klustring visar på en struktur i den givna mängden. Denna rapport behandlar klustring. 1.4 Korpus En korpus är en text- eller talsamling, som är sammanställd för vetenskaplig undersökning. Jag har använt KTH News Corpus, som är konstruerad av Martin Hassel (beskrivet i [10]). Den består av tidningsartiklar, nedladdade från nätet. Artiklarna ligger ordnande efter källa. Två stycken (DN och Aftonbladet) är dessutom ordnade efter typ av nyhet (till exempel DN Ekonomi). Jag har valt att arbeta med dessa eftersom de ger mig en på förhand bestämd indelning att jämföra mina resultat med. Från dem har jag byggt upp de fyra korpusar (DN, A1, A2 och A3) jag använder i min undersökning, se tabellerna 1, 2 och 3. 12

13 1.5 Uppgiften samt rapportens innehåll och struktur Den ursprungliga uppgiften för detta examensarbete var att konstruera, analysera och implementera en klustringsalgoritm för textfiler. Till min hjälp fick jag ett antal hjälpprogram, bland annat några som behandlar svenska texter. Jag har gjort examensarbetet inom gruppen för språkteknologi på NADA med Viggo Kann som handledare. Inom språkteknologigruppen har en korpus (KTH News Corpus) bestående av svenska nyhetstexter från webben samlats in. Därför blev det naturligt att använda delar av denna. Mitt arbete handlar alltså om klustring av svenska tidningsartiklar. Det verkar inte ha undersökts förut. Förmodligen beror det på att det finns så många olika områden att undersöka i språkteknologi att det helt enkelt inte hunnits med ännu. Jag har ägnat mig en hel del åt representationen av texterna eftersom det är vid denna som de specifikt språkliga egenskaperna kan användas. Här har jag haft tillgång till redan färdiga verktyg för att ta fram ords stammar och dela upp ord i ordled. Utöver att undersöka hur texterna lämpligen representeras har jag implementerat några klustringsalgoritmer och genomfört en jämförande studie av dem. Jag presenterar dessutom ett förslag på en ny variant av en algoritm och jämför även denna med de andra. Den här rapporten består av fyra delar. Den första utgörs av det här kapitlet som förklarar bakgrunden till och innehållet i rapporten. Den andra består av kapitlen 2 5 och är en genomgång och diskussion av de metoder och teorier kring klustring av texter som finns i förhållande till mitt eget arbete. Den tredje (kapitel 6) är en beskrivning av vad jag åstadkommit. Den fjärde, slutligen, (kapitel 7) innehåller några tankar kring vad som kan göras efter mitt arbete och vad klustring kan tänkas ha för framtida användningsområden. Sist i rapporten finns ett appendix som innehåller tabeller med resultat från körningar. 13

14 2 Representation Representation av texter behandlas i de flesta texter om informationssökning (eng information retrieval), se till exempel [1], [14] och kapitlet Word Sense Disambiguation and Information Retrieval i [11]. Inom informationssökningsområdet används den så kallade vector space model. I den representeras texter som ordvektorer, vektorer där orden, sorterade i bokstavsordning, är index och värdet beror av hur frekvent ordet är i texten och oftast i hela textmängden. d =(d 1,d 2,...) (1) där d D är en text i mängden av alla texter i korpusen som jag kallar D och d i är värdet för det i:te ordet, enligt alfabetet, i d. Hela mängden texter representeras på detta vis i ett mångdimensionellt rum med lika många dimensioner som antalet olika 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ånd mellan ordvektorerna. Man använder till exempel skalärprodukten mellan ordvektorerna som ett mått på närhet mellan dem. [1] (Se vidare kapitel 3.) Proceduren att skapa representationen kallas indexering och görs i förväg. Då en sökfråga ställs skapas en representation av den. Denna matchas mot de lagrade representationerna av texterna. I klustring behandlas en textmängd ofta för första gången och en representation har därför inte skapats i förväg. Är det många texter tar det lång tid. Man läser inte bara in texterna ord för ord, utan behandlar dem under tiden på många olika sätt. Målet är att få en bra avvägning mellan hur väl ordvektorerna representerar texten och hur mycket minne som används. Under indexeringen avgörs vilka ord som ska tas med och vilket värde respektive ord ska ha. Ju färre ord som tas med desto snabbare går en jämförelse mellan texter baserad på skalärprodukten. Ju bättre ordens värden avspeglar textens innehåll desto bättre blir klustringen. Indexeringen har tidskomplexitet O(w log(w olika )), därw är totala antalet ord i korpus och w olika är antalet olika ord i korpus. Detta eftersom man sorterar orden i bokstavsordning. Det är under indexeringen, eller förbehandlingen, av texterna som man kan använda den förhandskunskap man har om dem. Jag behandlar tidningsartiklar och vet därmed en hel del om dem; rubriken och de meningar som är markerade med fetstil är oftast viktigare än resten av artikeln. Dessutom vet jag att det är svenska texter. Därför använder jag verktyg för att ta fram svenska ords stammar och dela upp svenska ord i ordled. I detta avsnitt beskriver jag hur och i vilken ordning jag behandlar mina texter. Ett flödesschema för förbehandlingen visas i figur 1. Eftersom artiklarna är upplagda i html-form tar jag först bort html-taggarna. Samtidigt delar jag upp dem i ord, med antagandet att ord är bokstavskombinationer mellan avskiljare som blanksteg och skiljetecken. (A i figur 1) Här tar jag alltså bort alla siffror trots att mycket information kan finnas i dem. 14

15 A. Ta bort html-taggar och dela upp i ord B. Ta bort stoppord C. Generera ordled och ta bort vissa av dem D. Stemma E. Ta bort låg- och högfrekventa ord i korpusen F. Ta bort texter med få ord G. Vikta ord i titel och fetstil H. Vikta orden efter hur frekventa de är I. Normalisera texterna Figur 1: Flödesschema för förbehandlingen av texterna 2.1 Vilka ord är viktiga? Om man representerar texter enligt vector space model finns det många ord som inte rimligen kan säga något om en texts innehåll. De allra flesta texter innehåller till exempel ordet och. Därför sorterar man vid inläsningen ut dessa med hjälp en så kallad stopplista i vilken man skrivit upp alla ord man tror är mindre betydelsefulla. Jag skapade min genom att räkna hur många gånger varje ord förekom i alla DN-artiklar jag hade och välja dem som förekom oftast och som jag inte trodde var informativa. (B i figur 1) I en korpus kan det finnas ord som förekommer i väldigt många texter utan att för den skull ingå i stopplistan. Dessa ord delar inte in korpusen på något bra sätt. Därför tar jag bort ord som förekommer i fler än hälften av texterna. (E i figur 1) Ord som förekommer i riktigt få texter ger ett väldigt litet bidrag till likhetsberäkningen mellan dessa texter och andra. Men två texter som innehåller ett ovanligt ord blir genom detta lite mer lika varandra än utan det. För att vara på den säkra sidan tar jag bara bort de ord som förekommer i endast en text (dessa ger aldrig något bidrag vid likhetsberäkning), men man skulle antagligen kunna ta bort sådana som bara förekommer i både två och tre texter. (E i figur 1) Antagandet att texters innehåll kan representeras med hur ofta ord förekommer (se 1.2) ger att texter med få ord kvar efter förbehandlingen inte innehåller särskilt mycket information. Därför tar jag bort texter med få ord. (F i figur 1) Jag väljer att ta bort dem som har färre än tio ord (för min korpus A1 blir det till exempel en av 2500, för korpus DN 120 av 5044). Borttagningarna enligt ovan kräver att man sorterar orden efter frekvens. 15

16 Dessa sorteringar tar emellertid aldrig mer tid än sorteringen av hela korpusens alla ord i bokstavsordning, varför tidskomplexiteten trots detta är O(w log(w olika )). 2.2 Stemming eller grundform? Många ord har olika former och nära besläktade ord. Svenskan är ett inflekterande språk, det vill säga bildar ordformer genom att böja orden; lägga till ändelser. Det är bra om man kan ge flera ordformer samma representation. Då blir ordvektorerna inte så stora. Ett sätt vore att hitta ordens grundform, men då missar man att en del nära besläktade ord inte har samma grundform, till exempel cyklade och cyklingen. Inom informationssökningsområdet har det visat sig att stemming ger goda resultat [3]. Eftersom klustring liknar informationssökning har jag valt stemming framför grundform 1 och jag använder samma stemmer 2 som i [3]. (D i figur 1) Stemming överför ord till en stem som inte nödvändigtvis är den samma som ordets stam eller grundform. Så kan till exempel orden cyklade och cykel få samma stem cykl. Metoden försöker fånga ords släktskap. Ibland fås negativa effekter; orden tidning och tid kan få samma stem. När man konstruerar stemmern får man göra en avvägning mellan att föra många ord till samma stem och att få många stemmar. 2.3 Ordled Svenska ord byggs i högre grad än till exempel engelska upp av flera mindre ord. Då man på engelska, till exempel, talar om document clustering kan vi säga textklustring. Texter på engelska som innehåller document clustering blir därför lika både texter som innehåller document och texter som innehåller clustering. I det svenska fallet uppstår ingen sådan likhet. Det är antagligen dåligt eftersom texter som innehåller text eller klustring ibland är intressanta åtminstone som bakgrund till texter som innehåller textklustring. Rättstavningsprogrammet Stava [12] delar upp orden i ordled och kontrollerar ordleden för sig. Ordleden är antingen ord, som djur och sjukhus i djursjukhus, suffix eller prefix, som till exempel miss i missmodig. Jag delar upp alla ord med hjälp av Stava och lägger till textens representation ursprungsordet och dess delar, så att till exempel djursjukhus sparas som djursjukhus, djur och sjukhus. 3 (C i figur 1) På det viset kommer likheten mellan djursjukhus och dess två ordled att återspeglas i representationen. Ordledsuppdelning har, precis som stemming, negativa konsekvenser. Vissa delar av sammansatta ord har en helt annan innebörd än ordet de ingår i. Ordet missmodig genererar till exempel ordleden miss och modig. Därför blir texten det ingår i lite lik en text med ordet modig. Den blir dessutom lite lik en text med ordet misshandel eftersom det delas upp i miss och handel. Ytterligare en komplikation är att Stava inte alltid hittar den rimligaste uppdelningen av ord. Ordet budgetpropositionen, till exempel, delas upp i 1 Det vore intressant att undersöka vilket som ger bäst resultat, både i informationssökning och i klustring, men det hamnar utanför den här rapporten. 2 Stemmern är utvecklad av Johan Carlberger. 3 Iden att ta med ordleden i representationen är Viggo Kanns. Jag har inte sett några andra som försökt, i vare sig informationssökning eller klustring. 16

17 bud, get och propositionen! För att råda bot på en del av bekymren skapade jag en stopplista för ordled på samma sätt som jag skapade min vanliga stopplista (se 2.1). Jag valde bland de mest frekventa ordleden i alla mina DN-artiklar och försökte ta med dem som inte var betydelsebärande eller uppenbart dubbeltydiga. Min implementation gör det möjligt att kontrollera ordleden mot denna eller ej. Dessutom stemmas de genererade ordleden och kontrolleras mot den vanliga stopplistan. Förhoppningsvis är de positiva effekterna av att ta med ordleden större än de negativa. Det undersöks i kapitel 6. Visst är djur och sjukhus nära förknippade med djursjukhus, men de borde få mindre uppmärksamhet i sammanhanget. Därför har jag gjort det möjligt att ge ordleden det genererande ordets vikt multiplicerad med en ordledsfaktor. Att dela upp orden i ordled resulterar i fler ord än man hade från början; raka motsatsen mot större delen av förbehandlingen. Förhoppningsvis blir inte antalet nya ord som uppkommer så stort eftersom många av ordleden står som ensamma ord på andra håll i texten och korpusen. Resultatet av att dela upp ord i ordled skulle säkert bli bättre om uppdelningen var bättre. Det finns en prototypversion av programmet Stava som försöker hitta den rimligaste uppdelningen av ord i ordled. Jag har tyvärr inte hunnit prova den. 2.4 Hur viktiga är orden? Olika ord är olika viktiga i en text och en textmängd. Man talar om viktning av ord; ett försök att återspegla hur viktiga de är i sammanhanget. Redan i föregående avsnitt talades om viktning av ordleden i förhållande till ordet de ingick i. I den andra avdelningen av detta stycke presenteras några allmänna principer och antaganden vad gäller viktning av ord i en korpus. Den första avdelningen behandlar mera uppenbara skillnader som fås ur texternas struktur, i mitt fall tidningstexter Tidningsartikelspecifik viktning Tidningsartiklar är ofta skrivna efter den så kallade löpsedelsmodellen. Det viktigaste står först; titeln och ingressen är viktigare än de följande styckena och varje stycke är viktigare än de som kommer efter. [7] I KTH News Corpus finns taggar för fetstil och artiklarnas titlar. Med hjälp av dessa har jag gjort det möjligt att vikta titel och fetstil i förhållande till resten av texten. (G i figur 1) Ingresser är ofta skrivna med fetstil och om ett ord skrivs med fetstil brukar det oftast betyda att det anses viktigt. Jag har inte tagit hänsyn till att styckenas betydelse minskar. För att få några ungefärliga värden att prova med har jag sneglat på ett textsammanfattningsprogram [5] [6]. Det har vikter för meningar i titel och fetstil som är anpassade för tidningsartiklar. Jag provar med dessa vikter trots att jag viktar ord istället för meningar. 17

18 2.4.2 Allmänna viktningsprinciper Det finns två allmänna viktningsprinciper som brukar användas inom informationssökningsområdet. Den ena baseras på frekvensen av ordet inom texten; man tänker sig att ett ord som förekommer många gånger i texten är viktigare för dess innehåll än ett ord som förekommer få gånger. Den andra principen baseras på frekvensen i hela korpus. Om ett ord förekommer relativt få gånger i korpus har det stor urskiljningskraft två texter som delar ett ovanligt ord är antagligen mer lika varandra än två texter som delar ett vanligt ord. Ett ord som förekommer i många texter ger inte så mycket information om hur var och en av dessa texter förhåller sig till övriga i korpusen. De två vikter man tar fram enligt dessa principer kallas ordfrekvensen,tf(eng term frequency), och den omvända textfrekvensen, idf (eng inverse document frequency). Den slutliga vikten för ett ord i itextj D blir sedan produkten av dem (H i figur 1): vikt ij = tf ij idf i (2) där tf ij = ordfrekvensen för i:te ordet i j:te texten (3) idf i = omvända textfrekvensen för i:te ordet i j:te texten (4) Vikterna lagras i ordvektorerna och det är dessa värden som används när man beräknar likhet. De båda vikterna finns i flera varianter. Här följer några ordfrekvenser som visat sig vara bra [8]. där f ij tf ij = K +(1 K) maxf j (5) tf ij = log 2(f ij +1) log 2 (length j ) (6) f ij är hur många gånger ord i förekommer i text j maxf j är hur många gånger det ord i text j som förekommer flest gånger förekommer length j är antalet olika ord i text j K [0, 1] är en faktor som anger en minsta vikt på ett ord och hur stort avseende man fäster vid hur många gånger det förekommer i texten Både dessa varianter på tf-vikten ökar med antalet gånger ordet förekommer i texten, men de ger inte ett ord som förekommer 20 gånger 20 gånger högre vikt. De genomför ett slags normalisering. Detta har visat sig betydelsefullt [14]. Följande varianter av omvänd textfrekvens har använts med gott resultat [8]. idf i = log 2 ( n )+1 n i (7) idf i = log 2 ( maxn )+1 n i (8) idf i = log 2 ( n n i ) n i (9) 18

19 där n i är hur många texter ord i förekommer i och maxn är hur många texter det ord som förekommer i flest förekommer i. De här varianterna av idf-vikten har sitt maximum för ord som förekommer få gånger i korpus och avtar med hur många gånger orden förekommer. De ger alltså ord som har stor urskiljningskraft hög vikt. I [16] väljer de att enbart vikta med tf-vikten efter preliminära resultat som tyder på att det är bättre. De använder dock en annan tf-vikt än jag. Man skulle naturligtvis prova flera olika, men det har jag inte haft tid till. Jag har inte undersökt de allmänna viktningsprinciper som beskrivits i detta avsnitt utan valt efter framställningen i [8]. Som tf-vikt använder jag (5) med K satt till 0.5 och som idf-vikt (8). 2.5 Normalisering av texterna I förra avsnittet beskrevs hur man i tf-vikten tar hänsyn till att ett ord som förekommer många gånger inte nödvändigtvis är mycket mer väsentligt i representationen av textens innehåll än de som förekommer få gånger. Detta genomfördes genom ett slags normalisering av ordfrekvenserna inom texten. Men texternas ordvektorer har olika längd och tf-vikterna multipliceras med idf-vikterna, varför summan av olika texters ordvektorer blir olika. Det ger en obalans mellan korta och långa ordvektorer; en text med lång ordvektor får oftast en högre totalvikt (summan av alla dess vikter). På det viset ger man oftast långa texter högre vikt än korta, eftersom långa texter oftast får långa ordvektorer, men en lång text är inte nödvändigtvis viktigare än en kort. Därför normaliserar (I i figur 1) man en gång till och den här gången väljer man (av skäl som framkommer i kapitel 3) att normalisera ordvektorerna till enhetslängd. d = d d (10) där d D och. är kartesiska normen. Denna normalisering brukar vara inbyggd i likhetsmåttet, men jag väljer att göra det redan här eftersom likhetsberäkningen på så vis tar mindre tid. 2.6 Klusterrepresentation Klustringsalgoritmerna (se kapitel 4) bygger upp kluster, grupper av texter. Dessa representeras även de som ordvektorer, vilka beror av ordvektorerna för de ingående texterna. Hur detta beroende ser ut kan variera. Jag har valt att använda centroider, det vill säga varje ord i klustrets ordvektor får som vikt medelvärdet av vikten för det ordet i alla texternas ordvektorer. Medlet kan vara antingen medianen eller det aritmetiska medelvärdet. [17] Jag har valt det senare (se kapitel 3): c = 1 d (11) D c d D c där ordvektorerna adderas komponentvis. Jag normaliserar inte klustrens ordvektorer. Anledningen framkommer i kapitel 3 och 5. Klustrens ordvektorer blir oftast väldigt långa i jämförelse med texternas, eftersom antalet olika ord i flera texter nästan jämnt är fler än i en av texterna. 19

20 Klustrens representation byggs inte upp som texternas. Ordvektorerna (centroiderna) baseras inte på förekomst i klustret direkt utan på förekomsten i texterna som ingår i klustret. Man skulle kunna tänka sig en representation baserad enbart på hur orden förekom i klustret, men klustren är tänkta som representationer för mängden av texter de innehåller. Kanske skulle dock en kombination av dessa synsätt ha en positiv effekt. I [9] konstateras att klusterrepresentationer beräknade som medelvärden av ingående texter bygger på att alla texterna i klustret är lika representativa för klustret. De föreslår att man kan ge texterna en vikt vid medelvärdesberäkningen beroende på hur långt ifrån klustercentroiden de befinner sig (alternativt hur lika de är klustercentroiden). Denna tanke finns också i [4]. I avsnitt 2.7 beskrivs trunkering som verkar kunna uppfattas som just detta. I [4] presenteras en så kallad cluster digest av varje kluster för användaren. Denna består av både de mest förekommande orden och de mest centrala texterna i klustren. Detta har jag tagit efter. I resultaten från mina klustringar presenteras klustren med de mest förekommande orden och texterna i ordning efter likhet till centroiden med den mest lika först. Ytterligare en aspekt tas upp i [18]. Där presenteras en klustringsalgoritm, kallad Word-intersection Clustering, där klustren byggs upp bland annat beroende på hur många ord som är gemensamma för texterna inom klustret. En tanke utifrån detta är att även i de vanliga algoritmerna på något sätt ge ord som förekommer i många texter i klustret högre vikt i klustrets ordvektor; en slags textfrekvensvikt inom klustret. 2.7 Projektion Det här kapitlet har till stor del handlat om att minska antalet ord i ordvektorerna för (eller representationerna av) texterna. Varje steg kan ses som någon form av projektion. Projektionen ska helst minska antalet dimensioner så att jämförelsen av ordvektorerna tar mindre tid och lagringsutrymmet blir mindre. I [16] jämförs två tekniker för att minska antalet dimensioner ytterligare. Det här avsnittet baseras, då inget annat anges, på den artikeln. Med en stopplista reducerar man till exempel antalet dimensioner för alla ordvektorer. Detta kan kallas global projektion eftersom man tar bort samma ord ur alla texter; alla texter projiceras på ett och samma underrum till det ursprungliga. Med lokal projektion menas att man inom varje text tar bort vissa ord så att de projiceras på var sitt eget underrum till det ursprungliga. Fördelen med global projektion är att texterna blir helt jämförbara. Fördelen med lokal är att projektionen blir anpassad till respektive text. Den vanligaste tekniken för lokal projektion är att vikta ordvektorerna enligt viktningsprinciperna i och därefter bara spara de t termer som har högst vikt. Detta kan kallas trunkering. Texternas ordvektorer är, emellertid, oftast inte så långa att trunkering till 50 ord per text (se nedan) gör någon större skillnad i längd. 4 Däremot kan ordvektorerna för klustren bli väldigt stora. Därför brukar man nöja sig med att trunkera klustrens ordvektorer. Ett sätt att åstadkomma global projektion är att överföra texterna till ett ortonormerat rum med hjälp av Latent Semantic Indexing (LSI), vilket är en 4 I mitt fall gäller det tidningsartiklar som har i genomsnitt 193 ord per text [10]. När man tagit bort stoppord återstår oftast mellan 25 och 100 ord per text. 20

21 tillämpning av singulärvärdesfaktorisering (SVD). Denna teknik ordnar dimensionerna. Väljer man de l lägsta garanterar den att man har gjort den optimala dimensionsreduktionen med avseende på minstakvadratavstånden till den ursprungliga textrepresentationen. I [1] beskrivs denna teknik utförligare. LSI är till skillnad från trunkering mycket tidskrävande. I [16] visas att båda teknikerna inte avsevärt försämrar klustringsresultaten. Deras rekommendation blir trunkering till ungefär 50 ord per kluster. I kapitel 6 undersöker jag vad som passar bäst för mina texter. 2.8 Möjliga utvidgningar Man skulle kunna införa mycket information i representationen av texterna utöver de ordvektorer som beskrivits här. Att lägga till mer information tar oftast mer tid i anspråk till representationsbyggandet. Dessutom kräver det mer minnesutrymme och får till följd att likhetsberäkningen blir långsammare. Den eventuella förbättring man får av att utvidga representationen måste naturligtvis vägas mot detta. Det går också att på fler sätt än de som beskrivits minska antalet använda ord. Även här kommer förbehandlingen (representationsbyggandet) att ta längre tid. Detta avsnitt beskriver några tänkbara förändringar av representationen Information i meningsbyggnad Det finns information i meningsbyggnad; ord får olika betydelse beroende på hur meningen de förekommer i är uppbyggd och var i den de står. Dessutom finns information i förhållandet mellan meningar och stycken i texten. Allt detta bortser man ifrån då man använder den inom informationssökning traditionella representationen bestående av ordvektorer. Det finns flera sätt att försöka utvinna en del av informationen i meningsbyggnaden. Ett exempel är algoritmen Phrase-Intersection Clustering i [18]. Den bygger upp ett suffixträd för alla texterna i korpus och jämför med hjälp av det alla texter med avseende på vilka ordföljder som ingår i dem. Ett sätt att utvinna information ur meningsbyggnaden i den vanliga textrepresentationsmodellen (vector space model) är att även räkna förekomster av ord-n-gram, det vill säga ordföljder av n stycken ord. I [13] presenteras en jämförelse av indexering med ord-5-gram och indexering med enbart ord. Ord-5- grammen gav ett bra resultat. Undersökningen gäller dock informationssökning och orden hade inte stemmats Färre ord i representationen Det finns många olika sätt att minska antalet ord i korpusen. En vanlig variant är att som i [16] bara ta med substantiv. För att välja ut dem måste man ha ett verktyg för att hitta olika ordklasser. Sådana kallas ordklasstaggare (eng part-ofspeech-tagger) och skulle också kunna användas för att utvinna mer information om meningars struktur. Jag har bara trunkerat klustercentroiderna. Man borde också prova att trunkera texternas ordvektorer. Kanske kan texterna representeras bra med väldigt få ord. Det skulle också göra likhetsberäkningen snabbare. 21

22 Ett annat sätt att minska antalet ord vore att först summera texterna med en textsummerare och därefter bygga representationen. I så fall får man vara försiktig så att man inte förkortar texten för mycket så information försvinner Namn och siffror Jag har, trots att de säkert bär på information, bortsett helt från siffror (se inledningen till det här kapitlet). Om man ska ta med siffror måste man veta vad de beskriver (vilken enhet de avser). Ett ensamt tal säger ingenting. För att ha någon nytta av siffror behöver man följdaktligen analysera texten mer, till exempel med en ordklass-taggare. Namn är antagligen också väsentliga för en text man skulle gärna ge dem högre vikt. Så kallad named entity tagging hittar namn i texter och avgör vad för något de namnger (en plats, tidpunkt, person och så vidare). En annan variant är att ha en lista med namn. Man bör emellertid passa sig för att dela upp namn i ordled. En text som handlar om herr Lindholm behöver ju inte nödvändigtvis ha något att göra med texter om lind och holm. Det kan man undvika med hjälp av en lista med namn eller med hjälp av named entity tagging Synonymer Då man bygger upp textrepresentationen skapar man vektorer som har orden i alfabetisk ordning som index och där värdena är vikten man tilldelar ordet i texten. Man kan betrakta texternas representationsvektorer som raderrna i en matris. Kolumnerna i denna beskriver i vilka texter respektive ord förekommer i. I själva klustringen jämför man raderna (texternas representationer) med varandra genom att skalärmultiplicera dem. Man kan naturligtvis, på motsvarande sätt, jämföra orden utifrån vilka texter de förekommer i genom att skalärmultiplicera kolumnerna i matrisen. Detta brukar användas för att skapa en tesaurus (synonymordlista) baserad på korrelation av ord inom en textsamling. Den kan användas för att utvidga en sökfråga (så kallad query expansion), så att man tar med ord som brukar förekomma tillsammans med dem som ingår i frågan. Ett sätt att generera en tesaurus är att klustra orden utifrån vilka texter de förekommer i. [11] En tesaurus kan också beskrivas genom en ord-ord-matris där varje värde är likheten mellan de två orden beräknad med ett likhetsmått mellan deras respektive textvektorer. Varje ord blir med denna metod mer eller mindre likt varje annat ord i korpus. Med hjälp av en tesaurus skulle man kunna utvidga alla texterna med ord som är synonyma med ord som ingår i dem. En annan variant vore att föra samman synonyma ord till ett enda (de som ingår i ett ordkluster till exempel). Det förra sättet skulle öka antalet ord i texterna, medan det senare skulle minska det Representationsrummet Ordvektorerna befinner sig alla i samma w-dimensionella rum, där varje dimension motsvarar ett ord i korpusen. De befinner sig bara i en 1 2 -del av rummet w eftersom ordvektorernas element bara antar positiva värden. 22

23 Texter representeras bara positivt med de ord som förekommer i dem aldrig negativt med ord som inte förekommer i dem. Men då en människa beskriver något använder hon ofta negativ bestämning, till exempel: den här texten handlar om insjöar men inte om fiske. Hur skulle man kunna få med något sådant i textrepresentation? Och skulle det vara bra? Att lägga till negativ vikt på ord som inte förekommer i en text kräver något att jämföra med. Man skulle kunna jämföra med hela mängden texter. Om två ord brukar förekomma tillsammans och bara det ena ingår i en speciell text tyder det på att den texten är annorlunda den behandlar bara det ena av de två ämnena och borde få en negativ vikt på det andra. Detta resonemang kräver att man fört samman synonymer, men även utan det skulle det kunna vara värt ett försök. Ett annat sätt att införa negativ bestämning är att jämföra kluster med varandra. Varje kluster har ett antal ord som beskriver det. Till dessa skulle man kunna lägga ord ur de andra klustren med negativ vikt för att på så sätt betona att dessa ord inte har med det klustret att göra. Det kanske skulle räcka att titta på det oftast förekommande orden i klustren. Man måste antagligen undersöka hur man ska vikta dessa ord. Vikterna ska kanske vara ganska små till absolutbeloppet i förhållande till de positiva vikterna. 23

24 3 Likhetsmått I informationssökning används den färdiga indexeringen för att hitta texter som stämmer överens med sökfrågan användaren ställer. Detta åstadkoms genom att man betraktar frågan som en text och skapar en likadan representation för den. Frågans representation jämförs sedan med texternas och de som stämmer bäst överens med den rapporteras till användaren. Frågan betraktas alltså som en text när den representeras. Det är inte alltid lyckat bland annat med tanke på att en fråga innehåller färre ord än en hel text [11]. I klustring jämförs dock texter med texter, så det är inte ett problem här. Det finns många olika förslag på hur likhet mellan texter ska beräknas. Jag använder det kanske vanligaste måttet: cosinus av vinkeln mellan texternas representationsvektorer (ofta kallat cosine measure). Två texter d 1,d 2 D har alltså högre likhet ju mindre vinkeln mellan dem är: sim(d 1,d 2 )= d 1 d 2 d 1 d 2 = d 1 d 2 (12) eftersom jag normaliserar texterna (se kapitel 2.5). Likhet definieras på samma sätt mellan text och kluster samt kluster och kluster: sim(d 1,c 1 ) = d 1 c 1 d 1 c 1 = d 1 c 1 c 1 (13) sim(c 1,c 2 ) = c 1 c 2 c 1 c 2 (14) där d 1 D är en text och c 1,c 2 C är kluster ur mängden av kluster. En likhetsberäkning tar alltså tid linjär i antalet ord i den längsta av ordvektorerna. Därför är det bra att ha så korta ordvektorer som möjligt, vilket konstaterades redan i inledningen av kapitel Klustrens egenlikhet I kapitel 2.6 beskrev jag hur jag representerar klustren. Anledningen till att jag valt just denna representation är att skalärprodukten mellan en texts och ett klusters ordvektorer då blir medelvärdet av likheten mellan texten och alla texter i klustret: d 1 c = 1 D c d 1 d = 1 D c d D c sim(d 1,d) (15) d D c där d 1 D, c C och D c är mängden av texter i kluster c. Avdettaföljeratt skalärprodukten mellan två klusters ordvektorer blir medelvärdet av likheterna mellan alla texter i det ena klustret med alla i det andra: c 1 c 2 = d 1 d 2 = sim(d 1,d 2 ) (16) D c1 D c2 D c1 D c2 d 1 D c1 d 2 D c2 d 1 D c1,d 2 D c2 Detta ger att kvadraten av längden av ett klusters ordvektor är medelvärdet av likheterna mellan alla i klustret ingående texter: c 2 = c c = 1 d 1 d = 1 D c D c D c 2 sim(d, d ) (17) d D c d D c d D c,d D c 24

25 Detta värde kallar jag klustrets egenlikhet (eng. overall similarity) och det används som ett mått på hur sammanhängande klustret är (se kapitel 5). Ju större värde desto bättre anses klustret vara. Klusterrepresentationen, måttet egenlikhet och resonemangen hittills i det här avsnittet har jag hämtat från [17]. Men eftersom jag trunkerar klustercentroiderna (se 2.7) blir inte resonemangen ovan helt korrekta. Likheten som beräknas mellan till exempel en text och ett kluster blir någon form av approximation av medellikheten mellan texten och alla de i klustret ingående texterna. Detta gäller naturligtvis även övriga likheter ovan. Jag förutsätter att denna approximation är rimlig. Likheten beräknad mot en trunkerad centroid borde ungefärligt avspegla likheten beräknad mot en fullständig. De i klustret mest centrala texternas (de texter som är mest lika centroiden) representationer kommer till stor del att ingå i en trunkerad centroid och därmed kommer deras bidrag till medellikheten att vara nära sitt verkliga värde. Texter som är väldigt olika centroiden kommer dock att ge ett väldigt litet bidrag till den. Deras bidrag till medellikheten kommer därför att vara långt ifrån sitt egentliga värde. Resultatet av detta blir att medellikheter beräknade mot trunkerade centroider blir mindre än mot fullständiga. Dessutom blir de mest centrala texterna i ett kluster mer tongivande än då man använder den fullständiga centroiden. Att trunkera blir på så vis ett sätt att ge de mest centrala texterna högre vikt i representationen för ett kluster (jämför avsnitt 2.6). Det visar sig att klustring med trunkerade centroider ger bättre resultat än klustring med fullständiga (se avsnitt 6.3.1). Kanske förklaras det med att trunkering ger mer centrala texter högre vikt. 3.2 Andra likhetsmått Det finns många olika likhetsmått. Det här avsnittet presenterar några av dem och baserar sig på [14] och [8]. Det enklaste likhetsmåttet då man använder ordvektorer är att räkna hur många ord som delas av de två texter man jämför ju fler ord desto mer lika texter. Nästa steg är att på något sätt ta med frekvenser av orden både i texterna och i hela korpus (jämför 2.4.2). Därefter införs någon form av viktning så att likheten inte beror av texternas längder (detta gör jag redan i förbehandlingen, se 2.5). Det finns olika sätt att åstadkomma detta. Två varianter är de så kallade dice coefficient och jaccard coefficient. Dessa två kan jämföras med cosine coefficient (den variant jag använder, se ovan): dice = 2 d 1 d 2 d d2 2 (18) jaccard = d 1 d 2 d d2 2 d 1 d 2 (19) cosine = d 1 d 2 d 2 1 d 2 2 (20) Då man beräknar likhet som cosinus för vinkeln mellan texternas ordvektorer har man origo som referens. I [13] undersöks effekten av att transformera koordinatsystemet så att origo hamnar i centrum av korpusen. Det visar sig 25

26 inte ge någon skillnad i resultatet (undersökningen avser informationssökning och inte klustring). De likhetsmått som hittills presenterats bygger alla på jämförelse av faktiska förekomster av ord i texterna. Ett annat synsätt baseras på en sannolikhetsmodell och mäter likhet mellan två texter genom att beräkna avvikelsen från oberoende mellan dem [14]. I [9] beskrivs ett likhetsmått baserat på ett sannolikhetsresonemang. Likhet definieras som den förväntade överlappningen mellan två texter. Denna beräknas utifrån skattningar av sannolikheterna för att ord förekommer i en text. Genom sitt resonemang kommer artikelförfattarna fram till det likhetsmått jag använder (cosine measure) och ser vissa brister i det vilka de rättar till. Deras undersökning ger dem också rätt deras likhetsmått ger bättre resultat än cosine measure. 3.3 Likhetsmåttets väsentlighet I informationssökning kan ett bättre likhetsmått förbättra sökningarna avsevärt. Ju bättre det avspeglar likhet mellan sökfrågan och relevanta texter desto bättre sökresultat får man. I klustring spelar likhetsmåttet antagligen mindre roll. Måttet är som viktigast på gränsen mellan kluster ska en text på gränsen mellan två kluster höra till det ena eller andra? Det är antagligen ganska oklart. [16] Många har dessutom funnit att klustringsresultaten inte ändras så mycket beroende på likhetsmått så länge någon form av normalisering av texterna används. Det är inte så konstigt med tanke på att måtten använder ungefär samma information. Det har dessutom visats att många likhetsmått är monotona med avseende på varandra. Härav följer att klustringsalgoritmer som bara beror av rankningsordningen mellan texter (till exempel hur lika ett antal texter är en klustercentroid) kommer att ge samma resultat oberoende av vilket av dessa likhetsmått man använder. [14] Eftersom användandet av olika likhetsmått antagligen inte ger så stor skillnad har jag koncentrerat mig på representationen och algoritmerna. 26

27 4 Klustringsalgoritmer Det här kapitlet är ett försök att beskriva några av de vanligaste algoritmerna för textklustring. De flesta texter om textklustring presenterar åtminstone någon av dem. Jag har valt att presentera varje algoritm i generella ordalag för att sedan diskutera de olika delarna och exemplifiera. Det sista avsnittet innehåller några av mina egna tankar och en ny variant av en känd algoritm. Man kan dela in klustringsalgoritmer i hierarkiska och icke-hierarkiska algoritmer. Resultatet från de hierarkiska är ett antal kluster som i sin tur består av kluster och så vidare ner till de enskilda texterna. De icke-hierarkiska, eller partitionerande, algoritmerna delar bara upp mängden i ett antal kluster. Klustringsalgoritmerna kan konstrueras så att de resulterar i ett på förhand bestämt antal kluster eller så att de under körningen avgör hur många kluster som är lämpligt. Jag har inte undetsökt det senare. En anledning till detta är att det blir mycket svårare att jämföra algoritmerna och körningarna om de resulterar i olika antal kluster. Några antydningar om principer för att låta algoritmerna avgöra antalet kluster finns emellertid i genomgången. En algoritm kan vara deterministisk, så att den producerar samma resultat i på varandra följande körningar, eller indeterministisk, så resultaten skiljer sig åt mellan körningar. Det senare kan vara både bra och dåligt. Dåligt eftersom algoritmen alltså inte producerar den bästa (med avseende på likhetsmått och algoritm) lösningen varje gång. Bra eftersom man då kan få olika uppdelningar av textmängden vilka alla i bästa fall kan ge nya perspektiv på texterna. 4.1 Ickehierarkiska algoritmer Icke-hierarkiska, eller paritionerande, algoritmer delar upp mängden i ett antal kluster utan någon hierarki. Men man kan alltid generera en hierarki med hjälp av en icke-hierarkisk algoritm genom att först dela upp mängden i kluster och därefter klustren på samma sätt rekursivt (se till exempel Bisecting k-mean i avsnitt 4.2.2) Algoritmen Single pass Den kanske enklaste klustringsalgoritmen kallas single pass eftersom den bara går igenom alla texter en gång. Algoritmen är: 1. Skapa ett kluster av den första texten. 2. Beräkna, enligt en utvärderingsprincip, ett värde för nästa text och alla kluster. 3. Om det högsta värdet överskrider ett på förhand bestämt tröskelvärde låt det kluster värdet hörde till innehålla texten. Skapa annars ett nytt kluster av texten. 4. Upprepa 2 och 3 så länge det finns någon text kvar. Utvärderingsprincipen i 2 brukar oftast vara likhet, men man kan även använda någon form av förändring av klusterkvalitet. Som klusterkvalitet kan man till exempel använda egenlikheten enligt avsnitt

28 Tröskelvärdet har en enorm betydelse; är det för högt får man väldigt många kluster; är det för lågt får man för få. Det betyder att man måste anpassa detta värde till textmängden man klustrar. Andra invändningar mot single pass är att den skapar stora kluster i början av körningen och är beroende av ordningen på texterna [8]. Tidskomplexiteten blir O(n) eftersom man går igenom alla texter en gång, men med ett dåligt tröskelvärde (så att alla texter bildar egna kluster) kan den närma sig O(n 2 ) Algoritmen k-klustring Den vanligaste paritionerande algoritmen finns i många utföranden. De ges ofta lite olika namn, men alla kan samlas under k-klustring (eng k-clustering) eller reallocation clustering. Dessa ger ett på förhand bestämt antal kluster. Algoritmerna har följande struktur: 1. Initiera k kluster skapa k klusterrepresentationer. 2. För alla texter: beräkna, enligt en utvärderingsprincip, ett värde för varje kluster och låt det kluster som får bäst värde för texten innehålla den. 3. Beräkna nya klusterrepresentationer utifrån vilka texter som ingår i klustren. 4. Upprepa 2 och 3 tills ett iterationskriterium är uppfyllt. Utvärderingsprincipen i 2 är oftast likhet mellan texten och respektive kluster så som den presenterats i kapitel 3. Man kan naturligtvis också tänka sig att använda andra värden, till exempel förändringen i egenlikhet i klustret som man lägger till texten. Algoritmen tar väsentligen O(k n) tid, där k är antalet kluster och n antalet texter. Man antar då att likhetsberäkningen tar tid som är begränsad av en konstant (det vill säga man antar att ordvektorernas längd har en konstant övre begränsning). Samma resonemang gäller för beräkningen av klusterrepresentationerna. Tanken med algoritmen är att representationerna närmar sig ett jämviktsläge och att till slut en stabil uppdelning av textmängden nås. Kriteriet i 4 kan helt enkelt vara att ingen förändring av klusterrepresentationerna sker mellan två iterationer. Den slutliga uppdelningen är en stabil uppdelning. Det finns ingenting som säger att den är optimal i något avseende. Resultatet beror av hur klustren initierades; olika initieringar kan leda till olika resultat. Man kan tänka sig att algoritmen hittar ett lokalt optimum utifrån initialtillståndet. Detta optimum kan vara globalt och chansen blir större ju enklare datamängden är. Då utvärderingsprincipen baseras på likhetsmått och klusterrepresentationen beräknas som något slags medelvärde av de i klustret ingående texterna (till exempel centroider enligt kapitel 2.6) brukar algoritmen kallas k-mean. Jag har valt att implementera denna variant eftersom den används ofta. Det finns många olika sätt att initiera klustren på. Det enklaste sättet är kanske att välja k texter slumpmässigt och beräkna klusterrepresentationer utifrån dem. Ett annat sätt är att först klustra en delmängd av texterna med 28

Klustring av svenska tidningsartiklar

Klustring av svenska tidningsartiklar Klustring av svenska tidningsartiklar Magnus Rosell rosell@nada.kth.se http://www.nada.kth.se/ rosell/ Klustring Kategorisering eller klassificering att föra texter till på förhand bestämda kategorier

Läs mer

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

Kategorisering och klustring. Kategorisering vid indexering. Kategorisering. Kategorisering föränderligtf. Klustring Kategorisering och klustring Hercules Dalianis DSV-SU-KTH e-post:hercules@kth.se 070-568 13 59 / 08-674 75 47 Skillnaden mellan kategorisering och klustring? Kategori är förutbestämt av någon Kluster är

Läs mer

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

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

Klustring av svenska texter P E T E R J O H A N S S O N

Klustring av svenska texter P E T E R J O H A N S S O N 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

Läs mer

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

Lösningsförslag till tentamen i Språkteknologi 2D1418, Lösningsförslag till tentamen i Språkteknologi 2D1418, 2004-10-18 1. Stavningskontroll utan ordlista (10 poäng) a) Med 29 bokstäver i alfabetet och en specialbokstav för ordbörjan/ordslut så finns det

Läs mer

Innehåll. Informationssökning språkteknologiska hjälpmedel

Innehåll. Informationssökning språkteknologiska hjälpmedel Informationssökning språkteknologiska hjälpmedel Hercules Dalianis NADA-KTH Email: hercules@kth.se Tel: 08-790 91 05 http://www.nada.kth.se/~hercules Hercules Dalianis sid 1 Innehåll Sökmotor Stemming,

Läs mer

Bilverkstäder. Stemming. Tvetydigheter tas bort. Slå ihop till samma ord. Språkteknologiska stöd vid sökning och kategorisering

Bilverkstäder. Stemming. Tvetydigheter tas bort. Slå ihop till samma ord. Språkteknologiska stöd vid sökning och kategorisering Språkteknologiska stöd vid sökning och kategorisering Hercules Dalianis NADA-KTH Email: hercules@nada.kth.se Tel: 08-790 91 05 http://www.nada.kth.se/~hercules Hercules Dalianis sid 1 Språkteknologiska

Läs mer

Automatisk textsammanfattning

Automatisk textsammanfattning Språkteknologi 2001-10-14 Nada Kungliga Tekniska högskolan Automatisk textsammanfattning Per Karefelt (d98-pka) Marcus Hjelm (d98-mhj) Sammanfattning (manuell) Denna rapport belyser en del av de problem

Läs mer

1 Mätdata och statistik

1 Mätdata och statistik Matematikcentrum Matematik NF Mätdata och statistik Betrakta frågeställningen Hur mycket väger en nyfödd bebis?. Frågan verkar naturlig, men samtidigt mycket svår att besvara. För att ge ett fullständigt

Läs mer

Språkteknologi och Open Source

Språkteknologi och Open Source Språkteknologi och Open Source Erik Edin F01 erikedin@kth.se 15 oktober 2004 1 1 Open Source Open Source är en rörelse som syftar till att skriva datorprogram som släpps fria utan kommersiella intressen.

Läs mer

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter Sammanfattning av Business Intelligence-kursen Hercules Dalianis DSV-SU-KTH e-post:hercules@kth.se Omvärldsbevakning Påverkan från omvärlden Påverka omvärlden Tidigare långsam spridning papperstidningar,

Läs mer

1 De fyra fundamentala underrummen till en matris

1 De fyra fundamentala underrummen till en matris Krister Svanberg, mars 2012 1 De fyra fundamentala underrummen till en matris 1.1 Definition av underrum En given delmängd M av IR n säges vara ett underrum i IR n om följande gäller: För varje v 1 M,

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

Lösningar till utvalda uppgifter i kapitel 1

Lösningar till utvalda uppgifter i kapitel 1 Lösningar till utvalda uppgifter i kapitel. Vi utnyttjar definitionen av skalärprodukt som ger att u v u v, där α är (minsta) vinkeln mellan u v. I vårt fall så får vi 7 =. Alltså är den sökta vinkeln

Läs mer

Variator Automatisk synonymvariering av text

Variator Automatisk synonymvariering av text Variator Automatisk synonymvariering av text Magnus Rosell 27 mars 2006 Sammanfattning Detta är en rapport om min individuella uppgift i kursen Språkgranskningsverktyg inom GSLT. Den beskriver ett litet

Läs mer

8 Minsta kvadratmetoden

8 Minsta kvadratmetoden Nr, april -, Amelia Minsta kvadratmetoden. Ekvationssystem med en lösning, -fallet Ett linjärt ekvationssystem, som ½ +7y = y = har en entydig lösning om koefficientdeterminanten, här 7, är skild från

Läs mer

Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet

Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet Terje Höiseth, överbibliotekarie Bakgrund Min förra undersökning (http://www.ltu.se/lrc-intern/nyheter/1.46435)

Läs mer

Lösningsförslag till övningsuppgifter, del II

Lösningsförslag till övningsuppgifter, del II Lösningsförslag till övningsuppgifter del II Obs! Preliminär version! Ö.1. För varje delare d till n låt A d var mängden av element a sådana att gcd(a n = d. Partitionen ges av {A d : d delar n}. n = 6:

Läs mer

1 Grundläggande kalkyler med vektorer och matriser

1 Grundläggande kalkyler med vektorer och matriser Krister Svanberg, mars 2015 1 Grundläggande kalkyler med vektorer och matriser Trots att läsaren säkert redan behärskar grundläggande vektor- och matriskalkyler, ges här i Kapitel 1 en repetition om just

Läs mer

Vektorer, matriser, nätverk - några elementa

Vektorer, matriser, nätverk - några elementa Vektorer, matriser, nätverk - några elementa Innehåll: Vektorer Radvektorer och kolumnvektorer Operationer med vektorer Input- och outputvektorer i neurala nätverk Utvikning om kompetitiva nät Matriser

Läs mer

Inlämningsuppgift: Pronomenidentifierare

Inlämningsuppgift: Pronomenidentifierare 1 (7) Inlämningsuppgift: Pronomenidentifierare 2D1418 Språkteknologi landes@bredband.net johnne@kth.se 1 2 (7) 1 Uppgiften... 3 2 Algoritmen i korthet... 3 3 Representation av data... 3 4 Indikatorer...

Läs mer

Finns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning?

Finns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning? När vi nu lärt oss olika sätt att karaktärisera en fördelning av mätvärden, kan vi börja fundera över vad vi förväntar oss t ex för fördelningen av mätdata när vi mätte längden av en parkeringsficka. Finns

Läs mer

Taltaggning. Rapport av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003

Taltaggning. Rapport av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003 Taltaggning av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003 Sammanfattning Denna rapport är skriven i kursen Språkteknologi och behandlar taggning av årtal i en text. Metoden som används

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Areor, vektorprodukter, volymer och determinanter

Läs mer

DIGITAL KOMMUNIKATION

DIGITAL KOMMUNIKATION EN KOR SAMMANFANING AV EORIN INOM DIGIAL KOMMUNIKAION Linjär kod En binär linjär kod kännetecknas av att summan av två kodord också är ett kodord. Ett specialfall är summan av ett kodord med sig själv

Läs mer

GRATIS SEO, SÖK- OPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV!

GRATIS SEO, SÖK- OPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV! GRATIS SEO, SÖK- OPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV! GRATIS SEO, SÖKOPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV! INNEHÅLL Introduktion 3 Varför det är nödvändigt att tänka på SEO 4 SEO-tips för planering

Läs mer

TMV166 Linjär algebra för M, vt 2016

TMV166 Linjär algebra för M, vt 2016 TMV166 Linjär algebra för M, vt 2016 Lista över alla lärmål Nedan följer en sammanfattning av alla lärmål i kursen, uppdelade enligt godkänt- och överbetygskriterier. Efter denna lista följer ytterligare

Läs mer

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

Experimentella metoder, FK3001. Datorövning: Finn ett samband Experimentella metoder, FK3001 Datorövning: Finn ett samband 1 Inledning Den här övningen går ut på att belysa hur man kan utnyttja dimensionsanalys tillsammans med mätningar för att bestämma fysikaliska

Läs mer

Föreläsning 7. Felrättande koder

Föreläsning 7. Felrättande koder Föreläsning 7 Felrättande koder Antag att vi vill skicka ett meddelande som består av bokstäver a,b,c,d. Vi kan koda a,b,c,d. Antag att det finns en viss sannolikhet att en bit i ett meddelande som skickas

Läs mer

1 Linjära ekvationssystem. 2 Vektorer

1 Linjära ekvationssystem. 2 Vektorer För. 1 1 Linjära ekvationssystem Gaußelimination - sriv om systemet för att få ett trappformat system genom att: byta ordningen mellan ekvationer eller obekanta; multiplicera en ekvation med en konstant

Läs mer

Linjär algebra I, vt 12 Vecko PM läsvecka 4

Linjär algebra I, vt 12 Vecko PM läsvecka 4 Linjär algebra I, vt 12 Vecko PM läsvecka 4 Lay: 2.8-2.9, 4.1-4.6 Underrum i R n, dimension och rang. Vektorrum. Innehållet i avsnitten 2.8 och 2.9 täcks av kapitel 4, men presenterar begreppen på ett

Läs mer

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A SF1624 Algebra och geometri Lösningsförslag till tentamen 2010-10-22 DEL A (1) Uttrycket (x, y, z) (1, 1, 1) + s(1, 3, 0) + t(0, 5, 1) definierar ett plan W i rummet där s och t är reella parametrar. (a)

Läs mer

Random Indexing. - med större korpus. Olof Stange & Claes Toll Handledare: Johan Boye DD2418 - Språkteknologi

Random Indexing. - med större korpus. Olof Stange & Claes Toll Handledare: Johan Boye DD2418 - Språkteknologi - med större korpus Olof Stange & Claes Toll - Språkteknologi Innehållsförteckning Inledning s. 3 Bakgrund s. 3 Metod s. 3-4 Problem s. 4 Resultat s. 4-5 Analys s. 6-8 Sammanfattning s. 8 Källförteckning

Läs mer

Ekvivalensrelationer

Ekvivalensrelationer Abstrakt datatyp för disjunkta mängder Vi skall presentera en abstrakt datatyp för att representera disjunkta mängder Kan bl.a. användas för att lösa ekvivalensproblemet avgör om två godtyckliga element

Läs mer

Framsida På framsidan finns:

Framsida På framsidan finns: Framsida På framsidan finns: Rubriken på hela arbetet Namnet på den eller de som gjort arbetet Klass Någon form av datering, t.ex. datum för inlämning eller vilken termin och vilket år det är: HT 2010

Läs mer

SU publikationer och ESI klasser: citeringsgrad och andel högt citerade publikationer

SU publikationer och ESI klasser: citeringsgrad och andel högt citerade publikationer SU publikationer och ESI klasser: citeringsgrad och andel högt citerade publikationer Per Ahlgren, avd. för e-resurser, Stockholms universitetsbibliotek 1 Inledning I föreliggande rapport redogörs för

Läs mer

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

Introduktion till frågespråket SQL (v0.91) DD1370: Databaser och Informationssystem Hösten 2014 Petter Ögren Introduktion till frågespråket SQL (v0.91) 13:e November Disclaimer: Dessa anteckningar har producerats under viss tidspress, och kan därför

Läs mer

Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra, SF1604, den 15 mars 2012 kl

Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra, SF1604, den 15 mars 2012 kl Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Linjär algebra, SF604, den 5 mars 202 kl 08.00-3.00. Examinator: Olof Heden. OBS: Inga hjälpmedel är tillåtna på tentamensskrivningen.

Läs mer

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat

Läs mer

12. SINGULÄRA VÄRDEN. (u Av) u v

12. SINGULÄRA VÄRDEN. (u Av) u v . SINGULÄRA VÄRDEN Vårt huvudresultat sen tidigare är Sats.. Varje n n matris A kan jordaniseras, dvs det finns en inverterbar matris S sån att S AS J där J är en jordanmatris. Om u och v är två kolonnvektorer

Läs mer

Lösningsförslag till övningsuppgifter, del V

Lösningsförslag till övningsuppgifter, del V Lösningsförslag till övningsuppgifter, del V Obs! Preliminär version! Ö.1. (a) Vi kan lösa uppgiften genom att helt enkelt räkna ut avståndet mellan vart och ett av de ( 7 ) = 1 paren. Först noterar vi

Läs mer

Andragradspolynom Några vektorrum P 2

Andragradspolynom Några vektorrum P 2 Låt beteckna mängden av polynom av grad högst 2. Det betyder att p tillhör om p(x) = ax 2 + bx + c där a, b och c är reella tal. Några exempel: x 2 + 3x 7, 2x 2 3, 5x + π, 0 Man kan addera två polynom

Läs mer

Associationsanalys och klustring

Associationsanalys och klustring Johan Boye, CSC, KTH DD1371 Beslutstödssystem, VT2013 Associationsanalys och klustring 57. (Från tentamen augusti 2010) Byggvaruhuset Bygger vill ha mer information om sina kunders köpbeteenden och vill

Läs mer

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4 Introduktion till programmering Men först: Några funktioner ur preluden Vad är skillnaden mellan head str och take 1 str? Föreläsning 4 Ett större exempel. head :: [a] -> a take :: Int -> [a] -> [a] tail

Läs mer

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L. KTH, Nada, Erik Forslin 2D1343, LÖSNING TILL TENTAMEN I DATALOGI FÖR ELEKTRO Lördagen den 8 mars 2003 kl 14 19 Maxpoäng tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma.

Läs mer

Tal i bråkform. Kapitlet behandlar. Att förstå tal

Tal i bråkform. Kapitlet behandlar. Att förstå tal Tal i bråkform Kapitlet behandlar Test Användning av hälften och fjärdedel 2 Representation i bråkform av del av antal och av del av helhet 3, Bråkform i vardagssituationer Stambråk, bråkuttryck med 1

Läs mer

Basbyten och linjära avbildningar

Basbyten och linjära avbildningar Föreläsning 11, Linjär algebra IT VT2008 1 Basbyten och linjära avbildningar Innan vi fortsätter med egenvärden så ska vi titta på hur matrisen för en linjär avbildning beror på vilken bas vi använder.

Läs mer

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

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning Matematik, KTH Bengt Ek november 207 Material till kursen SF679, Diskret matematik: Lite om kedjebråk 0 Inledning Talet π (kvoten mellan en cirkels omkrets och dess diameter) är inte ett rationellt tal

Läs mer

Utveckling av simulator för ärendehanteringssystem

Utveckling av simulator för ärendehanteringssystem Datavetenskap Opponent(er): Emil Danielsson & Patrik Lundberg Respondent(er): Niclas Hanold & Samiar Saldjoghi Utveckling av simulator för ärendehanteringssystem Oppositionsrapport, C/D-nivå 2005:xx 1

Läs mer

LYCKA TILL! kl 8 13

LYCKA TILL! kl 8 13 LUNDS TEKNISK HÖGSKOL MTEMTIK TENTMENSSKRIVNING Linjär algebra 0 0 kl 8 3 ING HJÄLPMEDEL Förklara dina beteckningar och motivera lösningarna väl Om inget annat anges är koordinatsystemen ortonormerade

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Sortering Selectionsort, Bubblesort,

Läs mer

Här är två korta exempel på situationer då vi tillämpar den distributiva lagen:

Här är två korta exempel på situationer då vi tillämpar den distributiva lagen: Modul: Algebra Del 8: Avslutande reflektion och utvärdering Distributiva lagen Cecilia Kilhamn, Göteborgs Universitet Distributiva lagen a (b + c) = a b + a c Den distributiva lagen kallas den räknelag

Läs mer

Dagens lektion. Mina forskningsintressen. Min bakgrund. Information Retrieval. Varför IR & disambiguering

Dagens lektion. Mina forskningsintressen. Min bakgrund. Information Retrieval. Varför IR & disambiguering Information retrieval & ordbetydelsedisambiguering Leif Grönqvist (leifg@ling.gu.se) Växjö universitet (Matematiska och systemtekniska institutionen) GSLT (Sveriges nationella forskarskola i språkteknologi)

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Linjära avbildningar I Innehåll En liten tillbakablick:

Läs mer

SF1624 Algebra och geometri Bedömningskriterier till tentamen Fredagen den 22 oktober, 2010

SF1624 Algebra och geometri Bedömningskriterier till tentamen Fredagen den 22 oktober, 2010 SF1624 Algebra och geometri Bedömningskriterier till tentamen Fredagen den 22 oktober, 2010 Allmänt gäller följande: Om lösningen helt saknar förklarande text till beräkningar och formler ges högst två

Läs mer

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A SF64 Algebra och geometri Lösningsförslag till tentamen 04-05-0 DEL A. Planet P innehåller punkterna (,, 0), (0, 3, ) och (,, ). (a) Bestäm en ekvation, på formen ax + by + cz + d = 0, för planet P. (

Läs mer

Linjär Algebra, Föreläsning 2

Linjär Algebra, Föreläsning 2 Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Geometriska vektorer, rummen R n och M n 1 En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.

Läs mer

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter.

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter. 26.2-9 Antag att rätt lösning är att dela upp V i V 1 och V 2 (V 1 V 2 =, V 1 V 2 = V ). Antal kanter vi måste skära är då det minsta snittet mellan v 1 och v 2, där v 1 är ett godtyckligt hörn i V 1 och

Läs mer

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter TATM79: Föreläsning Absolutbelopp, summor och binomialkoefficienter Johan Thim 15 augusti 015 1 Absolutbelopp Absolutbelopp Definition. För varje reellt x definieras absolutbeloppet x enligt { x, x 0 x

Läs mer

Programmering II (ID1019)

Programmering II (ID1019) ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på

Läs mer

Word- sense disambiguation

Word- sense disambiguation KTH Word- sense disambiguation Inlämningsuppgift - DD2418 - sprakt12 Mattias Uskali & Emilia Hillert 1/8/2013 Sammanfattning Denna rapport kommer att undersöka två metoder för word- sense disambiguation,

Läs mer

Magnus Nielsen, IDA, Linköpings universitet

Magnus Nielsen, IDA, Linköpings universitet Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1

Läs mer

Vinjetter TDDC91 Datastrukturer och algoritmer

Vinjetter TDDC91 Datastrukturer och algoritmer Vinjetter TDDC91 Datastrukturer och algoritmer 17 augusti 2015 2 Scenario 1 Man har inom Posten Logistik AB skrivit programvara för sortering av kundinformation och vill standardisera användningen av sorteringsalgoritmer.

Läs mer

1 Ortogonalitet. 1.1 Skalär produkt. Man kan tala om vinkel mellan vektorer.

1 Ortogonalitet. 1.1 Skalär produkt. Man kan tala om vinkel mellan vektorer. Ortogonalitet Man kan tala om vinkel mellan vektorer.. Skalär produkt Vi definierar längden (eller normen) av en vektor som ett reellt tal 0 (Se boken avsnitt.). Vi definierar skalär produkt (Inner product),

Läs mer

Tentamen 2016-01-13. Marco Kuhlmann

Tentamen 2016-01-13. Marco Kuhlmann TDDD02 Språkteknologi för informationssökning (2015) Tentamen 2016-01-13 Marco Kuhlmann Denna tentamen består av 10 frågor. Frågorna 8 10 ligger på en högre kunskapsnivå än de övriga och kräver utförliga

Läs mer

Tekniker för storskalig parsning

Tekniker för storskalig parsning Tekniker för storskalig parsning Grundläggande begrepp och metoder Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning

Läs mer

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

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

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

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Föreläsninsanteckningar till föreläsning 3: Entropi

Föreläsninsanteckningar till föreläsning 3: Entropi Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

DANTEK ELEVWEB HJÄLP. Dantek ElevWeb Hjälp. Version 1 Copyright 2016 by Dantek AB. Sidan 1

DANTEK ELEVWEB HJÄLP. Dantek ElevWeb Hjälp. Version 1 Copyright 2016 by Dantek AB. Sidan 1 Dantek ElevWeb Hjälp Version 1 Copyright 2016 by Dantek AB Sidan 1 Innehåll Introduktion till Dantek ElevWeb 3 Att söka i Dantek ElevWeb 4 3 sätt att söka 5 Trunkering 5 Fritextsökning 6 Hjälp via stavningskontroll

Läs mer

2 = 2. Tal skrivna på det sättet kallas potenser. I vårt fall har vi tredje tvåpotensen. Tredje tvåpotensen har 2 som bas och 3 som

2 = 2. Tal skrivna på det sättet kallas potenser. I vårt fall har vi tredje tvåpotensen. Tredje tvåpotensen har 2 som bas och 3 som 616 Talföljder på laborativt vis Vikt papper Vik ett A-4 ark mitt itu så att du får två stycken A-5 ark. Vik det en gång till på samma sätt. Hur stora och hur många är dina ark? Vad händer om du fortsätter?

Läs mer

Cristina Eriksson oktober 2001

Cristina Eriksson oktober 2001 Maskinöversättning Cristina Eriksson 660719-4005 d98-cer@nada.kth.se 15 oktober 2001 1 Sammanfattning Att låta en maskin översätta från ett språk till ett annat är ett forskningsområde som man lägger ner

Läs mer

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER. MATEMATISKA INSTITUTIONEN Tillämpad statistisk analys, GN STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB 2011-03-24 DATORLABORATION 1: TIDSSERIER. I Tarfala har man under en lång följd av

Läs mer

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2 Matematisk Statistik SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2 1 Introduktion Denna laboration är inte poänggivande utan är till för den som vill bekanta sig med MATLAB. Fokusera

Läs mer

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

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5

Läs mer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1

Läs mer

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter Datavetenskap Opponenter: Daniel Jansson Mikael Jansson Respondenter: Mats Almgren Erik Hansen Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter Oppositionsrapport,

Läs mer

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604 för D, den 5 juni 2010 kl

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604 för D, den 5 juni 2010 kl 1 Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Linjär algebra II, SF164 för D, den 5 juni 21 kl 9.- 14.. Examinator: Olof Heden. Hjälpmedel: Inga hjälpmedel är tillåtna på tentamensskrivningen.

Läs mer

Kravspecifikation Fredrik Berntsson Version 1.3

Kravspecifikation Fredrik Berntsson Version 1.3 Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen

Läs mer

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering Marco Kuhlmann Institutionen för datavetenskap Ordpredicering Ordpredicering innebär att föreslå eller välja ord i en given kontext.

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter Johan Thim 2 augusti 2016 1 Absolutbelopp Absolutbelopp Definition. För varje reellt x definieras absolutbeloppet x enligt { x, x 0

Läs mer

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm Grafalgoritmer 1 Douglas Wikström KTH Stockholm popup-help@csc.kth.se Oriktade och riktade grafer Definition. En oriktad graf består av en mängd noder V och en mängd kanter E, där en kant är ett oordnat

Läs mer

Likhetstecknets innebörd

Likhetstecknets innebörd Modul: Algebra Del 5: Algebra som språk Likhetstecknets innebörd Följande av Görel Sterner (2012) översatta och bearbetade text bygger på boken: Carpenter, T. P., Franke, M. L. & Levi, L. (2003). Thinking

Läs mer

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

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6 Kursen bedöms med betyg, 4, 5 eller underkänd, där 5 är högsta betyg För godkänt betyg krävs minst 4 poäng från uppgifterna -7 Var och en av dessa sju uppgifter kan ge maximalt poäng För var och en av

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Logging Module into the PRIME Core

Logging Module into the PRIME Core Datavetenskap Opponent: Andreas Lavén Respondenter: Anders Ellvin, Tobias Pulls Implementing a Privacy-Friendly Secure Logging Module into the PRIME Core Oppositionsrapport, E-nivå 2005:xx 1 Sammanfattat

Läs mer

Grafer och grannmatriser

Grafer och grannmatriser Föreläsning 2, Linjär algebra IT VT2008 Som avslutning på kursen ska vi knyta samman linjär algebra med grafteori och sannolikhetsteori från första kursen. Resultatet blir så kallade slumpvandringar på

Läs mer

14. Minsta kvadratmetoden

14. Minsta kvadratmetoden 58 MINSTA KVADRATMETODEN. Minsta kvadratmetoden Eempel.. Det är inte så svårt att komma åt en trasig lampa på golvet för att byta den. Det är bara att gå fram till den. Hur är det om lampan hänger i taket?

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering

Läs mer

Klustring av svenska tidningsartiklar

Klustring av svenska tidningsartiklar Klustrig av sveska tidigsartiklar Magus Rosell rosell@ada.kth.se http://www.ada.kth.se/~rosell/ Klustrig Kategoriserig eller klassificerig att fra texter till p f rhad best mda kategori er Klustrig att

Läs mer

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

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

CogSum. Ett försök att med dagens automatiska informationsextraheringsmetoder och rankningsalgoritmer skapa sammanfattningar i skumläsningssyfte

CogSum. Ett försök att med dagens automatiska informationsextraheringsmetoder och rankningsalgoritmer skapa sammanfattningar i skumläsningssyfte CogSum Ett försök att med dagens automatiska informationsextraheringsmetoder och rankningsalgoritmer skapa sammanfattningar i skumläsningssyfte Mimi Axelsson, Erica Bergenholm, Bertil Carlsson, Gro Dahlbom,

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Linjära avbildningar IV Innehåll Nollrum och

Läs mer

{ 1, om i = j, e i e j = 0, om i j.

{ 1, om i = j, e i e j = 0, om i j. 34 3 SKALÄPRODUKT 3. Skaläprodukt Definition 3.. Skalärprodukten mellan två vektorer u och v definieras där θ är vinkeln mellan u och v. u v = u v cos θ, Anmärkning 3.. Andra beteckningar för skalärprodukt

Läs mer

Lösningar och kommentarer till uppgifter i 3.1

Lösningar och kommentarer till uppgifter i 3.1 Lösningar och kommentarer till uppgifter i.1 102 b) TB: Kör de med dessa uppgifter i det här kapitlet också? Det gör inget, jag börjar bli ganska bra på det. Vi har funktionen fx) = x x 2 24x + 1 och man

Läs mer

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A = 62 6 MATRISER 6 Matriser 6 Definition av matriser En matris är ett rektangulärt schema av tal: A a a 2 a 3 a n a 2 a 22 a 23 a 2n a m a m2 a m3 a mn Matrisen A säges vara av typ m n, där m är antalet rader

Läs mer