• Nem Talált Eredményt

2. Félig átlapolódó szavas darabolás

2.2. Darabolási eljárások összehasonlítása

2.2.1. Hasonlóságok kimutatása

Az előző fejezetben már érintőlegesen említettük a paraméterek jelentőségét. Most nézzük meg részletesen, milyen hatással vannak a különböző darabolási eljárások paraméterei a hasonlóság kimutatására.

Azt mindenképpen meg kell említeni, hogy tulajdonképpen lényegtelen, hogy számszerűleg mekkora egyezést mutat ki egy eljárás két dokumentum között, a lényeg, hogy jól elkülöníthetőek legyenek a hasonlóságot felmutató dokumentumpárok a különbözőektől. Egy extrém példával élve, ha egy algoritmus akármely két nem hasonló dokumentum között 20 százalék egyezést talál, az még nem jelenti azt, hogy nem használható, hiszen ha a legkisebb tényleges egyezésre is felmegy ez az érték 40-re, akkor jól elkülöníthető eme két eset. Természetesen az ilyen algoritmus csak a hasonlóság meglétének kimutatására alkalmas, a hasonlóság mértéke nem állapítható meg belőle, de ez a legtöbb alkalmazásban elegendő is, hiszen mint már említettük, ezek az eljárások általában egy gyors előszűrők egy részletesebb, lassabb, de pontosabb összehasonlításhoz, felhasználói vizualizációhoz.

Az átlapolódó szavas darabolás paramétere, mint már korábban beláttuk, nincs hatással az adatbázis méretére és a futási időre. Viszont óriási a jelentősége a hasonlóság kimutatásánál, illetve a program aktuális problémára szabásánál.

Tesztekhez a Szent Biblia három magyar fordításával dolgoztunk, ezek: Károli Gáspár fordítása (1591), a katolikus fordítás, Szent István társulat (Békés 1951), és a református fordítás (Református 1993). Ezek tekinthetők úgy, mint egymás átiratai, habár ugyanannak a forrásnak a magyarra fordításai. Ezekből emeltünk ki azonos szakaszokat a tesztekhez, és ezeket egy-egy külön dokumentumként elmentettük. A 2.6. ábra a dokumentumok közötti hasonlóságot ábrázolja az átlapolódó szavas darabolás paraméterének függvényében.

34

0 10 20 30 40 50 60 70 80 90 100

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Átlapolódás paramétere: n

Egyezés mértéke (%)

1kor13_karoli.txt/1kor13_ref.txt 1kor13_karoli.txt/1moz_kat.txt 1kor13_karoli.txt/2kor_kat.txt 1kor13_karoli.txt/2moz20_karoli.txt 1kor13_karoli.txt/2moz20_kat.txt 1kor13_karoli.txt/2moz20_ref.txt 1kor13_kat.txt/1kor_kat.txt 1kor13_kat.txt/1kor13_karoli.txt 1kor13_kat.txt/1kor13_ref.txt

2.6. ábra: Hasonlóság vizsgálata

átlapolódó szavas darabolás esetében, a paraméter függvényében

Mint az a grafikonból is kitűnik, az összes függvény monoton csökkenő, a 100%-os egyezést mutató mintát kivéve, amely végig megtartja az értékét. Ez a monoton csökkenés könnyen belátható. Vegyünk ehhez alapul egy x szavas egyezést két dokumentum között. Ebből átlapolódó szavas darabolás esetén x-(n-1) töredék képződik. Minél nagyobb n értéke, annál kevesebb töredék képződik és annál kisebb lesz az egyezés. Ez a képlet csak addig használható, amíg n értéke nem haladja meg x-ét, amennyiben meghaladja, az eredmény magától értetődően nulla lesz, azaz nem jelzi ki az egyezést. Ezt a tudást nagyon jól fel lehet használni a paraméter meghatározásához.

Ha két szöveget a stílusa illetve a szóösszetételek, kifejezések szempontjából szeretnénk összehasonlítani akkor egy 2-es, 3-as érték lesz a célravezető. Hiszen az ilyen szerkezetek általában két-három szóból állnak. Ez nagyon jól megfigyelhető a diagramon is. A sötétkékkel jelölt függvény a Szeretet himnuszának (1 kor. 13) a hasonlóságát mutatja a Károli Gáspár, illetve a református fordításban. Ezt a két változatot úgy is szokták nevezni, hogy új illetve régi fordítású református Biblia. Az egyezés mértéke n=2 esetében 43%, n=3 esetében 30% míg n=4 esetében már csak 22%. Ez annyit jelent, hogy a Károli Gáspár fordításban található töredékek ennyi százaléka található meg a református fordításúban is.

35 A 9.1 mellékletben megtalálható ez a két szövegrészlet valamint a katolikus fordítású is.

Jól láthatóak az azonos mondatszerkezetek az első kettőben és az ettől nagyobb mértékben eltérőek a harmadikban.

Amennyiben az ilyen mondatszerkezeteket nem szeretnénk kimutatni nincs más dolgunk, mint, hogy nagyobb értéket adunk a paraméterünknek. Ha egy pár mondatos, folyamatos egyezést is ki szeretnénk mutatni, de nem akarjuk, hogy túl „érzékeny”

