37
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDIN Andrea Danzante AGENTI ZA RUDARENJE WEBA ZAVRŠNI RAD Varaždin, 2017

FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

  • Upload
    others

  • View
    66

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

VARAŽDIN

Andrea Danzante

AGENTI ZA RUDARENJE WEBA

ZAVRŠNI RAD

Varaždin, 2017

Page 2: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

VARAŽDIN

Andrea Danzante

Matični broj: 43350/14-R

Smjer: Informacijski sustavi

AGENTI ZA RUDARENJE WEBA

ZAVRŠNI RAD

Mentor:

Doc. dr. sc. Markus Schatten

Varaždin, veljača 2017.

Page 3: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

Sadržaj

1. Uvod ................................................................................................................................... 1

2. Rudarenje webom .............................................................................................................. 5

2.1. Web structure rudarenje .............................................................................................. 6

2.2. Web usage rudarenje ................................................................................................... 8

2.3. Web content rudarenje .............................................................................................. 12

3. Agentno rudarenje webom ............................................................................................... 14

3.1. Agenti za rudarenje webom....................................................................................... 14

3.2. Alat za rudarenje ....................................................................................................... 14

3.4. Struktura i pohrana podataka..................................................................................... 15

3.5. Izvor podataka ........................................................................................................... 16

3.5.1. Struktura web mjesta.......................................................................................... 17

3.5.2. Struktura stranica ............................................................................................... 17

3.5.3. Prikupljeni podaci .............................................................................................. 19

3.6. Prikupljanje podataka ................................................................................................ 22

3.6.1. Ucitaj CSV (operator tipa Read CSV) ............................................................... 22

3.6.2. Dohvati podatke (potproces tipa Loop Values) ................................................. 22

3.6.2.1. Obradi ulazni link ....................................................................................... 23

3.6.3. Spoji podatke (operator tipa Append) ................................................................ 29

3.6.4. Ocisti podatke (potproces tipa Subprocess) ....................................................... 29

3.6.5. Pohrani u CSV (operator tipa Write CSV) ........................................................ 30

4. Zaključak.......................................................................................................................... 31

Page 4: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

1

1. Uvod

U svakodnevnom govoru sve više ljudi koristi riječi Internet i web kao sinonime bez

poznavanja njihova značenja. Iako su oba pojma jako povezana, oni ne predstavljaju istu stvar

već svaki od njih reprezentira jedan aspekt povezanosti računala i ljudi te razmjene informacija

korištenjem računalne tehnologije.

Internet je računalna mreža koja spaja milijune računala diljem svijeta (Kurose i Ross, 2013).

Sama definicija interneta fokusirana je na tehničku stranu te podrazumijeva računala odnosno

sklopovlje koje omogućava ostvarivanje veze te čini mrežu. Rastom broja računala nastajalo

je sve više manjih mreža koje su potom povezivane u veće mreže, a veće mreže su potom

povezivane u još veće što dovodi do jedne velike mreže u kojoj su svi povezani međusobno,

Interneta (Beal, 2016).

World Wide Web (znan samo kao web) podrazumijeva način pristupa podacima preko samog

medija, to jest Interneta (Beal, 2016). U početku, Internet je koristila vojska te se potom proširio

i na edukacijske ustanove poput sveučilišta. Krajem 80-ih te početkom 90-ih godina prošloga

stoljeća Tim-Berners Lee na temelju saznanja svojih prethodnika razvija HTML programskog

jezika (engl. Hyper Text Markup Language) i HTTP protokola (engl. Hyper Text Transfer

Protocol) koji čine okosnicu stvaranja modernog weba koji poznajemo (Lee, 1989).

Prema navedenim definicijama i objašnjenjima vidimo da je razlika između Interneta i weba u

tome što Internet predstavlja samu mrežu odnosno sklopovlje, a web programsku podršku za

razmjenu podataka preko sklopovlja. Još jedna razlika Interneta i weba je ta da web ne može

biti realiziran bez Interneta, dok Internet bez weba može te se koristi za prijenos podataka u

različitim oblicima i protokolima poput: email-a (engl. Simple Mail Transfer Protocol - SMTP,

engl. Post Office Protovol - POP3, engl. Internet Message Access Protocol- IMAP…),

razmjene podatka (engl. File Transfer Protocol - FTP) te brze razmjene poruka (engl. Instant

messaging) (Beal, 2016).

Počeci nastanka gore opisanog načina razmjene podataka započeo je u ožujku 1989. Tim-

Berners Lee svojim djelom “Information management: A proposal” (Lee, 1989). Web je bio

osmišljen kao usluga koja je omogućavala razmjenu svih vrsta podataka koristeći HTML

Page 5: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

2

potpomognut HTTP protokolom uz korištenje identificiranih veza odnosno URL (engl.

Uniform Resource Locators).

Slika 1. Osnovni primjer HTML jezika

HTML jezik programski je jezik oznaka koji služi za prezentaciju sadržaja u obliku web

stranica. Kao što je prikazano na slici iznad, osnovni pojam jezika su oznake (engl. tag), a

njihova namjena je strukturiranje podataka koji se nalaze unutar otvarajuće (npr. <p>) i

zatvarajuće (npr. </p>) oznake.

