|
Korpusz egyedi szavainak (lexikon) kinyerése Szövegbányászati előfeldolgozásnak tekitnhető a rendelkezésünkre álló dokumentum korpusz egyedi szavainak kinyerése, kigyűjtése, és megfelelő formában történő tárolása. Egy terjedelmes, igen sok témát lefedő korpusz egyedi szavainak száma elérheti a 100.000-et. Ez a szám csökkenhet abban az esetben, ha töröljük a listából a stop szavakat, illetve szótövezést hajtunk végre a szavakon, és ekkor egy adott szótő több variánsát a szótövével helyettesítünk. Az egyedi szavak kikeresése azzal jár, hogy egy matematikai értelemben halmaz struktúrát kell létrehoznunk a korpusz ún. zsák struktúrájából. Matematikailag a halmaz és a zsák között az a kölönbség, hogy a halmaz egy elemet csak egyszer tartalmazhat, míg a zsák egy elemet többször is. Ennek értelmében például az X = {2,3,5,6,7,12} halmaznak tekinthető, de az Y = {3,2,4,3,2,1,3,4,2,1,3} már zsáknak, hiszen ez utóbbi esetben egy elem többször is előfordul. Ugyan ez a helyzet a korpusz és az egyedi szavak viszonylatában. A korpusz egy zsák, amelyben adott szavak értelemszerűen többször előfordulhatnak. Célunk az egyedi szavak kigyűjtésével az, hogy egy halmazt alakítsunk ki, amelyben mindnen szó csak egyszer fordul elő. Ez az ún. lexikon, amely mindig egy adott korpuszra jellemző. Naiv elképzelés alapján a feladatot úgy lehetne megoldani, ha sorravennénk a korpusz minden szavát kezdve az elejétől, és midnen egyes szó esetén végignéznénk, hogy a már kigyűjtött egyedi szavak között az adott szó szerepel-e. Ha már szerepel, akkor nem tesszük újra bele a listában, ha azonban még nem szerepel, akkor beletesszük, mert ez az első alkalom, hogy találkozunk az adott szóval a korpuszban, és ekkor egy egyedi szó első felbukkanásának tekintjük. Ez a módszer azonban a feldolgozás előrehaladtával nagymértékben lelassul, mivel minél nagyobb részét feldolgoztuk már a korpusznak, annál több ellenőrzés kell ahhoz, hogy egy soron következő szóról eldöntsük, hogy az már benne van-e a listánkban. Annek ellenőrzését, hogy egy szó már benne van-e a listánkban, sokféle módon felgyorsíthatjuk. Gyűjthetjük például a szavakat kezdőbetűik szerint, és akkor egy soron következő szó esetében elég csak azokra a listában szereplő szavakra elvégezni az ellenőrzést, amelyek ugyanazzal a betűvel kezdődnek, mint az adott szó. A második karaktertől kezdve azonban ugyan az a probléma, mint az alapesetben. Az egyedi szavak hatékony kigyűjtésére egyik cikkemben egy kis futásidejű módszert közlök, amely a végesállapotú automaták (finite state automata, FSA) azon tulajdonságára épít, hogy képesek a feldolgozás során a feldolgozással egyidőben megállapítani, hogy egy beolvasott szó benne van-e már az egyedi szavak kigyűjtésére szolgáló listában. Hármas feladatot képes ellátni egy időben: egyedi szó felismerés, szövegből történő kiemelés és tárolás. Végeredményül a korpusz teljes feldolgozása után a végesállapotú automata egy halmazt fog eredményezni, amelyben az egyedi szavak lesznek letárolva, mindegyik pontosan egyszer. Ráadásul a végesállapotú automaták kedvező tajdonsága miatt a tárolás módja nem redundáns, tehát olyan információt nem tárol a módszer, amely redundánsan lenne jelen a rendszerben. Itt elsősorban a szó kezdő szubstringeket kell érteni, azonban a szó záró szubsztringek redundanciája is elkerülhető a véges állapotú automata megfelelő redukciójával. |
|
|
(C) 2006 VÁZSONYI
Informatikai és Tanácsadó Kft. http://www.vazsonyi.hu http://www.vazsonyi.com Adószám: 13641023-2-03 E-mail: contact@vazsonyi.com |
|