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ó 2.
A kutya esete a postással

Mi az a szóláncmodell és a simítás? Miért nem haraphat postás kutyát a Google Translate szerint? Hogy jöhetnek ki teljesen furcsa mondatok egy gépi fordítóból? És mi az a kuty? A statisztikai gépi fordítók titkaiba pillantunk bele.

Novák Attila – Wenszky Nóra | 2014. március 7.
|  

Cikksorozatunk első részében a The Guardian interaktív térképe ürügyén bemutattuk a statisztikai gépi fordítók alapvető működését. Most tovább megyünk, és felsorolunk még néhány problémát, amivel a pusztán statisztikai alapon dolgozó programok nem, vagy csak nehezen tudnak megbirkózni. Példaként a Google Fordító fordításait fogjuk használni, és ezek segítségével megpróbálunk belelátni a program működésébe. Cikkünk végére az is kiderül, milyen módszerekkel lehet javítani a statisztikai gépi fordítók pontosságán.

Ellenőrzés statisztikával

Forrásnyelvnek nevezzük azt a nyelvet, amiről fordítunk, és célnyelvnek azt, amire fordítani szeretnénk.

Előző cikkünkben elmondtuk, hogy egy adott nyelvpáron elérhető párhuzamos szövegek alapján a fordítóprogram egy úgynevezett frázistáblát készít. Ebben az szerepel, hogy a látott szövegek alapján az egyes szavaknak és szócsoportoknak milyen szavak, illetve szócsoportok felelnek meg a legnagyobb valószínűséggel a célnyelvben. Fordítás közben ez alapján készíti el a forrásnyelvi szöveg lehetséges fordításait, általában nem is csak egyet.

Ezzel párhuzamosan a program további ellenőrzést is végez a készülő fordításjelölteken. Egy, a tanulókorpusznál nagyobb, célnyelvi szövegadatbázis alapján ellenőrzi, hogy a fordításként létrejött szósorozat milyen gyakorisággal fordul elő. Ehhez alapvetően egy egyszerű szóláncmodellt használ: megbecsüli, hogy milyen valószínűséggel fordul elő a célnyelvi szövegekben egymás után a fordításban szerepelő szósor, úgy, hogy az adott szó gyakoriságán kívül azt is figyelembe veszi, hogy milyen gyakran követi az azt megelőző 1, 2, 3...n szót.

Szólánc
Szólánc
(Forrás: Wikimedia Commons / Toni Lozano / CC BY-SA 2 0)

A tanítókorpuszban soha nem látott szavakhoz, illetve szósorokhoz is rendelnek valamekkora valószínűséget. Ellenkező esetben a célnyelvi nyelvmodell lehetetlennek minősítené azokat a fordításokat, amelyben például olyan név szerepel, amely nem szerepelt a rendszer építésekor használt tanítóanyagban. Az alábbiakban az elsőként álló mondatot írtuk be a Google Fordítóba. Alatta megadjuk az általunk készített helyes fordítást vagy fordításokat. Az írógépbetűkkel szedett mondatok a Google Fordító fordításai. % jelet tettünk az olyan fordítások elé, amik ugyan helyes célnyelvi mondatok, de nem a forrásnyelvi mondat megfelelői. * jelzi a nyelvileg hibás mondatokat. Végül egyszeres idézőjelek között megpróbáljuk megadni a fordítóprogram által adott hibás fordítás jelentését.Ezt a technikát simításnak nevezik. A ragozó nyelvek esetében, ahol egy-egy szótőnek több száz alakja is lehet, a rendelkezésre álló szövegekből sokszor hiányzik a fordíttatni kívánt forma – így azzal a fordítóprogram sokszor nem is tud mit kezdeni (ilyenkor leggyakrabban változatlan alakban kerül a fordításba), mint például az alábbi mondatok esetében.

Kinyithattátok volna az ablakot.

You could have opened the window.
*Kinyithattátok have the window.
Kinyithattátoknak van az ablaka.’

Elszomorítottál.
You have made me sad.
*Though it.
’Bár ez.’

Ragozó nyelvek

Az ellenőrzés módszere miatt van az, hogy a Google Fordítóból általában nagyságrendekkel valódibbnak, helyesebbnek látszó szöveg jön ki, ha a célnyelv az angol, mint ha például egy a magyarhoz hasonló ragozó nyelvre próbálunk vele fordíttatni. Ugyanis a fordítás ellenőrzéséhez használt szóláncmodell a szegényes morfológiájú (nem vagy keveset toldalékoló) és viszonylag kötött szórendű angol esetében jól használható. Emellett angol szövegekből gyakorlatilag korlátlan mennyiségű szöveg áll rendelkezésre a modell legyártásához (különösen a Google számára). Ez viszont azt is jelenti, hogy az olvasónak a meggyőző fordítás láttán akkor is az az illúziója támad, hogy a fordítás jó, amikor inkább csak laza asszociációs viszony áll fenn az eredeti és a fordítás jelentése között.