Slika 2. Primjer korištenja HTTP protokola (preuzeto s: https://www.tutorialspoint.com/http/http_message_examples.htm)

HTTP protokol koristi se za razmjenu HTML stranica, to jest hipertekstualnih dokumenata

korištenjem Interneta. U samoj komunikaciji sudjeluju korisnik i server te uz pomoć unaprijed

definiranih poruka komuniciraju te razmjenjuju poruke (Kurose i Ross, 2013). Kao što je

prikazano na slici iznad, klijent šalje zahtjev (engl. Client request) za stranicom slanjem

potrebnih informacija te samim zahtjevom koji je prikazan u prvoj liniji. Server odgovara (engl.

Page 6: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

3

Server response) na zahtjev slanjem podataka u HTML obliku te porukom sa statusom je li

pronađena stranica ili je došlo do greške.

Hipertekstualni dokumenti pisani su u gore opisanom jeziku HTML, a mogli su sadržavati

slike, audio i video zapise te tekst što je uvelike pojednostavilo razmjenu podataka. Prijenos se

odvijao preko spomenutog HTTP protokola uz pomoć servera koji je distribuirao sadržaj

korisnicima. Uz sve navedeno Tim-Berners Lee zaslužan je za uvođenje hiperpoveznice (engl.

Hyperlink) ili u to vrijeme poznatije kao hipertekst (engl. Hypertext) (Lee, 1989).

Hiperpoveznice činile su osnovu za novi sustav povezanih informacija (engl. Linked

information system) koji je skalabilan neovisno o količini informacija koju mora prezentirati i

dostaviti, a također bez gubitka informacija što je bio najveći problem u to vrijeme (Lee, 1989).

Od trenutka kad je prihvaćen prijedlog Tim-Berners Leea pa sve do danas, web je u

konstantnom razvoju te raste iz dana u dan. Dosad su zabilježene tri podjele weba kroz

razdoblje koje predstavljaju tri ere weba, a one su (Naik i Shivalingaiah, 2014):

• web 1.0 – sami počeci weba i prva pojava hipertekstualnih dokumenata. Ovu eru

obilježile su web stranice koje su bile samo za čitanje (engl. Read-Only Web).

Interakcija s korisnikom nije bila u prvom planu već su ljudi direktno pristupali serveru

samo radi informacija.

• web 2.0 – era u kojoj se trenutno nalazimo. Karakteristika web 2.0 je interakcija

korisnika s web stranicama, točnije, korisnici čitaju i sami kreiraju sadržaj (engl. Read-

Write). Ljudi su ubrzo uvidjeli prednosti weba te više web nije korišten samo za pristup

i čitanje podacima već su se na njega prebacivala poslovanja, pokrenute su kompanije

te se nove mogućnosti otvaraju svakim danom.

• web 3.0 – era za koju se smatra da će biti ostvarena u bliskoj budućnosti. Kako opisuju

stručnjaci, web 3.0 nova je verzija weba koja se nakon godina prikupljanja podataka

preko interaktivnih sučelja sada usredotočuje na pozadinske procese (engl. Backend

Processes) te na korištenje baza podataka i prikupljenih informacija. Ova era donijet će

nova saznanja i nove informacije koje će biti dostupne svima i omogućene pomoću

umjetne inteligencije.

Svaka era razvoja weba donosi svoje prednosti i uzbuđenja, ali kao glavni aspekt weba u ovom

radu proučavat će se web 2.0 prvenstveno zbog toga što je trenutno aktivan te je, kao što kažu

Schatten, Ševa, and Okreša Đurić (2015), postao najveći i najdostupniji repozitorij u povijesti

o ljudskom ponašanju. Razvitkom weba nastale su društvene mreže i razna web mjesta za

Page 7: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

4

razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih

društvenih mreža o kojima se bilježi velika količina podataka.

U uvodu su pojašnjene osnovne razlike Interneta i weba, što točno predstavlja web te koji

aspekti weba su detaljnije proučeni u radu. Nastavak sadrži detaljniji opis rudarenja webom

(engl. Web mining) te objašnjava kako se rudarenje provodi u praksi koristeći agente.

Page 8: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

5

2. Rudarenje webom

Opis rudarenja webom ponuđen je na stranicama Technopedia, a preuzeo sam ga zato što u

jednoj rečenici navodi osnove web rudarenja. Citat je preuzet s stranice

https://www.techopedia.com/definition/15634/web-mining , a glasi:

„Web mining is the process of using data mining techniques and algorithms to extract

information directly from the Web by extracting it from Web documents and services, Web

content, hyperlinks and server logs“.

Kao što definicija na engleskom kaže, rudarenje webom proces je u kojemu se pomoću raznih

tehnika i algoritama direktno pristupa informacijama na webu. Riječ proces tu se nalazi zato

što postoji više aktivnosti/operacija koji se izvod od trenutka početka pretrage pa do dobivanja

traženih informacija odnosno koje naše računalo i ostala računala u mreži izvedu. Informacije

koje smo zatražili dobivamo tako što računalo pronalazi web stranice koje su srodne našem

upitu ili zadovoljavaju upit te potom preuzima web dokumente, web sadržaj, a po potrebi

pristupa hiperpoveznicama (Kurose i Ross, 2013). Iako web rudarenje na prvu izgleda kao

pretraživanje teksta unutar stranice, to nije tako. Prilikom rudarenja u obzir se moraju uzeti i

hiperpoveznice koje nisu običan tekst, već veza na novu stranicu. Primjenom hiperpoveznica

razbijena je linearnost čitanja stranice te preko jedne stranice možemo dospjeti na drugu, treću

i tako dalje, što algoritmi za web rudarenje moraju savladati i vratiti nama korisne informacije.

Upravo zbog nedostatka linearnosti postoje četiri zadatka koja se izvode i dovode do podataka

(Costa, M.G. i Gong, 2005)(Dinuca, 2010):

1. Pronalazak resursa (engl. Resource finding) – prikupljanje izvora podataka u obliku

web dokumenata direktno s weba ili lokalnim preuzimanjem.

2. Pred-procesiranje i odabir informacija (engl. Information selection and pre-

processing) – podrazumijeva proučavanje strukture web dokumenata te pronalazak

podataka koje želimo dohvatiti sa stranice.

3. Generalizacija (engl. Generalization) – na temelju jedne stranice određen je položaj

podataka na web dokumentu te na temelju tih informacija možemo sa svih web

dokumenata istog ili sličnog formata dohvatiti podatke.

4. Analiza (engl. Analysis) – na temelju prikupljenih podataka uz prisustvo čovjeka

dobivaju se informacije te stvaraju uzorci.

Page 9: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

6

„The goal of Web mining is to look for patterns in Web data by collecting and analyzing

information in order to gain insight into trends, the industry and users in general.“

Navedeni citat također je preuzet sa stranice Technopedia, a zajedno s prvim nalazi se na linku:

https://www.techopedia.com/definition/15634/web-mining. Samim rastom Interneta povećava

se broj korisnika koji zahtijevaju informacije, ali ujedno i donose nove u interakciji s web

mjestima i ostalim korisnicima. Upravo je zbog prethodno navedenog problema čitanja

hipertekstualne datoteke (korištenje hiperpoveznica) teže pratiti tijek čitanja korisnika, ali taj

problem riješen je pomoću kreiranja i pronalaženja uzoraka u web podacima (Costa, M.G. i

Gong, 2005). Analizirajući i prikupljajući podatke o korisnikovim kretanjima po web stranici

dobivamo uvid u trendove korisnika, a taj uvid moguć je praćenjem sadržaja stranica te

bilježenjem posjećenih (Costa, M.G. i Gong, 2005)(Cooley, Mobasher i Srivastava,

1997)(Srivastava i ostali, 2016).

Definicija web rudarenja uključuje podjelu na tri kategorije od kojih jedna prati strukturu

između web stranica što čini strukturalno rudarenje (engl. Structure mining), druga kategorija

na temelju uvida u trendove i zanimanja korisnika prikuplja podatke o korištenju te čini srž

rudanja podataka korištenja (engl. Usage mining), a oblik rudarenja fokusiran je na sadržaj web

stranice što opisuje rudarenje sadržaja (engl. Content mining) (Technopedia, 2017). U nastavku

ovog poglavlja detaljnije su opisane sve kategorije web rudarenja.

2.1. Web structure rudarenje

Rudarenje strukturom weba ili web structure rudarenje fokusirano je na proučavanje veza

između web mjesta, web stranica, hiperpoveznica i web stranica ili web mjesta na drugoj strani

tih veza. Cilj ovog rudarenja je kreirati nove veze na temelju sadržaja i trenutnih poveznica

čineći mapu mjesta (engl. Site map) koja prezentira veze između web stranica te ubrzava

pronalazak informacija (Dinuca, 2010).

Analiziranje strukture weba i povećanje količine podataka za pretraživanje dovelo je do novog

područja pretraživanja rudarenja vezama (engl. Link mining) koje se usko povezuje s web

structure rudarenjem, te je čak postalo i sinonim za njega zbog istog načina djelovanja - oba

proučavaju strukturu i način povezivanja web stanica i web mjesta (Getoor, 2003). Rudarenje

vezama nadograđuje samo web structure rudarenje i prilagođava ga većim količinama podataka

uvođenjem sve više hiperpoveznica koje su različitih struktura i formi. Ovaj tip rudarenja ima

sljedeće zadaće koje obavlja kako bi omogućio efikasno i brzo pretraživanje i organiziranje

web stranica i web mjesta (Getoor, 2003):

Page 10: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

7

1) Klasifikacija bazirana na vezama (engl. LinkBased Classification) – glavna točka ove

klasifikacije je predviđanje kategorije web stranica na temelju riječi, sadržaja,

postojećih veza te HTML oznaka (Costa, M.G. i Gong, 2005). Primjer koji najbolje

opisuje klasifikaciju temeljenu na vezama je klasifikacija web stranica (engl. web-page

classification) (Getoor, 2003) čija je namjena povezati stranice koje sadrže ključne

riječi, sadržaje, citate ili ostale oznake koje su na svim web stranicama. Web structure

rudarenje ovaj je korak izvodilo tako da je prema atributima određivalo kojoj kategoriji

(klasifikaciji) web stranica ili web mjesto pripada te se na temelju toga povezivala u

strukturu. Rudarenje vezama unaprijedilo je proces tako da se više ne gleda samo atribut

već se uz njega pregledavaju hiperpoveznice te web stranice na krajevima tih

hiperpoveznica kako bi se upotpunila slika o web mjestu i dodijelila u pravu strukturu

na pravo mjesto (Getoor, 2003).

2) Analiza klastera bazirana na vezama (engl. LinkBased Cluster Analysis) – temelj

ove analize je klaster, odnosno pronalazak podklasa web stranica sa zajedničkim

sadržajem (Costa, M.G. i Gong, 2005)(Getoor, 2003). Za razliku od prije spomenute

Klasifikacije bazirane na vezama u kojoj su u obzir uzimane postojeće veze, atributi i

ključne riječi, u Analizi klastera baziranoj na vezama u obzir ulazi samo sadržaj web

stranice čime algoritmi nisu ograničeni velikom količinom parametara te je lakše otkriti

nove uzorke i veze između stranica (Getoor, 2003). Analiza radi na principu pronalaska

hubs-a (stranica koje su povezane na najviše stranica) te se prema njihovom sadržaju

kreiraju klasteri i istražuju moguće veze među sadržajima koje nude pronađene stranice

(Getoor, 2003).

3) Identifikacija tipa veze (engl. Identifying Link Type) – kao što postoje odnosi (veze)

među ljudima tako postoje i među stranicama te nas prilikom pronalaska informacija

zanima koja je veza bolja i koja vodi do „boljih“ informacija (Getoor, 2003).

Identifikacijom tipa veza možemo omogućiti lakše kretanje kroz strukturu zato što veze

možemo označiti kao veze za navigaciju, veze za reklamiranja itd. čime ćemo uštedjeti

vrijeme pretrage jer iz strukture možemo isključiti, na primjer, sve veze na reklame

(Getoor, 2003).

4) Predviđanje čvrstoće veze (engl. Predicting Link Strength) – čvrstoća veze pojam je

koji određuje „važnost“ stranice u strukturi. Svaka veza može imati zadanu jačinu

odnosno težinu, a ona može biti određena raznim algoritmima (npr. PageRank), brojem

stranica koje su vezane za promatranu stranicu ili brojem izlaznih veza promatrane web

stranice (Getoor, 2003).

Page 11: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

8

5) Broj veza (engl. Link Cardinality) –brojem veza web stranice možemo odrediti koji je

