Stränglikhet Manchester United vs Manchester Utd. B A R A N S Ö L E N Examensarbete Stockholm, Sverige 2008
Stränglikhet Manchester United vs Manchester Utd. B A R A N S Ö L E N Examensarbete i datalogi om 30 högskolepoäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2008 Handledare på CSC var Viggo Kann Examinator var Karl Meinke TRITA-CSC-E 2008:092 ISRN-KTH/CSC/E--08/092--SE ISSN-1653-5715 Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC 100 44 Stockholm URL: www.csc.kth.se
Referat Oddsen på fotbollsmatcher kan skilja sig åt mellan olika spelbolag, och det finns ett önskemål hos spelintressenter om en tjänst som jämför oddsen mellan spelbolagen och presenterar bästa oddset på ett spel. Ett namn kan dock skrivas på olika sätt av spelbolagen där alla omskrivningar anses vara giltiga av spelintressenter, till exempel Manchester United och Manchester Utd. Automatiseringen av en tjänst för att jämföra oddsen på fotbollsmatcher kräver därför att namnen på fotbollslagen kan identifieras, vilket leder till behovet av en algoritm för att hitta en matchning i ett lexikon med namn på fotbollslag. I detta examensarbete jämförs olika algoritmer för approximativ strängmatchning där målet är att ge en rekommendation av den algoritm som är bäst lämpad för att identifiera fotbollslag ur en lista. De tre algoritmerna som undersöktes är edit distance, Matematikkonsults likhetsmått och n-gramanalys. Matematikkonsults likhetsmått anses mest lämpligt om en felaktig matchning inte anses ha högre vikt än sju korrekta matchningar. Om vikten anses vara högre än sju är n-gramanalys med bigram ett bättre alternativ.
String Similarity Manchester United vs Manchester Utd. Abstract The odds on a football game can differ between different betting companies and the gaming community wants a service for comparing odds between gaming companies presenting the best odds on a game. A name can however be written in different ways where all the rewritings are considered valid by the gaming community, for example Manchester United and Manchester Utd. The automization of a service for comparing odds on football games therefore requires the identification of the names of fotball teams which leads to the need of an algorithm for finding a matching in a dictionary with names of football teams. In this master thesis different algorithms are compared for approximative string matching where the goal is to give a recommendation of the algorithm that is most suited for identifying football teams from a list. The three algorithms evaluated are edit distance, similarity measurement of Matematikkonsult and n-gram analysis. The similarity measurement of Matematikkonsult is considered to be the most suitable if a wrong matching isn t considered to have a weight more than seven correct matchings. If the weight is considered to be more than seven n-gram analysis with bigrams is a better option.
Förord Efter ett uppehåll på över ett år på datateknik hittade jag äntligen ett examensarbetsförslag som intresserade mig och kunde på så sätt slutföra min utbildning. Tack till David Jacquet, min handledare från Svensk Matematikkonsult, för examensarbetsförslaget och handledning. Jag vill också tacka professor Viggo Kann, min handledare på Nada, för all handledning. Eftersom jag jobbar på dagarna har många kvällar och helger gått åt för att slutföra detta examensarbete. Ett tack går därför till min familj och flickvän som har stått ut med det och stöttat mig. Stockholm, februari 2008 Baran Sölen
Innehåll Förord 1 Introduktion 1 1.1 Bakgrund................................. 1 1.2 Problemdefinition............................. 1 1.3 Metod................................... 2 1.4 Begränsningar............................... 2 1.5 Notation.................................. 2 2 Teori 3 2.1 Omskrivningar och felstavningar.................... 3 2.2 Stränglikhetsalgoritmer......................... 4 2.2.1 Damerau-Levenshtein...................... 5 2.2.2 Matematikkonsults likhetsmått................. 6 2.2.3 N-gramanalys.......................... 9 2.2.4 Soundex.............................. 10 2.2.5 SPEEDCOP........................... 11 2.3 Regelbaserade algoritmer........................ 11 2.4 Probabilistiska algoritmer........................ 12 2.5 Neurala nät................................ 12 2.6 Mått på effektivitet............................ 13 3 Utförande 15 3.1 Testdata och lexikon........................... 15 3.2 Användningsfall.............................. 15 3.3 Data som ska samlas in......................... 16 3.4 Val av algoritmer............................. 16 3.4.1 Kortaste avståndet........................ 16 3.4.2 Matematikkonsults likhetsmått................. 17 3.4.3 N-gramanalys.......................... 18 3.4.4 Algoritmer och metoder som inte valdes från teoriavsnittet. 18 4 Resultat 21 4.1 Notation.................................. 21
4.2 Algoritmernas snabbhet......................... 21 4.3 Exkluderade omskrivningar från undersökningen........... 22 4.4 Körningar med data från spelbolag................... 22 4.5 Körningar med fiktiva data....................... 23 4.6 Mått på effektivitet............................ 23 5 Diskussion 27 5.1 Testdata och Laglex........................... 27 5.2 Edit distance............................... 28 5.3 Matematikkonsults likhetsmått..................... 29 5.4 N-gramanalys............................... 30 5.5 Jämförelse med tidigare examensarbete................ 30 6 Slutsatser 33 6.1 Rekommendation............................. 33 6.2 Förslag till vidare undersökning..................... 33 Litteraturförteckning 35 Bilagor 36 A Spelbolagen data har hämtats från 37 B Betafördelningen 39
Kapitel 1 Introduktion I detta kapitel presenteras bakgrunden till examensarbetet och problemdefinitionen som ligger till grund för undersökningen. Kapitlet tar även upp syftet och ramarna för examensarbetet. 1.1 Bakgrund Antalet spelbolag på Internet har ökat de senaste åren. Oddsen på ett givet spel kan skilja sig mellan spelbolagen, och det finns ett önskemål från spelare om en tjänst som jämför oddsen mellan spelbolagen och presenterar bästa oddset på ett givet spel. Man kan tänka sig att även spelbolagen är intresserade av en oberoende tredjepartstjänst som jämför oddsen mellan olika spelbolag för att veta hur det egna bolaget står sig i förhållande till resten av marknaden. Svensk Matematikkonsult, som är uppdragsgivaren för detta examensarbete, utvecklar matematiska modeller för spel och mjukvara för spelintressenter. Detta examensarbete är en del av ett projekt som syftar till att utveckla mjukvara för att jämföra oddsen mellan olika spelbolag och presentera bästa oddset på ett givet spel. Detta examensarbete kommer endast att omfatta fotboll. Automatiseringen av en tjänst för att jämföra oddsen på fotbollsmatcher kräver att namnen på fotbollslagen kan identifieras ur en lista. Spelbolagen skriver ofta namnen på olika sätt, till exempel Manchester United och Manchester Utd, vilket leder till behovet av en algoritm för att identifiera strängar som syftar på samma lag. Utöver omskrivningarna kan även stavfel förekomma, som dock är få i förhållande till omskrivningarna. 1.2 Problemdefinition Givet ett lexikon över de officiella namnen på europeiska fotbollslag, Laglex, samt en sträng innehållande en omskrivning av ett namn, identifiera det officiella namn som omskrivningen är mest likt. På följande sätt kan ett officiellt namn skrivas om: En eller flera bokstäver tas bort. 1
KAPITEL 1. INTRODUKTION En eller flera bokstäver läggs till. De första n bokstäverna blir de sista n bokstäverna. 1.3 Metod Syftet med examensarbetet är att jämföra stränglikhetsalgoritmer och föreslå en algoritm för att identifiera europeiska fotbollslagnamn ur en lista. Tyngdpunkten i arbetet ligger i den jämförande studien av algoritmernas träffsäkerhet. Det officiella namnet som rankas som mest likt omskrivningen ska betraktas som en potentiell matchning. Om officiella namnet är signifikant mer likt omskrivningen än övriga namn i lexikonet ska en matchning anses ha hittats. 1.4 Begränsningar Testdata baseras på högsta divisionerna från fem fotbollsligor i Europa: engelska, italienska, franska, spanska och tyska ligan. Endast de engelska stavningarna av namnen tas hänsyn till. 1.5 Notation Den tomma strängen betecknas ɛ. Bokstav nummer i i en sträng x betecknas x i och de i första bokstäverna i en sträng x betecknas x i. 2
Kapitel 2 Teori Detta kapitel beskriver omskrivningar av namn, stränglikhetsalgoritmer och slutligen ett effektivitetsmått för stränglikhetsalgoritmer som sedan används för att utvärdera stränglikhetsalgoritmerna i undersökningen. Stora delar av beskrivningarna av stränglikhetsalgoritmerna, med undantag av Matematikkonsults likhetsmått, har hämtats från Kukich[6]. 2.1 Omskrivningar och felstavningar Det finns många omskrivningar av ett namn som är giltiga. Omskrivningarna handlar i de flesta fallen om förkortningar av de officiella namnen där förkortningarna många gånger följs av en punkt. På spelbolagens hemsidor kan det språk man vill att sidan ska presenteras på väljas. Trots att exempelvis engelska väljs kan namnen på vissa lag stavas som i lagets hemland. En annan vanlig omskrivning är att ändelse som FC (Football Club) kastas om. Nedan visas exempel på omskrivningar: Officiellt namn på engelska Omskrivning 1 Omskrivning 2 Manchester United FC Manchester Utd. Manchester U. Deportivo La Coruna Deportivo La Coruña Deportivo Coruna FC Copenhagen FC Köpenhamn Copenhagen FC Tabell 2.1. Omskrivningar av namn. Utöver omskrivningarna förekommer stavfel. Stavfelen är få i förhållande till omskrivningarna eftersom namnen ses på spelbolagens hemsidor där felen lätt kan upptäckas. Kukich[6] delar upp stavfelen i typografiska fel, kognitiva fel och fonetiska fel. Typografiska fel beror på mekaniska misstag när ordet skrivs, exempelvis feltryckning av tangenter. Felen karakteriseras av inskjutning av en ny bokstav, en bokstav saknas, två intilliggande bokstäver kastas om, en bokstav ersätts med en annan eller en kombination av dessa. Med kognitiva fel menas fel som beror på felaktig inlärning. Fonetiska fel är när en eller flera bokstäver ersätts med andra som låter 3
KAPITEL 2. TEORI likartade. Även avsaknaden av en bokstav kan vara ett fonetiskt fel. Exempelvis kan engelska ordet för riddare, knight, kan felaktigt stavas night. En studie som gjordes 1964 av Damerau[2] visade att 80 procent av stavfelen tillhör någon av följande fyra kategorier: Borttagning (Bokstav saknas) United Unitd Insättning (Bokstav läggs till) United Unitedd Substitution (Bokstav ersätts) United Unitid Transposition (Två intilliggande bokstäver kastas om) United Unitde 1986 utförde Peterson[8] en studie som visade att över 90 procent av stavfelen kunde härledas till någon av de fyra kategorierna. Peterson fann att en felaktig bokstav var det vanligaste felet följt av borttagning, insättning och tranposition. I en studie av Pollock och Zamora[10] där 50 000 icke-ord i en databas studerades visade att endast 6 procent av icke-orden innehöll flerbokstavsfel. 2.2 Stränglikhetsalgoritmer Forskningen och utvecklingen av algoritmer för att, med hjälp av datorer, automatiskt rätta ord i texter började så tidigt som på 1960-talet. Under 1970- och 80-talet koncentrerades forskningen kring upptäckt av icke-ord huvudsakligen på att i en text upptäcka icke-ord som orsakades av stavfel. De vanligaste teknikerna som användes var n-gramanalys och lexikonuppslag. Enligt Kukich[6] är de flesta tekniker som används idag baserade på lexikonuppslag, där hela ord slås upp. Att identifiera ett felaktigt eller en omskrivning av ett namn kan ses som ett specialfall av att upptäcka ord i en text som inte finns med i ett lexikon. När ett namn inte finns med i listan över de officiella namnen kan processen att hitta namnet i listan som är mest likt omskrivningen liknas med att föreslå en korrigering till ett felstavat ord. Forskningen kring korrigering av ord började också på 1960-talet och Kukich[6] delar in algoritmerna för att utföra korrigeringarna i följande sex kategorier: Kortaste avståndet (Minimum edit distance algorithms) Likhetsnycklar (Similarity key algorithms) Regelbaserade algoritmer (Rule-based algorithms) N-gramanalys (N-gram analysis) Probabilistiska algoritmer (Probabilistic algorithms) Neurala nät (Nerual nets) 4
2.2. STRÄNGLIKHETSALGORITMER 2.2.1 Damerau-Levenshtein Damerau-Levenshtein tillhör gruppen av algoritmer som beräknar kortaste avståndet mellan två strängar genom att räkna antalet operationer som krävs för att omvandla den ena strängen till den andra. De tillåtna operationerna är borttagning, insättning, substitution och transposition. Ju färre operationer desto kortare är avståndet mellan två strängar och därmed större likhet mellan strängarna. Damerau[2] rättade felstavningar i en text genom att först generera alla ord på avståndet ett från det felstavade ordet och därefter slå upp orden i ett lexikon för att hitta en matchning. Orden genererades genom att tillämpa operationerna borttagning, insättning, substitution och transposition. Ungefär samtidigt som Damerau presenterade Vladimir Levenshtein en algoritm, edit distance, för att mäta avståndet mellan två ord. Edit distance ger ett mått på avståndet mellan två ord genom att räkna antalet borttagningar, insättningar och substitutioner som behöver göras för att omvandla det ena ordet till det andra. Till skillnad från Damerau räknar edit distance transposition som två operationer. Damerau-Levenshtein distance kallas den variant av edit distance som räknar transposition som en operation. Låt s och t beteckna två strängar. Damerau-Levenshteins avståndsmått ges av den rekursiva ekvationen[11][12] D(ɛ, ɛ) = 0 D(s i, t j ) = min[d(s i 1, t j ) + C(s i, ɛ), D(s i, t j 1 ) + C(ɛ, t j ) (2.1) D(s i 1, t j 1 ) + C(s i, t i ) D(s i 2, t j 2 ) + C(s i 1, t i ) + C(s i, t i 1 )]. Det första uttrycket i funktionen min ger antalet insättningar, det andra ger antalet borttagningar, det tredje ger antalet substitutioner och fjärde ger antalet transpositioner som krävs för att omvandla s till t. Avståndet mellan två bokstäver definieras som { 0 om si = t C(s i, t i ) = i. (2.2) 1 om s i t i I grundversionen av Damerau-Levenshtein distance är avståndet mellan två bokstäver eller bokstav och tomma strängen alltid ett och alla operationer antas ha lika stor sannolikhet att inträffa. Enligt grundversionen är därför Manchester Umited och Manchester Uqited båda avstånd ett från Manchester United. Man kan misstänka att det är större sannolikhet att skriva Umited än Uqited när man avser att skriva United eftersom bokstaven m ligger precis bredvid bokstaven n på tangentbordet. Likaså kommer borttagningar av bokstäver, förkortningar, att förekomma i större utsträckning än insättningar av nya bokstäver som nästan bara kommer att vara en punkt efter en förkortning. 5
KAPITEL 2. TEORI Kukich[6] föreslår att statistisk data för stavningsfel kan användas för att ge ett mer realistiskt avståndsmått mellan två bokstäver. Informationen sparas i en n n matris där n är antalet tecken och element (i, j) representerar kostnaden mellan i:te och j:te tecknet. Även en vektor av längd n behövs för att lagra kostnaden mellan tecken och icke-tecken för att hantera insättningar och borttagningar. Damerau-Levenshteins avstånd beräknas vanligtvis med hjälp av dynamisk programmering som bygger på Wagner och Fischers algoritm [13] från 1974. Algoritmen tillåter insättning, substitution och borttagning. 1975 utökade Lawrence och Wagner [7] algoritmen med transposition. En (n + 1) (m + 1) matris skapas där n och m är längderna på strängarna s och t vars kortaste avstånd ska beräknas. Matrisen fylls enligt den rekursiva funktionen 2.1. Element (i, j) i matrisen betecknar avståndet mellan s i och t j. Kortaste avståndet mellan strängarna s och t fås således genom element (n, m) i matrisen. Tidskomplexiteten för algoritmen är O(nm). ɛ U m i t e d ɛ 0 1 2 3 4 5 6 U 1 0 1 2 3 4 5 n 2 1 1 2 3 4 5 i 3 2 2 1 2 3 4 t 4 3 3 2 1 2 3 e 5 4 4 3 2 1 2 d 6 5 5 4 3 2 1 Tabell 2.2. Matris för beräkning av kortaste avståndet mellan United och Umited. 2.2.2 Matematikkonsults likhetsmått Matematikkonsult föreslår följande lihetsmått mellan strängarna s och t: L(s, t) = 1 2 F (LCS(s, t)) F (s) + F (t) (2.3) där L(s, t) = 0 innebär att strängarna är identiska och L(s, t) = 1 innebär att strängarna inte har något tecken gemensamt. Funktionen LCS, Longest Common Subsequence, beräknar längsta gemensamma delsekvens. LCS definieras enligt följande rekursion[15]: LCS(s i, t j ) = ɛ om i = 0 eller j = 0 LCS(s i 1, t j 1 ) + s i om s i = t j. max(lcs(s i, t j 1 ), LCS(s i 1, t j )) om s i t j (2.4) Ekvationens utseende kan förklaras med att om sista bokstäverna i strängarna s och t är lika, det vill säga s i = t i, måste sista bokstaven vara en del av den längsta gemensamma delsekvensen. Annars jämför man vilken delsekvens som är längst 6
2.2. STRÄNGLIKHETSALGORITMER mellan sekvensen (s i, t j 1 ) och (s i i, t j ) för alla delsekvenser tills s i = ɛ och t j = ɛ. Eftersom varje delsekvens har en optimal lösning implementeras LCS lämpligen med dynamisk programmering. En (n + 1) (m + 1) matris skapas där n och m är längderna på strängarna s och t. Matrisen fylls enligt rekursiva ekvationen 2.4 med skillnaden att LCS inte returnerar längsta gemensamma delsekvens utan längden av längsta gemensamma delsekvens för s i och t i. Element (n, m) i matrisen ger längden på längsta gemensamma delsekvens. Längsta gemensamma delsekvens, x, hittas på ɛ p u l n i t q e d ɛ 0 0 0 0 0 0 0 0 0 0 s 0 0 0 0 0 0 0 0 0 0 u 0 0 1 1 1 1 1 1 1 1 n 0 0 1 1 2 2 2 2 2 2 z 0 0 1 1 2 2 2 2 2 2 i 0 0 1 1 2 3 3 3 3 3 t 0 0 1 1 2 3 4 4 4 4 w 0 0 1 1 2 3 4 4 4 4 e 0 0 1 1 2 3 4 4 5 5 d 0 0 1 1 2 3 4 4 5 6 Tabell 2.3. Matris för att beräkna längsta gemensamma delsekvens mellan pulnitqed och sunzitwed. följande sätt: 1. Låt x = ɛ,i = n och j = m. 2. Jämför s i och t j : a) Om s i = t j låt x = s i + x,i = i 1 och j = j 1. b) Om i = 0 eller j = 0 returnera x. c) Om s i = t j jämför a = (i 1, j) med b = (i, j 1). Om a > b låt i = i 1 annars låt j = j 1. Upprepa från 2. Längsta gemensamma delsekvens mellan pulnitqed och sunzitwed är united. Funktionen F definieras som n F (x) = log P (x i ) (2.5) i=1 där P (x i ) är sannolikheten att bokstav x i påträffas på en slumpvis plats i lexikonet och fås genom frekvensanalys av bokstäverna i Laglex. Funktionen F påminner om begreppet informationsentropi som är ett mått på mängden information som finns i en sträng. Informationsentropi beskrivs av ekvationen n H(x) = P (x i ) log 2 P (x i ) (2.6) i=1 7
KAPITEL 2. TEORI ɛ p u l n i t q e d ɛ 0 0 0 0 0 0 0 0 0 0 s 0 0 0 0 0 0 0 0 0 0 u 0 0 1 1 1 1 1 1 1 1 n 0 0 1 1 2 2 2 2 2 2 z 0 0 1 1 2 2 2 2 2 2 i 0 0 1 1 2 3 3 3 3 3 t 0 0 1 1 2 3 4 4 4 4 w 0 0 1 1 2 3 4 4 4 4 e 0 0 1 1 2 3 4 4 5 5 d 0 0 1 1 2 3 4 4 5 6 Tabell 2.4. Siffrorna i fetstil visar hur längsta gemensamma delsekvens hittas med start på element (s n, t m ). De understrukna bokstäverna är när s i = t j och tillhör längsta gemensamma delsekvens. och är ett sätt beräkna minsta antalet bitar som behövs för att beskriva en sträng av tecken, baserat på frekvensen av tecken i källan. För united, umited beräknas L(united, umited) på följande sätt: 1. LCS(united, umited) = uited 2. P (u) = 0, 02 P (n) = 0, 05 P (m) = 0, 02 P (i) = 0, 06 P (t) = 0, 04 P (e) = 0, 07 och P (d) = 0, 02 3. F (uited) = 16, 14 F (united) = 19, 10 och F (umited) = 20, 00 4. Slutligen fås L(united, umited) = 1 2 16,14 19,10+20,00 = 0, 83 När informationsentropin, H(x), används istället för F (x) blir skillnaden mellan L(s, t) för bästa och näst bästa matchningen mindre. En mindre skillnad innebär att det blir svårare att fastställa en signifikant skillnad mellan bästa och näst bästa matchningen varför F (x) används istället. När Manchester City skrivs är bästa matchningen Manchester City FC och näst bästa matchningen är Manchester United FC. För H(x) gäller För F (x) gäller L(s, t) = (Manchester United FC, Manchester City) L(Manchester City FC, Manchester City) = 0, 24 0, 11 = 0, 13. L(s, t) = (Manchester United FC, Manchester City) L(Manchester City FC, Manchester City) = 0, 27 0, 08 = 0, 19. 8
2.2. STRÄNGLIKHETSALGORITMER 2.2.3 N-gramanalys Ett n-gram är en följd av n bokstäver. Ett mått på likhet mellan två strängar är att räkna antalet n-gram de har gemensamt. Ju fler gemensamma n-gram desto större likhet finns mellan strängarna. Vanligtvis används bigram, n = 2, och trigram, n = 3, vid analys. Att endast räkna antalet n-gram tar inte hänsyn till längdskillnaden mellan två strängar. Zobel och Dart[17] nämner Ukkonens n-gram avståndsfunktion som tar hänsyn till strängar med olika längder, GD n (s, t) = A(g, s) A(g, t) (2.7) g G n (s) G n (t) där A(g, x) är antalet förekomster av n-gram g i strängen x och G n (x) betecknar mängden av n-gram i strängen x. Ukkonens avståndsmått tar hänsyn till strängar som innehåller flera förekomster av samma n-gram. Zobel och Dart[17] visade i sin studie att mindre än två procent av orden i deras testdata 1 innehöll upprepningar av bigram och nästan inga ord innehöll upprepningar av trigram. Om man antar att s eller t inte innehåller upprepningar av n-gram kan Ukkonens avståndsfunktion skrivas som GD n(s, t) = G n (s) + G n (t) 2 G n (s) G n (t). (2.8) Bigrammen till United är {Un,ni,it,te,ed} och bigrammen till Umited är {Um,mi,it,te,ed}. De har tre gemensamma bigram {it,te,ed} och enligt Ukkonens avståndsfunktion blir avståndet Ett annat mått är Dice koefficient, GD 2(United,Umited) = 5 + 5 2 3 = 4. Dice n (s, t) = 2 G n(s) G n (t) G n (s) + G n (t) (2.9) där koefficienten får ett värde mellan 0 och 1 där 1 innebär att strängarna är identiska. För n = 2 och strängarna United och Umited blir Dice koefficient Dice 2 (United,Umited) = 2 3 5 + 5 = 3 5 N-gramanalys kan även användas för att hitta felstavade ord. Vissa bokstavskombinationer är ovanliga eller inte alls förekommande som till exempel zqp och dgf i svenskan[4]. Genom att bygga upp en n-dimensionell matris som innehåller n-grammen för det aktuella språket och jämföra ordets n-gram med dem som finns i matrisen upptäcks felstavade ord. Om n-grammet saknas i matrisen antas ordet vara felstavat. Fördelen med att använda n-gramanalys för att mäta likheten mellan två ord är att ingen språkspecifik information behöver användas till skillnad från när n- gramanalys används för att upptäcka felstavade ord. Nackdelen är att ingen hänsyn tas till n-grammens inbördes ordning i ordet. 1 Testdata bestod av tre lexikon. Det första innehöll cirka 30 000 ord, det andra innehöll cirka 113 000 ord och det tredje innehöll cirka 1 073 000 ord. 9
KAPITEL 2. TEORI 2.2.4 Soundex Algoritmer baserade på likhetsnycklar översätter strängar till nyckelvärden och därefter genom lexikonuppslagning försöker hitta ord med samma nyckelvärden som presenteras som rättningsförslag. Tanken är att strängar som liknar varandra har samma nyckelvärden. En sådan algoritm är Soundex som utarbetades 1918 av Odell och Russell för att underlätta sökningar på efternamn i USA vid folkräkningar. Idén bakom Soundex är att ord som låter likadana kommer att ha samma nyckelvärde. Soundex brukar kallas för en fonetisk algoritm där den fonetiska grundtanken är att det är svårare att stava till vokalljud än konsonantljud. Nyckeln beräknas på följande sätt[16]: 1. Låt första bokstaven i ordet bilda första tecknet i nyckeln. 2. Ta bort alla förekomster av a, e, h, i, o, u, w, y såvida någon av de inte är första bokstaven i ordet. 3. Tilldela resterande bokstäver i ordet följande siffror: b, f, p, v = 1 c, g, j, k, q, s, x, z = 2 d, t = 3 l = 4 m, n = 5 r = 6 4. Om två intilliggande bokstäver har samma siffra ta bort alla förekomster av siffran förutom en. 5. Låt resterande delen av nyckeln bildas av de tre siffrorna som ges av steg 4. Fyll ut nyckeln med nollor om den totala nyckellängden blir mindre än fyra tecken lång. På följande sätt fås nyckeln till United: 1. United, ta bort i och e enligt steg 2. 2. U533, a bort siffran 3 enligt steg 4. 3. U53, lägg till siffran 0 enligt steg 5 vilket slutligen ger nyckeln U530. Fördelen med Soundex är att det går snabbt att beräkna nyckeln som kan användas till lexikonuppslagning för att ge rättningsförslag. Nackdelen enligt Hall och Dowling[5] är att den gör grova översättningar av ord till nycklar. Exempelvis låter de engelska orden wait (= vänta) och weight (= vikt) likadana men genererar olika nycklar, W230 och W300. I en undersökning av Du[3] på sökning av liknande namn i internationella namnlistor, där liststorlekar mellan 5000 och 195 000 användes, hittade Soundex i snitt 53 procent relevanta matchningar. 10
2.3. REGELBASERADE ALGORITMER 2.2.5 SPEEDCOP 1984 presenterade Pollock och Zamora[10] SPEEDCOP, som är ett program för att rätta enbokstavsfel. Metoden som användes var att skapa ett lexikon baserat på likhetsnycklar, sortera lexikonet efter nyckelvärde och därefter presentera rättningsförslag genom att söka på ord med ett nyckelvärde som är ett visst avstånd från det felstavade ordets nyckelvärde. De två nycklarna som användes var skeletonnyckeln och omissionnyckeln. Skeletonnyckeln består av första bokstaven i ordet, unika förekomster av konsonanterna i den ordningen de står i ordet och unika förekomster av vokaler i den ordningen de står i ordet. Exempelvis blir skeletonnyckeln till United ntduie. Pollock och Zamora[10] motiverade skeletonnyckelns utseende på följande sätt: Den första bokstaven i ordet kommer oftast att vara rätt bokstav. En undersökning som gjordes av Pollock och Zamora [10][9] visade att endast 7,8 procent av felstavade ord innehöll en felaktig begynnelsebokstav. Motsvarande siffror för andra respektive tredje bokstaven var 11,7 procent och 19,2 procent. Konsonanter är betydelsefullare än vokaler. Konsonanternas ordning ändras oftast inte. Skeletonnyckelns värde påverkas inte av upprepade förekomster av samma bokstav, borttagning av bokstav med flera förekomster samt konsonant- och vokaltransposition. När rättningarna som gjordes med skeletonnyckeln analyserades visade det sig att den största anledningen till att skeletonnyckeln inte hittade relevanta rättningsförslag var att en konsonant var felaktig i ordets inledande bokstäver. Detta beror på att ju tidigare en konsonant är fel i ordet desto större blir nyckelavståndet mellan det felstavade ordet och rättningsförslagen. Avsaknaden av en konsonant var det vanligaste felet. Frekvensen på de konsonanter som saknades studerades och man fann följande ordning, från hög till låg frekvens: RSTNLCHDPGMFBYWVZXQKJ. Omissionnyckeln bildas genom de unika förekomsterna av konsonanterna i ordet sorterade i omvänd ordning, enligt frekvensordningen ovan, följt av de unika förekomsterna av vokalerna i den ordningen de står i ordet. Omissionnyckeln till United blir dntuie. 2.3 Regelbaserade algoritmer Regelbaserade algoritmer använder kunskap om stavfel där olika regler används för att omvandla det felstavade ordet till den korrekta stavningen. Genom att applicera alla regler på det felstavade ordet genereras nya ord. Om det nya ordet finns i lexikonet presenteras det som ett rättningsförslag. Rättningsförslagen rangordnas enligt 11
KAPITEL 2. TEORI sannolikheten för att stavfelet, som regeln baseras på, har inträffat[6]. Ju större sannolikhet att ett specifikt stavfel inträffar desto större rankning får rättningsförslaget som genereras till följd av regeln. En fördel med regelbaserade algoritmer är att det är lätt att, genom att lägga till nya regler, utöka funktionaliteten på rättstavningsprogrammet. Nackdelen är att det behövs en regel för varje typ av stavfel. 2.4 Probabilistiska algoritmer Probabilistiska algoritmer använder sannolikheter för att presentera det troligaste rättningsförslaget till ett felstavat ord. Två sorters sannolikheter används[6]: övergångssannolikheten mellan två bokstäver och sannolikheten att en bokstav har blandats ihop med en annan bokstav. Övergångssannolikheten mellan två bokstäver, exempelvis sannolikheten att m följs av ett a, är språkberoende och övergångssannolikheterna beskrivs med Markovmodeller. Sannolikheterna kan estimeras genom frekvensanalys av n-gram i texter för det aktuella språket. Sannolikheten att två bokstäver har blandats ihop kan estimeras genom att man studerar källan som texten härstammar från. Exempelvis kan olika personer ha olika fingersättningar vid tangentbordet vilket gör att sannolikheten att råka trycka på m istället för n kan skilja sig åt från person till person. Ett exempel på en probabilistisk algoritm är Bledsoe och Brownings algoritm som beskrivs av Kukich[6]. Algoritmen består av två delar: Ett bokstavsigenkänningssteg där en vektor som innehåller övergångssannolikheterna skapas för varje bokstav i alfabetet och ett ordigenkänningssteg där ett lexikon används för att välja de bokstäver vars sammansättning ger störst sannolikhet att skapa ett ord som finns i lexikonet. Bledsoe och Browning använder sig av Bayes sats för att beräkna sannolikheten att ordet X avsågs givet att det felstavade ordet Y skrevs, P (X Y ) = P (Y X)P (X). (2.10) P (Y ) 2.5 Neurala nät Neurala nät är uppbyggda av många sammankopplade noder som arbetar parallellt. Kunskap om omvärlden får nätverket genom en inlärningsprocess där kunskapen lagras i styrkan på kopplingarna, vikter, mellan noderna, neuroner. Genom inlärningsprocessen kan neurala nät med tiden anpassas för att lösa ett specifikt problem. De kan läras att känna igen vissa mönster av stavfel och med tiden kan träffsäkerheten ökas. En vanlig algoritm som används för inlärningsprocessen är backpropagationsalgoritmen. Genom att skicka tillbaka fel längs nätet ändras värdena på de vikterna som binder samman neuronerna för att minska felet[1]. Träningen avslutas när skillnaden mellan den förväntade utdatan och den verkliga utdatan från nätet 12
2.6. MÅTT PÅ EFFEKTIVITET ligger tillräckligt nära varandra. Nackdelen med backpropagationsalgoritmen är att inlärningsprocessen kan ta lång tid. 2.6 Mått på effektivitet Om officiella namnet är signifikant mer likt omskrivningen än övriga namn i Laglex ska en matchning anses ha hittats. För att avgöra hur bra en metod är på att hitta korrekta matchningar kan följande mått användas: 2 Z = M kf Q (2.11) där M är antalet matchningar, F är antalet felaktiga matchningar, k är en vikt som används för att vikta felaktiga matchningar mot korrekta och Q är antalet frågor, det vill säga antalet omskrivningar som ska matchas. Att avgöra om en matchning är fel är en subjektiv bedömning. Fotbollslaget Inter förknippas oftast med det italienska serie A laget, vars officiella namn är FC Internazionale Milano. Det finns ett finländskt division 1-lag som heter FC Inter. När ett spelbolag skriver Inter kan en matchning anses ha hittats, nämligen det finländska division 1-laget. Speciellt kommer en matchning hittas om man i Laglex ersätter FC Internazionale Milano med Inter som är så pass vedertaget namn på det italienska fotbollslaget att det inte är orimligt att ersätta det officiella namnet med Inter i Laglex. I båda fallen kan matchningar hittas och slutligen blir det en subjektiv bedömning om matchningen anses vara korrekt. I denna undersökning kommer fall som anses vara tveksamma att bedömas som oavgörbara och exkluderas ur resultatet. I bästa fall har matchningar hittats för alla omskrivningar och alla matchningar anses vara korrekta som ger Z = 1. I värsta fall har alla matchningar hittats och alla anses vara felaktiga som ger Z = k. Något typiskt värde på k finns inte och i denna undersökning har k = 5 valts efter diskussion. 2 Måttet har tagits fram tillsammans med David Jacquet från Svensk Matematikkonsult. 13
Kapitel 3 Utförande I detta kapitel redogörs testdata, användningsfall och algoritmer som ligger till grund för undersökningen. Fördelen med de valda algoritmerna tas upp samt slutligen ges en lista och motivering till algoritmer som inte valdes att undersökas. 3.1 Testdata och lexikon Tesdata består av följande två mängder: Data från spelbolag En lista med 580 namn har samlats in från fem spelbolag, se Appendix A för namnen på spelbolagen. Varje lag från de sex fotbollsligorna förekommer fem gånger i listan. Giltiga omskrivningar En lista med 580 distinkta namn har skapats som är giltiga omskrivningar enligt reglerna i avsnitt 1.2 för varje lag i de sex fotbollsligorna. För varje namn finns fem omskrivningar. Omskrivningarna är inte slumpmässigt skapade enligt omskrivningsreglerna utan skapade för att simulera hur ett spelbolag skulle kunna skriva ett namn. Manchester United kan enligt omskrivningsreglerna skrivas som tedmanchester Uni medan denna omskrivning inte anses vara giltig eftersom den förmodligen inte förekommer hos något spelbolag. Lexikonet Laglex innehåller lagen från de högsta fotbollsdivisionerna, säsong 2007/2008, från de 53 länder som är medlemmar i UEFA (Union of European Football Associations). De officiella namnen i Laglex, som är skrivna på engelska, innehåller vedertagna förkortningar som FC (Football Club) i England och motsvarande förkortningar för övriga länders lag. Laglex har sammanställts från Wikipedia [14] och innehåller 733 lag. 3.2 Användningsfall Stränglikhetsalgoritmen kommer att användas i mjukvara som har till uppgift att jämföra odds på fotbollsmatcher från olika spelbolag och spara dessa i en databas. 15
KAPITEL 3. UTFÖRANDE Stränglikhetsalgoritmens uppgift är att rangordna Laglex efter likhet mot ett omskrivet namn. Därefter ska beslut tas på om namnet som stränglikhetsalgoritmen anser är mest likt omskrivningen är tillräckligt likt för att anses vara en matchning. Om en matchning inte kan hittas ska mjukvaran skapa en lista med de n stycken, där n = 10 kommer att användas, namnen i Laglex som är mest likt omskrivningen. 3.3 Data som ska samlas in Resultatet från körningarna ska användas för att utvärdera algoritmernas effektivitet. Insamlingen av data behöver endast göras när en algoritms effektivitet ska undersökas. Resultatet från körningarna kan delas in i två fall: När en matchning har hittats När en matchning har hittats ska Z, ekvation 2.11, beräknas för matchningen. Vikten, k, för en felaktig matchning kommer att sättas till 5 när Z ska beräknas. När en matchning inte kan hittas Antalet gånger som det korrekta namnet förekommer bland de n förslagen ska räknas. Rangordningen är inte viktig och kommer därför inte att tas hänsyn till. Som beslutsunderlag för rekommendationen av vilken algoritm som bör användas av Svensk Matematikkonsult kommer värdet på Z från testdata från spelbolagen vara av störst betydelse. Algoritmen kommer att användas i syfte att automatisera matchningen av strängar och därför är betydelsen om matchningen finns i listan på n förslagen liten. Endast vid fall där även en människa kan ha svårt att avgöra vilket namn som verkligen avses kan en lista på relevanta förslag vara av intresse. Dessa fall antas vara få i förhållande till avgörbara fall varför detta inte påverkar rekommendationen. 3.4 Val av algoritmer 3.4.1 Kortaste avståndet I litteraturen nämns oftast stränglikhetsalgoritmer baserade på Dameraus fyra operationer. De flesta undersökningarna visar också att dessa algoritmer ger bäst precisionrecall-resultat[17] vilket är anledningen till att edit distance kommer att användas för denna undersökning. Damerau-Levenshtein, där transposition räknas som en operation, anses inte lämplig i denna undersökning då flesta av omskrivningarna förväntas vara förkortningar där omkastningar av bokstäver inte bör förekomma. I litteraturen var transposition relevant i fall som handlade om mekaniska fel som uppstår när användare skriver på tangentbordet. En frekvensanalys av bokstäverna i Laglex kommer att göras för att ge ett mer realistiskt kostnadsmått för tillägg, borttag och substitution av bokstäver. Kost- 16
3.4. VAL AV ALGORITMER nadsfunktionen definieras enligt följande: om s i / Laglex 1 om t i / Laglex och s i = ɛ C(s i, t i ) = 0 om s i = t i. k(1 P (s i )) + 1 om t i / Laglex och s i Laglex k(1 P (s i )) + (1 P (t i )) annars (3.1). Den potentiella matchningen kommer att anses vara en matchning om avståndet till det näst bästa förslaget är större eller lika med d där värdena d = 1, 5,d = 1, 75 och d = 2, 0 kommer att undersökas. Tillägg och borttagningar kommer i denna undersökning anses ha samma vikt vilket innebär att k = 1 i ekvation 3.1 kommer att användas. 3.4.2 Matematikkonsults likhetsmått De flesta omskrivningarna förväntas vara förkortningar som ibland följs av en punkt. Omskrivningen bör därför inte innehålla nya bokstäver som inte redan finns i det officiella namnet utan punkten förväntas vara det vanligaste fallet där ett nytt tecken har introducerats. Med bakgrund av detta kommer det omskrivningen oftast innehålla alla bokstäver som finns i det officiella namnet. Längsta gemensamma delsekvens som är kärnan i Matematikkonsults likhetsmått är därför en bra utgångspunkt för att fånga dessa fall. Speciellt är längsta gemensamma delsekvens bra för att fånga förkortningar av typen United Utd eftersom ingen hänsyn tas till att bokstäverna u,t och d inte ligger i följd i United. Fördelning för att hitta en matchning Låt l beteckna utfallet av Svensk Matematikkonsults likhetsmått som används för att mäta likheten mellan två strängar där l = 0 betyder att ingen likhet finns mellan två strängar och l = 1 betyder att strängarna är identiska. Alla l i utom det som har lägst värde, l 0, antas kunna beskrivas med betafördelningen, se bilaga B. Värdet l 0 är likheten mellan omskrivningen och namnet i Laglex som den är mest lik. Genom signifikanstest kommer en matchning att försöka hittas där hypotesen är: H 0 : s = t om d 0 > I a (α, β), H 1 : s t om d 0 I a (α, β). Genom signifikanstest kommer hypotesen att prövas för a = 0, 0001, a = 0, 00001 och a = 0, 000001. Medelvärde och varians definieras enligt: d = 1 N (d i ), (3.2) N i=1 v = 1 (d i d) 2. (3.3) N i=1 17
KAPITEL 3. UTFÖRANDE Parametrarna α och β för betafördelningen beräknas enligt: 3.4.3 N-gramanalys d(1 d) α = d( 1), v (3.4) d(1 d) β = (1 d)( 1). v (3.5) Fördelen med n-gramanalys är att metoden är språkoberoende samt ingen statistisk data behöver användas när metoden används för en undersökning i stränglikhet. De flesta omskrivningarna förväntas vara förkortningar varför omskrivningen av ett namn och officiella namnet i Laglex bör ha många gemensamma n-gram. Dessutom kan metoden fånga upp fall som FC Copenhagen Copenhagen FC eftersom ingen hänsyn tas till n-grammens ordning i namnen. Omskrivningarna antas sakna upprepningar av bigram och trigram. Därför kommer ekvation 2.8, Ukkonens avståndsfunktion, att användas. Ukkonens avståndsfunktion har valts för att den tar hänsyn till längdskillnaden mellan två strängar. Den potentiella matchningen kommer att anses vara en matchning om avståndet till det näst bästa förslaget är större eller lika med d där värdena d = 1, d = 2 och d = 3 kommer att undersökas. 3.4.4 Algoritmer och metoder som inte valdes från teoriavsnittet Nedan visas en lista och en kort motivering av algoritmer och metoder som togs upp i teoriavsnittet men inte valdes för utvärdering: Soundex Soundex utvecklades för att söka på engelska efternamn. En undersökning av Du[3] på approximativ matchning av namn i en internationell databas visade att Soundex hade sämst precision i jämförelse med edit distance och n- gramanalys. Eftersom Soundex utvecklades för engelska efternamn samt med bakgrund av Dus[3] resultat kommer den inte tas med i denna undersökning. SPEEDCOP SPEEDCOP är ett program för att rätta enbokstavsfel. De flesta omskrivningar förväntas vara förkortningar där fler än en bokstav har tagits bort och därför tas inte SPEEDCOP med i undersökningen. Regelbaserade metoder Regler för att matcha omskrivningar med namnen i Laglex tros existera. I problemdefinitionen angavs att ett av sätten att skriva om ett namn är att de första n bokstäverna blir de sista n bokstäverna. I praktiken kommer denna regel nästan alltid gälla i fall där exempelvis FC kastas om, Copenhagen FC FC Copenhagen. Dessa typer av regler kommer dock inte att undersökas i ramen för detta examensarbete. Reglerna ses dessutom endast som komplement till den algoritmen som kommer att väljas för matchning av omskrivningar och officiella namn i Laglex. 18
3.4. VAL AV ALGORITMER Probabilistiska metoder Övergångssannolikheter för bokstäver och tecken kommer inte att tas fram. Däremot kommer frekvensanalys att göras för bokstäver och tecken som finns i Laglex som anses vara tillräckligt för denna undersökning. Neurala nät Neurala nät har inte fått ett stort utrymme i de artiklar som har lästs i samband med stränglikhet. En stor nackdel med neruala nät är inlärningstiden. Dess träffsäkerhet har heller inte nämnts i någon större utsträckning. Neurala nät anses därför vara utanför undersökningens ramar och kommer därför inte tas med. 19
Kapitel 4 Resultat I detta kapitel presenteras resultaten av körningarna med de utvalda algoritmerna. I slutet av kapitlet presenteras värdena för Z, effektivtetsmåttet, som ligger till grund för rekommendationen i senare avsnitt. 4.1 Notation Följande förkortningar används i tabellerna: Tr = Tröskel för att en matchning ska anses ha hittats. 1 KM = Korrekta matchningar. FM = Felaktiga matchningar. Ja10 = Det korrekta namnet finns bland de 10 bästa förslagen. Nej10 = Det korrekta namnet finns inte bland de 10 bästa förslagen. Oav = Oavgörbart om det korrekta namnet finns bland de 10 bästa förslagen. 4.2 Algoritmernas snabbhet Algoritmerna implementerades i Java, JDK 5.0. Datorn som används i undersökningen är en Intel Pentium 4 med 1.66 GHz CPU och 2 GB RAM. Algoritmen kommer inte användas i en situation där frekventa uppslagningar görs och snabb respons krävs från mjukvaran. Om algoritmen klarar av att bearbeta 500 namn på en halvtimme anses den tillräckligt snabb för uppgiften. 1 För edit distance och n-gramanalys anses en matchning ha hittats om avståndet mellan det bästa och näst bästa förslaget är större eller lika med värdet i denna kolumn. För Matematikkonsults likhetsmått ska ett signifikanstest göras där en matchning har hittas om d 0 > I a där a ges av värdet i denna kolumn. 21
KAPITEL 4. RESULTAT Av de undersökta algoritmerna är n-gramanalys snabbast där listan med 580 namn bearbetades på cirka fem sekunder. Näst snabbast är Matematikkonsults likhetsmått där listan bearbetades på cirka tio sekunder. Edit distance bearbetade listan på cirka 50 sekunder. I tiderna ingår även beslutssteget där den potentiella matchningen undersöks för att avgöra om den är signifikant mer lik namnet i Laglex än den näst bästa matchningen. Ingen av de undersökta algoritmerna anses därför vara långsam nog för att inte klara av uppgiften att bearbeta 500 namn på en halvtime och därför kommer snabbhet inte vara en del av bedömningen när rekommendationen ges. 4.3 Exkluderade omskrivningar från undersökningen Tio omskrivningar anses oavgörbara i undersökningen. 2 Omskrivningarna gäller det italienska laget FC Internazionale Milano och det engelska laget Arsenal FC. Omskrivningarna till FC Internazionale Milano innehåller varken Internazionale eller Milano. Några exempel på omskrivningarna från testdatamängderna är Inter, F.C. Inter och FC Inter. Omskrivningarna anses oavgörbara på grund av för stor likhet till det finländska laget FC Inter. Omskrivningarna till det engelska laget Arsenal FC anses oavgörbara på grund av för stor likhet till det ukrainska laget FC Arsenal Kyiv som kan skrivas som Arsenal eller FC Arsenal. 4.4 Körningar med data från spelbolag Matematikkonsults likhetsmått med tr = 0, 0001 gjorde 506 korrekta matchningar vilket är mest av de undersökta algoritmerna, se tabell 4.1. Jämfört med övriga algoritmer gjorde avståndsmåttet även många felaktiga matchningar, 18 stycken. Endast edit distance med tr = 1, 5 gjorde fler felaktiga matchningar, 26 stycken. Dock var ingen av de undersökta trösklarna för Matematikkonsults likhetsmått liten nog för att eliminera felaktiga matchningar. Endast tre gånger fanns inte den rätta matchningen bland de tio bästa förslagen vilket är det bästa resultatet i undersökningen. Nämnvärt bland resultaten är n-gramanalys med trigram som för det lägsta värdet på tröskeln, tr = 1, endast gjorde två felaktiga matchningar samtidigt som algoritmen gjorde 412 korrekta matchningar. I båda fallen matchades Tottenham FC felaktigen till Fulham FC där det korrekta namnet är Tottenham Hotspur FC. För samma värde på tröskeln, tr = 1, gjorde bigram-analys 453 korrekta matchningar och 17 felaktiga matchningar. En jämförelse mellan båda visar också att trigramanalys har fler fall än bigram-analys för antalet gånger den korrekta matchning finns och inte finns bland de tio bästa förslagen. 2 Dessa fall anses oavgörbara med förutsättningen att ingen ytterligare information är känd om omskrivningarna mer än att de är namn på fotbollslag från högsta divisionerna i länder som är medlemmar i UEFA. 22
4.5. KÖRNINGAR MED FIKTIVA DATA Bland resultaten för edit distance är tr = 2 den som anses mest tillfredsställande med 374 korrekta matchningar och inga felaktiga matchningar. Algoritm Tr KM FM Ja10 Nej10 Oav Totalt Edit distance 1,5 417 26 87 40 10 580 Edit distance 1,75 409 18 103 40 10 580 Edit distance 2,0 374 0 156 40 10 580 N-gram (bigram) 1 453 17 50 50 10 580 N-gram (bigram) 2 413 10 97 50 10 580 N-gram (bigram) 3 389 0 131 50 10 580 N-gram (trigram) 1 412 2 81 75 10 580 N-gram (trigram) 2 358 0 137 75 10 580 N-gram (trigram) 3 290 0 205 75 10 580 Matematikkonsults mått 0,0001 506 18 43 3 10 580 Matematikkonsults mått 0,00001 492 15 60 3 10 580 Matematikkonsults mått 0,000001 439 4 124 3 10 580 Tabell 4.1. Resultat från körningar med data från spelbolag. 4.5 Körningar med fiktiva data N-gramanalys med bigram och tr = 1 har både flest antal korrekta matchningar, 479 stycken, och flest antal felaktiga matchningar, 21 stycken, se tabell 4.2. N-gramanalys ökade generellt i både antalet korrekta matchningar och antalet felaktiga matchningar. Däremot minskade antalet fall där den korrekta matchningen inte hittades bland de tio bästa förslagen från 50 till 32 för bigram och från 75 till 42 för trigram. Edit distance minskade i antalet korrekta matchningar, felaktiga matchningar och fall där den korrekta matchningen inte finns bland de tio bästa förslagen. Denna gång lyckades inte de felaktiga matchningarna elimineras för tr = 2, 0 utan fyra felaktiga matchningar hittades. Matematikkonsults likhetsmått är den enda algoritmen som ökade i antalet fall där den korrekta matchningen inte finns med bland de tio bästa förslagen från tre till tio fall. Både antalet korrekta matchningar och felaktiga matchningar minskade. Återigen eliminerades inte antalet felaktiga matchningar utan två felaktiga matchningar gjordes för den lägsta tröskeln tr = 0, 000001. Omskrivningarna Atl. Madrid och Atl Madrid matchades felaktigen till Real Madrid CF där den korrekta matchningen är Club Atletico De Madrid. 4.6 Mått på effektivitet Låt oss nu jämföra algoritmerna med avseende på effektivitetsmåttet Z som definierades i avsnitt 2.6. 23
KAPITEL 4. RESULTAT Algoritm Tr KM FM Ja10 Nej10 Oav Totalt Edit distance 1,5 364 19 156 31 10 580 Edit distance 1,75 361 14 164 31 10 580 Edit distance 2,0 327 4 208 31 10 580 N-gram (bigram) 1 479 21 35 35 10 580 N-gram (bigram) 2 438 11 86 35 10 580 N-gram (bigram) 3 411 0 124 35 10 580 N-gram (trigram) 1 421 7 100 42 10 580 N-gram (trigram) 2 367 3 158 42 10 580 N-gram (trigram) 3 312 0 216 42 10 580 Matematikkonsults mått 0,0001 466 9 85 10 10 580 Matematikkonsults mått 0,00001 410 6 144 10 10 580 Matematikkonsults mått 0,000001 343 2 215 10 10 580 Tabell 4.2. Resultat från körningar med fiktiva data. Generellt är värdena på Z för Matematikkonsults likhetsmått och edit distance större för testdata från spelbolagen än för fiktiv data. För N-gramanalys är det tvärtom. För både data från spelbolag och fiktiv data har Matematikkonsults likhetsmått högst värde på Z, 0,75 respektive 0,74. Likhetsmåttet, för tr = 0, 000001, är den algoritm som även har störst skillnad på Z mellan de båda testfallen där Z = 0, 73 för data från spelbolag och Z = 0, 58 för fiktiva data. Största värdet på Z för N-gramanalys har bigram-analys för tr = 1 där Z = 0, 70 för data från spelbolag och Z = 0, 71 för fiktiva data. Värdena på Z är generellt mindre för edit distance jämfört med övriga algoritmer där största värdet är Z = 0, 64 för tr = 2, 0 för testdata från spelbolag och Z = 0, 54 för fiktiva data. 24
4.6. MÅTT PÅ EFFEKTIVITET Algoritm Tr Z Matematikkonsults mått 0,0001 0,75 Matematikkonsults mått 0,00001 0,74 Matematikkonsults mått 0,000001 0,73 N-gram (trigram) 1 0,70 N-gram (bigram) 3 0,67 N-gram (bigram) 1 0,66 N-gram (bigram) 2 0,64 Edit distance 2,0 0,64 N-gram (trigram) 2 0,62 Edit distance 1,75 0,58 Edit distance 1,5 0,54 N-gram (trigram) 3 0,50 Tabell 4.3. Resultat för effektivitetsmåttet Z från körningar med data från spelbolag. Algoritm Tr Z Matematikkonsults mått 0,0001 0,74 N-gram (bigram) 3 0,71 N-gram (bigram) 1 0,68 N-gram (bigram) 2 0,68 N-gram (trigram) 1 0,68 Matematikkonsults mått 0,00001 0,67 N-gram (trigram) 2 0,61 Matematikkonsults mått 0,000001 0,58 Edit distance 2,0 0,54 N-gram (trigram) 3 0,54 Edit distance 1,75 0,53 Edit distance 1,5 0,50 Tabell 4.4. Resultat för effektivitetsmåttet Z från körningar med fiktiva data. 25
Kapitel 5 Diskussion I detta kapitel diskuteras resultaten från körningarna med stränglikhetsalgoritmerna. Även testdata och Laglex diskuteras för att visa deras påverkan på undersökningen. Kapitlet avslutas med att jämföra resultaten av denna undersökning med ett tidigare examensarbete av Du[3]. 5.1 Testdata och Laglex Även om många spelbolag benämner lag på olika sätt är det sällan fem bolag benämner samma lag på fem olika sätt. I undersökningen med testdata från spelbolagen finns det inte något exempel där samma lag stavas på fem olika sätt. Två eller tre omskrivningar per namn är vanligast. Vanliga omskrivningar är att förkortningar som FC skrivs med eller utan punkt eller utelämnas. Testdata och namnen i Laglex manipulerades inte. En närmare undersökning av testdata visar att det finns regler som kan införas för att förbättra och underlätta matchningen av omskrivningarna. Ett exempel är alla förkortningar för FC, Football Club, i England och motsvarande förkortningar som finns i övriga länder. FC kan skrivas om och användas på följande sätt i ett namn: FC. F.C F.C. Någon av ovanstående variationer kan skrivas antingen före eller efter namnet. En regel skulle kunna införas som tar bort punkterna och placerar FC sist i namnet. Även i Laglex är användningen av punkt inkonsekvent. I Laglex förkortas Football Club F.C. eller FC. Många namn som är officiella används nästan aldrig av vare sig spelbolag eller supportrar. De officiella namnen i Laglex skulle därför kunna ersättas med de mer välkända och vedertagna namnen på lagen för att underlätta matchningen. Några lag där omskrivningen är vanligare än officiella namnet är: 27