99
Slovensk´atechnick´ a univerzita v Bratislave Fakulta informatiky a informaˇ cn´ ych technol´ ogi´ ı FIIT-5212-64389 MartinLipt´ak AUTOMATIZOVAN ´ E ˇ CISTENIE VEREJN ´ YCH D ´ AT Bakal´ arska pr´ aca aj 2012 Ved´ uci pr´ ace: Ing. J´an Suchal ˇ Studijn´ y program: Informatika ˇ Studijn´ y odbor: 9.2.1 Informatika ´ Ustav informatiky a softv´ erov´ eho inˇ zinierstva, FIIT STU v Bratislave

Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Embed Size (px)

Citation preview

Page 1: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Slovenska technicka univerzita v Bratislave

Fakulta informatiky a informacnych technologiı

FIIT-5212-64389

Martin Liptak

AUTOMATIZOVANE CISTENIE VEREJNYCH DAT

Bakalarska praca

Maj 2012

Veduci prace: Ing. Jan Suchal

Studijny program: Informatika

Studijny odbor: 9.2.1 Informatika

Ustav informatiky a softveroveho inzinierstva, FIIT STU v Bratislave

Page 2: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 3: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Anotacia

Slovenska technicka univerzita v Bratislave

FAKULTA INFORMATIKY A INFORMACNYCH TECHNOLOGII

Studijny program: Informatika

Autor: Martin Liptak

Bakalarska praca: Automatizovane cistenie verejnych dat

Veduci bakalarskej prace: Ing. Jan Suchal

Maj 2012

Mnohe statne institucie maju povinnost’ zverejnovat’ udaje na webe. Kym rozne registre

a vestnıky su dolezite pre spravnu obchodnu komunikaciu, d’alsie udaje umoznuju verejnu

kontrolu fungovania statnych instituciı. Napriek tomu, ze tieto udaje su verejne dostupne

na webe, ich format a struktura je casto nevhodny pre strojove spracovanie. Nasim ciel’om

je vycistit’ tieto udaje, aby sme umoznili ich d’alsie strojove spracovanie.

Po stiahnutı udajov z roznych verejnych webovych zdrojov (naprıklad obchodny regis-

ter, zivnostensky register, Statisticky urad, Ministerstvo spravodlivosti, centralny regis-

ter zmluv) v roznych formatoch (html, pdf, xls), parsovanım extrahujeme strukturovane

udaje do vhodneho formatu (relacna databaza). Nasledne vyvinieme metodu zalozenu na

strojovom ucenı pre vycistenie tychto udajov od preklepov a d’alsıch nejednoznacnostı

(rozne tituly, zmena adresy). Metodu overıme porovnanım s baseline algoritmom a rucne

oznacenymi datami.

Verıme, ze vysledok nasej prace aspon v malej miere pomoze organizaciam ako Aliancia

Fair-play alebo Transparency International v usilı o zvysenie transparentnosti na Sloven-

sku.

Page 4: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 5: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Annotation

Slovak University of Technology Bratislava

FACULTY OF INFORMATICS AND INFORMATION TECHNOLOGIES

Degree Course: Informatics

Author: Martin Liptak

Bachelor Thesis: Automated public data refining

Supervisor: Ing. Jan Suchal

May 2012

Many government institutions are legally obliged to share some data on the web. While

various registers and bulletins are essential for proper business communication, another

data enables public oversight over our government. Although this data is publicly avai-

lable on the Internet, its format and structure is often unsuitable for machine processing.

Our goal is to refine this data to make further processing possible. After downloading raw

data from various public web sources (Business Register, The Trade Register, Statistical

Office, Ministry of Justice, Central register of contracts, etc.) in different formats (html,

pdf, xls), we extract structured data using parsing into a common format (relational data-

base). Then we develop a machine learning-based method for cleaning off typos and other

disambiguities (varying academic degrees, change of address). We evaluate our method

using both baseline algorithm and manually labeled data.

We believe, that results of our work help at least in a small extent organizations like Fair

Play Alliance or Transparency International in their effort to increase transparency in

Slovakia.

Page 6: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 7: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Tuto pracu venujem vsetkym, ktorı sa usiluju o zlepsenie transparentnosti statnych

instituciı na Slovensku.

i

Page 8: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

ii

Page 9: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Obsah

Uvod 1

1 Zdroje verejnych dat 3

1.1 Statisticky register organizaciı . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Obchodny register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Zivnostensky register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Obchodny vestnık . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5 Centralny register zmluv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.6 eGovZmluvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.7 Grantovy system Ministerstva kultury SR . . . . . . . . . . . . . . . . . . 6

1.8 Vestnık verejneho obstaravania . . . . . . . . . . . . . . . . . . . . . . . . 6

1.9 Centralny register dokumentov verejneho

obstaravania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.10 Ustredny portal verejnej spravy . . . . . . . . . . . . . . . . . . . . . . . . 7

1.11 Registre a evidencie Ministerstva vnutra . . . . . . . . . . . . . . . . . . . 7

1.12 Zoznamy dlznıkov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.13 Slovenska obchodna inspekcia . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.14 Kataster SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.15 Slovensky pozemkovy fond . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.16 SK-NIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.17 Narodna rada Slovenskej republiky . . . . . . . . . . . . . . . . . . . . . . 9

2 Analyza sucasnych aplikaciı 11

2.1 Aliancia Fair-play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.1 Datanest.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.2 Znasichdani.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.3 Datanest na mape . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.4 Politikaopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.5 Poslanecke kancelarie . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Transparency International . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Tender.sme.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

iii

Page 10: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2.2.2 Otvorena samosprava . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Statna podpora kultury a sportu . . . . . . . . . . . . . . . . . . . 13

2.3 Opendata.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4 Dalsie projekty na Slovensku . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.1 Foaf.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.2 Itlis.eu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.3 Vizualny obchodny register . . . . . . . . . . . . . . . . . . . . . . 15

2.4.4 Otvorenezmluvy.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.5 Dotankoch.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.6 Naseobce.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.7 Statistiky-domen.sk . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.8 Odkazprestarostu.sk . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Dalsie projekty v zahranicı . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.1 Sunlight Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.2 MySociety.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.3 Scraperwiki.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.4 Google Refine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Analyza sucasnych prıstupov 19

3.1 Normalizacia kl’ucov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Podobnost’ kl’ucov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1 Jaccardov koeficient podobnosti . . . . . . . . . . . . . . . . . . . . 21

3.2.2 Podobnost’ slov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.3 Podobnost’ N-gramov . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.4 Levenshteinova vzdialenost’ . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.5 Damerau-Levenshteinova vzdialenost’ . . . . . . . . . . . . . . . . . 23

3.2.6 Hammingova vzdialenost’ . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.7 Jaro vzdialenost’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.8 Jaro-winkler vzdialenost’ . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.9 PPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.10 Soundex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Vzt’ahy medzi entitami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Blokove metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 Strojove ucenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.6 Integracne systemy dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.7 Fuzzy databazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 St’ahovanie dat 29

4.1 St’ahovacı framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.1.1 Navrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

iv

Page 11: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

4.1.2 Implementacia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.2 Zivnostensky register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3 Obchodny vestnık . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4 SK-NIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.5 Grantovy system Ministerstva kultury . . . . . . . . . . . . . . . . . . . . 36

4.6 Registre a evidencie Ministerstva vnutra . . . . . . . . . . . . . . . . . . . 37

4.7 Zhodnotenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Cistenie dat 41

5.1 Vyhodnocovacı framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1.1 Navrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.1.2 Implementacia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Experiment 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2.2 Vzorka dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2.3 Vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2.4 Vysledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.3 Experiment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.3.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.2 Vzorka dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.3 Vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.4 Vysledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.4 Zhodnotenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Zaver 57

Literatura 58

A Prıspevok na IIT.SRC 63

B Poster na IIT.SRC 71

C Ocenenie IIT.SRC 75

D Technicka dokumentacia 79

D.1 Instalacia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

D.2 St’ahovanie dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

D.3 Pridanie st’ahovaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

D.3.1 Testy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

D.4 Pomocne API pre st’ahovace . . . . . . . . . . . . . . . . . . . . . . . . . . 82

D.4.1 Modul Datafine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

v

Page 12: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

D.4.2 Modul Datafine::Jobs::Download . . . . . . . . . . . . . . . . . . . 83

E Obsah CD 85

vi

Page 13: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Zoznam obrazkov

2.2.1 Prehl’ad dodavatel’ov pre statnu spravu za rok 2011 . . . . . . . . . . . . . 13

2.4.1 Podrobnosti osoby JUDr. Robert Kalinak . . . . . . . . . . . . . . . . . . . 14

2.4.2 Podrobnosti o hlasovania poslanca Jana Slotu . . . . . . . . . . . . . . . . 16

2.4.3 Rozdelenie firiem podl’a castı Slovenska . . . . . . . . . . . . . . . . . . . . 17

2.4.4 Pocet domen podl’a registratora . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4.5 Podnet pre samospravu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1.1 Architektura st’ahovania dat . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.2 Diagram tried modulu Ives . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.1.1 Diagram tried vyhodnocovacieho frameworku . . . . . . . . . . . . . . . . . 42

5.1.2 Diagram tried modelov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2.1 Krivka ucenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.3.1 Krivka ucenia logistickej regresie . . . . . . . . . . . . . . . . . . . . . . . 54

5.3.2 Krivka ucenia SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

vii

Page 14: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

viii

Page 15: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Uvod

Mnohe statne institucie maju zakonnu povinnost’ zverejnovat’ najdolezitejsie udaje v suvislosti

so svojou cinnost’ou. Niektore udaje su dolezite pre spravne fungovanie spolocnosti, naprıklad

udaje o firmach, zivnostnıkoch, organizaciach, dlznıkoch alebo verejne obstaravania. Tieto

udaje su zo svojej podstaty verejne a dostupne vsetkym. Dalsie udaje su nevyhnutne pre

kontrolu statnych instituciı verejnost’ou, naprıklad povinne zverejnovane zmluvy.

Zakon vsak malokedy upravuje formu zverejnenie tychto dat. Tieto rozhodnutia boli

ponechane v rukach prıslusneho uradu alebo realizatora informacneho systemu, ktory sa

stara o zverejnovanie. Niekedy je forma dokonca zamerne nevhodna pre strojove spraco-

vanie - naprıklad zmluvy zverejnene ako naskenovane obrazky so zaciernenou cenou alebo

identifikaciou stran. Spracovanie takychto dat je vyrazne obmedzene. Ostatne formy dat

sa s mensou alebo vacsou namahou stiahnut’ a spracovat’ daju.

Vel’akrat aj ked’ je forma zverejnenia dat pre automatizovane spracovanie prijatel’na,

samotne data obsahuju preklepy a nejednoznacnosti, ktore je potrebne nejakym sposobom

riesit’. Naprıklad firma moze zmenit’ meno a nie je jasne, ci ide o rovnaky subjekt alebo

niekto moze mat’ preklep v mene a nie je jasne, ci ide o tu istu osobu. Hlavnym ciel’om

tejto prace je navrh a overenie metod pre odstranovanie nejednoznacnostı a preklepov vo

verejnych datach a ich nasledna lepsia integracia.

1

Page 16: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2

Page 17: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Kapitola 1

Zdroje verejnych dat

V tejto kapitole spozname vybrane webove zdroje verejnych dat, prıpadne zhodnotıme

vhodnost’ formy zverejnenia pre d’alsie automaticke spracovanie.

Tieto zdroje su poskytovane statnymi instituciami. Mnohe su nevyhnutne pre spravne

fungovanie statu (naprıklad firmy mozu zist’ovat’ ci firma, v ktorej maju ulozene pohl’adavky,

je v konkurze). Dalsie zverejnene udaje su dolezite pre kontrolu statnych instituciı (po-

vinne zverejnovane zmluvy).

Tiez by som chcel vyzdvihnut’ sucasnu snahu vlady o zvysenie transparentnosti na Slo-

vensku. Bola zalozena Iniciatıva pre otvorene vladnutie a tiez bol v diskusii s verejnost’ou

vytvoreny Akcny plan Iniciatıvy pre otvorene vladnutie [32]. Vysledky uz su viditel’ne

a obcas na ne upozornım, aby som ukazal, ze sa veci pomaly zlepsuju.

1.1 Statisticky register organizaciı

Statisticky register organizaciı obsahuje udaje o vsetkych registrovanych organizaciach

(firmy, obcianske zdruzenia, neziskove organizacie, politicke strany, ...) a podnikatel’skych

subjektoch (naprıklad zivnostnıci) v SR. Prevadzkovatel’om registra je Statisticky urad

Slovenskej republiky. Zaznamy maju len informatıvny charakter a je prvotne urceny pre

ucely statnej statistiky. Register poskytuje

• ICO

• obchodne meno

• pravnu formu

• datum vzniku

• datum zaniku

• adresu sıdla

3

Page 18: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• statisticke cıselnıky ako predmet podnikania alebo vel’kost’ organizacie

Pre nas ide o najspol’ahlivejsı zdroj zakladnych informaciı o organizaciach a podnika-

tel’skych subjektoch. Ak sa o nejakej organizacii potrebujeme dozvediet’ viac, treba vyuzit’

obchodny register, zivnostensky register alebo registre a evidencie ministerstva vnutra.

http://www.statistics.sk/pls/wregis/dotaz

1.2 Obchodny register

Do obchodneho registra sa zapisuju spolocnosti, druzstva a ine pravnicke osoby, o ktorych

to ustanovuje prıslusny zakon. Fyzicke osoby (napr. zivnostnıci) mozu byt’ do obchodneho

registra zapısane na vlastnu ziadost’ (preto sa v obchodnom registri vacsinou nenachadzaju).

Vypis z obchodneho registra obsahuje

• meno spolocnosti

• ICO

• pravnu formu

• predmety podnikania

• udaje o spolocnıkoch a ich vkladoch

• udaje o organoch spolocnosti (konatelia, dozorna rada, ...).

Vypis moze byt’ uplny alebo aktualny. Uplny vypis obsahuje aj udaje z minulosti, ktore

dnes nemusia platit’. Na obchodnom registri su najzaujımavejsie udaje o spolocnıkoch

a organoch spolocnosti, ked’ze odhal’uju prepojenia medzi l’ud’mi a firmami.

http://www.orsr.sk

1.3 Zivnostensky register

Zivnostensky register obsahuje informacie o podnikatel’skych subjektoch (firmy a zivnostnıci).

K zakladnym udajom ako ICO, obchodne meno a sıdlo, ktore sa daju najst’ aj v statistickom

registri organizaciı, pridava

• meno a adresu statutarneho organu subjektu

• predmety podnikania

• adresy prevadzkarnı pre jednotlive predmety podnikania

Tieto udaje nie su pre nas az tak zaujımave a aj kvoli problemovemu st’ahovaniu (ktoremu

sa budeme venovat’ v casti St’ahovanie dat) s nimi d’alej nepracujeme.

http://www.zrsr.sk/

4

Page 19: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

1.4 Obchodny vestnık

Obchodny vestnık je zabezpecovany Ministerstvom spravodlivosti SR. Vo forme PDF su

pravidelne zverejnovane nestrukturovane textove informacie o

• novych zapisoch v obchodnom registri

• konkurzoch

• vyrovnaniach

• drazbach

• a d’alsie oznamenia

Parser pre obchodny vestnık, ktory som vytvoril v juni 2011, pracoval s PDF, kde zakladne

udaje parsoval z registra na konci dokumentu a spracovanie d’alsıch udajov bolo na hra-

nici s extrakciou udajov z vol’neho textu. Zaciatkom roku 2012 bol register prıstupny

priamo na stranke vo formate HTML a jednotlive zaznamy v PDF vestnıku boli doplnene

tabul’kami s”metainformaciami”, takze uz nebolo potrebne prechadzat’ cely text. Minis-

terstvo spravodlivosti je v sucasnosti prıkladom institucie so snahou o zvysenie transpa-

rentnosti a ul’ahcenie prıstupu k informaciam.

https://portal.justice.sk/PortalApp/ObchodnyVestnik/Web/Zoznam.aspx

1.5 Centralny register zmluv

V centralnom registri zmluv (CRZ) su zverejnene zmluvy, ktore uzatvorili povinne osoby

ministerstvo, ostatny ustredny organ statnej spravy, verejnopravna institucia a nimi

zriadena rozpoctova organizacia alebo prıspevkova organizacia). Zmluvy sa daju stia-

hnut’ vo formate PDF a k vacsine su priamo na stranke ponuknute “metainformacie”

ako dodavatel’, objednavatel’ a cena (netreba ich parsovat’ z PDF, co by vzhl’adom na

nestrukturovany textovy charakter PDF dokumentov nebolo jednoduche). Prevadzkovatel’om

CRZ je Urad vlady SR. CRZ zverejnuje zmluvy od 1.1.2011 a je vysledkom snahy o zvysenie

transparentnosti vlady.

http://www.crz.gov.sk

1.6 eGovZmluvy

eGovZmluvy je komercne riesenie, ktore vzniklo este pred CRZ. Umoznuje samospravam,

skolam a prıpadne inym statnym instituciam povinne zverejnovanie dokumentov. Zmluvy

su tiez oznacene”metainformaciamo” ako predmet, objednavatel’, dodavatel’ alebo cena.

Vysledky vyhl’adavanie je mozne stiahnut’ vo formate CSV, co umoznuje lepsı prıstup

5

Page 20: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

k st’ahovaniu a aktualizacii udajov.

http://zmluvy.egov.sk

1.7 Grantovy system Ministerstva kultury SR

Ministerstvo kultury zverejnuje ziadosti o kulturne dotacie. Pri kazdej ziadosti zverejnı

udaje o

• ziadatel’ovi (meno, adresa, ICO)

• projekte (nazov, popis)

• pozadovanej dotacii

• schvalenej dotacii

Schvalena dotacia moze byt’ nizsia ako pozadovana alebo nemusı byt’ ziadna v prıpade

odmietnutia projektu. Casto je pozadovana dotacia nevyplnena alebo 0, pricom nie je

jasne, ako tento udaj interpretovat’. Dotacie su zverejnovane od roku 2007.

http://registerkultury.gov.sk/granty2011

1.8 Vestnık verejneho obstaravania

Vestnık verejneho obstaravania vychadza pravidelne raz za 2 - 4 dni a obsahuje oznamenia

o

• vyhlasenı verejneho obstaravania

• vysledku verejneho obstaravania

• zrusenı verejneho obstaravania

• a d’alsie oznamenia.

Je v posobnosti Uradu pre verejne obstaravanie. Vsetky data su na rozdiel od obchodneho

vestnıka vo formate HTML. Vyzvy je okrem toho mozne stiahnut’ aj vo formate XML, kde

sa okrem vnoreneho HTML s celym oznamenım nachadzaju aj niektore”metainformacie”

ako miesto uskutocnenia alebo obstaravatel’.

http://e-vestnik.sk

6

Page 21: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

1.9 Centralny register dokumentov verejneho

obstaravania

Urad pre verejne obstaravanie v zaujme zvysenia transparentnosti vytvoril centralny re-

gister verejneho obstaravania. Pri obstaravaniach su zverejnene aj firmy, ktore sa o dane

obstaravanie zaujımali. Udaje su strukturovane a daju sa stiahnut’.

http://crdvo.uvo.gov.sk

1.10 Ustredny portal verejnej spravy

Ciel’om ustredneho portalu verejnej spravy pre pouzıvatel’a je integrovat’ informacie, ktore

by inak boli roztrusene po weboch jednotlivych rezortov a statnych instituciı. Zamerom

portalu je nasmerovanie pouzıvatel’a na pouzitie konkretnej elektronickej sluzby verejnej

spravy, kde najde informacie, ktore hl’ada. Pre nas je zaujımavy zoznam obcı s

• menom

• adresou obecneho alebo mestskeho uradu

• menom starostu alebo primatora

• popisom

• erbom

a statnych instituciı SR s

• nazvom

• adresou

• kontaktom (telefon, e-mail)

http://portal.gov.sk

1.11 Registre a evidencie Ministerstva vnutra

Ministerstvo vnutra SR poskytuje registre

• obcianskych zdruzenı

• zdruzenı obcı

• neziskovych organizaciı

7

Page 22: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• nadaciı

• politickych stran

• a d’alsıch organizaciı

Je mozne zobrazit’ zoznam vsetkych organizaciı danej kategorie alebo v nom vyhl’adavat’.

Udaje o organizaciach su zobrazene vo forme vypisu, ktoreho struktura sa mierne lısi

v zavislosti od kategorie. Niektore kategorie ponukaju aj uplny vypis podobne ako v ob-

chodnom registri. Vypisy obsahuju udaje ako

• nazov organizacie

• sıdlo

• datum vzniku

• datum zaniku alebo zrusenia

• zakladatelia organizacie (meno a adresa)

• osoby opravnene konat’ v mene organizacie (meno a adresa)

• oblasti cinnosti

Registre a evidencie MV SR su vel’mi spol’ahlivym zdrojom pre zist’ovanie udajov o vyssie

vymenovanych druhoch organizaciı. Zverejnenie mien a adries osob s urcitou formou ucasti

v organizacii umoznuje zist’ovanie prepojenı medzi l’ud’mi a organizaciami podobne ako