položaj stranice u strukturi. Stranice s većim brojem veza prema van čine prije

spomenute hubs stranice koje imaju veću važnost naspram ostalih stranica. Broj veza

prema promatranoj web stranici ukazuje da je web stranica autoritativna, to jest da

sigurno sadrži potvrđene podatke i informacije (Getoor, 2003).

6) Povezivanje zapisa (engl. Record Linkage) – neke veze i zapisi koji su povezani

nemaju jedinstveni identifikator što može dovesti do problema pri dohvaćanju podataka

(Getoor, 2003). Problem nastaje kada su dva slična web objekta povezana na isti objekt

na nekoj web stranici. Kako se to ne bi događalo, pri kreiranju veza ne možemo

povezivati objekte i stranice samo na temelju atributa već moramo razmotriti i ostale

veze na tom objektu kako bismo uspješno odredili strukturu (Getoor, 2003).

Prema svemu dosad napisanom u ovom poglavlju možemo uočiti da je web structure rudarenje

veoma važno prilikom dohvaćanja podataka. Struktura među stranicama čini temelj web

mjesta, ubrzava pretraživanje pretraživačima, olakšava kretanje korisnicima što je velika

prednost za vlasnike web mjesta, pogotovo ako su to poslovanja bazirana na webu. Uz sve veći

broj informacija, korisniku je važno brzo i jednostavno dostaviti podatke koji su mu potrebni,

a dobra struktura upravo to omogućava.

2.2. Web usage rudarenje

Web usage rudarenje vrsta je rudarenja webom koja na web serveru dohvaća podatke o

korisnikovim pristupanjima web stranicama (Cooley, Mobasher i Srivastava, 1997) te je stoga

Rudarenje podacima korištenja weba prijevod koji najbolje opisuje ovu vrstu rudarenja.

Rudarenje podacima korištenja weba primjena je tehnika rudarenja za otkrivanje uzorka

korištenja i pristupanja web stranicama u svrhu poboljšanja web mjesta i rada web aplikacija

(Srivastava i ostali, 2016).

Temelj ovog rudarenja čine podaci o korisnicima, to jest o njihovim pristupima svim podacima

i web stranicama unutar web mjesta ili onima koje se nalaze na određenom serveru. Podaci

korištenja weba, odnosno web mjesta, pohranjuju se na serveru u: dnevnik pristupa (engl.

access log) i dnevnik preporuke (engl. Referrer logs) (Cooley, Mobasher i Srivastava, 1997),

a uz sve navedene izvore informacija postoji još jedan jednako važan - korisnička sesija (engl.

user session) (Srivastava i ostali, 2016). Prethodno navedeni izvori podataka nalaze se na

Page 12: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

9

serverskoj strani i spadaju pod podatke prikupljene na serveru (engl. Server Level Collection),

a uz to postoje još i podaci prikupljeni na korisničkoj strani (engl. Client Level Collection) koji

podrazumijevaju prikupljanje podataka pomoću JavaScript i Java apleta koji uz pomoć

pretraživača prikupljaju podatke (Srivastava i ostali, 2016). Treći način prikupljanja podataka

je prikupljanje podataka na proxy poslužitelju (engl. Proxy Level Collection ) što je slično

prikupljanju podataka na serveru jer je proxy poslužitelj server između web servera sa web

stranicom i klijenta (Srivastava i ostali, 2016).

Web usage rudarenje, odnosno samo prikupljanje informacija za analizu korištenja stranica,

dobiva se provođenjem tri koraka koja navode J. Srivastava, R. Cooley, M. Deshpande, P. Tan

u svom djelu Web Usage Mining: Discovery and Applications of Usage Patterns from Web

(Srivastava i ostali, 2016):

1. Predprocesiranje (engl. Preprocessing)

a. Procesiranje korištenja (engl. usage processing) je najkompliciranije

procesiranje korišteno pri web usage rudarenju zato što ukoliko ne postoje zapisi o

aktivnostima korisnika na stranici, procesiranje se vrši preko IP adresa. Prilikom

dohvaćanja podataka o korištenju pomoću IP adresa, klijenta (pretraživača) te

servera koji prati korisnika, javljaju se sljedeći problemi (Srivastava i ostali, 2016):

i. Jedna IP adresa/Više sesija prema serveru (engl. Single IP

Address/Multiple Server Sessions) – sam web sastoji se od više ISP-a

(engl. Internet Service Provider) koji imaju proxy poslužitelje preko

kojih korisnik može pristupiti webu. Zbog velikog broja proxy servera

korisnik može tokom vremena pristupati različitim proxy serverima što

podrazumijeva da jedan korisnik ima više serverskih sesija što dovodi

do problema prilikom identificiranja korisnika.

ii. Više IP adresa/Više sesija prema serveru (engl. Multiple IP

Address/Multiple Server Session) – neki poslužitelji mogu svakom

zahtjevu korisnika pridodati nasumičnu IP adresu, samim time isto

računalo pristupa istoj stranici, ali preko različitih IP adresa što opet

dovodi do problema praćenja aktivnosti (korištenja).

iii. Više IP adresa/Jedan korisnik (engl. Multiple IP Address/Single User)

– isti korisnik može pristupiti stranici s različitih računala, a s obzirom

na to da svako računalo ima svoju IP adresu opet dolazi do problema pri

praćenju korisnika.

Page 13: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

10

iv. Više agenta/Jedan korisnik (engl. Multiple Agents/Single User) – ako

jedan korisnik s istog računala pristupa istoj stranici, ali preko različitih

pretraživača, on također ima različite IP adrese što nije pogodno za

praćenje korištenja stranice.

b. Procesiranje sadržaja (engl. content processing) vrsta je procesiranja u kojem se

svi tekstovi, slike, skripte i forme prebacuju u oblik pogodan web usage rudarenju

(Srivastava i ostali, 2016). Prebacivanje ili, bolje rečeno, formiranje oblika

pogodnog za pretraživanje uključuje grupiranje sadržaja web stranica, točnije

klasifikaciju i klasteriranje. Klasifikacija i klasteriranje opisani su kasnije kod

otkrivanja uzorka (engl. Patern discovery), a za trenutno razumijevanje sadržaja

dovoljno je znati da i klasifikacija i klasteriranje imaju isti cilj, a to je grupiranje

srodnog, sličnog ili istog sadržaja . Content procesiranje značajno je pri web usage

rudarenju kako bi se moglo istraživati kojim sadržajima, to jest vrstama sadržaja

korisnik pristupa i prema tome stvaramo zapise u bazi podataka na serveru

(Srivastava i ostali, 2016).

c. Procesiranje strukture (engl. structure processing) ostvaruje se nakon što su

pomoću procesiranja korištenja i procesiranja sadržaja stranice dobivene

informacije. Web stranice već su povezane hiperlinkovima (hypertext-ovi) što

olakšava samo procesiranje jer postoji struktura koja se može istraživati, no

problem predstavljaju web stranice na drugoj strani veze koje mogu imati drugačiju

strukturu i zahtijevati drugačiju sesiju (Srivastava i ostali, 2016).

2. Otkrivanje Uzorka (engl. Pattern Discovery ) (Srivastava i ostali, 2016):

a. Statistička Analiza (engl. Statistical Analysis) – podaci iz sesije koriste se za razne

deskriptivne analize te podataka poput broja posjeta, duljine trajanja, duljine puta

i raznih drugih brojčanih podataka mogu se izračunati podaci poput prosjeka

posjeta, prosječno trajanje posjete stranici itd..

b. Pravila povezivanja (engl. Association Rules) – opisuju vezu između stranica koje

su najčešće posjećene jedna za drugom u jednoj serverskoj sesiji, ali ne moraju biti

povezane hiperpoveznicama. Upravo proučavanje ovakvih veza može dovesti do

stvaranja novih hiperpoveznica i izmjene u strukturi web mjesta.

c. Klasteriranje (engl. Clustering) – iako je spomenuto u više navrata u prethodnom

dijelu rada sada će biti razjašnjeno. Klaster čini grupa web stranica ili web objekata

koji su povezani sadržajem u jednu grupu (Johnson i Kumar Gupta, 2012). Prilikom

Page 14: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

11

klasteriranja postoje dvije vrste klastera, ovisno o sadržaju koji je promatran

(Srivastava i ostali, 2016):

i. Klasteri prema korištenju (engl. usage cluster) čine grupu web

stranica ili objekata koji su srodni po podacima o korištenju. Uzorci koji

se često pojavljuju i povezuju nekoliko stranica mogu biti grupirani u

klaster.

ii. Klasteri prema stranicama (engl. page cluster) su klasični klasteri koji

podrazumijevaju grupiranje web stranica prema srodnom sadržaju.

d. Klasifikacija (engl. Classification) – način povezivanja sličan klasteriranju, ali u

