Melyik a legjobb fordítóprogram?
Hogyan versenyeznek egymással számítógépes programok? Miért szerepelt egy ízben a haiti kreol nyelv is a fordítóversenyen? Mi az a BLEU-pontszám és mire jó? Miért nem helyettesíthetők az emberek a géppel? Melyik program tudott legjobban magyarról angolra fordítani?
A sorozat korábbi részei
Szavak szövegek szövevényéből
A kutya esete a postással
Miért baj, ha sovány a miniszterelnök?
Több szem(pont) többet lát
Ki figyeli a vízilovat?
A statisztikai gépi fordításról szóló cikksorozatunk előző részeiből kiderült, hogy nem is olyan egyszerű jó gépi fordítóprogramot készíteni. De honnan tudjuk, hogy mennyire jó az a fordítóprogram, amit éppen készítünk? 2006 óta évről évre összemérik a gépi fordítóprogramok teljesítményét. Az idei versenyre júliusban kerül sor az amerikai Baltimore-ban, az ACL konferenciához kapcsolódóan. Mi történik egy ilyen versenyen?
(Forrás: Wikimedia Commons / Bin im Garten / CC BY-SA 3.0)
A gépi fordítóprogramok teljesítményét úgy mérik össze, hogy adott szövegeket kell lefordítani a lehetséges célnyelvek valamelyikére. A tesztszövegeket előzőleg emberekkel is lefordíttatják, így állnak elő a referenciafordítások. Az értékelés során a gépi fordításokat összevetik a referenciafordításokkal, hogy kiderüljön, melyik programnak sikerült legjobban megközelítenie az emberi fordítók teljesítményét.
A gépi fordítók versenyére két kategóriában lehet nevezni. Az egyik kategória (constrained track ’megszorított verseny’) versenyzői pusztán a versenybizottság által megadott szövegkorpuszokat használják a fordítóprogram betanítására, ezek alapján készítik el a frázistáblát és az ellenőrzésre használt nyelvmodellt a választott nyelvpárra. A másik kategóriában (unconstrained track ’szabad verseny’) bármilyen más szabadon elérhető vagy saját fejlesztésű adatbázist is lehet használni, és tetszőleges típusú (statisztikai, szabályalapú vagy hibrid) fordítóprogrammal lehet indulni. Tehát azok a fordítóprogramok, amelyek nem tisztán statisztikai alapon működnek, hanem például szabályalapú részük is van, csak a második kategóriában indulhatnak. A cikksorozatunkban többször példaként idézett Google Fordító is csak a második kategóriában indulhat, hiszen óriási saját adatbázist használ.
Milyen nyelvre kell fordítani?
Az angol–német, angol–francia és angol–spanyol nyelvpár a kezdetek óta szerepel a versenyfeladatok között. 2007 óta a cseh, 2008–2009-ben a magyar, 2011-ben a haiti kreol (a 2010 januári haiti földrengés során keletkezett segélykérő SMS-üzeneteket kellett fordítani), 2013 óta az orosz, és az idén a hindi is szerepelt az angolra fordítandó nyelvek között. Emellett minden esetben az ellenkező irányba is lehet fordítani. Egy-egy nevező bármelyik kiírt nyelvpárban benevezhet, és nyelvpáronként, illetve fordítási irányonként független verseny folyik. 2008-ban nem csupán angol–más nyelv párosításban mérhették össze tudásukat a programok és programozók, hanem a német–spanyol nyelvpár is szerepelt a feladatok között.
Ki a jobb?
A verseny története során több mérőszámot is használtak annak eldöntésére, hogy melyik fordítás a legjobb. Az első ilyen mérték a BLEU volt. A betűszó a BiLingual Evaluation Understudy ’kétnyelvű kiértékeléshelyettesítő’ kifejezés kezdőbetűiből alakult ki. Bár a szó formailag megegyezik a francia bleu [blő] ’kék’ szóval, a kiejtése általában [blú]. Mit mér a BLEU?
A kiértékelést végző program mondatonként vizsgálja a gépi és az emberi erővel készült referenciafordítást. Megszámolja, hogy a gépi fordításban szereplő szóalakok, szópárok, szóhármasok és szónégyesek milyen arányban szerepelnek a referenciafordításban is. Ezt a műveletet elvégzi a szöveg összes mondatával és a végén az egyes mondatokra kapott pontszámok mértani közepét veszi. Az így kapott értéket százzal felszorozzák, így 0 és 100 közé eshet. A 0 jelenti azt, hogy semennyi egyezés nincs az összevetett szósorok között, tökéletes egyezés esetén viszont 100 pont jár. Ám míg minden jó szó a fordításban pontot ér, a referenciafordításban meglevő, de a vizsgált fordításból hiányzó szavakkal nem foglalkozik a számoló algoritmus. Viszont külön büntetés jár a túl rövid fordításokért, hiszen ha a fordítás sokkal rövidebb, mint kellene, akkor nyilván sok minden kimaradt belőle, még ha a benne levő szavak megfelelnek is a referenciafordítás szavainak. Ha például összevetjük az alábbi két mondatot, azt látjuk, hogy az első mondat minden szava és a mondatvégi írásjel (ez is pontot ér) a megfelelő sorrendben megtalálható a második mondatban is. Ám mivel az első mondat 3 szóval rövidebb, mint a második, nem kaphat 100 pontot.
Kati elment.
Kati elment a boltba kenyérért.
Ideális esetben több referenciafordítást is használnak a BLEU-pontszám számolásakor, hiszen a rokon értelmű szavak használata teljesen jó fordítás esetén is 0 BLEU pontszámot adhat egyetlen referenciafordítás esetén. Például az alábbi két mondat elég jó fordítása a The optician caught the dog mondatnak, holott a mondat végi ponton kívül egyetlen elem sem egyezik meg bennük. Így ha ezt a két mondatot hasonlítjuk össze, 0 BLEU pontszámot kell adnunk. A ragozó nyelvek esetében különösen jellemző, hogy igen alacsony BLEU pontszám jön ki viszonylag jó fordításokra.
Az optikus megragadta az ebet.
A látszerész megfogta a kutyát.
Annak ellenére, hogy egy adott forrásnyelvi mondatnak több célnyelvi mondat is megfelelhet, egyáltalán nem jellemző, hogy a gyakorlatban egynél több referenciamondatot használnának, mert az emberi fordítások előállítása igencsak drága mulatság.
A BLEU-számnak van még egy hátulütője. Az volt a tapasztalat, hogy a statisztikai gépi fordítórendszerek paramétereit sikeresen lehet úgy hangolni, hogy minél nagyobb BLEU-értéket kapjanak. Tehát a gépi fordítók a BLEU-szám alapján egyre jobbak lettek, és így rendre legyőzték a hagyományos, szabályalapú fordítókat. Ám a valóságban a gépi fordítások eredményei nem lettek sokkal érthetőbbek az emberek számára annak ellenére, hogy nagyobb arányban egyeztek meg a szavak a gépi és a referenciafordításban. Sokszor a szabályokon alapuló fordítóprogramok produkáltak emberi szemmel nézve jobb szöveget – ám ezt a BLEU-szám nem tudta tükrözni.
Így újabb mérőszámok után kutattak. A BLEU egy javított változata volt a NIST, amely a rendszert kidolgozó amerikai National Institute of Standards and Technology (Országos Szabványügyi és Technológiai Intézet) nevű intézetről kapta a nevét. Ez a mérőszám abban különbözik a BLEU-tól, hogy itt nem azonos súllyal veszik figyelembe a különböző egyezéseket. Ha a két fordítás között egy ritkán előforduló szópáros egyezik meg, akkor az nagyobb pontszámot kap, mint egy gyakori szópár vagy szósorozat. Például ha mindkét fordításban szerepel a tegnap este szósorozat, az kisebb pontszámot kap, mintha a rózsaszín macskanyelv sorozat egyezik meg bennük – hisz ez utóbbi sokkal ritkább szókombináció. Ám a NIST sem tudta megoldani például a rokon értelmű szavak problémáját.
Nincs jobb az embernél
Manapság (a WMT-n 2007 óta) a fordítóprogramok teljesítményét a fentiek miatt inkább emberek értékelik ki. A kiértékelésben a versenyre nevező csapatok tagjai is részt vesznek. Az értékelési folyamat során a kiértékelők mondatonként megkapják a fordításokat és a referenciafordítást is – csapatonként 300 mondatot, 5 fordítással. Emellett újabban már nem szakemberek segítségét is igénybe veszik (crowdsourcing). Ennek során az interneten keresnek kiértékelőket, akiknek nem ismerik a nyelvtudását. Egy előzetes teszt kitöltése után válhat valaki értékelővé, amennyiben a nyelvészek által már kiértékelt mondatokra ő is hasonló pontszámokat ad. Mivel még az így kiválasztott laikusok ítéletei is sokkal jobban különböznek egymástól, mint a szakemberek pontszámai, egy-egy mondatot több emberrel bíráltatnak el, mint a csupán szakértőkből álló értékelőcsapat esetében.
A gépi fordításokról a kiértékelő személy nem tudja, melyik rendszer készítette. Emellett minden mondatnál más sorrendben jelennek meg az egyes programok által létrehozott fordítások. Mivel általában ötnél több program versenyez egy-egy kategóriában, de 4-5 mondatnál többet egy emberi kiértékelő nem tud összehasonlítani, az egyes csoportokban szereplő mondatok nem mindig ugyanazoktól a fordítóprogramoktól származnak. Míg mondjuk az első csoportban az A, B, C, D, E versenyzők megoldását látja a kiértékelő, a második mondatnál az A, C, D, F, H versenyzőkét és így tovább. A feladat az, hogy a fordításokat rangsorolni kell: melyik fordítás jobb, mint a másik? A legjobbnak ítélt fordítás kapja az 1-es számot, az ennél kicsit rosszabb a 2-t és így tovább. Ha két mondat körülbelül azonos mértékben jó vagy rossz, azonos pontszámot kapnak.
Az emberi kiértékelők számára úgy állítják össze az értékelendő fordítások halmazát, hogy az értékelés végére minden versenyző programot minden másik programmal körülbelül ugyanannyiszor vessenek össze. Hogy néz ki ez a valóságban? Az alábbi mondatok egy valós fordítási versenyből származnak. Dőlt betűvel a fordítandó angol mondat és annak magyar referenciafordítása látható. Alatta sorakoznak a gépi fordítóprogramok fordításai és az ezekre egy szakember által adott pontszámok.
He sent a baleful stare at Stiros.
Vészjósló pillantást vetett Stirosra.
3 Elküldött egy vészjósló pillantást vetette Stiros.
1 Küldött egy vészjósló pillantást Stirosra.
2 Ő küldött egy vészjósló pillantást Stiros.
5 Neki egy káros merev tekintetet küldtek Stirosnál.
4 Ő küldött egy átkos bámulni a Stiros.
A lepontozott fordítások alapján a kiértékelés automatikusan történik. A kiértékelőprogram páronként veti össze a fordítóprogramokat. Az számít csupán, hogy A és B program közül melyiket értékelték jobbnak a kettő közül többször. Az, hogy pontosan milyen pontszámokat kapott egy-egy program, nem számít, csupán az, hogy melyik volt összességében jobb. A végső sorrend a páronkénti összehasonlításokból alakul ki. Tehát ha a programokat betűkkel jelöljük, akkor ha A > B és B > C, akkor a végső sorrend A > B > C lesz.
Ki állhat a dobogóra?
Ha már minden programot minden programmal összevetettek, itt az ideje az eredményhirdetésnek. Hogy alakul ki a végeredmény? A kiértékelőktől kapott pontszámok alapján egy algoritmus kiszámolja, hogy például az angolról magyarra fordító programok közül melyik bizonyult a legjobbnak, azaz melyiknek a fordításai kaptak jobb értékelést a többinél. Ezután meghirdetik a kategória abszolút győztesét és az is kiderül, melyik program nyert azok közül, amik kizárólag a versenybizottság által biztosított adatbázisokat használta.
A 2009-es magyarról angolra fordítási verseny abszolút győztese például a magyar fejlesztésű MetaMorpho lett, amely egy szabályalapú rendszer. Másodikként végzett, és egyúttal a megszorított kategória győztese lett a Marylandi Egyetem csapata, míg a harmadik helyet a Edinburgh-i Egyetem nyerte. A magyar már évek óta nem szerepel a versenyeztetett nyelvek sorában – így idén sem fog kiderülni, ki birkózik meg legnagyobb sikerrel a magyar nyelv gépi fordításával.
Nem tudom, hogy mennyire jó ha szimplán csak egyes mondatokat hasonlítunk össze. Lehetnek olyan esetek, amikor a korrekt fordítás csak akkor lehetséges, ha a szövegben a megelőző mondatokat is figyelembe veszünk. Pl nemet jelölő személyes névmást fordítunk olyan nyelvre, ahol nincs ilyen jelölés.
pl: "He fell in love with her" Ezt pl nem tudjuk úgy magyarra lefordítani, hogy ne veszítsünk a jelentésből vagy ne fogalmazzuk át.