v obchodnom registri.

http://portal.ives.sk/registre/

1.12 Zoznamy dlznıkov

Socialna poist’ovna a zdravotne poist’ovne (VSZP, Dovera, Union) zverejnuju raz mesacne

zoznamy dlznıkov. Danove riaditel’stvo zverejnuje rocne dlznıkov, danove ul’avy a odpus-

tene dane.

1.13 Slovenska obchodna inspekcia

Slovenska obchodna inspekcia pravidelne zverejnuje rozhodnutia (naprıklad o udelenı po-

kuty) pre zabezpecenie ochrany spotrebitel’a na vnutornom trhu SR.

http://www.soi.sk

8

Page 23: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

1.14 Kataster SR

Katastralny portal umoznuje prıstup k udajom katastra nehnutel’nostı. Bohuzial’ kvoli

viacerym prekazkam su udaje asi nestiahnutel’ne.

https://www.katasterportal.sk

1.15 Slovensky pozemkovy fond

Zmluvy zverejnovane slovenskym pozemkovym fondom su casto vo forme naskenovanych

PDF so zaciernenymi sumami. Kvoli tymto prekazkam su udaje bohuzial’ takmer nestia-

hnutel’ne.

http://www.pozfond.sk/zverejnenie zmluv/zmluva hladaj.aspx

1.16 SK-NIC

Firma SK-NIC, a.s. zastresuje slovensku narodnu domenu (top level domain). Kazdy den

zverejnuje aktualny zoznam domen v DNS zone spolu s ich

• registratorom

• drzitel’om

• stavom

• datumom platnosti stavu

• nazvami domenovych serverov

Registratori domeny su organizacie, ktore maju prıstup do systemu SK-NIC a mozu elek-

tronicky zaregistrovat’ domenu. Drzitelia su osoby alebo organizacie, ktore registraciou svo-

jich domen poveria registratora, ale maju pravne zarucene vlastnıctvo domeny. Drzitelia

a registratori maju svoje SK-NIC ID. Domena moze byt’ v roznych stavoch v zavislosti

od stadia registracie alebo zaplatenia rocneho poplatku. Domena po vyprsanı uz nie je

v DNS zone, ale este mesiac stale nie je vol’na (nie je mozne ju zaregistrovat’).

http://www.sk-nic.sk

1.17 Narodna rada Slovenskej republiky

Narodna rada Slovenskej republiky (NRSR) na svojom webe zverejnuje udaje o

• cinnosti parlamentu

• poslancoch

9

Page 24: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• kancelariach

• asistentoch

• ucasti poslancov na schodzach.

Tiez su zverejnovane prepisy rozprav v parlamente. Zverejnovanie takychto udajov je

nevyhnutne pre cinnost’ demokracie v kazdom state.

http://www.nrsr.sk

10

Page 25: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Kapitola 2

Analyza sucasnych aplikaciı

V tejto kapitole rozoberieme vybrane existujuce riesenia aplikaciı vyuzıvajuce verejne data

na Slovensku alebo v zahranicı. Spomeniem aj niekol’ko aplikaciı, ktore data zverejnene

statnymi instituciami sıce nevyuzıvaju, ale zbieraju data od obcanov a su nevyhnut-

nou sucast’ou otvoreneho vladnutia (open government). Napısem nieco aj o organizaciach

Aliancia Fair-play a Transparency International, pretoze zastresuju vel’a takychto projek-

tov.

2.1 Aliancia Fair-play

Aliancia Fair-play je obcianske zdruzenie, ktoreho ciel’om je poukazovat’ na necestne

spravanie sa politikov a navrhovanie riesenı, ako vniest’ do verejneho zivota viac slusnosti

a poctivosti. Zakladom ich cinnosti je skumanie a hl’adanie podozrivych vecı vo verejnych

datach, na ktore nasledne prostrednıctvom mediı upozornuju verejnost’. Maju pod sebou

viac webovych stranok, kde prezentuju svoje vysledky alebo umoznuju ostatnym zapojit’

sa do samotneho skumania dat. Aliancia kazdorocne organizuje Hack Day, ktoreho ciel’om

je vytvorit’ aplikacie pre podporu otvoreneho vladnutia na Slovensku.

http://fair-play.sk

2.1.1 Datanest.sk

Datanest Aliancie Fair-play umoznuje prezerat’ data pozbierane z viacerych verejnych

zdrojov. Data su zobrazene v prehl’adnych tabul’kach, pouzıvatel’ moze zorad’ovat’ podl’a

roznych kriteriı, vyhl’adavat’ a pridavat’ komentare (ak najde nieco zaujımave). Data je

mozne stiahnut’ vo formate CSV. Datanest poskytuje API pre pouzitie v d’alsıch ap-

likaciach, ktore by chceli pracovat’ s verejnymi datami.

http://datanest.fair-play.sk

11

Page 26: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2.1.2 Znasichdani.sk

Znasichdani.sk je aplikacia postavena na Datanest API. Stranka po zadanı mena osoby

najde firmy, v ktorych dana osoba figuruje a zobrazı prehl’ad zakaziek tychto firiem na

verejnych obstaravaniach. Aplikacia zıskala v roku 2011 prve miesto v celoeuropskej sut’azi

Open Data Challenge.

http://znasichdani.sk/

2.1.3 Datanest na mape

Datanest na mape je d’alsım projektom postavenym na datach z Datanestu. Ciel’om

stranky je vizualizovat’ data o statnych instituciach a podnikoch alebo firmach s dlhom

na mape a poskytnut’ obcanom informacie, co sa nachadza a deje v ich okolı. Obcan ma

lepsı prehl’ad o lokalnych zalezitostiach vo svojom okolı.

http://mmm.ii.fmph.uniba.sk/afp/

2.1.4 Politikaopen

Zamerom projektu Politikaopen je odhalit’ vsetko podstatne o majetku, zavazkoch a vazbach

politika do takej hlbky, aby mohol obcan politika ucinne kontrolovat’. Udaje pridavaju

politici sami, cım davaju najavo, ze hraju otvorenu a ferovu hru. Aliancia Fair-play sa

nestara o kontrolu udajov zadanych politikom, je na obcanovi, aby si na zaklade pravdi-

vosti a uplnosti udajov urobil o politikovi obraz.

http://www.politikaopen.sk/

2.1.5 Poslanecke kancelarie

Projekt monitoruje pocty a umiestnenie kancelariı poslancov Narodnej rady SR. Stranka

zobrazuje prehl’adne statistiky a grafy. Data su st’ahovane zo stranky NRSR.

http://kancelarie.fair-play.sk/index.php

2.2 Transparency International

Transparency International je neziskova organizacia, ktora funguje v priblizne 90 krajinach

sveta. Jej ciel’om je boj s korupciou zvysenım transparentnosti a znızenım byrokracie.

http://www.transparency.sk/

2.2.1 Tender.sme.sk

Ciel’om projektu je zvysenie transparentnosti vo verejnych obstaravaniach sprıstupnenım

a sprehl’adnenım dat zıskanych z vestnıka verejneho obstaravania. Okrem skumania jed-

12

Page 27: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

notlivych zmluv stranka ponuka prehl’adne statistiky obstaravatel’ov a objednavatel’ov

a vel’a zaujımavych grafov (obrazok 2.2.1). Povodne islo o projekt Transparency Interna-

tional, teraz projekt funguje aj pod zastitou portalu sme.sk.

http://tender.sme.sk

Obr. 2.2.1: Prehl’ad dodavatel’ov pre statnu spravu za rok 2011

2.2.2 Otvorena samosprava

Ciel’om projektu Otvorena samosprava je hodnotenie otvorenosti a transparentnosti sa-

mosprav. Stranka projektu ukazuje hodnotenia jednotlivych subjektov, zobrazuje rebrıcky

a umoznuje porovnat’ vybrane samospravy. Projekt okrem samosprav takisto hodnotı

vyssie uzemne celky.

http://samosprava.transparency.sk/

2.2.3 Statna podpora kultury a sportu

Projekt sa usiluje o zvysenie transparentnosti v kulture a sporte. Data su zozbierane

z viacerych verejnych zdrojov (medzi nimi aj Grantovy system MK SR) a zobrazene

v prehl’adnej forme tabuliek a grafov s moznost’ou pridavania komentarov od pouzıvatel’ov.

http://granty.transparency.sk

2.3 Opendata.sk

Opendata je skupina l’udı, ktorej ciel’om je otvorena verejna sprava. Ich planom je za-

definovat’ formaty a open-source technologiu, aby institucie mohli efektıvne poskytovat’

data. Data budu d’alej ponuknute verejnosti alebo tretım stranam, ktore mozu na nich

postavit’ aplikacie. Pri uvahach o sposobe poskytovania dat okrem beznej formy tabuliek

a zaznamov (ako naprıklad Datanest) rozmysl’aju naprıklad aj nad ontologiami. Projekt

13

Page 28: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

je v stadiu navrhu a vyberu technologiı.

http://opendata.sk

2.4 Dalsie projekty na Slovensku

2.4.1 Foaf.sk

Foaf.sk je socialna siet’ slovenskych firiem a podnikatel’ov. Je ich mozne prehl’adavat’ po-

hodlnejsie ako na stranke obchodneho registra (obrazok 2.4.1) a objavovat’ vzt’ahy medzi

nimi (zist’ovat’ ktore firmy a osoby maju k sebe blızko). Udaje pochadzaju z obchodneho

registra SR, danoveho uradu SR, vseobecnej zdravotnej poist’ovne a vestnıka verejneho

obstaravania.

Nazov FOAF pochadza z anglickeho akronymu Friend of a Friend a odkazuje na fe-

nomen sietı maleho sveta. Siet’ vzt’ahov medzi firmami podobne ako ine siete v skutocnom

svete (vzt’ahy medzi l’ud’mi, vedecke citacie, www) vykazuje vlastnosti siete maleho sveta.

Naprıklad vel’mi casto su rovnakı l’udia spolu vo viacerych firmach - vytvaraju sa zhluky.

[1]

http://foaf.sk

Obr. 2.4.1: Podrobnosti osoby JUDr. Robert Kalinak

14

Page 29: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2.4.2 Itlis.eu

Projekt itlis.eu st’ahuje informacie z orsr.sk a analyzuje prepojenia medzi osobami a orga-

nizaciami. Vyhl’adavanie okrem mien reaguje aj na adresy subjektov. Stranka umoznuje

zobrazit’ prehl’adne grafy vzt’ahov osob s organizaciami a takisto vzt’ahov kontroly medzi

organizaciami. Projekt je o nieco mladsı ako foaf.sk a nie je zatial’ az tak znamy.

http://itlis.eu

2.4.3 Vizualny obchodny register

Vizualny obchodny register umoznuje interaktıvne prezerat’ vzt’ahy z Obchodneho registra

SR. Projekt funguje aj v Ceskej republike.

http://vorsr.sk

2.4.4 Otvorenezmluvy.sk

Otvorenezmluvy.sk je investigatıvny projekt Aliancie Fair-play a Transparency Internti-

onal Slovensko. Ciel’om projektu je pomoct’ obcanom posudit’ vyhodnost’ zmluv uzavretych

statom alebo statnymi instituciami umoznenım vyhl’adavania, hodnotenia a komentova-

nia zverejnenych zmluv. Zverejnene zmluvy su st’ahovane z centralneho registra zmluv

a portalu eGovZmluvy. Prostrednıctvom automatizovanych analyz je pouzıvatel’ upozor-

neny na zmluvy hodne preskumania (naprıklad zmluvy s vysokou cenou alebo formalnymi

chybami).

http://otvorenezmluvy.sk/

2.4.5 Dotankoch.sk

Projekt spracuva data zo stranky NRSR a zobrazuje statistiky a rebrıcky o dochadzke,

hlasovaniach a d’alsıch verejnych udajoch o poslancoch v parlamente (obrazok 2.4.2). Web

obsahuje aj prepisy rozprav v parlamente a umoznuje v nich vyhl’adavat’.

http://dotankoch.sk/

2.4.6 Naseobce.sk

Projekt cerpa informacie zo Statistickeho uradu SR a Ustredneho portalu verejnej spravy.

Zobrazuje vsetky dostupne informacie o obciach a mestach, trendy poctu obyvatel’ov

a poctu zalozenych firiem a informacie o firmach v danej lokalite (obrazok 2.4.3).

http://naseobce.sk/

15

Page 30: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Obr. 2.4.2: Podrobnosti o hlasovania poslanca Jana Slotu

2.4.7 Statistiky-domen.sk

Projekt denne st’ahuje data o slovenskych domenach a zobrazuje statistiky o nazve alebo

stave domeny. Kazdy den uklada pocty domen najvyznamnejsıch registratorov a zobrazuje

trendy od maja 2011 (obrazok 2.4.4) a predikcie (jednoducha linearna regresia trendov na

1 rok dopredu).

http://statistiky-domen.sk/

2.4.8 Odkazprestarostu.sk

Odkazprestarostu.sk nepracuje priamo s verejnymi datami. Stranka umoznuje pouzıvatel’om

zadavat’ podnety na problemy vo svojom okolı, ktorymi by sa mali prıslusne samospravy

zaoberat’. Podnety su prostrednıctvom stranky komunikovane so zodpovednymi zamest-

nancami samosprav a riesenie je pod dohl’adom navstevnıkov stranky (obrazok 2.4.5).

http://www.odkazprestarostu.sk/

16

Page 31: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Obr. 2.4.3: Rozdelenie firiem podl’a castı Slovenska

Obr. 2.4.4: Pocet domen podl’a registratora

Obr. 2.4.5: Podnet pre samospravu

17

Page 32: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2.5 Dalsie projekty v zahranicı

USA a Vel’ka Britania ponukaju centralizovane portaly s vladnymi datami. Existuje vel’a

riesenı, ktore tieto data vyuzıvaju alebo podporuju otvorene vladnutie (open government),

co je celosvetovy trend zvysovanie transparentnosti a vacsieho zapajanie obcanov do fun-

govania vladnych instituciı. Verejne data su tiez vyuzıvane na ekonomicke a sociologicke

vyskumy [38].

2.5.1 Sunlight Foundation

Organizacia Sunlight Foundation je neziskova organizacia, ktorej zamerom je vyuzıvat’

silu Internetu pre podporu procesov zvysovania transparentnosti. Toto poslanie realizuju

rozdel’ovanım financnych prostriedkov zıskanych od darcov naprıklad na webove projekty

sprıstupnujuce verejne data alebo prednasky o otvorenej vlade.

http://sunlightfoundation.com/about/

2.5.2 MySociety.org

Spolocnost’ MySociety zastresuje viac projektov, ktore nepracuju priamo s verejnymi

datami, ale poskytuju obcanom lepsie moznost’ komunikacie so samospravami, vladnymi

instituciami alebo volenymi zastupcami parlamente. Projekty funguju vo Vel’kej Britanii,

ale podobne zamerane projekty existuju aj v inych krajinach. Naprıklad u nas funguje

vyssie spomenuty Odkazprestarostu.sk (cast’ 2.4.8).

http://mysociety.org

2.5.3 Scraperwiki.com

Scraperwiki je nastroj, ktory chce sprıstupnit’ data roztrusene po celom webe v roznych

formatoch na jednom mieste a v jednotnom formate. Dobrovol’ne sa zapojenı vyvojari

vytvaraju na stranke scrapery (parsery) pre rozne zdroje verejnych dat. Ziadatelia mozu

tieto data priamo pouzıvat’ alebo poziadat’ o vytvorenie scrapera pre d’alsı zdroj.

http://scraperwiki.com

2.5.4 Google Refine

Nastroj Google Refine zjednodusuje pracu l’ud’om, ktorı sa snazia manualne integrovat’

data. S datami pracuje na urovni tabuliek. Umoznuje jednoduchu normalizaciu hodnot

v stlpcoch, ale pozna aj zlozitejsie metriky ako N-gramy alebo Levenshteinova vzdialenost’.

Zaznamy su nasledne zhlukovane, cım sa odstrania z tabul’ky duplicity. Vykonane upravy

je mozne ulozit’ vo forme skriptu a d’alsie tabul’ky spracovat’ automaticky.

http://code.google.com/p/google-refine/

18

Page 33: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Kapitola 3

Analyza sucasnych prıstupov

Vacsina aplikaciı z predchadzajucej kapitoly si musı poradit’ s problemom nespol’ahlivosti

(preklepov a nejednoznacnostı) vo verejnych datach. Data mozu byt’ jednoducho stiahnu-

tel’ne a strukturovane, ale stale mozu byt’ nespol’ahlive. Data je potrebne vycistit’ od pre-

klepov a nejednoznacnostı hlavne kvoli ich d’alsej integracii. Problem integracie dat okrem

statnych instituciı (tu sa stava, ze data su nespol’ahlive zamerne) existuje aj v sukromnych

spolocnostiach, kde sa pracuje s vel’kymi databazami (naprıklad zakaznıkov).

Integracia dat vyzaduje spravne spojenie dat z roznych zdrojov na zaklade urciteho

kl’uca (v nasom prıpade moze ıst’ o ICO firmy alebo meno osoby). V kl’uci moze byt’

preklep alebo v roznych zdrojoch moze byt’ kl’uc zapısany inak (meno s titulom alebo bez

titulu,”Meno Priezvisko” alebo

”Priezvisko, Meno”). Metody riesenia tohto problemu

su postavene na normalizacii kl’ucov a porovnavanı podobnosti ret’azcov (kl’ucov) ako N-

gramova alebo Levenshteinova vzdialenost’. Dalsım problemom integracie dat su duplicity

a nejednoznacne data z roznych zdrojov, kedy treba rozhodnut’, ktore data su vhodnejsie

(aktualnejsie) na pouzitie. Tu sa pouzıvaju heuristiky zalozene na relaciach.

Potreba integracia dat je asi tak stara ako samotne data. I. Fellegi a A. Sunter v clanku

Record Linkage (1969) polozili teoreticky ramec pre vypoctove riesenie problemu ro-

zoznavanie zaznamov v dvoch suboroch, ktore reprezentuju jednu osobu, objekt alebo

udalost’ [14]. Novsım prehl’adom sucasneho stavu integracie dat alebo spajania zaznamov

je praca W.Winklera [47]. Gu a kolektıv tiez ponukaju prehl’ad sucasneho stavu spajania

zaznamov (alebo integracie dat). Rozoberaju metody a ako ich vyhodnocovat’. Pridavaju

prehl’ad sucasneho softveru pre integrovanie databaz a naznacuju eticke a pravne problemy

s integraciou dat [18].

V tejto kapitole preberieme existujuce bezne pouzıvane metody integracie dat. Zoznamime

sa aj s niekol’kymi novymi komplikovanejsımi metodami, ktore mozu mat’ v mnohych

prıpadoch lepsie vysledky.

19

Page 34: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

3.1 Normalizacia kl’ucov

Pred pouzitım zlozitejsıch metod je vhodne porovnavane kl’uce urcitymi metodami norma-

lizovat’ (alebo predspracovat’). Vel’akrat po normalizacii stacı na integraciu dat obycajna

zhodnost’ ret’azcov (mozeme vykonat’ JOIN v prıpade, ak ide o datach v relacnej databaze).

V prıpade, ze pouzitım konkretnej metody normalizacie neznızime hodnotu dat pre d’alsie

spracovanie, je vhodne normalizaciu vykonat’ uz parserom pred ulozenım zaznamu do da-

tabazy. Naprıklad pri parsovanı ICO si vsimneme, ze niektore cıslice su v niektorych

zaznamoch oddelene medzerami. Medzery odstranime, hodnota zaznamu pre d’alsie spra-

covanie sa nijakym sposobom nezmenı a d’alej na spajanie podl’a daneho pol’a stacı pouzit’

obycajny JOIN. Najskor niekol’ko zakladnych metod:

• zmena vel’kosti vsetkych pısmen na male

• odstranenie bielych znakov na zaciatku a konci ret’azca

• nahradenie viacerych bielych znakov za sebou jednou medzerou

• odstranenie interpunkcie a riadiacich znakov

• nahradenie znakov s diakritikou prıslusnymi znakmi bez diakritiky

Vyber konkretnych metod zavisı od spracovavanej databazy. Za normalizaciu mozeme

povazovat’ aj nasledujuce prıklady:

• Ak normalizujeme pole s adresou bydliska, preusporiadame jednotlive casti, aby

bola kazda z porovnavanych adries v jednotnom formate.

• Ak normalizujeme pole s adresou bydliska, rozbijeme casti adresy do samostatnych

polı. Neskor mozeme pri porovnavanı roznym poliam nastavit’ rozne vahy. Naprıklad

ak sa v niektorych adresach nachadza navyse mestska cast’, moze byt’ extrahovana

do samostatneho pol’a, ktore nebude pri porovnavanı zohl’adnene.

• Ak normalizujeme pole s menom, mozeme extrahovat’ akademicke tituly do samos-

tatneho pol’a. Neskor s nimi mozeme pracovat’ inym sposobom alebo ich nemusıme

vyuzit’ pri porovnavanı vobec.

3.2 Podobnost’ kl’ucov

Ak sa po normalizacii kl’ucov nachadzaju v datach preklepy alebo vymenene slova, obycajna

zhodnost’ ret’azcov nie je dostacujuca. Je potrebne pouzit’ niektoru z metrık porovnavania

