7.2. Szövegosztályozás

A neurális hálózatok másik tipikus alkalmazási területe a szövegosztályozás. Az interneten található szöveges dokumentumok számának rohamos növekedésével a témakör napjainkban egyre fontosabbá kezd válni. Felmerülő konkrét feladat például a témakör szerinti dokumentum-kategorizálás, a spam szűrés, vagy az automatikus e-mail megválaszolás (ahol egy előre rögzített készletből kell kiválasztani a felhasználó kérdéséhez leginkább illeszkedő választ).

Említettük már, hogy osztályozási feladatoknál kulcskérdés az adatreprezentáció. Szövegosztályozás esetén a szokásos megközelítés, hogy veszünk egy szótárt (pl. a tanító készlet szavainak összessége), amelynek minden szava külön jellemző. Minden szöveget egy valós vektorként reprezentálunk (x = [x1, …, xn]T), ahol a szövegben előforduló szavaknak megfelelő komponensek nemzérus értékűek. Tehát szövegosztályozásnál a minták általában sokdimenziós, ritka vektorok. A neuronhálók egyes típusai a sokdimenziós feladatokat eltérő hatékonysággal tudják kezelni. E téren két szélsőség az Albus CMAC háló és a szupport vektor gép, illetve általában a kernel gépek. Azáltal, hogy a sokdimenziós bemeneti térről vagy a jellemzőtérről áttérünk a kernel térre, a ténylegesen megoldandó feladat dimenzióját jelentősen redukáljuk. A szupport vektor gépek tehát jól kezelik azokat a feladatokat, ahol viszonylag kevés mintapontunk van, de ezek sokdimenziósak. A szövegosztályozás tipikusan ilyen feladat, így az SVM igen elterjedt ezeknél a feladatoknál. Ha az egyes szövegek vektorok, akkor a teljes tanító készlet reprezentálható egy mátrixként, amelyet dokumentum – term mátrixnak hívunk.

7.2. táblázat - Példa dokumentum-term mátrix

Szó a dokumentumban

(i – 1). dokumentum

i. dokumentum

(i + 1). dokumentum

         

Sphere

 

0

*

0

 

Spice

 

0

0

0

 

Spider

 

*

0

0

 

Spike

 

0

0

*

 

Spin

 

0

0

*

 

         

A konkrét jellemzőértékek beállítását többféle módszer szerint lehet végezni. A legegyszerűbb, ha a nemzérus komponenseket egységesen 1-re állítjuk (bináris reprezentáció). Ennél kicsit kifinomultabb a TF (Term Freqency) reprezentáció, amikor xi = TF(i), vagyis az i-edik komponens értéke az i-edik szótárszó előfordulásainak száma az adott dokumentumban. Talán a leggyakrabban használt módszer a szöveges dokumentumok reprezentálására a TF–IDF (Term Frequency – Inverse Document Frequency) séma:

x i =TF(i)IDF(i)=TF(i) log 2 ( | D | DF(i) ) MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiEamaaBaaaleaacaWGPbaabeaakiabg2da9iaadsfacaWGgbGaaiikaiaadMgacaGGPaGaeyyXICTaamysaiaadseacaWGgbGaaiikaiaadMgacaGGPaGaeyypa0JaamivaiaadAeacaGGOaGaamyAaiaacMcacqGHflY1ciGGSbGaai4BaiaacEgadaWgaaWcbaGaaGOmaaqabaGcdaqadaqaamaalaaabaWaaqWaaeaacaWGebaacaGLhWUaayjcSdaabaGaamiraiaadAeacaGGOaGaamyAaiaacMcaaaaacaGLOaGaayzkaaaaaa@5835@ (7.1)

ahol |D| a dokumentumok száma, DF(i) pedig azon dokumentumok száma, amelyekben az i-edik szó előfordul.

7.2.1. Spam szűrés SVM-mel

Az elektronikus levélszemét (spam) kiszűrése az internetes levelezésből napjainkban igen aktuális gyakorlati feladat. A levelek osztályozása spam-ekre illetve normál levelekre nem oldható meg néhány előre rögzített, egyszerű szabály segítségével. A mintákból való tanulás képessége ezen a területen is igen hasznos tulajdonság, így természetes lehetőségként kínálkozik a neurális hálózatok alkalmazása. Az alábbiakban egy szupport vektor gépes megoldást ismertetünk [Dru99].