A Google Fordítót például semmilyen módszerrel nem tudjuk meggyőzni, hogy a ragok által kifejezett grammatikai viszonyoknak megfelelően fordítsa az alábbi mondatot. Hiszen túl sok kutya általi postásharapást látott a célnyelvi nyelvmodelljét alkotó szövegekben, és túl kevés példát arra, amit itt mondani próbálunk:

A postás harapta meg a kutyát.

It was the postman who bit the dog.
%
The postman was bitten by the dog.
’A postást megharapta a kutya.’

A kutyát harapta meg a postás.

The dog was bitten by the postman.
%
The dog is biting the mailman.
’A kutya éppen harapja a postást.’

A postás a kutyát harapta meg.
It was the dog that the postman has bitten.

%
The postman was bitten by the dog.

’A postást megharapta a kutya.’
Hol egy jóízű kutya? Hadd harapjam meg!
Hol egy jóízű kutya? Hadd harapjam meg!
(Forrás: iStockphoto)

Vagy mégis sikerül valami ilyesmit elérni? De vajon mit is jelent itt a magyar „mondat”?

A postás harap kuty a kert.

*The postman bites dog in the garden.
’A postás harap kutyát kertben.’

A fenti kísérleti „mondat” azt is megmutatja, hogy a Google Fordítóban a magyar esetében valamilyen tövesítő algoritmus is működik, hiszen a nem létező kuty szóban felismeri a kutya szó tövét.

Szórend

A Google Fordítóhoz hasonló statisztikai fordítórendszerek számára általában komoly kihívást jelent az olyan nyelvpárok közötti fordítás is, ahol a szórend jelentősen különbözik. Ez már a tipológiai szempontból nem is oly távoli angol–német nyelvpár esetében is problémát jelent. A németben az alárendelő mellékmondatokban a ragozott ige mindig a tagmondat legvégén áll, míg az angolban ilyenkor is a tagmondat második összetevője. A fordítóprogram az ilyen mondatokban általában rossz helyre teszi vagy teljesen elveszíti a mellékmondat igéjét.

I doubt that the king would want to kill that poor boy.
Kétlem, hogy a király meg akarná ölni azt a szegény fiút.
%Kétlem, hogy a király meg akarta ölni a szegény fiút.

I doubt that the king would want to kill that poor boy.
Ich bezweifle, dass der König jenen armen Jungen zu töten möchte.
*Ich bezweifle, dass der König möchte, dass die armen Jungen zu töten.
’Kétlem, hogy a király azt szeretné, hogy a szegény ifjak megölni.’

Hasonló jelenséget látunk, ha például az angol mondatban főnévi igenévvel kifejezett célhatározó van. A take ’visz’ ige az alábbi példában a magyar fordításból teljesen hiányzik, a német fordításban pedig angolul jelenik meg.

I want you to take this basket to your grandmother.

Azt akarom, hogy vidd el ezt a kosarat a nagymamádnak.

*Azt akarom, hogy ezt a kosarat a nagymama.


I want you to take this basket to your grandmother.

Ich möchte dass du diesen Korb zu deiner Großmutter bringst.

*Ich möchte, dass Take This Korb, um Ihre Großmutter.

’Azt szeretném, hogy take this kosár azért, hogy a nagymamája.’

Vidd el ezt a kosarat...
Vidd el ezt a kosarat...
(Forrás: Wikimedia Commons)

Ugyancsak problémát jelenthet az egyeztetés kezelése. Ha a célnyelvben a névszói csoportokon belül a névelőket, számneveket, mellékneveket és a főnevet nemben, számban, esetben egyeztetni kell, az az erősen leegyszerűsített grammatikai modellekkel dolgozó statisztikai fordítórendszereknek gyakran nem sikerül. Erre is példa a fenti mondat a királyról és szegény fiúról, ahol a program inkább többes számban ragozta el a szegény fiút, semmint hogy egyes számban helyesen tárgyesetbe rakja: névelőként a többes számú die ’a(z)’ szerepel a helyes egyes számú tárgy esetű jenen ’azt a(z)’ helyett.

Megoldások