ret’azcov. Problem sa casto nazyva aj fuzzy porovnavanie ret’azcov, pretoze vysledok nie

je logicka hodnota (ci su ret’azce zhodne alebo nie), ale miera ich podobnosti. Opakom po-

dobnosti ret’azcov je vzdialenost’ ret’azcov, ktora urcuje, do akej miery su ret’azce odlisne.

20

Page 35: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

W. Cohen a kolektıv vytvorili toolkit pre porovnavanie mien, ktory ul’ahcı pracu exper-

tovi na konkretnu databazu. Toolkit ponuka metody ako Levenshteinova vzdialenost’, TF-

IDF, Jaro, Monge-Elkan, Jensen-Shannon a d’alsie. Metody boli otestovane na niekol’kych

datasetoch. Navrhnuty toolkit implementovali v Jave a bol zverejneny ako Open Source.[8]

V tejto casti sa sustredıme len na niektore zo spomınanych metod. Vybornym uvodom

do problematiky podobnosti ret’azcov su webove zdroje [16] a [34]. Niektore metody

spomına aj referat [17].

3.2.1 Jaccardov koeficient podobnosti

Pri zist’ovanı podobnosti ret’azcov budeme casto potrebovat’ zistit’ mieru podobnosti mnozın,

ktore boli danou metodou z ret’azca vygenerovane. Urcenie podobnosti mnozın nam umoznı

vzorec znamy ako Jaccardov koeficient podobnosti. Vysledok porovnania dvoch mnozın sa

vypocıta ako pomer poctu prvkov prieniku tychto mnozın a poctu prvkov ich zjednotenia

(vzorec 3.2.1). Jaccardov koeficient vychadza v intervale <0,1> podl’a podobnosti mnozın

(0 ak nemaju spolocne nic, 1 ak su rovnake).

J(A,B) =|A ∩B||A ∪B|

(3.2.1)

3.2.2 Podobnost’ slov

Metoda spocıva v rozdelenı ret’azca na jednotlive slova podl’a bielych znakov. Potom

sa slova zotriedia podl’a abecedy a odstrania sa duplikaty, cım zıskame mnoziny slov

porovnavanych ret’azcov. Vysledkom je Jaccardov koeficient podobnosti tychto mnozın.

Metoda je vhodna v prıpade porovnavania dat zlozenych z viacerych slov, kde problemom

su slova navyse v jednom zo zaznamov (moze ıst’ naprıklad o adresu, kde je navyse mestska

cast’ alebo supisne cıslo). Preklepy v slovach metoda neodhalı.

3.2.3 Podobnost’ N-gramov

Metoda je podobna metode podobnosti slov, ale ret’azce nie su rozdelene podl’a bielych

znakov, ale podl’a skupın N znakov. Ret’azec”martinus” sa pri 3-gramovom porovnavanı

rozdelı na”mar”,

”art”,

”rti”,

”tin”,

”inu” a

”nus”. Niekedy sa na zaciatok alebo ko-

niec ret’azca pridavaju medzery. Na vysledne mnoziny sa aplikuje Jaccardov koeficient

podobnosti.

Ak je N prılis vel’ke, metoda nema ziadnu vyhodu oproti tej predchadzajucej. Ak

ma N hodnotu 1 alebo 2, najdeme viac podobnych ret’azcov, ale tiez vel’a false positives

(uplne inych ret’azcov oznacenych za podobne, pretoze maju podobne zlozenie pısmen).

Najcastejsie pouzıvanou hodnotou N je 3.

21

Page 36: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Databazove systemy a vyhl’adavacie stroje ponukaju moznost’ vytvorenia indexu pre

N-gramy (PostgreSQL, elasticsearch). Nasledne fuzzy vyhl’adavanie pomocou N-gramov

je podstatne urychlene. Aj ked’ nepouzıvame databazu, vygenerovane mnoziny N-gramov

nie je zlozite ulozit’ spolu s datami a vyuzıvat’ ich neskor. Ak by vel’kost’ ulozenych mnozın

N-gramov prılis narastla (co sa pri porovnavanı dlhsıch ret’azcov urcite stane), mozeme

pouzit’ techniku minhashing. Minhashing dokaze tieto mnoziny zredukovat’ na mensı pocet

prvkov pri zachovanı podobneho alebo rovnakeho Jaccardovho koeficientu podobnosti.

Metoda na rozdiel od predchadzajucej odhalı preklepy v slovach a prave na tento ucel

sa najcastejsie pouzıva. [28]

3.2.4 Levenshteinova vzdialenost’

Metoda (tiez nazyvana vzdialenost’ uprav alebo edit distance) meria minimalny pocet

potrebnych uprav pre zmenu jedneho ret’azca na druhy. Upravami su vlozenie znaku

(insertion), nahradenie znaku (substitution) a vymazanie znaku (removal). Jednotlive

operacie mozu byt’ ohodnotene vahou podl’a vyznamu pre ciel’ovu oblast’ pouzitia.

Vypocet Levenshteinovej vzdialenosti vyuzıva princıpy dynamickeho programovania.

Postupnym vyplnenım matice s vzdialenost’ami vsetkych prefixov dvoch porovnavanych

ret’azcov zıskame v rohu matice vzdialenost’ tychto ret’azcov (tabul’ka 3.2.1). Inicializacia

a sposob vyplnania polı je opısany v zdroji [43]. Algoritmus je tiez dobre vysvetleny v on-

line kurze Natural Language Processing profesora Dan Jurafsky na Stanford University

[25].

S a t u r d a y0 1 2 3 4 5 6 7 8

S 1 0 1 2 3 4 5 6 7u 2 1 1 2 2 3 4 5 6n 3 2 2 2 3 3 4 5 6d 4 3 3 3 3 4 3 4 5a 5 4 3 4 4 4 4 3 4y 6 5 4 4 5 5 5 4 3

Tabul’ka 3.2.1: Prıklad matice vzdialenosti uprav (zo zdroja [43])

Moznost’ vytvorenia indexu pre Levenshteinovu vzdialenost’ je v databazovych systemoch

zriedkava, ponuka ju naprıklad vyhl’adavacı stroj Lucene [30]. Takisto postup pre rucne

vytvorenie indexu nie je taky trivialny ako pri N-gramoch. Daju sa pouzit’ naprıklad

Levenshteinove automaty [27, 24].

Vzdialenost’ uprav sa pouzıva pri cistenı dat alebo v systemoch kontroly pravopisu. Ok-

rem toho ma vyuzitie aj pri hl’adanı spolocnych sekvenciı DNA alebo skumanı podobnosti

jazykov v lingvistike [33].

22

Page 37: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

3.2.5 Damerau-Levenshteinova vzdialenost’

Metoda pridava k Levenshteinovej vzdialenosti operaciu vymeny znakov (transposition),

ktora sa casto vyskytuje v preklepoch. Vymena znakov je ohodnotena len jednou upravou

namiesto vymazania a vlozenia. [40]

3.2.6 Hammingova vzdialenost’

Hammingova vzdialenost’ urcuje pocet pozıciı znakov, kde sa porovnavane ret’azce lısia.

Dala by sa oznacit’ za specialny prıpad Levenshteinovej vzdialenosti iba s jednou upravou

- substituciou. Metoda sa hodı na porovnavanie ret’azcov rovnakej dlzky, ale pre rozdielne

dlhych ret’azcoch su jej vysledky vel’mi nepresne. [41]

3.2.7 Jaro vzdialenost’

Jaro vzdialenost’ je vel’mi vhodna pre porovnavanie kratkych ret’azcov ako meno osoby.

Vyhodou metriky oproti Levenshteinovej vzdialenosti je, ze v porovnanı je zahrnuta aj

dlzka ret’azcov (zamena pısmena v kratsom slove je vyznamnejsia ako rovnaky preklep

v dlhsom slove). Vzorec 3.2.2 ukazuje vypocet Jaro vzdialenosti.

dj =1

3

(m

|s1|+

m

|s2|+

m− t

m

)(3.2.2)

• |s1| a |s2| su dlzky porovnavanych ret’azcov.

• m je pocet zhodnych znakov, ktorych vzdialenost’ v porovnavanych ret’azcoch je

najviac⌊max(|s1|,|s2|)

2

⌋− 1.

• t je pocet vymen znakov (transpositions).

Metrika ma sıce zauzıvany nazov vzdialenost’, ale vysledkom je podobnost’ porovnavanych

ret’azcov v intervale <0, 1>. [42]

3.2.8 Jaro-winkler vzdialenost’

Metoda Jaro-Winkler k Jaro pridava zvyhodnenie prvych znakov. To ma vel’ky vyznam

naprıklad pri porovnavanı mien, pretoze pravdepodobnost’ preklepu na prvych miestach

slova alebo v krstnom mene je nizsia ako v nasledujucich znakoch mena. Pri nespravne

nastavenych parametroch Jaro-Winkler, moze byt’ vysledok vacsı ako 1, ale spravidla je

vysledna hodnota v intervale <0, 1>. [42, 17]

23

Page 38: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

3.2.9 PPM

Metoda PPM (Prediction by Partial Matching) vychadza z predpokladu, ze ked’ po-

rovnavane ret’azce A a B su podobne, kompresia A a kompresia A + B (spojenie ret’azcov

A a B) by mala mat’ priblizne rovnaky vysledok (idealne jeden bit na indikaciu redundant-

nej informacie). Na druhej strane pri odlisnych ret’azcoch A a B by vysledok kompresie

A + B mal byt’ podstatne dlhsı ako vysledok kompresie A. PPM je kompresnym algorit-

mom, ktory bol pouzity v Google Refine. [16]

3.2.10 Soundex

Algoritmus Soundex dokaze zakodovat’ slovo podl’a jeho vyslovnosti povodne v anglickom

jazyku. Kod je pre slova, ktore sa rovnako alebo podobne vyslovuju rovnaky. Pouzıva sa

na sparovanie zaznamov, ktore mozu byt’ syntakticky odlisne kvoli nespravnemu zapisu.

Variant D-M Soundex dokaze pracovat’ aj so slovanskymi jazykmi.[45]

3.3 Vzt’ahy medzi entitami

Pri integracii dat vacsinou nestacı porovnavanie dat iba z jednej tabul’ky. Je potrebne

zahrnut’ vsetky d’alsie relacie (vzt’ahy medzi entitami), ktore mame k dispozıcii. Naprıklad

pri zist’ovanı, ci dva zaznamy s rovnakym menom a odlisnymi adresami z databazy l’udı

a ich firiem reprezentuju prest’ahovanu osobu alebo dvoch menovcov, je jedinym sposobom

zahrnutie udajov z tabuliek firiem a vyskytov tychto l’udı vo firmach do porovnavania.

Mozno zistıme, ze obidva zaznamy figuruju v jednej firme, vtedy je pravdepodobne, ze

ide o jednu osobu, ktora zmenila miesto trvaleho bydliska.

Heuristiky zalozene na relaciach medzi entitami su zakladom cistenia dat na socialnej

sieti slovenskych firiem foaf.sk [35]. Duplicita mnohych entıt sa bez skumania vzt’ahov

medzi nimi iba na zaklade ich vlastnostı (podobnost’ alebo zhodnost’ atributov po norma-

lizacii) neda odhalit’.

D. Kalshnikov a S. Mehrotra ukazuju dolezitost’ zahrnutia relaciı. Na rozdiel od tradicneho

prıstupu, kedy sa pri rozlisovanı entıt pouzıvaju iba vlastnosti tychto entıt (moze ıst’

o zhodnost’ alebo podobnost’ vybranych atributov), navrhuju pouzitie vzt’ahov medzi en-

titami. Najskor pouziju prıstup zalozeny na vlastnostiach entıt pre rychly vyber kan-

didatov. Potom su pouzite techniky prace s grafmi na objavenie a analyzu vzt’ahov, ktore

existuju medzi tymito kandidatmi a entitami s referenciami. Na 2 datovych vzorkach zo

skutocneho sveta ukazali vyrazne zlepsenie vysledkov. [26]

24

Page 39: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

3.4 Blokove metody

Standardna blokova metoda vytvorı zhluky zaznamov na zaklade spolocneho kl’uca. Moze

ıst’ o spolocne pole alebo viac polı. Dalsie porovnavanie zaznamov sa vykonava len v ramci

danych blokov. Ked’ su bloky vel’ke (naprıklad rozdelıme zaznamy podl’a pol’a pohlavie),

blokova metoda zmensı pocet porovnavanych zaznamov iba niekol’konasobne (dvojnasobne

pri kl’uci pohlavie), pretoze zaznamy v roznych blokoch neporovnavame. Ked’ su bloky

prılis male (pole ICO), zaznamy su zaradene do blokov pravdepodobne nespravne a stratı

sa zmysel d’alsieho porovnavania. Data su bez porovnavania vycistene (zatriedene v blo-

koch vel’kosti 1), ale chybu v ICO nemame ako odhalit’.

Metoda utriedeneho okolia (sorted neighbourhood method) predtriedi zaznamy podl’a

urcenych kl’ucov. Nasledne porovnania sa vykonavaju v ramci pohybliveho okna (sliding

window). Vd’aka predtriedeniu je mozne porovnavat’ iba niekol’ko najblizsıch zaznamov

(radovo v desiatkach oproti porovnaniu so vsetkymi ostatnymi zaznamami, ktorych moze

byt’ aj milion). Pocet najblizsıch zaznamov je urceny vel’kost’ou okna. Je vyhodnejsie

vykonat’ viac predtriedenı podl’a roznych kl’ucov s mensou vel’kost’ou okna ako jedno pred-

triedenie s porovnavanım vo vel’kom okne. [3, 13]

Prıkladom blokovych metod je praca M. Hernandeza a S. Stolfu. Ich ciel’om bolo vy-

vinutie metody na odstranenie duplikatov z vel’kej databazy (100 milionov az miliarda

zaznamov) v rozumnom case (niekol’ko dnı). Trivialny sposob je spojit’ data do jedneho

ret’azca, tieto ret’azce zotriedit’ a nasledne odstranit’ duplikaty. Pri heterogennej scheme

databazy alebo zapise dat tento prıstup nie je dostacujuci. Databazy pozbierane z via-

cerych zdrojov casto obsahuju kl’uce, ktore su odlisne v roznych datasetoch alebo maju

chyby naprıklad kvoli preklepom.

Majme databazovu tabul’ku s datami, ktore treba vycistit’. Metoda pozostava z nasle-

dujucich faz.

1. Vytvorenie kl’ucov. Z kazdeho zaznamu zıskame kl’uce extrakciou a spojenım re-

levantnych stlpcov alebo castı stlpcov. Relevantna cast’ mozu byt’ naprıklad prve 3

pısmena, pretoze v nich je pravdepodobnost’ preklepu nizsia. Tiez mozeme vybrat’

iba krstne meno (a spojit’ ho naprıklad s adresou a rodnym cıslom), pretoze preklepy

su pravdepodobnejsie v priezviskach.

2. Utriedenie dat. Zaznamy predbezne utriedime podl’a kl’ucov z predchadzajucej

fazy.

3. Zlucenie. Cez utriedene zaznamy prechadzame oknom s pevnou dlzkou. Pri vstupe

noveho zaznamu do okna, ho porovname so vsetkymi ostatnymi zaznamami, ktore sa

v okne nachadzaju. Rozhodovanie, ci su zaznamy zhodne, nechame na sadu pravidiel

specialne navrhnutych pre skumanu databazu, ktora na zaklade podobnosti (fuzzy

porovnavanie ret’azcov) alebo zhodnosti viacerych polı urcı vysledok.

25

Page 40: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Fazu triedenia a zlucenia opakujeme viackrat vzdy s inym kl’ucom pri triedenı (naprıklad

ak je v prvom kl’uci chyba, druhy moze zaradit’ zaznam spravne). Po kazdom prechode

mozeme na data aplikovat’ tranzitıvny uzaver (ak je A podobne s B a B je podobne s C,

potom aj A je podobne s C). Princıp je, ze zdlhave porovnavanie zaznamu vykoname

na obmedzeny pocet zaznamov v okne zvolenej vel’kosti a nie na vsetky zaznamy. To je

mozne vd’aka rychlej faze triedenia, ktora usporiada potencialne zhodne zaznamy dokopy.

Vyvinuta metoda bola najskor testovana na vygenerovanych databazach, potom na

realnych datach. [21]

3.5 Strojove ucenie

Vsetky sposoby cistenia dat, ktore sme si doteraz ukazali, vyzadovali manualne vytvorenie

pravidiel (normalizacie, heuristiky) a nastavenie parametrov porovnavacıch algoritmov.

V sucasnosti je vyvıjane nemale usilie pre automatizovane sposoby, ktore by nevyzadovali

casovo narocne ladenie pre kazda novu databazu a ich pouzitie by bolo v ramci moznostı

univerzalne pre akykol’vek druh dat.

M. Bilenko a R. Mooney navrhli pouzit’ algoritmy strojoveho ucenia s ucitel’om, ktore

dokazu tieto parametre natrenovat’. Uciacemu sa algoritmu su poskytnute trenovacie

zaznamy (vzorky) aj s ohodnotenım (ci je alebo nie je duplikat).

Autori pouzili novy typ Levenshteinovej vzdialenosti s affine gaps. Affine gaps su za

sebou nasledujuce sekvencie nezhodnych znakov. Povolenım affine gaps sa znızi penalizacia

vzorky pri vlozenı alebo odstranenı celych podret’azcov (co naprıklad zlepsı rozpoznavanie

skratiek). Parametre upravuju penalizaciu za affine gap, ktora zavisı na obsiahnutych

znakoch a ich pozıciach. Rozne znaky hraju rozne role v rozlicnych oblastiach pouzitia.

Naprıklad zmena cısla v adrese je vyznamna, ked’ze zmenı cıslo domu, ale zmena znaku

v krstnom mene vacsinou neznamena inu osobu, ale preklep.

Optimalizacny algoritmus (expectation maximization) natrenuje co najlepsie para-

metre pre affine gaps jednotlivych polı vzorky. Po vypocıtanı optimalnych parametrov

podobnostı jednotlivych polı je pouzity SVM (support vector machine) klasifikator na

rozhodnutie, ci dany zaznam je duplikat alebo nie.

Metoda bola otestovana na 6 skutocnych datasetoch. [4]

W. Cohen a M. Richman vyvinuli adaptıvnu a skalovatel’nu techniku, ktora vyuzıva

logisticku regresiu. Vahy su natrenovane pre konkretnu domenu z oznacenej vzorky dat.

Technika je porovnavana s dvoma baseline neadaptıvnymi technikami, ktore prekonava

a je takmer taka dobra ako tretia - najlepsia baselina technika. [9]

S. Tejeda a kolektıv vyvinuli system, ktory pouzıva ucenie decision tree learners pre

vytvorenie pravidiel mapovania zaznamov. Sucast’ou pravidiel su hranice transformacnych

funkciı, ktore su tiez naucene. Transformacnymi funkciami su zhodnost’, stemming (po-

rovnanie korenov slov), soundex a skratka. Zaujımave je prave osetrenie skratiek, ktore

26

Page 41: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

sa da porovnavat’ s l’udskym chapanım skratiek (na rozdiel od porovnania N-gramami

alebo Levenshteinovou vzdialenost’ou) - naprıklad slovo konciace bodkou je oznacene ako

zhodne, ak su znaky pred bodkou prefixom d’alsieho porovnavaneho slova (M. - Martin),

podmnozinou porovnavaneho slova (Blvd - Boulevard) alebo pozostava zo zaciatocnych

pısmen slov (CPK - Californa Pizza Kitchen). [36]

O. Hassanzadeh a kol. pouzili strojove ucenie bez ucitel’a. Navrhli testovacı frame-

work s ciel’om zistit’, ktore prekazky stoja pred vyvinutım skutocne skalovatel’neho a uni-

verzalneho riesenia pre integraciu dat. V clanku vyuzıvaju framework na vyhodnoteniu

zhlukovacıch algoritmov. Vysledky ich vyskumu ukazuju, ze niektore zhlukovacie algo-

ritmy, o ktorych sa nikdy v suvislosti s integraciou dat neuvazovalo, maju v tejto oblasti

vel’mi dobre vysledky. [20]

3.6 Integracne systemy dat

Integracne systemy dat (DIS) poskytuju jednotny prıstup k viacerym zdrojovym da-

tabazam. Poziadavka na DIS (alebo sprostredkovana poziadavka) je prelozena na poziadavky

na zdrojove databazy, vykonana a vysledky su opat’ prelozene do jednotneho rozhrania.

Napriek vyznamnemu pokroku vo vyvoji automatickych systemov na zjednotenie schem,

dnesny proces tvorby DIS je vykonavany rucne, co je casovo narocne a nachylne na chyby.

A. Doan a R. McCann navrhuju kolaboratıvny prıstup pre zjednodusenie tohto problemu.

Zakladna myslienka je, ze DIS ma konecnu mnozinu parametrov, ktore musia byt’

nastavene. Na zaciatku mozu byt’ inicializovane nahodne alebo pouzitım automatickeho

systemu. Nasledne system kladie viacerym pouzıvatel’om otazky, na zaklade ktorych upra-

vuje parametre a postupne konverguje k ziadanym vysledkom. Pri kladenı otazok existuje

