nyest.hu
Kövessen, kérem!
Legutolsó hozzászólások
A nyelvész majd megmondja
A legnépszerűbb anyagok
Írjon! Nekünk!
nyest.hu
nyest.hu
 
Statisztikai gépi fordító 1.
Szavak szövegek szövevényéből

Tüzetesen megvizsgáltuk a The Guardian interaktív nyelvi térképét. Furcsaságok garmadáját láttuk. Mi közük a könyveknek, a szobafoglalásnak és a sárga lapoknak egymáshoz? Megtudjuk, ha bekukkantunk a statisztikai gépi fordítók műhelytitkaiba.

Wenszky Nóra – Novák Attila | 2014. február 28.
|  

Január közepén oldalunkon hírt adtunk egy, a brit The Guardian oldalán található interaktív nyelvi térképről. A térkép melletti keresőbe elméletileg bármilyen angol szót írva megtudhatjuk, hogy a kérdéses kifejezést hogyan mondják másutt Európában. Olvasóinkat arra biztattuk, fedezzék fel e térkép lehetőségeit és korlátait. Mivel a készítők a térkép létrehozásához a mindenki számára hozzáférhető Google Fordító fordítószolgáltatást használták, a térkép hibái jól rávilágítanak a széles körben használt fordítóprogram működésére és korlátaira is.

Számmisztika

Lássunk először néhány furcsaságot. Egyik kommentelőnk például észrevette, hogy a katalán számnevekkel nem stimmel valami – szavak helyett számokat látunk. Egy és kilenc között valóban 05:00 formátumban jelennek meg a számok a térképen Spanyolország északkeleti partjainál – miközben minden más országban betűvel kiírt számneveket látunk. A 10, 11, 12 meg így egyszerűen, kettőspont és nullák nélkül áll Katalóniában. Az első szám, ami valódi szóként bukkan fel a katalán vidékeken is a térkép szerint, az a 13 tretze – és egészen húszig meggyőzőnek tűnnek a szavak. A 21 azonban már több szempontból is kifog a térképen. A Google Translate nem utasítja el a kötőjeles alakokat. Tehát azt, hogy a térképes keresőablakban kizárólag ékezet nélküli betűk és szóközök használhatók, a térkép készítői állították be.Egyrészt, ha az angol helyesírási szabályoknak megfelelően, kötőjellel írjuk be a szót twenty-one alakban, akkor furcsa piros hibaüzenetet kapunk – csakúgy, mint amikor számokat írunk a keresőablakba.

Only unaccented letters and spaces were used.

’Kizárólag ékezet nélküli betűket és szóközöket használtak.’

Ha ezután kísérletképp helytelenül, szóközzel írjuk a twenty one szót, akkor már működik a dolog: megjelenik a huszonegy fordításként, és a többi nyelven is egészen meggyőző számneveket látunk. De nem mindenütt. Az egy esetében például azt láttuk, hogy a nemeket megkülönböztető nyelvekben a számnév hímnemű alakja szerepel – például spanyol uno, szlovák jeden. A huszonegynél már nem ilyen egyértelmű a helyzet. Nőnemű alakban áll például a szlovák és cseh ’21’ dvadsat’ jedna, dvacet jedna a szokásos hímnemű dvadsat’ jeden, dvacet jeden helyett. A bolgárban pedig sorszámnevet látunk: „двадесет и първа” [dvadeszet i pörva] ’huszonegyedik (nőnemű alak)’ a tőszámnévi двадесет и един [dvadeszet i edin] helyett. Az olasz és a litván megfelelő pedig teljesen hiányzik: „Twenty One” szerepel helyettük. És mit találunk az eddig is problémás katalánban? Egy furcsa képződményt: vint 01:00 ’húsz 01:00’, azaz a két számra (20, 1) adott fordítás egymásutánját. Ha viszont a Google Translate felületére írjuk be kötőjellel a twenty-one-t, akkor más, szintén helytelen katalán alakot kapunk: vint- ’húsz’. Cikkünk második felében megpróbáljuk megfejteni a titkot, hogy miért számok jelennek meg a katalánban.

Azonos alakú szavak

