A nyelvtechnológia eszközei és nyersanyagai 2016/2017 2. félév
A gépi fordítás Laki László
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
Enigma kódolás (1920) https://hu.wikipedia.org/wiki/Enigma_(g%C3%A9p) https://hu.pinterest.com/bonniegrrl/enigma-machine/ http://enigma.louisedade.co.uk/howitworks.html
A gépi fordítás módszerei Szabályalapú gépi fordítás Közvetlen fordítás Interlingva Transzfer Példaalapú fordítás Statisztikai gépi fordítás Hibrid Neurális hálózat alapú fordítás Emberi közreműködéssel 1964-ben az amerikai kormány létrehozott automatikus Language Processing tanácsadó bizottság (a)ALPAC) értékelése
Statisztikai Gépi Fordítás (SMT) 1822 Hieroglif Démotikus Görög Rosette-i kő 1822-ben Jean-François Champollion Írás: görög démotikus hieroglif
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 Zajos csatorna (SMT rendszer) Forrásnyelvre lefordított mondatok(S’) Célnyelvi mondatok(T) The cat caught the mouse. 𝑇 = 𝑎𝑟𝑔𝑚𝑎𝑥 𝑇 𝑃 𝑇 𝑆 = 𝑎𝑟𝑔𝑚𝑎𝑥 𝑇 𝑃 𝑇 ×𝑃 𝑆 𝑇 Komponensek: Nyelvmodell (folyékonyság) Fordítási modell (helyesség) Dekóder 𝑇 : legjobb fordítás S : forrásnyelvi mondat T : célnyelvi mondat 𝑷 𝑻 𝑺 =𝛟 𝑺 𝑻 𝝀 𝝓 ×𝑷 𝑳𝑴 𝑻 𝝀 𝑳𝑴 ×𝒅 𝑺,𝑻 𝝀 𝒅 × 𝝎 𝑻 𝝀 𝝎
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
Frázisgenerálás
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
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]
Az SMT-MODELLEK különféle ALKALMAZÁSAi (Saját kutatási tevékenységem)
Cigány-Magyar SMT
Cigány-magyar SMT Hasonló morfológiai gazdagságú nyelvpárok Korpusz: Vesho-Farkas-féle lovári nyelvű Újszövetség Káldi-féle (Neovulgáta) magyar Újszövetség 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% Eredmény: Sokkal magasabb BLEU Olvashatóbb, érthetőbb fordítás
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 .
Morféma alapú sMT szórendi átrendezéssel Saját doktori munkám Morféma alapú sMT szórendi átrendezéssel
Probléma Frázis alapú SMT 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
in my house my house house in ház am ban Átrendezési példák in my house my house house in ház am ban in my
Eszközök Hunglish korpusz (MOKK) Angol: Stanford parser szófaji egyértelműsítés közvetlen összetevős elemzés függőségi elemzés Magyar: PurePoS Szabályalapú átrendező a függőségi és a közvetlen összetevős elemzés felhasználásával Fordítás: Moses Szóalak-generálás: Humor
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 . my/PRP$ house/NN I/PRP sleep/VBP in/IN ./.
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) my/PRP$ house/NN sleep/VBP I/PRP in/IN ./.
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) Pobj: prepozíció tárgya house/NN my/PRP$ sleep/VBP I/PRP in/IN ./.
Passzív szerkezet Például a passzív szerkezet átrendezési módja itt látható Ha fel van tűntetve az ágems akkor azt az ige elé teszem
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] miután/[KOT] felvesz/[IGE] [Past] [t3] [Def] maga/[FN_NM] [t3] [ACC] a/[DET] tenger/[FN] [SUP] miután felvették magukat a tengeren Fordítás Generálás
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] ./[.]|[.] 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] Fordítás
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] kérésemre elhalasztották a szertartást egy évre . Generálás
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 50 mondat A fordítások randomizált sorrendben Négy kiértékelő sorrendezi a fordításokat (jobb fordítás: több pont) Rang: nem rosszabb/összehasonlítás After you were picked up at sea , our listening post in Malta intercepted that fax . 1 Maga után felemelte a tengeren , és az málta elfogtuk , hogy fax . 3 Miután önt kihalászták , ezt fogták el egy máltai postán . 4 Miután felvették magukat a tengeren , Máltában lehallgatónk elfogta a faxot . 2 Miután fel te tengerben , Máltában hallgatva postánk elfogta a faxot .
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 HMM-alapú: SMT-alapú:
Elméleti háttér HMM-alapú SMT-alapú Címkeátvitel-valószínűség modell trigram-alapú n-gram alapú Lexikális valószínűségi modell unigram-alapú Dekódoló algoritmus Viterbi verem dekódolás A dekódolás sorrendje balról jobbra tetszőleges Simító algoritmus lineáris interpoláció Kneser-Ney simítás OOV szavak kezelése trie-based suffix guesser
1. lépés (morfológiai guesser alkalmazása) Az étkezés egyik nagy forradalmát a konzervek elterjedése jelentette . Az étkezés egyik nagy forradalmát a <n translation="2##[Nc-pn]" prob="0.006500">konzervek</n> elterjedése jelentette . Guesser
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 . 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##[.] SMT dekóder
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##[.] 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] ././[.] Generálás
Szótövesítés- pontosság Eredmények Nyelv Rendszer Címkepontosság Szótövesítés- pontosság Magyar(MSD) HuLaPos2 96,51% 98,60% PurePos 96,35% 97,51% Magyar (HUMOR) 96,70% 98,23% 96,50% 96,27% PurePos + MA 98,96% 99,53% Horvát 93,25% 96,21% HunPos + CST 87,11% 97,78% Szerb 92,28% 92,72% 85,00% 95,95%
Eredmények Nyelv Rendszer Címke pontosság Portugál HuLaPos2 93.20% HMM-alapú PoS tagger 92.00% Angol TnT 96.48% PBT (SMT-alapú) 96.97% 97.08% Stanford tagger 2.0 97.32% SCCN 97.50% Bolgár MaxEnt alapú 95.72% MaxEnt alapú + lexikon 97.80% MaxEnt alapú + lexikon + szabályok 97.98%
Gépi fordító rendszerek kombinációja Matros rendszer Gépi fordító rendszerek kombinációja
MaTros rendszer Kifejezés alapú statisztikai gépi fordító Hierarchikus statisztikai gépi fordító 67 jegy BLEU, OrthoBLEU, OrthoTER Nyelvpárok: Angol – magyar Angol – német Angol – japán Angol – olasz
MaTros rendszer
Eredmények
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. The sweet grandma’s dog caught the nasty cat.
Fordító memória integrálása A kedves nagymama macskája megfogta az egeret. The sweet grandma’s macskája caught az egeret. The sweet grandma’s cat caught the mouse. TM match SMT dekóder
Szótár hozzáadása a korpuszhoz
Szótár hozzáadása a korpuszhoz 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: 6 Alap+5xszótár rendszer fordítása: 10.87% Szótár: 344 924 mondat 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.43 3 47.55 16.46 7.25 3.75 2.09 1.25 0.81 0.60 4 47.32 16.33 7.09 3.64 1.09 0.68 0.47 0.33 5 1.93 6 47.74 16.43 7.19 3.63 1.08 0.51 0.39
Példa (angol-magyar) Angol referencia mondat: " i wonder who 'll be teaching us ? " said hermione as they edged into the chattering crowd . Magyar referencia mondat: - kíváncsi vagyok , ki tartja a tanfolyamot - morfondírozott hermione , miközben barátaival befurakodtak a tömegbe . Alaprendszer fordítása: - csak tudnám , ki lesz a tanítást ? - kérdezte hermione , mikor ő az . Alap+1xszótár rendszer fordítása: - csak tudnám , ki lesz tanított nekünk ? - szólt hermione , mikor elindult a jóvoltából . Alap+2xszótár rendszer fordítása: - kíváncsi vagyok , aki tanított nekünk ? - szólt hermione , mikor elindult a zsibongó tömeg . Alap+3xszótár rendszer fordítása: - kíváncsi vagyok , ki lesz tanított nekünk ? - szólt hermione , mikor elindult az összeverődött tömegen . Alap+4xszótár rendszer fordítása: Alap+5xszótár rendszer fordítása:
STATISZTIKAI GÉPI FORDÍTÁS NAPJAINKBAN
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]
Word embedding http://tech.opentable.com/wp-content/uploads/2015/07/wmd_illustration_1.png
Encoder-Decoder architektúra Rekurens neurális háló http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Kérdés? Ray Mooney: „You can’t cram the meaning of a whole %&!$# sentence into a single $&!#* vector!”
Attention-based Model [Kyunghyun Cho] https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/
Attention-based Model [Kyunghyun Cho] https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/
Attention-based Model működése https://3.bp.blogspot.com/-3Pbj_dvt0Vo/V-qe-Nl6P5I/AAAAAAAABQc/z0_6WtVWtvARtMk0i9_AtLeyyGyV6AI4wCLcB/s1600/nmt-model-fast.gif
Eredmény
Példa Forrás mondat: Auch wenn May mittlerweile mitteilen ließ, sie werde die Royal Navy im heimatlichen Hafen lassen, lassen sich spanische Politiker die Chance nicht entgehen, Großbritanniens koloniales Menetekel in Europa einmal mehr vorzuführen. Bing translate (SMT): Even though may now share with left, it will leave the Royal Navy in the native port, Spanish politician the chance not to be missed, to demonstrate Britain's colonial writing in Europe once again. Google translate (NMT): Even though May has now announced that she will leave the Royal Navy at home, Spanish politicians will not miss the chance to show Britain's colonial men's trophy once again in Europe.
Google cikke az NMT-ről https://research.googleblog.com/2016/09/a-neural-network-for-machine.html
SMT vs NMT hiba analízis https://www.tilde.com/about/news/316
Többnyelvű fordítás
Eredmények
Képből szöveg generálás https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/
Képből szöveg generálás https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/
Hangból szöveg generálás http://distill.pub/2016/augmented-rnns/
Köszönöm a Figyelmet