viac sposobov.

• Nutena odozva. Pouzıvatel’ pocas prace so systemom musı odpovedat’ na otazky.

• Dobrovol’na odozva s kratkodobou odmenou. Ked’ pouzıvatel’ zada do systemu

poziadavku, je mu vratena odpoved’. Pritom je upozorneny, ze ak ma zaujem o d’alsie

informacie, moze odpovedat’ na otazku. Ked’ na otazku odpovie, dostane sa

k pozadovanym informaciam.

• Dobrovol’na odozva s dlhodobou odmenou. Pouzıvatel’ za odpovede na otazky

zıskava dlhodobe vyhody a moznosti prıstupu k informaciam v systeme.

Pouzıvatelia su na zaklade svojich akciı vahovanı podl’a dovery, aku k nim mame (ochrana

pred zakernymi pouzıvatel’mi). System upravuje parametre na zaklade odpovedı od via-

cerych pouzıvatel’ov, pricom berie do uvahy aj ich vahy. [10]

A. Fuxman a R. Miller navrhuju lepsı sposob prace s nekonzistentnymi datam v in-

tegracnych systemoch dat. Tradicne DIS pouzıvaju rucne vytvorene procedury pre vy-

27

Page 42: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

riesenie nekonzistencie medzi jednotlivymi zdrojmi na strane zdrojov dat (co nemusı byt’

vzdy mozne) alebo ako medzivrstva medzi DIS a zdrojmi dat. Autori navrhuju riesit’

nekonzistencie na strane DIS pri vykonavanı dotazu (query time) bez zmien zdrojovych

databaz. [15]

3.7 Fuzzy databazy

Pre integraciu dat je zaujımavy koncept fuzzy databazovych systemov. V tejto oblasti

bolo vykonane vel’ke mnozstvo vyskumu [37, 23, 19]. Avsak sme nenasli skoro ziadne

siroko pouzıvane implementacie. Existujuce implementacie funguju iba ako medzivrstva

pouzıvatel’a a relacneho databazoveho systemu, ktora sıce o nieco zvysi pohodlie pouzıvatel’a,

ale pridava vlastnu vykonnostnu zat’az na dotazovanie databazy.

S. Chauduri v [7] navrhol specialny typ JOIN operatora pre relacne databazy, ktory

neporovnava zaznamy exaktne, ale vyuzıva fuzzy porovnavanie ret’azcov (metriky podob-

nosti) a umoznı vyriesenie zakladnej integracie dat az pocas dotazovania databazy.

Koncepty v tejto casti su sıce zaujımave, ale z dovodu nedostatocnosti na riesenie

pokrocilejsıch integracnych problemov a nadbytocnej vykonnostnej zat’aze nie su siroko

pouzıvane.

28

Page 43: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Kapitola 4

St’ahovanie dat

St’ahovanie dat z webovych zdrojov nie je tak priamociare, ako by sa mohlo zdat’. Ciel’om

st’ahovacov je data stiahnut’ a upravit’ do strukturovanej formy, v ktorej mozu byt’ ulozene

do relacnej databazy.

Pri st’ahovanı mozu nastat’ viacere problemy. Najjednoduchsie je, ak zdrojova sluzba

dodrziava standardne konvencie o bezstavovosti webu (rovnaka URL vzdy vrati rovnake

data) a nevyzaduje Javascript. Vtedy stacı HTTP metodou GET pristupit’ na spravnu

URL so spravnymi parametrami (naprıklad skusat’ ID zaznamov vo vzdialenej sluzbe)

a ulozit’ odpoved’. Dokonca nie je problem odsimulovat’ odoslanie formulara (naprıklad

vyhl’adavacieho) zavolanım HTTP metody POST a pridanım spravnych parametrov. Ak

stranka vyzaduje prihlasenie, da sa odsimulovat’ prihlasenie, ulozit’ cookie a poslat’ ho pri

kazdom d’alsom poziadavku. Niektore stranky ale nedodrziavaju konvencie bezne na webe

(ide hlavne o ASP stranky, problem sa tyka aj niektorych webov postavenych na Jave).

Pri stiahnutı stranky metodou GET ani pri simulovanı odoslania formulara cez POST

sa k datam nedostaneme, nepomoze ani prenos cookie. Stranka bez podpory Javascriptu

(pri jednoduchom st’ahovanı iba stiahneme kod a Javascript neinterpretujeme) nezobrazı

ziadne data alebo nedovolı odoslat’ formular. Vtedy treba pouzit’ javascriptom vybaveny

bezhlavy (headless) prehliadac, ktory sa sprava ako bezny webovy prehliadac, umoznı

nastavenie URL, zadanie vstupov do formulara a prechadzanie zobrazenych vysledkov po

nacıtanı a vykonanı Javascriptu. Niektore webove sluzby mozu vyzadovat’ zadanie captchy,

vtedy automatizovane st’ahovanie je takmer nemozne. Niekedy je pocet poziadavkov za

sekundu obmedzeny casovacom (timeout) na strane servera. Pri niekol’kych zaznamoch

spomalenie potrebou interpretacie javascriptu, captchou alebo casovacom nie je problem,

ale ak je zaznamov niekol’ko 10 tisıc, moze ıst’ o vaznu prekazku.

Dalsım problemom je roznorodost’ formatov a slaba strukturovanost’ dat. Najcastejsım

formatom je HTML, ale niekedy su data ulozene ako vol’ny text v PDF alebo ako naske-

novane obrazky dokumentov. Vel’mi zriedka sa nachadzaju v strojovo spracovatel’nom

formate ako CSV (comma-separated values) alebo XML. Preto je potrebne data po stia-

hnutı parsovanım alebo OCR previest’ do strukturovanej formy. V CSV a XML je to

29

Page 44: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

najjednoduchsie. V HTML mozu existovat’ pomocky v podobe rozumne napısaneho kodu,

ale casto je HTML len o nieco malo lepsie ako nestrukturovany text. V PDF sa vacsinou

nachadza iba nestrukturovany text, s ktorym sa vel’mi t’azko pracuje. Naskenovane obrazky

dokumentov treba previest’ cez OCR a d’alej pracovat’ s nestrukturovanym textom.

V d’alsom texte rozpısem nas st’ahovacı framework a ake problemy sa vyskytli pri

tvorbe niektorych vybranych st’ahovacov.

4.1 St’ahovacı framework

Pre potreby vytvarania st’ahovacov a ich spust’ania sme vytvorili st’ahovacı framework. Na

navrhovany framework sme na zaciatku nemali vel’ke poziadavky, pretoze jeho jedinym

ciel’om bolo poskytnut’ nam data vyuzitel’ne pri skumanı metod cistenia dat.

• Vnutorne API pre pohodlne vytvaranie st’ahovacov, ktore stiahnu udaje z weboveho

zdroja.

• Vnutorne API pre pohodlne vytvaranie parserov, ktore zo stiahnutych suborov ex-

trahuju strukturovane informacie a ulozia ich do databazy.

Neskor sme pridali d’alsie poziadavky pre zlepsenie vyuzitel’nosti frameworku a umoznenie

jeho skutocneho nasadenia ako zaklad pre nejaku aplikaciu alebo sluzbu poskytujucu

verejne data v lepsej forme ako povodne webove zdroje.

• Umoznenie paralelneho spust’ania st’ahovacov pre zvysenie vykonu.

• Pri zlyhanı st’ahovania umoznit’ spustit’ st’ahovanie znova.

• Ukladanie vsetkych stiahnutych suborov v povodnej podobe do uloziska na disku.

• Umoznenie periodickeho spust’ania st’ahovacov, pricom udaje v databaze a subory

v ulozisku sa aktualizuju.

Architekturu frameworku navrhol veduci bakalarskej prace Jan Suchal. Ja s Ondrejom

Proksom, ktory pracuje na rovnakej teme, sme sa zamerali na implementaciu st’ahovacov

a parserov pre co najviac webovych zdrojov. V casti navrh opısem architekturu systemu

a v casti implementacia opısem pouzite technologie.

4.1.1 Navrh

St’ahovanie je znazornene na obrazku 4.1.1. Zakladom je rad uloh (task queue), do ktoreho

sa zarad’uju poziadavky na stiahnutie jednotlivych URL prıslusnym st’ahovacom. Naprıklad

je spustena uloha na stiahnutie prvej casti obchodneho vestnıka. PDF subor je stiahnuty

a ulozeny do nasho uloziska suborov pre prıpad potreby povodneho zdroja v buducnosti.

30

Page 45: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Uloha zavola parser, ktory zo stiahnuteho suboru zıska potrebne udaje. Nakoniec uloha

zaradı na st’ahovanie URL s nasledujucim primarny m kl’ucom. Po skoncenı ulohy je z radu

vybrata tato d’alsia uloha. Ulohy z radu vybera a spust’a worker. Ked’ je workerov spus-

tenych viac, vtedy mozeme hovorit’ o paralelnom st’ahovanı. Ide hlavne o prıpad st’ahovania

roznych zdrojov naraz, kedy nie sme obmedzenı priepustnost’ou jedneho zdroja.

Obr. 4.1.1: Architektura st’ahovania dat

Ulohy su spust’ane pravidelne s frekvenciou aktualizacie zdroja. Preto musia byt’ aj na-

programovane tak, aby dokazali aktualizovat’ zmenene zaznamy a stiahnut’ nove zaznamy

bez potreby zdlhaveho st’ahovania vsetkych zaznamov od zaciatku. St’ahovac obchodneho

vestnıka naprıklad zacne st’ahovanie od poslednej hodnoty primarneho kl’uca. Uz vy-

dane vestnıky sa neaktualizuju, preto sa aktualizaciou stiahnutych vestnıkov zaoberat’

nemusıme.

31

Page 46: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Obr. 4.1.2: Diagram tried modulu Ives

Obrazok 4.1.2 ukazuje navrh tried pre st’ahovace a parsery zdroja Registre a evidencie

Ministerstva vnutra. Modul Datafine poskytuje vnutorne API pre st’ahovanie a uklada-

nie suborov. Kazdy webovy zdroj ma svoj vlastny modul (pre Registre a evidencie MV

je to Ives). V module sa nachadzaju databazove modely (oznacene poznamkou Model).

V Registroch a evidenciach MV sa nachadza viac typov organizaciı. Preto model Organi-

32

Page 47: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

zation je abstraktny a dedia z neho modely konkretnych typov organizaciı. V podmodule

Jobs su ulohy, ktore vyuzıvaju vnutorne API z modulu Datafine. Uloha moze zaradit’ do

fronty inu ulohu alebo pouzit’ parser z podmodulu Parsers na zıskanie strukturovanych

dat zo stiahnuteho HTML kodu (alebo ineho formatu). Parsery vytvaraju a aktualizuju

databazove modely.

4.1.2 Implementacia

System staviame na webovom frameworku Ruby on Rails. Ruby je vysoko-urovnovy prog-

ramovacı jazyk, ktory svojou strucnou syntaxou a premyslenym objektovym modelom

vyrazne zvysuje produktivitu programatora. Ruby on Rails vhodnym vyuzitım moznostı

Ruby a praktickym navrhom vyrazne urychl’uje vyvoj webovych aplikaciı. Ruby on Rails je

zalozeny na princıpe REST a ma zabudovanu podporu pre XML a JSON, co ich predurcuje

k tvorbe aplikaciı poskytujucich API, co by sme v buducnosti mohli vyuzit’ v prıpade, ze

by sme chceli data poskytnut’ d’alej inym aplikaciam.

Pri st’ahovanı z malej casti pouzıvame aj platformu Java. V Jave existuje vel’a vybornych

kniznıc (viac ako v Ruby) a jednu cez projekt JRuby (implementacia Ruby na Java VM)

pouzıvame v st’ahovaci.

Ako databazovy server pouzıvame PostgreSQL, co je najpokrocilejsia open-source

relacna databaza. V PostgreSQL mame ovel’a vacsie moznosti prace s datami ako v MySQL

(prıkladom su trigramove indexy). Dalo by sa uvazovat’ aj o pouzitı nerelacnej databazy

(CouchDB, MongoDB), vtedy by sa s datami pracovalo cez map-reduce paradigmu a nie

relacnu. Data by rovnako mohli byt’ reprezentovane vo forme ontologiı. Kvoli charakteru

nasich dat a jednoduchej integracii s Ruby on Rails cez ORM (object-relational mapper)

sme sa rozhodli ostat’ pri relacnej databaze PostgreSQL.

Pri vyvoji sme pouzili vyvoj riadeny testami (TDD) na urovni unit testov nasich

st’ahovacov, parserov a modelov. Pısanie testov pred samotnym kodom vo vacsine prıpadov

nebola vel’ka zat’az (len pri Zivnostenskom registri s vel’mi komplikovanym sposobom

st’ahovania by narocnost’ pısania testu prevazila vyhody TDD) a prinieslo vyhody vo forme

pohodlnejsieho vyvoja (automaticke otestovanie, ci prave dokoncena funkcnost’ funguje

spravne bez nutnosti kontrolovat’ vypisy alebo medzivysledky) a vyssej spol’ahlivosti (pri

neskorsom refaktorovanı kodu sme mali istotu, ze nepokazıme nieco, co funguje).

Ako tım vyvojarov (traja) sme samozrejme pouzıvali system pre spravu zdrojoveho

kodu (SCM). Zvolili sme Git a jeho fakultny hosting.

Problemy pri implementacii st’ahovacov podrobnejsie rozoberam v d’alsıch castiach

tejto kapitoly. Dodatok D obsahuje technicku dokumentaciu pre pouzitie a d’alsı vyvoj

st’ahovacieho frameworku.

33

Page 48: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

4.2 Zivnostensky register

Tento zdroj verejnych dat pouzıva technologiu ASP viewstate, ktora nedodrziava bez-

stavovy charakter standardnych webovych aplikaciı. K udajom o zivnostnıkoch sa neda

dostat’ priamym zadanım URL, ale iba cez vysledky vyhl’adavania. Pouzitım formulara na

stranke na systematicke vyhl’adavanie roznych kombinaciı pısmen kdekol’vek v mene sa da

dostat’ ku vsetkym strankam. Maximalny pocet vratenych vysledkov je z nam neznameho

dovodu obmedzeny na 500. Preto treba poziadavku zakazdym spresnovat’, aby sme sa

dostali aj k strankam, ktore sa do povodnych 500 vysledkov nezmestili. Tento prıstup je

vel’mi pomaly a okrem toho je t’azke zarucit’, aby boli stiahnute vsetky stranky.

Nasledujuce udaje po stiahnutı stranok vyparsujeme a ulozıme do databazy:

• Obvodny urad

• Cıslo zivnostenskeho registra

• Obchodne meno

• ICO

• Sıdlo

• Statutarne organy

– Meno

– Adresa

• Predmety podnikania

– Nazov

Zivnostensky register oproti jednoducho stiahnutel’nemu statistickom registri organizaciı

pridava len niekol’ko udajov o statutarnom organe, predmetoch podnikania a prevadzkarniach.

Tieto udaje nie su pre nas az tak zaujımave ako naprıklad udaje o firmach v obchod-

nom registri a vzhl’adom na problemy, ktore sa pri st’ahovanı vyskytli, sa st’ahovanım

zivnostenskeho registra nebudeme d’alej zaoberat’.

4.3 Obchodny vestnık

Obchodny vestnık je zverejnovany na stranke Ministerstva spravodlivosti SR vo formate

PDF. Jednotlive vydania st’ahujeme skusanım primarnych kl’ucov ich databazy v pa-

rametri URL a ukladame do nasho uloziska pre prıpad potreby povodneho zdroja dat

v buducnosti.

34

Page 49: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Vzhl’adom na format vestnıka bolo narocnejsie vyvinut’ parser. Na nom sme zacali

pracovat’ v juni 2011. Z dokumentov sme extrahovali cisty text a rozdelili sme ich na

jednotlive zaznamy s nadpisom a obsahom. Z nadpisu bolo mozne zistit’ nazov firmy, ktorej

sa zaznam tykal a typ zaznamu (novy zaznam obchodneho registra, konkurz, drazba,

...). Obsahom bol vol’ny text, ktory blizsie specifikoval charakter prıslusneho oznamenia

alebo rozhodnutia. Problem bol, ze aj ked’ sme naprıklad vedeli, ze o firme sa pıse v casti

o konkurzoch, nemohli sme s istotou povedat’, ci je dana firma v konkurze alebo sa konkurz

na firmu zrusil. Jedinou moznost’ou zistenia tejto skutocnosti bola interpretacia vol’neho

textu, co je vedecky problem sam o sebe.

Dnes v marci 2012 po opatreniach na zvysenie transparentnosti Ministerstva Spra-

vodlivosti SR je situacia lepsia. Zaznamy z dokumentov nie je potrebne extrahovat’. Na

stranke sa pri kazdom novsom vestnıku zobrazı aj jeho obsah s nadpismi (nazov firmy

a typ zaznamu) a prıslusne casti vestnıka sa daju stiahnut’ samostatne. Problem extrakcie

informacie z vol’neho texty je vo vel’kej miere ul’ahceny doplnenım tabul’ky s metadatami

na zaciatok kazdej casti vestnıka. V tabul’ke sa uvadza meno a ICO firmy, ktorej sa dany

zaznam tyka a d’alsie uzitocne informacie.

Udaje o konkurzoch firiem sa daju naprıklad pouzit’ na stranke foaf.sk, kde maju

pouzıvatelia o taketo informacie vel’ky zaujem.

4.4 SK-NIC

Udaje o domenach su zverejnovane v CSV subore, ktory priamo stiahneme, rozbalıme

(pretoze je komprimovany pomocou gz kompresie) a naimportujeme do databazy (tuto

moznost’ ponuka PostgreSQL aj MySQL). Tento sposob zverejnenia je oproti sposobom

ostatnych zdrojov verejnych dat vel’mi spol’ahlivy a programatorovi na strane aplikacie,

ktora s datami potrebuje pracovat’ vyznamne zjednodusı implementaciu automatizovaneho

st’ahovania. CSV subor obsahuje tieto polia:

• Meno domeny

• SK-NIC kl’uc registratora

• SK-NIC kl’uc drzitel’a

• ICO drzitel’a

• Stav domeny

• Datum platnosti stavu domeny

• Domenove servery - ns1, ns2, ns3, ns4

• Platny system SK-NIC pravidiel pre domenu (NEW alebo OLD)

35

Page 50: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Zıskanie zoznamu SK-NIC registratorov je zalezitost’ou vyparsovania jednej stranky, kde

su vsetky tieto udaje v tabul’ke. V zozname sa nachadzaju nasledujuce udaje:

• SK-NIC kl’uc registratora

• Nazov spolocnosti

• Ulica

• Mesto

• Telefon

• E-Mail

Zoznam drzitel’ov je tiez mozne stiahnut’ vyhl’adavanım podl’a ID drzitel’a, ale vyhl’adavanie

po stiahnutı viacerych drzitel’ov zacne byt’ vyrazne pomalsie, co robı st’ahovanie informaciı

o drzitel’och neprakticke. Preto sa SK-NIC drzitel’mi nebudeme d’alej zaoberat’.

Tieto udaje su zaujımave pre stranku statistiky-domen.sk, ktora ich vizualizuje prehl’adnymi

grafmi a vyuzıva na zist’ovanie d’alsıch zaujımavych faktov.

4.5 Grantovy system Ministerstva kultury

Web pozostava z viacerych stranok, pricom kazda zobrazuje granty, o ktore bolo poziadane

v urcitom roku (od 2007). Na strankach je predvolene zobrazeny len prvy podprogram

ziadosti (celkovy pocet podprogramov ziadosti je okolo 30). Pre zıskanie d’alsıch by bolo

potrebne simulovat’ POST formulara s postupnym vyberanım jednotlivych podprogra-

mov. My sme vymysleli sposob, ako st’ahovanie grantov zjednodusit’. Pri zadanı prazdnej

hodnoty do vyberu podprogramu (ktora v pouzıvatel’skom rozhranı stranky dostupna nie

je), sa zobrazia vsetky granty v danom roku. Avsak nacıtanie vsetkych grantov naraz bolo

pomale a dokonca sme narazili na casovy limit nasho st’ahovaca, ktory sme museli zvysit’.

Ak by st’ahovanie grantov bolo v buducnosti nespol’ahlive, mozeme pouzit’ standardnu

cestu a t’ahat’ granty po jednotlivych programoch.

Zo stiahnutych stranok parsujeme jednotlive granty (dotacie) ulozene v tabul’ke.

O dotaciach mame nasledujuce informacie:

• Rok

• Meno (spolocnosti, fyzickej osoby)

• Okres

• Kraj

• ICO

36

Page 51: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• Cıslo ziadosti

• Datum zmluvy (pre pridelene projekty)

• Popis projektu

• Podprogram

• Vyska ziadanej dotacie aj s menou (SK alebo EURO)

• Vyska pridelenej dotacie aj s menou (SK alebo EURO)

Pri parsovanı pouzıvame niektore zakladne metody pre normalizaciu dat. Z ICO od-

stranujeme medzery, aby sa neskor mohli zaznamy v databaze spajat’ s d’alsımi tabul’kami.

Z vysky dotacie odstranujeme medzery a bodky oddel’ujuce trojice cıslic. Do databazy