Mint már előző cikkünk a mean ’átlag; jelent; gonosz’ szó kapcsán is rámutatott, a fordítóprogram nem sokat tud kezdeni azzal, hogy egy betűsornak több jelentése is van. Ha például a ’datolya’ jelentésű date szó megfelelőire vagyunk kíváncsiak, esélytelenek vagyunk. A date szó ugyanis sokkal gyakrabban fordul elő ’dátum’, mint ’datolya’ jelentésben – így csupán ezt sikerül kicsikarnunk a térképből. Ha pedig a crash ’baleset, csattanás, kudarc, csőd; összetör, lezuhan’ szót írjuk be, elelmélkedhetünk azon, hogy mi az oka annak, hogy míg Európa nyugati felén az ’ütközés’ jelentésű szavak dominálnak, a magyarban a csattanás a megfelelő, addig tőlünk keletebbre egyre inkább a ’katasztrófa’ jelentés kerül túlsúlyba a térképen.

Crash – mekkora katasztrófa?
Crash – mekkora katasztrófa?
(Forrás: Wikimedia Commons / Thue)

Szófaji problémák is előfordulnak. Leginkább akkor van zűrzavar, ha a különböző szófajú alakok hasonló gyakorisággal fordulnak elő az angolban. Lehet például a present ’jelenlegi; ajándék; átad’ szóval kísérletezni – az alapszót leginkább ’jelen, jelenlegi’ jelentésben adja vissza a térkép, de a bolgárban például ’ajándék’ jelentésű megfelelőt találunk.

Ha egy szónál az igei forma sokkal gyakoribb, akkor inkább igei fordításokat kapunk, mint például a go ’megy; forduló’ esetében – bár a szlovén megfelelő még ennél a nagyon gyakori szónál is hiányzik. De ha egy szót legtöbbször főnévi értelemben használnak az angolban, akkor jó eséllyel főnévi fordításokat kapunk, mint például a book ’könyv; lefoglal’ esetében.

Ha ilyenkor mégis az igei alakra vagyunk kíváncsiak, annyiban segíthetjük a programot, hogy például egy egyes szám harmadik személyű alanyt írunk a szó elé: he books ’lefoglal’. Ám ekkor sem járunk elsöprő sikerrel. Csak néhány a sikertelen fordítások közül: ő könyvek, német er Bücher ’ő könyvek’, spanyol os libros ’a ti könyveitek’. Az oroszban viszont egy jól egyeztetett igei alakot találunk: он заказывает [on zakazivajet] ’megrendel’, s az ukrán és belorusz megfelelők is igeiek. Viszont ha már egy tárgyat is teszünk az ige után (hisz a book tárgyas ige), a he books tickets ’jegyeket szokott lefoglalni’ mondatra már az orosz és a vele közeli rokonságban álló nyelvek is „elromlanak” – leginkább az ő, könyvek, jegyek szavak egymásutánját kapjuk. Sőt, az Ibériai-félsziget újlatin nyelveinél a program felcseréli a sorrendet, középre kerül a ’jegy’ jelentésű szó.

Másik megoldásként felmerülhet, hogy múlt időbe tesszük az igét. A booked forma azonban többértelmű az angolban – az ige második (múlt idejű) és harmadik (befejezett melléknévi igenévi) alakja is ez. A térkép a harmadik alakot részesíti előnyben, és a legtöbb esetben valamilyen melléknévi vagy melléknévi igenévi alakot ad vissza. A bolgárban azonban igét kapunk és a booked baszk fordítása három szóból áll: txartel horia ikusi. Ha ezeket –baszk nyelvtudás híján – egyesével beírjuk a Google Fordító baszk–angol szótárába, a card, yellow, show ’kártya, sárga, mutat’ fordítást kapjuk vissza – ami a book szó sportban használt ’sárga lapot ad’ jelentését sejteti, csakúgy, mint a szerb (Он добија жути картон [on dobija zsuti karton] ’Sárga lapot kap’) és a horvát fordítás (on je zaradio žuti karton ’Sárga lapot adtak neki’).

Sárga lapot kapott
Sárga lapot kapott
(Forrás: Wikimedia Commons / Armin Kuebelbeck / GNU-FDL 1.2)

Emellett egészen meglepő változáson mennek át a megjelenő fordítások, ha a névmást megváltoztatjuk. Ha egy adott ragozott igét a hímnemű he, vagy a nőnemű she majd a semleges it névmásokkal kombinálunk, jelen időben vagy múlt időben ragozzuk, a fordítások széles tárházával találkozhatunk egy adott nyelven belül is. Érdemes kipróbálni például a cry ’kiáltás; kiált, sír’ szót. Most csak a magyar adatokat mutatjuk be – más nyelveken másként változnak a fordítások.

