• Nem Talált Eredményt

4. Algoritmus fordítási plágiumok keresésére

4.3. Az új fordításiplágium-kereső algoritmus vizsgálata

4.3.4. A szótár méretének hatása a plágiumkeresésre

A szótár mérete kétféleképpen is befolyásolja a plágiumkeresést, először is a hiányzó fordítások – ha éppen azt használta ott a fordító – csökkentik a találati esélyt, azaz rontják a pontosságot. Ugyanakkor egy kisebb méretű szótár növeli a sebességet, hiszen minél kevesebb fordítása van egy szónak, annál kisebb lesz a keresőkérdés, és annál gyorsabban fut le a mondat-összehasonlító algoritmus is. Ebben a fejezetben ezt a két szempontot vizsgáljuk meg részletesebben, hogy lássuk, hogyan érdemes kialakítani a szótárat, és van-e olyan pont, amikortól már az újabb szavak, illetve jelentések nem növelik a pontosságot jelentősen, csak a sebességre vannak negatív hatással.

Először nézzük az indexált keresésnél elérhető sebességet. Ez a rész szorosan összefügg a 4.3.2 fejezettel, összefoglalásul csak annyi álljon itt, hogy ugyan az új algoritmus lineáris sebességű – azaz elvileg az összes az adatbázisban lévő mondattal össze kell hasonlítani a kereséshez használt mondatot – ugyanakkor könnyű belátni, hogy le lehet szűrni azokat a mondatokat egy indexált keresés segítségével, amelyek sokkal nagyobb

95 valószínűséggel lehetnek jó fordítások. Ugyanakkor ez az indexált keresés sem konstans idő alatt fut le.

A tesztekhez egy Dell PowerEdge 2950 gépet használtunk az alábbi paraméterekkel:

· 2* Intel Xeon E5345 @ 2.33GHz (4 mag) processzor

· 8GB memória

· 2TB háttértár

Sajnos ez a gép nem állt teljes egészében a rendelkezésünkre, más szolgáltatások is futottak rajta a tesztek során. Valószínűleg ezt tükrözi egy-két kiugró keresési érték, illetve a viszonylag nagy szórás a keresési időben, ugyanakkor ez fontos adat, hiszen azt jelenti, hogy erre egy leterhelt szerver esetén számítani kell. Ez viszont semmiben sem befolyásolta az eredmények értékelhetőségét: mint látni fogjuk, a trendek jól látszanak így is.

0 0,5 1 1,5 2 2,5 3 3,5 4

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100

4.19. ábra: Lekérdezés sebessége (mp) 1-10 szóig 100 próbálkozás

A 4.19. ábrán jól látszik, hogy a sebesség igen ingadozó, és ez nem írható mind a szerver leterheltségének a rovására. Az átlagsebességek és a szórás az 4.20. táblázat szerint alakulnak 1-20 szavas lekérdezésekre.

Szavak száma Átlag Szórás 1 0,2231291 0,190574922 2 0,407189667 0,213336076 3 0,552207151 0,268039935 4 0,452547352 0,251823843 5 0,536414057 0,363305438 6 0,780704475 0,298026441 7 0,843644614 0,428144216 8 0,836708149 0,40908436 9 1,048863718 0,390252266 10 1,068794513 0,518749782 11 1,320166534 0,561434351

96

Szavak száma Átlag Szórás 12 1,308967463 0,468942174 13 1,564688546 0,61686659 14 1,647964079 1,830034407 15 1,627764607 1,831342686 16 1,674288263 0,469458253 17 1,691041177 0,644338773 18 2,032163346 0,60317575 19 2,322987077 0,788666072 20 2,024361214 0,788597686

4.20. táblázat: Lekérdezés átlagsebessége (mp) és a szórás a szavak számának függvényében

A lekérdező-szavakat ehhez a teszthez a Wikipédia egyik darabjából vettük folyamatosan, szótövezve, az összes szótövet felhasználva. 100 lekérdezés nem elég ahhoz, hogy ez elég véletlenszerű legyen, így a gyakori szavaknál sokkal több adattal kellett a szervernek megbirkóznia, mint a ritkáknál; ezért is fordulhatnak elő kiugróan magas és alacsony értékek a keresés során. A 4.21. ábrán a keresési sebesség és a lekérdezésre használt szavak számának az összefüggése látszik. A pontok mérete a szórásnak felel meg. Jól látszik, hogy a függvény lineáris, ennek az oka az, hogy az indexált kereséshez használt szoftver (Solr) minden bemenő szóval végez egy keresést, és ezek összesített eredményét adja vissza.