ku kazdej sume ukladame menu v normalizovanom tvare sk alebo euro. Niektore vysky

ziadanej dotacie su 0 alebo neuvedene (NULL). Nie je nam jasne, ako tento udaj inter-

pretovat’. V prıpade vysky pridelenej dotacie ide pravdepodobne o neschvalenie projektu.

Tieto udaje sme po stiahnutı a vyparsovanı poslali ako CSV export Aliancii Fair-play,

pretoze o ne mala zaujem.

4.6 Registre a evidencie Ministerstva vnutra

Web poskytuje viacere zoznamy organizaciı podl’a ich typu. Organizacie je mozne vyhl’adavat’.

Kazda organizacia ma svoju stranku s jedinecnou URL (naprıklad stranky vypisov zivnostenskeho

registra jedinecnu URL nemaju, co robı ich st’ahovanie obtiaznym). Pri st’ahovanı sme

vyuzili moznost’ skusania primarnych kl’ucov v databaze aplikacie, cım sa dali pohodlne

stiahnut’ vsetky vypisy.

Pri parsovanı vypisu sme zıskali nasledujuce udaje:

• Typ organizacie

• Nazov organizacie

• Adresa sıdla

• ICO

• Predmet cinnosti

• Datum vzniku

• Datum vstupu do likvidacie

• Datum zaniku

37

Page 52: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• Zapojene osoby

– Osoba

∗ Meno

∗ Adresa

∗ ICO

– Od

– Do

– Funkcia

• Nazvy organizacie (predchadzajuce nazvy v prıpade premenovania)

Vypisy sa pre jednotlive typy organizaciı mierne lısili. Rozdiely neboli vel’ke, preto sme

vytvorili pre vsetky vypisy iba jeden zlozitejsı parser, ktory si s miernymi odlisnost’ami

v nazvoch polı a sposobe ich zapisu dokazal poradit’. Parser okrem modelu organizaciı

pracuje aj s modelom osob a prepojovacım modelom vyskytov osob v organizaciach. Na

tomto zaklade by sa dala vytvorit’ podobna siet’ ako foaf.sk, ale namiesto firiem zamerana

na organizacie. Medzi osobami je vel’a duplikatov podobne ako v osobach na foaf.sk.

4.7 Zhodnotenie

Nas st’ahovacı framework obsahuje nasledujuce st’ahovace (v zatvorke je uvedeny autor

daneho st’ahovaca).

• Centralny register zmluv (Jan Suchal)

• Statisticky register organizaciı (Ondrej Proksa)

• Ustredny portal verejnej spravy (Ondrej Proksa)

• Verejne obstaravania (Ondrej Proksa)

• Dlznıci Socialnej Poist’ovne (Ondrej Proksa)

• Dlznıci zdravotnej poist’ovne Dovera (Ondrej Proksa)

• Dlznıci zdravotnej poist’ovne Union (Ondrej Proksa)

• Dlznıci Vseobecnej zdravotnej poist’ovne (Ondrej Proksa)

• Domeny a osoby SK-NIC (Martin Liptak)

• Obchodny vestnık (Martin Liptak)

38

Page 53: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• Grantovy system Ministerstva Kultury (Martin Liptak)

• Zivnostensky register (Martin Liptak)

• Registre a evidencie Ministerstva vnutra (Martin Liptak)

Hlavnym ucelom bolo stiahnut’ co najviac dat, s ktorymi mozeme experimentovat’ v d’alsej

casti prace pri ich cistenı.

39

Page 54: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

40

Page 55: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Kapitola 5

Cistenie dat

Aj stiahnute a strukturovane data casto obsahuju preklepy, duplikaty a d’alsie nejed-

noznacnosti. Tieto problemy je potrebne vyriesit’ pred ich d’alsım spracovanım. Trivialnymi

sposobmi su normalizacia kl’ucov, zist’ovanie podobnosti kl’ucov a zapojenie viacerych

relaciı, ktore boli opısane v kapitole 3. My sa zameriame na pouzitie strojoveho ucenia.

Vsetky trivialne sposoby pouzijeme ako zaklad, ale ich parametre a vahy budu nastavene

automaticky ucenım zo vzorky, ktoru systemu poskytneme. Pojde teda o strojove ucenie

s ucitel’om (supervised machine learning). [29, 2]

Najskor rozpısem nas vyhodnocovacı framework. Zvysok kapitoly sa budeme venovat’

vykonanymi experimentmi.

5.1 Vyhodnocovacı framework

Algoritmom strojoveho ucenie, ktory sme pouzili v prvom experimente je logisticka re-

gresia [44]. Vstupom pre algoritmus je pouzıvatel’om vybrata oznacena vzorka dat (data

set). Vzorka obsahuje viac prıkladov a kazdy prıklad je vektorom vlastnostı (features).

Naprıklad pri porovnavanı dvoch osob mozu byt’ vlastnost’ami Levenshteinova vzdialenost’

mena a Levenshteinova vzdialenost’ adresy. Oznacenie (label) je informacia, ci porovnavane

osoby su v skutocnosti duplikat alebo nie. Algoritmus natrenuje vahy jednotlivych vlast-

nostı tak, aby na zaklade nich bolo mozne predikovat’ neoznacene prıklady s co najmensou

chybovost’ou. Takyto algoritmus sa kvoli binarnemu vystupu (ci je vzorka duplikat alebo

nie) oznacuje aj ako klasifikator.

V druhom experimente sme vyskusali aj Support Vector Machine (SVM) klasifikator

[46]. SVM klasifikator ma vacsinou lepsie vysledky, vd’aka hl’adaniu maximalneho okraja

(maximum margin) pri rozdel’ovanı vstupnych dat v priestore (cım sa vyhne prehnanemu

prisposobeniu sa vstupnym datam znamemu ako overfitting). Vyhodou SVM su tiez

tzv. kernelove funkcie, ktore umoznia hl’adat’ zlozitejsie suvislosti v datach. Zakladny

linearny kernel pracuje podobne ako logisticka regresia (az na lepsie vysledky vd’aka ma-

ximalnemu okraju). My sme pouzili RBF (radial-based function kernel) alebo gaussovsky

41

Page 56: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

kernel (Gaussian kernel), ktory nevyzaduje, aby sa dali vstupne data linearne rozdelit’.

Nevyhodou SVM s RBF kernelom je, ze neumoznuje jednoducho zıskat’ vahy vstupnych

vlastnostı, pretoze vstupne data boli transformovane kernelovou funkciou.

Pre lepsie pochopenie logistickej regresie a SVM je vhodnym zdrojom on-line kurz na

Stanford University od profesora Andrew Ng [2].

5.1.1 Navrh

Obr. 5.1.1: Diagram tried vyhodnocovacieho frameworku

Pri navrhu vyhodnocovacieho frameworku sme mysleli hlavne na jeho znovu-pouzitel’nost’

v obidvoch testoch a pri roznych konfiguraciach v ramci experimentov. Obrazok 5.1.1

ukazuje diagram tried. Vykonanie experimentu prebieha v piatich krokoch.

1. Implementacia SampleListLoader (FoafSampleListLoader alebo IvesSampleListLo-

ader v zavislosti od experimentu) nacıta vzorku dat z CSV suboru do modelov

Sample a Person.

42

Page 57: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2. Vzorky su rozdelene na trenovaciu a testovaciu cast’ a su z nich extrahovane vlast-

nosti implementaciou FeatureExtractor (v zavislosti od sady vlastnostı).

3. Implementacia klasifikatora je natrenovana na trenovacej vzorke.

4. Implementacia klasifikatora je pouzita na predikciu testovacıch prıkladov.

5. Vysledok predikcie je porovnany s oznacenım testovacıch prıkladov.

Obrazok 5.1.2 obsahuje diagram tried modelov. Pri hl’adanı duplikatov porovnavame

osoby medzi sebou. Preto prıklad pre klasifikator (trieda Sample) obsahuje 2 osoby,

oznacenie (spravny vysledok ich porovnania) a zoznam heuristık (naprıklad ci sa dane

2 osoby vyskytuju v spolocnej organizacii). Osoba (trieda Person) obsahuje vsetky do-

stupne udaje o osobe (meno, adresa) aj s novymi udajmi po normalizacii (meno bez

titulov, zoznam titulov, ulica, supisne cıslo, cıslo domu, PSC, mesto, mestska cast’). Praca

s modelmi je podrobne opısane v castiach Vzorka dat popisu jednotlivych experimentov

5.2.2 a 5.3.2 v tejto kapitole.

Obr. 5.1.2: Diagram tried modelov

5.1.2 Implementacia

Vyhodnocovacı framework sme povodne implementovali v jazyku Ruby, ale vyhodnotenia,

ktore sme potrebovali casto vykonavat’ s roznymi parametrami, boli vel’mi pomale (okolo

30 minut). Uzkym hrdlom bolo pocıtanie Levenshteinovej vzdialenosti pre vel’ke mnozstvo

vzoriek. Preto sme vyhodnocovacı framework prepısali do jazyka Java, cım sa vykonavanie

vyhodnotenia vyznamne zrychlilo (okolo 40 sekund). Pre logisticku regresiu sme pouzili

kniznicu liblinear [12, 39], pre SVM kniznicu libsvm [5, 22, 6].

K vyhodnocovaciemu frameworku nepripajame d’alsiu technicku dokumentaciu. Jeho

ucelom bolo vykonanie experimentov a jeho d’alsie pouzitie je malo pravdepodobne (iba

v prıpade, ze by niekto chcel v experimentoch pokracovat’).

43

Page 58: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

5.2 Experiment 1

Algoritmus sme vyskusali na datach z Obchodneho registra SR, ktore boli sprostredkovane

projektom foaf.sk. Databaza obsahuje firmy, osoby a vyskyty osob vo firmach. Problemom

je, ze medzi osobami je vel’ke mnozstvo duplikatov. Preto nie je jednoduche spol’ahlivo

zistit’, kto posobı v akej firme. Vznikaju situacie, ked’ naprıklad osoba, ktora posobı v 10

firmach, je evidovana ako 3 osoby s mensım poctom firiem, pretoze pri zakladanı prvej

firmy este nemala titul a neskor zmenila adresu trvaleho bydliska. Opacna situacia, ked’

2 osoby s rovnakym menom a podobnou adresou su menovci a susedia a su zaradene do

spolocnych firiem je z etickeho hl’adiska horsia, pretoze niekomu mozu byt’ prisudzovane

prıjmy na obstaravaniach alebo dlhy firiem, s ktorymi nema nic spolocne.

Experiment 1 bol opısany v prıspevku na IIT.SRC (dodatok A).

5.2.1 Metodologia

Na foaf.sk uz funguje sada heuristık, ktore detekuju duplikaty. Pouzili sme jej vystup ako

oznacenie pre trenovanie nasho systemu a na vysledne meranie metrık presnost’ (precision),

pokrytie (recall) a F1.

Vysledky systemu pri porovnanı s baseline mozeme zaradit’ do 4 tried.

• True positives. Spravne detekovane duplikaty. Pocet prıkladov, ktore boli systemom

oznacene ako duplikaty a a aj podl’a baseline su duplikatmi.

• True negatives. Spravne detekovane ne-duplikaty. Pocet prıkladov, ktore neboli

systemom oznacene ako duplikaty a ani podl’a baseline duplikatmi nie su.

• False positives. Nespravne detekovane duplikaty. Pocet prıkladov, ktore boli systemom

oznacene ako duplikaty, ale podl’a baseline duplikatmi nie su.

• False negatives. Nespravne detekovane ne-duplikaty. Pocet prıkladov, ktore neboli

systemom oznacene ako duplikaty, ale podla baseline duplikatmi su.

Presnost’ (vzorec 5.2.1) reprezentuje systemom detekovane duplikaty, ktore su duplikaty aj

podl’a baseline. Presnost’ je znızena prıtomnost’ou false positives. Pokrytie (vzorec 5.2.2) re-

prezentuje duplikaty podl’a baseline, ktore boli detekovane systemom. Pokrytie je znızene

prıtomnost’ou false negatives.

P =true positives

true positives + false positives(5.2.1)

R =true positives

true positives + false negatives(5.2.2)

Obidve metriky by mali byt’ co najvyssie. Pritom musia byt’ aj rozumne vyvazene (ak

by nasa metoda kazdej vzorke predikovala, ze je duplikat, pokrytie by bolo 100 %, ale

44

Page 59: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

presnost’ by sa blızila k 0). S tymto nam pomoze metrika F1 (vzorec 5.2.3), ktora rozumne

kombinuje presnost’ aj pokrytie.

F1 = 2P .R

P + R(5.2.3)

5.2.2 Vzorka dat

Vybrali sme 4 298 z 569 999 osob, ktore sa vyskytovali v Obchodnom registri SR v juni

2011. Do vyberu sa dostali hlavne zaznamy s vacsım mnozstvom duplikatov, ale pre

vyvazenie sme tiez pridali vel’a individualnych zaznamov. Nase prıklady su vsetky mozne

dvojice vybratych zaznamov. Vynechali sme rovnake dvojice s vymenenım poradım a pri-

dali dvojice s rovnakymi osobami. Preto mame 4298*(4298 + 1)/2 = 9238551 vzoriek.

Kazdy prıklad pozostava z dvoch zaznamov a kazdy zaznam poskytuje pole meno a ad-

resa (obrazok 5.1.2; ale v tomto experimente este nebola vyvinuta normalizacia adresy

a heuristiky). Z mien sme extrahovali akademicke tituly, aby sme ich mohli porovnavat’

samostatne. 80 % vzoriek bolo pouzitych ako trenovacia vzorka a 20 % ako testovacia

vzorka pre vyhodnotenie presnosti a pokrytia.

5.2.3 Vlastnosti

Pouzili sme nasledujuce vlastnosti pre kazdy z prıkladov:

• Oznacenie. Vlastnost’ zhodna s oznacenım vzorky pre otestovanie nasho vyhodno-

covacieho frameworku. 1 pre duplikat, 0 pre ne-duplikat.

• Zhodnost’1 mien. Tato vlastnost’ je 1, ked’ su porovnavane mena zhodne, inak 0.

• Zhodnost’ adries. Tato vlastnost’ je 1, ked’ su porovnavane adresy zhodne, inak 0.

• Levenshteinova vzdialenost’2 mien. Tato vlastnost’ reprezentuje Levenshteinovu

vzdialenost’ porovnavanych mien.

• Levenshteinova vzdialenost’ adries. Tato vlastnost’ reprezentuje Levenshteinovu

vzdialenost’ porovnavanych adries.

• N-gramova podobnost’3 mien. Tato vlastnost’ reprezentuje N-gramovu podob-

nost’ porovnavanych mien.

• N-gramova podobnost’ adries. Tato vlastnost’ reprezentuje N-gramovu podob-

nost’ porovnavanych adries.

1Bezna zhodnost’ ret’azcov znak po znaku.2Kapitola 3.2.4.3Kapitola3.2.3.

45

Page 60: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

• Kombinacia akademickych titulov. Vytvorili sme N ∗ (N + 1)/2 vlastnostı pre

vsetky dvojice N akademickych titulov, ktore sa vyskytovali v menach vzorky. Pre

danu vzorku su kombinacie titulov, ktore sa vyskytuju v porovnavanych menach 1,

vsetky ostatne 0. Predpoklad je, ze niektore tituly nie su medzi sebou kompatibilne.

Naprıklad dve osoby s rovnakym menom, ktore sa lısia iba v tom, ze jedna ma titul

Ing. a druha MUDr., pravdepodobne nie su duplikaty. Naopak v prıpade, keby jedna

z osob bola Ing. a druha Bc., pravdepodobne ide o duplikat.

• Disjunkcia akademickych titulov. Vytvorili sme N vlastnostı pre kazdy z aka-

demickych titulov, ktore sa vyskytovali v menach vzorky. Pre danu vzorku a dany

titul je tato vlastnost’ 1, ked’ sa titul vyskytuje v prave jednom mene vzorky. Ked’

sa titul nevyskytuje v ziadnom alebo sa vyskytuje v obidvoch, je tato vlastnost’

0. Predpoklad je, ze prıtomnost’ niektorych titulov (naprıklad ml. a st., ktore sıce

akademickymi titulmi nie su, ale pracujeme s nimi podobnym sposobom) v jednom

zazname a ich neprıtomnost’ v druhom naznacuje, ze porovnavane vzorky nie su

duplikaty.

5.2.4 Vysledky

Tabul’ka 5.2.1 ukazuje dopad pouzitia roznych sad vlastnostı na vykon predikcie testovacej

vzorky.

Tabul’ka 5.2.1: Vykon predikcie testovacıch vzoriek pri pouzitı roznych sad vlastnostı. Ar-gument metriky mena je meno bez titulov, argument mena + tituly je povodny atribut ajs titulmi. Skratky: zhodnost’ (=), Levenshteinova vzdialenost’ (L), N-gramova podobnost’

(nG), false positives (FP), false negatives (FN).

Sada vlastnostı FP FN Presnost’ Pokrytie F1 skore=(oznacenia) 0 0 1 1 1=(mena), =(adresy) 142 13 0.8777 0.9874 0.9293L(mena), L(adresy) 326 3 0.8782 0.9923 0.93182G(mena), 2G(adresy) 142 13 0.8777 0.9874 0.92933G(mena), 3G(adresy) 142 13 0.8777 0.9874 0.92934G(mena), 4G(adresy) 142 13 0.8777 0.9874 0.92935G(mena), 5G(adresy) 142 13 0.8777 0.9874 0.92936G(mena), 6G(adresy) 142 13 0.8777 0.9874 0.92932G(mena + tituly), 2G(adresy) 138 40 0.8779 0.9612 0.91773G(mena + tituly), 3G(adresy) 138 46 0.8772 0.9554 0.91474G(mena + tituly), 4G(adresy) 136 50 0.8784 0.9516 0.91355G(mena + tituly), 5G(adresy) 135 53 0.8788 0.9486 0.91246G(mena + tituly), 6G(adresy) 135 54 0.8787 0.9477 0.9119L(mena), L(adresy), kombinacie titulov 135 39 0.8803 0.9622 0.9194L(mena), L(adresy), disjunkcie titulov 135 23 0.882 0.9777 0.9274

46

Page 61: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Celkovo vysoka F1 metrika je sposobena povahou pouzitych prıkladov. Ked’ze su kar-

tezianskym sucinom samostatnych zaznamov, vacsina z nich nie su duplikatmi (naprıklad

John Doe je porovnany s John Doe, John Doa a Ing. John Doe a su najdene 3 duplikaty,

ale d’alsie 2 miliony porovnanı duplikatmi nie su). Z toho dovodu sa cısla daju porovnavat’

az na vyssıch miestach za desatinnou ciarkou alebo ako absolutne pocty chybne urcenych

prıkladov false positives a false negatives.

Vysledkom jednoduchej zhodnosti mena a adresy je 142 false positives a 13 false ne-

gatives. False positives su sposobene zaznamami so zhodnym menom aj adresou, ktore

neboli oznacene ako duplikaty baseline detekciou. To moze byt’ vysvetlene neprıtomnost’ou

d’alsıch atributov ako meno a adresa vo vzorke alebo, co je pravdepodobnejsie, chybami

v baseline detekcii duplikatov. False negatives su vacsinou chyby, ktore neboli detekovane.

Levenshteinova vzdialenost’ znızila pocet false negatives, pretoze akceptuje ret’azce

s preklepom. Avsak vyznamne zvysila pocet false positives, pretoze jednoduche operacie

uprav nemusia dostatocne rozlısit’ medzi preklepom a podobnym hlaskovanım (Martin

Liptak oproti Martin Luptak). Tato sada vlastnostı tiez neberie do uvahy tituly.

Vysledky N-gramov mien bez titulov a adries su rovnake ako zhodnost’ ret’azcov bez

ohl’adu na N. Oproti tomu N-gramy mien vratane titulov mierne znızili pocet false positi-

ves, ked’ze povazuju mena s roznymi titulmi za ne-duplikaty. Popri tom ale zvysili pocet

false negatives, pretoze vel’a mien, ktore sa lısia len v tituloch su duplikatmi aj podl’a

baseline.

Kombinacie titulov a disjunkcie titulov znızili pocet false positives oproti samostat-

nej Levenshteinovej vzdialenosti, pretoze v porovnavaniach zahrnaju tituly. Skumanie

naucenych vah tychto vlastnostı ukazalo, ze disjunkcia (ked’ sa dany titul v jednom

zazname nachadza a v druhom nie) bc. (0.51), csc. (2.89), ing. (4.09), judr. (1.32) a mgr.

(1.75) a kombinacia (ked’ sa dany titul nachadza v obidvoch zaznamoch) judr. - mgr.

(1.57) zvysuju pravdepodobnost’ zaznamov, ze su duplikaty.

Naucene vahy

Tabul’ka 5.2.2 ukazuje naucene vahy vlastnostı vybranych testovanı.

Sada vlastnosti Vaha 1 Vaha 2 Vaha 3

=(oznacenia) −11.86 17.45=(mena + tituly), =(adresy) −9.31 13.98 8.15

=(mena), =(adresy) −9.56 12.50 2.25L(mena + tituly), L(adresy) 6.27 −1.43 −0.14

