39
TDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék Miskolc 2010.

TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

TDK Dolgozat

Készítette:

Vágó Tamás

II. éves mérnök informatikus Msc hallgató

Konzulens:

Dr. Kovács László

Általános Informatikai Tanszék

Miskolc 2010.

Page 2: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

2

Előszó

Napjainkban is számos keresőprogram létezik, melyek segítésével hatékonyan tudunk keresni

a weben. Ám mindegyik keresőprogramnak a legfőbb előnye egyben a hátránya is, mégpedig

hogy csak a keresés során beírt kulcsszavakra szűkíti a találatok listáját. Ez a keresési jól

használható, ha céltudatosan tudjuk, hogy mit keresünk. Ám amikor valamilyen témában

szeretnénk elmélyíteni a tudásunkat és hasonló témájú oldalakat szeretnénk találni akkor

nehézségekbe, ütközünk. Igaz a fejlettebb böngészők már támogatják a tartalmilag hasonló

dokumentumokra való keresést, de ekkor is csak egy találati listát kapunk nem pedig egy

átfogó képet az adott tématerületen fellelhető dokumentumokról.

A dolgozat célja egy olyan keresési alternatíva létrehozása melynek segítségével a

felhasználó képes lehet egy átfogó képet kapni a weben található dokumentumokról, illetve

arról hogy az adott tématerülethez mely dokumentumok kapcsolódnak szorosan illetve

kevésbé.

A tartalom alapú web térkép egy olyan keresési eszköz melyen a felhasználó

vizuálisan is látja az egyes dokumentumok adott témabeli távolságát. Minél jobban hasonlít,

két dokumentum tartalma annál közelebb kerülnek egymáshoz a térképen illetve minél

különbözőbbek annál távolabb. A dolgozatban ismertetésre kerülnek a térkép készítése során

alkalmazott szövegbányászati technikák illetve azok konkrét alkalmazása.

Hogy az esetleges rejtett tartalmi összefüggéseket is fel lehessen deríteni, a web térkép

dokumentumain a DBSCAN algoritmus segítségével, a dokumentumok klaszterezésre

kerülnek. Így további összetartozó csoportokat tudunk felderíteni és megjeleníteni a térképen.

A program fejlesztése során egy további alkalmazási módot is sikerült felderíteni. A

program kiválóan alkalmaz az egyes site-ok tartalombeli homogenitásának a vizsgálatára,

melynek segítségével vizuálisan is láthatóvá válik, hogy mely oldalak tartoznak tartalmilag

leginkább egy oldaloz, és melyek azok az oldalak amelyek kilógnak a sorból.

Page 3: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

3

Tartalomjegyzék

Előszó ......................................................................................................................................... 2

Súlyozási sémák a vektortér modellben ................................................................................. 4

Szótövezés .................................................................................................................................. 6

STOPWORD .............................................................................................................................. 7

Bitmap index: ......................................................................................................................... 8

Invertált dokumentum index: ................................................................................................. 9

A programban használt adatszerkezetek: ............................................................................. 11

Internetes Keresőprogramok működése ................................................................................... 13

A Google bemutatása ........................................................................................................... 13

Googlebot, Web Crawler .................................................................................................. 13

Google Indexer ................................................................................................................. 14

Querry processor, avagy a Lekérdező komponens ........................................................... 15

PageRank Számítása ........................................................................................................ 15

A keresés folyamata ......................................................................................................... 17

A program felépítése ................................................................................................................ 18

A rendszer felépítése: ........................................................................................................... 18

Dokumentumok begyűjtéséért és feldolgozásáért felelős alrendszer: .............................. 18

Dokumentumok tárolásáért és távolságának meghatározásáért felelős alrendszer .......... 19

Adattároló alrendszer ....................................................................................................... 20

Térkép készítő és megjelenítő alrendszer ......................................................................... 20

Térképkészítő algoritmus ......................................................................................................... 21

Az algoritmus működése: ..................................................................................................... 22

Webes tartalom klaszterezése ................................................................................................... 24

DBSCAN algoritmus bemutatása ......................................................................................... 25

DBSCAN paramétereinek dinamikus meghatározása .......................................................... 27

DBSCAN algoritmus általánosítása ..................................................................................... 28

Az iteratív keresés folyamata ........................................................................................... 28

Az elkészült program hatáskörének elemzése .......................................................................... 31

Konkrét példa a webtérkép alkalmazására ............................................................................... 33

Összegzés, kitekintés ................................................................................................................ 35

Függelék ................................................................................................................................... 36

Képek és ábrák jegyzéke .......................................................................................................... 37

Irodalomjegyzék, Hivatkozások ............................................................................................... 38

Page 4: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

4

Vektortér modell

Már a 1960-as években felmerült az igény egy hatékony szöveg reprezentációt biztosító

modellre. Mely hatékonyan támogatja a keresést. Az első modell System for the Mechanical

Analysis and Retrieval of Text azaz a SMARTi volt. Ezen rendszer segítségével hatékonyan

lehetett keresni a különböző dokumentumok között, és alapja a vektortér modell volt.

A vektortér modell alapvető koncepciója hogy a dokumentumokat vektorként ábrázolja a

bennük található szavak alapján, melyek a vektor dimenzióját adják. A dokumentumtér egy

mátrixszal reprezentálható, aminek:

● sorai az egyedi szavak előfordulását

● oszlopai pedig az adott dokumentumot szimbolizálják

Legyen D egy dokumentum gyűjtemény melynek elemei dokumentum vektorok, az így kapott

gyűjtemény egy mátrix segítségével reprezentálható.

𝐷 = [

𝑑0,0 ⋯ 𝑑0,𝑗⋮ ⋱ ⋮𝑑𝑖,0 ⋯ 𝑑𝑖,𝑗

]

Természetesen a 0 és 1 reprezentáció helyett más megoldásokat is szoktak alkalmazni, mint

például 1 helyett az adott szó számosságát tüntetik fel a mátrixban.

Vegyük észre hogy

A vektortér modell sajátosságából fakadóan a szavak a sorrendiségüket elveszítik, az ilyen

modelleket BOW reprezentációnak hívják, azaz Bag Of Word, vagyis magyarul szózsák

modell.

Súlyozási sémák a vektortér modellben

Page 5: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

5

Többféle súlyozás is létezik a vektortér modellii D mátrixának, az elemeinek a

meghatározására.

Ilyen módszerek:

● Bináris súlyozás: a legegyszerűbb súlyozási megoldás, hátránya hogy elvész a szavak

gyakorisága az adott modellben. Formája:

● Előfordulási gyakoriság alapú súlyozás: előnye hogy figyelembe veszi a szavak adott

dokumentumon belüli gyakoriságát. Hátrányként felróható hogy nem minden szó

esetén a gyakoriság határozza meg adott szó relevanciáját, hiszen számos esetben a

Zipf törvényiii

érvényesül, vagyis egy nyelv leggyakoribb szavai általában csak a

mondatszerkezet létrehozását szolgálják, és más jelentőségük nincs. Ezeket a szavakat

általában STOPWORDS ként említi a szakirodalom Melyeket sok esetben szűrni

szoktak.

● Logaritmikus súlyozás: Előnye hogy elnyomja a túl gyakori szavakat, amik nagy

valószínűséggel STOPWORD-ök ezáltal ha úgy tetszik, normalizálja az adott

dokumentum szógyakoriságait.

