ZNANSTVENI PRISPEVKI B Delovanje algoritma Jaro-Winkler glede na mesto pojavljanja tipografskih napak Uroš Godnov Fakulteta za management, Cankarjeva 5, 6000 Koper uros.godnov@fm-kp.si Izvleček Z decentralizacijo podatkovnih zbirk se je pojavila potreba po integraciji podatkov. Ob odsotnosti lastnosti, ki bi enolično določala zapis podatkov, in ob prisotnosti različnih tipografskih napak se pojavi problem učinkovite integracije podatkov. V članku predstavljamo simulacijo algoritma Jaro--Winkler, ki omogoča samodejno spajanje podatkov s tipografskimi napakami. Želeli smo preveriti, kako se algoritem Jaro-Winkler obnese glede na mesto pojavljanja tipografske napake. Poleg tega smo simulirali tudi delovanje hibridne različice algoritma Jaro-Winkler in rezultate primerjali med seboj. Simulacija je pokazala, da je hibridni algoritem Jaro-Winkler neobčutljiv na mesto pojavljanja tipografskih napak, osnovni pa deluje bolje, če se tipografske napake ne pojavljajo na začetku podatkov, ki jih integriramo. Ključne besede: algoritem Jaro-Winkler, tipografske napake, hibridni algoritem Jaro-Winkler, kakovost podatkov, integracija podatkov. Abstract Simulation of the Jaro-Winkler Algorithm Depending on the Position of Typographical Errors Database decentralization created the need for data integration. Where no unique data attributes are available and various typographical errors are present, efficient data integration can present a problem. This article describes a simulation of the Jaro-Winkler algorithm, which facilitates automatic matching of data with typographic errors. Our goal was to test the Jaro-Winkler algorithm with regard to the position of the typographical error. We have additionally tested the hybrid version of the Jaro-Winkler algorithm and compared the results of both tests. Our simulation has shown that the hybrid Jaro-Winkler algorithm is not sensitive to the position of the error, however the basic Jaro-Winkler algorithm performs better if typographical errors do not occur at the beginning of the data we are integrating. Keywords: Jaro-Winkler, typographical mistakes, hybrid Jaro-Winkler, data quality, data integration. 1 UVOD Pomembnost področja kakovosti podatkov že desetletje nakazujejo različne raziskave (Russom, 2006). Med novejšimi izstopa raziskava iz leta 2009 z naslovom The State of Data Quality Today (Waddington, 2009) ter Gartnerjeve ugotovitve iz leta 2010. Raziskava iz leta 2009 podaja te ključne ugotovitve: ■ tretjina anketirancev ocenjuje kakovost podatkov kot slabo in le štirje odstotki kot odlično; ■ 6 3 odstotkov anketirancev ni znalo oceniti stroškov neka-kovostnih podatkov; ■ tljučni prepreki uvedbi upravljanja s kakovostjo podatkov sta »menedžment področja kakovosti podatkov ne vidi kot pomembno področje« ter »težko je predstaviti področje kakovosti podatkov kot področje, ki potrebuje pozornost oz. ukrepanje«; ■ ključni trije problemi podatkov v smislu kakovosti so, ker »podatki niso standardizirani«, »podatki manjkajo in potrebujejo dopolnitev« ter »podatki so netočni in potrebujejo popravek«. Standardizacija, dopolnitve in popravki zahtevajo ogromno časa in običajno pomenijo največji delež aktivnosti pri izgradnji analitičnega sistema, še posebno ko moramo integrirati podatke iz več virov. Fayyad idr. (1996) navajajo, da je največ dela (okoli 90 %) namenjenega odstranjevanju podvojenih zapisov. Integracija podatkov ter identifikacija podvojenih zapisov sta izhodišče našega raziskovanja. Z nastankom relacijskih podatkovnih zbirk so se pojavili tudi primarni ključi, ki enolično določajo posamezno vr- stico. Vendar moramo pogosto združevati podatke iz različnih virov, v katerih ne obstaja primarni ključ oz. ni niti atributa, ki bi bil lahko kandidat za primarni ključ. V tem primeru se moramo zanesti na kombinacijo atributov, ki najbolje določajo posamezni zapis. Tako bi lahko npr. posamezno stranko določili s kombinacijo imena, priimka in naslova. Na težave naletimo, ko so atributi zamenjani (»John Smith« vs. »Smith John«), vsebujejo tipografske napake (»John Smith« vs. »John Smiht«), so združeni (»John Smith« vs. »Mr. John Smith Jr.«) ali pa kombinacija vsega naštetega (»John Smith« vs. »Mr. Smiht John Jr.«). Povezovanje zapisov z omenjenimi značilnostmi je bilo v preteklosti zamudno ročno delo, ki pa se je s pojavom sodobnih orodij za povezovanje in odstranjevanje podvojenih podatkov v veliki meri avtomatiziralo. Za povezovanje podatkov ter odstranjevanje podvojenih podatkov uporabljajo orodja različne algoritme (npr. Levensthein distance, Jaccard index, algoritem Jaro-Winkler, Simil index, q-grams, hibridne modele). V članku se bomo osredinili na algoritma edit distance in Jaro-Winkler, skupaj z njunima hibridnima izpeljankama. Algoritmu Jaro-Winkler Cohen idr. (2003) ter Bilenko idr. (2003) pripisujejo pomen predvsem pri povezovanju in odstranjevanju podvojenih podatkov krajših zapisov, tj. imen in priimkov, vendar ne postrežejo z empiričnimi podatki. Članek sestoji iz treh delov. V prvem delu se bomo posvetili teoretičnemu ozadju povezovanja podatkov ter odstranjevanja podvojenih podatkov. Sledi simulacija delovanja algoritma edit Jaro-Winkler skupaj s hribridno različico na različno okvarjenih zapisih. Tretji del bomo sklenili s ključnimi ugotovitvami in z razpravo. 2 TEORETIČNO OZADJE Pred letom 1990 so v ameriškem statističnem uradu pri povezovanju in odstranjevanju podvojenih podatkov v aplikaciji Decennial Census potrebovali 3000 uradnikov v obdobju treh mesecev. Uporaba računalniško podprtih algoritmov je zmanjšala potrebo po uradnikih na 200 v obdobju šestih tednov. Podobno je bilo na področju statistike kmetijstva. Pred letom 1992 so za delo pri integraciji podatkov potrebovali 75 uradnikov v obdobju treh mesecev, kar znese ob upoštevanju 168-urnega mesečnega dela 37800 ur. Potrebni čas so z uvedbo računalniško podprtih algoritmov zmanjšali na 6500 ur (Winkler 1995). Integracija podatkov ima v literaturi različna poimenovanja. McCallum in Wellner (2003) jo poimenujeta čiščenje podatkov, Tejada idr. (2001) identifikacijo objektov, Winkler (2006) kot povezovanje zapisov ter Gravano idr. (2001) s približnim usklajevanjem zapisov. Integracija podatkov je predmet raziskovanj različnih področij, npr. statistike, podatkovnih zbirk, digitalnih knjižnic ter podatkovnega rudarjenja (Bilenko idr. 2003). Potreba in s tem težave pri integraciji podatkov so se pojavile šele takrat, ko so se v organizacijah pojavile decentralizirane uporabniške rešitve. V obdobju osrednjih računalnikov teh težav ni bilo, saj je obstajala osrednja podatkovna zbirka pod budnim očesom računalniških inženirjev. Decentralizirane uporabniške rešitve so prinesle večjo svobodo uporabnikov ter boljšo prilagodljivost. Hkrati pa so se pojavile tudi različne inačice posameznih podatkov, kar je s pojavom potrebe po analitičnih rešitvah prineslo nujnost odločitve, katera inačica zapisa je prava. Poleg omenjene odločitve sta se pojavili še dve potrebi, in sicer potreba po odstranjevanju podvojenih podatkov ter potreba po dopolnitvi in/ali popravkih osrednjih zapisov iz drugih informacijskih virov oz. vice versa. Razlike v zapisih iz različnih informacijskih virov po navedbi Bilenka idr. (2003) ter Jina idr. (2003) nastanejo zaradi različnih načinov shranjevanja podatkov, tipografskih napak, skeniranja dokumentov ter krajšav. Manjše tipografske napake so posebno pogoste pri skeniranju ročno pisanih dokumentov (Winkler 2006). Winkler (2006) je pokazal, da ima tudi integracija podatkov iz zelo kakovostnih informacijskih virov lahko več kot 20 odstotkov napak pri povezovanju imen ter več kot 10 odstotkov napak pri povezovanju priimkov. Model povezovanja podatkov je prvi predstavil Newcombe s soavtorji (1959), Fellegi in Sunter (1969) pa sta ga leta 1969 matematično opisala. Model temelji na verjetnostih, testiranju hipotez ter relativnih frekvencah. Največ napredka pri razvoju algoritmov je bilo na področju algoritmov za povezovanje znakovnih zapisov s tipografskimi napakami. Za samodejno povezovanje podatkov obstaja več algoritmov, ki bi jih lahko ločili med seboj glede na prisotnost/odsotnost tipografskih napak ter prisotnost/odsotnost vedenja, kako se pojavljajo napake. V članku se osredinjamo na algoritme iz skupine, v kateri se pojavljajo tipografske napake, hkrati pa nima- mo vedenja o tem, ali obstaja kakšen vzorec, kako se pojavljajo te napake. Najbolj znana algoritma iz omenjene skupine sta algoritma Jaro-Winkler1 ter edit distance (Winkler 2006). Algoritem edit distance naj bi bil po mnenju Cohena idr. (2003) trenutno najbolj učinkovit algoritem za povezovanje podatkov iz omenjene skupine, čemur pa nasprotujeta npr. Sarka in Mauri (2011), ki favorizirata algoritem Jaro-Winkler. Pojavljajo se tudi algoritmi za povezovanje zapisov s tipografskimi napakami, ki temeljijo na drugačnih pristopih, npr. na strojnem učenju (Stenetorp idr. 2011). 3 NAMEN ČLANKA V članku smo se osredinili na algoritem Jaro-Win-kler, katerega delovanje sta simulirala Sarka in Mauri (2011). Vendar je njuna simulacija temeljila samo na enem pokvarjenem nizu podatkov, hibridne različice algoritma Jaro-Winkler pa se sploh nista lotila. Naša simulacija je veliko bolj obsežna in zato tudi natančna, saj je bila analiza narejena glede na mesto pojavljanja tipografskih napak, hkrati pa smo analizo naredili tudi na 150 oz. pri hibridni različici celo na 200 nizih pokvarjenih podatkov. V literaturi nismo našli tako podrobne simulacije algoritma Jaro-Winkler, še posebno ne njene hibridne različice, sploh pa ne glede na mesto pojavljanja tipografskih napak, o čemer nismo našli nobene simulacije. Poleg tega smo želeli preveriti, ali hibridna različica vpliva na občutljivost algoritma Jaro-Win-kler na pojavljanje napak na začetku zapisov in kako. Namen članka je torej trojen: ■ podrobna analiza delovanja algoritma Jaro-Win-kler glede na mesto pojavljanja tipografskih napak; ■ podrobna analiza delovanja hibridne različice algoritma Jaro-Winkler glede na mesto pojavljanja tipografskih napak; ■ preverjanje občutljivosti hibridne različice algoritma Jaro-Winkler glede na mesto pojavljanja tipografskih napak. 4 METODOLOGIJA Za simulacijo učinkovitosti delovanja algoritma Ja-ro-Winkler smo uporabili podatkovno zbirko Ad-ventureWorks, ki je podatkovna zbirka strežnika MS 1 Algoritem Jaro-Winkler je nadgradnja algoritma Jaro, ki ga je predstavil Jaro (1989) za povezovanje podatkov s tipografskimi napakami. SQL 2005 (ter novejših različic), namenjena učenju. Uporabili smo lastnosti Ime ter Priimek entitete Oseba (dbo.DimCustomer). Uporabljeni lastnosti smo »pokvarili« nadzorovano, in sicer smo območje napak razdelili na tri območja, tj. začetno območje (prva tretjina), druga tretjina (osrednji del) ter končno območje (zadnja tretjina). Podatke so pokvarili takole: v zanki smo zapise pokvarili popolnoma naključno, in sicer v prvi tretjini zapisa, v osrednjem delu in v zadnji tretjini zapisa. Mesto in »težo« napake je shranjena procedura izbrala naključno (slika 1). Tako se je lahko npr. na posameznem območju zapisa napaka pojavila na enem mestu, na dveh mestih ali več. Ker smo tipografske napake povzročili nadzorovano, smo vedeli, kateri zapisi spadajo skupaj, in temu primerno smo lahko tudi izračunali učinkovitost delovanja algoritma Jaro-Winkler, in sicer smo v vsakem pokvarjenem nizu podatkov izračunali odstotek napak pri povezovanju zapisov. Zanimala nas je le pravilnost povezovanja zapisov, pri čemer smo zanemarili hitrost delovanja algoritma. Ta je problematična pri uporabi hibridne različice algoritma Jaro-Winkler, saj število potrebnih operacij eksponentno narašča. V takšnih primerih je nujna uporaba inteligentno predizbranih zapisov, v našem primeru smo uporabili kartezijski produkt. V realnih poslovnih okoliščinah bi bil takšen pristop tako rekoč neučinkovit, saj bi postopek obdelovanja zapisa potekal prepočasi. Ob upoštevanju 1000 zapisov, potrebnih povezovanja, in velikosti zapisov 20 znakov (podnizi so dolgi polovico dolžine celotnega zapisa + 1), mora hibridni algoritem obdelati 1000 x 1000 x 11 x 11 = 121,000.000 zapisov. 4.1 Algoritem Jaro-Winkler Algoritem Jaro kombinira število skupnih znakov ter število potrebnih operacij, da niz s pretvorimo v niz t. D(s, t) = T(n + i| + —) (1) 3 \lsl \t\ m J m število skupnih znakov lsl ter ltl dolžina nizov n število potrebnih operacij (transpositions) Za izračun m pridejo v poštev le znaki, ki so blizu skupaj. Bližina je določena kot razdalja med položaji posameznih znakov (angl. by character position distance, CPD). Bližina algoritmu pove, v kakšnem DECLARE gi AS INT = AS INT = 0, AS INT ; WHILE ( £i < 3 ) | BEGIN SET §i += 1 SET gj = gi WITH 0, RandoirNumbersCTE AS ( SELECT Custosierld, FROM RAND( CHECKSUM(NEWIO( ) ) % 1000000000 Customerld) AS RandoirNumberl, RAND ( CHECKSUM (NEWIO()) % 1090860009 • Customerld) AS Randoi*Number2, RAND(CHECK5UM(NEV