Nyelvi visszacsatolás karakter-, kézírás és beszédfelismerő rendszerek számára

IKTA-00063/2000

Beszámoló az I. munkaszakaszról

2000. november 23.
 
 

 

1. Szegmentáló modul célja

 

A szegmentáló modul a várható durva szöveggenerátor eredményét dolgozza fel. A szöveget akár egy beszédfelismerő hang–fonéma–betűsorozat átalakítás eredménye lehet, akár egy nyomtatott vagy kézzel írott szöveg gépi karakterfelismerőjének kimenete lehet. Az első munkaszakaszban feltételezzük, hogy a felismerés tökéletes, „csupán” a karakterek közötti szóközöket kell megtalálni.

 

2. A szegmentáló modul működési elve

 

A szegmentáló modul bemeneti adatairól jogosan feltételezzük, hogy karakteres információ, hiszen a végleges rendszerben is azok lesznek. Az első közelítésben ezen kívül azt is feltételezzük, hogy helyes szöveget kell szavakra feldarabolni, melyben több helyen (vagy mindenütt) hiányzik a szóköz jelölése. Természetesen a végleges rendszer bemenetén nem csak helyes lakok jelenhetnek meg, de ezek kezelése egy későbbi munkafázis dolga.

 

A szegmentáló modul tehát első menetben feldarabolja a karaktersorozatot, méghozzá minden lehetséges módon szósorozatra, támaszkodva a morfológiai ellenőrzőre. Természetesen a szegmentálás nem egy hatalmas adatbázisban felsorolt szavak betűire épül, mivel olyan adatbázis, mely „minden lehetséges” toldalékolt szót tartalmazna, a magyar esetében nincs is. Van ezzel szemben olyan algoritmus, mely a lehetséges alakokat ismeri. Így a probléma megoldása nem pusztán füzérek egymásutánjának a felismerése, mint például az angol nyelv esetében ismert megoldásokban. Ritka kivétellel ez persze nagy számú megoldáshoz vezet, mely felbontássorozatok nem mindegyike lesz helyes mondat.

 

A szófelbontásra különböző nyelvtani adatbázisokat használtunk, különböző algoritmusokat alkalmaztunk. Az egyik a Humor rendszer (Prószéky-Kis 1999), melynek előnye, hogy kifinomult adatbázisa már régóta megbízhatóan működik, és a későbbi ellenőrzésekhez szükséges szóelemzésre is képes. A másik - egy véges automatákra épülő algoritmus (Naszódi 1997) - bár gyorsabb, és jobban illeszkedik a balról jobbra történő elemzésekhez, jelenleg még nem oldja meg a teljes szóelemzés problémáját, viszont hatékonyságára lehet, hogy a későbbi fázisokban szükség lesz. A szóelemző illesztése a szegmentáló keretprogramhoz moduláris, ezért az alkalmas ellenőrző program lecserélhető, esetleg a későbbiekben könnyen cserélhető merőben új megoldásra.

 

A második menetben a szavakat megelemezzük (a Humor programmodullal), és a szóelemzési eredményekre építve nyelvtani szűréseket végzünk. A szűréseket ún. parciális szintaxissal (Naszódi 1997) megadott szabályokkal írjuk le. A szűrésnek két eredménye van:

1. a lehetetlen szituációk egy részét elveti,

2. adott szegmentálás esetén a többértelmű szóelemzések egy részét letiltja.

 

Tudvalevő, hogy folyamatos magyar szövegekben átlagosan minden harmadik szónak több lehetséges elemzése van, és nem ritka az 3-4, vagy az ennél is több elemzéssel bíró szóalak:

 

            értem = érik (ige) (múlt idő, egyes szám első személy)

                         érik (ige) (múlt idejű melléknévi igenév, egyes szám első személyű birtokos)

                         ér (ige) (múlt idő, egyes szám első személy)

                         ér (ige) (múlt idejű melléknévi igenév, egyes szám első személyű birtokos)

                         ért (ige) (jelen idő, egyes szám első személy)

                         

 

Ennek következménye, hogy a hibás szegmentálások egy része így sem szűrhető ki.

 

A szabályok közvetlen használják fel a Humor szóelemző eredményét. A szabályrendszer jól karbantartható, ad hoc és általános jelenségek leírására egyaránt alkalmas, könnyen bővíthető, de a mondatszerkezet globális ellenőrzésére nem megfelelő eszköz.

 