L(mena), L(adresy) 5.70 −2.74 −0.073G(mena + tituly), 3G(adresy) −11.25 14.74 3.56

3G(mena), 3G(adresy) −10.93 13.02 3.04

Tabul’ka 5.2.2: Naucene vahy vlastnostı. Skratky: zhodnost’ (=), Levenshteinova vzdiale-nost’ (L), 3-gramova podobnost’ (3G)

47

Page 62: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Vahy predstavuju koeficienty linearnej funkcie. Po dosadenı vektora vlastnostı x pred-

ikovaneho prıkladu ma funkcia hodnotu mensiu ako 0 v prıpade ne-duplikatu alebo vacsia

ako 0 v prıpade ne-duplikatu. Prva vaha w0 urcı prahovu hodnotu pre vahy vlastnostı

(oznacuje sa ako bias alebo intercept). Vzorec 5.2.4.4

f(x) = wTx = w0x0 + w1x1 + w2x2 + ... + wnxn (5.2.4)

Ukazeme si to na sade vlastnostı s oznaceniami (riadok 1). Bias je -11.86 a vaha

vlastnosti oznacenie 17.45. Ked’ je oznacenie 0, vysledna hodnota je −11.86 + 17.45 ∗0 = −11.86 < 0 a predikcia je ne-duplikat. Ked’ je oznacenie 1, vysledna hodnota je

−11.86 + 17.45 ∗ 1 = 5.59 > 0 a predikcia je duplikat.

Zaujımave je porovnat’ sady vlastnostı s titulami a bez titulov. Zhodnost’ s titulmi

(riadok 2) ma vahu vlastnosti adresa viacnasobne vacsiu ako zhodnost’ bez titulov (riadok

3). Pri porovnavanı s titulami sa casto vyskytuju osoby, ktore sa lısia len v tituloch a mali

by byt’ duplikatmi, ale ako duplikaty oznacene nie su, pretoze presna zhodnost’ ret’azcov

nema moznost’ prisposobit’ sa roznym titulom. To znizuje vahu vlastnosti meno + tituly

oproti vlastnosti meno. Vlastnost’ meno ma rovnaku hodnotu, preto sa relatıvne zvysenie

jej vahy prejavilo podstatnym znızenım vlastnosti adresa. Levenshteinova vzdialenost’ a 3-

gramy sa dokazu lepsie prisposobit’ titulom, preto rozdiel medzi sadou s titulami a sadou

bez titulov nie je taky vyznamny (ale stale naznacuje podobny trend).

Hodnoty zhodnosti ret’azcov (0 alebo 1) a 3-gramov (0 az 1) su v spolocnom intervale.

Preto aj vahy vlastnostı su kladne cısla s podobnym rozmerom. Levenshteinova vzdia-

lenost’ je pri zhodnych ret’azcoch 0 a stupa so vzdialenost’ou ret’azcov. Preto aj vahy su

zaporne.

Vaha mena je vzdy vyssia ako vaha adresy, pretoze adresa sa moze v duplikatoch lısit’

viac. Pri porovnavaniach je dolezitejsia zhodnost’ alebo podobnost’ mien ako zhodnost’

alebo podobnost’ adries.

Krivka ucenia

Obrazok 5.2.1 ukazuje krivku ucenia [2] kombinacie titulov. Krivky d’alsıch sad vlastnostı

vyzeraju podobne. Os X reprezentuje vel’kost’ trenovacej vzorky. Vyskusali sme hodnoty

5 %, 10 %, 20 %, 40 %, 60 % a 90 %. Os Y reprezentuje chybovost’5. Vel’kost’ testovacej

vzorky je vzdy 100 %. Na grafoch vidıme, ze s rastucou vel’kost’ou trenovacej vzorky,

chybovost’ testovania sıce mierne klesa, ale chybovost’ trenovacej vzorky prudko stupa.

Obidve krivky sa nakoniec stretnu, ale chybovost’ trenovania nema trend znizovat’ sa.

4Logisticka regresia okrem toho na vysledok pouzıva tzv. sigmoid funkciu, ale tu pre zjednodusenievysvetlenia vyznamu vah neuvadzame. Vystupom sigmoid funkcie je pravdepodobnost’ (cıslo v intervale<0, 1>). Vyhodou je moznost’ urcit’ iny prah predikcie duplikat - ne-duplikat. Pri prahu 0.5 je vysledokprakticky rovnaky ako nami uvadzany postup.

5Chybovost’ je pomer nespravne urcenych prıkladov a vsetkych prıkladov. Cısla su vel’mi malez dovodu, ze vel’ka vacsina prıkladov su ne-duplikaty (rovnako ako pri metrikach v tabul’ke 5.2.1).

48

Page 63: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Pridavanie novych prıkladov do vzorky nepomoze lepsie natrenovat’ klasifikator. Dalsia

praca musı byt’ vykonana vo vylepsovanı vlastnostı, aby sa lepsie prisposobili datam. Ide

o tzv. high bias problem.

0

0.0001

0.0002

0.0003

0.0004

0.0005

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Chyb

ovos

t’

Vel’kost’ trenovacej vzorky

Chybovost’ trenovania

+ + + ++ +

+Chybovost’ testovania

× × × × × ×

×

Obr. 5.2.1: Krivka ucenia

5.3 Experiment 2

V druhom experimente sme pracovali s datami z Registrov a evidenciı Ministerstva vnutra.

Data boli zıskane nasim st’ahovacım frameworkom (cast’ 4.6). Struktura databazy je po-

dobna foaf.sk - obsahuje organizacie, osoby a vyskyty osob v tychto organizaciach. Medzi

osobami su takisto duplikaty, naprıklad:

• Osoby s rovnakym menom, ale rozdielnymi titulmi (Prof. Ing. Frantisek Uherek

PhD. - doc. Ing. Frantisek Uherek CSc.).

• Osoby s rovnakym menom a rozdielne napısanou adresou (Usiakova 1961/10, 84101

Bratislava - Usiakova 1961/10, 84101 Bratislava - Dubravka).

• Osoby s rovnakym menom a skratkou v adrese (H. Melickovej 13 - Hany Melickovej

13).

• Osoby s rozdielne napısanym menom (SVB ”Nesporova A/4” - Spolocenstvo vlastnıkov

bytov a nebytovych priestorov ”SVB a NP Nesporova 1013 ”).

• Osoby s rovnakym menom a uplne rozdielnou adresou, ktore na zaklade ucasti

v spolocnych organizaciach pravdepodobne su duplikatmi.

49

Page 64: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Tieto duplikaty je potrebne oznacit’ ako identicke osoby, aby sa dali data z Registrov

a evidenciı Ministerstva vnutra spol’ahlivo vyuzıvat’. Takisto je potrebne vyhnut’ sa tomu,

aby boli ucast’ou v organizaciach oznacene osoby, ktore s danymi organizaciami nemaju

nic spolocne (false positives).

5.3.1 Metodologia

Sposob vyhodnotenia je rovnaky ako v prvom experimente okrem toho, ze nebol pouzity

iny baseline algoritmus detekcie duplikatov, ale vzorka bola rucne oznacena”expertom”.

5.3.2 Vzorka dat

Prıprava a rucne oznacovanie vzorky zabralo priblizne 3 hodiny prace. Ciel’om bolo, aby

vyber porovnavanych osob bol co najvyvazenejsı (niekol’ko prıkladov z co najvacsieho

mnozstva situaciı, ktore mozu pri porovnavanı nastat’) a konzistentne oznaceny (dana

situacia bola vzdy oznacena rovnakou hodnotou duplikat-neduplikat). Vel’kost’ vzorky je

250 osob (zaznamov). Prıklady pre ucenie su vsetky mozne dvojice vybratych osob. Vyne-

chali sme rovnake dvojice s vymenenym poradım a pridali dvojice s rovnakymi osobami.

Preto mame 250 ∗ (250 + 1) = 62750 prıkladov. Kazdy prıklad pozostava z dvoch osob

a kazda osoba obsahuje meno a adresu. Z mien sme extrahovali akademicke tituly (aj

s oznaceniami ako ml. a st.). Adresu sme rozbili na jednotlive casti (ulica, supisne cıslo,

cıslo domu, PSC, mesto, mestska cast’). Ku kazdemu prıkladu sme doplnili heuristiku, ci

sa osoby vyskytuju v spolocnej organizacii. Obrazok 5.1.2.

5.3.3 Vlastnosti

Boli pouzite vsetky vlastnosti z prveho experimentu a niekol’ko novych vlastnostı.

• Levenshteinove vzdialenosti a N-gramove podobnosti boli okrem celej adresy pocıtane

aj pre jej jednotlive casti.

• V spolocnej organizacii. Heuristika, ci sa porovnavane osoby vyskytuju v spolocnej

organizaciı. Predpoklad je, ze ak sa 2 osoby s podobnym menom uplne odlisuju

v adrese alebo adresa chyba (co sa na rozdiel od Obchodneho registra vyskytuje

v Registroch a evidenciach Ministerstva vnutra pri obcianskych zdruzeniach, kde

adresy v niektorych funkciach nie su zverejnovane) a maju spolocne clenstvo v or-

ganizaciach, pravdepodobne ide o identicke osoby.

• Prazdna adresa. Heuristika, ci je adresa jednej z osob prazdna. Skutocnost’, ze

jedna z adries moze byt’ prazdna, negatıvne ovplyvnuje presnost’ vah podobnosti

adries. Touto vlastnost’ou sme chceli tento prıpad vyvazit’.

50

Page 65: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

5.3.4 Vysledky

Na novej vzorke dat sme najskor vyskusali rovnake vlastnosti ako v predchadzajucom

experimente. Tabul’ka 5.3.1 zobrazuje vysledky. F1 skore je podobne ako v prvom expe-

rimente vysoke, pretoze vzorky su dvojice porovnavanych osob a vo vacsine prıpadov je

jednoznacne, ci ide o duplikat alebo nie (naprıklad uplne ine meno a adresa). My sme sa

zamerali na prıpady, kde to take jednoznacne nie je. Tych kvoli malej vzorke nie je az

tak vel’a, preto uvadzam absolutne pocty chyb false positives a false negatives. Precision

a recall by boli rovnako vysoke a ich uvadzanie nema zmysel, ked’ze F1 lepsie vypoveda

o celkovom vykone.

Sada vlastnostı FP FN F1 skore

=(oznacenia) 0 0 1=(mena bez titulov), =(adresy) 8 6 0.9628L(mena bez titulov), L(adresy) 2 8 0.9728

2G(mena bez titulov), 2G(adresy) 7 7 0.96293G(mena bez titulov), 3G(adresy) 7 8 0.95984G(mena bez titulov), 4G(adresy) 7 9 0.9575G(mena bez titulov), 5G(adresy) 7 11 0.95146G(mena bez titulov), 6G(adresy) 7 12 0.9485

=(mena s titulmi), =(adresy) 7 12 0.9485L(mena s titulmi), L(adresy) 4 13 0.9534

2G(mena s titulmi), 2G(adresy) 3 9 0.96743G(mena s titulmi), 3G(adresy) 3 10 0.96464G(mena s titulmi), 4G(adresy) 8 6 0.96285G(mena s titulmi), 5G(adresy) 8 6 0.96286G(mena s titulmi), 6G(adresy) 8 6 0.9628

L(mena bez titulov), L(adresy), kombinacie titulov 2 8 0.9728L(mena bez titulov), L(adresy), disjunkcie titulov 2 8 0.9728

Tabul’ka 5.3.1: Vykon predikcie na testovacej vzorke pri pouzitı vlastnostız predchadzajuceho experimentu. Skratky: zhodnost’ (=), Levenshteinova vzdiale-nost’ (L), N-gramy (NG), false positives (FP), false negatives (FN)

Porovnanie osob len podl’a zhodnosti mena bez titulov a adresy stacilo na spravne

urcenie vacsiny vzoriek. Levenshteinova vzdialenost’ pocet chyb mierne znızila. N-gramy

maju najlepsı vykon pri N = 2, pri vyssom N vykon klesa.

Porovnanie osob podl’a zhodnosti mena s titulmi a adresy odstranilo niekol’ko false

positives, ked’ze rozne osoby s rovnakymi menami a roznymi titulmi sa tentokrat odlisovali.

Na druhej strane pribudlo viac false negatives, ked’ze rozdielne tituly pri identickej osobe

sposobili jej oznacenie ako ne-duplikat. Levenshteinova vzdialenost’ mierne pomohla, N-

gramy pomohli vyznamne. N-gramy sa znova ukazali ako najvykonnejsie pri N = 2 a ich

vykon klesa s vyssımi N.

Vlastnosti kombinacie a disjunkcie titulov nemali na vysledok ziadny vplyv, pretoze

51

Page 66: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

vzorka bola mala na to, aby sa dokazali natrenovat’.

Tabul’ka 5.3.2 ukazuje vplyv rozdelenia adresy na casti a zavedenia heuristık na vysledky.

Rozdelenie adresy na casti z hl’adiska celkovej vykonnosti algoritmu nepomohlo vel’kou

mierou, ale znızilo pocet false positives, pretoze metriky podobnosti sa mohli lepsie zame-

rat’ na preklepy v jednotlivych castiach adresy a nemuseli sa prisposobovat’ chybajucim

supisnym cıslam a castiam adresy.

Sada vlastnostı FP FN F1 skore

=(mena bez titulov), =(casti adresy) 2 17 0.9470L(mena bez titulov), L(casti adresy) 4 13 0.9534

2G(mena bez titulov), 2G(casti adresy) 7 7 0.96263G(mena bez titulov), 3G(casti adresy) 7 8 0.95984G(mena bez titulov), 4G(casti adresy) 7 9 0.9575G(mena bez titulov), 5G(casti adresy) 7 11 0.95146G(mena bez titulov), 6G(casti adresy) 7 12 0.9485

L(mena bez titulov), L(casti adresy), heuristiky 3 13 0.956=(mena s titulmi), =(casti adresy) 2 11 0.9644L(mena s titulmi), L(casti adresy) 2 9 0.97

2G(mena s titulmi), 2G(casti adresy) 1 10 0.96973G(mena s titulmi), 3G(casti adresy) 1 10 0.96974G(mena s titulmi), 4G(casti adresy) 2 11 0.96445G(mena s titulmi), 5G(casti adresy) 3 11 0.96176G(mena s titulmi), 6G(casti adresy) 2 11 0.9644

L(mena s titulmi), L(casti adresy), heuristiky 3 8 0.97

Tabul’ka 5.3.2: Vykon predikcie na testovacej vzorke pri pouzitı novych vlastnostı a porov-nanı adresy po castiach. Skratky: zhodnost’ (=), Levenshteinova vzdialenost’ (L), N-gramy(NG), false positives (FP), false negatives (FN)

Heuristiky pomohli len malo, pricom na zaklade skumania konkretnych false positives

a false negatives, mali mnohe z nich vyriesit’. Predpokladali sme, ze problem je sposobeny

obmedzenymi moznost’ami logistickej regresie prisposobit’ sa vlastnostiam. Vyskusali sme

novy typ klasifikatora Support Vector Machine (SVM) s RBF kernelom a nastaveniami

epsilon = 0.1, gamma = 0.003, C = 4006. Tabul’ka 5.3.3 ukazuje lepsı vysledok SVM.

Heuristiky v tomto prıpade vyznamne znızili pocet false negatives.

Naucene vahy

Tabul’ka 5.3.4 obsahuje vahy jednotlivych polı po normalizacii a heuristık pri sadach

vlastnostı so zhodnost’ou, Levenshteinovou vzdialenost’ou a N-gramovou podobnost’ou.

Najvyznamnejsım pol’om je meno s titulmi a heuristika v spolocnej organizacii. Pri

zhodnosti ma vyznam PSC, pretoze v nom vacsinou nie su preklepy. V ostatnych sadach

6Epsilon je presnost’ ucenia, standardne hodnoty sa pohybuju v radoch 0.001–0.1. Odporucany sposobnastavovania gamma a C je tzv. grid-search, kedy sa vyskusaju vsetky mozne kombinacie niekol’kychhodnot v radovych rozdieloch gamma a C. [22]

52

Page 67: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Sada vlastnostı FP FN F1 skore

=(mena s titulmi), =(adresa) 7 12 0.9485L(mena s titulmi), L(adresa) 2 13 0.9587

2G(mena s titulmi), 2G(adresy) 2 10 0.96723G(mena s titulmi), 3G(adresy) 2 11 0.9644

L(mena s titulmi), L(adresa), heuristiky 2 8 0.9728=(mena s titulmi), =(casti adresy) 2 17 0.9470L(mena s titulmi), L(casti adresy) 4 11 0.9591

2G(mena s titulmi), 2G(casti adresy) 6 8 0.96233G(mena s titulmi), 3G(casti adresy) 6 10 0.9568

L(mena s titulmi), L(casti adresy), heuristiky 2 7 0.9756

Tabul’ka 5.3.3: Vykon predikcie na testovacej vzorke pri pouzitı SVM. Skratky: zhodnost’

(=), Levenshteinova vzdialenost’ (L), N-gramy (NG), false positives (FP), false negatives(FN)

Vlastnost’ Zhodnost’ Levenshtein N-gramy

Bias −6.43 0.16 −7.23Meno s titulmi 4.43 −0.54 6.37

Ulica 0 −0.20 0.94Supisne cıslo 0 0 0

Cıslo domu 0 0 0

PSC 1.50 0 0Mesto 0 −0.06 0

Mestska cast’ −0.24 0.07 −0.16V spolocnej organizacii 4.04 2.42 2.30

Prazdna adresa −0.50 0 0

Tabul’ka 5.3.4: Naucene vahy vlastnostı.

vlastnostı ma vyznam ulica. Skumat’ naucene vahy ma zmysel iba pri logistickej regresii,

kedy maju priamu suvislost’ s pravdepodobnost’ou jednotlivych vlastnostı. Pri SVM nie je

zıskanie pravdepodobnostı take jednoduche [11, 31].

Krivka ucenia

Obrazok 5.3.1 ukazuje krivku ucenia pre logisticku regresiu pri sade vlastnostı L(meno

s titulmi), L(casti adresy), heuristiky). Do vel’kosti trenovacej vzorky 20 % je chybovost’

vysoka aj na samotnej trenovacej vzorke. V predchadzajucom experimente bola tato hra-

nica iba 5 %, co bolo sposobene podstatne vacsou vzorkou dat (viac ako 4,000 oproti

250). Od hranice 20 % chyba na trenovacej vzorke rastie, pricom sa chyba na testovacej

vzorke neznizuje. Toto spravanie ukazuje, ze vlastnosti napriek normalizacii adresy a pri-

daniu heuristık nie su schopne sa prisposobit’ zlozitejsım prıpadom detekcie duplikatov.

Na natrenovanie detekcie pre jednoduche prıpady stacı minimalna vzorka vel’kosti 20 %

z 258, co je priblizne 50 prıkladov.

53

Page 68: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

0

0.002

0.004

0.006

0.008

0.01

0.012

0 0.2 0.4 0.6 0.8 1

Chyb

ovos

t’

Velkost’ trenovacej vzorky

Chybovost’ trenovania

++

+

++ + +

+Chybovost’ testovania×× ×

× × × ×

×

Obr. 5.3.1: Krivka ucenia logistickej regresie

Obrazok 5.3.2 ukazuje krivku ucenia pre Support Vector Machine na rovnakej sade

vlastnostı. Do vel’kosti trenovacej vzorky 40 % sa bezchybne prisposobuje novym prıkladom,

d’alej chybovost’ trenovania rastie. Chybovost’ testovanie ma klesajuci trend az po hranicu,

kde sa nachadzaju komplikovanejsie prıpady detekcie duplikatov, ktore nase vlastnosti ne-

zvladaju. Na co najlepsie natrenovanie vah potrebuje SVM vacsiu vzorku ako linearna

regresia (okolo 60 %), ale jeho chybovost’ je uz pri 50 % nizsia ako najnizsia chybovost’

logistickej regresie.

0

0.0002

0.0004

0.0006

0.0008

0.001

0.0012

0 0.2 0.4 0.6 0.8 1

Chyb

ovos

t’

Vel’kost’ trenovacej vzorky

Chybovost’ trenovania

+ + + + +

+

+

+Chybovost’ testovania

×× ×

×

×

××

×

Obr. 5.3.2: Krivka ucenia SVM

54

Page 69: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Prıklady chyb

Ukazem niekol’ko prıkladov chyb, s ktorymi si najlepsie sady vlastnostı na SVM nevedeli

poradit’.

• False negative. Mena su prılis odlisne.

Spol. vlast. bytov a nebytovych priestorov ”Nesporova A/4” |SVB ”Nesporova A/4” |<prazdna adresa>

• False negative. Mena su prılis odlisne, ani heuristika v spolocnej organizacii ne-

pomohla.

Spol. vlast. bytov a nebytovych priestorov ”Nesporova A/4” |Spolocenstvo vlastnıkov bytov a nebytovych priestorov ”Nesporova a/3” |<v spolocnej organizacii>

<prazdna adresa>

• False negative. Mena su prılis odlisne.

PhD. Daniela Janosıkova | Trstın 573, 91905 Trstın

Mgr. Daniela Janosikova PhD. | Trstın 573, 91905 Trstın

<v spolocnej organizacii>