ovom slučaju podaci se mapiraju u klase (engl. class) srodnog sadržaja (Srivastava

i ostali, 2016). Na temelju sadržaja web stranice grupirane su u navedene klase, a

svaka klasa sadrži opis kreiran iz sažetaka i ključnih riječi stranice koji opisuje sve

web stranice unutar nje.

e. Sekvencijalni uzorci (engl. Sequential Patterns) – sekvenca podrazumijeva

sortirani skup podataka (Masseglia, Teisseire i Poncelet, 2005). Na temelju

podataka dobivenih praćenjem korisnika stvara se sekvencijalni uzorak o

korisniku, a on može sadržavati kupljene predmete ukoliko se radi o web kupnji ili

posjećene web stranice (Masseglia, Teisseire i Poncelet, 2005).

f. Modeliranje ovisnosti (engl. Dependency Modeling) – podrazumijeva kreiranje

modela koji reprezentira kretanje korisnika kroz web mjesto. Prikupljanjem

podataka o korištenju kreiraju se modeli koji se potom usavršavaju i predstavljaju

jedan uzorak korištenja.

3. Analiziranje Uzorka (engl. Pattern Analysis) – nakon što su uzorci uspostavljeni, oni

se proučavaju pomoću alata za vizualizaciju i analizu te također korištenjem zapisnika

korisnika i aktivnosti kako bi se provela potpuna analiza za daljnji rad i proučavanje

(Cooley, Mobasher i Srivastava, 1997). U ovom koraku eliminiraju se nepotrebni uzorci

te samom analizom omogućujemo daljnji radi u kojem structure rudarenje može

pristupiti već analiziranim i spremnim uzorcima i spojiti ih u strukture (Srivastava i

ostali, 2016).

Prikupljanje podataka o korisniku donosi velike količine podataka iz kojih vlasnici web mjesta

mogu dobiti uvid u korištenje i pristupanje web stranicama te interese korisnika. Vlasnici web

mjesta prikupljaju podatke o korištenju radi poboljšanja samog web mjesta u pogledu sadržaja

i stranicama koje su najpopularnije, to jest imaju najviše posjeta ili se korisnici najdulje

Page 15: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

12

zadržavaju na njoj, ali do problema dolazi u pogledu privatnosti na webu (Cooley, Mobasher i

Srivastava, 1997). Problem privatnosti na webu (engl. Privacy Isseus) osjetljiva je tema iz

razloga što nisu jasno definirana i regulirana pravila koja kontroliraju praćenje korisnika

prilikom pristupanja web mjestu ili web stranici što je dovelo do inicijative World Wide Web

Consortiuma (W3C) za kreiranjem protokola imena Platform For Privacy Preferences koji će

očuvati privatnost korisnika, a vlasnicima omogućiti praćenje korisnika (Cooley, Mobasher i

Srivastava, 1997).

2.3. Web content rudarenje

Web content rudarenje ili rudarenje sadržaja weba proces je pretraživanja weba preko sadržaja

web dokumenata i web stranica (Johnson i Kumar Gupta, 2012). Ovaj oblik rudarenja dobavlja

podatke sa web dokumenata i web stranica, ali problem je u tome što postoji velika količina

podataka koje je potrebno procesuirati, a većina informacija je polustrukturirana jer je

prilagođena krajnjim korisnicima (ljudima), a ne pretraživačima i računalima općenito (Liu i

Chang, 2004). U svrhu pristupanja polustrukturiranim podacima kreirani su razni alati, točnije

agenti koji, ovisno o postavkama i opsegu, mogu rudariti danim web stranicama i web mjestima

(Cooley, Mobasher i Srivastava, 1997).

Rudarenje sadržaja weba također kao i prethodno spomenute vrste rudarenja ima svoju podjelu

koja sadrži dva pristupa ovisno o vrsti i izvoru podataka (Johnson i Kumar Gupta,

2012)(Cooley, Mobasher i Srivastava, 1997):

1) Pristup orijentiran na agenta (engl. Agent Based Approach)

i. Pametni pretraživač (engl. Intelligente Search Agent) – pojedini web agenti

(pretraživači) razvijeni su tako da koriste karakteristike same domene (web

stranice) i korisnikov profil kako bi interpretirali, organizirali i prilagodili

pronađene podatke korisniku (Cooley, Mobasher i Srivastava, 1997)(Johnson i

Kumar Gupta, 2012).

ii. Filtriranje/Kategoriziranje Informacija (engl. Information Filtering/

Categorization) – vrsta agenata koji na temelju definiranih instrukcija

pretražuju i dohvaćaju podatke (Johnson i Kumar Gupta, 2012). Neki agenti

ovog tipa rade na principu dohvaćanja podataka preko linkova i klastera koji

Page 16: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

13

nude ključne riječi prema kojima se potom nastavlja dalje rudarenje i

prikupljanje podataka (Cooley, Mobasher i Srivastava, 1997).

iii. Personalizirani Web Agenti (engl. Personalized Web Agents) – web

pretraživači (agenti) prate sklonosti i interese korisnika te na temelju njih

svakim sljedećim pretraživanjem weba rezultati će biti sve točniji i

personalizirani samom korisniku (Johnson i Kumar Gupta, 2012)(Cooley,

Mobasher i Srivastava, 1997).

2) Pristup Bazi Podataka (engl. Database Approach)

i. Višerazinska Baza Podataka (engl. Multilevel Database) – ideja ovakve baze

podataka je da se sastoji od više razina kod kojih su na najnižoj razini spremljeni

polustrukturirani podaci u raznim web repozitorijima poput hiperpoveznica,

dok se na višim razinama nalaze meta podaci koji su organizirani u relacije ili

objektno orijentirane baze podataka te samim time generaliziraju podatke

spremljene u nižim slojevima (Cooley, Mobasher i Srivastava, 1997).

ii. Sistem Web Upita (engl. Web Query System) – većina web upita koristi upite

već općeprihvaćenih upitnih jezika poput npr. SQL-a te ih proširuju

strukturalnim informacijama web stranica, procesiranjem govornog jezika koji

se koristi kod pretraživanja weba (Cooley, Mobasher i Srivastava, 1997).

Page 17: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

14

3. Agentno rudarenje webom

U ovom poglavlju cijeli teorijski dio prezentiran kroz rad provodi se u praksu. Kroz nekoliko

potpoglavlja objašnjeno je što je agent, koji alati su potrebni za rad te kako se koriste, zatim

što je početni izvor podataka i kako dolazimo do detaljnijih podataka za obradu te na kraju

prezentacija podataka i informacija. Svi koraci procesa dohvaćanja, obrade i rudarenja

relevantnih podataka izvedeni su u alatu Rapid Miner i objašnjeni i nadopunjeni slikama.

3.1. Agenti za rudarenje webom

Autori Inamdar i Shinde (2008) u svom djelu „An Agent Based Intelligent Search Engine

System For Web Mining“ navode da se agenti koriste za provođenje operacija i aktivnosti u

ime korisnika računalnog sustava. Navedeni opis funkcionalnosti agenta povezan s web

rudarenjem možemo reći da agent u ime korisnika pretražuje odnosno rudari za traženim

podacima u ime korisnika računala. Izuzev toga što je funkcionalnost agenta, sama definicija

agenata kaže da su to programi, aplikacije ili alati koji na temelju ulaznih parametara pretražuju

web te dohvaćaju tražene podatke (Cooley, Mobasher i Srivastava, 1997). Prema autorima

Cooley, Mobasher and Srivastava (1997) postoje tri vrste agenata koje su podjeljene na temelju

izlaznih podataka i razini autonomnosti opisane su u potpoglavlju o web content rudarenju.

3.2. Alat za rudarenje

Alat korišten u ovom završnom radu je Rapid Miner Studio. Rapid Miner Studio je visoko

funkcionalni alat sposoban za prikupljanje, obradu i prezentaciju, ne samo jednostavnih, već i

složenih statističkih i prediktivnih modela (RapidMiner, 2017). Iako ovaj alat nudi veliki broj

mogućnosti za pisanje završnog rada dovoljne će biti i jednostavne mogućnosti dohvaćanja

podataka preko URL linkova te obrada, čišćenje i organizacija relevantnih podataka za daljnji

rad. Na tržištu alata za web crawling i web mining postoje velike mogućnosti koje su rame uz

rame s Rapid Minerom, ali za pisanje završnog rada ovaj alat je više nego dovoljan te je

jednostavan za korištenje ukoliko se korisnik prvi put susreće s njme. Pri odabiru ovog alata

ponajviše su utjecali mentor koji je preporučio alat, te pozitivne recenzije vanjskih korisnika

koje su dale vrlo objektivna i opširna mišljenja o alatu. Prema korisnicima stranice G2 Crowd

alat je opisan kao dovoljno jednostavan za početnike, ali dovoljno opširan i složen za srednja i

veća poslovanja (G2 Crowd, 2017).

Page 18: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

15

3.3. Potrebna znanja (jezici izraza)