Ezen az adott hardveren az összefüggés körülbelül így alakul, egy n szóból álló lekérdezésre: tn ≈ n ∙ 0,1 mp

Igazából számunkra most nem is érdekes, hogy ez pontosan mennyi, hiszen feladatunk nem egy produkciós szerver felállítása, inkább csak azt érdemes kiemelni, hogy a keresési idő lineárisan függ a keresőkérdés szavainak számától, máshogyan fogalmazva, a keresési idő lineárisan függ a szótárunk méretétől. Ez egy nagyon fontos megállapítás, és ebből következik, hogy valószínűleg nem érdemes nagyon ritka szavat, illetve ritka jelentéseket a szótárunkban tartani, mert az komolyan rontja a keresési időt, de a pontossághoz nem járul hozzá nagyban. Egy szöveg leggyakoribb szavai közül 4000 adja ki annak 97,5%-át (Crystal 2003), azaz valószínűleg igen pontos eredményt lehet elérni már egy kisebb szótárral is. A következőkben ezt elemezzük részletesen.

97 4.21. ábra: A keresés sebességének (mp) alakulása a keresőkérdés hosszának (szó)

függvényében

Most nézzük meg, hogy miként tudjuk csökkenteni a bemenő lekérdezés szavainak számát, vagyis a szótár méretét. Mivel nem állt rendelkezésre egy igazi nagyszótár, ahol a szavak jelentései fordítási gyakoriság szerint vannak sorba téve, így egy közelítő megoldást alkalmaztunk: a szavak előfordulási gyakoriságát vettük alapul, azt feltételezve, hogy egy gyakori szó jobb fordítás, mint egy ritkább. Ez természetesen nem feltétlen igaz, de mint látni fogjuk erre a felhasználási célra ez is megfelelő eredményt adott.

A kísérlet az alábbiak szerint került kialakításra: az előző fejezetben is használt 65 000 mondatos párhuzamos korpusz felhasználásával, 16 különböző szótármérettel lefuttattuk ugyanazt a 65 000 keresést a teljes angol Wikipédiát tartalmazó adatbázison, és mértük a fedés értékét és a szózsák méretét. A szótár méretét úgy befolyásoltuk, hogy egy szónak maximum hány fordítása található meg benne. Az 1-es paraméter azt jelenti, hogy csak a leggyakoribb fordítása (illetve a korábban ismertetett okból a fordításai közül a leggyakoribb szó), az 5-ös paraméter pedig azt jelenti, hogy a leggyakoribb 5, amennyiben van 5 fordítása. Érthető módon egy idő után a szótár mérete nem növekszik, hiszen a szavaknak véges számú fordításuk van.

98 4.22. ábra: A fedés értéke és a szózsák mérete a szótár méretének a függvényében Mint az a 4.22. ábrán látszik, a fedés értékének van egy maximuma, amikortól már hiába növeljük a szótárunk méretét, az algoritmus teljesítménye nemhogy nem javul, de még romlik is. Ez érdekes eredmény, és magyarázata valószínűleg a hasonlósági metrikában rejlik, amely a nagyon ritka fordítások miatt rosszul párosítja össze a szavakat, illetve olyan szavakat is azonosnak talál, amelyek nem azok, csak azért, mert az egyik szó ritka jelentése egyezik egy másik szó gyakoribb jelentésével.

4.23. ábra: A fedés értéke a szótár méretének a függvényében

99 Kinagyítva a 4.23. illetve 4.24. ábrán azt láthatjuk, hogy a legmagasabb értéke a fedésnek 8-nál van ugyan, de 5 és 10 között gyakorlatilag alig változik, míg a szózsák mérete egészen 30-40-ig meredeken emelkedik.

4.24. ábra: A fedés értékének a változása a szótár méretének a függvényében Ezek alapján egy produkciós rendszerben az 5 fordítást tartalmazó szótár használata javasolt, amely 1%-kal alacsonyabb fedés mellett 39%-kal alacsonyabb futási időt eredményez, mint a legjobb, maximum 8 fordítást tartalmazó megoldás.

1 2 3 4 5 6 7 8 9 10 15 20

szózsák mérete 8,6 16,0 22,7 28,6 33,9 38,9 43,3 47,3 50,8 54,1 66,6 75,3 fedés 0,349 0,479 0,525 0,541 0,556 0,558 0,558 0,561 0,561 0,560 0,551 0,544

% 37,17% 9,52% 3,14% 2,68% 0,34% 0,05% 0,62% -0,01% -0,26% -1,50% -1,32%

4.25. táblázat: A fedés értéke a szótár méretének a függvényében