A Tordai-féle szótövező

A tövezőnek négy verziója létezik.

  1. A Light1 szótövező csak a leggyakoribb 14 főnévi esetet kezeli. Ennek ellenére már ez is jelentékenyen javíthatja a keresési hatékonyságot. Nézzük a tesztként használt Szeged Korpuszt. Ebben a főneveknek csak 26%-a szerepel toldalékolatlan formában, a maradék 74%-ból további 36%-ot fed le a Light1 által kezelt 14 eset, tehát a legegyszerűbb szótövezővel már a főnevek több mint fele a megfelelő szótőre képződik. A hatékonyságot tovább növeli, hogy a többi névszók közül a melléknevek és számnevek morfológiai paradigmája is hasonló.
  2. A Light2 már 21 esetet kezel, valamint a Light1 által figyelmen kívül hagyott egykarakteres toldalékok közül az akkuzativusz (tárgyrag -t) és szuperesszívusz (-n) toldalékokat is levágja. Mindkét szótövező figyelembe veszi a szótőjelölt hosszát és, hogy tartalmaz-e érvényes mássalhangzó–magánhangzó kombinációt.
  3. A Medium változat 12 gyakori főnévi esetet kezel, a birtokos és birtokok, valamint a személyek számát is figyelembe véve. Ezenkívül kezeli a leggyakoribb igealakokat (idő, szám, személy), a melléknevek fokozását, valamint a számneveknél a törtszámnév és sorszámnév toldalékait.
  4. A Heavy szótövező pedig mind a 21 esetet és az összes igealakot figyelembe veszi.

A gyakorlati tesztek azt mutatták, hogy a Light2 tövezőnek vannak a legkedvezőbb tulajdonságai. Nézzük tehát részletesen ennek működését.

A Porter-tövezőhöz hasonlóan a magyar nyelvre is definiálni kell a magánhangzók, illetve mássalhangzók halmazát, ami kiegészül a magyar helyesírás jellegzetességei miatt még a kettős és hosszú mássalhangzók listájával. Tehát a magyar magánhangzók

 v = {a, á, e, é, i, í, o, ó, ö, ó, u, ú, ü, ú},

 c = {b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, z},
 d = {cs, dz, dzs, gy, ly, ny, ty, zs},
dd = {bb, cc, ccs, dd, ff, gg, ggy, jj, kk, ll, lly, mm, nn, nny, pp, rr, ss, ssz, tt, tty, vv, zz, zzs},

Definiáljuk az R1  régiót az alábbiak szerint:

A szabályok az R1  régióban való előfordulásra vonatkoznak. Ez gyakorlatilag a Porter-féle m érték szerepét játssza. Egy adott végződéslista esetén mindig a leghosszabban illeszkedő végződésre vonatkozó szabály fog tüzelni. Az x* jelölés a megadott minta előtti karakterre szab feltételt. A Light2 tövező az alábbi lépéseket hajtja végre.


1. lépés Eszközhatározó esetrag törlése:
Keresett végződésminták: al, el. Ha a végződés R1  -beli és hosszú mássalhangzó előzi meg, akkor a végződés és a hosszú mássalhangzók egyike törlendő. Formálisan: (R  ∧ dd*)
  1  {al, el}→ d.
2. lépés Gyakori esetragok törlése:
(R1)  {ban, ben, ba, be, ra, re, nak, nek, val, vel, tól, től, ról, ről, ból, ből, hoz, hez, höz, nál, nél, ig, at, et, ot, öt, ért, képp, képpen, kor, ul, ül, vá, vé, onként, enként, anként, ként, en, on, an, ön, n, t}→ ; ha az így kapott alak á-ra vagy é-re végződik, akkor az rendre a-ra vagy e-re cserélendő.
3. lépés Speciális esetragok törlése:
(R1)  án→ a; (R1)  ánként→ a; (R1)  én→ e.
4. lépés További esetragok törlése:
(R1)  {astul, estül, stul, stül}→ ; (R1)  ástul→ a; (R1)  éstül→ e;
5. lépés Transzlatívusz esetrag törlése:
(R1∧ dd*)  {á, é}→ d;
6. lépés Birtokrag törlése:
(R1)  {oké, öké, aké, eké, ké, éi, é}→ ; (R1)  {áké, áéi, áé}→ a; (R1)  {éké, ééi, éé}→ e;
7. lépés Egyes számú birtokragok törlése:
(R1)  {ünk, unk, nk, juk, jük, uk, ük, em, om, am, m, od, ed, ad, öd, d, ja, je, a, e}→ ; (R1)  {ánk, ájuk, ám, ád, á}→ a; (R1)  {énk, éjük, ém, éd, é}→ e;
8. lépés Többes számú birtokragok törlése:
(R )
  1  {jaim, jeim, aim, eim, im, jaid, jeid, aid, eid, id, jai, jei, ai, ei, i, jaink, jeink, eink, aink, ink, jaitok, jeitek, aitok, eitek, itek, jeik, jaik, aik, eik, ik}→ ; (R1)  {áim, áid, ái, áink, áitok, áik }→ a; (R1)  {éim, éid, éi, éink, éitek, éik}→ e;
9. lépés Többes szám törlése:
(R1)  {ök, ok, ek, ak, k}→ ; (R1)  ák→ a; (R1)  ék→ e;

PÉLDA. Tekintsük az alábbi példákat!

ókáinknak 2.lépés
----→ ókáink 8.lépés
----→ óka

Ha a szótő k-ra vagy t-re végződik, akkor az algoritmus bizonyos esetekben túltövez.

ókja 7.lépés
----→ ók  9.lépés
--- -→ ó*

keret  2.lépés
----→ ker*, de kerete 7.lépés
----→ keret

Forrás:

A Snowball honlapja.

A. Tordai and M. de Rijke. Hungarian monolingual retrieval at CLEF 2005. In Working Notes for the CLEF 2005 Workshop, Vienna, Austria, 2005.