• False positive. Zhodnost’ mena ma vel’ku vahu a v tomto prıpade sa SVM ne-

prisposobil odlisnej adrese.

Peter Marcek | Budatınska 3101/41, 85105 Bratislava - Petrzalka

Peter Marcek | Spitalska 18, 81108 Bratislava - Stare Mesto

5.4 Zhodnotenie

Zamerom prveho (predbezneho) experimentu bolo vyvinut’ vyhodnocovacı framework

a vyskusat’, ci strojove ucenie vobec je mozne pouzit’ na cistenie verejnych dat. Vysledky

boli mierne obmedzene, pretoze nas algoritmus bol porovnavany s baseline algoritmom,

ktoreho vystup nemusel byt’ vzdy spravny. Experiment ukazal, ze strojove ucenie sa da

pouzit’ na cistenie jednoduchych prıpadov duplikatov, ale v tych zlozitejsıch sa navrhnute

vlastnosti nedokazu dostatocne prisposobit’ vstupnym datam.

V druhom experimente sme sa pokusili napravit’ nedostatky vlastnostı prveho experi-

mentu normalizaciou adresy na jednotlive casti a pridanım heuristiky, ktora do porovnania

zahrnula aj vzt’ah medzi porovnavanymi entitami. Nepouzili sme baseline algoritmus, ale

vzorka dat bola rucne oznacena (250 zaznamov za 3 hodiny prace). Normalizacia ad-

resy nemala vel’ky vplyv na vysledok. Heuristika pomohla pri pouzitı SVM. Vlastnosti

pre osetrenie akademickych titulov kvoli malej vel’kosti vzorky nemali vplyv na vysledok,

55

Page 70: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

pretoze sa nemohli natrenovat’. Algoritmus dobre fungoval pre jednoduche prıpady dup-

likatov, ale v zlozitejsıch prıpadoch sa nedokazal dostatocne prisposobit’.

Zaujımavym praktickym vystupom obidvoch experimentov mozu byt’ aj naucene vahy

vlastnostı, ktore sa daju pouzit’ aj v inych systemoch detekcie duplikatov (ktore nemusia

byt’ zalozene na strojovom ucenı).

56

Page 71: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Zaver

Praca sa skladala z implementacie st’ahovania slovenskych verejnych dat a z vyskumu

vyuzitia strojoveho ucenia pri cistenı tychto dat.

Vysledkom prvej casti je st’ahovacı framework, ktory dokaze stiahnut’ udaje z 13 slo-

venskych webovych zdrojov s verejnymi datami. Z tychto zdrojov sme vo vyskumnej casti

pouzili len udaje o organizaciach a dlznıkoch. Dalsie st’ahovace sme pri experimentoch

nepouzili, ale pre niekoho by mohli byt’ v buducnosti prınosom. Napadlo ma niekol’ko

sposobov ich d’alsieho vyuzitia, ale moznostı je samozrejme ovel’a viac.

• St’ahovace by boli odovzdane Aliancii Fair-play v ich aktualnej podobe, ktora by ich

mohlo integrovat’ s ich Datanestom alebo aspon vytvoreny kod pouzila na obohate-

nie Datanestu. Tento sposob sa mi pozdava najviac, pretoze by sme priamo pomohli

organizacii, ktora vykonava vel’mi dolezitu cinnost’ pre zlepsenie politickeho prostre-

dia na Slovensku. Aliancii Fair-play sme pocas vyvoja st’ahovacieho frameworku uz

poslali stiahnute udaje a dostali sme vyjadrenie, ze boli uzitocne.

• Vyuzit’ st’ahovace a stiahnute data a vytvorit’ akukol’vek aplikaciu, ktora by ich

vyuzıvala. Naprıklad udaje o organizaciach by sa dali pouzit’ k vytvoreniu po-

dobneho projektu ako je foaf.sk, ktory by pracoval s organizaciami (obcianske zdruzenia,

politicke strany, nadacie, ...) a vyskytami l’udı v tychto organizaciach. Aj ked’ firmy

na foaf.sk su stale zaujımavejsie ako organizacie.

• Pokracovat’ vo vyvoji st’ahovacieho frameworku tak, ako sme zmysl’ali na zaciatku

(rozpısem d’alej). To by ale bolo casovo dost’ narocne. Takisto nevidım vel’ky zmysel

vo vytvaranı konkurencie Datanestu, ked’ mozeme spojit’ sily.

Zaverom z druhej casti je, ze strojove ucenie sa da pouzit’ na cistenie jednoduchsıch

prıpadov verejnych dat a uz pri malej vzorke dokaze odhadnut’ vahy vysledkov jednot-

livych porovnanı pre co najlepsı vysledok. Na druhej strane pre zlozitejsie prıpady stro-

jove ucenie moze priniest’ viac problemov ako uzitku. Mozno by pomohlo d’alsie rozvıjanie

vlastnostı (osetrenie skratiek, rucne osetrenie titulov) alebo pridavanie d’alsıch heuristık

zalozenych na vzt’ahoch medzi entitami, ale pri takomto usilı by data boli cistene rucne

vo vacsej miere ako automaticky a je otazny vyznam strojoveho ucenia, ktore by sluzilo

len na urcenie vah jednotlivych rucne pripravenych a nastavenych vlastnostı.

57

Page 72: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Povodnym planom prace, ktory sa ukazal v case dvoch semestrov ako nerealizovatel’ny,

bolo vytvorenie systemu, ktory by podobne ako Datanest od Aliancie Fair-play zbieral

data z verejnych zdrojov a pomocou jednoducheho pouzıvatel’skeho rozhrania (ktore by

umoznovalo naprıklad vyhl’adavanie v datach alebo moznost’ stiahnut’ vysledky v CSV)

a verejneho API pre aplikacie by ich d’alej poskytovalo v rozumnejsej forme ako je ich

povodna forma na strankach jednotlivych instituciı. Prınos oproti Datanestu by bol, ze

by sme data okrem st’ahovania aj cistili (integrovali). Bolo by teda jasne, kol’ko osob

s vyhl’adavanym menom vystupuje v slovenskych verejnych zdrojoch, ktora osoba vlastnı

ktore firmy, ktora osoba je dlznıkom, atd’. V experimentoch sa ukazalo, ze strojove ucenie

na pouzitie v takomto systeme nie je vhodne. Vel’kou nevyhodou prıstupu strojoveho

ucenia s ucitel’om je potreba vytvorenia vzorky. V druhom experimente mi vytvorenie

vzorky s vel’kost’ou 250 osob zabralo 3 hodiny prace. Vel’kost’ bola viac nez dostatocna

(cast’ 5.3.4) pre odhalenie jednoduchych prıpadov duplikatov, ale v zlozitejsıch situaciach,

ktore je v praxi tiez potrebne riesit’, by bolo treba podstatne vacsiu vzorku (osetrenie roz-

dielnych titulov). Vhodnejsım prıstupom ako strojove ucenie by bolo vytvorenie kvalitneho

pomocneho API pre cistenie dat (rovnako ako st’ahovacı framework poskytuje pomocne

API pre st’ahovanie dat). Toto API by poskytovalo bezne moznosti ako normalizaciu mien,

normalizaciu adries, porovnanie kompatibility titulov (ktora by bola rucne definovana,

pretoze ani pri vzorke s viac ako 4000 osobami sa neukazali kombinacie kompatibilnych

titulov do takej miery, ako by ich dokazal vytvorit’ clovek). Vyvojar by pre kazdy pridany

zdroj verejnych dat okrem st’ahovacov a parserov vytvoril aj”cistic”, kde by pomocou

jednoducheho DSL definoval, ktore sposoby cistenia sa pouziju pre konkretnu databazu.

Problem by sa mohol ukazat’ pri rucnom urcovanı vah jednotlivych porovnavanych vlast-

nostı. Ich automaticke urcenie je ciel’om pouzitia strojoveho ucenia. Avsak tato vyhoda

prıstupu strojoveho ucenia je vyvazena potrebou vytvarat’ oznacenu vzorku dat. Cas sa

da lepsie vyuzit’ na rucne prisposobenie cistenia konkretnej databazy. Okrem toho vzorka

musı byt’ vyvazena a musı zachytit’ vsetky najcastejsie situacie. Preto pri jej tvorbe treba

hl’adat’ vhodne prıklady a objavovat’ suvislosti v datach, ktore by sa namiesto zdlhaveho

hl’adania prıkladov dali priamo zapısat’ do kvalitneho DSL.

Hlavnym problemom nasich dat neboli preklepy alebo ine zapisy rovnakych entıt

(J. Doe - John Doe), ale tituly alebo zmeny adries, kde sa metodami vytvorenymi pre

konkretnu databazu da dosiahnut’ takmer 100-percentna uspesnost’. Metody zalozene na

strojovom ucenı takuto uspesnost’ nedosiahnu. V prıpade, ze by ju dosiahli, vytvaranie

vlastnostı by bolo na hranici s programovanım metody prisposobenej pre konkretnu da-

tabazu. Strojove ucenie ma vyznam v prıpadoch, kedy tolerujeme nespravne zlucene

zlozitejsie prıpady a je dolezite odstranit’ preklepy, ine zapisy a vytvorenie vzorky za-

berie menej casu ako keby programator osetril vsetky prıpady, ktore mozu nastat’ (alebo

data boli doteraz integrovane rucne a mame kvalitnu vzorku).

58

Page 73: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Literatura

[1] Reka Albert and Albert-Laszlo Barabasi. Statistical mechanics of complex networks.

2002.

[2] Andrew Ng. Machine Learning, 2011. Available from: http://www.ml-class.org.

[3] Rohan Baxter, Peter Christen, and Tim Churches. A Comparison of Fast Blocking

Methods for Record Linkage. Performance Evaluation, 2003.

[4] Mikhail Bilenko and R.J. Mooney. Employing trainable string similarity metrics for

information integration. In Proceedings of the IJCAI-2003 Workshop on Information

Integration on the Web, pages 67–72, 2003.

[5] Chih-chung Chang and Chih-jen Lin. A Library for Support Vector Machines. Lib-

rary, 2(3), 2011.

[6] Chih-Chung Chang and Chih-Jen Lin. LIBSVM – A Library for Support Vector

Machines, 2012. Available from: http://www.csie.ntu.edu.tw/~cjlin/libsvm/.

[7] S. Chaudhuri, V. Ganti, and R. Kaushik. A Primitive Operator for Similarity Joins

in Data Cleaning. 22nd International Conference on Data Engineering (ICDE’06),

pages 5–5, 2006.

[8] William W Cohen, Pradeep Ravikumar, and Stephen E Fienberg. A Comparison of

String Distance Metrics for Name-Matching Tasks. Learning, 2003.

[9] William W Cohen and Jacob Richman. Learning to match and cluster large high-

dimensional data sets for data integration. In Proceedings of the eighth ACM

SIGKDD international conference on Knowledge discovery and data mining, pages

475–480, 2002.

[10] Anhai Doan and Robert Mccann. Building Data Integration Systems: A Mass Col-

laboration Approach. Science, 2000.

[11] Joseph Drish, San Diego, and La Jolla. Obtaining Calibrated Probability Estimates

from Support Vector Machines.

59

Page 74: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

[12] Rong-en Fan, Kai-wei Chang, Cho-jui Hsieh, Xiang-rui Wang, and Chih-jen Lin.

LIBLINEAR: A Library for Large Linear Classification. Corpus, 9(2008):1871–1874,

2012.

[13] Amy Feekin and Zhengxin Chert. Duplicate Detection Using K-way Sorting Method.

Test, (c):323–327, 2000.

[14] Ivan P. Fellegi and Alan B. Sunter. Record Linkage, 1969.

[15] Ariel Fuxman. Towards Inconsistency Management in Data Integration Systems.

Framework, 2001.

[16] Google. Clustering in Depth, 2012. Available from: http://code.google.com/p/

google-refine/wiki/ClusteringInDepth.

[17] Vienna Insurance Group, Czech Republic, Data Quality, and Fuzzy Match. Vyuzitı

Fuzzy Match algoritmu pro cistenı dat. pages 1–12, 2008.

[18] Lifang Gu, Rohan Baxter, Deanne Vickers, and Chris Rainsford. Record Linkage:

Current Practice and Future Directions. Science.

[19] Brian Hartlieb. Functional Dependencies in Fuzzy Databases. Computer, (x):1–6.

[20] Oktie Hassanzadeh, Fei Chiang, and Hyun Chul Lee. Framework for Evaluating

Clustering Algorithms in Duplicate Detection. Evaluation, 2009.

[21] Mauricio A. Hernandez and Salvatore J. Stolfo. Real-world data is dirty: Data cle-

ansing and the merge/purge problem. Data mining and knowledge discovery, 1998.

[22] Chih-wei Hsu, Chih-chung Chang, and Chih-jen Lin. A Practical Guide to Support

Vector Classification. Bioinformatics, 1(1):1–16, 2010.

[23] Miroslav Hudec. An Approach to Fuzzy Database Querying, Analysis and Realisa-

tion. Analysis.

[24] Nick Johnson. Damn Cool Algorithms: Levenshtein Auto-

mata, 2010. Available from: http://blog.notdot.net/2010/07/

Damn-Cool-Algorithms-Levenshtein-Automata.

[25] Dan Jurafsky. Natural Language Processing, 2012. Available from: http://www.

nlp-class.org.

[26] Dmitri V. Kalashnikov and Sharad Mehrotra. Domain-independent data cleaning

via analysis of entity-relationship graph. ACM Transactions on Database Systems,

31(2):716–767, June 2006.

60

Page 75: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

[27] Stoyan Mihov Klaus U. Shulz. Fast String Correction with Levenshtein-Automata.

INTERNATIONAL JOURNAL OF DOCUMENT ANALYSIS AND RECOGNI-

TION, 5:67–85, 2002.

[28] Grzegorz Kondrak. N-gram similarity and distance. String Processing and Informa-

tion Retrieval, pages 115–126, 2005.

[29] S B Kotsiantis. Supervised Machine Learning : A Review of Classification Techniques.

Informatica, 31(3):249–268, 2007.

[30] Mike McCandless. Lucene’s FuzzyQuery is 100 times faster in 4.0,

2011. Available from: http://blog.mikemccandless.com/2011/03/

lucenes-fuzzyquery-is-100-times-faster.html.

[31] John C. Platt. Probabilistic outputs for support vector machines and comparisons

to regularized likelihood methods. 1999.

[32] Iniciatıva pre otvorene Vladnutie. Finalna verzia Akcneho planu Iniciatıvy pre

otvorene vladnutie, 2012. Available from: http://www.otvorenavlada.gov.sk/

finalna-verzia-akcneho-planu/.

[33] Maurizio Serva and Filippo Petroni. Indo-European languages tree by Levenshtein

distance. Europhysics Letters, 81(6):68005, 2007.

[34] Nikita Smetanin. Fuzzy string search. Available from: http://ntz-develop.

blogspot.com/2011/03/fuzzy-string-search.html.

[35] Jan Suchal and Peter Vojtek. Navigacia v socialnej sieti obchodneho registra SR.

2009.

[36] Sheila Tejada, Craig A Knoblock, Steven Minton, and Fetch Technologies. Lear-

ning Domain-Independent String Transformation Weights for High Accuracy Object

Identification. Architecture, pages 350–359, 2002.

[37] Amel Grissa Touzi, Mohamed Ali, and Ben Hassine. New Architecture of Fuzzy

Database Management Systems. Architecture, 6(3):213–221, 2009.

[38] Stefania Vitali, J.B. Glattfelder, and Stefano Battiston. The network of global cor-

porate control. PloS one, 6(10):e25995, 2011. arXiv:arXiv:1107.5728v2.

[39] Benedikt Waldvogel. Java version of LIBLINEAR, 2012. Available from: http:

//www.bwaldvogel.de/liblinear-java/.

[40] Wikipedia. Damerau–Levenshtein distance, 2012. Available from: http://en.

wikipedia.org/w/index.php?title=Damerau\OT1\textendashLevenshtein_

distance&oldid=479098077.

61

Page 76: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

[41] Wikipedia. Hamming distance. 2012. Available from: http://en.wikipedia.org/

w/index.php?title=Hamming_distance&oldid=476713278.

[42] Wikipedia. Jaro–Winkler distance, 2012. Available from: http://en.wikipedia.

org/w/index.php?title=Jaro\OT1\textendashWinkler_distance&oldid=

478511268.

[43] Wikipedia. Levenshtein distance, 2012. Available from: http://en.wikipedia.org/

w/index.php?title=Levenshtein_distance&oldid=481363811.

[44] Wikipedia. Logistic Regression, 2012. Available from: http://en.wikipedia.org/

w/index.php?title=Logistic_regression&oldid=484672661.

[45] Wikipedia. Soundex, 2012. Available from: http://en.wikipedia.org/w/index.

php?title=Soundex&oldid=482992849.

[46] Wikipedia. Support Vector Machine. 2012. Available from: http://en.wikipedia.

org/w/index.php?title=Support_vector_machine&oldid=486987645.

[47] WE Winkler. The state of record linkage and current research problems. Statistical

Research Division, US Census Bureau, 1999.

62

Page 77: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Dodatok A

Prıspevok na IIT.SRC

Priebeh a vysledky prveho experimentu sme opısali v prıspevku na studentsku vedecku

konferenciu IIT.SRC.

63

Page 78: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

64

Page 79: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Using Trainable Duplicate Detection forAutomated Public Data Refining

Martin LIPTAK∗

Slovak University of TechnologyFaculty of Informatics and Information Technologies

Ilkovicova 3, 842 16 Bratislava, [email protected]

Abstract. Public institutions share important data on the Web. These data areessential for public investigation and thus increase transparency. However, it isdifficult to process them, since there are numerous mistypings, disambiguitiesand duplicates. In this paper we propose an automated approach for cleaningof these data, so that further querying result is reliable. We develop a duplicatedetection method that can train weights of features on small amount of trainingsamples and then predict duplicates on the rest of data. We evaluate our methodon a real-world data set.

1 Introduction

Public institutions have legal obligations to share certain data on the Web. While public registers(e.g. businesses, organizations) and bulletins (public procurements) are essential for business com-munication, other data increase transparency of public institutions and enable public investigation(public contracts). Despite the fact that these data are becoming publicly available on the Web, thereare two problems.

The first problem is format and structure that might not be suitable for machine processing.For example some documents are published as scanned images with censored names and prices.This makes such documents difficult to investigate by a human expert and almost impossible toprocess with computer. For example company liquidations are published in periodic PDF bulletinsas unstructured text content and it is difficult to reliably find out if a company is being liquidated orthe liquidation is being cancelled. Fortunately the most common format is HTML, which is easy toparse and in most cases provides structure. Moreover, the state of public data is nowadays slowlybeing improved.

The second problem are various mistypings, disambiguities and duplicates. They are commoneven in correctly parsed and structured data. A few examples:

– Name of a person might be typed correctly in one business register extract and with a mistakein another one. We can use different fields in these entities like address and find out whetherthey refer to the same person.

∗ Bachelor study programme in field: InformaticsSupervisor: Ing. Jan Suchal, Institute of Informatics and Software Engineering, Faculty of Informatics andInformation Technologies STU in Bratislava

IIT.SRC 2011, Bratislava, May 4, 2011, pp. 1–8.

Page 80: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

2 UNSPECIFIED FIELD

– Two entities have equal names, but different addresses. How do we know if the person hasmoved or these two entities refer to different people? We can use a heuristics that when twoentities with equal names and different addresses occur in the same company, these entitiesare duplicates.

– Two entities have both names and addresses equal. We need to find out if they are really thesame person or father and son living at the same address.

– Two names might differ only in academic titles. For example one inludes Ing., the other onedoes not. When addresses are equal, these entities might refer to the same person.

– Two addresses are equal except that one address contains Bratislava - Dubravka, the otherone only Bratislava. If the names are equal, these entities should probably refer to the sameperson.

In this paper we address the second problem by developing trainable duplicate detection method.Our method cleans off (or refines) duplicates, mistypings and other disambiguities to make dataquerrying result consistent and reliable.

2 Trainable duplicate detection

We propose a duplicate detection approach based on machine learning algorithms. We use a logisticregression classifier to predict whether samples are duplicates or not. The classifier trains weightsof features, provided by user for particular database (like Levenshtein distance of compared fieldsor presence of particular combination of substrings in compared fields). The user also provides alabeled set of samples that is used to train the classifier. Trained classifier can detect duplicates bypredicting using learned feature weights.

3 Evaluation

We have evaluated our method on a real-world database of people occurring in Business Register ofthe Slovak Republic provided by foaf.sk. There are many duplicates and it is difficult to determine,who exactly occurs in which company.

3.1 Methodology

There is a set of heuristics already detecting duplicates on foaf.sk. We have used their results fortraining and as a baseline for measuring precision, recall and F1 score. Precision represents detectedduplicates that are actual duplicates (is decreased by false positives) and recall represents actualduplicates that were detected (is decreased by false negatives). Both metrics should preferably be ashigh as possible and reasonably balanced. F1 score combines both metrics (equations 1 - 3).

precision =true positives

true positives+ false positives(1)

recall =true positives

true positives+ false negatives(2)

F1 = 2 ∗ prescision ∗ recallprecision+ recall

(3)