Egy spam kategorizáló rendszer (mint minden kétosztályos osztályozó rendszer) alapvetően kétféle hibát tud elkövetni: nem szűr ki egy spam-et, vagy a spam-ek közé helyez egy normál levelet (általánosan az első a téves negatív, a második a téves pozitív osztályozás). Jogos elvárás, hogy a felhasználó állíthassa be a szűrés szigorúságát, vagyis ő dönthesse el, hogy melyik típusú hibázást szeretné jobban elkerülni. Ehhez viszont az kell, hogy az osztályozó rendszer kimenete ne csak egy igen-nem típusú logikai érték legyen, hanem egy „valószínűség”, amely megadja, hogy az adott levél mekkora eséllyel számít spam-nek. A szupport vektor gépek automatikusan ilyen bizonyossági értékként is értelmezhető választ állítanak elő, hiszen a kimenetük az osztályozandó mintának az elválasztó hipersíktól vett (előjeles) távolságával arányos.

Az ismertetett spam kategorizáló rendszer a bináris és a TF szöveg-reprezentációt használta, néhány kis gyakorlatias módosítással. A szótárba csak azokat a szavakat vették be, amelyek tanító készlet dokumentumai közül legalább háromban szerepelnek. Így kiszűrhetők a szótárból az elírt ill. a ritka változatban használt szavak. Ezen kívül kísérleteztek tiltólista használatával a minden szövegben gyakran előforduló, kevés információt hordozó névelők, kötőszavak, stb. kiszűrésére.

Az osztályozók minősítésére a legegyszerűbb mérőszám a hibaarány. Bizonyos feladatoknál (pl. számjegyfelismerés) ez az egyetlen szám is eleget mond, mivel nem igazán érdekes a különböző típusú tévesztések aránya. Spam felismerés esetén azonban ez nincs így: itt érdemes külön lemérni a spam átengedési (téves negatív) ill. a normál levél kiszűrési (téves pozitív) arányt. Egy ésszerű megközelítés, ha a felhasználó beállíthatja, hogy legfeljebb mekkora normál levél kiszűrési arányt tolerál. A cél a spam átengedés minimalizálása a normál levél kiszűrésre vonatkozó feltétel betartása mellett.

A teszteléséhez használt adatbázis 3000 levelet tartalmazott. Ebből 850 volt spam, 2150 pedig normál üzenet. A rendszer teljesítményének mérésére 10-szeres kereszt kiértékelést alkalmaztak. Természetesen több különböző beállítást is kipróbáltak. Lemérték, hogy mennyire romlanak le az eredmények, ha a leveleknek csak a tárgy mezőjére (subject) vagy csak a törzsére (body) támaszkodnak. Megvizsgálták, hogy milyen változást okoz a tiltólista használata. A kapott eredményeket az alábbi táblázat foglalja össze:

7.3. táblázat - Spam átengedés 5 %-os normál levél kiszűrés mellett
 

TF reprezentáció

Bin. reprezentáció

Tárgy alapján, tiltólista nélkül

54,9 %

54,9 %

Tárgy alapján, tiltólistával

71,9 %

75,8 %

Törzs alapján, tiltólista nélkül

9,6 %

9,3 %

Törzs alapján, tiltólistával

12,0 %

11,5 %

Tárgy + törzs alapján, tiltólista nélkül

1,8 %

1,5 %

Tárgy + törzs alapján, tiltólistával

2,7 %

3,2 %


A legjobb eredményeket a bináris reprezentáció segítségével sikerült elérni, de volt olyan beállítás is, amelyben a TF reprezentáció bizonyult jobbnak. Érdekesség, hogy a tiltólista használata minden esetben rontott az eredményeken. Ez arra enged következtetni, hogy az SVM ügyesebben választotta ki, hogy mely jellemzőket érdemes figyelembe venni a döntésnél, mint a tiltólistát összeállító emberek.