Za potrebe razumijevanja odvijanja operatora i potprocesa u RapidMineru potrebno je

poznavati dva formalna jezika: XML jezik putanja (engl. XML Path Language ili XPath) te

Regularne izraze (engl. Regular Expression ili RegEx).

XPath jezik je izraza čija je glavna namjena adresiranje čvorova (engl. node) unutar XML 1.0

ili XML 1.1 dokumenata (Robie i ostali, 2014). Ovaj jezik funkcionira na principu hijerarhije

koju pruža XML svojim standardima i normama za pisanje, a samim time primjenjiv je i na

HTML dokumentima. HTML dokumenti u principu su isti kao i XML osim što XML ima

stroža pravila vezana uz zatvarajuće oznake te dopušta kreiranje vlastitih oznaka. XML je

kreiran u svrhu prijenosa informacija, dok je HTML jezik za prikaz istih (XML Objective,

2013), ali prilikom rudarenja agenti ne vide razliku već samo pristupaju podacima na kraju

putanja zadanih XPath-om.

RegEx jezik je uzoraka čija je namjena provjera i izdvajanje alfanumeričkih znakova.

Regularni izrazi rade na principu jednog izraza, to jest uzorka koji određeni znakovi ili skup

znakova moraju zadovoljiti. Ovisno o namjeni i samom uzorku, određenim uzorkom možemo

također izdvojiti sve znakove koji zadovoljavaju dani izraz iz ostatka znakova ili većeg teksta

(Goyvaerts, 2017).

3.4. Struktura i pohrana podataka

Zbog velikog broja primjene i propisanih standarda pisanja u ovom radu, svi ulazni i izlazni

podaci procesa Rapid Miner Studia nalaze se u CSV datotekama. CSV (engl. Comma-

Separated Values) tekstualna je datoteka za pohranu tabličnih podataka u zadanom formatu.

Datoteke ovog formata karakterizira nekolicina jednostavnih pravila koja nisu strogo

propisana, ali većina autora prati sljedeće smjernice implementacije CSV datoteke

(Shafranovich, 2005):

• Svaki red podataka koji završava oznakom za novi red (CRLF –engl. Carrige Return

Line Feed) smatra se jednom cjelinom podataka o danom entitetu

• Red koji nema oznaku za novi red smatra se zadnjim redom s podacima

• Datoteka može i ne mora uključivati naslovni red koji tumači strukturu CSV datoteke

• U svakom redu vrijednosti mogu biti odvojene zarezom (engl. Comma) ili točka

zarezom (engl. Semicolon).

Page 19: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

16

Dvije CSV datoteke korištene u ovom radu su ulazna, koja sadrži početne linkove te izlazna s

finalnim rezultatima. Ulazna CSV datoteka „Linkovi.csv“ sadrži 12 početnih linkova na

temelju kojih su dohvaćeni ostali podaci, dok izlazna datoteka „Rezultati.csv“ sadrži rezultate

svih procesa Rapid Miner Studia. Na slici 3. i 4. prikazane su strukture svi ili dio podataka iz

obje CSV datoteke.

Slika 3. Linkovi.csv datoteka

Slika 4. Rezultati.csv datoteka

3.5. Izvor podataka

Web mjesto koje je korišteno u ovom završnom radu kao izvor podataka je stranica Stack

Overflow . Stack Overflow je web mjesto tipa pitanje-odgovor (engl. question and answer site),

a primarni cilj je spojiti korisnike koji traže odgovore s korisnicima koji mogu ponuditi

odgovor na dano pitanje. Struktura ovog web mjesta sastoji se od tri razine koje su prikazane

na grafu 1 te s kojih su prikupljeni podaci.

Page 20: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

17

3.5.1. Struktura web mjesta

Prva razina web mjesta Stack Overflow je stranica s oznakama (engl. tag) dostupna na linku:

https://stackoverflow.com/tags . Svaka oznaka sadrži pitanja za dano područje, a klikom na

samu oznaku otvara se druga razina dostupna na linkovima koji sadrže ključne riječi

…/questions/tagged/… ?sort=frequent kao na primjer link za pitanja na temu javascript:

https://stackoverflow.com/questions/tagged/javascript?sort=frequent . Pristupom stranici

izlistana su sva često postavljena pitanja koja sadrže danu oznaku sortirana po broju glasova.

Klikom na jedno od pitanja iz ponuđene kategorije otvara se stranica koja sadrži ključne riječi

… /questions/id_pitanja/naslov_pitanja, od kojih prva predstavlja pitanja, druga ključna riječ

je ID pitanja te na kraju je naslov samog pitanja. Primjer linka za pristup zadnjoj razini strukture

izgleda poput sljedećeg: https://stackoverflow.com/questions/111102/how-do-javascript-

closures-work .

3.5.2. Struktura stranica

Podaci s prve razine strukture web mjesta Stack Overflow dostavljeni su direktno u Rapid

Miner Studio preko ulazne CSV datoteke „Linkovi.csv“. Ulazna datoteka sadrži 12 linkova

(URL poveznica) preko kojih su dohvaćeni daljnji podaci za rad, a svaki red predstavlja novi

zapis, to jest jedan link. Na slici ispod prikazan je izgled stranice s oznakama s koje je

nasumično odabrano navedenih 12 linkova.

3. razina

2. razina

1. razina

Oznaga(tag)

Pitanje (question)

Odgovor (Answer)

Odgovor (Answer)

Pitanje (question)

Odgovor (Answer)

Odgovor (Answer)

Slika 5. Hijerarhija stranice Stackoverflow

Page 21: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

18

Slika 6. Stranica s oznakama (tagovima)

Druga razina web mjesta predstavlja stranice s pitanjima, a za prikupljanje podataka potrebna

je stranica poput: https://stackoverflow.com/questions/tagged/javascript?sort=frequent koja

sadrži sva pitanja vezana uz danu oznaku, a izgled same stranice prikazan je na slici ispod.

Slika 7. Stranica s pitanjima

Zadnja i najvažnija razina s koje dolaze skoro svi podaci za rad je stranica s pitanjem i

odgovorima. Na slici ispod prikazana je jedna od stranica s pitanjem, a pristup takvim

stranicama moguć je preko linka koji sadrži ključnu riječ …/questions/ te potom ID stranice s

pitanjem i naslov pitanja. Primjer jedne takve stranice je sljedeći:

Page 22: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

19

https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-

asynchronous-call, a izgled same stranice prikazan je na slici ispod.

Slika 8. Stranica s pitanjem i odgovorima

Klikom na desnu tipku miša i pregledom elemenata na stranici možemo odrediti koji su

elementi važni te s kojih dohvaćamo podatke. Pomnijim proučavanjem određeni su elementi

koji će se zapisivati i koristiti u daljnjoj obradi.

3.5.3. Prikupljeni podaci

Na svakoj od 12 stranica iz ulazne CSV datoteke prikupljat će se sljedeći atributi neovisno o

tome radi li se o pitanju ili odgovorima na pitanje:

• Poveznica (URL engl. Uniform Resource Locator) – link ili poveznica pomoću koje

možemo pristupiti jedinstveno identificiranom podatku (u ovom slučaju pitanju ili

odgovoru na pitanje). Ova vrijednost prikuplja se automatski pomoću potprocesa

Process Documents From Web.

• ID pitanja - jedinstveni identifikator pitanja, to jest same stranice na kojoj se nalazi

pitanje i odgovori na dano pitanje. ID pitanja dobiven je preko regularnog izraza

(https:\/\/stackoverflow.com\/questions\/(\d+)\/.+) iz samog URL-a stranice te svaki red

u CSV datoteci „Rezultati.csv“ sadrži ID pitanja kako bismo sadržaj pitanja i sadržaj

odgovora mogli povezati sa stranicom.

• Vrsta – ovisno o tome radi li se o odgovoru ili pitanju stupac će sadržavati oznaku

(pitanje/odgovor), a podatke o tome prikuplja sam RapidMiner preko potprocesa

Dohvati pitanje i Dohvati odgovor koji su opisani kasnije.

Page 23: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

20

• ID sadržaja – jedinstveni identifikator sadržaja odnosno pitanja i odgovora na danoj

stranici. ID sadržaja pitanja dohvaćen je iz div oznake s ID atributom question, dok ID-

u odgovora možemo pristupiti preko oznake div s klasom answer. Atributi koji sadrže

navedene podatke su data-questionid i dana-answerid te su vidljivi na slikama 9 i 10.

Slika 9. Meta podaci o pitanju

Slika 10. Meta podaci o komentaru

• Naslov – naslov pitanja dohvaća se iz div oznake na slici dolje, dok naslovi odgovora

nisu zadani već korisnik može koristeći oznaku h1 zadati samostalno naslov.

Slika 11. Naslov pitanja

Slika 12. Naslov odgovora

• Sadržaj – sadržaj pitanja ili odgovora nalazi se na različitim lokacijama te će pristup