Page 81: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Martin Liptak: Using Trainable Duplicate Detection for Automated Public Data Refining 3

3.2 Data Set

We have chosen 4,298 out of 569,999 total people occurring in slovak business register in June 2011.We selected mostly duplicate records, though we have added many individual records as well. Oursamples are all possible pairs of selected records (omiting the same pairs with reordered recordsand including pairs of two same records), therefore we have 4, 298 ∗ (4, 298 + 1)/2 = 9, 238, 551samples. Each sample consists of two records and each record provides name and address attributes.We have extracted academic degrees out of names and compare them individually. 80% of sampleshave been used as a training set and 20% as a test set for final precision-recall evaluation.

3.3 Features

For training duplicate detection we used combinations of following features (feature sets):

– Label. A feature equal to sample’s label; 1 for duplicates and 0 for non-duplicates.

– Equal names. This feature is 1, when compared names are equal, otherwise 0.

– Equal addresses. This feature is 1, when compared addresses are equal, otherwise 0.

– Levenshtein distance of names. This feature represents Levenshtein distance1 of comparednames.

– Levenshtein distance of address. This feature represents Levenshtein distance of comparedaddresses.

– N-gram similarity of names. This feature represents N-gram similarity2 of compared names.

– N-gram similarity of addresses. This feature represents N-gram similarity of comparedaddresses.

– Combination of academic degrees. We have created N ∗ (N + 1)/2 features for all pairsof N academic degrees occurring in sample names. For a given sample, degree combinationsoccurring in compared names are 1, all the others are 0. This is based on assumption thattwo people with the same name, however, first of them is Ing. and the second MUDr., areprobably not duplicates.

– Disjunction of academic degrees. We have created N features for all academic degreesoccurring in sample names. For a given sample, feature for particular degree is 1 when thedegree occurs in exactly one of the compared names. If the degree occurs in none of themor in both, the feature is 0. This is based on assumption that presence of some degrees (likeml. or st., which mean junior and senior respectively when concerning father and son) in onerecord and absence in the other one indicates that they are not duplicates.

1 Levenshtein distance (or edit distance) of two strings computes number of edit operations (insertion, substitution,deletion) required to change the first string into the second one.

2 N-gram similarity is a string similarity metrics as described in [9] or [1]. Sets of N-grams (that is tokens ofsize N characters) are created from compared strings. N-gram similarity is a Jaccard similarity of these sets.

Page 82: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

4 UNSPECIFIED FIELD

3.4 Results

Table 1 shows performance of various feature sets on test set. Overall high F1 score is caused by thenature of our samples. They are a cartesian product of individual records and the vast majority ofthem are not duplicates (for example John Doe record is compared to John Doe, John Doa and Ing.John Doe and 3 duplicates are found, but the other 2 milion comparisons are not duplicates).

Simple name and address equality comparison yields result of 142 false positives and 13 falsenegatives. False positives are caused by records with equal both names and addresses that werenot labeled as duplicates by baseline duplicate detection. This can be explained by either lack ofother features besides names and addresses, like company occurrences, or more probably by errorsin baseline duplicate detection. False negatives are mostly typos that were not detected.

Levenshtein distance decreases number of false negatives, because it accepts misspelled strings.However, it dramatically increases number of false positives, as simple edit operations count mightnot do a good job in distinguishing between a typo and similar spelling (Martin Liptak vs. MartinLuptak) and it does not take degrees into account.

N-grams of names without degrees and addresses yield same results as equality comparisonregardless of N. In contrast, N-grams of names with inclusion of degrees slightly decrease falsepositives, as they consider names with different degrees non-duplicates, but increase false negatives,because many names differing only in degrees are actual duplicates.

Degree combinations and disjunctions decrease number of false positives of individual Lev-enshtein distance, because they include degrees in comparisons. Inspection of learned weights ofdegree features revealed that disjunction of bc. (0.51), csc. (2.89), ing. (4.09), judr. (1.32) and mgr.(1.75) and a combination if judr. - mgr. (1.57) rise probability of records being duplicates

Table 1. Performance of various feature sets on test set. Abbreviations: equality (=), levenshtein distance (L),n-gram similarity (nG), false positives (FP), false negatives (FN).

Feature set FP FN Precision Recall F1 score=(labels) 0 0 1 1 1=(names), =(addresses) 142 13 0.8777 0.9874 0.9293L(names), L(addresses) 326 3 0.8782 0.9923 0.93182G(names), 2G(addresses) 142 13 0.8777 0.9874 0.92933G(names), 3G(addresses) 142 13 0.8777 0.9874 0.92934G(names), 4G(addresses) 142 13 0.8777 0.9874 0.92935G(names), 5G(addresses) 142 13 0.8777 0.9874 0.92936G(names), 6G(addresses) 142 13 0.8777 0.9874 0.92932G(names + degrees), 2G(addresses) 138 40 0.8779 0.9612 0.91773G(names + degrees), 3G(addresses) 138 46 0.8772 0.9554 0.91474G(names + degrees), 4G(addresses) 136 50 0.8784 0.9516 0.91355G(names + degrees), 5G(addresses) 135 53 0.8788 0.9486 0.91246G(names + degrees), 6G(addresses) 135 54 0.8787 0.9477 0.9119L(names), L(addresses), degree combinations 135 39 0.8803 0.9622 0.9194L(names), L(addresses), degree disjunctions 135 23 0.882 0.9777 0.9274

Figure 3.4 shows a learning curve of degree combinations. Curves of other feature sets looksimilar. Training set size is represented by x-axis (we have tried values 5%, 10%, 20%, 40%, 60%and 90%), misclassification error by y-axis. Cross-validation set size is constantly 100%. Withgrowing training set size, cross-validation error slightly decreases, but training set error takes off.Both curves will eventually converge, but error tends to remain stable. This shows a problem of highbias. Further work needs to be done not in the amount of new samples, but in better features.

Page 83: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Martin Liptak: Using Trainable Duplicate Detection for Automated Public Data Refining 5

0

0.0001

0.0002

0.0003

0.0004

0.0005

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Mis

clas

sific

atio

ner

ror

Training set size

Training error

+ ++

++

+

+Cross-validation error

× × × × × ×

×

Figure 1. Learning curve of degree combinations

4 Related work

Misspellings, disambiguities and duplicates are a major problem not only in the public data domain.In fact every database possibly merged of multiple sources needs to be cleaned so that queriesprovide reliable results. This process is widely known as data integration, duplicate detection orrecord linkage [6].

M. Bilenko and R. Mooney in [2] propose to employ learnable string distance functionsfor duplicate detection task. They have used Levenshtein distance with contiguous sequences ofmismatched characters called affine gaps. Expectation maximization algorithm trains parametersfor affine gap penalties for individual fields. Support vector machine classifier trains equality ofcompared records. This method is based on notion that different edit operations have varyingsignificance in different domains. For example a digit substitution in a street address makes a majordifference, because it effectively changes the house number, but a letter substitution is more likelycaused by a typo or an abbreviation.

M. Hernandez and S. Stolfo in [7] have developed a method for removing duplicates fromdatabases of 100 milion to 1 bilion records in a matter of days. The first phase of quick sortinggroups similar records together, more expensive rule-based comparisons in a sliding window acrosssimilar records are executed afterwards.

Fuzzy database systems could be used for duplicate detection as well. Research has beenconducted in this field [12], [8]. However, we have not found many implementations of this concept.S. Chaudhiri in [3] proposed a similarity join operator for relational database that would not requireequal keys (string similarity function will be used instead) and would resolve inconsistencies at querytime.

Data integration systems (DIS) provide a unified access to multiple source databases. DISrequests are translated into requests for source databases, executed and results are translated backto unified interface. Despite significant progess in schema unification, building DIS today is donemostly by hand in a very labor intensive and error prone process. A. Doan and R. McCann in [5]propose a mass collaborative approach for this task.

Page 84: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

6 UNSPECIFIED FIELD

W. Cohen and other authors in [4] propose a name comparison toolkit that can help an expertwith database integration. Toolkit offers many string comparison metrics like Levenshtein distance,TF-IDF, Jaro, Monge-Elkan or Jensen-Shannon.

5 Conclusion and future work

We have proposed a trainable duplicate detection method. We have developed a prototype andevaluated it on a data set of people in foaf.sk. Research, that we have conducted so far, showsthat a supervised machine learning approach can be used for simple duplicate detection samples, asprecision-recall metrics are reasonably high. However, further development and experiments needto be done to find out if it is suitable for more complicated samples. Moreover, if our method yieldsgood results in further experiments and turns out to be better than existing solutions, it can be easilyturned into a framework. Such framework could clean any database, provided that user implementsa few database-specific functions.

Our results have clearly shown, that we need a new sample set with our own labels (createdmanuallu) instead of baseline foaf.sk labels. Besides name and address attributes, it would bereasonable to include relations to companies for better results. Name normalization, i.e. omittingdegrees and treating them individually, helped a great deal and we could do the same for addresses.We could also add more features like distance of addresses in terms of their actual coordinates.Finally some performance optimizations could be done for faster learning (Vowpal Wabbit [10])and feature computation (Levenshtein automaton [11], min-hashing) that will be neccessery in areal-world deployment, where larger databases need to be refined.

Acknowledgement: This work was partially supported by the Scientific Grant Agency of SlovakRepublic, grant No. VG1/0971/11.

References

[1] Google Refine Wiki: ClusteringInDepth. http://code.google.com/p/google-refine/wiki/ClusteringInDepth, [Online; accessed February 13th, 2012].

[2] Bilenko, M., Mooney, R.: Employing trainable string similarity metrics for informationintegration. In: Proceedings of the IJCAI-2003 Workshop on Information Integration on theWeb, 2003, pp. 67–72.

[3] Chaudhuri, S., Ganti, V., Kaushik, R.: A Primitive Operator for Similarity Joins in DataCleaning. 22nd International Conference on Data Engineering (ICDE’06), 2006, pp. 5–5.

[4] Cohen, W.W., Ravikumar, P., Fienberg, S.E.: A Comparison of String Distance Metrics forName-Matching Tasks. Learning, 2003.

[5] Doan, A., Mccann, R.: Building Data Integration Systems: A Mass Collaboration Approach.Science, 2000.

[6] Fellegi, I.P., Sunter, A.B.: Record Linkage, 1969.[7] Hernandez, M.A., Stolfo, S.J.: Real-world data is dirty: Data cleansing and the merge/purge

problem. Data mining and knowledge discovery, 1998.[8] Hudec, M.: An Approach to Fuzzy Database Querying, Analysis and Realisation. Analysis.[9] Kondrak, G.: N-gram similarity and distance. String Processing and Information Retrieval,

2005, pp. 115–126.[10] Langford, J., Li, L., Strehl, A.: Vowpal wabbit online learning project (technical report), 2007.[11] N., J.: Damn Cool Algorithms: Levenshtein Automata. http://blog.notdot.net/2010/07/Damn-

Cool-Algorithms-Levenshtein-Automata, [Online; accessed February 13th, 2012].[12] Touzi, A.G., Ali, M., Hassine, B.: New Architecture of Fuzzy Database Management Systems.

Architecture, 2009, vol. 6, no. 3, pp. 213–221.

Page 85: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Dodatok B

Poster na IIT.SRC

Pri prezentacii vysledkov na IIT.SRC pomahal putavy poster.

71

Page 86: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

72

Page 87: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 88: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 89: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Dodatok C

Ocenenie IIT.SRC

Prıspevok bol na IIT.SRC oceneny profesijnou organizaciou ACM.

75

Page 90: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

76

Page 91: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 92: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN
Page 93: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Dodatok D

Technicka dokumentacia

Tato prırucka je urcena kazdemu, kto by chcel pouzit’ alebo d’alej vyvıjat’ st’ahovacı fra-

mework Datafine.

D.1 Instalacia

System Datafine ma nasledujuce poziadavky.

• Ruby 1.8 a RubyGems

• Databazovy system PostgreSQL

• Server datovych struktur Redis

• Dostatok miesta na disku pre ukladanie stiahnutych dat v originalnej podobe (aspon

1 GB).

Uvadzam postup pre instalaciu na operacnom systeme GNU/Linux. Postup pre ostatne

operacne systemy je podobny. Na vykonanie nasledujucich krokov na vacsine systemov

netreba prava administratora (root).

1. Pomocou nastroja RVM nainstalujeme Ruby 1.8 a RubyGems. Postupujeme podl’a

instrukciı na webovej stranke RVM.

https://rvm.io

2. Nainstalujeme gem bundler.

$ gem i n s t a l l bundler

3. V adresari s datafine nainstalujeme gemy potrebne pre aplikaciu.

$ bundle i n s t a l l

79

Page 94: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

4. V config/database.yml nastavıme prıstup k databaze. Pouzıvatel’, s ktorym sa chceme

k databaze prihlasovat’ musı v databaze existovat’ a mat’ nastavene heslo, ktore sme

zadali do konfiguracneho suboru.

5. Ak databaza este neexistuje, vytvorıme ju.

$ rake db : c r e a t e

6. Vykoname migraciu databazy pre vytvorenie tabuliek.

$ rake db : migrate

7. Spustıme testy pre kontrolu, ci je vsetko v poriadku.

$ r spec spec /

Datafine by v tomto okamihu mal byt’ pripraveny na pouzıvanie. Ak Datafine potrebujete

iba na stiahnutie dat, stacı precıtat’ sekciu St’ahovanie dat. Pokial’ chcete pokracovat’ vo

vyvoji Datafine (pridavat’ st’ahovace pre d’alsie webove zdroje alebo vylepsovat’ aktualne

st’ahovace), precıtajte si aj d’alsie sekcie.

D.2 St’ahovanie dat

Vsetky prıkazy spust’ame v adresari Datafine.

1. Pred st’ahovanım dat je potrebne spustit’ rad sprav. Mozeme ich spustit’ viac (od-

porucame aspon 2 pre kazdy zdroj, ktory planujeme paralelne st’ahovat’). Pri QU-

EUE=* moze byt’ namiesto * nazov radu, kde sa ulohy maju spust’at’ (kazdy webovy

zdroj ma v Datafine vlastny rad), s * sa budu spust’at’ vsetky ulohy. Vo vypisoch

prıkazu by sme mali vidiet’ spust’ane ulohy (ale az po kroku 2).

$ rake environment resque : work QUEUE=∗ VERBOSE=1

2. Nasledne mozeme pouzit’ ulohy rake pre spustenie st’ahovacov dat. Niektore data je

vhodne st’ahovat’ denne a niektore mesacne. Podl’a toho spustıme prıslusnu ulohu

(na serveri mozeme nastavit’ jej periodicke spust’anie pomocou sluzby cron)

$ rake d a t a f i n e : d a i l y

alebo

$ rake d a t a f i n e : monthly

Niektore st’ahovace neboli zaradene do pravidelneho spust’ania uloh. Tie mozeme

spustit’ rucne v konzole Ruby on Rails alebo prıkazom rails runner s plnym nazvom

triedy prıslusneho st’ahovaca. Ak st’ahovac vyzaduje parametre (naprıklad cıslo strany,

od ktorej treba zacat’ st’ahovat’), doplnıme aj tie.

80

Page 95: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

$ r a i l s runner ’ Resque . enqueue ( Nic : : Jobs : : DownloadDomainList ) ’

St’ahovace ukoncia svoju cinnost’, ked’ narazia na koniec dostupnych dat (naprıklad viac

ID bude pri skusanı neplatnych). K datam mozete pristupovat’ priamo cez databazu alebo

mozeme vytvorit’ vlastnu aplikaciu, ktora ich bude cez databazu Datafine vyuzıvat’. Vsetky

stiahnute subory su ukladane v povodnej podobe do adresara data/.

D.3 Pridanie st’ahovaca

Na prıklade si ukazeme pridanie st’ahovaca a parsera pre novy zdroj. Nas zdroj sa bude

volat’ D a bude obsahovat’ jeden model Dummy.

1. Vytvorıme model D::Dummy.

$ r a i l s g model D : :Dummy name : s t r i n g address : s t r i n g

2. Vytvorıme st’ahovac D::Jobs::DownloadDummy v adresari app/models/d/jobs/. Nazov

suboru bude download dummy.rb.

module D

module Jobs

c l a s s DownloadDummy

extend Dataf ine : : Jobs : : Download

@queue = : d

de f s e l f . perform ( id = 1)

path = ”dummy. d/#{ id }/ page . html”

begin

html = download (” http ://dummy. d/#{ id }” , path ,

: bucke t i z e => f a l s e )

D : : Par se r s : : DummyParser . parse ( html )

Resque . enqueue (D : :Dummy: : DownloadDummy , id + 1)

r e s cue

l o g g e r . i n f o ”End o f dummies”

end

end

end

end

end

Trieda D::Jobs::DownloadDummy pridava modul Datafine::Jobs::Download, ktory

obsahuje pomocne metody pre st’ahovace Datafine. Clenska premenna @queue ob-

sahuje nazov radu, do ktoreho bude uloha zaradena. Metoda triedy perform (v tomto

81

Page 96: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

prıpade obsahuje argument id) bude zavolana pri spustenı ulohy v rade. Pomocnou

metodou download je stiahnuta stranka http://dummy.d/<id> a je ulozena do path

v adresari data/. Prıkazom Resque.enqueue je zaradena do radu d’alsia uloha, ktorej

je ako argument predane nasledujuce id.

3. Vytvorıme parser D::Parsers::DummyParser v adresari app/models/d/parsers/. Nazov

suboru bude dummy parser.rb.

module D

module Parse r s

c l a s s DummyParser

de f s e l f . parse ( html )

doc = Nokog i r i : :HTML( html )

dummy = Dummy. new

dummy. name = doc . c s s (”#name”)

dummy. address = doc . c s s (”# address ”)

dummy. save

end

end

end

end

Parser pouzije Nokogiri kniznicu na zıskanie obsahu tagov #name a #address z html

dokumentu. Zıskane hodnoty pomocou Dummy modelu ulozı do databazy.

Po zaradenı ulohy D::Jobs::DownloadDummy do radu zacne st’ahovanie. Pre periodicke

spust’anie noveho st’ahovaca treba pridat’ prıkaz pre jeho spustenie do rake ulohy v li-

b/tasks/datafine.rake.

D.3.1 Testy

V tutoriali som kvoli strucnosti vynechal pısanie testov. S vygenerovanım modelu v kroku

1 sa automaticky vytvoril test pre model v spec/models/d/dummy spec.rb. Do tohto

suboru pridame testovacie prıpady v prıpade, ked’ v modeli pribudnu nove metody alebo

ina funkcnost’, ktoru by bolo vhodne testovat’. Pred st’ahovacom a parserom by sme mali

najskor vytvorit’ test v spec/models/d/jobs/download dummy spec.rb resp. spec/model-

s/d/parsers/dummy parser spec.rb a pısat’ st’ahovac aj parser prıstupom TDD. Pre viac

inspiracie pozrite implementaciu existujuceho st’ahovaca, naprıklad CRZ.

D.4 Pomocne API pre st’ahovace

Metody pomocneho API pre st’ahovace Datafine sa nachadzaju v lib/.

82

Page 97: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

D.4.1 Modul Datafine

get path(path, options = {})

Metoda vrati absolutnu cestu pre subor s cestou path v datovom ulozisku. Odporucana

forma path je /<identifikator zdroja>/<identifikator entity>/<nazov suboru>.html (prıklad

je D::Jobs::DownloadDummy v predchadzajucej kapitole). V prıpade, ze vysledna cesta

obsahuje cıselne komponenty, je rozdelena do adresarov podl’a trojıc cısel. Taketo ukla-

danie je uzitocne, pretoze vel’ke mnozstvo suborov v jednom adresari moze byt’ problem

pre suborovy system. Hash options moze obsahovat’ kl’uc :bucketize => false, ktory toto

spravanie vypne.

D.4.2 Modul Datafine::Jobs::Download

download(url, name = nil, options = {})

Metoda stiahne zdroj s adresou url a stiahnute data zapıse do suboru s cestou v datovom

ulozisku name. Hash options moze obsahovat’ kl’uc :headers s hashom HTTP hlaviciek,

ktore maju byt’ odoslane na server. Ostatne prvky options su predane get path(), ktoru

metoda pouzıva na zıskanie absolutnej cesty name. Metoda vrati ret’azec so stiahnutymi

datami.

download with options(url, data, name = nil, options = {})

Metoda stiahne zdroj s adresou url metodou POST a stiahnute data zapıse do suboru

s cestou v datovom ulozisku name. Hash data obsahuje data, ktore maju byt’ poslane

na stranu servera. Hash options je predany get path(), ktoru metoda pouzıva na zıskanie

absolutnej cesty name. Metoda vrati ret’azec so stiahnutymi datami.

83

Page 98: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

84

Page 99: Martin Lipt ak · PDF fileSlovenska technick a univerzita v Bratislave Fakulta informatiky a informa cnyc h technol ogi FIIT-5212-64389 Martin Lipt ak AUTOMATIZOVANE CISTENIE VEREJN

Dodatok E

Obsah CD

Prilozene CD obsahuje adresare s 2 projektmi. V korenovom adresari CD a v kazdom

z projektovych adresarov sa nachadza subor README.

• /datafine

St’ahovacı framework Datafine.

• /trainable

Vyhodnocovacı framework.

85