A MetaMorpho fordítóprogram és mondatelemző technológiai háttere
A fordítóprogramokról
Az elektronikus fordítóeszközök a fordítandó szöveg jellege és az alkalmazott nyelvi tudás alapján osztályozhatók:
|
nyelvészeti tudás nélkül |
nyelvészeti tudással |
egyetlen szó vagy kifejezés |
szótárprogram |
ragozó szótárprogram |
a mondat szavanként |
- |
szótárazó program |
a mondat kifejezésenként |
statisztikai fordítóprogram |
mintaalapú fordítóprogram |
a mondat |
fordítómemória |
szabályalapú fordítóprogram |
A fordítóeszközök a szöveg elemzésével a fordítandó szöveghez egy belső reprezentációt rendelnek, majd ezt célnyelvű szöveggé alakítják. A rendszereket a belső reprezentáció komplexitása különbözteti meg. Ez a legegyszerűbb egy szótárprogramnál, a legbonyolultabb pedig a szabályalapú fordító esetén.
Amint az a táblázatból kiderül, a fordításhoz a szótárazó programok csak a szavak közötti, a mintaalapú fordítók a kifejezések közötti, a szabályalapú fordítók pedig a mondat valamennyi összefüggését feltárják. A fordítás minősége a mondatban feltárt összefüggések számával arányosan nő.
A szabályalapú fordítóprogramokat is tovább osztályozhatjuk. Az elsődleges felosztásuk a forrásszöveg megértésének mélysége alapján történhet. Kezdetben az úgynevezett direkt fordítóprogramok a teljes mondatszerkezet feltárása nélkül, a szavak és mondatrészek átmozgatásával próbáltak fordítani. Ma már a fordítóprogramok a mondat teljes szintaktikai elemzését megkísérlik. Itt is két módszer válik el. Ha az forrásnyelvi elemzés és a célnyelvi generálás teljes mértékben független, akkor közvetítőnyelves megoldásnak nevezzük. Ha a leírás olyan, amely tartalmaz a két nyelv közötti átalakításra vonatkozó szabályokat is, akkor pedig transzfermegoldásnak nevezzük. A mai fordítóprogramok általában mind olyan transzfer megoldások, amelyekben a transzfer szabályok minimalizálására, azaz a konkrét nyelvpároktól való függetlenségre törekszenek. Megjegyezzük azonban, hogy tökéletes közvetítőnyelves megoldást a számos ilyen jellegű kísérlet ellenére még nem sikerült létrehozni.
A közvetítőnyelves megoldást azért szeretnék elérni, mert a célnyelvi függőségtől mentesített elemzést tetszőleges nyelvpár esetén alkalmazni lehetne. Így a transzfermegoldásokkal szemben, ahol nyelvpáronként külön modulokat kell készíteni, a közvetítőnyelves megoldásnál csak egy elemző és generáló modul kellene egy-egy nyelvhez. Ez például az Európai Unió huszonhárom hivatalos nyelve esetén n*(n-1), azaz 506 transzfer nyelvi modult jelentene, ugyanakkor közvetítő nyelves megoldással csak 2*n, azaz 46 modul lenne szükséges.
A nyelvészeti tudást nélkülöző mondatfordító eszközök a fordító memória és statisztikai fordító. Hasonló módon működnek, de a kettő között az a lényeges különbség, hogy a fordítás alapját képező fordítómemóriát a hivatásos fordító egy előző fordításával állítja elő, míg a statisztikai rendszerek kétnyelvű szövegtárak és az internet segítségével automatikusan próbálják ezt az előzetes fordítást megtalálni. A statisztikai fordító problémája, hogy jó minőségű fordítást, csak akkor adhatna, ha nem csak kifejezésekből, hanem a teljes mondatokból építkezhetne, erre azonban a rendelkezésre álló anyagok korlátozott mennyisége miatt nincs lehetőség. Emiatt gyakran építenek be nyelvi tudást, ami viszont elvi és gyakorlati problémákat is felvet. Végeredményben értékesíthető minőségű, statisztikai alapon működő fordítórendszer még nem jött létre. Mindamellett statisztikai eljárásoknak is lehet szerepe az ún. hibrid rendszerekben, ahol a szabályalapú működést bizonyos esetekben statisztikán alapuló döntések egészítik ki.
A MetaMorpho rendszer elvi alapjai
A MetaMorpho rendszer azzal a céllal született, hogy a különböző fordítóeszközök előnyös tulajdonságait ötvözze. A fordítómemóriák jó minőségű fordítást adnak, mert direkt megfeleltetésekből építkeznek, de csak korlátozott számú esetben működnek. A fordítóprogramok bármit lefordítanak, de ha a fordítást nyelvi algoritmusok állítják elő, a nyelvi minőség leromolhat. A cél egy olyan rendszer megépítése volt, amely lehetőség szerint a direkt megfeleltetéseket használja, ugyanakkor szükség esetén a nyelvtan segítségével produktív fordításokra is képes.
Ez az elképzelés eredendően új architektúra kialakításához vezetett. A MetaMorphóban minden nyelvi adat párok formájában van felírva. Így a rendszer nem nevezhető sem transzfer-, és még kevésbé közvetítőnyelves eljárásnak. Ezek ugyanis elkülönített elemző és generáló szabályokból állnak. A MetaMorphóban minden elemző szabály mellett ott áll a generáló szabálypárja. A működés talán legjobban egyfajta minden nyelvi szinten zajló transzferként jellemezhető. A népszerű közvetítőnyelves elgondolást feladtuk, és minden nyelvpárhoz külön nyelvi modult készítünk. A nyelvpárokból építkezés ugyanakkor sokszorosan megtérül, mert:
- természetes módon építhetők vagy használhatók fel a szótárak
- természetes módon integrálhatók az emberi fordítások, fordítómemóriák
- könnyen megvalósítható a felhasználói bővíthetőség
- a nyelvtannak csak az aktuális nyelvpár fordítási feladatát kell megoldania
A nyelvpáronkénti adatbázis építése pedig nem okoz súlyos problémát: egyrészt a valóban fontos nyelvek száma alacsony, másrészt az adatok offline felhasználásával ezek viszonylag kényelmesen előállíthatók.
A MetaMorpho tehát nem sorolható be az ismert gépi fordítási módszerek egyikébe sem. Alapvetően szabályalapú rendszer, de a transzfer és közvetítőnyelves módszerekkel szemben kizárólag direkt megfogalmazásokból áll. Ezek a direkt megfeleltetések azonban nem direkt módon, hanem az elkülönülő generáló fázisban érvényesülnek. A minták egységesen szolgálnak a nyelvtan és szótár leírására is.
Az adatbázisról
A MetaMorpho szabályok leírásához egy leírónyelvet dolgoztunk ki, amellyel környezetfüggetlen nyelvi állítások fogalmazhatók meg. A formalizmust MMD-nek, MetaMorpho Dictionary formátumnak nevezzük. Ebben - mint azt már fentebb leírtuk - nem különülnek el az elemző és generáló sorok, minden egyes szabály tartalmazza az elemző és generátor részt. A szavak, kifejezések és nyelvtani szabályok egységesen, ugyanabban az adatbázisban kapnak helyet. A szótári szócikket csak annyi különbözteti meg egy nyelvtani szabálytól (pl. hogy a mondat alanyból és állítmányból áll), hogy az előbbiben konkrét szavak szerepelnek, a másikban pedig elvont nyelvi szimbólumok. A MetaMorpho rendszer fontos jellemzője még a szabályok ábrázolásának kettős szintje. Ezt a fordítóprogramok világából ismerős magas szintű és gépi kódú programozási nyelvekhez hasonlóan kell elképzelni, csak itt a szintek nyelvezete, szintaktikája nem tér el olyan nagy mértékben egymástól. A megoldásra hasonló okok miatt volt szükség. A magas szintű nyelv jól olvasható és fejleszthető. A program működtetéséhez szükséges információ csak az alacsonyszintű nyelven jelenik meg. A két szint közötti különbség jó példája lehet a magas szinten elrejtett jegyöröklődések alacsony szinten történő explicit kifejtése. Az adatbázis jellemzésére példaként itt két szótári mintát láthatunk. Az első az egyszerű névszói szócikk, a második egy igei kifejezés.
*dog:24263
EN.NX[animtype=YES, ct=CNT] = N(lex="dog")
HU.NX = N[lex="kutya"]
*VP=love+DOBJ:530
EN.VP[idiom=NO] = TV(lex="love", :passtr=BOTH) + DOBJ
HU.VP = TV[:lex="szeret"] + DOBJ[addet=YES]
A névszói minta értelmezése: ha van egy olyan angol szó, hogy „dog”, akkor hozzunk létre egy NX típusú szimbólumot, amely élő és megszámlálható. Ha pedig ezt le kell fordítani, akkor a fordítása legyen „kutya”. Az igei vonzatminta értelmezése: ha van egy olyan angol ige, hogy „love” és van tárgya a mondatban, akkor ezt a „szeret” igére kell fordítani. Ha nincs névelője az angol tárgynak, akkor ezt egy határozott névelővel (determinánssal) ki kell egészíteni. Számos tulajdonság nem jelenik meg explicit módon, de tudjuk, hogy a főneveknek lexikális tulajdonságuk (dog, kutya) mellett számuk, esetük és számos egyéb tulajdonságuk is van, amelyek a szabályokban örökléssel közvetítődnek, de a magas szintű szabályban nem látszanak. Az angol−magyar fordítóprogram szintaktikai adatbázisa kb. 200 ezer nyelvi mintából áll. A minták egységesen a fent látható MMD formátumban vannak megfogalmazva. A szabályokhoz konverterek tartoznak, melyekkel azokat szükség esetén XML formátumra, illetve arról visszaalakíthatjuk. Így a rendszer kompatibilis lehet más nyelvi leírásokkal. A szintaktikai leírást egynyelvű morfológiai elemző és generátor adatbázisok, valamint egyéb kiegészítő nyelvi adatok (morfológiai és jelentés-egyértelműsítők stb.) egészítik ki.
Az elemzésről
Az elemzés a környezetfüggetlen nyelvtan által vezérelten, ún. bottom-up módon történik. Ennek lényege, hogy a szabályok a szavaktól kiindulva, összevonással egyre magasabb rendű nyelvi szimbólumokat hoznak létre. Ha a szabályok alkalmazásával sikerül úgy mondatszimbólumot létrehozni, hogy abban a lefordítandó mondat minden szavát felhasználtuk, akkor az elemzést sikeresnek tekintjük. Ebben az esetben a mondat valószínűleg jó minőségben lefordítható lesz. Minthogy transzferfázis nincs, a generálás nem más, mint az elemzéskor létrejött szimbólumokhoz tartozó szabályok generáló sorainak végrehajtása.
Figyeljük meg, hogy még ezen a nagyon egyszerű mondaton is több nyelvi transzformáció történt: az angol névmást a magyarban az igerag fejezi ki, a magyar tárgy pedig határozott névelőt kapott. Az elemzési fákat úgy kell értelmezni, hogy az egymás alatt lévő azonos karakterpozíción álló szimbólumok egymás testvérei. Míg az elem felett álló, tőle balra lévő szimbólum az elem szülője, addig az alatta tőle jobbra lévő(k) annak gyermeke(i). A fában felfedezhető, hogy az elemző a példában álló VP-s szabályt felhasználta. Ugyanakkor a példában szereplő NX-es szabály nem látszik, mert a fakiíró program az áttekinthetőség kedvéért a példa elemzésekor létrejött fának csak a legfontosabb elemzési szintjeit rajzolta ki. Az elemzéshez az itt ábrázolt szimbólumoknak körülbelül tízszeresét kellett létrehoznia, hogy a megfelelőkből az elemzési fa összeállhasson. A generálás során csak az itt felsorolt szimbólumokat kellett létrehozni, ez ugyanis csak egy egyszerű kiolvasása az eredményeknek. A fában az elemeknek csak néhány fontos tulajdonsága látszik (pl. az angol főnév szótári alakja és annak száma).
Valóságban egy angol névszói szimbólum hozzávetőlegesen mintegy száz jeggyel rendelkezik, amelyek mind meghatározóak az elemzés kimenetelét illetően. A mondat elemzése nem mindig sikeres. Ha nincs teljes mondatot lefedő megoldás, akkor a részelemzéseket próbáljuk meg összeválogatni úgy, hogy azok a teljes mondatot lefedjék, és a lehető legjobb fordítást adják. Ezt mozaikfordításnak hívjuk és a válogatáshoz számos, többek között statisztikai szempontot figyelembe veszünk. A fordításnak néha egynél több megoldása is van. A különböző találatok megjeleníthetőségét a felhasználói felületek határozzák meg. Az egy-egy mondatot fordító MoBiCAT-ben megjelennek ezek, a folyamatos szövegfordítást végző MorphoWordben nem. Általában technikai többértelműségekről van szó, és törekszünk ezek számának csökkentésére. Ugyanakkor tervezzük, hogy a felhasználói felületeken is megadjuk a választás lehetőségét.
A fordítóprogram felépítéséről
A MetaMorpho rendszer a következő modulokból épül fel: szavakra bontó modul, morfológiai elemző, morfológiai egyértelműsítő, mondatszegmentáló, morfoszintaktikai konverter elemzéshez, szintaktikai elemző, jelentés-egyértelműsítő, szintaktikai generátor, morfoszintaktikai konverter generáláshoz, morfológiai generátor, szóösszefűző modul. Ezek a lépések játszódnak le minden egyes mondat elemzésekor. Az elemzés során a felhalmozott tudás folyamatosan bővül, minden elemző lépés hozzáfér az előző lépések során előállított információhoz.
A program C++ nyelven íródott. Több mint kétezer saját forrásfájlból és 250 projektből áll. A MetaMorpho rendszer az általunk írt kódon felül számos további szabad forráskódú külső megoldást (adatbázis-kezelő, grafikus felhasználói felület stb.) is integrál.
Fordítóprogram alkalmazások
A program kliens-szerver üzemmódban is tud működni, így egyszerre több hálózatos vagy internetes fordítási igény kiszolgálására is alkalmas. A szerver programhoz számos kliens csatlakozhat. Jelenleg ezek az alkalmazások valósultak meg:
- MoBiCAT: popup fordító szolgáltatás
- MorphoWord: a Microsoft Wordbe épülő fordító
- RuBi: a program bővítő modulja, szavak kifejezések tanítását teszi lehetővé egyenként, vagy akár egy egész szótárat egy lépésben.
- MorphoWeb: weblapfordító
- MorphoWAP: WAP-os fordító
- Microsoft Office 2003 fordító: az Office 2003-ban elérhető demó mondatfordító
Mondatelemző program
A MetaMorpho MorphoParse szintaktikai elemzőprogram angol vagy magyar mondatok elemzési fáját képes előállítani. A szöveges bemenetet egy XML struktúrává alakítja. A szintaktikai elemzésre további nyelvfeldolgozási alkalmazások építhetők pl. tartalomelemzés, logikai reprezentáció. Az elemzési fák grafikusan meg is jeleníthetők, ezen a nyilvános helyen az elemzés kipróbálható: www.webforditas.hu. A program kutatási célra hozzáférhető, várjuk érdeklődését.
Tihanyi László
projektvezető
|