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) |