samom sadržaju biti drugačiji za svaku vrstu podataka, no zajednička im je oznaka i

atribut oznake. Pomoću oznake div s klasom post-text možemo pristupiti sadržaju

pitanja i odgovora.

Slika 13.Sadržaj pitanja ili dogovora

• ID autora – sadrži jedinstveni identifikacijski broj korisnika, a direktno se ne može

doći do ID-a korisnika. Pomoću a oznake učahurene unutar div oznake možemo doći

do linka preko kojeg se pristupa stranici korisnika, a u tom linku nalazi se i ID korisnika

koji ćemo potom očistiti i izvući iz linka.

• Autor – sadrži podatke o korisniku koji je objavio komentar ili pitanje. Podacima o

autoru možemo pristupiti direktno unutar oznake a učahurene unutar div oznake.

Slika 14. ID i ime autora

Page 24: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

21

• Datum vrijeme objave – datum i vrijeme objave pitanja ili odgovora zadan je na

stranici odmah ispod sadržaja uz podatke o autoru objavljenog sadržaja.

Slika 15. Datum i vrijeme objave na stranici

• Oznake (engl. tagovi) – predstavljaju oznake koje je korisnik dodijelio pitanju.

Slika 16. Korisničke oznake na pitanju

• Glasovi – na stranici je moguće pitanju ili odgovoru dati pozitivan ili negativan glas.

Svaki glas nosi jedan bod te bodovno stanje može otići u plus ili minus.

Slika 17. Glasovi na pitanju ili odgovor

Svi podaci prikupljaju se pomoću prethodno opisanog alata Rapid Miner Studia, a pohranjeni

su u CSV datoteku. Na kraju izvođenja procesa alat prezentira sve u obliku tablice prikazane

na sljedećoj slici. Na slici 17 redom su vidljivi svi navedeni atributi u stupcima s

pripadajućim vrijednostima, a podaci koji nisu pronađeni, to jest ne nalaze se na stranici,

označeni su ? (upitnikom) radi prezentacije.

Slika 18. Rezultati Rapid Miner procesa

Page 25: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

22

3.6. Prikupljanje podataka

Kako bismo iz prethodno prezentirane strukture dobili podatke za daljnju obradu u alatu Rapid

Miner Studio moramo kreirati proces koji će kao ulazni parametar imati „Linkovi.csv“ datoteku

te kao izlazni parametar podatke spremne za daljnji rad u obliku datoteke „Rezultati.csv“. Svaki

proces sastoji se od operatora koji mogu, ali i ne moraju, imati ulazni tok podataka (text, URL,

web stranice…). U samom procesu postoje dvije vrste operatora:

• obični operatori nedjeljivi su operatori koji imaju zadanu funkcionalnost, ali parametre

koje korisnik može prilagoditi svojim potrebama

• potprocesi (engl. subprocess) su kompleksni operatori koji se sastoje od više običnih

operatora. Svaki potproces jedinstven je samim time što ga korisnik sastavlja po svojim

potrebama i funkcionalnostima koje mu trebaju u radu.

Glavni proces koji se koristi u ovom radu prikazan je na slici 15, a rađen je prema Schatten,

Ševa, i Okreša Đurić (2015).

Slika 19. Glavni proces u radu

Prikazani proces sastoji se od četiri operatora i dva potprocesa, a sva imena dana su radi lakšeg

razumijevanja. Redom prikazani dijelovi procesa su:

3.6.1. Ucitaj CSV (operator tipa Read CSV)

Početni operator koji kao ulazni parametar ima CSV datoteku s 12 linkova. U prijašnjim

poglavljima objašnjeno je što je CSV datoteka i kojih 12 linkova se nalazi u njoj stoga je za

ovaj operator dovoljno reći da uz pomoć Import Configuration Wizard-a učitamo dani CSV.

Dodatne postavke nisu potrebne za dani operator.

3.6.2. Dohvati podatke (potproces tipa Loop Values)

Glavni je potproces kreiran prema Schatten, Ševa i Okreša Đurić (2015) uz vlastite postavke

parametara te čini srž ovog praktičnog dijela rada. U jednoj rečenici objašnjeno, ovaj potproces

iterira kroz vrijednosti, to jest dobivene linkove prethodnog operatora te nad njima provodi

operacije dohvaćanja podataka.

Page 26: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

23

Slika 20. Parametri potprocesa Dohvati podatke

Navedeni potproces Dohvati podatke ima dva parametra koji su potrebni za njegovo odvijanje.

Oba parametra prikazana su na slici 18, a pojašnjena u daljnjem tekstu:

• Atribut (engl. attribute) – na temelju ulaznog parametra koji može imati više atributa u

ovom parametru možemo odabrati koji atribut će se koristiti u iteracijama i dalje

obrađivati unutar samog potprocesa.

• Macro – najvažniji parametar ovog potprocesa zato što omogućava pristup

vrijednostima trenutne iteracije preko jedne varijable. Pomoću macro varijable u našem

slučaju imena trenutni_link pristupat ćemo trenutnom linku unutar samog potprocesa

Dohvati podatke te će svi operatori korištenjem %{trenutni_link} moći pristupiti

vrijednosti.

3.6.2.1.Obradi ulazni link

Slika 21. Detaljni pregled potprocesa Dohvati podatke

Potproces Obradi ulazni link tipa je Process Documents From Web i kreiran je prema Schatten,

Ševa i Okreša Đurić (2015) uz vlastite postavke parametara i podataka koji se dohvaćaju.

Page 27: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

24

Slika 22. Parametri potprocesa Obradi ulazni link

Obradi ulazni link na temelju prije spomenute macro vrijednosti (atribut url na slici 21)

dohvaća vrijednost trenutne iteracije te na temelju njega pristupa web stranici. Pravila

dohvaćanja stranica (engl. crawling rules) kojim linkovima ovaj potproces pristupa na danoj

web stranici te dohvaća određene stranice koje zadovoljavaju uvjete zadane prije spomenutim

regularnim izrazima. Od ostalih atributa parametara valja napomenuti da max page size

označava koliko će web stranica biti obrađeno, a postavljeno je 240 stranica što označava broj

stranica koji će biti preuzet i obrađen unutar potprocesa. Ostali parametri postavljeni su

unaprijed u alatu, ali serveri web mjesta Stackoverflow imaju zadan broj stranica kojima

korisnik može pristupiti u zadanom vremenu. Iz razloga što je zadan maksimalni broj pristup

u određenom vremenu, odgoda pristupa (engl. delay) postavljena je na 1000ms (1s) kako server

ne bi zabranio daljnja pristupanja. Ostali parametri označavaju najveću moguću veličinu

stranice (engl. max page size), broj veza po posužitelju te broj konkurentnih veza (engl. max

Page 28: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

25

concurrent connections i engl. max connections per host). Zadnji parametar ime je agenta koji

je također postavljen unaprijed.

Primjena regularnih izraza vidljiva je u parametrima pravila dohvaćanja stranica koji dobiveni

link uspoređuju sa zadanim izrazima te ovisno o zadovoljenju uzorka i zadano akciji Rapid

Miner Studio sadrži tri načina primjene pravila:

• store_with_matching_url – na temelju regularnog izraza operator sve linkove koji

zadovoljavaju izraz pohranjuje za daljnju uporabu.

• store_with_matching_content – na temelju sadržaja regularnog izraza sadržaj s

pristupljenog linka testira se i ukoliko je zadovoljio, uzorak stranica se pohranjuje.

• follow_link_with_matching_url – na temelju regularnog izraza operator pristupa

linkovima koji zadovoljavaju izraz.

Pravila koja su potrebna za prikupljanje podataka u ovom završnom radu su

follow_link_with_matching_url i store_with_matching_url. Pravilo follow_link postavljeno je

da prati sve stranice koje sadrže u sebi riječ „stackoverflow“, dok stranice koje želimo obraditi

(store_with_matching_url) imaju zadan zaseban format koji uz riječ „stackoverflow“ mora

sadržavati i „questions“ te ID pitanja. Obradi ulazni link dohvaća 240 web stranica zato što je

12 linkova u početnom CSV-u i po 10 pitanja za svaki link. Radi lakšeg razumijevanja u

nastavku ovog teksta nalaze se kratka objašnjenja za pojedine elemente regularnih izraza:

• Operator . (točka) označava pojavljivanje bilo kojeg simbola osim simbola za novi red

(Goyvaerts, 2017)

• Operatori poput +, ? i * su kvantifikatori (engl. Quantifier) te označavaju broj

pojavljivanja znaka s njihove lijeve strane. Operator + označava da se znak pojavljuje

jednom ili više, ? jednom ili nijednom te * nula ili više puta (Goyvaerts, 2017)

• Operator \ (engl. backslash) operator je koji jedan znak sa svoje desne strane tumači

drugačije nego što bi on inače bio tumačen. U sljedećim primjerima korišten je na

primjer kod slova d u sredini i pri kraju izraza. Slovo d bez operatora \ bilo bi obično