𝑑𝑖,𝑗 = { o 𝑘𝑖 , 𝑕 𝑘𝑖

, 𝑒𝑔 𝑘 𝑡

● Term Frequecy (TF, szó gyakorisága a dokumentumban): Egy adott szó

gyakoriságánál azt vizsgálja, hogy a szó mekkora részét képzi a dokumentumnak. Ez a

módszer jól működik heterogén dokumentumhalmazok esetén is.

● Inverse Document Frequecy:(inverz gyakoriság alapú súlyozás): A Tf és

logaritmikus súlyozás kombinálása, mely rendelkezik mindkét módszer előnyeivel.

Page 6: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

6

Szótövezés

Minden szövegbányászati alkalmazásban kulcsfontosságú szerepet játszik a szótövezés,

hiszen a különböző ragok, jelek és más nyelvi elemek eltávolítása a hatékonyság és

egyértelműség növelése szempontjából kifejezetten előnyös.

Mivel tartalom alapú a fejlesztett rendszer ezért nem jár információ veszteséggel a szótövezés,

csupán redukálja a problémateret, ahol a tartalmat meghatározó szavak egységes formába

kerülnek. A szótövezés után a szavak legkompaktabb formáját kapuk, továbbá szótövezés

nélkül az egyes szavak különböző formái a dokumentum vektortér modellben más és más

elemként szerepelnek. De a szótövezéssel kiküszöbölhetjük ezt a problémát.

A szótövezési technikáknak két fő fajtája van:

- Szabály alapú

- Adatbázis alapú

A szabály alapú szótövezők a szavak képzési szabályait tartalmazzák, melynek segítségével a

szabályokat visszavezetve megkaphatjuk az egyes szavak eredeti szótövét, illetve

ellenőrizhetjük, hogy helyes-e az adott szó.

Ennek a módszernek az előnye, hogy a szabályok segítségével egy általános megoldást lehet

kapni, relatíve kicsi információ tárolásával. A rendszer általánosan használható, ám

előfordulhat, hogy nem minden esetben szótövez helyesen. Ilyen szótövező például az angol

nyelven kiválóan működő Porter-féle szótövezőiv

.

Az adatbázis alapú szótövezők a szabályalapúak ellentétei, hiszen szabályok nélkül hatalmas

adatbázis segítségével dolgoznak, mely tartalmaz minden egyes ragozott szót, szótövét és más

nyelvtani szabályokat.

Ezen rendszerek az előnye, hogy gyors és pontos szótövezésre képesek.

Hátrányuk viszont hogy nem elég általánosak és relatíve hatalmas adatmennyiségekkel

dolgoznak.

A program készítése során mégis az adatbázis alapú szótövezést kellett választanom, hiszen a

magyar nyelv bonyolultsága miatt a szabályalapú szótövező rendszerekből nincs túl sok a

piacon, és amik megtalálhatóak azok csak fizetős formában érhetők el. Szerencsére létezik

egy ingyenes és nyílt forrású kezdeményezés is mely a BME-s Szószablya projekt. Ez a

Page 7: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

7

projekt egy hatalmas adatbázist hozott létre szótövezésre, ami ingyenesen letölthető és

szabadon használható.

Mivel tekintélyes méretű ezért a benne szereplő gyakorisági számok alapján csak a

leggyakoribb szavak kerültek átemelésre. A hatalmas adatbázis redukálása céljából.

Az eredeti adatbázis több mint 2 millió ragozott szót tartalmaz. Amely tárigénye a program

hordozhatóságát jelentősen rontaná. Illetve a feldolgozási idők is nagymértékben

csökkennének. Ezért egy tervezési döntést kellett bevezetni a program fejlesztése során,

mégpedig hogy az adatbázisból a 100 000 leggyakoribb elem került átemelésre.

STOPWORD

A STOPWORD vnem más, mint azoknak a szavaknak a halmaza melyeket ki lehet szűrni

szövegből jelentősebb információcsökkenés nélkül. Tipikusan ezek a szavak csak a mondat

szerkezetének a kialakításához járulnak hozzá, de jelentésbeli funkciójuk nincs.

Minden nyelvnek megvannak a maga stopword-jei melyek szűrésével hatékonyságnövekedést

lehet elérni. Ezeknek a szavaknak a megtalálása rendkívül egyszerű, hiszen minden nyelvben

ezek fordulnak elő a legnagyobb gyakorisággal. A magyar nyelvben ezek a szavakvi

a

következőek:

a

az

egy

be

ki

le

fel

meg

el

át

ide

oda

szét

össze

vissza

de

hát

és

vagy

hogy

van

lesz

volt

csak

nem

igen

mint

én

te

ő

mi

ti

ők

ön

Jól látszik, hogy e szavak jelentős része nem tartalmaz semmilyen extra információt a

dokumentumok kiértékelése szempontjából.

További előnye a stopword-ök szűrésének mikorosite-oknál illetve kisméretű

dokumentumoknál figyelhető, meg amikor is a szűrés után tényleg csak a lényegi információk

Page 8: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

8

maradnak meg a feldolgozás után. Ezáltal az oldalak távolságát valóban csak a tartalom

befolyásolja.

Szöveg feldolgozást támogató reprezentációs modellek

A szöveg reprezentáció mindig is kulcsfontosságú momentum volt a szövegbányászatban,

hiszen egy jól megválasztott hatékony adatszerkezet nagyban segíti a feldolgozási és keresési

műveletek végrehajtását az adott halmazon.

A reprezentációs technikák közül több is kialakult a szövegbányászat múltja során, melyeknek

fejődését leginkább a hardver fejlődésével lehet összekapcsolni.

A két legelterjedtebb fizikai reprezentáció, a dokumentum vektortér modellhez a következő:

- bitmap index

- invertált index

Bitmap index:

Ez egy mátrix alapú reprezentációvii

, melynek sorai az egyes szavakat oszlopai pedig az egyes

dokumentumokat tartalmazzák. Természetesen az oszlopok és sorok jelentése az adott

tervezői elgondolástól függ.

Működése: Mivel bitmap alapú indexelésről van szó, a mátrix elemei 1 illetve 0 ahol az egy

azt jelzi, hogy az adott szó szerepel a dokumentumban a 0 pedig hogy nem.

Formája:

i szavaknak,

j dokumentumoknak felel meg.

Például:

Page 9: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

9

D1 D2 D3

alma 1 0 1

körte 1 1 0

szilva 0 1 0

barack 1 0 1

Lehetséges keresési kérések lehetnek azok a dokumentumok ahol:

alma ÉS körte ÉS barack

(alma VAGY barack) ÉS körte

Előnye:

● gyors keresést biztosít (bináris műveletekkel tudunk szűrni)

● alacsony memóriaigény

Hátránya:

● nagy mennyiségű adatnál kezelhetetlenné válik

● ritka mátrixok problémája felvetődik (memóriaigény számítási költség)

● további hátrány még hogy csak azt tárolja, hogy adott dokumentumon belül szerepel-e

a keresett szó, tehát további költség hogy át kell vizsgálni a dokumentumot.

(O(dokumentum hossza))

● problémás hatalmas dokumentum halmazok esetén, a nagyméretű mátrixok tárolása

Mikor előnyös:

● kisméretű dokumentumhalmaz esetén

● olyan kereséseknél ahol csak a kulcsszó tartalmazása számít

Invertált dokumentum index:

Egy átgondoltabb szöveg reprezentációs technikaviii

, mely a bitmap reprezentációval szemben

láncolt listákat alkalmaz. Így a reprezentációtól függően nem csak azokat a dokumentumokat

Page 10: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

10

tartalmazza, ahol szerepel az adott szó, hanem adott dokumentumon belül a szó

előfordulásának pozícióit is.

Felépítése:

Egyszerűbb reprezentáció, mely csak a szavak előfordulását tartalmazza:

1. ábra – szavak előfordulásának tárolása dokumentumbeli pozíció nélkül

Összetettebb reprezentáció, mely a szavak előfordulása mellett a dokumentumbeli pozíciókat

is tartalmazza:

2. ábra – szavak előfordulásának tárolása dokumentumbeli pozícióval

Ennél a reprezentációnál már a dokumentumon belüli előfordulások is le vannak tárolva, tehát

a keresés még inkább hatékonyabbá válik.

(i,j) i: melyik dokumentumban fordul elő a szó, j adott dokumentumon belül hol található.

Előnye:

● A keresés során könnyebb megtalálni egy adott dokumentumon belül a keresett

szavakat

● dinamikus memóriaallokálást tesz ehetővé

● figyelembe veszi a szavak számosságát is

Page 11: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

11

● nagyméret dokumentumhalmaz esetén is működik

● A módszer tárigénye csökkenthető minimális számítási költséggel

Hátránya:

● A keresés sebessége lassabb

● A pointerek extra memóriát igényelnek

A programban használt adatszerkezetek:

A programban működése szempontjából követelmény a gyors működés, ennek következtében

az adatok gyors elérése. Ezért a programban számos helyen megjelennek a Hash függvényix

alapú módszerek, azaz hasító táblák alkalmazása.

Ezen adatszerkezetek nagy előnye az adatok azonnali elérése.

3. ábra - Hash tábla működése

Ennek egy speciális változatát a Dictionaryx generikus típust használja a program mely

tetszőleges adattípusból felépíthető és O(1) idő alatt bármely eleme elérhető. Ez egy olyan

speciális hash tábla mely kezeli az adatok túlcsordulását.

A generikus típusok további előnye hogy tetszőleges mélységben egymásba ágyazhatunk más

generikus típusokat is, melyből komplex struktúrákat alakíthatunk ki. Természetesen a

faszerűen felépített struktúra leveleiben konkrét típusoknak kell szerepelniük.

A Dictionary adatszerkezet egy kulcs-érték párost tartalmaz. A kulcs az adat eléréséhez

szükséges, az értékben pedig a letárolandó adatok szerepelnek.

Mivel számos esetben, kiváltképpen szavak számlálásánál a gyors elérés és értékmódosítás,

továbbá a rendezett könnyen visszakereshető struktúra a cél, ezért ez az adatszerkezet a

legmegfelelőbb a szövegbányászati célokra.

Page 12: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

12

A program fontosabb területei ahol a Dictionary struktúra megjelenik:

Nyers dokumentumok tárolása (URLDokumentum adatai (szöveg,simenő linkek, …)

Szavak előfordulási gyakorisága (Szó[Dokumentum sorszáma, szó darabszáma az

aktuális dokumentumban])

Dokumentumok távolságának mátrix (URL1URL2Távolság)

Virtuális Dokumentumpontok távolságának mátrixa (URL1URL2Távolság)

Dokumentumok távolságának mérése

A dokumentumok hasonlóságát vagy különbözőségét hogy számszerűsíteni tudjuk,

valamilyen metrikát kell hozzá rendelnünk. Két dokumentum távolsága, ha nagy, akkor a két

dokumentum különbözik, míg ha kicsi a két dokumentum hasonló.

Többféle távolságmetrika, de ezek közül a leggyakoribbak a következőkxi

:

● Euklideszi távolság

● Négyzetes euklideszi távolság

● Manhattan távolság

● Maximum távolság

Page 13: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

13

● Mahalanobis távolság

● Koszinusz hasonlóság

A gyakorlatban leginkább kedvelt és alkalmazott távolságmetrika az euklideszi távolság

illetve a koszinusz távolság (hasonlóság). A programban is az euklideszi távolságmetrika

szerepel, mivel az euklideszi távolságot lehet a legáltalánosabban alkalmazni a távolság

mérésére.

Internetes Keresőprogramok működése

A Google bemutatása

Napjainkban szinte már az interneten történő keresés szinonimájává vált a Google keresője, de sokan

nem tudják, hogy hogyan is működik ez a rendkívül egyszerűnek kinéző, ám meglehetősen bonyolult

rendszer.

A konkrét működésrexii

, három fő folyamat zajlik le a Google keresőjében, aminek a pontos találati

eredményeket köszönhetjük:

● Google bot, más néven Crawler ami begyűjti az interneten elérhető összes weboldalt

● Indexer, ez a folyamat bontja szét a weboldalakat szavaikra, majd indexeli azokat egy

hatalmas adatbázisban

● Query Processor, megvizsgálja a beadott keresési kulcsszavakat majd összehasonlítja a belső

adatbázisával, és visszaadja a legrelevánsabb találtatokat.

Googlebot, Web Crawler

A Crawler dolga a weboldalak begyűjtése a weben, a Google ezen komponense másodpercenként több

ezer oldalt tölt le párhuzamosan, majd továbbítja azt az Indexer felé.

Page 14: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

14

De ne higgyük azt, hogy a Google minden oldalt megtalál és az egész internetet képes bejárni.

A Google az internet bejárását az oldalakon talált hivatkozások segítségével illetve korábbi

adatbázisban eltárolt címekkel járja be. Ha példádul egy új weboldalt készítünk a Google azt nem vagy

csak hosszabb idő után képes bejárni, hiszen ha nem mutat rá URL más módon kell az oldal címét

beszereznie.

A Google hogy ezt a hibát kivédje, engedi az oldalak manuális hozzáadását is a keresője számára

http://www.google.com/addurl.html).

A Google a meglátogatott oldalakon talált hivatkozásokat hozzáadja a bejárandó oldalak listájához,

majd ezután a következő oldalra ugrik ebben a listában és azzal is ugyanezt a folyamatot hajtja végre.

Vagyis:

● a bejárandó oldalak soráról egy oldalt kiválasztása

● oldal letöltése, tárolása majd továbbítása az Indexernek

● az oldalon talált hivatkozások hozzáadása a bejárandó oldalak sorához

Ezt a folyamatot nevezik deep web-nek elviekben ezzel a folyamattal az egész web bejárható feltéve,

ha minden oldalra találunk hivatkozást. De mivel az internet hatalmas és az erőforrások végesek ezért

a google se “látja” a teljes webet, hanem annak csak egy szignifikáns részét. Mivel ez a folyamat

rendkívül erőforrás igényes a Google csak havonta végzi el az oldalak begyűjtését, és egyben az

adatbázisa aktualizálását.

Hogy a felesleges erőforrás-pazarlást elkerülje a bejárandó elemek listáján eliminálja a duplikált

címeket, illetve hogy felesleges újra indexelés se történjen, a letöltött oldalakat összeveti a korábban

letöltött és letárolt változatukkal, és ha nincs eltérés, azaz az oldal nem változott akkor nem kell az

aktuális oldalhoz az indexeket újragenerálni.

Ahhoz hogy mégis aktuális legyen, a legnépszerűbb oldalakat, mint például hírportálok,

tőzsdeárfolyamok...stb. akár napi rendszerességgel vagy gyakrabban is letölti, és indexeli. Ezt a

folyamatot fresh crawl-nak az előzőt pedig deep crawl-nak nevezik.

E két folyamat megfelelő arányú kombinálásával mindig friss és hatékony keresés biztosít a

felhasználói számára.

Google Indexer

A korábban bemutatott Crawler a begyűjtött weboldalakat ennek a komponensnek továbbítja. Az

oldalakat az index adatbázisa tárolja el, majd indexeli azokat. Tehát tárolódik az oldal, majd ezt az

indexelő komponens szavanként kielemzi, és egy közös adatbázisba letárolja az összes szót és azok

előfordulási helyét. A szavak alfabetikus rendezés szerint tárolódnak és nem csak az tárolódik le, hogy

mely dokumentumban fordul elő, hanem az is hogy az adott dokumentumban mely helyeken szerepel.

Page 15: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

15

(Invertált index) Ahhoz hogy tovább tudja, a hatékonyságát növelni a modulnak kihagyja az

úgynevezett stop word-öket, ezek olyan szavak melyek egy nyelvben nagyon gyakoriak, de jelentés

szempontjából nem jelentősek. Minden nyelvnek egyedi stop word listája van. Angolban például: the,

is, on ,or, of, how... . Ezeket a szavakat az indexelő komponens szűri, illetve van még pár technika,

amivel további teljesítménynövekedést illetve racionalizálást ér el, mint például: a fölösleges

whitespace karakterek eltávolítása, szavak kisbetűssé alakítása, és még számos egyebét technika, ami

javít a hatékonyságon.

Querry processor, avagy a Lekérdező komponens

A lekérdező modulnak számos része van a felhasználói felülettől a releváns oldalak megjelenítésével

bezárólag. Az egyik talán legfontosabb az egyedi algoritmusa, a PageRank, ennek az algoritmusnak

köszönheti a Google a sikerét, hiszen ez az algoritmus dönti el egy adott oldalról, hogy az mennyire

fontos számunkra. Az algoritmus egyik fő motívuma a tudományos publikációk fontosságának

meghatározásán alapszik, tehát minél többen hivatkoznak egy oldalra, annál fontosabb az az oldal. Az

algoritmus leglényegesebb motívuma ez, de számos részlete a mai napig üzleti titoknak minősül, és

titkos. A PageRank több mint száz kritériumot vesz figyelembe az oldalak rangsorolásánál, beleértve a

népszerűséget, az oldal méretét, az aktuális keresési trendeket, és még számos más dolgot.

PageRank Számítása

Az oldalak súlyát a Google a PageRankxiii

képlettel határozza meg, minél népszerűbb egy oldal annál

többen hivatkoznak rá, ezért annál nagyobb a presztízse és a relevanciája is, ha egy találati listában

szerepel. Mivel más oldalakra mutató linkek, egyfajta szavazást, emberi döntést képviselnek, ezáltal a

Google ezen koncepciója helyesen működik.

A hivatkozásokból minden oldal kap egy értéket mely minél nagyobb annál előkelőbb az oldal, viszont

az oldal továbbadhatja az értékét, ha hivatkozik más oldalakra, természetesen ilyenkor nem vész el a

teljes érték, hanem csak egy részét adja át.

De hogy megértsük hogyan is működik ez, nézzük meg azt a két képletet, amit a Google maga is

használ a PageRank kiszámításához.

Legyen:

M(i) az i. oldalra hivatkozó oldalak halmaza

PR(i) az i. oldal PageRank értéke

L(j) az j. oldalról kimenő hivatkozások száma

tegyük fel hogy minden oldal d értéket ad ahol 0 < d < 1 azaz 1 - d marad neki.

Page 16: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

16

Van egy másik képlet is, ami a valószínűség számítás oldaláról közelíti meg a kérdést, ilyenkor a

PageRank értéke annak a valószínűsége, hogy valaki a linkeket használva közelíti meg az oldalt.

Egyes ajánlások szerint a d paraméter értékét rendszerint 0.85 körüli értékre állítják be.

Fontos probléma a képlet számítása során a ,,danglink link’’-ek problémája melyek általában

letöltendő fájlokra, és nem oldalakra mutatnak, de befolyásolják a PR értékét, ezért a rendszer szűri

ezeket a linkeket.

A PageRank számítása egy iteratív folyamat melyben a képletet többször meg kell ismételni, hogy a

kívánt eredményt megkapjuk, az iterációk során a képlet egyre pontosabb értéket ad az egyes

csomópontokra.

Nézzünk meg egy példát a PR érték kiszámítására:

Tanulási ráta d=0.85

PR(A)=PR(B)=PR(C)=1

4. ábra - minta a PageRank számításához

Page 17: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

17

Iteráció PR(A) PR(B) PR(C) Összeg

0. 1 1 1 3

1. 1 1.85 0.15 3

2. 1.7225 1.1275 0.15 3

3. 1.108375 1.741625 0.15 3

4 1.63038125 1.21961875 0.15 3

... ... ... ... ...

30. 1.39539316985 1.45460683014 0.15 3

Kezdetben a kapott eredmények ingadoznak majd a számos iterációt követően megszületik a helyes

eredmény. Minél több iterációt hajtunk végre annál pontosabb eredményt kapunk.

A keresés folyamata

Amikor a felhasználó beír pár kulcsszót a Google oldalán akkor nem is gondolja, hogy a háttérben

számos feladat hajtódik végre a másodperc tört része alatt, de mi is történik ilyenkor?

A Google megnézi a beírt kulcsszavakat és kibővíti a keresési listát a szavak szinonimáját használva.

Alapvető esetben a kereséskor a beírt kulcsszavak esetén a Google az ÉS műveletet, vagyis a

metszetképzést veszi figyelembe, tehát elsődlegesen olyan találtatokat kínál fel, amelyekben minden

kulcsszó szerepel. Természetesen ez nem minden esetben működik tehát a kulcsszavak találatokbeli

előfordulása alapján is egy rangsort kell felállítania a keresőnek.

A releváns találatok kikeresésének a folyamata:

Organikus találati lista:

● A Google megvizsgálja a lokalizációt, tehát hogy milyen nyelven és milyen országból

keresünk, hiszen például a “foci” szó esetében Angliában és Amerikában is egy helyi lakosnak

más sport jut az eszébe.

● Következő lépésben megvizsgálja a személyes beállításokat és azt, hogy az adott IP címről

vagy az adott Google fiókkal rendelkező személy a múltban milyen kereséseket futtatott le

● Ezután a PageRank figyelembevételével előtérbe hozza az “erősebb” oldalakat

● A keresés túl sok oldalt hoz fel, akkor tovább rangsorolja ezeket úgy hogy a minél frissebb,

naprakészebb oldalak nagyobb súlyt kapnak

● Az ugyanarról a domain névről származó magas találati súlyú oldalakat csoportosítja, ha

minden egyes oldal magas súllyal rendelkezik

● A fent felsorolt szűrők után elkészül a normál találati lista

Page 18: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

18

A program felépítése

A program felépítését a keresőmotorok logikája és működése ihlette az oldalak begyűjtésénél.

A feldolgozás során pedig az szövegbányászati módszerek kerültek az előtérbe.

A rendszer felépítése:

5. ábra - A program felépítése

A programot négy fontosabb részre lehet osztani:

Dokumentumok begyűjtéséért és feldolgozásáért felelős alrendszer

Dokumentumok tárolásáért és távolságának meghatározásáért felelős alrendszer

Adattároló alrendszer

Térkép készítő és megjelenítő alrendszer

Alrendszerek bemutatása:

Dokumentumok begyűjtéséért és feldolgozásáért felelős alrendszer:

Két fő osztályból áll Harvester és Refinery ez a két osztály felelős a weben található oldalak

felderítéséért letöltéséért és feldolgozásért.

Harvester: Az osztály a példányosítás során egy linket kér be, mely egy kiindulási pont. Ezen

a kiindulási ponton keresztül egy szélességi kereséssel gyűjti be a weben található linkeket és

tartalmukat.

Page 19: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

19

A folyamat egy listát használ, mely melynek a végére beilleszti az újonnan talált linkeket,

amennyiben a link már szerepel a listában, abban az esetben nem fog bekerülni a struktúrába.

A linkek begyűjtésével párhuzamosan egy másik szálon elindul a az oldalak begyűjtése is.

Refinery: Ez az osztály felelős a Harvester által begyűjtött linkek tartalmának a letöltésért és

konvertálásáért sima egyszerű szöveges, plain text formátumba. Ez a folyamat lényegében

egy egyszerű HTML to Text konverzió melyben a HTML tag-ek scriptek és stílusok

eltávolításra kerülnek és csak a szöveg marad meg. A szótövező osztály segítségével itt

történik meg a szavak egyszerűbb alakra történő hozása, ami után a STOPWORD szűrés

következik. Ennek az eredményeként megkapjuk a tiszta és nyers szöveget.

6. ábra - Adatok begyűjtésének a folyamata

Stemmer: Ez az osztály felelős a szavak szótövezésért, körülbelül a leggyakoribb 100 000

szót tartalmazza a szószablya projektből, melyeket szerializálva perzisztens módon tárol. A

központi adatszerkezet itt is egy Dictionary mely azonnali elérést biztosít a szótövező

számára.

Dokumentumok tárolásáért és távolságának meghatározásáért felelős alrendszer

Segédosztályok halmaza mely a dokumentumok fontosabb adatainak eltárolását illetve a

köztük lévő távolságok meghatározását segíti.

Document: Olyan segédosztály mely adatstruktúraként funkcionál, tárolja az egyes oldalak

címét, ami egyedi azonosítóként funkcionál illetve az oldal szövegét, az oldalból kifelé

mutató hivatkozások listáját valamint hogy az oldalt sikerült-e letölteni a begyűjtési folyamat

során.

Page 20: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

20

DocumentDistance: Az Euklideszi távolságmetrikát figyelembe véve kiszámolja az oldalak

egymáshoz mért távolságát, és tárolja azokat a Storage osztály dokumentum távolság

mátrixában.

A távolságmérés a Storage osztály dokumentum mátrixa alapján történik, ahol a számítás a

következőképpen zajlik:

- Az távolságszámító algoritmus kigyűjti a közös szavak listáját melyre kiszámolja a

távolságmetrikát

- Ha a két dokumentumban vannak eltérő szavak, akkor azokra a képlet 0-t és az eltérő szavak

számosságát tartalmazná. Ez egy fölösleges négyzetre emelést és gyökvonást jelentene ezért a

program egyszerűen a különbségek számosságát hozzáadja a távolság metrikához.

√ 2 2 = √ 2 =

Adattároló alrendszer

Ez az alrendszer egyetlen osztály, a Storage osztályt tartalmazza. Az osztály lényege hogy a

begyűjtött adatokat perzisztens módon tárolja, és az alkalmazásban ezek az adatok bárhol, és

azonnal rendelkezésre álljanak.

Storage: Feladata az adatok perzisztens tárolása, mely szerializáció segítségével valósul meg.

A program indulásakor a már meg lévő adatok betöltődnek illetve a programból való

kilépéskor, ha időközbe bővült az adatbázis, akkor az új adatokkal együtt lementésre

kerülnek a már meglévő adatok.

Az osztály a következő adatokat tárolja:

- Dokumentumok (URL, Dokumentumok szövege, Oldalból kimutató hivatkozások listája,

Sikeresen letöltődött-e az oldal)

- Bejárandó linkek listája (URL)

- Dokumentum mátrix (A szavak dokumentumok szerinti előfordulásának számossága, URL

illetve szavak szerint indexelve)

- Dokumentumok távolságának mátrixa (Két oldal címével indexelve a két oldal közötti

távolságot adja, Euklideszi távolság metrika szerint)

- Számított távolság mátrix (A térképen elhelyezett pontok távolságának mátrixa)

- Dokumentum pontok listája( A térképen megjeleníteni kívánt pontok listája, mely tárolja a

pontok (x,y) koordinátáját, és a hozzá kötődő URL-t)

Térkép készítő és megjelenítő alrendszer

Page 21: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

21

Ez az alrendszer felelős a térkép elkészítéséért és megjelenítéséért. Két osztályt tartalmaz

mely az előbb említett két funkciót valósítja meg.

ViewModel: Ez az osztály generálja le a megjelenítésre szánt dokumentum csomópontokat

melyek az egyes dokumentumokat, weboldalakat szimbolizálják. Továbbá egy algoritmus a

weboldalak távolsága alapján elkészíti a térképet, aminek konkrét működése egy másik

fejezet tárgya.

Drawing: A megjelenítésért felelős osztály mely kirajzolja, és méretezi a térképet. Ebben az

osztály azonosítja a dokumentumokat koordinátájuk alapján mely a megjelenítés

szempontjából fontos.

DBSCAN: A dolgozatban bemutatásra kerülő általánosított DBSCAN algoritmus

végrehajtásáért felelős osztály.

Térképkészítő algoritmus

A weboldalak letöltése után a program kiszámolja a weboldalak egymáshoz viszonyított

távolságát, ami az Euklideszi távolságmérési metrika alapján történik.

Tehát kiindulási állapotként rendelkezésünkre állnak a weboldalak távolságai mátrixos

formában:

[

𝐷1,1 ⋯ 𝐷1,𝑛⋮ ⋱ ⋮

𝐷𝑚,1 ⋯ 𝐷𝑚,𝑛

]

ahol a mátrix oszlopai és sorai az egyes dokumentumok közötti távolságot szimbolizálják.

Tehát a Di,j Az i. és a j. dokumentum távolságát szimbolizálja.

Mivel a térképek kétdimenziósak szoktak lenni, illetve az emberi agy is kétdimenziós ábrákat

preferálja legjobban ezért a készített térkép is síkban készült.

Tehát az algoritmusnak készítenie kellett egydimenziós adatsorból egy kétdimenziósat.

Így hát át kellett gondolni, hogy hogyan is lehet egy dimenziós adatokból kétdimenziósat

csinálni.

Ennél a pontnál a fizikából sikerült ötletet meríteni, a következő képen:

Adott n darab pont a síkban melyeknek adott távolságokra kell elhelyezkedniük. Kezdetben a

pontokat véletlenszerűen helyezzük el a síkba majd a pontok között a távolsággal arányos

taszító illetve vonzó erő lép fel.

- Ha a pontok közötti távolság kisebb, mint az aktuális helyzetben akkor taszító erő

- Ha pedig a pontok közötti távolság nagyobb, mint az aktuális helyzet akkor pedig vonzó erő

Page 22: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

22

lép fel.

Tehát a pontok közötti távolságokból erőket lehet számítani melyek a rendszer pontjait,

elmozgatják.

𝐹→𝑒=∑

𝐹→𝑖

𝑛

𝑖=0

A pontokra gyakorolt eredő erők elmozdítják a pontot egy olyan helyre ahol az adott pont

egyensúlyban van a többivel. De mivel n darab pontunk van ezért ezt minden egyes pontra

meg kell ismételni.

Mivel a korrekciók során a már beállított pontjaink is elmozdulnak, ezért az algoritmust addig

kell ismételni, amíg az elmozdulásuk értéke egy kellően kicsi 𝜀 távolság alá csökken.

7. ábra - Dokumentumpontok árendeződése a kiszámított erők által

Az algoritmus működése:

Adott: n darab dokumentum és azok távolságából képzett mátrix.

Várt eredmény: n darab dokumentumhoz tartozó (x,y) koordináta a síkban

Az algoritmus működéséhez szükségünk van a valós távolságokra, melyet a dokumentumok

tartalom szerint meghatározott távolsága ad meg, ez az algoritmus egyik bemenő adata, mely

egy mátrix a továbbiakban jelöljük TR-et (azaz a valós távolságok mátrixa).

𝑇𝑅 = [

𝐷1,1 ⋯ 𝐷1,𝑛⋮ ⋱ ⋮

𝐷1,𝑚 ⋯ 𝐷𝑚,𝑛

]

Di,j Az i. és a j. dokumentum távolságát szimbolizálja.

Továbbá szükség van a TS mátrixra is mely a pontok síkban lévő aktuális távolságát mutatja,

azt a távolságot az (x,y) koordináták segítségével szintén az Euklideszi távolság metrika

alapján számítjuk.

𝑇𝑆 = [

𝑆1,1 ⋯ 𝑆1,𝑛⋮ ⋱ ⋮𝑆1,𝑚 ⋯ 𝑆𝑚,𝑛

]

Page 23: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

23

Si,j Az i. és a j. Dokumentum távolságát szimbolizálja.

Végül szükségünk van az erőhatásokat szimbolizáló TC-re azaz a korrekciós mátrixra mely a

TR és a TS közötti távolság arányát, vagyis az egymásra ható erőket mutatja.

Kiszámítása:

𝑇𝑅 =

[ 𝐷1,1

𝑆1,1⋯

𝐷1,𝑛

𝑆1,𝑛

⋮ ⋱ ⋮𝐷1,𝑚

𝑆1,𝑚⋯

𝐷𝑚,𝑛

𝑆𝑚,𝑛]

=[

𝐶1,1 ⋯ 𝐶1,𝑛⋮ ⋱ ⋮𝐶1,𝑚 ⋯ 𝐶𝑚,𝑛

]

Ci,j Az i. és a j. dokumentum közötti korrekció mértékét szimbolizálja.

Ha Ci,j < 1 akkor a jelenlegi távolság túl nagy ezért az algoritmus csökkenti a távolságot.

Ha Ci,j>1 akkor a jelenlegi távolság túl kicsi ezért az algoritmus növeli a távolságot.

Ha Ci,j = 1 akkor nem kell korrigálni az aktuális távolságot.

Az algoritmus működése során a pontok mozgását legjobban a TC mátrix korábbi illetve

aktuális elemenkénti összegének különbsége mutatja, ha ez a távolság elér egy küszöbértéket,

akkor az algoritmus leáll.

Vagyis a

Leállási feltétel: ∑ 𝒊∑ 𝑗 𝑇𝐶𝑒𝑙ő𝑧ő – ∑ 𝑖 ∑ 𝑗 𝑇𝐶𝑎𝑘𝑡𝑢á𝑙𝑖𝑠 < 𝜀 akkor az algoritmus leáll.

Az algoritmus működése:

DO

{

FOR (i: 0 -> n)

{

TS kiszámítása;

FOR (j:0-> n)

TC kiszámítása;

Pontok korrigálása a TC mátrixszal:

HA (i!=j) AKKOR

{

x[j]=(x[i]-x[j])* TC[i,j];

y[j]=(y[i]-y[j])* TC[i,j];

}

}

Page 24: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

24

}

WHILE (∑ 𝒊∑ 𝑗 (𝑇𝐶𝑒𝑙ő𝑧ő) –∑ 𝑖 ∑ 𝑗 (𝑇𝐶𝑎𝑘𝑡𝑢á𝑙𝑖𝑠 ) < 𝜀)

Az algoritmus költsége:

C = 2n3+n

2

Az algoritmus hatékonyságágának növelése:

Mivel az algoritmus mátrixokkal dolgozik ezért a számítási költség a legegyszerűbb esetben is

négyzetes. Mivel az algoritmushoz felhasznált mátrixok négyzetesek és a főátlóra

szimmetrikusak ezért: Az algoritmus hatékonyságának számításköltségének csökkentése

érdekében elég csak a főátló feletti elemeket kiszámítani azt algoritmushoz, hiszen a főátló

alatti részek ugyanazok.

Az algoritmus új költsége: 𝐶 =2𝑛3+𝑛2

2

Webes tartalom klaszterezése

A TDK dolgozat írása során igényként felmerült az adatok gépi csoportosítása, avagy

klaszterezése. Mivel nagy adatmennyiségeknél átláthatatlanná válnak az adatok. Ezért

elengedhetetlen az adatok klaszterezése a könnyebb áttekinthetőség végett.

Ha a felhasználó egy adott témában keres a dokumentum vektortér modell

távolságmetrikájával, és a klaszterezés segítségével könnyen megtalálhatja a számára fontos

adatokat, oldalakat.

A klaszterezés koncepciója hogy a hasonló dokumentumokat egy csoportba igyekszik

gyűjteni. Két dokumentum esetén pedig minél több a közös sző a két dokumentumban annál

hasonlóbbak, és annál kisebb a távolságuk az adott dokumentumoknak.

Mivel a webes adatok nagyon heterogének ezért olyan klaszterezési eljárást kellett választani,

amely képes az egyéni klaszteralakzatok felismerésére illetve a zajok kezelésére is.

A választásom a sűrűség alapú klaszterező eljárásokra esett melyek képesek az egyéni

klaszteralakzatok felismerésére, és a zajok kezelésére is.

Page 25: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

25

Ezen elvű algoritmusok közül a DBSCAN algoritmusra esett a választás a működési

hatékonysága és jó klaszterezési képességi miatt.

DBSCAN algoritmus bemutatása

Az algoritmust 1996-ban fejlesztették ki nagyméretű zajos adatbázisok klaszterezésérexiv

. Ez

egy sűrűség alapú eljárás mely a dokumentumok vektortérbeli sűrűségén alapszik, vagyis

ahogy a sűrűségük (távolságuk) alapján összefüggő dokumentum csoportokat észlel, azokat

egy klaszterbe sorolja.

8. ábra - Egyedi klaszteralakzatok felderítése DBSCAN algoritmus segítségével

Az algoritmus működéséhez elengedhetetlen két fontos paraméter megadása:

- EPS legnagyobb megengedett dokumentumtávolság

- Minimum Points (MinPtr) magelem minimális szomszédsága

Az algoritmus fontosabb elemei

- Magelem: olyan elem melytől EPS távolságra legalább MinPts számú pont található.

- Közbenső elem: a magelemből kiinduló egymástól legfeljebb EPS távolságba pontok

halmazának egy eleme.

- Szélső elem: a magelemtől EPS távolságon belőli pontok láncolatán elérhető olyan elem,

amelyből már más elemre nem indul hivatkozás.

- Külső elem: olyan elem, amely az megadott paraméterek alapján nem sorolható semmilyen

csoportba, azaz zaj.

Az algoritmus tulajdonságai:

Előnyök:

nem használ rácsot a sűrűség meghatározásához

Page 26: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

26

gyors, és alacsony számításigény

tetszőleges alakzatok felismerése

zajok hatékony kezelése, szűrése

Hátrányok:

EPS és MinPts paraméterek körülményes meghatározása

Egyenletes eloszlású minta esetén egy klaszterbe olvaszt, vagy mindent

különálló klaszternek (azaz zajnak)

Az algoritmus működése:

- A csoportosítandó elemek átvizsgálása magelemek után kutatva

- Magelemek ellenőrzése EPS és MinPts alapján

- Magelemhez tarozó csoportok kiépítése, a magelemből kiindulva, EPS távolságonkénti

pontok beolvasztásával

Pszeudo kód:

DBSCAN(D, EPS, MinPtr)

C=0 //Klaszter sorszáma

ForEach (P in D)

MagelemekKeresése(P,D,Eps,MinPtr, C)

SzomszédokKeresése(P, D, Eps)

Gyűjtsük ki P azon szomszédait D-ből melyek kissebbek EPS-től

MagelemekKeresése(P,D,Eps,MinPtr, C)

N=SzomszédokKeresése(P, D, Eps)

Ha Méret(N)>=Minptr akkor

C=C+1;

megjelölés magelemként (C indexel)

a klaszter elemeinek rekurzív kigyűjtése, a magelemből kiindulva

Az algoritmus költsége: 𝑂( ∙ o ( )

Page 27: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

27

DBSCAN paramétereinek dinamikus meghatározása

A klaszterezés során általános problémaként jelentkezik, hogy az adott dokumentum

vektortérben lévő elemeket hány csoportra, klaszterre osszuk fel. Mivel a döntés nem hozható

meg abszurd módon ezért számos technika és ötlet született ennek a meghatározására.

Az első és legegyszerűbb megoldás a klaszterezési „ököl” szabályxv

, azaz egy adott

vektortérben a klaszterek száma az alábbi képlettel határozható meg:

𝑘 ≈ √

2

Ez a képlet viszonylak jó iránymutatás a klaszterek számának meghatározására.

Mivel ez az szabály csak egy durva közelítést ad, ezért számos más ötlet is született a

megfelelő klaszterszámok meghatározására.

Egy másik elterjedt koncepció a „Elbow method”xvi

a nevét a klaszterezés során készített

diagram alakjáról kapta.

9. ábra - Elbow method szemléltetése

A görbe egy íj húrjára hasonlít ahol az optimális klaszterszámot a görbében bekövetkezett

törés adja meg. (Ahol feszítik a „húrt” ott vannak az ideális paraméterek.)

Page 28: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

28

DBSCAN algoritmus általánosítása

A DBSCAN algoritmus működéséhez két paraméter beállítása kulcsfontosságú. Ezeknek a

paramétereknek az értéke határozza meg a klaszterek számát.

Ha egy függvényként tekintünk, a két paraméterre az alábbi határértékelet kapjuk

Eps Minimum Points

(Minpts) Klaszterek száma Megjegyzés

0 > 0 0 Azaz minden pont zaj lesz.

0 = 0 n Azaz minden pontból

klaszter lesz

0 ≤ Minpts < n 1 Egy nagy klaszterré olvadnak össze a pontok

A kérdés tehát e határok között hogyan tudjuk megadni az algoritmusnak a lehető

legoptimálisabb paramétereket.

A legkézenfekvőbb megoldás az optimális klaszterszám eléréséhez az algoritmuskülönböző

paraméterekkel történő futtatása.

A paramétereket a hatékonyság érdekében a lehető legszűkebb tartományban kell tartani. De

mik is ezek a tartományok:

Min(Vektortér elemei)<Epsilon<Max(Vektortér elemei)

0<Minimum points<n/k

ahol n az elemek száma és k a klaszterezési ökölszabállyal megkapott szám.

A paraméterek azt a tartományt határozzák meg melyben a megoldás biztosan fog szerepelni.

Az iteratív keresés folyamata

Ahhoz hogy ez kétparaméteres algoritmust a paramétereitől függetlenné tudjuk tenni számos

iterációt, kell lefuttatni a fent definiált tartományok között.

Page 29: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

29

Az iteratív keresés jóval megnöveli a költséget, de cserébe meghatározza a két ismeretlen

paramétert az Epsilon-t és a MinPts-t.

A keresés költségét leginkább befolyásoló tényező az Epsilon léptékének a meghatározása.

Ennek az étéknek a nagysága után lehet felderíteni az egyes klasztereket.

A lépték 1000 iteráció esetén már jó közelítést ad az adott problémára.

Az iteratív keresés előtt fontos meghatározni néhány elemet melyek segítik a hatékony

működést. Ezek az elemek:

- Legkisebb távolság a dokumentum távolságok mátrixában

- Legnagyobb távolság a dokumentum távolságok mátrixában

- 𝑛

𝑘 ami a klaszterezési ökölszabály alapján kapható meg

A keresés során minden egyes iterációban lefuttatjuk a DBSCAN algoritmus majd kigyűjtjük

annak az értékeit.

Az iterációk számát a két paraméter szerint futtatjuk:

Az Eps paramétert a legkisebb és legnagyobb távolságérték között léptetjük a következő

léptékkel:

𝑙 𝑝𝑡 𝑘 =max(𝐷𝐷𝑀) −min (𝐷𝐷𝑀)

𝐼𝑡𝑒𝑟á𝑐𝑖ó𝑠 𝑓𝑒𝑙 𝑜 𝑡á𝑠

Ahol a DDM: Document Distance Matrix azaz a dokumentumok távolságának mátrixa

A MinPts paramétert pedig 1-től a

𝑘 - ig léptetjük

Hogy további hatékonyságbeli javulást érjünk el azt algoritmus futtatása során, definiálnunk

kell egy fontos feltételt, ami az esetleges zsákutcákat kizárja a keresésből.

Ez a probléma a nem megfelelően megválasztott paraméterek esetén az algoritmus egy nagy

szuperklaszterbe igyekszik olvasztani a pontokat.

Ha ezeket a feltételeket teljesítünk, akkor a keresési algoritmus költsége jelentős mértékben

redukálható.

Ilyen feltétek mellett a költség közel azonos az iterációk számával.

~ 𝑖𝑡𝑒𝑟á𝑐𝑖ó𝑠 𝑓𝑒𝑙 𝑜 𝑡á𝑠 ∙ 𝑂( ∙ o ( )

Page 30: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

30

Algoritmus:

IterativeSearch(resolution)

FOR MinPts1..(n/k) lépték:1

FOR EPS Min(DDM)..Max(DDM) Lépték: Max(DDM)-Min(DDM)/Resolution

DBSCAN(D, Eps, MinPts)

Klaszterezési adatok kigyűjtése

Belső ciklus leállási feltételeinek vizsgálata

Leggyakoribb klaszterméret megkeresése

Visszatérés a leggyakoribb klaszterméret paramétereivel.

A DBSCAN algoritmus használata során a tapasztalatok azt mutatják, hogy azt iteratív

keresés során a klaszterek számának az alakulása normál eloszlást követ. Ez az eloszlás függ

az elemek számától illetve az iteratív keresés léptékétől.

10. ábra - klaszterek számának gyakorisági eloszlása

Az ábrán látható diagram X tengelye a klaszterek számát mutatja, míg az Y tengely pedig az

egyes klaszterek esetén hány iterációban jött ki az adott klaszterszám.

0

500

1000

1500

2000

2500

3000

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70

10 000 kisérlet elvégzése után kapott gyakoriságok eloszlása

Page 31: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

31

Jelen diagram egy 72 elemű mintahalmazról készül, amelynél jól látszik, hogy a klaszterezési

ökölszabály jól közelíti a klaszterek számát.

√72

2= 6

A különböző minták klaszterezése során arra a következtetésre jutottam hogy minél finomabb

léptéket választok Epszilonnak az iteratív keresés során a fent definiált tartományban, annál a

kapott statisztika annál jobban közelíti az ökölszabály szerint kapott értéket.

Az elkészült program hatáskörének elemzése

Az elkészült program segítségével jól átláthatóvá válnak az egyes oldalak kapcsolati illetve

tartalombeli viszonyai. Ezáltal nem csak egy kulcsszavak alapján történő szűrést lehet

elvégezni, hanem vizuálisan az oldalak tartalombeli viszonya is jól látszik. Ezáltal kivallóan

szemléltetve az egyes oldalak hasonlóságát illetve távolságát.

A vizualizáció lévén könnyedén meg lehet határozni a tartalombeli határokat, a térkép

segítségével, mely nagyban segíti az adott tématerület iránt érdeklődő felhasználóknak a

további témához tartozó oldalak megtekintését, felderítését.

A webtérkép szempontjából kétféle hatáskört kell megvizsgálni:

- az egyik a lokális (azaz a site-ok szintjén történő térképkészítés)

- globális (azaz egy nagy kiterjedésű „internet méretű” térkép készítési )

feldolgozási szintet kell megvizsgálnunk.

A lokális szinten történő elemzés tipikusan egy site-ra vonatkozik, azaz egy weboldal

aloldalainak viszonyát deríti fel. Ebben az esetben az elemzés világosan megmutatja,

Page 32: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

32

11. ábra - szemléltető kép a programból

hogy az adott oldal mennyire homogén illetve milyen tartalomterületekre különöl el, és

melyek azok az oldalak, amik nem illenek ezekbe a tartalmakba. Azonban nem csak a nem

odaillő oldalakat vizsgálhatjuk meg, hanem például az egyes oldalkategóriák kialakítását is jól

támogathatjuk a webtérkép segítségével. Alapesetben egy nagyméretű portálnál mindig is

problémát jelent a megfelelő navigációs kategóriák meghatározása illetve azok megfelelő

alkalmazása. Ám ha vizuálisan jól elkülöníthető csoportokat látunk a térképen, az

egyértelműen jelzi, hogy hol vannak az egyes tartalombeli kategóriák határai. További rejtett

összefüggések tárhatók fel ilyen módon a DBSCAN algoritmus használatával, melynek

segítségével automatikusan meghatározásra kerülnek az egyes csoportok, vagyis leendő

kategóriák.

A globális alkalmazási hatáskör igen nagy kihívást jelent, mivel hatalmas mennyiségű adat áll

a rendelkezésünkre. Egyetlen megkötés talán az, hogy a tatalom alapú metrika csak egy adott

nyelven belül működik megfelelőn. Tehát többnyelvűség esetén az elemzés nem megfelelően

fog működni. Mivel akár mennyire is különbözőek két nyelv szavai mimig lesznek olyan

alaki átfedések melyeket a rendszer félreértelmez illetve minden nyelvhez másfajta szótövezőt

kell alkalmazni.

További problémát jelent még hogy egy adott nyelvterületű weboldalak száma hatalmas, ami

hihetetlen mértékű tárkapacitást és számítási erőforrást igényel egy webtérkép elkészítéséhez.

Page 33: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

33

Csak a magyar nyelvű .hu domain Google által ismert oldalainak a száma közel 100 millió

oldalt számlál, amiből egyenesen következik, hogy egy ilyen méretű térkép készítéséhez

hihetetlen nagy erőforrásokra van szükség, melyet egy normál teljesítményű asztali gép nem

tud kiszolgálni, vagy ha igen akkor hihetetlenül magas számítási idő és tárterület árán, ami

pedig elrontja az adatok naprakészségét.

Közelítő számítások egy magyar nyelvű webtérkép elkészítéséhez:

A .hu domain alatt 98 400 000 oldal találhatóxvii

A weben található oldalak átlagos mérete 320KBxviii

Ebből következik, hogy egy ilyen térkép tárigénye: 29.32 TB

Konkrét példa a webtérkép alkalmazására

A program szemléltetését, a Miskolci Egyetem: Általános

informatikai tanszékxix

honlapjának feltérképezésével és

kielemzésével mutatom be. Ahogyan az ábrákból is jól

látszik egy erősen központosított oldalról van szó, melynél

a hivatkozások egy oldalba futnak be, ez az oldal pedig a

főoldal. Ez egy egyszerű és erős koncepció miszerint a

felhasználó mindent el tud érni a főoldalról, ám a nagy

hátránya hogy egy oldalon, a rengeteg hivatkozás

átláthatatlanná teszi a rendszert.

További megfigyelésként az látszik, hogy az oldal

viszonylag egységes, homogén tartalmat mutat az oldalak

többségét nézve. Ez az egység a keresőmotorok

rangsoroló algoritmusának szempontjából is előnyös, hiszen a keresőmotoroknál nagyban

számít az oldal egységes tartalma, ami a találati listán

történő előrelépést jelent.

A központi tartalmak egy egységben koncentrálódnak,

melyből csak az eltérő tartalmú oldalak térnek el.

Ezek az oldalak a következőek:

Munkatársak: Ez az oldal csak egy képet tartalmaz,

melynél az oktatók fejére kattintva el lehet érni az az

oktatók oldalait.

Az informatikai intézet szolgáltatásai: az

informatika intézet szolgáltatásait bemutató aloldal

Számítógép terem használati szabályok: a termek

használati szabályai.

Info klub: ezeknél a tartalmaknál jól látszik, hogy

Page 34: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

34

eltérnek a tanszék általános dokumentumaitól, tehát ezeket érdemes egy külön kategóriába

kiemelni.

Továbbá az oldal az alábbi kulcsszavakra fókuszál, ezek szerepelnek a belső magban:

start

page

miskolci

egyetem

gépészmérn

öki

kar

doktori

iskola

neptun

iit

mail

home

tanszék

munkatárs

oktatás

kutatás

hallgató

kapcsolat

infoklub

általános

információ

történet

alapítvány

hírek

esemény

2010

barabás

elek

halász

hadházi

kocsis

kovács

krizsán

mileff

pance

smid

szűcs

wagner

5

2009

informatikus

bsc

gyakorlat

téma

laborok

felszereltség

szolgáltatás

használati

szabályzat

in102

órarendje

in103a

in103b

in104

faq

gyakori

kérdés

projektorok

foglaltsága

oktatók

kutatók

oktatók

doktorandus

zok

rendszergaz

dák

demonstráto

rok

baksáné

e

p

t

ficsór

l

kecskeméti

g

sz

z

mészáros

m

répási

salánki

j

gy

tanáraink

tóth

drótos

d

vincze

é

képzés

tárgy

kiírások

letölthető

anyag

projekt

feladatok

szakdolgoza

tok

komplex

feladat

éves

diplomamun

kák

msc

szakmai

gyakorlat

szigorlat

záróvizsgák

felvételi

záróvizsga

műsz

inf

ősz

tavasz

geial337b

2008

2007

tdk

kutatási

projektek

fejlesztési

munka

szaktanács

szervezeti

működés

ergo

bibamus

kép

galériák

oktatási

cég

Ezekre a szavakra mindenképpen kilelhet hegyezni egy estleges keresőoptimalizálást azaz

SEOxx

-t. A keresőszavakból jól látszik hogy az oldal tartalma teljes mértékben lefedi a a hozzá

tartozó tanszéket. Azaz szerepelnek az ott dolgozó munkatársak nevei, a fontosabb feladatok,

tárgyak, termek…stb. Vagyis az oldalon lényeges információk találhatóak meg, fölösleges

nem odaillő tartalmak pedig nem. Az oldal homogenitás szempontjából is egységes képet

mutat, tehát tartalmilag egy jól felépített oldalról van szó.

A program támogatja továbbá a kulcsszavakra történő szűrést is.

12. ábra - Kulcsszavakra történő szűrés a program segítségével

Valamint a dokumentumok közös tartalomi metszetének előállítását:

Page 35: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

35

13. ábra Tartalmi metszetek kiértékelése

Összegzés, kitekintés

A tartalom alapú webtérkép egy jövőbeli kereséséi alternatíváját körvonalazza elénk, egy

tisztán tartalom alapján történő összefüggések, és tartalmi távolságok alapján készült

webtérkép nagyban megkönnyítené az internetes oldalak közötti navigációt és a web tartalmi

áttekintését. Ám mivel az internet méretei túlmutatnak egy normál asztali számítógép

kapacitásán, sőt egy fejlettebb szerver feldolgozási képességein is, ezért csak a Google-höz

hasonló számítási és tárkapacitási igényekkel rendelkező cégek lesznek csak képesek egy

ilyen webtérkép megvalósítására.

Addig is a webtérkép alkalmazása csak kisméretű problématerek kezelésére lesz elegendő,

mint például oldalak tartalmi összefüggéseinek, homogenitásának vizsgálata. Ez igencsak kis

szelete az internetnek, ám mégis sok rejtett összefüggés és következtetést tudunk levonni az

egyes oldalak elemzése által. Melyek nagyban megkönnyítik az oldalt szerkesztő személyek

munkáját.

A webtérkép jelenlegi formájában egyfajta eszközként, toolként szolgálhat a web helyek

szerkesztőinek, adminisztrátorainak, hogy oldalukat hogyan tudnák minél jobban

egységesíteni és az egyes kategóriákat-szekciókat kialakítani.

További használati alternatívaként megemlíteném, hogy a térkép kiválóan alkalmas egy

modern oldaltérkép készítésére, mely nemcsak az elérhető oldalakat hanem azok tartalmi

viszonyait is ábrázolja.

A TDK dolgozat további produktuma a DBSCAN algoritmus automatizálása, mely számos

helyen kiválóan alkalmazható, bonyolultan meghatározható klaszterezési paraméterek nélkül.

Tökéletes alternatívát jelentve zajos összetett adathalmazokra.

Page 36: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

36

Függelék

14. ábra - Képek a programból 1.

15. ábra - Képek a programból 2.

Page 37: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

37

Képek és ábrák jegyzéke

1. ábra – szavak előfordulásának tárolása dokumentumbeli pozíció nélkül ............................ 10 2. ábra – szavak előfordulásának tárolása dokumentumbeli pozícióval .................................. 10 3. ábra - Hash tábla működése ................................................................................................. 11 4. ábra - minta a PageRank számításához ................................................................................ 16 5. ábra - A program felépítése .................................................................................................. 18

6. ábra - Adatok begyűjtésének a folyamata ............................................................................ 19 7. ábra - Dokumentumpontok árendeződése a kiszámított erők által....................................... 22 8. ábra - Egyedi klaszteralakzatok felderítése DBSCAN algoritmus segítségével .................. 25

9. ábra - Elbow method szemléltetése ...................................................................................... 27 10. ábra - klaszterek számának gyakorisági eloszlása .............................................................. 30 11. ábra - szemléltető kép a programból ................................................................................. 32 12. ábra - Kulcsszavakra történő szűrés a program segítségével ............................................. 34 13. ábra Tartalmi metszetek kiértékelése.................................................................................. 35

14. ábra - Képek a programból 1. ............................................................................................. 36

15. ábra - Képek a programból 2. ............................................................................................. 36

Page 38: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

38

Irodalomjegyzék, Hivatkozások

Könyvek:

[ 1.] Tikk Domonkos: Szövegbányászat

[ 2.] Trey Nash C# 2008

[ 3.] SAMS: Joe Mayo C# 3.0 with the .NET Framework 3.5

[ 4.] Kovács László: Adatelemzési és adatbányászati módszerek jegyzet

[ 5.] Kovács László: Szövegbányászat és dokumentumkezelés

Internetes források:

[ 1.] http://www.googleguide.com/google_works.html

[ 2.] http://ppcblog.com/how-google-works/

[ 3.] http://www.google.com/howgoogleworks/

[ 4.] http://www.microsoft.com/net/

[ 5.] http://dev.mysql.com/doc/

[ 6.] http://mokk.bme.hu/projektek/szoszablya

[ 7.] http://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set

[ 8.] http://en.wikipedia.org/wiki/DBSCAN

Page 39: TDK DolgozatTDK Dolgozat Készítette: Vágó Tamás II. éves mérnök informatikus Msc hallgató Konzulens: Dr. Kovács László Általános Informatikai Tanszék 2 Előszó Napjainkban

39

Hivatkozások:

i http://en.wikipedia.org/wiki/SMART_Information_Retrieval_System

ii Tikk Domonkos: Szövegbányászat

iii http://szovegbanyaszat.typotex.hu/content/html/ch2zipf/ch2zipf.html

iv http://tartarus.org/~martin/PorterStemmer/

v http://en.wikipedia.org/wiki/Stopword

vi http://www.ranks.nl/stopwords/hungarian.html

vii http://en.wikipedia.org/wiki/Bitmap_index

viii Information Retrieval: Implementing and Evaluating Search Engines. Cambridge

ix Kovács László: Adatbázisok tervezésének és kezelésének módszertana

x http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

xi Tikk Domonkos: Szövegbányászat

xii http://www.googleguide.com/google_works.html

http://ppcblog.com/how-google-works/

http://www.google.com/howgoogleworks/

xiii http://www.webworkshop.net/pagerank.html

xiv http://rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/fpc/man/dbscan.html

xv Kanti Mardia et al. (1979). Multivariate Analysis. Academic Press

xvi Kanti Mardia et al. (1979). Multivariate Analysis. Academic Press

xvii http://www.google.hu/search?sourceid=chrome&ie=UTF-8&q=site:.hu

xviii http://searchengineland.com/google-web-report-average-page-size-320-kb-46316

xix http://www.iit.uni-miskolc.hu/iitweb/opencms/department/index.html

xx http://www.seotools.hu/