Rasid városa és a számítógépes nyelvészet
A több nyelven írt azonos tartalmú szövegek nem csupán az ismeretlen írások és nyelvek megfejtésben, de a modern nyelvtechnológiában is nagy szerepet játszhatnánk. Ezt sejti meg olvasónk, és szakértőnk megmutatja, miként.
Ismeri az olvasó azt a társasjátékot, amiben két dolgot, amiknek látszólag semmi közük egymáshoz, a lehető legkevesebb lépésben kell összekapcsolni? Hát ez a játék jut eszembe a mai témáról. Mi köze az egyiptomi Rasid városnak a különböző termékekben található használati utasításokhoz? A megoldáshoz a kulcsot Ákos nevű olvasónk kérdése adja meg:
A fényképezőgépem kézikönyvét lapozgatva az ugrott be, hogy végső soron ez a kézikönyv (és rengeteg más termék leírása) egyfajta Rosette-i kőként is funkcionál, hiszen egyazon szöveg akár 5-6 nyelven is szerepel benne.
Ebből arra következtettem, hogy ha ezek fennmaradnak, akkor lehet, hogy 2000 év múlva, amikor mi társadalmunk és kultúránk lesz már csak történelem, nyelvészek/régészek ezeket használhatják majd úgy, ahogy mi a Rosette-i követ a mostani nyelvek megfejtésére. Erre azért is gondolom, hogy van esély, mert az ilyen kézikönyveket és egyéb leírásokat többmilliós példányszámban nyomtatnak és van rá esély, hogy egy-két darab megmarad hosszú időkön át.
Létezik-e erről a témáról bármi ilyen olvasni való, vagy ezzel nem is foglalkozik senki?
Kezdjük azzal, hogy Rasid városa Alexandria közelében fekszik a tengerparton, valaha jelentős kikötő volt, amíg Alexandria túl nem nőtt rajta. Francia neve Rosette, angolul Rosettának hívják, magyarul hallottam már Rosette-nek és Rosettának is. A nyelvészetben egy régészeti leletről lett híres, az ún. Rosette-i kőről, amelyet Ákos itt említ. Ez egy fekete szikladarab, amit Napóleon idején találtak a földben Rasidban egy erőd építésekor, és ma a British Museumban őrzik (mint annyi minden mást, amit az angol hadsereg hadizsákmányként megszerzett Napóleontól).
A Rosette-i kőnek az a jelentősége, hogy i.e. 196-ban V. Ptolemaiosz király néhány rendelkezését vésték rá (adók kivetését és más fontos dolgokat), méghozzá három változatban: ó-egyiptomi hieroglifákkal, egy akkor már csak kevesek által ismert liturgikus írással, alatta az ebből kialakult hangírással, az ún. démotikus írással, amit a Ptolemaioszok korában beszélt egyiptomi nyelv lejegyzésére használtak, és görög fordításban, görög betűkkel. (A birodalom hivatalos nyelve akkor már a görög volt, az egyiptomi nyelvet és a démotikus írást is inkább liturgikus célokra használták.) Ennek a leletnek az alapján fejtették meg a tudósok, elsősorban Jean-François_Champollion, az egyiptomi hieroglifák addig rejtélyes értelmét, olvasási módját. Ákos tehát teljes joggal hasonlítja a mai soknyelvű használati utasításokhoz, amelyeket az utókor esetleg ugyanúgy tudna használni, mint ahogy Champollion használta a Rosette-i követ.
Ákos ezt írja: „Keresgéltem, hogy van e erről valamilyen tanulmány, cikk, szakdolgozat vagy bármi, de nem találtam semmit.” Pedig tele van vele a szakirodalom, valószínűleg rossz helyen kereshette, mert nem tudta, hogy a kifejezés, amelyet keresnie kellett volna: a párhuzamos korpuszok (angolul: parallel corpora). A számítógépes nyelvészetben ezeknek igen fontos szerepük van, igaz, nem arra a célra használják őket, mint Champollion a Rosette-i követ. Hanem akkor mire?
A két legfontosabb alkalmazási mód a nyelvfelismerés (angolul: language recognition) és az automatikus fordítás (angolul: machine translation) támogatása. Ezeknek a kulcsszavaknak a segítségével már Ákos is rengeteg érdekeset találhat a témáról. Ezért csak néhány mondatban szólok a fő problémákról.
A nyelvfelismerés viszonylag egyszerű feladat. Azt jelenti, hogy egy számítógépes program egy írott szövegről automatikusan felismerje, milyen nyelven írták. (Minél rövidebb szöveg elegendő, annál jobb a módszerünk.) Ehhez a szóba jövő nyelvek írásos „ujjlenyomatait” használják fel. Ez azt jelenti, hogy először is szükségünk van sok olyan szövegre, amelyekről tudjuk, hogy milyen nyelven írták őket, és jellemző sajátosságokat keresünk bennük. Az ilyen sajátosságok gyűjteményét nagyon rossz és félrevezető kifejezéssel nyelvmodellnek (language model) nevezik. A párhuzamos korpuszok nyilván segítik ezeknek a „nyelvmodelleknek” a megbízhatóságát, mert ha biztosan tudjuk, hogy a különböző nyelvű szövegek ugyanarról szólnak, akkor a „nyelvmodellt” nem csaphatják be a tartalomból fakadó sajátosságok.
A legegyszerűbb nyelvmodell a betűstatisztika: átlagosan melyik betű hányszor fordul elő az illető nyelven írt szövegekben. (Természetesen az egyes betűk relatív gyakoriságát érdemes kiszámolni, vagyis az előfordulásuk számát el kell osztani a szövegben található betűk számának összegével. Így olyasmit kapunk, mint egy valószínűségi eloszlás, hiszen ha összeadjuk az egyes betűk relatív gyakoriságát, akkor 1-et kapunk.) Amilyen egyszerű ez a módszer, olyan megbízhatatlan. Sokkal jobb eredményt érhetünk el, ha nem egyes betűk, hanem egymás mellett álló betűpárok eloszlását számoljuk ki, és még jobbat, ha a betűhármasokat számoljuk meg. Általában ennél jobb „nyelvmodellre” a nyelvfelismeréshez nem is nagyon van szükség.
Sokkal fontosabb a párhuzamos korpuszok szerepe az automatikus fordításban. A gyakorlatban a legtöbb automatikus fordítórendszer párhuzamos korpuszokon alapul, és gyakorlatilag olyasféle feladatot végez, mint amilyet annak idején Champollion. A számítógépes algoritmus megpróbálja felismerni az összefüggéseket a párhuzamos korpusz két nyelven megfogalmazott szavai, mondatai között, és ennek alapján megpróbálja megbecsülni, hogy egy olyan mondatot, amelyik nem szerepel a korpuszban, hogyan kell a másik nyelven mondani.
Ez a feladat hatalmas, és persze nagyrészt megoldatlan. Nagyon nehéz a párhuzamos korpusz két nyelvének mondatai között megtalálni a szabályos megfeleléseket, és szintén nagyon nehéz ezeket a szabályszerűségeket új mondatokra alkalmazni. Talán elég, ha ennek a folyamatnak az első lépésén elgondolkozunk, mert már az is elég komoly nehézségekkel jár. Ezt a lépést magyarul illesztésnek nevezhetjük (angolul alignment). Ez azt jelenti, hogy meg kell találnunk, hogy melyik mondatok felelnek meg egymásnak a párhuzamos korpusz két szövegében, majd ha ez sikerült, akkor a mondatokon belül a szavakat is illeszteni kell, vagyis meg kell találni az egyes mondatokban egymásnak megfelelő szavakat.
Már a mondatok illesztése sem egyszerű, hiszen nagyon gyakori, hogy az egyik szövegben több mondat felel meg annak, amit a másik szövegben egyetlen mondattal fejeztek ki. A szavak illesztése még problematikusabb. Itt ugyanis nemcsak az fordul elő, hogy az egyik nyelvben két szóval fejezik ki azt, amit a másikban eggyel (például a magyar otthon szó az angolban az at home kétszavas egységnek felel meg). Az is elképzelhető, hogy az egyik szó a másik nyelvben semmilyen módon nincs kifejezve. Például lehet, hogy az angol (s)he can write háromszavas egységnek a magyar írhat felel meg. De nem mondhatjuk, hogy ez a magyar szó kifejezi azt, ami az angolban három szó, hiszen a she/he névmást semmi sem fejezi ki abban, hogy írhat. Máskor ugyanis az ő felel meg a (s)he névmásnak, az algoritmus tehát valószínűleg arra fog jutni, hogy az írhat esetében egyszerűen nincs jelen a (s)he magyar megfelelője.
A mondatok és a szavak illesztésére is számtalan algoritmus létezik, amelyeknek a részleteibe itt nem megyek bele. A mondatillesztés legfontosabb támpontja a két korpusz mondatainak hossza. A két nyelv átlagos mondathosszának aránya alapján nagyjából meg lehet becsülni, hogy egy-egy mondatpár lehet-e egymáshoz illeszkedő mondat. Ezen kívül természetesen támaszkodni lehet a mondatpárokban szereplő szavakra is: ha feltételezzük, hogy két mondat összetartozik, akkor a szavaik között is kell valamilyen illeszkedésnek lennie, tehát ha a szóillesztést és a mondatillesztést mintegy egyidejűleg végezzük, jobb eredményeket kaphatunk.
A szavak illesztése azon alapul, hogy sok lehetséges szó-megfelelés közül kiválasztjuk a legvalószínűbbeket. Például ha már megállapítottuk, hogy az angol the boy coughs mondat megfelel a magyar a fiú köhög mondatnak, akkor a három-három szó lehetséges megfeleléseinek száma 6. A szöveg többi mondata alapján az algoritmus megállapíthatja, hogy a the ∼ a megfelelés messze sokkal valószínűbb (több alkalommal kerülnek a megfelelés gyanújába), mint mondjuk a the ∼ fiú vagy a the ∼ köhög megfelelés, és így tovább.
Tehát Ákos jól gondolja, a többnyelvű használati utasítások és más párhuzamos korpuszok nagyon hasznosak, méghozzá a számítógépes nyelvészetben. Az automatikus fordítással foglalkozó csoportok vadásznak is az ilyenekre, persze még inkább a hosszabbakra, például több nyelven megfogalmazott törvénykönyvekre, műszaki szabadalmakra és hasonlókra. De a hétköznapi életben is jó hasznát lehet venni a párhuzamos korpuszoknak, különösen, ha valaki már elvégezte az illesztés hatalmas munkáját. Én szótár helyett is sokszor használom azt a Hunglish nevű magyar–angol párhuzamos korpuszt, amelyet a Műszaki Egyetemen dolgoztak ki kollégáim. Sőt, ha valakit érdekel, a hunalign program, amelyet a Hunglish illesztéséhez használtak, szintén nyilvánosan hozzáférhető és tanulmányozható.