d, ali u kombinaciji (\d) označava da se na navedenom mjestu mora nalaziti broj, a uz

sve to još je nakon toga operator + što sve skupa čini \d+ i označava da se na tom

mjestu mora nalaziti barem jedan ili više brojeva. Drugi primjer za ovaj operator je sa

? koji je, kao što je prije rečeno, kvantifikator, ali uz \ označava običan simbol upitnika.

(Goyvaerts, 2017)

Page 29: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

26

Slika 23. Regularni izrazi za pravila dohvaćanja stranica

Potproces Obradi ulazni link u sebi sadrži još dva operatora i dva potprocesa prikazanih na

sljedećoj slici.

Slika 24. Unutrašnjost potprocesa Obradi ulazni link

Operator ID pitanja tipa je Extract Information čija je funkcionalnost na temelju zadanog

izraza dohvatiti podatke. U ovom slučaju postavke tipa upita (engl. query type) postavljene su

na regularne izraze te pomoću izraza https:\/\/stackoverflow.com\/questions\/(\d+)\/.+ i grupe

unutar zagrada dohvaćamo ID pitanja odnosno ID stranice s pitanjem.

Sljedeći operator je operator Racvanje odnosno Multiply koji nema posebnu namjenu već

grana tok kako bi se sljedeća dva potprocesa mogla istovremeno odviti.

Potprocesi Dohvati pitanje i Dohvati odgovori tipa su Cut Document što iz samog naziva

možemo zaključiti da izrezuje dio dokumenta. Razlika ovih potprocesa je ta što imaju

različite uvjete pomoću kojih su određene granice dokumenta (web stranice) koji su potrebni.

Dohvati pitanje pod parametrom tip upita im zadan Regular Region što je ustvari regularni

izraz s početnim i završnim uvjetom. Svi podaci odnosno dio dokumenta koji se nalazi

između početnog i završnog izraza uzima se te potom obrađuje unutar potprocesa. Na temelju

strukture stranice, dio dokumenta koji sadrži sve podatke o pitanju nalazi se između početne

<div class="inner-content"> oznake te završne početka oznake pitanja <div id="answers">.

Dohvati odgovor kao tip upita pomoću kojeg određuje dio dokumenta ima postavljen XPath

te uvjet //h:div[contains(concat(' ', @class, ' '), ' answer ')] koji u dokumentu na bilo kojoj

poziciji traži div koji sadrži u atributu klase riječ answer.

Page 30: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

27

Na slikama 25 i 26 prikazani su svi XPath izrazi korišteni za dohvaćanje podataka s web

stranica. Za XPath nudi veliki broj mogućnosti i izraza kao i RegEx, ali za razumijevanje

predočenih opisani su samo korišteni znakovi i operatori:

• Operator h koristi se unutar parametara operatora Rapid Miner Studia kako bi se

naznačilo da se XPath koristi za HTML dokument, a ne inicijalno zamišljeni XML.

(Schatten, Ševa i Okreša Đurić, 2015)

• Operator // (dvostruka kosa crta) označava se sljedeći element (s desna) može nalaziti

na bilo kojoj poziciji u dokumentu. Preciznije rečeno zadana je relativna putanja

određene oznake. (Robie i ostali, 2014)

• Operatori [] (uglate zagrade) koriste se za pisanje uvjeta unutar izraza. Na prethodnoj

slici ovi operatori koriste se kad je potrebno naći oznaku koja sadrži određeni atribut

ili atribut s određenom vrijednošću, a može i sadržavati redni broj oznake ukoliko je

više istih. (Robie i ostali, 2014)

• Znak @ (et) skraćeni je zapis attribute:: odnosno označava atribut oznake. (Robie i

ostali, 2014) Na slikama iznad vidi se da je ovaj atribut korišten unutar prije

spomenutih uglatih zagrada u smislu uvjeta te prilikom dohvaćanja ID-a sadržaja

operator @ korišten je za direktno pristupanje vrijednosti atributa.

• Funkcija text() nalazi se na kraju putanje te vraća sadržaj koji se nalazi unutar oznaka

do kojih vodi ta putanja. (Robie i ostali, 2014)

• Funkcija concat() razdvaja string po zadanim parametrima. (Robie i ostali, 2014) Na

slikama iznad ova funkcija nalazi se kod pronalaska broja glasova za pitanja i

odgovore, a njezin je posao sve vrijednosti atributa klase odjeliti po razmaku.

• Funkcija contains() koristi se za provjeru postoji li u stringu određeni skup znakova.

(Robie i ostali, 2014) Primjer funkcija nalazi se na slikama iznad kod pronalaska

podataka o glasovima, a na temelju rezultata funkcije concat() provjerava sadrži li

ijedan riječ vote-count-post.

• Funkcija last() pronalazi zadnji čvor u nizu. (Robie i ostali, 2014) Navedena funkcija

koristi se prilikom dohvaćanja podataka o autoru sadržaja. Podaci o autoru koji je

uredio sadržaja nalaze se tik do podataka o autoru samog pitanja stoga prilikom

dohvaćanja autora pitanja morat ćemo dohvatiti zadnjeg u nizu navedenih autora

sadržaja. Uz mogućnost dva može postojati i sadržaj koji je kreiran od strane

zajednice (engl. Community Wiki) koji unutar div oznake o detaljima autora sadrži

dvije a oznake, od kojih ona zadnja u nizu je relevantna.

Page 31: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

28

Slika 25. Postavke operatora XPath izrazi – pitanje

Slika 26. Postavke operatora XPath izrazi – odgovor

Page 32: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

29

3.6.3. Spoji podatke (operator tipa Append)

Operator koji na kraju svake iteracije prethodnog potprocesa prikuplja podatke te ih dodaje „na

kraj“. Potprocesi tipa Loop Values u svakoj iteraciji kreira ExampleSet koji sadrži podatke

trenutne operacije, a operator tipa Append prikuplja sve ExampleSet-ove te ih spaja u jedan

spojeni ExampleSet.

3.6.4. Ocisti podatke (potproces tipa Subprocess)

Sam po sebi ovaj operator, točnije potproces nema neki veliki značaj. Potproces tipa

Subprocess operator je koji objedinjuje više operatora u jedan radi lakšeg rada i preglednosti.

U ovom slučaju ovaj potproces na temelju podataka dobivenih od prethodnog operatora čisti

podatke od nepotrebnih znakova i oznaka radi lakšeg rada i razumijevanja.

Slika 27. Operatori unutar potprocesa Ocisti podatke

Na slici iznad nalaze se operatori unutar potprocesa Ocisti podatke, svi operatori su tipa

Replace, osim zadnjeg koji je tipa Remove Duplicates. Posljednji operator niza operator je koji

ne zahtjeva posebne postavke jer ima jedan zadatak, a to je ukloniti zapise koji se ponavljaju.

Preostali operatori zamjenjuju skup znakova koji zadovoljava RegEx izraz danim novim

znakovima, a u ovom slučaju prazninom zato što želimo ukloniti nepotrebne znakove. Operator

Ukloni HTML oznake jedni radni na razini svih podataka te na temelju izraza

“|«|"|”|»|''|„|<[^>]*> uklanja sve HTML oznake. Preostali operatori tipa Replace rade svaki na

jednom zadanom stupcu, a oni su sljedeći:

• Ukloni praznine u sadrzaju pomoću izraza ^, |, $|\s{2,}|^\s uklanja sve praznine i nove

redove u sadržaju

• Ukloni delimitere u sadrzaju kao što i samo ime kaže uklanja sve delimitere (;) kako ne

bi nastala pomutnja unutar CSV datoteke.

• Ukloni praznine u oznakama uklanja sve praznine i nove redove u stupcu oznaka

pomoću izraza $|\s{2,}|^\s|\n te ih zamjenjuje s 4 prazna mjesta

• Posljednji operator imena Ocisti datum community sadrzaja korigira stupac datuma.

Ukoliko je neki sadržaj postavljen kao community content on nema podatke o autoru,

Page 33: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

30

a datum je u drugačijem formatu stoga je potrebno izdvojiti datum iz teksta koji je

dohvaćen u stupcu.

3.6.5. Pohrani u CSV (operator tipa Write CSV)

Zadnji operator u nizu zaprima podatke spremne za rad te ih pohranjuje u CSV datoteku imena

„Rezultati.csv“.

Page 34: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

31

4. Zaključak

U završnom radu opisano je web rudarenje te prezentirano kroz implementaciju agenta za

rudarenje web mjestom Stackoverflow. Prilikom pisanja rada, točnije izrade praktičnog dijela,

uvidio sam mnoge prednosti agenata za web rudarenje, ali i alata RapidMiner.

Pomoću vrlo dobro postavljenog agenta lagano se dolazi do traženih podataka, ali potrebna su

opsežna promatranja i proučavanja same strukture web mjesta i web stranica koje se dohvaćaju.