A harmadik fázisban top-down leírás alapján készült, a nyelvet lefedő, robusztus, lapos szintaxissal elemezzük a lehetséges felbontásokat. Pontos szintaxisra egyelőre nem vállalkozhatunk a magyar nyelv esetén, ismervén nyelvünk szerkezeti összetettségét és az eddigi nyelvészeti, illetve számítógépes nyelvészeti leírások "teljességét". A precíz mondattani elemzés a mi esetünkben amúgy sem oldaná meg tökéletesen a szegmentálás folyamatát, mert még így is számos - nyelvtani szempontból korrekt - mondatot kapnánk, mely más szempontból viszont nem volna helyes, lévén a közlő szándékától eltérő elemzés. Ennek alapvető oka a szabad szórend, az összetett szavak szabályos képzése és a lehetséges elliptikus szerkezetek, melyek jellegzetes magyar nyelvi jelenségek.

 

A robusztus ellenőrzés szintén egyfajta független modulként csatlakozik a rendszerhez. Jelenleg végesautomata-alapokra épül. A mondatban előforduló nyelvtani kategóriák lehetséges szekvenciáit gyorsan ellenőrzi. A jelenlegi adatbázis még továbbfejleszthető, de a fentiek alapján nem érdemes túl nagy precízségre törekedni. Itt lényeges, hogy a második fázis szűrt elemzéseit használjuk, emiatt az ellenőrizendő alternatívák száma egy nagyságrenddel kisebb, mintha nem végeztük volna el a parciális szintaxis segítségével a lehetséges egyértelműsítéseket. A globális elemzés fázisához is véges állapotú automatát alkalmazunk, melyhez a leírást a HumorESK (Prószéky 1996) formalizmusa adja.

 

3. Az első munkaszakasz tapasztalatai

 

A kezdeti tapasztalatok bíztatóak. A rendszert úgy teszteltük, hogy valós szövegből kitöröltük a szóelválasztó karaktereket, és ezt adtuk át a szegmentáló programnak. Egy átlagos (7-10 szóból álló) mondatnak a szóellenőrzés után több száz szegmentálása lehetséges (ld. Példa), szemben az elvi milliós nagyságrendnél. Ebből a több százból a nyelvtani ellenőrzés után mintegy egy nagyságrendi javulást tapasztaltunk - de így is túl sok marad, azaz száma sok esetben eléri százat, illetve néha nem szerepel a megoldások között a kívánt szegmentálás. A látszólag nem kielégítő eredménynek több oka van. Az egyik, hogy sem a szóelemző, sem a globális szintaxis nem tud mit kezdeni az ismeretlen szavakkal. A másik, hogy a valóságban a karaktersorozatoknak több lehetséges felbontása olyan, amely nyelvtanilag helyes, vagy helyesnek tűnik, de ez az emberi nyelvfeldolgozó mechanizmusok működését egyáltalán nem nehezíti. A jelen feldolgozásban különösen zavaróak voltak a ritkán használt rövid szavak, rövidítések felismerése olyan szegmensként, mely a valódi szövegben nem szerepelt.

Mindkét problémára (a nem felismerésre, illetve a félreismerésre) egyfajta tanuló rendszer adhat csak megfelelő megoldást. Az ismeretlen szavak felhasználói szótárba vétele kidolgozott a szóellenőrzés folyamán. A szószeparálási alternatívák közti helyes választást segítené, ha a rendszerben interaktív módon a felhasználó választhatná ki vagy módosíthatná a preferált megoldást. A rendszer megjegyezné a korábbi döntéseket, és ha azonos szituációba kerül a szegmentáló (megfelelő rész-szekvencia felismerése esetén), akkor a korábbi döntést előnybe részesítené. Ezzel sok olyan formálisan nehezen vagy egyáltalán nem leírható jelenséget lehetne kezelni, mint a szemantikai összefüggések, szokásos kifejezések használatát. Erre az adaptív módszerre amúgy is szükség lesz a projekt későbbi fázisaiban is, ezért a későbbiekben ezzel is kibővítenénk a rendszerünket. A fenti módosítások figyelembevételével fejlesztjük tovább a szegmentáló modult.

 

 

4. Hivatkozások

 

Naszódi 1997

Naszódi Mátyás: Nyelvhelyesség-ellenőrzés számítógéppel (Parciális szintaxis). VII. Országos Alkalmazott Nyelvészeti Konferencia. Külkereskedelmi Főiskola, Budapest (1997)

 

Prószéky 1996

Prószéky, Gábor: Syntax As Meta-morphology. Proceedings of COLING-96, Vol.2, 1123-1126. Copenhagen, Denmark (1996)

 

Prószéky–Kis 1999

Prószéky Gábor – Kis Balázs: Számítógéppel – emberi nyelven. SZAK, Bicske, 341 pp. (1999)

 

 

Vissza a kezdőlapra