cry – kiáltás

cries – sír

he cries – kiált

she cries –sír

it cries – akkor sír

cried – kiáltott fel

he cried – kiáltotta

she cried – kiáltotta

it cried – kiáltott

crying – síró

he is crying – ő sír

she is crying – ő sír

it is crying – akkor sír

Rossz a statisztika?

Mi lehet az oka annak, hogy gyakran hibás fordításokat kapunk, a névmásválasztás befolyásolja a fordítást, esetenként olyan szavakat is találunk a fordításban, aminek kevés köze van a keresett szóhoz, illetve hogy különböző nyelvekre különböző jelentéseket ad a program? A statisztikai gépi fordítást angolul statistical machine translationnek nevezzük. Ennek elterjedt rövidítése az SMT.A kulcs természetesen a Google Fordítónál van, mely a statisztikai gépi fordítók közé tartozik. Ezek a programok automatikusan próbálják meg kitalálni, hogy egy adott szó, illetve szósorozat minek felel meg egy másik nyelvben.

Mint a nevük is mutatja, a statisztikai gépi fordítók jó statisztikus módjára mást sem csinálnak, csak számolnak. Azt számolják ki, hogy egy adott szóalaknak melyik szóalak felel meg a célnyelv szavai közül a legnagyobb valószínűséggel. Ehhez nem szótárakat és nyelvtani szabályokat használnak, mint a klasszikus fordítóprogramok, hanem hatalmas mennyiségű szövegből próbálják meg kihalászni a legvalószínűbb fordítást. Hogyan?

Párosan szép az élet

Korpusznak azt a szöveggyűjteményt hívják, amelyen a programok dolgoznak.

A fordítóprogram betanítása alapesetben párhuzamos korpuszokon zajlik. Például a magyar–angol nyelvpár esetében olyan, már létező angol és magyar szövegeket keresnek, amelyek egymásnak fordításai. Lehetnek ezek szépirodalmi művek, jogszabályok vagy akár filmek szinkronszövegei is. A program először mondatokra bontja a szövegeket, és párba állítja az egymásnak megfelelő mondatokat. Ez közel sem olyan egyértelmű, egyszerű számolási feladat, mint amilyennek tűnik. Hiszen előfordulhat, hogy egy hosszú mondatot a másik nyelvre két mondattal fordítottak, vagy hiányzik a mondat végi írásjel – ekkor máris csúszás tapasztalható.

Jó a párosítás?
Jó a párosítás?
(Forrás: Wikimedia Commons / Pete Souza, White House)

A mondatok párba állítása után következik a szavak összepárosítása, szintén automatikusan. Azt már könnyű belátni, hogy ennek a sikere nagyban függ attól, hogy mennyire hasonló a két nyelv szerkezete. Az így kapott, egymásnak megfelelő szópárokból és szósorozatokból a program egy úgynevezett frázistáblát állít elő, ami megmutatja, hogy mi egy adott szó, illetve szósorozat legvalószínűbb fordítása. Aztán már csak keresgélni kell a frázistáblában.

Az következő mondatpárok azt mutatják, hogy az angol és a magyar szavak párosítása milyen komoly kihívást jelent. Az alábbiakban bemutatunk néhány példát. Az első mondat az általunk beírt, a második a Google fordítása. Az együtt szereplő mondatok között az angol mondat az, mely szerintünk a megelőző magyar mondat(ok) legmegfelelőbb fordítása – a Google-lel ezt angolra fordítattuk vissza. A hibás fordításokat *-gal jelöljük.

A szavak száma lényegesen különbözik

Szeretlek. – I love you.

I love you.Szeretlek.

Szórendi különbségek

A kutyát etettem meg. –* I fed it to the dog.

Megetettem a kutyát. – I fed the dog.

I fed the dog. – *Én etetni a kutyát.

Szórendbeli és szószámbeli különbségek

Tegnap csókolhattalak meg először. – *Yesterday csókolhattalak first.

I could kiss you for the first time yesterday. – *Tudnám csókolni először tegnap.