Amint a fenti példák mutatják, a statisztikai gépi fordítók sok nyelvi jelenséggel nem tudnak megbirkózni. Főként a nagyon sokféle szóalakot tartalmazó ragozó nyelvekkel vannak komoly problémák. Hogyan lehet ezeket kiküszöbölni? A kutatók kidolgoztak olyan technikákat, amelyek révén a fordítóprogramok egyszerre több modellel dolgoznak, és az egyes fordításokat többféle szempontból is kiértékelik. Nem csak a puszta szóalakok feletti nyelvi statisztikák alapján dolgoznak, hanem bizonyos korlátozott szintű nyelvi elemzést is felhasználnak. Az ilyen modellekben az eredeti mondat, illetve a fordításban szereplő szavak töve, szófaja, a ragozásával kapcsolatos morfológiai információ is szerepet játszik. Ezekre is hasonló statisztikai modelleket készítenek, mint a szóalakokra, és az ezek által a modellek által a fordításjelöltekre adott pontszámokat kombinálják.

Ragozó nyelvek esetén hibrid modellekkel is találkozunk. Ezek a korpuszokkal dolgozó statisztikai alapú fordítók és a hagyományos, szabály- és szótáralapú fordítóprogramok ötvözetei. Cikksorozatunk következő részében szót ejtünk ilyen bonyolultabb modelleket használó megoldásokról is.

Követem a cikkhozzászólásokat (RSS)
Hozzászóláshoz lépjen be vagy regisztráljon.
5 Janika 2014. március 10. 21:28

Itt jól latszodik a statisztikai fordítás. Az egyik szövegkörnyezetben rájött a fordító a sütő szótóre, a másikban nem. Vicces.

van nektek mikrohullámú sütőtök?

you have a microwave pumpkin?

van otthon mikrohullámú sütőtök?

microwave oven at home anyway?

4 MolnarErik 2014. március 7. 19:20

Szóval ezért cseréli meg olyan sokszor a translate az alanyt meg a tárgyat. Ezt sose értettem.

3 Sultanus Constantinus 2014. március 7. 13:10

Végeztem én is egy nagyon egyszerű tesztet (spanyol--angol):

a) Compré el diccionario. -- Ese es bueno. 'Megvettem a szótárat. -- Az [a szótár] jó.'

"I bought the dictionary. -- *That is good."

b) Compré el diccionario. -- Eso es bueno. 'Megvettem a szótárat. -- Az [hogy megvettem] jó.'

"I bought the dictionary. -- That is good."

Angolul ugyanazt fordítja mindkettőre, pedig nem ugyanazt jelenti a két mondat. A helyes megoldás az elsőnél "That one is good" lenne. A különbség mindösze annyi a forrásnyelvben, hogy a mutató névmás az a) példában hímnemű és a 'szótár' az előzménye, a b) példában semlegesnemű és az első mondat az előzménye.

2 Janika 2014. március 7. 12:58

A legegyszerűbb alakkal azonban nincs problémája:

"a postás megharapta a kutyát"

"the postman bit the dog."

ezt teljsen jól fordítja.

1 Sultanus Constantinus 2014. március 7. 12:37

Mindaddig, amíg az angolt használják "közvetítő"-nyelvként ezek a programok, nem is fognak tudni soha megközelítőleg helyes fordításokat sem produkálni. Azon egyszerű oknál fogva, hogy az angolban rengeteg nyelvtani információ elveszik (pl. a főnevek neme), ami a forrásnyelvben megvan és a célnyelvhez is sokszor szükséges lenne. Pedig a nemek kérdése csak az egyik legtriviálisabb és könnyen kezelhető dolog, mégsem mindegy (pl. a spanyolban), hogy egy mondatban éppen milyen nemű névmással utalunk vissza valamely előzményre, mert tök mást jelenthet. A fejlesztés első lépése tehát egy olyan "közvetítő"-nyelvet bevezetni, amely ismeri legalább a nyelvtani nemeket és ragozó is.

De még így sincs minden megoldva (persze ezt már egy másik cikknél leírtam, természetesen senki sem reagált rá semmit), hiszen vannak olyan ragozó nyelvek (pl. a baszk), ahol még csak szabályrendszert sem lehet felállítani az igeragozásra (pl. már az ige szótári alakját -- ami nagyjából a befejezett melléknévi igenévnek felel meg -- is vagy ötféleképpen képezhetik: e/i/j-TŐ-i/-an/-tu/-du, és kb. semmilyen szabály nincs rá, hogy mikor melyik).

Tehát sajnos ha komolyan akarnak majd valamit kezdeni az ilyen programokkal, akkor azokat bizony külöm-külön egy adott nyelvre kell fejleszteni (az angolt félretéve).

Információ
X