Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
UNIVERZA V LJUBLJANI
PEDAGOŠKA FAKULTETA
JOŠT MLINARIC
PRIMER GEOMETRIJSKE OBRAVNAVEBESEDIŠCA
MAGISTRSKO DELO
LJUBLJANA, 2019
UNIVERZA V LJUBLJANI
PEDAGOŠKA FAKULTETA
ŠTUDIJSKI PROGRAM: DVOPREDMETNI UCITELJ
SMER: FIZIKA - MATEMATIKA
KANDIDAT: JOŠT MLINARIC
MENTOR: PROF. DR. MATIJA CENCELJ
SOMENTOR: DOC. DR. BOŠTJAN GABROVŠEK
PRIMER GEOMETRIJSKE OBRAVNAVEBESEDIŠCA
MAGISTRSKO DELO
LJUBLJANA, 2019
Zahvala
Iskreno se zahvaljujem mentorju prof. dr. Matiju Cenclju in somentorju doc. dr. Boštjanu
Gabrovšku iz Fakultete za strojništvo, za vse nasvete in ideje, pomoc pri programiranju, za
vodenje skozi magistrsko delo in za vse, s cimer sta pripomogla k nastanku magistrskega
dela.
Zahvala gre tudi partnerici, hcerki, staršem, sestri ter babici, za vso potrpežljivost in pod-
poro, ki so mi jo izkazali v vseh letih študija in me spodbujali vse do konca.
POVZETEK
Pojem razdalje je eden izmed najosnovnejših pojmov v geometriji, ki ga spoznamo pri ge-
ometriji, že v nižjih razredih osnovne šole. Razdaljo pojmujemo kot numericno vrednost,
pridobljeno z merjenjem. V magistrskem delu sta predstavljeni dve funkciji razdalje med
besedami, ki temeljita na številu pojavitev besed v besedilih. Za nekaj množic besed izve-
demo grucenje z upoštevanjem definiranih funkciji razdalje.
Kljucne besede: razdalja, grucenje, jezik
i
ABSTRACT
The concept of distance is one of the basic geometric concepts, taught already at the early
stages of elementary school. It is perceived as a numerical value obtained by measurement
with a gauge. Here two distance functions between words are introduced, based on statistics
of incidence in samples of texts. We cluster some sets of words in Slovenian language accor-
ding to the two distance functions.
Keywords: distance, cluster, language
AMS MSC(2010): 51K05, 91C20
ii
Kazalo
Kazalo slik 1
Kazalo programov 2
1 Uvod 3
2 Razdalja 4
2.1 Razlicni primeri razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Razdalja v evklidski geometriji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 Metricni prostor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 Manhattanska ali taksi metrika (1-norma) . . . . . . . . . . . . . . . . . . 7
2.3.3 Evklidska metrika (2-norma) . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.4 Cebišova metrika (∞-norma) . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.5 P-ta metrika (p-norma) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.6 Diskretna metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.7 Urejevalniška razdalja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Matrika razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1 Evklidska matrika razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2 Poljubna matrika razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Razlicne metrike in matrike razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Grucenje podatkov 14
4 Algoritmi 14
4.1 Algoritem k - means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 Algoritem DBSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.1 Osnova za algoritem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.2 Originalni algoritem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.3 Prednosti DBSCAN algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.4 Slabosti DBSCAN algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 DBSCAN algoritem in razlicne metrike 22
5.1 Evklidska metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Taksi metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Šahovska metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.4 Ugotovitve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 Geometrijska obravnava jezika 26
6.1 Aplikacija Sketch Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2 Iskanje in zapisovanje števila pojavitev . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Razdalja med dvema besedama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3.1 Razdalja kot kolicnik preseka in unije števila pojavitev . . . . . . . . . . . 29
iii
6.3.2 Razdalja kot kolicnik preseka in minimalnega števila pojavitev posame-
zne besede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.4 Lastnosti definirane razdalje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.5 Matrika razdalj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.6 Implementacija DBScan algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.7 Program PAJEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7 Primeri razdalj in gruc za razlicne nabore besed 36
7.1 Primerjava rezultatov za razlicno definirani razdalji . . . . . . . . . . . . . . . . . 36
7.2 Ugotovitve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.3 Primerjava grucenja z razdaljo MIN in z razdaljo urejanja. . . . . . . . . . . . . . 41
7.3.1 Dolocanje razdalje urejanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.3.2 Primerjava rezultatov grucenja . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.4 Ugotovitve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.5 Grucenje sopomenk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.6 Analiza dveh skupin sorodnih besed . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.7 Analiza razlicnih oblik besed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8 Zakljucek 51
Literatura 52
iv
Kazalo slik
1 Razdalja med tockama A in B s pomocjo Pitagorovega izreka. . . . . . . . . . . . 5
2 Manhattanska razdalja oziroma geometrija taksijev - vec krajših možnih poti. . 8
3 Kralj stoji na polju F6, številke na posameznih poljih pa prikazujejo Cebiševo
razdaljo med posameznim poljem in poljem F6. . . . . . . . . . . . . . . . . . . . 9
4 Tocke A, B in C v ravnini s pripadajocimi koordinatami in razdaljami. . . . . . . 11
5 Taksi razdalja med tockami A, B in C ter dolžine posameznih razdalj. S crno
barvo so narisane tudi daljice oziroma evklidske razdalje. . . . . . . . . . . . . . 12
6 Razlicne tocke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Tocka A kot jedro in njena okolica ε. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8 Okolice tock znotraj gruce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9 Okolica novih dveh tock gruce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10 Okolica tocke G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
11 Na levi strani je prikazana okolica dane tocke, na desni pa izvajanje DBSCAN
algoritma in iskanje okolic posameznih tock z uporabo evklidske metrike. Ob
pogoju minPts = 3, dobimo gruco treh tock (modra barva). . . . . . . . . . . . . 22
12 Levo je prikazana taksi okolica tocke, desno pa je prikazano izvajanje DBSCAN
algoritma in iskanje okolic posameznih tock z uporabo taksi metrike. Ob upo-
števanju pogoja minPts = 3, ne obstaja nobena gruca. . . . . . . . . . . . . . . . 23
13 Levo je prikazana okolica tocke z uporabo šahovske metrike, desno pa je za isto
metriko predstavljeno izvajanje DBSCAN algoritma in iskanje okolic posame-
znih tock. Ob upoštevanju pogoja minPts = 3 dobimo gruco vseh tock (tocke
znotraj modrih okolic). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
14 Okolice za vse tri metrike: rdeca - taksi, crna - evklidska in zelena - šahovska.
Tocka A leži v okolici ne glede na izbiro metrike, tocka B ne leži v okolici za
taksi metriko, tocka C pa leži le v okolici za šahovsko metriko. . . . . . . . . . . . 24
15 Zacetni zaslon aplikacije Sketch Engine, kjer lahko izberemo eno izmed osnov-
nih funkcij na podlagi naših potreb. . . . . . . . . . . . . . . . . . . . . . . . . . . 27
16 Slika zaslona iskalnika v aplikaciji Sketch Engine. . . . . . . . . . . . . . . . . . . 27
17 Izpis podatkov o grucah na zaslon. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
18 Diagram prikazuje besede ter z neposrednimi povezavami oznaci tiste, ki se-
stavljajo gruco za ε= 0.87 in mi nP t s = 3. . . . . . . . . . . . . . . . . . . . . . . . 36
19 Diagram gruc besed z uporabo razdalje MIN. . . . . . . . . . . . . . . . . . . . . 37
20 Diagram gruc besed z uporabo razdalje PU. . . . . . . . . . . . . . . . . . . . . . 37
21 Diagram gruc besed z uporabo razdalje MIN. . . . . . . . . . . . . . . . . . . . . 38
22 Diagram gruc besed z uporabo razdalje MIN. . . . . . . . . . . . . . . . . . . . . 38
23 Diagram gruc besed z uporabo razdalje MIN. . . . . . . . . . . . . . . . . . . . . 39
24 Diagram gruc besed z uporabo razdalje PU. . . . . . . . . . . . . . . . . . . . . . 40
25 Diagram gruc besed z uporabo razdalje PU. . . . . . . . . . . . . . . . . . . . . . 40
26 Diagram gruce z razdaljo urejanja, za vhodna parametra ε= 0.6 in mi nP t s = 3. 43
27 Diagram gruce z razdaljo urejanja, za vhodna parametra ε= 0.8 in mi nP t s = 3. 43
1
28 Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.941 in mi nP t s = 3. . 44
29 Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.976 in mi nP t s = 3. . 44
30 Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.998 in mi nP t s = 3. . 45
31 Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.93 in mi nP t s = 4. . . 46
32 Diagram gruce z razdaljo PU za vhodna parametra ε= 0.99 in mi nP t s = 4. . . 47
33 Diagram prikazuje dve skupini besed. V prvi skupini so besede oziroma posa-
mezna podrocja znanosti, v drugi skupini pa so besedne vrste. . . . . . . . . . . 48
34 Prva najdena skupina besed sem in videl. . . . . . . . . . . . . . . . . . . . . . . . 49
35 Skupina besed sem, videl in šel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
36 Skupina besed sem, bil, šel in videl. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Kazalo programov
1 Originalni DBSCAN algoritem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Zapis števila elementov v matriko 8×8. . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Dolocanje min(M(A), M(B)) in zapis podatkov v matriko. . . . . . . . . . . . . . . 30
4 Izracun razdalj med posameznimi besedami in zapis matrik razdalj. . . . . . . . 31
5 Zapis besed v matriko (za izris diagrama in neposrednih povezav v programu
Pajek). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 Vhodna pogoja ε in minPts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7 Iskanje tock, ki predstavljajo jedra. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8 Iskanje tock tock v okolici posameznih tock. . . . . . . . . . . . . . . . . . . . . . 34
9 Del kode za izpis potrebnih podatkov na zaslon. . . . . . . . . . . . . . . . . . . . 35
10 Dolocanje urejevalniške razdalje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2
1 Uvod
V vsakdanjem življenju se neprestano srecujemo s pojmom razdalje, ceprav se tega sploh ne
zavedamo. Naj gre za urejanje prostora, velikost televizijskega ekrana, hojo, vožnjo z avtom,
ucenjem v šoli, vedno je prisotna razdalja. Obstajajo razlicne definicije razdalje, nam naj-
bližja pa je evklidska razdalja, ki predstavlja dolžino najkrajše poti med zacetno in koncno
tocko. Nas bo zanimala razdalja med posameznimi besedami, na podlagi katere bomo be-
sede združevali v skupine. Pri slovenšcini so posamezne besede razdeljene v družine na
podlagi korenov besed. Besedno družino tvorijo besede s skupnim korenom, to je skupna
osnovna pomenska sestavina. Besedno družino na primer sestavljajo matematika, mate-
maticen, matematik, matematizirati, saj imajo skupen koren besede matemati. Z vidika
slovenšcine besedne družine tvorimo na preprost nacin. Nas pa bo zanimalo, kako obliko-
vati družino oziroma gruco besed, kot bomo besedno družino v nadaljevanju imenovali mi,
z matematicnimi operacijami in postopki. Izkaže se, da je iz vidika matematike tvorjenje
besednih družin mnogo težje in zahteva veliko vec dela, kot tvorjenje s koreni besed. Poleg
definicij razdalj oziroma metrik bomo poskušali zapisati ustrezne metrike in matrike razdalj
med besedami, s katerimi bomo lahko dolocili razdalje med izbranimi besedami in na osnovi
le teh besede združevali v skupine.
3
2 Razdalja
2.1 Razlicni primeri razdalj
Razdalja je številcni podatek, ki na podlagi meritev pove oddaljenost dveh tock, predmetov
v ravnini ali prostoru. V matematiki je razdaljna funkcija, ki ji pravimo metrika, posplošitev
pojma razdalje. To je funkcija, ki je odvisna od razlicnih pravil in opisuje elemente znotraj
razlicnih prostorov, opredeli ali so si elementi blizu ali ne. Obstaja veliko razlicnih razdalj,
poglejmo si nekatere definicije razdalj, ki jih lahko izmerimo:
• Razdalja dolocena kot dolžina najkrajše poti med dvema tockama (npr. navigacija).
• Razdalja dolocena kot dolžina poti med zacetno in koncno tocko ter nazaj do zacetne
tocke (npr. kroženje Zemlje okoli Sonca).
• Razdalja kot najkrajša možna pot med dvema tockama v prostoru, ce predpostavimo,
da med tockama ni nobenih ovir. Taki razdalji pogosto recemo evklidska razdalja.
• Razdalja Manhattan ali taksi razdalja.
Poleg razdalj, ki jih lahko izmerimo, pa obstajajo tudi teoreticne razdalje. V današnjih casih,
se pogosto v racunalništvu uporablja besedna zveza urejevalniška razdalja ("edit distance”)
med dvema besedama, ki predstavlja razdaljo med razlicnimi besedami ali drugace receno
doloci, kako povezani sta si dve besedi. Pri urejevalniški razdalji ne gre za povezanost besed v
pomenu, temvec gre za število crk v katerih se dve besedi locita, zato ta razdalja ni primerna
za dolocanje sorodnosti besed na osnovi pomena. Na primer, ce vzamemo besedi pes in pet.
Na prvi pogled bi rekli, da se ti dve besedi razlikujeta le v zadnji crki, urejevalniška razdalja
je torej 1. Na podlagi urejevalniške razdalje lahko trdimo, da sta ti besedi sorodni, saj se
razlikujeta le v eni crki. A po premisleku, oziroma na podlagi iger asociacij, bi hitro ugotovili,
da besedi pes in pet nista pretirano povezani, saj tudi nista sorodni besedi. Ugotovimo pa,
da je beseda pes veliko bližje besedi macka, saj se ti besedi velikokrat pojavita skupaj in tudi
na primer pri igri asociacij lahko ugotovimo, da si pogosto sledita, saj sta sorodni besedi,
poleg tega pa velikokrat koristimo besedi skupaj, na primer KOT PES IN MACKA. Primer teh
treh besed nam nazorno prikaže, da z uporabo urejevalniške razdalje ne moremo govoriti o
sorodnosti besed na podlagi pomena, saj majhna urejevalniška razdalja ne pomeni, da sta
dve besedi po pomenu sorodni.
2.2 Razdalja v evklidski geometriji
V geometriji locimo razdalje v ravnini, kjer so tocke definirane oziroma natanko dolocene z
dvema koordinatama T(x,y) in razdalje v prostoru, kjer so tocke natanko dolocene s tremi
koordinatami T(x,y,z). V analiticni geometriji razdaljo med tockama A(x1, y1) in B(x2, y2) v
ravnini R2 definiramo:
d(A,b) =√
(∆x)2 + (∆y)2 =√
(x2 −x1)2 + (y2 − y1)2. (1)
4
Razdalja med tockama je definirana s pravokotnim trikotnikom, v katerem velja Pitagorov
izrek. Razliki med x - koordinatama in y - koordinatama predstavljata kateti pravokotnega
trikotnika, sama razdalja med tockama pa predstavlja hipotenuzo. Da bo bralcu lažje razu-
mljivo, si poglejmo primer v ravnini s pomocjo slike 1.
Slika 1: Razdalja med tockama A in B s pomocjo Pitagorovega izreka.
Na sliki je z rdeco barvo oznacena razdalja med tockama A(x1, y1) in B(x2, y2). Pod razdaljo
narišemo pravokotni trikotnik tako, da je ena kateta vzporedna abscisi, druga pa ordinati.
Kateta k1 predstavlja razdaljo med koordinatama x2 in x1, kateta k2 pa predstavlja razdaljo
med koordinatama y2 in y1. Razdalja d(A,B) predstavlja hipotenuzo pravokotnega triko-
tnika, zato lahko razdaljo zapišemo kot Pitagorov izrek v enacbi (1).
Podobno lahko razdaljo definiramo tudi v prostoruR3 med tockama A(x1, y1, z1) in B(x2, y2, z2):
d(A,B) =√
(∆x)2 + (∆y)2 + (∆z)2 =√
(x2 −x1)2 + (y2 − y1)2 + (z2 − z1)2. (2)
2.3 Metrika
Metrika je v matematiki posplošitev pojma razdalje. Metrika podaja oddaljenost med ele-
menti dane množice. Množici, v kateri obstaja metrika, v matematiki recemo metricni pro-
stor.
Definicija. Metrika je preslikava, ki poljubnemu paru elementov x,y iz dane množice priredi
realno število d(x,y) z naslednjimi lastnostmi:
5
1. d(x,y) ≥ 0 (nenegativnost),
2. d(x,y) = 0, ce in samo ce x = y, (enakost nerazdeljivosti)
3. d(x,y) = d(y,x) (simetricnost),
4. d(x,z) ≤ d(x,y) + d(y,z) (trikotniška neenakost).
2.3.1 Metricni prostor
Metricni prostor je v matematiki množica, v kateri je dolocena metrika - to je razdalja med
njenimi elementi, ki jim pravimo tudi tocke. Nam najbližje je 3-razsežni evklidski prostor.
V njem obstaja evklidska metrika, ki razdaljo med dvema tockama doloca kot dolžino da-
ljice, ki ju povezuje. Geometrija prostora je odvisna od izbrane metrike, zato lahko z izbiro
razlicnih metrik konstruiramo tudi neevklidske prostore.
Definicija. Metricni prostor M je množica tock s pripadajoco metriko d
d : M ×M −→R,
kjer je R množica realnih števil.
Poglejmo si nekaj metricnih prostorov:
• R je metricen prostor, ce definiramo razdaljo d(A,B) kot d(A,B) = |A−B |.
• C je metricen prostor za d(z, w) = |z −w |.
• Pozitivna realna števila R+ predstavljajo metricni prostor, ce razdaljo definiramo kot
d(A,B) =∣∣∣∣l og
(B
A
)∣∣∣∣Vsaka podmnožica Y metricnega prostora X , ki ima enako definirano razdaljo kot X , je tudi
metricni prostor, ki mu pravimo metricni podprostor prostora X . Poglejmo si nekaj prime-
rov metrik.
Definicija. Naj bo X vektorski prostor nad obsegom K. Funkcija || · || : X → R1+ je norma na
vektorskem prostoru X, X = (X , || · ||) pa normiran prostor nad obsegom
K
, ce so za poljubna elementa x, y ∈ X in poljuben α ∈K izpolnjeni aksiomi normiranega pro-
stora:
(N1) ||x|| ≥ 0 in ||x|| = 0, ce in samo ce je x = 0,
(N2) ||αx|| = |α| · |x| (homogenost),
6
(N3) ||x + y || ≤ ||x||+ ||y || (trikotniška neenakost).
Bralca opomnimo, da zapis R1+ pomeni pozitivna realna števila.
Nam najbolj znana je 2-norma, ki ji recemo tudi evklidska norma. V n-razsežnem evklid-
skem prostoru Rn je dolžina vektorja −→x = (x1, x2, ..., xn) dolocena z:
||x|| =√
x21 +x2
2 + ...+x2n .
Poleg 2-norme obstajajo tudi druge, zato si splošno poglejmo kako je definirana p-norma.
To je posebna skupina norm, ki je za p ≥ 1 razdalja definirana kot:
||x||p =( n∑
i=1|xi |p
) 1p
.
Kot vidimo je od števila p odvisna stopnja potence in korena. Iz norme na naraven nacin
dobimo metriko po formuli d(A,B) = ||A−B ||.
2.3.2 Manhattanska ali taksi metrika (1-norma)
Manhattanska razdalja je razdalja, poimenovana po ulicah v predelu New York City-ja. Gre
za število blokov vzhod, zahod, sever in jug, ki jih mora taksi prevoziti, da bi prišel iz zacetne
tocke A do koncne tocke B . Pri tem se taksi lahko premika le gor, dol, levo in desno. Naj bo n-
razsežen prostor Rn in naj bo tocka A(a1, a2, ..., an) zacetna, tocka B(b1,b2, ...,bn) pa koncna
tocka. Potem je metrika oziroma razdalja med A in B definirana kot:
d(A,B) = |b1 −a1|+ |b2 −a2|+ ...+|bn −an |. (3)
Ne glede na to, po katerih "ulicah"potuje taksi, je razdalja vedno enaka, kar je razvidno iz
spodnje slike.
Z razlicnimi barvami, so izmerjene razlicne poti (rdeca, modra, rumena in zelena). Vidimo,
da je izmerjena razdalja vedno enaka, ne glede na to, po kateri poti gremo od tocke A(0,0)
do tocke B(5,5). Sedaj izracunajmo še taksi metriko po enacbi (3):
d(A,B) = |b1 −a1|+ |b2 −a2| = |5−0|+ |5−0| = 5+5 = 10.
Ugotovimo, da se izracunana razdalja d(A,B) ujema z vsemi izmerjenimi razdaljami na sliki
2.
2.3.3 Evklidska metrika (2-norma)
Obicajna razdalja v evklidski geometriji je evklidska metrika, oziroma evklidska razdalja.
Evklidsko metriko v 2- in 3-dimenzionalnem prostoru smo že zapisali z enacbama (1) in (2),
sedaj pa enacbo zapišimo še za razdaljo v n-razsežnem evklidskem prostoru Rn med toc-
kama A(a1, a2, ..., an) in B(b1,b2, ...,bn):
d(A,B) =√
(b1 −a1)2 + (b2 −a2)2 + ...+ (bn −an)2. (4)
7
Slika 2: Manhattanska razdalja oziroma geometrija taksijev - vec krajših možnih poti.
2.3.4 Cebišova metrika (∞-norma)
Cebišova metrika oziroma razdalja je znana tudi kot šahovska razdalja. Metrika je defini-
rana v vektorskem prostoru, razdalja med vektorjema oziroma dvema tockama, je definirana
kot najvecja razlika posameznih koordinat. Naj bosta A(a1, a2, ..., an) in tocka B(b1,b2, ...,bn)
tocki v prostoru. Šahovska razdalja med tockama A in B je definirana kot:
D(A,B) = maxi
(|bi −ai |), (5)
kjer je vrednost i med 1 in n. Poglejmo si, kako je s Cebiševo razdaljo pri šahu. Številke v
poljih predstavljajo razdaljo (najvecja razlika posameznih koordinat) med položajem kralja
in posameznega polja, kar je razvidno na spodnji sliki.
2.3.5 P-ta metrika (p-norma)
Ce v enacbi (4) kvadriranje nadomestimo s p-to potenco in kvadratni koren s p-tim kore-
nom, dobimo p-to metriko, ki izhaja iz p-te norme v vektorskem prostoru:
dp (A,B) = p√
|b1 −a1|p +|b2 −a2|p + ...+|bn −an |p , (6)
kjer je p ≥ 1, saj v nasprotnem primeru ne gre za metriko, saj ne velja trikotniška neenakost.
2.3.6 Diskretna metrika
Diskretna metrika je najpreprostejša, najmanj natancna in zato tudi najmanj uporabna me-
trika, za katero velja:
8
Slika 3: Kralj stoji na polju F6, številke na posameznih poljih pa prikazujejo Cebiševo razdaljo
med posameznim poljem in poljem F6.
1. d(x, y) = 0, ce in samo ce x = y ,
2. d(x, y) = 1, v vseh ostalih primerih.
Predstavljene metrike z izjemo diskretne metrike veljajo samo v evklidskem prostoru, ne
pa tudi v drugih množicah.
2.3.7 Urejevalniška razdalja
Urejevalniška razdalja med dvema besedama je razdalja, ki nam pove minimalno število po-
trebnih operacij, da besedi postaneta enaki. Te operacije so zamenjava, izbris in dodajanje
crke. Besedi riba in rabat imata urejevalniško razdaljo d = 2, saj moramo zamenjati drugo
crko ter besedi riba dodati oziroma besedi rabat odvzeti zadnjo crko. Da bo lažje razumljivo,
si poglejmo zgled dveh enako dolgih besed.
Razdaljo urejanja uporabimo v primeru dveh besed. Kot smo že omenili na zacetku, se be-
sedi pes in pet razlikujeta v eni crki. Torej je razdalja urejanja d(pes, pet ) = 1, saj moramo v
besedi pet zamenjati le crko t s crko s, da dobimo besedo pes.
2.4 Matrika razdalj
Kadar imamo vec kot dva elementa, razdalje med posameznimi elementi najlažje predsta-
vimo z matriko, ki ji pravimo matrika razdalj.
9
2.4.1 Evklidska matrika razdalj
Za n tock v evklidskem prostoru je evklidska matrika razdalj matrika velikosti n ×n, katere
elementi so razdalje med temi tockami. Naj bo D evklidska matrika razdalj in naj bodo
x1, x2, ..., xn definirane kot tocke v m-dimenzionalnem prostoru, potem lahko elemente ma-
trike D zapišemo oziroma definiramo kot:
D = (di j ),
d 2i j = ||xi −x j ||22,
kjer || ||2 predstavlja 2-normo v prostoru Rm . Evklidsko matriko razdalj D potem zapišemo
kot:
D =
0 d 212 d 2
13 . . . d 21n
d 221 0 d23 . . . d 2
2n
d 231 d 2
32 0 . . . d 23n
......
.... . .
...
d 2n1 d 2
n2 d 2n3 . . . 0
.
Za lažje razumevanje zapisa v obliki matrike si poglejmo, kaj posamezen zapis predstavlja.
Vidimo, da ima matrika po diagonali vrednosti 0. Nicla v prvi vrstici pomeni, da je razdalja
med dvema enakima elementoma enaka 0. Ce pogledamo po stolpcih, v prvem stolpcu prva
vrednost d 221 predstavlja razdaljo med 1. in 2. elementom in je po definiciji seveda enaka
razdalji d 212, saj se razdalja ne spremeni, ce merimo razdaljo med A in B ali ce merimo raz-
daljo med B in A. Na splošno v zapisu ai j , vrednost i predstavlja zaporedno številko vrstice,
vrednost j pa številko stolpca. Zaradi prej omenjene definicije razdalje, da velja enakost
d(A,B) = d(B , A), je matrika simetricna.
2.4.2 Poljubna matrika razdalj
Ker obstajajo razlicno definirane razdalje, obstajajo tudi razlicne matrike razdalj. Tudi mi
bomo pri prakticnem delu magistrskega dela, razdalje zapisali v obliki matrike. Ta izgleda
podobno kot evklidska matrika razdalj.
D =
0 d12 d23 . . . d1n
d21 0 d23 . . . d2n
d31 d32 0 . . . d3n...
......
. . ....
dn1 dn2 dn3 . . . 0
.
V osnovi gre podobno kot pri evklidski matriki razdalj1, razdalje niso dolocene na podlagi
evklidske razdalje po enacbi (1), ampak bomo postopek dolocanja razdalj opisali in pojasnili
kasneje, pri prakticnem delu. Tako kot pri evklidski matriki razdalj, so tudi tukaj elementi
1Pri evklidski matriki razdalj navadno razdalje kvadriramo, zaradi lažjega izracuna (predvsem na racunal-
niku), pri poljubni matriki razdalj, pa vnesemo nekvadrirane razdalje.
10
razporejeni enako v vrstice in stolpce in jih zapišemo kot di j . Zapis d12 torej oznacuje razda-
ljo med prvim in drugim elementom, ki je po definiciji razdalje enaka razdalji d21, ki ozna-
cuje razdaljo med drugim in prvim elementom. Na splošno zapis di j predstavlja razdaljo
med i -tim in j -tim elementom. Tudi tukaj so na diagonali matrike vrednosti enake 0, saj ve-
lja enako kot prej, torej d(A1, A1) = 0, prav tako je matrika prezrcaljena preko diagonale, saj
velja d(A1, A2) = d(A2, A1). V tej obliki bomo podali tudi razdalje med razlicnimi besedami.
2.5 Razlicne metrike in matrike razdalj
Evklidska metrika
Slika 4: Tocke A, B in C v ravnini s pripadajocimi koordinatami in razdaljami.
Razdalje dolocimo oziroma izracunamo po enacbi (1):
d(A,B) = d(B , A) =√
(5−0)2 + (3−0)2 =p25+9 =p
34.= 5,83
d(A,C ) = d(C , A) =√
(4−0)2 + (5−0)2 =p16+25 =p
41.= 6,40
d(B ,C ) = d(C ,B) =√
(4−5)2 + (5−3)2 =p1+4 =p
5.= 2,24
V poglavju 2.4.1 smo zapisali, da vnašamo v matriko kvadrirane razdalje, zato lahko razdalje
zapišemo kot:
d 2(A,B) = 34,
d 2(A,C ) = 41,
d 2(B ,C ) = 5.
Dolocili smo torej razdalje med posameznimi tockami. Po definiciji o razdalji, seveda velja
d(A, A) = 0, d(B ,B) = 0 in d(C ,C ) = 0. Sedaj, ko imamo dolocene vse razdalje, lahko zapi-
šemo evklidsko matriko razdalj.
D =
0 34 41
34 0 5
41 5 0
Vidimo, da je matrika simetricna in ima po diagonali vrednosti 0. Ker smo zapisali evklidsko
matriko razdalj treh tock A, B in C , je matrika razsežnosti 3×3.
11
Taksi metrika
Izracunali bomo taksi metriko za tocke A, B in C iz slike 4 in zapisali matriko razdalj. Kot
smo ugotovili, ni pomembno po kateri poti potujemo med dvema tockama, zato sem med
tockami izbral najbolj preproste poti, kar je razvidno na sliki 5. Izracunajmo še taksi razdalje
Slika 5: Taksi razdalja med tockami A, B in C ter dolžine posameznih razdalj. S crno barvo so
narisane tudi daljice oziroma evklidske razdalje.
med tockami A(0,0), B(5,3) in C (4,5):
d(A,B) = |5−0|+ |3−0| = 5+3 = 8,
d(A,C ) = |4−0|+ |5−0| = 4+5 = 9,
d(B ,C ) = |4−5|+ |5−3| = 1+2 = 3.
Ce upoštevamo definicijo razdalje, lahko zapišemo matriko razdalj D :
D =
0 8 9
8 0 3
9 3 0
.
Šahovska razdalja
Po enacbi (5) izracunamo šahovsko razdaljo za tocke A, B in C iz slike 4:
d(A,B) = max(|5−0|, |3−0|) = max(5,3) = 5,
d(A,C ) = max(|4−0|, |5−0|) = max(4,5) = 5,
d(B ,C ) = max(|4−5|, |5−3|) = max(1,2) = 2.
Ob upoštevanju definicije razdalje, lahko zapišemo matriko razdalj D :
D =
0 5 5
5 0 2
5 2 0
.
12
Diskretna metrika
Kot smo rekli, sta pri diskretni metriki dve možnosti. Kadar velja x = y , je razdalja d(x, y) = 0,
v vseh ostalih primerih pa je razdalja enaka d(x, y) = 1. Torej lahko matriko razdalj med
tockami A, B in C zapišemo kot:
D =
0 1 1
1 0 1
1 1 0
.
Ugotovitve
Primerjajmo posamezne matrike razdalj. Sledijo si evklidska, taksi, diskretna in šahovska: 0 34 41
34 0 5
41 5 0
6=
0 8 9
8 0 3
9 3 0
6=
0 1 1
1 0 1
1 1 0
6=
0 5 5
5 0 2
5 2 0
.
Uporabili smo iste tocke A, B in C , a pri primerjavi vseh štirih matrik razdalj ugotovimo, da
so razlicne. Ugotovimo torej, da so razdalje med posameznimi tockami in posledicno ma-
trike razdalj odvisne od izbrane metrike oziroma kako smo definirali razdaljo.
Poudariti je potrebno, da izbira metrike za obravnavo konkretnega primera ni povsem po-
ljubna. Potrebno je preuciti problem, ki ga želimo razrešiti in temu primerno izbrati ustrezno
metriko.
Na primer, ce želimo pri šahu izracunati razdaljo in prešteti potrebno število premikov kralja,
do poljubnega polja, ne bomo uporabili evklidske ali taksi metrike, ampak bomo uporabili
šahovsko metriko, saj nam prvi dve metriki ne pomagata rešiti problema, ki nas zanima. Prav
tako pri vožnji po pravokotnih in vzporednah cestah ne bomo izbrali evklidske ali šahovske
metrike, saj je temu primeru primerna taksi metrika. Evklidsko metriko pa uporabljamo v
geometriji v osnovni šoli, kadar želimo izracunati razdaljo med dvema tockama, daljicama,
premicama,...
Vidimo torej, da moramo dobro poznati problem in vedeti, kaj želimo doseci, da temu pri-
merno izberemo ustrezno metriko, da bodo naši izracuni in ugotovite uporabne in natancne.
13
3 Grucenje podatkov
Grucenje podatkov je postopek oziroma proces, s katerim objekte razporedimo v skupine,
glede na skupne znacilnosti. Torej, objekti znotraj iste skupine oziroma gruce imajo vec
skupnih lastnosti v primerjavi z objekti, ki so zunaj. Grucenje podatkov je glavni proces, s
katerim znotraj vecje kolicine podatkov odkrivamo dolocene vzorce s skupnimi lastnostmi
oziroma znacilnostmi. Postopek se uporablja na številnih podrocjih, kot so prepoznavanje
iskalnih vzorcev v racunalništvu, prepoznavanje vzorcev, analiziranje slik, krcenju velikosti
podatkov, racunalniški grafiki,...
Grucenje podatkov samo po sebi ni specificen algoritem, s katerim bi analizirali podatke,
ampak je to naša osnovna naloga oziroma problem, ki ga želimo rešiti. Zato obstaja vec spe-
cificnih algoritmov, s katerimi lahko analiziramo podatke. Vsi algoritmi niso primerni za vse
vrste podatkov, zato ima vsak algoritem svoje znacilnosti, prednosti in slabosti, zaradi cesar
je vsak primeren za svojo vrsto podatkov. Algoritmi temeljijo na preucevanju razdalj med
podatki, gostoto podatkov v danem obmocju. Ker so razlicni algoritmi primerni za doloceno
vrsto podatkov, to ni avtomaticni proces, ampak je potrebno dovolj znanja o podrocju ozi-
roma podatkih za analizo, da lahko izberemo ustrezen algoritem, da bodo naši rezultati za
dolocen problem cimbolj natancni in uporabni. Poglejmo si nekaj najbolj znanih algoritmov.
4 Algoritmi
Algoritme grucenja razlikujemo glede na nacin povezovanja ali razvršcanja tock. In sicer
locimo med modeli grucenja, ki temeljijo na:
• dolocanju središc grup,
• povezovanju glede na razdalje med tockami,
• gostoti tock,
• porazdelitvi tock,
• tockah in atributih tock,
• pravilih povezovanja,
• na grafih.
Obstaja veliko razlicnih algoritmov, pa si na kratko poglejmo nekatere izmed njih.
4.1 Algoritem k - means
Gre za metodo kvantizacije, algoritem pa uvršcamo med particijske algoritme. Algoritem se
uporablja pri rudarjenju podatkov. Podatke razvršca v k razredov, na osnovi vsote oddalje-
nosti podatkov od središc gruc tako, da je ta minimalna. Poglejmo si definicijo argumenta
minimuma.
14
Definicija. Naj bo X poljubna množica in f : X →R funkcija, ki preslika elemente množice X.
Potem je funkcija
argminx∈S⊆X
f (x) = {x|x ∈ S ∧∀y ∈ S : f (y) ≥ f (x)}. (7)
funkcija, ki vrne element iz podmnožie S ⊆ X , za katerega je vrednost funkcije najmanjša.
Algoritem k-means sedaj lahko zapišemo kot minimizacijski problem:
argminS
k∑i=1
∑x j∈Si
||x j −µi ||2.
S - množica gruc,
k - število gruc,
i - indeks gruce,
x j - tocka j gruce Si ,
µi - središce gruce i (središca so znana v naprej).
Leta 1957 je idejo za algoritem razvil Hugo Steinhaus, standardni algoritem pa je istega leta
prvic predstavil Stuart Lloyd. Ime algoritma k - means, pa se prvic uporabi 10 let kasneje, ko
je leta 1967 James McQueen poimenoval algoritem k - means. Za prvo uradno obavo algo-
ritma k - means je bilo potrebnih 25 let, saj je bil za javnost objavljen šele leta 1982, ceprav
je že leta 1965 E. W. Forgy objavil algoritem, a ne pod istim imenom. Zaradi razlicnih ob-
jav, algoritem velikokrat omenjamo Lloyd - Forgy algoritem. Poleg teh dveh obstaja še veliko
drugih algoritmov.
Omenimo dve pomembni slabosti algoritma k - means. Prva izmed slabosti je, da moramo
kot vhodni parameter navesti število gruc, kar pa ni preprosto, saj v splošnem ne vemo, ko-
liko gruc je optimalnih. Druga slabost, ki jo je vredno omeniti pa je, da algoritem ne zazna
gruc, ki so znotraj drugih gruc.
4.2 Algoritem DBSCAN
Algoritem DBSCAN (Density-based spatial clustering of applications with noise) bomo pri
analiziranju podatkov uporabili tudi mi, zato si ga bomo ogledali podrobneje. Leta 2014 je
na vodilnem kongresu rudarjenja podatkov prejel nagrado "Test of time", ki jo prejme izbran
algoritem, ki je najpogosteje uporabljen tako v teoriji kot tudi v prakticnih namenih.
Tako kot k - means, tudi algoritem DBSCAN uvršcamo med particijske algoritme in je eden
izmed najpogosteje uporabljenih algoritmov.
Algoritem preiskuje sosešcine oziroma okolice tock. Drugi pomemben kriterij oziroma pa-
rameter pa je minimalno število tock v okolici. Casovna zahtevnost algoritma je odvisna od
casovne zahtevnosti preiskovanja okolice posamezne tocke, kar lahko zmanjšamo z uporabo
matrike razdalj, kar pa bistveno poveca potrebe po pomnilniku. Prednosti algoritma sta, da
nismo omejeni s številom gruc ter njihovo obliko.
Omenili smo, da algoritem DBSCAN potrebuje dva vhodna parametra:
15
1. Okolica ε - podaja maksimalno razdaljo okoli jedra, znotraj katere mora biti zadostno
število tock.
2. Minimalno število tock (minPts) - število tock (skupaj z jedrom), ki so potrebne za ob-
stoj gruce.
4.2.1 Osnova za algoritem
V osnovi gre pri algoritmu DBSCAN za razvršcanje posameznih tock (objektov) v množice,
na podlagi skupnih znacilnosti. Tocke so opredeljene in klasificirane kot:
• jedro,
• neposredno dosegljive tocke (glede na oddaljenost znotraj gruce) oziroma mejne tocke,
• tocke, ki ležijo izven gruce.
1. Tocka p je tocka jedra, ce v njeni ε-okolici leži najmanj minPts tock (znotraj metricne kro-
gle z radijem ε in središcem p).
2. Tocka q je neposredno dosegljiva iz tocke p, ce leži znotraj ε-okolice tocke p in ce je tocka
p definirana kot jedro.
3. Vse tocke, ki niso neposredno dosegljive iz tocke p, oziroma ne ležijo v njeni ε-okolici
so tocke, ki ležijo izven gruce z jedrom p.
Potrebno se je zavedati, da jedro gruc ni isto kot središce krogle, okolica pa ni enaka radiju
sfere, zato tudi mejne tocke niso kar tocke na metricni sferi.
16
4.2.2 Originalni algoritem
Program 1: Originalni DBSCAN algoritem.
1 DBSCAN(DB, distFunc , eps , minPts ) {
2 C = 0 % s t e t j e mnozic grucenja
3 for each point P in database DB {
4 i f l a be l (P) = ! undefined then continue % prej uporabljene tocke v
notranj i zanki
5 Neigbors N = RangeQuery (DB, distFunc , P , eps ) % iskanje sosedov
6 i f |N| < minPts then { % preverjanje gostote tock
7 l a be l (P) = Noise % dodelitev zunanje tocke
8 continue
9 }
10 C = C + 1 % preverjanje naslednjega
11 l a be l (P) = C % oznaka zacetne tocke
12 Seed set S = N \ {P} % r a z s i r i t e v sosedov
13 for each point Q in S { % pregled vseh tock znotraj mnozice S
14 i f l a be l (Q) = Noise then l a be l (Q) = C % dolocitev mejne tocke
15 i f l a be l (Q) =! undefined then continue % prej uporabljene
tocke
16 l a be l (Q) = C % dolocitev soseda
17 Neigbors N = RangeQuery (DB, distFunc , Q, eps ) % iskanje
sosedov
18 i f |N| > minPts then { % preverjanje gostote tock
19 S = s join N % dodajanje soseda v mnozico S
20 }
21 }
22 }
23 }
Za lažje razumevanje DBSCAN algoritma, lahko postopek algoritma oziroma namen zapi-
šemo po korakih:
1. Najprej poišcemo tocko, ki ima v svoji okolici ε minimalno število tock. Jedra so vse
tocke, ki imajo v svoji okolici ε vec kot minimalno število tock (minPts).
2. Ko dobimo jedro in tocke v njeni okolici, za vsako tocko znotraj gruce preverimo, ce
ima v svoji okolici ε vsaj minimalno število tock. Ce ima zadostno število tock, nastopa
kot jedro gruce, drugace pa je to mejna tocka.
3. Ko dodajamo nove tocke v gruco, zopet preverimo, ce ima v svoji okolici vsaj mini-
malno število tock.
4. Ko pridemo do tocke, ki je znotraj gruce, a v svoji okolici nima dovolj tock, je to mejna
tocka.
17
5. Vse ostale tocke, ki niso jedra ali mejne tocke, so tocke izven gruce oziroma tocke, ki
niso neposredno dosegljive iz gruce.
Da bo bralcu lažje razumljivo, si postopek algoritma DBSCAN poglejmo še s pomocjo slik.
Poleg množice tock, dolocimo še parametra ε= 1 in mi nP t s = 4. Torej, tocka je jedro, ce so
vsaj še 3 tocke od nje oddaljene manj kot 1 enoto, saj za minimalno število tock štejemo tudi
jedro. Uporabili bomo evklidsko razdaljo, torej je okolica ε dolocena s krožnico.
Slika 6: Razlicne tocke.
Naj bo tocka A prvo potencialno jedro gruce. Preverimo, ce v njeni okolici leži dovolj tock,
da ustreza pogoju mi nP t s = 4 (slika 7).
Slika 7: Tocka A kot jedro in njena okolica ε.
Vidimo, da poleg tocke A v njeni okolici ležijo še 3 tocke. Torej je tocka A res jedro gruce.
Sedaj, ko smo dobili gruco, preverimo za vse tocke v okolici jedra, ce imajo v svoji okolici
zadostno število tock, da predstavljajo jedro (slika 8).
18
Slika 8: Okolice tock znotraj gruce.
Vidimo, da je v okolici obeh rdecih tock vsaj minimalno število tock, zato sta tudi ti dve tocki
jedri. V okolici tocke E , pa ni dovolj tock, torej pogoj o minimalnem številu tock ni izpolnjen.
Taki tocki recemo mejna tocka, saj leži v gruci, a ne predstavlja jedra. Sedaj preverimo še
okolici novih dveh tock.
Slika 9: Okolica novih dveh tock gruce.
Iz slike je razvidno, da je v okolici rdece tocke dovolj tock, da postane jedro, v okolici tocke
F pa ni dovolj tock, zato je tudi tocka F mejna tocka (slika 9). Ostane nam še tocka G. Preve-
rimo okolico tocke G (slika 10)
19
Slika 10: Okolica tocke G .
Vidimo, da v okolici tocke G ni nobene tocke, prav tako pa tocka G ni v okolici ε nobene iz-
med tock znotraj gruce. Zato tocka G ne pripada gruci in ji recemo tocka izven gruce.
Torej, gruco sestavljajo rdece tocke in vijolicni tocki E in F. Za vse tocke znotraj gruce ve-
lja, da so neposredno dosegljive iz jedra. Iz tock E in F, ne moremo nadaljevati naprej, saj v
njunih okolicah ne leži dovolj tock, zato sta ti dve tocki mejni. V tocko G pa ne moremo priti
neposredno iz jedra, zato je to tocka izven gruce.
4.2.3 Prednosti DBSCAN algoritma
• V nasprotju s k - means algoritmom, DBSCAN ne potrebuje specificnega števila gruc.
• Algoritem prepozna poljubno oblikovane gruce, prepozna celo gruco, ki je v celoti zno-
traj neke druge gruce.
• Ima definiran pojem motenj in strogo loci tocke izven gruce, kar pomeni, da ni nujno,
da poljubna tocka pripada katerikoli gruci.
• Algoritem potrebuje le dva parametra in velja za enega najobcutljivejših algoritmov za
obdelavo podatkov.
• Parametra minPts in ε lahko poljubno spreminjamo, seveda ce dobro razumemo po-
datke.
4.2.4 Slabosti DBSCAN algoritma
• Ni popolnoma deterministicen algoritem, kar pomeni, da lahko neka tocka pripada
vec kot eni gruci. Ce mejne tocke opredelimo kot motnje oziroma tocke izven gruce,
lahko to slabost nekoliko reduciramo.
20
• Kvaliteta grucenja je odvisna od merjenja oziroma dolocanja razdalj. Najpogosteje se
uporablja Evklidska razdalja, problem pa nastane pri vecdimenzionalnih podatkih.
• Ce ne razumemo dobro podatkov, je zelo težko ali skoraj nemogoce dolociti okolico ε.
21
5 DBSCAN algoritem in razlicne metrike
Sam algoritem DBSCAN se seveda pri spremembi metrike ne spremeni. Algoritem raziskuje
tocke in njihove okolice, doloca jedra, mejne tocke in tocke izven gruce. Edino, kar se spre-
meni, so oblike okolic okoli posameznih tock, odvisno od metrike, ki jo izberemo.
5.1 Evklidska metrika
Evklidsko metriko smo si ogledali že v prejšnjem poglavju, kjer smo si s pomocjo slik ogledali,
kako DBSCAN algoritem sploh deluje. Torej, okolica tocke pri evklidski metriki v ravnini ima
obliko kroga, saj je krog množica tock, ki so od središca oddaljene za najvec polmer. Torej
gre za krog s polmerom r = ε. Poglejmo si na spodnji sliki.
Slika 11: Na levi strani je prikazana okolica dane tocke, na desni pa izvajanje DBSCAN algo-
ritma in iskanje okolic posameznih tock z uporabo evklidske metrike. Ob pogoju minPts = 3,
dobimo gruco treh tock (modra barva).
5.2 Taksi metrika
Pri taksi metriki v ravnini ne racunamo razdalje tako kot pri evklidski metriki, pac pa je razda-
lja med dvema tockama enaka vsoti razlik v koordinatah x in y , kar je predstavljeno v enacbi
(3).
Ce spremenimo samo eno koordinato središcne tocke naenkrat, se seveda ta lahko spremeni
za ±ε. Torej, ce ima poljubna tocka koordinati (x, y), imajo 4 tocke, ki ležijo ravno na robu
okolice ε koordinate: (x +ε, y), (x −ε, y), (x, y +ε) in (x, y −ε). Ce povežemo te štiri tocke, do-
bimo okolico v obliki kvadrata (zasukanega za 45°okrog presecišca diagonal). Poglejmo si na
spodnji sliki obliko okolice za manhattansko metriko in prikaz iskanja okolic z algoritmom
DBSCAN.
22
Slika 12: Levo je prikazana taksi okolica tocke, desno pa je prikazano izvajanje DBSCAN al-
goritma in iskanje okolic posameznih tock z uporabo taksi metrike. Ob upoštevanju pogoja
minPts = 3, ne obstaja nobena gruca.
5.3 Šahovska metrika
Omenili smo, da se šahovska razdalja izracuna kot najvecja razlika posameznih koordinat,
kar je definirano v enacbi (5). Po premisleku so torej v okolici tocke s koordinatama (x, y)
vse tocke, katerim se koordinati spremenita za najvec ε, torej imajo robne koordinate x±ε in
y ±ε. Izberimo si štiri tocke s koordinatami, ki so najbolj oddaljene od tocke (x, y): (x −ε, y −ε), (x−ε, y+ε), (x+ε, y+ε) in (x+ε, y−ε). Po premisleku ugotovimo, da so te štiri tocke oglišca
kvadrata, ki predstavlja okolico ε tocke (x, y). Za lažje razumevanje si poglejmo na spodnji
sliki.
23
Slika 13: Levo je prikazana okolica tocke z uporabo šahovske metrike, desno pa je za isto
metriko predstavljeno izvajanje DBSCAN algoritma in iskanje okolic posameznih tock. Ob
upoštevanju pogoja minPts = 3 dobimo gruco vseh tock (tocke znotraj modrih okolic).
5.4 Ugotovitve
Vidimo, da se z izbiro metrike spremeni oblika okolice ε. Torej poleg izbire množice tock,
okolice ε in minimalnega števila tock mi nP t s, na obliko gruce in njene elemente, mocno
vpliva tudi izbira ustrezne metrike. Ce primerjamo izvajanje algoritma DBSCAN z razlicnimi
metrikami, ugotovimo, da se pri popolnoma enakih vhodnih pogojih, obstoj oziroma veli-
kost gruce spremeni glede na izbiro metrike, kar je razvidno na slikah 11, 12 in 13. Da bo
lažje razumljivo, si poglejmo še sliko 14, na kateri so prikazane okolice za vse tri metrike.
Slika 14: Okolice za vse tri metrike: rdeca - taksi, crna - evklidska in zelena - šahovska. Tocka
A leži v okolici ne glede na izbiro metrike, tocka B ne leži v okolici za taksi metriko, tocka C
pa leži le v okolici za šahovsko metriko.
24
Kot smo omenili že pri poglavju o metrikah, je tudi pri izvajanju algoritma potrebno izbrati
ustrezno metriko na podlagi problema oziroma naloge, saj so od tega odvisne smiselnost,
natancnost in uporabnost naših rezultatov.
25
6 Geometrijska obravnava jezika
Ustreznost definicij razdalj med besedami bomo preizkusili tudi prakticno. Najprej si bomo
izbrali osem besed: matematika, algebra, množenje, seštevanje, enacba, geometrija, premica
in daljica. Naša naloga je, dolociti besede med katerimi so razdalje dovolj majhne, da tvorijo
gruco oziroma so med seboj sorodne.
V osnovi, bomo razdaljo dolocili na podlagi število najdenih besed, s pomocjo spletne apli-
kacije Sketch Engine. Spletna aplikacija na spletu poišce število pojavitev iskanih besed na
spletnih straneh, ki so v bazi aplikacije, odvisno od izbranega kriterija.
6.1 Aplikacija Sketch Engine
Aplikacija Sketch Engine je uporabno orodje na podrocju raziskovanja jezika. Ponuja nam
velik izbor funkcij, s katerimi lahko raziskujemo besedišce na spletu v razlicnih jezikih, tudi
v slovenšcini. S funkcijo "Thesaurus" lahko poišcemo besede, ki so sorodne iskani besedi.
Poleg števila iskane besede, nam aplikacija ponudi število pojavitev, ki vsebujejo sorodne
besede. Poleg tega, lahko hkrati išcemo in primerjamo število ustreznih pojavitev za dve be-
sedi hkrati. Med kriteriji iskanja je veliko možnosti, išcemo lahko besedo, frazo, posamezno
crko, lemo,... Poleg tega lahko izberemo tudi besedno vrsto, torej ali se beseda pojavlja kot
samostalnik, pridevnik, prislov itd. Mi bomo uporabili kriterij lema. Pri iskanju s kriterijem
beseda, aplikacija poišce število pojavitev, kjer je beseda zapisana identicno, kot jo mi vpi-
šemo v iskalnik, v primeru da išcemo s kriterijem lema, pa aplikacija upošteva tudi zadetke,
kjer je beseda zapisana z razlicnimi koncnicami. Torej ne išce na primer samo besede mate-
matika, ampak tudi oblike matematike, matematiki,.... Potrebno je opozoriti, da tukaj ne gre
za matematico lemo. Pri iskanju dveh besed hkrati, lahko definiramo tudi ali morata biti dve
besedi sosedni, torej v besedilu stojita ena za drugo, lahko pa tudi dolocimo maksimalno
število besed, ki stojijo v besedilu med iskanima besedama. Pri uporabi funkcije Concor-
dance lahko izberemo naprednejše iskanje, kjer z ukazi lahko išcemo s podrobnimi pogoji,
da dobimo samo število pojavitev, ki ustrezajo našim željam oziroma potrebam.
6.2 Iskanje in zapisovanje števila pojavitev
Pri iskanju bomo uporabili tri pogoje: dve besedi hkrati in vsaj ena od dveh besed in ena be-
seda. Število pojavitev s pogojem dve besedi hkrati bomo v nadaljevanju omenjali kot presek,
število pojavitev s pogojem vsaj ena od dveh besed pa kot unijo.
Število pojavitev bi lahko vpisovali v dve razlicni matriki, a pri izbiri osmih besed je potrebno
vpisati kar 64 razlicnih podatkov. Zato bomo število pojavitev zapisovali v dve tekstovni da-
toteki, s programskim jezikom Octave pa bomo zapisali program, ki bo na podlagi teh dveh
datotek izracunal posamezni matriki, s katerima bomo kasneje izracunali razdalje.
Podatke vpišemo enega pod drugim. Ne glede na to, ali želimo zapisati matriko razdalj za
število pojavitev za presek ali unijo, je postopek enak. V eni datoteki zapisujemo podatke za
26
Slika 15: Zacetni zaslon aplikacije Sketch Engine, kjer lahko izberemo eno izmed osnovnih
funkcij na podlagi naših potreb.
Slika 16: Slika zaslona iskalnika v aplikaciji Sketch Engine.
presek, v drugi pa za unijo. Izbrali smo si osem besed, zato bomo najprej eno pod drugim
zapisali število pojavitev posamezne besede v relaciji2 z besedo matematika. Prvih osem
podatkov predstavlja v našem primeru število pojavitev v preseku za besedo matematika
z vsemi ostalimi besedami (besede po vrsti so: matematika, algebra, množenje, seštevanje,
enacba, geometrija, premica in daljica). Najprej torej zapišemo število pojavitev, kjer se poja-
2Z besedo relacijo mislimo torej presek ali unijo. Torej število objav, v katerih se dve besedi pojavita skupaj
oziroma število objav, kjer se pojavlja vsaj ena od obeh besed. Kot smo že omenili, je postopek zapisovanja
popolnoma enak v obeh primerih.
27
vita besedi matematika in matematika, v drugi vrstici je število pojavitev za besedi matema-
tika, algebra. Ko zapišemo v našem primeru vseh osem števil, ki se navezujejo na primerjavo
števila pojavitev z besedo matematika in ostalimi besedami, zacnemo vpisovati število poja-
vitev za besedo algebra in ostale besede. Ker smo število pojavitev za besedi matematika in
algebra zapisali že v iskanju števila posameznih besed v relaciji z besedo matematika, nam ni
potrebno ponovno vpisati. Na splošno nam ni potrebno dvakrat vpisati razdaljo med dvema
istima besedama, saj bo na podlagi teh dveh datotek program zapisal simetricni matriki. To
lahko storimo, saj smo že veckrat omenili, da je po definiciji razdalja med A in B enaka raz-
dalji med B in A. Za vsako naslednjo besedo moramo torej zapisati en podatek manj, saj je
ekvivalenten podatek bil vpisan že prej. Torej, ce smo na primer že zapisali število pojavitev
obeh besed matematika in enacba, nam ni potrebno zapisati še števila pojavitev v preseku
besed enacba in matematika, saj na število pojavitev ne vpliva vrstni red iskanih besed.
Razumljiv je, da je število pojavitev dveh istih besed enako v obeh primerih. Ko zapišemo
število pojavitev tako za unijo, kot tudi za presek besed, lahko te podatke zapišemo v ma-
triko dimenzije 8×8. Poglejmo si kodo programa in pojasnimo bistvene dele programa.
Program 2: Zapis števila elementov v matriko 8×8.
1 cl c
2 clear a l l
3 A = importdata ( ’ or . t x t ’ , ’ ’ , 0 ) ; % nalozimo podatke i z izbrane datoteke
4 m = s i z e (A, 1 ) ; % v e l i k o s t matrike
5 n = 8 ; % 8 besed bo t v o r i l o matriko 8 x 8
6 U = [ ] ;
7 s t = 1 ; % zaporedno s t e v i l o elementa i z datoteke , ki smo jo n a l o z i l i kot
matriko A
8 for i = 1 : n % v r s t i c e v matriki
9 VR = [ ] ; % posamezna v r s t i c a koncne matrike unije a l i preseka
10 for j = 1 : n % v s i s t o l p c i v matriki
11 i f 1 <= j % za vse podatke , ki j i h se nismo v p i s a l i v matriko
12 VR = [VR, A( s t ) ; ] ;
13 s t = s t + 1 ;
14 else % ce j e podatek ze b i l vpisan v matriko U, ga prepisemo i z
matrike U same
15 VR = [VR, U( j , i ) ] ;
16 endif
17 endfor
18 U = [U;VR ] ; % posamezno v r s t i c o dodamo v matriko U
19 endfor
20 U
21 save unija . mat U % shranimo matriko U
Najprej naložimo ustrezno datoteko, glede na to, ali želimo matriko števila podatkov za pre-
sek ali unijo dveh besed (3. vrstica). Podatki se zapišejo v matriko A dimenzije 1×n, kjer je
n število izbranih besed. Nadaljni postopek je enak v obeh primerih, na koncu le shranimo
28
matriko pod imenom presek ali unija. V for zanki med vrsticama 9 in 26, program prebira
posamezne elemente iz matrike A in jih postavlja na ustrezno mesto v vrstici V R, kasneje
pa vrstico doda v matriko U (24. vrstica). V vrstici 13 imamo pogoj, torej ce podatka nismo
še zapisali v matriko U, ustrezen podatek prepiše iz matrike A. V kolikor pa smo podatek že
zapisali v matriko U, potem ustrezen podatek program prepiše kar iz matrike U same. S tem
smo si olajšali delo, saj nam ni bilo potrebno podatkov zapisovati v matriko rocno in dvakrat
za razlicen vrstni red dveh besed, saj je to namesto nas naredil program, ki smo ga zapisali.
Sedaj, ko imamo dve matriki moramo dolociti še razdaljo med dvema besedama.
6.3 Razdalja med dvema besedama
V tem poglavju bomo definirali dve razdalji med besedami.
6.3.1 Razdalja kot kolicnik preseka in unije števila pojavitev
Ker besede nimajo koordinat na podlagi katerih bi lahko dolocili razdaljo, bomo razdaljo
besed definirali kot:
d(A,B) = 1− |M(A)∩M(B)||M(A)∪M(B)| , (8)
kjer je M(A) množica pojavitev besede A in M(B) množica pojavitev besede B . Torej M(A)∩M(B) predstavlja presek obeh množic, kjer se skupaj pojavita obe besedi, M(A)∪M(B) pa
unijo obeh množic, torej vsebuje objave, kjer se pojavi vsaj ena od obeh besed. Kolicnik pre-
seka in unije odštejemo od števila 1 zato, ker želimo, da je razdalja manjša v primeru, kadar
ima kolicnik vecjo vrednost – veckrat kot se besedi pojavita skupaj, tem manjša je razdalja
med dvema besedama.
Po enacbi (8) bomo izracunali razdalje med posameznimi besedami in zapisali matriko raz-
dalj. Ker je to dokaj zamudno, bomo uporabili program, ki smo ga zapisali. V nadaljevanju
bomo razdaljo definirano z enacbo (8) imenovali na kratko kar razdalja PU.
6.3.2 Razdalja kot kolicnik preseka in minimalnega števila pojavitev posamezne besede
Omenili smo, da bomo definirali dve razdalji in primerjali rezultate med seboj. Ob pred-
postavki, da se število pojavitev mocno razlikuje glede na iskano besedo, bodo po enacbi
(8) razdalje med dvema besedama, kjer se ena pojavi velikokrat (npr. matematika - 22190
pojavitev), druga pa malokrat (algebra - 659 pojavitev), razdalje zelo majhne. Zato bomo
definirali razdaljo kot kolicnik preseka in minimalnega števila pojavitev posamezne besede:
dm(A,B) = 1− |M(A)∩M(B)|min(|M(A)|, |M(B)|) . (9)
V primeru besed matematika in algebra bo torej v števcu število pojavitev besede algebra.
Enako kot prej bomo število pojavitev posameznih besed vpisali v tekstovno datoteko .txt in
zapisali programsko kodo, ki bo na podlagi podatkov dolocila minimalno število pojavitev
med posameznima besedama in zapisala matriko. V nadaljevanju bomo razdaljo iz enacbe
(9) imenovali na kratko kar razdalja MIN.
29
Program 3: Dolocanje min(M(A), M(B)) in zapis podatkov v matriko.
1 cl c
2 clear a l l
3 A = importdata ( ’ 2skupini . t x t ’ , ’ ’ , 0 ) ;
4 n = s i z e (A, 1 ) ;
5 S = [ ] ;
6 for i = 1 :n % v r s t i c e v matriki
7 VR = [ ] ; % posamezna v r s t i c a koncnce matrike unije a l i preseka
8 for j = 1 : n %v s i s t o l p c i v matriki
9 VR = [VR, min(A( i ) ,A( j ) ) ] ;
10 endfor
11 S = [ S ;VR ] ; % posamezno v r s t i c o dodamo matriki
12 endfor
13 save 2skupini . mat S ;
6.4 Lastnosti definirane razdalje
Naša definicija razdalje ni metrika, saj dopušcamo možnost, da ne velja trikotniška neena-
kost temvec:
d(A,C ) > d(A,B)+d(B ,C ). (10)
V primerih, ki smo jih obravnavali ni prišlo do neenakosti (10), prav tako nisem uspel najti
treh besed, za katere bi veljala. A po premisleku se lahko zgodi, da za besede A, B in C velja,
da je na primer razdalja d(A,B) = 0.5, d(A,C ) = 1 in d(B ,C ) = 0.25. V tem primeru bi seveda
veljala neenakost (10), kar pomeni da ne gre za metriko, ampak semimetriko. Semimetrika
ima razen trikotniške neenakosti vse ostale lastnosti metrike. Ne glede na to za kakšno me-
triko in razdaljo gre, še vedno lahko govorimo o sorodnosti besed in sorodnosti pomenov
razlicnih besed. Poudariti je potrebno, da v našem primeru ne gre za semanticno razdaljo,
saj ima neka beseda lahko vec pomenov, temvec za neko statisticno razdaljo, doloceno na
podlagi analize besedišca.
6.5 Matrika razdalj
Poglejmo si kodo programa (4), s katerim bomo na podlagi dveh matrik števila pojavitev do-
locili razdalje med posameznimi besedami in zapisali matriko razdalj.
30
Program 4: Izracun razdalj med posameznimi besedami in zapis matrik razdalj.
1 cl c
2 clear a l l
3 U = importdata ( ’ 2skupini . mat ’ , ’ ’ , 0 ) ; % v matriko U nalozimo s t . pojavitev
unije
4 P = importdata ( ’ presekskupin . mat ’ , ’ ’ , 0 ) ;% v matriko P n a l o i m o s t . pojavitev
preseka
5 n = s i z e (U, 1 ) ;
6 D = [ ] ;
7 for i =1:n
8 V = [ ] ;
9 for j =1:n
10 V = [V,1−(P( i , j ) /U( i , j ) ) ] ; % izracun razdal je po enacbi in zapis v matriko
r a z d a l j
11 endfor
12 D = [D; V ] ;
13 endfor
14 D
15 save razdaljeSKUP . mat D
Kot je razvidno v programu 4, najprej naložimo podatke za presek in unijo množic pojavitev
parov izbranih besed. V 10. vrstici izracunamo razdaljo po enacbi (8) in posamezne razda-
lje vpisujemo v matriko razdalj. Ko se program izvede, dobimo matriko razdalj, na podlagi
katere bomo z algoritmom DBSCAN iskali gruce besed. V primeru obeh razdalj je program
popolnoma enak, razlika je le v matriki U, glede na izbrano razdaljo uporabimo razlicno da-
toteko. Torej ce bo v imenovalcu unija dveh besed, bomo naložili datoteko, v katero smo
vpisali matriko unije posameznih besed, v primeru, da bo v imenovalcu minimalno število
pojavitev, pa bomo naložili datoteko, v katero smo zapisali matriko minimalnega števila po-
javitev med posameznima besedama. Najprej si oglejmo matriko razdalj za razdaljo kot ko-
licnik preseka in unije pojavitev:
D =
0.00000 0.95873 0.96207 0.94106 0.92343 0.96314 0.96738 0.98200
0.95873 0.00000 0.97359 0.98469 0.93018 0.93926 0.97531 0.98984
0.96207 0.97359 0.00000 0.73359 0.86712 0.92936 0.85124 0.86851
0.94106 0.98469 0.73359 0.00000 0.87000 0.90934 0.91761 0.94355
0.92343 0.93018 0.86712 0.87000 0.00000 0.87406 0.76084 0.88174
0.96314 0.93926 0.92936 0.90934 0.87406 0.00000 0.91584 0.94944
0.96738 0.97531 0.85124 0.91761 0.76084 0.91584 0.00000 0.89983
0.98200 0.98984 0.86851 0.94355 0.88174 0.94944 0.89983 0.00000
.
Oglejmo si še matriko za razdaljo kot kolicnik preseka in minimalnega števila pojavitev:
31
Dm =
0.00000 0.27618 0.89970 0.88209 0.92754 0.81449 0.96929 0.96778
0.27618 0.00000 0.98179 0.98331 0.83156 0.78149 1.00000 0.99848
0.89970 0.98179 0.00000 0.72847 0.94732 0.98278 0.99291 0.98044
0.88209 0.98331 0.72847 0.00000 0.97052 0.98715 0.99169 0.99655
0.92754 0.83156 0.94732 0.97052 0.00000 0.97005 0.89706 0.94591
0.81449 0.78149 0.98278 0.98715 0.97005 0.00000 0.92734 0.94476
0.96929 1.00000 0.99291 0.99169 0.89706 0.92734 0.00000 0.65017
0.96778 0.99848 0.98044 0.99655 0.94591 0.94476 0.65017 0.00000
.
Kot vidimo, sta obe matriki razdalj D simetricni in imata po diagonali vrednosti 0. Torej
ustrezata obliki poljubne matrike razdalj in bosta v nadaljevanju uporabljeni za osnovo iska-
nja elementov gruc z algoritmom DBSCAN.
Prav tako opazimo, da so razdalje razmeroma velike, kar je posledica velikih razlik pri šte-
vilu pojavitev posameznih besed in dveh besed hkrati.
6.6 Implementacija DBScan algoritma
Dolocili smo razdalje med besedami in zapisali dobljeno matriko razdalj za naš konkreten
primer. Matriko razdalj lahko uporabimo za grucenje podatkov z DBSCAN algoritmom.
Program 5: Zapis besed v matriko (za izris diagrama in neposrednih povezav v programu
Pajek).
1 s t = s i z e (D, 1 ) ;
2 besede = [ ’ * Vert ices 10 ’ ; ’ 1 "matematika" ’ ; ’ 2 " algebra " ’ ; ’ 3 "mnozenje" ’ ; ’ 4 "
sestevanje " ’ ; ’ 5 "enacba" ’ ; ’ 6 " geometrija " ’ ; ’ 7 "premica" ’ ; ’ 8 " d a l j i c a " ’ ; ’ *Arcs ’ ] ;
S pomocjo zgornje kode (Program 5) smo torej uporabili ustrezno matriko razdalj, na pod-
lagi katerih bo algoritem iskal jedra gruc. Predno izvedemo algoritem DBSCAN, moramo
definirati še vhodna pogoja, to sta okolica ε in minimalno število tock minPts, kar je vidno
na spodnji kodi programa 6.
Program 6: Vhodna pogoja ε in minPts.
1 epsilon = 0 . 9 ;
2 minPts = 4 ;
32
Program 7: Iskanje tock, ki predstavljajo jedra.
1 function [ IDX , isnoise ]=DBSCAN(D, epsilon , MinPts )
2
3 C = 0 ;
4 n = s i z e (D, 1 ) ;
5 IDX = zeros (n , 1 ) ;
6
7
8 v i s i t e d = f a l s e (n , 1 ) ;
9 isnoise= f a l s e (n , 1 ) ;
10
11 for i = 1 : n
12 i f ~ v i s i t e d ( i )
13 v i s i t e d ( i ) = true ;
14 Neighbors = RegionQuery ( i ) ;
15 i f numel( Neighbors ) < MinPts % ce ni dovolj tock v okol ic i , tocka
ni vsebovana v gruci
16 isnoise ( i ) = true ;
17 else
18 C = C + 1 ;
19 ExpandCluster ( i , Neighbors ,C) ; % pregledamo se okolice
vsebovanih tock v gruci s funkcijo ExpandCluster
20 endif
21 endif
22 endfor
Program 7 vkljucuje funkcijo za iskanje jeder gruc. Definirali smo tocke izven gruce s spre-
menljivko isnoise. V vrstici številka 12 program zacne pregledovati matriko razdalj in pre-
verja ali je v okolici posamezne tocke dovolj tock, da postane jedro. V kolikor ni dovolj tock
v okolici izbrane tocke, program zacne preverjati novo tocko (vrstica 17 - tocka je definirana
kot motnja in zato ni jedro). Ce pa je v okolici dovolj tock, program zažene funkcijo Expan-
dCluster, ki bo za vse tocke v okolici jedra preverila, ali imajo tudi same zadostno število tock
v svoji okolici. Kot smo že omenili pri razlagi DBSCAN algortima s pomocjo slik, bo program
sedaj v gruco dodajal še ostale tocke, ki ustrezajo pogojema ε in minPts.
33
Program 8: Iskanje tock tock v okolici posameznih tock.
1 function ExpandCluster ( i , Neighbors ,C)
2 IDX( i ) =C;
3
4 k = 1 ;
5 while true
6 j = Neighbors ( k ) ;
7 i f ~ v i s i t e d ( j )
8 v i s i t e d ( j ) =true ;
9 Neighbors2=RegionQuery ( j ) ;
10 i f numel( Neighbors2 ) >=MinPts
11 Neighbors =[ Neighbors Neighbors2 ] ;
12 endif
13 endif
14 i f IDX( j ) ==0
15 IDX( j ) =C;
16 endif
17 Sosedje = unique ( Neighbors ) ;
18 save gruca . mat Sosedje ;
19 k = k + 1 ;
20 i f k > numel( Neighbors )
21 break ;
22 endif
23 endwhile
24 endfunction
Koda prikazana v programu 8 preišce vse tocke in ustrezne doda v gruco. Ko preveri vse mo-
žnosti, se vrne na zacetek in zacne ponovno iskati novo jedro, okoli katerega bo ponovno po
enakem postopku preiskovala tocke in njihove okolice ter poiskala še kakšno gruco. Za vsako
gruco posebej želimo izpisati njene elemente. Kot smo omenili, bomo besede in povezave
med njimi narisali v programu Pajek, zato bomo posamezne besede v gruci in neposredne
povezave med njimi izpisali na zaslon. Rezultate bi lahko neposredno izpisali v tekstovno da-
toteko, a se zapis v programu Octave ne ujema s potrebnim zapisom, s katerim bomo besede
izrisali v programu Pajek. Zato bo program vse potrebne podatke za izris izpisal na zaslon,
mi pa jih bomo kopirali v beležnico in izrisali graf oziroma diagram. Izpis na zaslon program
izvede s pomocjo kode v programu 9.
34
Program 9: Del kode za izpis potrebnih podatkov na zaslon.
1 gruca = importdata ( ’ gruca . mat ’ , ’ ’ , 0 ) ;
2 n = s i z e ( gruca , 2 ) ;
3 disp ( besede )
4 for i = 1 : 3
5 for j = ( i +1) : 4
6 disp ( [ i , j ] )
7 endfor
8 endfor
9 i f numel( gruca ) >= MinPts
10 for i = 1 : n
11 for j = ( i ) : n
12 i f i ! = j
13 disp ( [ gruca ( i ) , gruca ( j ) ] )
14 endif
15 endfor
16 endfor
17 else
18 disp ( ’ ’ )
19 endif
6.7 Program PAJEK
Program Pajek3 je brezplacen program, namenjen analizi in prikazu velikih omrežij. Mi
bomo uporabljali orodje, s katerim izrisujemo diagrame. Za izris diagrama moramo najprej
dolociti število vozlišc ter jih poimenovati. Ko definiramo vozlišca in njihova imena, se lahko
lotimo povezav. Na preprost nacin dolocimo, med katerimi vozlišci obstajajo povezave. S
pomocjo programa 9, dobimo ustrezen zapis za obdelavo podatkov v programu Pajek. Na
sliki 17 so prikazani podatki, ki jih potrebujemo, da s programom Pajek lahko izrišemo di-
agram. Ce želimo izrisati graf v programu Pajek, moramo torej najprej dolociti vozlišca in
jih poimenovati, kasneje pa dolociti povezave med posameznimi vozlišci. Te povezave bodo
ponazarjale poti med neposredno dosegljivi tockami - kot smo definirali v teoreticnem delu,
so to tocke, ki pripadajo gruci. Vidimo, da ima v skupini *Vertices vsaka beseda svojo zapo-
redno številko. Ker med vsemi elementi znotraj gruce obstaja neposredna pot, torej lahko
potujemo med vsemi elementi gruce, moramo povezati vse elemente gruce med seboj. Po-
vezave pa vpišemo v skupino *Arcs, kjer prva številka pomeni zacetno vozlišce, druga pa
koncno. Za ta nacin smo se odlocili zato, ker besede nimajo svojih koordinat, s katerimi bi
narisali graf in na podlagi razdalje med koordinatami dolocili gruco. Besede so prosto razpo-
rejene v ravnini kot tocke, gruca pa je ponazorjena z neposrednimi povezavami med njenimi
elementi. Diagram gruce, tock znotraj gruce in tock izven gruce je prikazan na spodnji sliki
18.
3Brezplacen program, dostopen na spletnem naslovu http://mrvar.fdv.uni-lj.si/pajek/ . Avtor programa je
A. Mrvar.
35
Slika 17: Izpis podatkov o grucah na zaslon.
Slika 18: Diagram prikazuje besede ter z neposrednimi povezavami oznaci tiste, ki sestavljajo
gruco za ε= 0.87 in mi nP t s = 3.
7 Primeri razdalj in gruc za razlicne nabore besed
7.1 Primerjava rezultatov za razlicno definirani razdalji
Okolica ε= 0.79, minPts = 3
Postopke smo opisali že v prejšnjih poglavjih, zato bomo tukaj predstavili le diagrame in ana-
lizirali rezultate. Za okolice ε< 0.79 ne dobimo nobene gruce ne glede na izbrano definicijo
razdalje. Zato bomo zaceli z okolico ε= 0.79.
Kot je razvidno na slikah 19 in 20, se diagrama gruc razlikujeta. Pri uporabi razdalje MIN
opazimo gruco besed matematika, algebra in geometrija, v drugem primeru pa ne. Torej
vidimo, da imajo v prvem primeru te tri besede vec skupnega kot ostale besede. Kot smo
predpostavili, so razdalje na podlagi minimalnega števila pojavitev manjše. Kolicnik preseka
in unije oziroma minimalnega števila pojavitev je na splošno kolicnik ugodnih in vseh mo-
žnosti, kar je verjetnost, da se dve besedi pojavita skupaj. Mi pa smo razdaljo izracunali tako,
da smo kolicnik odšteli od števila 1, torej je razdalja verjetnost, da se dve besedi ne pojavita
skupaj. Ce vzamemo na primer dve isti besedi, kjer je razdalja med besedama d(A, A) = 0,
36
Slika 19: Diagram gruc besed z uporabo razdalje MIN.
Slika 20: Diagram gruc besed z uporabo razdalje PU.
je verjetnost, da se pojavita skupaj 1, saj ce gre za isto besedo, je seveda vsebovana v vseh
ustreznih objavah. Tako je v tem primeru verjetnost, da se besede matematika, algebra in
geometrija paroma ne pojavijo skupaj 0.79, za vse ostale besede pa vecja kot 0.79. Prav tako
je verjetnost da se vsaj tri besede paroma ne pojavijo skupaj vecja tudi za razdaljo PU. Lahko
recemo, da se te besede paroma skupaj pojavljajo v 21% vseh spletnih pojavitev.
37
Slika 21: Diagram gruc besed z uporabo razdalje MIN.
Okolica ε= 0.84, minPts = 3
Pri razdalji PU ponovno ni nobene gruce, zato slike diagrama ne bomo prilagali, saj je iden-
ticna diagramu na sliki 20. Na sliki 21 vidimo, da je tokrat v gruco dodana tudi beseda enacba.
Okolica ε= 0.89, minPts = 3
Slika 22: Diagram gruc besed z uporabo razdalje MIN.
Za vhodni pogoj ε = 0.89 in minPts = 3 je gruca že vecja, saj sta v gruci dodatno še besedi
množenje in seštevanje, kar je vidno na diagramu na sliki 22. Za grucenje z razdaljo PU še
38
vedno ni nobene gruce.
Okolica ε= 0.9, minPts = 3
Slika 23: Diagram gruc besed z uporabo razdalje MIN.
Na sliki 23 je razvidno, da so pri okolici ε = 0.9 v gruci že vse besede, kar pomeni, da se na
spletu te besede paroma skupaj ne pojavljajo v 90% vseh pojavitev oziroma se paroma skupaj
pojavijo le v 10% vseh pojavitev. Za ε> 0.9 bodo torej za razdaljo MIN v gruci vse besede, zato
diagramov ne bomo prilagali. Zanimalo nas bo, kateri je najmanjši ε, da bomo dobili gruco
za grucenje z razdaljo PU.
Okolica ε= 0.98, minPts = 3
Na sliki 24 vidimo, da smo za vrednost ε= 0.98 dobili prvo gruco za razdaljo PU. To pomeni,
da se tri besede paroma pojavljajo skupaj le v 2% vseh pojavitev, a je hkrati v gruci kar 6
besed: matematika, algebra, enacba, geometrija, premica in daljica. Ce diagram primerjamo
z diagramom za razdaljo MIN na sliki 22, vidimo da obe gruci vsebujeta 6 besed, vendar v
gruci niso vsebovane enake besede.
Okolica ε= 0.991, minPts = 3
Da so za razdaljo PU v gruci vse besede, moramo okolico nastaviti na vrednost ε= 0.991, kar
pomeni, da se morajo vsaj tri besede paroma pojavljati v vsaj 0.9% vseh pojavitev, kar je v
primerjavi z uporabo razdalje MIN veliko manj.
39
Slika 24: Diagram gruc besed z uporabo razdalje PU.
Slika 25: Diagram gruc besed z uporabo razdalje PU.
7.2 Ugotovitve
Kot je razvidno iz slik diagramov gruc, se pri enakih vhodnih parametrih rezultati oziroma
gruce mocno razlikujejo glede na izbrano razdaljo. Vidimo, da so razdalje med besedami
pri razdalji MIN manjše, kot pri razdalji PU. Prav tako se razdalje MIN med posameznimi
besedami razlikujejo dovolj, da so s spreminjanjem okolice ε postopoma v gruci vsebovane
vse besede, medtem ko so razlike pri razdalji PU majhne in dobimo le gruco šestih besed in
gruco vseh besed, pri spremembi okolice ε za vrednost 0.011.
40
Ker razdalja med besedami ni splošno definirana, tako kot so definirane evklidska, taksi in
šahovska razdalja, ne moremo trditi, katera definicija bolje opredeli razdaljo med besedami.
Na podlagi diagramov in dejstva, ki smo ga navedli v poglavju 6.3.2, to je velike razlike v šte-
vilu pojavitev posameznih besed, lahko sklepamo, da je razdalja MIN, definirana z enacbo
(9) primernejša za dolocanje razdalje med besedami.
7.3 Primerjava grucenja z razdaljo MIN in z razdaljo urejanja.
7.3.1 Dolocanje razdalje urejanja
Obravnavali bomo šest besed sestavljenih iz desetih crk. S pomocjo spletnega SSKJ smo si
izbrali šest nakljucnih besed: matematika, abstrakten, bancništvo, aritmetika, centimeter in
materialen. Vidimo, da so v izboru besed samostalniki in pridevniki. Razdaljo urejanja med
besedami bomo dolocil tako, kot smo zapisali v poglavju 2.3.7. Med seboj primerjamo dve
besedi hkrati, ter za vsako mesto v besedi preverimo, ali se crki v obeh besedah ujemata. Da
nam ni potrebno preverjati rocno, kar je že za 6 besed zamudno opravilo, bomo razdalje med
besedami dolocili s pomocjo programa 10.
Program 10: Dolocanje urejevalniške razdalje.
1 function [ dist , L]= levenshtein_distance ( str1 , s t r 2 )
2 L1=length ( s t r 1 ) +1;
3 L2=length ( s t r 2 ) +1;
4 L=zeros ( L1 , L2 ) ;
5
6 g=+1;
7 m=+0;% kadar se besedi ujemata v i s t o l e z n i c r k i
8 d=+1;% kadar se besedi ne ujemata v i s t o l e z n i c r k i
9
10 L ( : , 1 ) = ( [ 0 : L1−1]*g ) ’ ;
11 L ( 1 , : ) = [ 0 : L2−1]*g ;
12
13 m4=0;
14 for idx =2:L1 ;
15 for idy =2:L2
16 i f ( s t r 1 ( idx−1)== s t r 2 ( idy−1) )
17 score=m;
18 else
19 score=d ;
20 endif
21 m1=L ( idx−1, idy−1) + score ;
22 m2=L ( idx−1, idy ) + g ;
23 m3=L ( idx , idy−1) + g ;
24 L ( idx , idy ) =min(m1, min(m2,m3) ) ;
25 endfor
26 endfor
41
27
28 d i s t =L ( L1 , L2 ) ;
29 return
30 endfunction
Ko dobimo podatke zapišemo poljubno matriko razdalj s programom 2, ki smo ga opisali že
v poglavju 6.2 na sliki . V spodnji matriki je prikazana poljubna matrika razdalj za razdaljo
urejanja.
DU =
0 9 9 6 8 6
9 0 10 8 8 8
9 10 0 10 8 8
6 8 10 0 9 9
8 8 8 9 0 9
6 8 8 9 9 0
.
Izbrane besede so dolžine desetih crk, zato je minimalna razdalja 0 (dve enaki besedi), ma-
ksimalna pa 10 (besedi, ki se razlikujeta v vseh desetih crkah). Da bomo lažje primerjali obe
grucenji, bomo matriko D delili z 10, da bodo vrednosti med 0 in 1, tako kot pri razdalji MIN.
Ko matriko D delimo z 10 dobimo:
DU =
0 0.9 0.9 0.6 0.8 0.6
0.9 0 1 0.8 0.8 0.8
0.9 1 0 1 0.8 0.8
0.6 0.8 1 0 0.9 0.9
0.8 0.8 0.8 0.9 0 0.9
0.6 0.8 0.8 0.9 0.9 0
.
Ko dolocimo obe matriki razdalj lahko pricnemo z grucenjem.
7.3.2 Primerjava rezultatov grucenja
Okolica ε= 0.6, mi nP t s = 3
V tem primeru, dobimo gruco le pri grucenju z razdaljo urejanja. Dobljeno gruco sestavljajo
besede matematika, aritmetika in materialen, kar je vidno na sliki 26. To je gruca besed z
najvecjo razdaljo urejanja 6 oziroma se te besede razlikujejo v šestih crkah.
Okolica ε= 0.8, mi nP t s = 3
Z izbranima vhodnima parametroma v primeru razdalje MIN še vedno ne dobimo nobene
gruce, pri grucenju z razdaljo urejanja, pa so v gruci že vse besede, kar je razvidno na sliki 27.
42
Slika 26: Diagram gruce z razdaljo urejanja, za vhodna parametra ε= 0.6 in mi nP t s = 3.
Slika 27: Diagram gruce z razdaljo urejanja, za vhodna parametra ε= 0.8 in mi nP t s = 3.
Okolica ε= 0.941, mi nP t s = 3
Ker so bile pri grucenju z razdaljo urejanja v gruci vsebovane vse besede že pri okolici ε= 0.8
ne bomo prilagali nadaljnih diagramov, saj so enaki. Vidimo, da se pojavi gruca v primeru
grucenja z razdaljo MIN. Gruco sestavljajo besede matematika, abstrakten in aritmetika, kar
vidimo na sliki 28. Ce dobljeno gruco primerjamo s prvo gruco grucenja z razdaljo urejanja
ugotovimo, da v obeh primerih gruci vsebujeta tri besede, kar dve besedi pa sta v preseku
obeh gruc. To sta besedi matematika in aritmetika.
43
Slika 28: Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.941 in mi nP t s = 3.
Okolica ε= 0.976, mi nP t s = 3
Pri povecanju okolice ε za vrednost 0.035 se velikost gruce poveca za en element, saj je vse-
bovana še beseda materialen.
Slika 29: Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.976 in mi nP t s = 3.
Okolica ε= 0.998, mi nP t s = 3
Ce želimo, da so v gruci vsebovane vse besede, moramo okolico ε nastaviti na vrednost ε =0.998. Vidimo, da je vrednost okolice ε višja, kot pri grucenju v poglavju 7.1, kar se ujema z
izborom besed, saj gre v tem primeru za besede, ki nimajo sorodnega pomena, razen besedi
matematika in aritmetika.
44
Slika 30: Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.998 in mi nP t s = 3.
7.4 Ugotovitve
Ce pogledamo diagrame gruc za razdaljo urejanja in razdaljo MIN ugotovimo, da se mocno
razlikujejo glede vhodnega parametra ε. Podobnost je opaziti le v elementih najmanjše do-
bljene gruce za obe razdalji. Kot smo omenili, so v obeh primerih v gruco vsebovane tri
besede, od tega kar dve isti. Tukaj gre lahko za slucajno podobnost, da sta razdalji podobni4
v obeh primerih. Razdalja urejanja nam kot že receno pove, v koliko crkah se dve besedi
razlikujeta. Pri krajših besedah, kot sta na primer pes in pet, nam razdalja urejanja ne pove
veliko o sorodnosti teh dveh besed. Ti dve besedi se razlikujeta le v eni crki a zaradi tega
še nimata sorodnega pomena. Posledicno na podlagi razdalje urejanja ne moremo sklepati
na sorodnost pomena dveh besed. Pri daljših besedah, kot sta na primer eksperimentalen
in eksperimentator, pa na podlagi razdalje urejanja lahko z vecjo verjetnostjo trdimo tudi o
sorodnosti besed. Ce se dve daljši besedi razlikujeta v majhnem številu crk, v našem primeru
se besedi razlikujeta v treh crkah, to pomeni, da imata skupnih kar 9 crk. Posledicno imata
izbrani dve besedi skupen koren, ki vpliva na sorodnost besed, saj smo rekli, da v slovenskem
jeziku, na podlagi korena v besedne družine združujemo besede s sorodnim pomenom. Ti
dve besedi imata torej na podlagi korena soroden pomen, torej je tudi verjetnost, da se bosta
ti dve besedi veckrat pojavili skupaj. Obratno pa ne velja. Ce se bosta daljši besedi razlikovali
v vecjem številu crk, bo skupen koren besed krajši oziroma ga sploh ne bosta imeli, a to ne
pomeni, da nista morebiti sorodni. Lahko se zgodi, da se dve besedi razlikujeta v skoraj vseh
crkah, a imata še vedno soroden oziroma enak pomen. Tak primer sta na primer sopomenki
svetovljan in kozmopolit. Besedi dolžine desetih crk, se razlikujeta kar v devetih crkah, zato
nimata skupnega korena, a imata popolnoma enak pomen.
7.5 Grucenje sopomenk
Dosedanji rezultati kažejo, da je za dolocitev razdalje med dvema besedama, ki vkljucuje tudi
sorodnost pomena dveh besed bolj primerna definicija zapisana z enacbo (9), torej razdalja
MIN. Predno izberemo ustreznejšo enacbo razdalje, si bomo pogledali, katera razdalja bo
4S podobnostjo razdalj ne mislimo na podobnost natancnih vrednosti, ampak, da je razdalja med tema
dvema besedama v obeh primerih najmanjša v primerjavi z razdaljami med ostalimi besedami.
45
prepoznala skupino sopomenk. Izbrali si bomo nekaj sopomenk ter druge besede, naš cilj
pa bo, da bodo v gruci le sopomenke. Definicija razdalje, na podlagi katere bodo izracunane
razdalje ustrezale našemu razumevanju sopomenk, to je, da bo algoritem na podlagi razdalj
prepoznal te besede kot sorodne in jih združil v skupno gruco, ustreznejša. Postopek dolo-
canja razdalje in preverjanja z algoritmom DBSCAN smo že podrobno opisali, zato bomo za
rezultate grucenja besed neumnost, maloumnost, nesmisel, nespametnost, zahod, modra, ve-
likost, vesolje in avtobus priložili le diagrama gruc oziroma skupin besed dolocenih z obema
definiranima razdaljama.
Slika 31: Diagram gruce z razdaljo MIN za vhodna parametra ε= 0.93 in mi nP t s = 4.
46
Slika 32: Diagram gruce z razdaljo PU za vhodna parametra ε= 0.99 in mi nP t s = 4.
Diagrama na slikah 31 in 32 prikazujeta prvi dobljeni gruci za obe razdalji. Poiskali smo
najmanjšo okolico ε, da za minimalno število tock mi nP t s = 3 dobimo prvo gruco. Na sliki
31 se vidi, da so v gruci najprej vsebovane samo sopomenke, na sliki 32 pa vidimo, da dve
sopomenki nista v gruci, vse ostale nesorodne besede pa so. Na podlagi diagramov lahko
trdimo, da je primernejša definicija za dolocitev numericne razdalje zapisana z enacbo (9),
to je razdalja kot kolicnik števila pojavitev v preseku in minimalnega števila pojavitev dveh
besed, saj so v gruci najprej vsebovane sorodne besede oziroma sopomenke, kar je bil tudi
naš namen. Kot je razvidno iz rezultatov, smo uspeli zapisati definicijo razdalje med dvema
besedama, s katero lahko sorodnosti pomena pripišemo numericno vrednost, kar je bil tudi
naš glavni namen v tem magistrskem delu. Do sedaj smo preverjali definiciji le v primerih,
kjer smo pricakovali le eno gruco oziroma skupino besed. Preverimo še, ali lahko z našo
definicijo razdalje prepoznamo vsaj dve skupini sorodnih besed in jih na podlagi numericnih
vrednosti smiselno združimo v skupine, kot so združene na podrocju jezika.
7.6 Analiza dveh skupin sorodnih besed
Na podlagi razlicnih preizkusov smo izbrali ustreznejšo definicijo razdalje. Zato tokrat ne
bomo uporabili obeh, temvec le razdaljo MIN in preverili, ali je primerna za uporabo tudi v
primeru, ko pricakujemo vsaj dve skupini sorodnih besed. Definicijo bomo preverili za sku-
pino besed matematika, fizika, naravoslovje, kemija, glagol, samostalnik, pridevnik, zaimek,
frizer in miza. Ko si ogledamo izbrane besede, nam je takoj jasno, da imamo dve skupini
sorodnih besed ter dve besedi, ki nista sorodni z nobeno drugo besedo, to sta frizer in miza.
Naš namen je, da na podlagi izracunanih razdalj ter preverjanjem z grucenjem dobimo dve
skupini besed. V prvi skupini bodo besede, ki predstavljajo posamezna podrocja znanosti
(matematika, fizika, naravoslovje, kemija), v drugi skupini pa bodo besedne vrste (glagol, sa-
47
mostalnik, pridevnik, zaimek). Ce nam uspe dobiti omenjeni dve skupini besed, potem je to
potrditev, da je naša definicija ustrezna tudi za iskanje vec skupin sorodnih besed. Oglejmo
si rezultate, ki smo jih dobili na podlagi razdalje MIN za vhodna parametra mi nP t s = 4 in
ε= 0.89.
Slika 33: Diagram prikazuje dve skupini besed. V prvi skupini so besede oziroma posamezna
podrocja znanosti, v drugi skupini pa so besedne vrste.
Na sliki 33 je razvidno, da smo dobili pricakovane rezultate. Tako kot smo predpostavili na
podlagi pomena besed, smo dobili dve skupini sorodnih besed, besedi frizer in miza pa ni-
sta vkljuceni v nobeni skupini, saj nimata sorodnega pomena z nobeno drugo besedo. S tem
lahko argumentiramo, da je zapisana definicija ustrezna, za dolocanje razdalje med dvema
besedama na podlagi sorodnosti dveh besed.
7.7 Analiza razlicnih oblik besed
Videli smo, da je program na podlagi razdalje, ki smo jo definirali, prepoznal ustrezni dve
skupini sopomenk. Preverimo še, kako se definicija razdalje obnese pri izboru besed razlic-
nih oblik. Uporabili bomo razlicne glagolske oblike in samostalnik, da bomo preverili ali bo
program prepoznal ustrezne glagolske oblike in jih uvrstil v skupino skupaj s samostalnikom.
Uporabili bomo besede sem, bil, grem, šel, vidim, videl, imam in ime. Tokrat bomo uporabili
strožji kriterij, zanima nas število pojavitev, v katerih se besedi pojavita skupaj. V prejšnjih
primerih nas je zanimalo, ali se skozi celotno besedilo pojavita dve besedi vsaj enkrat, tokrat
pa se bosta dve besedi morali pojaviti skupaj kot sosednji besedi. Ker ima slovenšcina pred-
preteklik, bomo dopustili, da se lahko med iskanima besedama pojavi ena beseda. Torej,
dopušcamo možnost, da v primeru besed sem in šel, upoštevamo tudi predpreteklik, kar po-
meni, da bo med ustreznimi zapisi tudi sem bil šel. Ob pogledu na izbor besed pricakujemo,
da bomo dobili eno skupino besed v sestavi: sem, bil, šel in videl, saj so to oblike glagolov,
48
ki jih v slovenskem jeziku lahko uporabimo skupaj s samostalnikom sem. Minimalno število
tock, potrebnih za oblikovanje skupine, bi lahko nastavili na 4 in preverili, ali se bodo te be-
sede prve pojavile skupaj. Ker pa imamo razlicne casovne oblike istega glagola, na primer
grem in šel ter vidim in videl, bomo za kriterij minimalno število tock izbrali 2 besedi in s tem
dopustili možnost, da program prepozna omenjeni skupini.
Okolica ε= 0.79 in minimalno število tock mi nP t s = 2
Prvo skupino besed, ki jo program zazna, sestavljata dve besedi, pri ε = 0.79. Ti dve besedi
sta sem in videl, kar za enkrat ustreza oziroma potrjuje naše predpostavke in je razvidno na
sliki 34.
Slika 34: Prva najdena skupina besed sem in videl.
Okolica ε= 0.84 in minimalno število tock mi nP t s = 2
Naslednja sprememba se zgodi pri ε = 0.84. Poleg besed sem in videl se v skupini pojavi še
veseda šel, kar je razvidno na sliki 35. Vidimo, da so v skupini še vedno le tiste besede, ki smo
jih pricakovali.
Slika 35: Skupina besed sem, videl in šel.
49
Okolica ε= 0.943 in minimalno število tock mi nP t s = 2
Pri spreminjanju okolice se pojavi sprememba pri ε= 0.943, ko se skupini besed pridruži še
beseda bil, kar je razvidno na sliki 36.
Slika 36: Skupina besed sem, bil, šel in videl.
Dobili smo torej pricakovani rezultat, saj so se v skupini najprej pojavile besede sem, bil, šel
in videl. Ce bomo povecevali vrednost ε, bodo v skupini prej ali slej vsebovane vse besede,
kar pa nas v tem primeru ne zanima. Za nas je pomembno to, da program ni prepoznal
nobene druge skupine vsaj dveh besed, poleg tega pa je v skupino vkljucil vse pricakovane
besede. Dobljeni rezultat potrjuje, da je naša definicija razdalje MIN ustrezna.
50
8 Zakljucek
Naš namen je bil ustrezno definirati razdaljo med dvema besedama, s katero lahko dolocimo
oziroma izmerimo numericno razdaljo med dvema besedama oziroma sorodnosti dveh be-
sed pripišemo numericno vrednost. Zapisali smo dve definiciji in jih veckrat prakticno pre-
verili. Za dva razlicna izbora besed smo si ogledali grucenje in posamezne gruce. V prvem
izboru so bile besede s sorodnim pomenom oziroma so imele skupno nadpomenko, to je bila
beseda matematika, v drugem pa so bile nakljucne besede enake dolžine. Ugotovili smo, da
je bila za obstoj gruce v prvem primeru potrebna manjša okolica ε, kot v drugem primeru
nakljucnih besed, prav tako je bila potrebna tudi manjša okolica ε, da so bili v gruci vse-
bovane vse besede. To potrjuje, da smo razdalji med dvema besedama ustrezno definirali,
obenem pa smo uspeli z razlicnimi preverjanji dolociti tudi primernejšo razdaljo. Z uporabo
razdalje MIN smo znotraj množice besed uspeli dolociti dve skupini sorodnih besed in sku-
pino ustreznih casovnih oblik glagola skupaj s samostalnikom. Na podlagi rezultatov lahko
trdimo, da smo uspeli doseci zastavljene cilje. Dopušcamo možnost, da obstaja izbor besed,
za katere bi se izkazalo, da naša definicja ni primerna. Na primer, ce bi v izbor besed vkljucili
še veznike, ne bi dobili znotraj skupine samo sorodne besede, saj se v besedilih vezniki po-
gosto pojavijo ob vseh samostalnikih, ceprav nimajo sorodnega pomena. Zato je potrebno
smiselno izbrati besede, katerim želimo izracunati razdalje.
Vidimo, da nam je uspelo povezati dva na videz nesorodna podrocja. Z vidika matematike in
uporabo matematicnih operacij in zakonitosti smo analizirali besedišce in rezultate primer-
jali z opisi oziroma pravili, ki jih poznamo na podrocju jezikoslovja. Zakljucimo lahko, da
je možno podrocje jezika in njegove elemente analizirati z uporabo matematicnih postop-
kov, ter konkretno v našem primeru, dolociti numericno razdaljo med dvema besedama. V
prihodnje, bi lahko za iskanje uporabili le daljša besedila in s tem dobili bolj realisticne re-
zultate, oziroma bi upoštevali zgolj besedila, ki dve besedi smiselno vkljucujejo skupaj. Na
koncu še omenimo, da je razdalja, kot smo je definirali mi, v slovenskem jeziku bilžje seman-
ticni razdalji, kot v nekaterih drugih jezikih, ki imajo manj razlicnih pomenov za isto besedo
( na primer anglešcina).
51
Literatura
[1] Mucherino, A., Lavor, C., Liberti, L., Maculan, N., 2013. Distance geometry: Theory, Me-
thods, and Applications. Springer.
[2] Guojun Gan, Chaoqun Ma, Jianhong Wu, 2007. Data Clustering: Theory, Algorithms, and
Applications (ASA-SIAM Series on Statistics and Applied Probability), Filadelfija, ZDA.
[3] Magajna, B.,2011. Linearna algebra, metricni prostor in funkcije vec spremenljivk,
DMFA, Slovenija.
[4] Pietrosanu, M., 2016. The analysis of topological structure in data using persistent ho-
mology: applications to lexical word association networks, diplomska delo, University of
Alberta, Canada.
[5] Vrabec, J., 1990. Metricni prostori, DMFA, Slovenija.
[6] Založnik, B., 2013. Grucenje podatkov LiDAR. Diplomsko delo.
[7] Liberti, L., Lavor, C., 2016. Open research areas in distance geometry. 51K99, I.3.5.
Dostopno na: https://arxiv.org/pdf/1610.00652.pdf [10.11.2018].
52