A nagyon gyakori I love you – Szeretlek párral annak ellenére sincs problémája a programnak, hogy a háromszavas angol mondat megfelelője magyarul csupán egy szó. Ám a szórendi változatokkal vagy a bonyolultabb szerkezetekkel már nem tud ilyen könnyen megküzdeni.

Hibák, furcsaságok

Miből származnak a hibák és a nyelvek közti eltérések? Egyrészt sokszor nem jó maga a kiindulási korpusz, nem megfelelőek a fordítások. Másrészt, a szópárosítás nem feltétlenül sikeres – például az algoritmus a párosításból kimaradó szavakat hozzácsaphatja egy adott szóhoz, így a fordítóprogram aztán hallucinál, azaz felesleges szavakat is megad fordításként. Harmadrészt, az egyes nyelvekhez különböző mennyiségű, minőségű és típusú forrásszöveg áll rendelkezésre. Ha például a bolgár–angol korpuszban a present szó leggyakrabban ’ajándék’ jelentésben fordult elő, akkor ez lesz a frázistáblában a párja – míg más korpuszok esetén mondjuk a ’jelenlegi’ jelentésű szó. Ugyanezért van az is, hogy az egyik nyelven igei, a másik nyelven főnévi vagy melléknévi jelentésekkel találkozunk.

Presently, presents are being presented – épp ajándékokat adnak át
Presently, presents are being presented – épp ajándékokat adnak át
(Forrás: Wikimedia Commons / Greg Vojtko, U.S. Navy)

A he cries – kiált ~ she cries – sír párosítás azt is megmutatja, hogy a magyar–angol korpuszban a nőnemű névmásos mondat fordítása gyakrabban kötődött a ’sír’ jelentéshez, mint a hímnemű névmásos hasonló mondaté, amit inkább ’kiált’-ra fordítottak. Néha úgy tűnik, hogy a Google Fordító szexista – pedig csak a rendelkezésére álló szövegkorpusz az.

Nagyon sok függ attól is, hogy mekkora mennyiségű adat áll rendelkezésre. Kisebb nyelvek, amelyekhez kevesebb digitálisan elérhető dokumentum áll rendelkezésre, sokkal kisebb méretű párhuzamos korpusz létrehozását teszik lehetővé. Ha kevesebb és zajosabb adat alapján készíti el a program a frázistáblát, nagyobb eséllyel hibázik. Gyakran szótár jellegű erőforrásokat is használnak a frázistáblák létrehozásához. Feltehető például, hogy a katalán fordító esetében egy az időpontok angol megnevezéseit tartalmazó táblázat anyaga került viszonylag nagy súllyal a frázistáblába – ennek eredményeként ad a Google Fordító és az ez alapján készült The Guardian-térkép furcsa fordításokat.

Láttuk tehát, hogy egy statisztikai gépi fordító fordítási megoldásai leginkább attól függenek, hogy milyen szövegeken tanították be őket. Ezért nem csoda, ha a The Guardian térképén egy több jelentésű angol szóra más-más jelentés jelenik meg a különböző nyelveken. A probléma inkább abból adódik, ha egyenlőségjelet teszünk a különböző adatbázisok alapján készült fordítások közé. A térkép pontosan ezt teszi. Ez még nem is lenne baj, ha ezt a térképet csupán játéknak tekintenénk. De maga a Google Fordító is az angoltól különböző nyelvek között általában az angolon keresztül fordít. Ennek az az oka, hogy nagyobb számban léteznek például baszk–angol és baszk–magyar kétnyelvű szövegek, mint baszk–magyar dokumentumok. Ám a különböző korpuszok különbözőségéből adódóan ez a kettős fordítás igen gyakran hibás eredményt hoz – hiszen hiába jó fordítása a az angol mean szónak a spanyol significar ’jelent’ és bizonyos szövegkörnyezetben a magyar átlagos, ez a két szó mégsem ugyanazt jelenti. Pedig a Google Fordító és így a Guradian térképe is ezt állítja significar = átlagos.

Vajon ki lehet-e védeni az ilyen típusú hibákat? Cikksorozatunk második részében tovább boncolgatjuk a statisztikai gépi fordítók rejtelmeit.

Követem a cikkhozzászólásokat (RSS)
Hozzászóláshoz lépjen be vagy regisztráljon.
Még nincs hozzászólás, legyen Ön az első!
Információ
X