Same pripreme i izrada agenta za web rudarenje tekla je koracima koje navode i autori Costa,

M.G. i Gong (2005) te Dinuca (2010) u svojim djelima i to je sve započelo pronalaskom

resursa, odnosno web stranica s kojih će podaci biti prikupljeni. Sljedeći korak u izradi pred-

procesiranje i odabir informacija što uključuje prije spomenuto proučavanje strukture i točnih

informacija i podataka koje želimo dobiti s web stranice. Samim time što želimo da agent radi

na svim web stranicama web mjesta sljedeći korak bio je generalizacija što je uključilo

prilagođavanje operatora i potprocesa te puno pokušaja pokretanja i odgonetanja novih

struktura na web stranici. Završni korak je analiza koja se provodi na dobivenim podacima. U

radu u potpoglavlju o CSV-u prikazani su rezultati unutar alata RapidMiner kao i u samoj CSV

datoteci. CSV datoteka korištena je iz razloga što može pohraniti velike količine tabličnih

podataka koristeći delimiter za stupce i novi red za svaki red podataka što uvelike olakšava

spremanje, ali i danas većina programa omogućava učitavanje CSV datoteka i rad s njima.

Na temelju prikupljenih podataka nije moguć veliki broj analiza jer atributi koji su prikupljeni

sadrže podaci o pitanjima i odgovorima na ista. Na temelju glasova pitanja i odgovora moguće

je raditi analize, predviđanja i određivati koja oznaka na Stackoverflow web mjestu je

najpopularnija te ostala rangiranja. Uz glasove, analizama su podložni i atributi poput broja

oznaka pomoću kojih možemo odrediti kojem pitanju je najlakše pritupiti jer ima najviše

oznaka, a zadnja analiza je ona koja može rangirati pitanja po broju odgovora i to je moguće

zato što svaki red podataka sadrži ID pitanja (web stranice) s koje su prodaci preuzeti, dok

također svaki red ima i ID sadržaja, samim time odgovore možemo povezati s pitanjem preko

spomenutih ID-eva te dobiti brojke i odnose za rad.

Page 35: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

Literatura

[1] Beal, V. (2016) The Difference Between the Internet and World Wide Web. Dostupno na:

http://www.webopedia.com/DidYouKnow/Internet/Web_vs_Internet.asp (Pristupljeno: 04.

svibanj 2017.).

[2] Cooley, R., Mobasher, B. i Srivastava, J. (1997) „Web mining: information and pattern

discovery on the World Wide Web“, IEEE International Conference on Tools with

Artificial Intelligence, (DECEMBER 1997), str. 558–567. doi: 10.1109/TAI.1997.632303.

[3] Costa, M.G., J. Da i Gong, Z. G. Z. (2005) „Web structure mining: an introduction“, 2005

IEEE International Conference on Information Acquisition, str. 590–595. doi:

10.1109/ICIA.2005.1635156.

[4] Dinuca, C. E. (2010) „Web structure mining“, Studies in Computational Intelligence,

311(4), str. 113–142. doi: 10.1007/978-3-642-14461-5_5.

[5] G2 Crowd (2017) G2 Crowd Rapid Miner Reviews. Dostupno na:

https://www.g2crowd.com/products/rapidminer-studio/reviews (Pristupljeno: 26. srpanj

2017.).

[6] Getoor, L. (2003) „Link mining: a new data mining challenge“, ACM SIGKDD

Explorations Newsletter, 5(1), str. 84–89. doi: 10.1145/959242.959253.

[7] Goyvaerts, J. (2017) Regular Expressions Tutorial. Dostupno na: http://www.regular-

expressions.info/tutorial.html (Pristupljeno: 31. srpanj 2017.).

[8] Inamdar, S. A. i Shinde, G. N. (2008) „An Agent Based Intelligent Search Engine System

For Web Mining“, Search, str. 1062–1065.

[9] Johnson, F. i Kumar Gupta, S. (2012) „Web Content Mining Techniques: A Survey“,

International Journal of Computer Applications, 47(11), str. 44–50. doi: 10.5120/7236-

0266.

[10] Kurose, J. F. i Ross, K. W. (2013) „Computer Networking A Top-Down Approach“,

Pearson, str. 889. doi: 10.1017/CBO9781107415324.004.

[11] Lee, T.-B. (1989) Information Management: A Proposal. Dostupno na:

https://www.w3.org/History/1989/proposal.html (Pristupljeno: 01. siječanj 2017.).

[12] Liu, B. i Chang, K. C.-C. (2004) „Editorial: Special Issue on Web Content Mining“,

ACM SiIGKDD Explorations Newsletters, 6(2), str. 1–4. doi: 10.1145/1046456.1046457.

[13] Masseglia, F., Teisseire, M. i Poncelet, P. (2005) „Sequential Pattern Mining“,

Encyclopedia of Data Warehousing and Mining, str. 1028–1032. doi:

10.1002/pmic.200700657.

Page 36: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

[14] Naik, U. i Shivalingaiah, D. (2014) „Comparative Study of Web 1.0 , Web 2.0 and

Web 3.0“, 1(August), str. 13. doi: 10.13140/2.1.2287.2961.

[15] RapidMiner (2017) Rapid Miner Studio. Dostupno na:

https://rapidminer.com/products/studio/ (Pristupljeno: 26. srpanj 2017.).

[16] Robie, J. i ostali (2014) XML Path Language (XPath) 3.0, W3C. Dostupno na:

https://www.w3.org/TR/xpath-30/ (Pristupljeno: 01. siječanj 2017.).

[17] Schatten, M., Ševa, J. i Okreša Đurić, B. (2015) „Big Data Analytics and the Social

Web - A Tutorial for the Social Scientist“, str. 42.

[18] Shafranovich, Y. (2005) Common Format and MIME Type for Comma-Separated

Values (CSV) Files. Dostupno na: https://tools.ietf.org/html/rfc4180#page-2 (Pristupljeno:

30. srpanj 2017.).

[19] Srivastava, J. i ostali (2016) „Web Usage Mining : Discovery and Applications of

Usage Patterns from Web Data . Web Usage Mining : Discovery and Applications of

Usage Patterns from Web Data“, (JANUARY 2000).

[20] Technopedia (2017) Web Mining. Dostupno na:

https://www.techopedia.com/definition/15634/web-mining (Pristupljeno: 04. svibanj

2017.).

[21] XML Objective (2013) What is the difference between XML and HTML? Dostupno

na: http://www.xmlobjective.com/what-is-the-difference-between-xml-and-html/

(Pristupljeno: 01. siječanj 2017.).

Page 37: FAKULTET ORGANIZACIJE I INFORMATIKE...4 razmjenu informacija koje su srž ove verzije te je svakim danom sve više korisnika tih društvenih mreža o kojima se bilježi velika količina

Popis slika

Slika 1. Osnovni primjer HTML jezika ..................................................................................... 2

Slika 2. Primjer korištenja HTTP protokola (preuzeto s:

https://www.tutorialspoint.com/http/http_message_examples.htm) .......................................... 2

Slika 3. Linkovi.csv datoteka ................................................................................................... 16

Slika 4. Rezultati.csv datoteka ................................................................................................. 16

Slika 5. Hijerarhija stranice Stackoverflow ............................................................................. 17

Slika 6. Stranica s oznakama (tagovima) ................................................................................. 18

Slika 7. Stranica s pitanjima..................................................................................................... 18

Slika 8. Stranica s pitanjem i odgovorima ............................................................................... 19

Slika 9. Meta podaci o pitanju ................................................................................................. 20

Slika 10. Meta podaci o komentaru ......................................................................................... 20

Slika 11. Naslov pitanja ........................................................................................................... 20

Slika 12. Naslov odgovora ....................................................................................................... 20

Slika 13.Sadržaj pitanja ili dogovora ....................................................................................... 20

Slika 14. ID i ime autora .......................................................................................................... 20

Slika 15. Datum i vrijeme objave na stranici ........................................................................... 21

Slika 16. Korisničke oznake na pitanju.................................................................................... 21

Slika 17. Glasovi na pitanju ili odgovor .................................................................................. 21

Slika 18. Rezultati Rapid Miner procesa ................................................................................. 21

Slika 19. Glavni proces u radu ................................................................................................. 22

Slika 20. Parametri potprocesa Dohvati podatke ..................................................................... 23

Slika 21. Detaljni pregled potprocesa Dohvati podatke........................................................... 23

Slika 22. Parametri potprocesa Obradi ulazni link .................................................................. 24

Slika 23. Regularni izrazi za pravila dohvaćanja stranica ....................................................... 26

Slika 24. Unutrašnjost potprocesa Obradi ulazni link ............................................................. 26

Slika 25. Postavke operatora XPath izrazi – pitanje ................................................................ 28

Slika 26. Postavke operatora XPath izrazi – odgovor.............................................................. 28

Slika 27. Operatori unutar potprocesa Ocisti podatke ............................................................. 29