Statisztikai gépi fordítás

A statisztikai gépi fordításban mondatokat szeretnénk lefordítani egy másik nyelvre. Mivel mondatokkal foglalkozunk, ezért egy diszkrét problémával van dolgunk, legtöbbször véges is. És az is következik, hogy többnyire gyakoriságokat, illetve relatív gyakoriságokat tudunk számolni, illetve mint már láthattuk az EM algoritumus példáiban, hogy néha súlyozott gyakoriságokkal kell számolni. Minden szópárt, illetve mondatpárt lehetségesnek tételezünk fel, még ha csak igen kis valószínűséggel is. A hagyományos nézet, hogy a nyelvtan szabályokból áll, melyeket be kellene tartani, tartatni mára már túlhaladott és nem is túl realisztikus. A tapasztalat az, hogy az emberek a szabályoktól eltérően beszélnek, írnak. Nehéz megállapítani, még tudományos módszerekkel is, hogy melyik mondat helyes, és melyik helytelen. Igen tapasztalt nyelvhasználókat is zavarba lehet hozni egy-egy mondattal, hogy helyes-e vagy nem. A határ a jólformált, és rosszulformált mondatok között elég elmosódott, semmiképpen sem éles, és nem kategorikus. Tehát nincsenek jól és rosszul formált mondatok, hanem csak valószínűbbek és kevésbbé valószínűek vannak. Egy érdekesség, és egyben nehezítő körülmény a nyelvekkel kapcsolatban, hogy Zipf törvénye szerint egy szövegben a gyakorisági rangsorban elfoglalt helye egy szónak egy szövegen belül fordítottan arányos azzal, hogy hány olyan szó van, aminek ugyanennyi a rangsorban elfoglalt helye. Egy mérés szerint Tom Sawyer című könyvben csak 102 olyan szó van, ami több, mint 100-szor fordul elő a szövegben, 91 olyan szó van, ami 10-szer fordul elő és 3993 olyan szó van, ami csak egyszer fordul elő a szövegben. Ez sajnos azt is jelenti, hogy egy szövegben a legtöbb szó csak egyszer fordul elő, és ezért nem lehet velük gyakoriságot számolni, és még azzal a következménnyel is jár, hogy hiába veszek hosszabb szöveget, mert ha így bizonyos szavakat gyakoribbá is tudok tenni, rengeteg olyan új szó kerül a szövegembe, amelyek csak egyszer fordulnak elő.

A témáról többet tartalmaz [2].

A bevezető után nézzük most hogyan lehet formalizálni matematikailag a gépi fordítás modelljeit. Legyen a két nyelv, melyek között fordítani akarunk az angol és francia. Most az angolról franciára fordítás esetét vizsgáljuk. Legyen $ \cal E$ az angol mondatoknak egy véges halmaza, $ \cal F$ pedig francia mondatok egy véges halmaza. A feladat az, hogy tetszőleges $ \bf f\in\cal F$ mondat esetén találjuk meg azt az $ \bf e\in\cal E$ mondatot, melyre a $ \boldsymbol P(\bf e\vert\bf f)$ valószínűség a maximális. Ez a valószínűség nem más, mint $ {\boldsymbol P(\bf f\vert\bf e)\boldsymbol P(\bf e)}\over{\boldsymbol P(\bf f)}.$ Ezt a mennyiséget ugyanaz az $ \bf e$ maximalizálja, mint a $ \boldsymbol P(\bf f\vert\bf e)\boldsymbol P(\bf e)$ számot, mivel $ \boldsymbol P(\bf f)$ nem függ az $ \bf e$ mondattól. Tehát a feladat az, hogy lehetőleg hatékonyan találjunk egy olyan $ \bf e$ mondatot, mely ezt a szorzatot maximalizálja. A $ \boldsymbol P(\bf e\vert\bf f)$ valószínűség számolása nem ugyanaz a feladat, mint $ \boldsymbol P(\bf f\vert\bf e)$ számolása, ugyanis az előbbinek adott $ \bf f$ esetén nyelvtanilag helyes $ \bf e$ mondatokra kell nagynak lennie, míg a második akár értelmetlen $ \bf e$ mondatokra is lehet viszonylag nagy, mert ez esetben $ \boldsymbol P(\bf e)$ kicsi lesz, és így a szorzat sem lesz nagy, megakadályozva ezzel, hogy egy értelmetlen, vagy akár csak egy ritkán használt mondatot $ \bf f$ fordításaként válasszunk.

A következőkben azzal a problémával foglalkozunk, hogy hogyan lehet a $ \boldsymbol P(\bf f\vert\bf e)$ valószínűségben szereplő paramétereket becsülni egy minta alapján. Ezt az EM algoritmus segítségével tesszük meg. A minta egy rendelkezésre álló mondatpárhalmaz lesz, ahol a mondatpárok tagjai egymás fordításai. Ez a hiányos adatrendszer. A teljes adatrendszer pedig a hiányos adatrendszer kiegészítve azzal az információval, hogy egy adott fordítási pár esetén a mondatok mely szavai fordításai egymásnak.

Temesi Róbert 2010-08-16