legyen a keresőprogramunk a mondatszerkezetekre, akkor egy 5-ös 6-os értéket érdemes választani.

Amennyiben csak nagyobb részek egyezésének a kimutatására van szükségünk, jó választás lehet egy 10 feletti paraméter, amely a kisebb hasonlóságokat már nem mutatja ki. Így nem kell ezeknek a későbbi kiszűrésével foglalkozni.

Ezeket a megoldásokat „kombinálni” is lehet, azaz lehet kisebb paramétert választani, ugyanakkor megkövetelni, hogy több azonos töredék legyen adott távolságon belül, ahhoz, hogy egyezésnek vegyük. Ez utóbbi rendszer rugalmasabban paraméterezhető utólag, működés közben, az adatbázis újraépítése nélkül, ugyanakkor ezért a rugalmasságért az adatbázis méretének a növekedésével kell fizetni.

Mint már azt korábban említettük, a mondatonkénti darabolásnak nincsen paramétere.

Még egy szempontból különleges a mondatonkénti darabolás: nem érzékeny a mondatok felcserélésére. Ez triviális, de nagyon lényeges tulajdonsága. A többi algoritmus nem veszi figyelembe a mondatok határát, ezért érzékenyek a mondatok felcserélésére.

A mondatonkénti darabolás esetén mindenképpen oda kel figyelni arra, hogy a rövidebb mondatok, gyakori kifejezések, idézetek több dokumentumban is megtalálhatóak lehetnek, és ezért könnyen ad egy-egy hamis pozitív találatot. Arra is érdemes odafigyelni, hogy szándékos plagizálásnál könnyebb minden mondaton egy picit változtatni, mint minden n-edik szón, így teljes egyezést keresve, szinonima szótár használata nélkül nem feltétlenül alkalmas plágiumkeresésre. Erre a következő fejezetekben külön is ki fogunk térni.

Természetesen el lehet képzelni egy olyan felhasználási területet is, ahol ez a tulajdonsága előnyére válhat. Ha például meg szeretnénk tudni, hogy mely dokumentumban idéznek rendszeresen bibliai verseket, akkor azt legegyszerűbben

36 mondatonkénti darabolással lehet megvalósítani. Ezeket a hasonlóságokat az átlapolódó szavas darabolással is ki tudnánk mutatni, de nem szabad elfeledkeznünk arról, hogy mennyivel több töredék keletkezne abban az esetben.

A hash-kódon alapuló darabolásnál nagyon érdekes diagramot kapunk, ha ábrázoljuk a fájlok között fennálló hasonlóságot a paraméter függvényében (2.7. ábra).

0

hash-kódon alapuló darabolás esetében, a paraméter függvényében

Rögtön szembe tűnik, hogy nem monotonok a függvények. Ez igen nagy problémát jelent amennyiben kisebb átfedéseket is ki akarunk mutatni. Például ha éppen olyan paramétert használunk, amelyiknél láthatóan lecsökkennek az értékek, akkor legrosszabb esetben egyáltalán nem kapunk egyezést. Miért van ez a nagy ingadozás? A válasz egyszerű, és tulajdonképpen már a 2.1.2 fejezetben, ahol a keletkező töredékek mennyiségét vizsgáltuk, meg is válaszoltuk. Érdemes összehasonlítani az ott található diagramot ezzel. Azt vehetjük észre, hogy ahol ez a diagram ugrásszerűen leesik, ott a 2.5. ábrán, annak a görbének, amelyiket a bibliai versek feldolgozásából kaptunk, és a töredékek átlagos hosszát ábrázolja, az ideálisnál magasabb értéke van. Ezek azok a helyek, amelyeken az adott stílusú vagy nyelvű szövegnek az adott paraméter mellett kevés töredékhatár szava van.

Az, hogy ez a két dolog így összefügg nagyon jól felhasználható a megfelelő paraméter megtalálásában. Amennyiben rendelkezésünkre állnak olyan stílusú dokumentumok, mint amelyekkel később az adatbázist is fel szeretnénk tölteni, akkor elég csak a

37 daraboló eljárást lefuttatni ezekre, és megnézni, hogy melyik paraméternél mekkora lett az átlagos töredékhossz. Azok az átlagok, amelyek jóval nagyobbak a paramétereknél, azt jelzik, hogy az adott paraméter nem alkalmas számunkra. A többiből meg az alapján érdemes válogatni, hogy mekkora hasonlóságot szeretnénk kimutatni.

Nagyon kis paraméterek esetén a töredékek száma megközelíti az átlapolódó szavas darabolásét, így ezeknél az értékeknél elképzelhető, hogy érdemesebb azt használni, mivel jóval megbízhatóbban ki tudja mutatni a hasonlóságot.

Ha kisebb szakaszok egyezését is ki szeretnénk mutatni, akkor egy 5 körüli érték lehet a legcélravezetőbb. Amennyiben csak hosszabb egyezésekre vagyunk kíváncsiak, ennél nagyobb értékeket kell választanunk. 10 feletti értékeknél viszont már nagyon vigyázni kell arra, hogy egyre nagyobb a valószínűsége annak, hogy az egyező részek pont beleesnek egy-két hosszabb (akár száz szó feletti) töredékbe.