A Wikipédia valósidejű nyelvi feldolgozása OSGi alapokon

OData támogatás
Konzulens:
Dr. Simon Balázs
Irányítástechnika és Informatika Tanszék

A részben struktúrált adatok minél pontosabb feldolgozása rendkívül fontos a mesterséges intelligencia, természetes nyelvi feldolgozás, de az informatika más területein is. Az ilyen részben struktúrált adatforrásokat, mint például a legnagyobb kollaboratívan szerkeszthető tudásbázist, a Wikipédiát felhasználó megoldások terén mégis még mindig nagyon sok fejlesztési lehetőség található. Szakdolgozatom célja egy kutatók számára is használható rendszer tervezésének és fejlesztésének bemutatása, mely a Wikipédiát dolgozza fel, és feldolgozott formában teszi elérhetővé kutatások céljából. A rendszert egy feldolgozólánc formájában valósítottam meg, mely az OSGi keretrendszert használva, annak flexibilitását kihasználva egyszerűen kiegészíthető, illetve továbbfejleszthető, így alkalmassá válik további kutatások kiindulópontjaként is szolgálni.

A tervezés előtt megvizsgáltam a hasonló megoldásokat, hiszen azok tapasztalatait érdemes felhasználni: hibáikból tanulni lehet, a jól bevált megoldásokat pedig meg kell fontolni, hogy beépíthetőek-e az alkalmazás architektúrájába. Az elérhető részben struktúrált adatforrásokat feldolgozó alkalmazásokat végigvizsgálva mindegyikben egy alapvető hiányosság tűnt fel: egyik sem elég flexibilis, és a legtöbb program csak egy nagyon speciális célra alkalmas, így általános kutatások alapjául nem használhatóak. A megoldások közös jellemzője, hogy alapvetően három jól meghatározott, nagyobb előfeldolgozó komponenst tartalmaznak, így ezeket a komponenseket (információk gyűjtése, feldolgozása, eltárolása) terveztem meg és implementáltam én is a követelményeknek megfelelő módon.

A rendszer architektúráját nagyban meghatározza a flexibilitást és karbantarthatóságot eredményező OSGi technológia, melynek komponens modellje egy megszokottól eltérő Java nyelvű fejlesztést tesz lehetővé.

A tényleges tervezésnél az OSGi komponenseket külön-külön készítettem el, figyelve arra, hogy az alkalmazás teljesítménye minél nagyobb legyen. A gyorsaságot legnagyobbrészt a többszálú futásnak köszönheti az alkalmazás, de a feldolgozás több részének aszinkron kivitelezése és nagy teljesítményű technológiák alkalmazása is sokat segített.

Az implementációs fázisban ismertetem a kipróbált technológiákat, bemutatom, hogy melyiknek milyen előnyei, hátrányai vannak, és miért esett rájuk a választás. A technológiai elemeken kívül a tervezési minták használata is hangsúlyos az elkészített munkámban.

A kivitelezés eredményeit végül egy mérésen keresztül mutatom be, mely továbbfejlesztési lehetőségeket tár fel. Itt mérésekkel alátámasztva ismertetem, melyik részt, hogyan lehetne továbbfejleszteni a specifikációtól eltérve, hogy a követelményeknek megfelelő és egyben hiánypótló alkalmazás szülessen a részben struktúrált feldolgozórendszerek körében.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.