A nyelvtechnológia eszközei és nyersanyagai 2015/2016 2. félév 7. A statisztikai gépi fordítás és problémái valamint Mozaik nyelvmodell az AnaGramma elemzőhöz Laki László 2016.04.06.
A GÉPI FORDÍTÁS FAJTÁI ÉS NEHÉZSÉGEI
Fordítási nehézségek Egy szónak több jelentése lehet (homonímia) Szótárból választás Kifejezések felismerése Szerkezeti (nyelvtani) többértelműség Szórendi eltérések Névmások kezelése Igeidők
Szabályalapú gépi fordítás A gépi fordítás módszerei Közvetlen fordítás Interlingva Transzfer Példaalapú fordítás Statisztikai gépi fordítás Hibrid Emberi közreműködéssel
STATISZTIKAI GÉPI FORDÍTÁS (SMT)
A SMT előnyei Az internet segítségével nagyszámú digitálisan tárolt szöveg áll rendelkezésünkre, melyek segítségével nagyméretű korpuszok állíthatók elő A statisztikai gépi fordítórendszerek nem igényelnek speciális nyelvi ismereteket és bármilyen nyelvpárra alkalmazhatók A szabályalapú fordító esetében szükséges, hogy emberi erővel állítsák elő a különböző szabályokat ezzel szemben a statisztikai módszer teljesen automatikus, emiatt olcsóbb az előállítása A módszer kifejezetten alkalmas olyan fordítások elvégzésére, ahol a szövegekben nagyon kevés az eltérés
A SMT elméleti háttere Célnyelvi mondatok(t) Zajos csatorna (SMT rendszer) The cat caught the mouse. Forrásnyelvre lefordított mondatok(s ) T = argmax T P T S = argmax T P T P S T Komponensek: Nyelvmodell (folyékonyság) Fordítási modell (helyesség) Dekóder T : legjobb fordítás S : forrásnyelvi mondat T : célnyelvi mondat P T S = φ S T λ φ P LM T λ LM d S, T λ d ω T λ ω
Nyelvmodell A következő szó az őt megelőző n-1 szó alapján határozható meg (n-gram modell) Feladata, hogy kiválassza a legjobb fordítást a fordítási modell által adott lehetőségek közül Ezek a valószínűségek a relatív előfordulási gyakoriságból becsülhetők N-gram alapú közelítés a rákövetkező szó feltételes valószínűségére: Egy teljes szósorozat valószínűsége:
Fordítási modell A P(f e) fordítási modell feladata, hogy megtalálja az eredményül kapott célnyelvi kifejezésre a legmegfelelőbb bemenetet Párhuzamos korpuszból Szószintű fordítási modell Kifejezés szintű fordítási modell Frázisok megtalálása (e) Frázisok fordításának megtalálása (f) Átrendezési távolság mértéke
Szószintű összekapcsolás A macska megfogta az egeret The cat caught the mouse
Szószintű összekapcsolás A nagymama macskája megfogta az egeret The mouse was caught by the cat of grandma
Dekódolás A dekódoló feladata, hogy egy adott forrásnyelvi mondathoz megtalálja a legjobb célnyelvi mondatot Ez egy keresési feladat A NAGYMAMÁM MACSKÁJA MEGFOGOTT EGY APRÓ EGERET. GRANDMOTHER CAT CAUGHT A LITTLE MOUSE. MY GRANDMOTHER MY GRANDMOTHER S CAT LITTLE MOUSE LITTLE MOUSE. A LITTLE MOUSE
SZINTAXIS ALAPÚ GÉPI FORDÍTÁS
Egy kifejezés alapú szabály kifejtése [Koehn, 2011]
Egy kifejezés alapú szabály kifejtése [Koehn, 2011]
Egy kifejezés alapú szabály kifejtése [Koehn, 2011]
Egy hierarchikus szabály kifejtése [Koehn, 2011]
Egy szintaxis alapú szabály kifejtése [Koehn, 2011]
Egy szintaxis alapú szabály kifejtése [Koehn, 2011]
NEURÁLIS HÁLÓZAT ALAPÚ GÉPI FORDÍTÁS
Neuronháló alapú nyelvmodell
Neuronháló alapú nyelvmodell
Neuronháló alapú dekóder [Bahdanau et al. 2015]
AZ SMT-MODELLEK KÜLÖNFÉLE ALKALMAZÁSAI (SAJÁT KUTATÁSI TEVÉKENYSÉGEM)
CIGÁNY-MAGYAR SMT
Hasonló morfológiai gazdagságú nyelvpárok Korpusz: Vesho-Farkas-féle lovári nyelvű Újszövetség Cigány-magyar SMT Káldi-féle (Neovulgáta) magyar Újszövetség Eredmény: Sokkal magasabb BLEU Olvashatóbb, érthetőbb fordítás Rendszer BLEU érték Cigány-magyar (MOSES) 30.53% Cigány-magyar (JOSHUA) 29.20% Magyar-cigány (MOSES) 30.38% Magyar-cigány (JOSHUA) 35.88%
Példamondat (cigány-magyar) Cigány referenciamondat: le but manusha pale tele sharadine penge gada po drom, kavera pale kranzhi phagrenas tele pa kasht haj po drom rispisarnaslen. Magyar referenciamondat: a hatalmas tömeg pedig leterítette ruháit az útra, mások meg ágakat vagdostak a fákról és az útra szórták. MOSES fordítás: a nép pedig le terítették ruháikat az úton, mások pedig ágakat phagrenas le a fa, és az úton rispisarnaslen. JOSHUA fordítás: a nép pedig le terítették ruháikat az úton, mások pedig ágakat phagrenas le a fa és az úton rispisarnaslen.
Saját doktori munkám MORFÉMA ALAPÚ SMT SZÓRENDI ÁTRENDEZÉSSEL
Frázis alapú SMT Probléma Angol magyarra gyenge eredmények a szórend és a morfémák szavakba szerveződése túl különböző A dekóder beépített eszközei nem elég erősek adathiány a morfológiánál a torzítás gyenge modell az átrendezésre
Motiváció Angol németre, angol törökre is gyenge eredmények szórendi problémák: mellékmondati szórend inverziós szerkezetek gyakori szóvesztés, illetve rosszul fordított grammatikai szerepek Javulás a forrásnyelvi mondatok átrendezésével [Fraser Gojun 2012, Oflazer Yeniterzi 2010]
Módszer Forrásnyelvi mondatok szintaktikai elemzése Célnyelvi mondatok morfológiai egyértelműsítése Forrásnyelvi mondatok átrendezése angol mondatok magyarhoz hasonló szórenddel csak a szisztematikus szórendi különbségeket kezeljük Két modell morfémaalapú szóalapú, faktoros
Átrendezési példák in my house in my house my house in ház am ban
Példamondat függőségi elemzéssel root(root-0, sleep-2) nsubj(sleep-2, I-1) prep(sleep-2, in-3) pobj(in-3, house-5) poss(house-5, my-4) I sleep in my house. I/PRP sleep/vbp in/in my/prp$ house/nn./.
Példamondat függőségi elemzéssel root(root-0, sleep-2) nsubj(sleep-2, I-1) prep(sleep-2, in-3) pobj(in-3, house-5) poss(house-5, my-4) sleep/vbp I/PRP in/in my/prp$ house/nn./.
Példamondat függőségi elemzéssel root(root-0, sleep-2) nsubj(sleep-2, I-1) prep(sleep-2, in-3) pobj(in-3, house-5) poss(house-5, my-4) sleep/vbp I/PRP in/in house/nn my/prp$./.
Passzív szerkezet
Birtokos szerkezet I like to see the sons of the merchants. like/vbp_i/prp see/vb_to/to the/dt merchant/nn sons/nns_of/in_acc/acc./. I like to see the hats of the sons of the merchants. like/vbp_i/prp see/vb_to/to the/dt merchant/nn sons/nns_of/in_nak/nak the/dt hats/nns_of/in_acc/acc./.
Morféma alapú modell After you were picked up at sea after/[in] up/[rp] pick/[vb] [PPart] D_they/[P3] you/[prp] acc/[acc] sea/[nn] at/[in] Fordítás miután/[kot] felvesz/[ige] [Past] [t3] [Def] maga/[fn_nm] [t3] [ACC] a/[det] tenger/[fn] [SUP] Generálás miután felvették magukat a tengeren
Morféma alapú modell Fordítandó mondat: After you were picked up at sea, our listening post in Malta intercepted that fax. Alaprendszer fordítása: maga után felemelte a tengeren, és az málta elfogtuk, hogy fax. Morfémaalapú rendszer fordítása: miután felvették magukat a tengeren, Máltában lehallgatónk elfogta a faxot.
Faktoros szóalapú modell at my request the ceremony was postponed for a year. request/[nn] [NN]my/[PRP$]at/[IN] postpone/[vb] [VB][PPart]D_they/[P3] the/[dt] [DT] ceremony/[nn] [NN]acc/[ACC] a/[dt] [DT] year/[nn] [NN]for/[IN]./[.] [.] Fordítás kérés/[fn] [FN][PSe1][SUB] elhalaszt/[ige] [IGE][Past][t3][Def] a/[det] [DET] szertartás/[fn] [FN][ACC] egy/[det] [DET] év/[fn] [FN][SUB]./[PUNCT] [PUNCT]
Faktoros szóalapú modell kérés/[fn] [FN][PSe1][SUB] elhalaszt/[ige] [IGE][Past][t3][Def] a/[det] [DET] szertartás/[fn] [FN][ACC] egy/[det] [DET] év/[fn] [FN][SUB]./[PUNCT] [PUNCT] Generálás kérésemre elhalasztották a szertartást egy évre.
Faktoros szóalapú modell Fordítandó mondat: at my request the ceremony was postponed for a year. Fordítás szóalapú rendszer: kérésemre elhalasztották a szertartást egy évre. Fordítás alaprendszer: az én kérésemre a szertartás volt. Fordítás morféma alapú rendszer: kérésemre halasztották a szertartást.
Eredmények emberi kiértékelés Minden kiértékelő összehasonlításaiból azonos sorrend állt össze 51.33 Baseline rendszer (14.57% BLEU) 50.89 Szóalapú rendszer (14.83% BLEU) 55.42 Faktoros rendszer (10.88% BLEU) 55.60 Morféma alapú rendszer (12.22% BLEU) 88.33 Referenciafordítás A korpusz minőségét jellemzi, hogy a referenciafordítás rangja messze 1 alatt van
Rendszerek w-bleu mm-bleu SZÓALAPÚ_T0 13,56% 58,93% SZÓALAPÚ_T6 13,83% 59,32% SZÓALAPÚ_ÁT_T0 14,25% 57,79% SZÓALAPÚ_ÁT_T6 14,85% 58,06% SZÓALAPÚELEMZETT _T0 12,75% 56,10% SZÓALAPÚELEMZETT _T6 12,89% 56,84% SZÓALAPÚELEMZETT _ÁT_T0 13,02% 57,10% SZÓALAPÚELEMZETT _ÁT_T6 13,05% 57,21% MORFÉMAALAPÚ _T0 11,69% 63,18% MORFÉMAALAPÚ _T6 12,19% 63,87% MORFÉMAALAPÚ _ÁT_T0 12,01% 64,24% MORFÉMAALAPÚ _ÁT_T6 12,22% 64,94% FAKTORALAPÚ _T0 9,70% 56,01% FAKTORALAPÚ _T6 9,84% 57,09% FAKTORALAPÚ _ÁT_T0 10,50% 59,56% FAKTORALAPÚ _ÁT_T0_FIX 10,64% 60,28% FAKTORALAPÚ _ÁT_T6 10,78% 59,97% FAKTORALAPÚ _ÁT_T6_FIX 10,88% 60,83% Google Translate 15,68% 55,86% Bing Translator 12,18% 53,05% MetaMorpho 6,86% 50,97%
STATISZTIKAI SZÖVEGELEMZŐ
Definíció és nehézségek Teljes morfológiai egyértelműsítés Szófaji egyértelműsítés (POS-tagging) Szótövesítés Agglutináló nyelvek Rengeteg különböző szóalak A morfoszintaktikai címkék halmazának mérete Szótövesítés (pl. az ikes igék szótöve)
Elméleti háttér arg max p( T W) arg max p( W T) p( T) T HMM-alapú: arg max p( T W) ar T T T arg max P( wi ti) P( ti ti 1, ti 2) T i 1 SMT-alapú: T i k i k arg max ( wi ti ) P( ti ti 1, ti 2,..., ti j ) T i 1
1. lépés (morfológiai guesser alkalmazása) Az étkezés egyik nagy forradalmát a konzervek elterjedése jelentette. Guesser Az étkezés egyik nagy forradalmát a <n translation="2##[nc-pn]" prob="0.006500">konzervek</n> elterjedése jelentette.
2. lépés (címkézés és szótövesítés) Az étkezés egyik nagy forradalmát a <n translation="2##[nc-pn]" prob="0.006500">konzervek</n> elterjedése jelentette. SMT dekóder 0##[Tf] 0##[Nc-sn] 0##[Pi3-sn] 0##[Afp-sn] 2##[Ncsa---s3] 0##[I] 2##[Nc-pn] 1##[Nc-sn---s3] 4##[Vmis3s---y] 0##[.]
3. lépés (szótövek generálása) 0##[Tf] 0##[Nc-sn] 0##[Pi3-sn] 0##[Afp-sn] 2##[Nc-sa---s3] 0##[I] 2##[Nc-pn] 1##[Nc-sn---s3] 4##[Vmis3s---y] 0##[.] Generálás Az/az/[Tf] étkezés/étkezés/[nc-sn] egyik/egyik/[pi3-sn] nagy/nagy/[afp-sn] forradalmát/forradalom/[nc-sa---s3] a/a/[i] konzervek/konzerv/[nc-pn] elterjedése/elterjedés/[nc-sn---s3] jelentette/jelent/[vmis3s---y]././[.]
Eredmények Nyelv Rendszer Címkepontosság Magyar(MSD) Szótövesítéspontosság HuLaPos2 96,51% 98,60% PurePos 96,35% 97,51% HuLaPos2 96,70% 98,23% Magyar (HUMOR) Horvát Szerb PurePos 96,50% 96,27% PurePos + MA 98,96% 99,53% HuLaPos2 93,25% 96,21% HunPos + CST 87,11% 97,78% HuLaPos2 92,28% 92,72% HunPos + CST 85,00% 95,95%
Eredmények Nyelv Rendszer Címke pontosság Portugál Angol Bolgár HuLaPos2 93.20% HMM-alapú PoS tagger 92.00% TnT 96.48% PBT (SMT-alapú) 96.97% HuLaPos2 97.08% Stanford tagger 2.0 97.32% SCCN 97.50% MaxEnt alapú 95.72% MaxEnt alapú + lexikon 97.80% HuLaPos2 97.80% MaxEnt alapú + lexikon + szabályok 97.98%
FORDÍTÓMEMÓRIA INTEGRÁLÁSA
Fordítómemória integrálása Fordítandó szöveg: A kedves nagymama macskája megfogta az egeret. A memóriában található szöveg: A kedves nagymama kutyája megfogta a csúnya macskát.
Fordítómemória integrálása Fordítandó szöveg: A kedves nagymama macskája megfogta az egeret. A memóriában található szöveg: A kedves nagymama kutyája megfogta a csúnya macskát.
Fordítómemória integrálása Fordítandó szöveg: A kedves nagymama macskája megfogta az egeret. A memóriában található szöveg: A kedves nagymama kutyája megfogta a csúnya macskát. A sweet grandma s dog caught the nasty cat.
Fordító memória integrálása A kedves nagymama macskája megfogta az egeret. TM match The sweet grandma s macskája caught az egeret. SMT dekóder The sweet grandma s cat caught the mouse.
SZÓTÁR HOZZÁADÁSA A KORPUSZHOZ
Szótár hozzáadása a korpuszhoz Szótár: 344 924 mondat Rendszer BLEU érték 1 Alaprendszer fordítása: 10.85% 2 Alap+1xszótár rendszer fordítása: 11.18% 3 Alap+2xszótár rendszer fordítása: 11.01% 4 Alap+3xszótár rendszer fordítása: 10.88% 5 Alap+4xszótár rendszer fordítása: 10.88% 6 Alap+5xszótár rendszer fordítása: 10.87% 1-gram 2-gram 3-gram 4-gram 5-gram 6-gram 7-gram 8-gram 9-gram 1 47.05 16.29 7.07 3.54 1.94 1.14 0.74 0.57 0.46 2 47.60 16.62 7.35 3.78 2.02 1.19 0.75 0.57 0.43 3 47.55 16.46 7.25 3.75 2.09 1.25 0.81 0.60 0.46 4 47.32 16.33 7.09 3.64 1.94 1.09 0.68 0.47 0.33 5 47.32 16.33 7.09 3.64 1.93 1.09 0.68 0.47 0.33 6 47.74 16.43 7.19 3.63 1.93 1.08 0.68 0.51 0.39
Példa (angol-magyar) Angol referencia mondat: Magyar referencia mondat: Alaprendszer fordítása: Alap+1xszótár rendszer fordítása: Alap+2xszótár rendszer fordítása: Alap+3xszótár rendszer fordítása: Alap+4xszótár rendszer fordítása: Alap+5xszótár rendszer fordítása: " i wonder who 'll be teaching us? " said hermione as they edged into the chattering crowd. - kíváncsi vagyok, ki tartja a tanfolyamot - morfondírozott hermione, miközben barátaival befurakodtak a tömegbe. - csak tudnám, ki lesz a tanítást? - kérdezte hermione, mikor ő az. - csak tudnám, ki lesz tanított nekünk? - szólt hermione, mikor elindult a jóvoltából. - kíváncsi vagyok, aki tanított nekünk? - szólt hermione, mikor elindult a zsibongó tömeg. - kíváncsi vagyok, ki lesz tanított nekünk? - szólt hermione, mikor elindult az összeverődött tömegen. - kíváncsi vagyok, ki lesz tanított nekünk? - szólt hermione, mikor elindult az összeverődött tömegen. - kíváncsi vagyok, ki lesz tanított nekünk? - szólt hermione, mikor elindult az összeverődött tömegen.
A MOZAIK NYELVMODELL
Az ANAGRAMMA elemző alprojektje Metódus: emberi megértési minták alkalmazása Minden elérhető információ használata (statisztika és szabályok) Prototípus magyarra, később más nyelveken is tesztelni Kézzel írt szabályok (norma) és statisztika (élettapasztalat)
Gestaltok és minták Pléh & Lukács (2014): emberi feldolgozási minták Néhányat már azonosítottak, ezeket követjük Egészleges feldolgozás (Gestalt) Többszavas egységek kezelése, részletes elemzés nélkül Számítógépeknél: cache-elés Cél az elemzés gyorsítása letárolt minták segítségével A grice-i maximákra alapozva Nyelvtechnológiában: korpuszminták Nem feltétlenül teljesen kitöltött szerkezetek!
Példák Többszavas kifejezések: a kisebbik kormánypárt, ördög ügyvédje, éjnek évadján, hűlt helye volt Szólásmondások: Hamarabb utolérik, Itt van a kutya Udvariassági sémák: Jó [napszak][acc]!, Szia [keresztnév]! Merev szerkezetek: Az országgyűlés a javaslatot [SZN DIGIT][NOM] igennel elfogadta. Igei szerkezetek: lemma:esik szó [*][DEL] Név + titulus: Orbán Viktor Magyarország miniszterelnöke Névelemek: Petőfi Sándor utcai Általános Iskola
Nyelvmodellek vs. korpuszminták A nyelvmodell feladata, hogy megjósolja a következő szót Faktoros nyelvmodellek erre több faktort használnak Nem céljuk, hogy elemzést adjanak Kis n-re csinálnak csak n-gramokat Korpuszminták Elég speciális esetekben léteznek rájuk algoritmusok (Mazsola) Nagy az állapottér
Az elérhető korpuszok jellemzői Név Mondatok száma Tokenek száma Mondatokban az átlagos tokenszám Szeged Korpusz 2 70 990 194 348 16,824 MNSZ 1 18 657 302 264 465 825 14,175 MNSZ 2 28 777 590 444 760 553 15,455 Szószablya 24 991 306 462 024 888 18,487 Pázmány Korpusz 1 200 392 029 Méret (n-gram) Szeged Korpusz MNSZ 1 MNSZ 2 Token WLT Token WLT Token WLT 1 1.2E5 1.8E5 6.2E6 9.5E6 7.2E6 8.6E7 3 9.1E5 1.7E7 1.3E7 2.0E9 1.9E8 2.5E10 5 9.9E5 2.1E8 1.9E7 2.8E10 3.1E8 4.2E10 7 8.8E5 1.7E9 1.8E7 2.5E11 3.0E8 4.0E11
Eszközök Gyors prototípus-építés + Big Data Memóriába nem fér bele, lemezre kell dolgozni Hátha van egy hatékony, használható adatbázis-kezelő Létező nagy n-gram modellt építő programok Saját program Szempontok: UTF-8, RE, szótártípus, feladatorientált Scriptnyelvek: Perl, Python, Linux Coreutils + AWK Végül: MAWK (egy AWK variáns) a leggyorsabb GNU AWK-nál is, bár kevesebb dolgot tud...
Sketch Engine
Zipf görbe
Zipf görbe (ábra)
Zipf görbe (ábra)
Előzetes eredmények Durva minőségbecslés: n-gram alapú nyelvfelismerő Érzékeny a túl rövid mondatokra (nem kellenek) Érzékeny az idegen szavakra (ritka névelemek) Érzékeny a tokenizálási hibákra (erre van szükségünk) Eszközök (langid.py, textcat): kb. 30%-on egyeztek meg A korpuszok összetétele nem megfelelő Hosszú, ismétlődő mondatok nagyja a Parlamenti Napló Kicsi a korpusz a méréshez A címkézési hibákat felerősítjük Zajérzékeny a rendszerünk
Módszer Egyszerű generálás: gyors, sok a redundancia Az azonos frekvenciájú esetekből a legkonkrétabbat tartjuk csak meg (zajérzékeny) Manuálisan előszűrjük az unigramokat: PUNCT címke törlése (különben túl gyakori lesz) Ritka szóalakok, szótövek, címkék törlése Minden f frekvenciájú n-gram Legalább f frekvenciájú n-k gramokból állhatnak Inkrementálisan építhető n=1-től
Példák
Triviális vs. nem triviális minták Nagyon sok kimenet keletkezik, szűrni kell Ezek nagy része érdektelen az ember számára A gépnek viszont minden információ új! Osztályozni kell a mintákat! Ehhez szükséges a maximális mintákat megtalálni A részminták nem fontosak, eldobhatók Létező metrikák felhasználásával Nyelvészetileg érdekes ritka minták nincsenek. Talán nagyobb korpuszban
Alkalmazási lehetőségek Elemzőhöz: a szemantikai reprezentáció leírása Hogy dolgozná fel az ember az adott mintát? Nyelvmodellként, deformált szöveg zajszűrésére NP-k belsejének elemzésére Pontosan ismert, hogy mi NP része és mi nem Egymás melletti NP-k határainak vizsgálatára Szófaji címkék finomításához Sketch Engine-keresésekhez ötletek
Jövőbeli fejlesztések Nagyobb, tisztább korpusz alkalmazása Minőségbecsléssel kiszűrni a haszontalan mondatokat Lassan teljesen elkészül a Pázmány Korpusz! Metrikák adaptálása a nagy állapottérhez Peter Hanks: Corpus Pattern Analysis Kézzel generált szemantikai, nem lexikalizált minták Géppel generálás az ismertetett módszerrel Integrálás az AnaGramma elemzőbe