Hlavní navigace

Statistický strojový překlad

16. 3. 2012 12:21 zboj

Nejlepší systémy pro automatický překlad jsou založeny na pravidlech (většinou na unifikační gramatice), nicméně vývoj takového systému je značně náročný na čas a především znalosti. Jako alternativa se v posledních dvou dekádách prosazují statistické metody zpracování přirozeného jazyka včetně strojového překladu.

Při překladu máme vstupní větu a chceme překlad. Chceme-li například přeložit větu e z angličtiny do češtiny, hledáme českou větu c, jež té anglické co nejlépe odpovídá. Ve formálním statickém vyjádření cheme najít větu s maximální hodnotou p(c|e), tj. pravděpodobností, že c je překladem e. Funkce pro překlad je tedy:

f(e) = argmaxc p(c|e)

Z praktických důvodů se pravděpodobnost převádí pomocí Bayesovy věty na p(e|c) p© / p(e). Pravděpodobnost p(e) je konstanta, takže ji můžeme ignorovat (dělení kladnou konstantou je monotónní, můžeme ji tedy ignorovat při hledání maxima). Výraz se tak zjednodušil na součin pravděpodobnosti překladu (z češtiny do angličtiny) a pravděpodobnosti existence (resp. gramatikality) českého překladu. První pravděpodobnost se počítá na základě překladového modelu získaného z paralelního (dvoujazyčného) korpusu. Druhá pravděpodobnost je daná modelem pro jeden jazyk (v tomto případě cílový).

O překladovém modelu zde psát nebudu, problematika je příliš složitá a těžko bych ji mohl vysvětlit někomu bez hlubokých znalostí statistiky a lingvistiky. U jednojazyčného modelu je naštěstí situace velmi jednoduchá. Každá věta je seznamem slov a tedy

p© = p(w1) p(w2|w1) p(w3|w1,w2) … p(wn|w1…wn-1)

Reálně není pochopitelně možné pracovat s takovýmito podmíněnými pravděpodobnostmi. Je nutná aproximace a proto se pracuje s n-gramy (např. s trigramy). Výraz se proto zjednoduší takto:

p© = p(w1) p(w2|w1) p(w3|w1,w2) … p(wn|wn-2,wn-1)

Potud krásná teorie. Bohužel pravděpodobnosti jsou malá čísla a pokud je násobíme na počítači, celkem rychle skončíme na nule. Zde pomůže znalost středoškolské matematiky. Při hledání maxima funkce f můžeme stejně dobře hledat maximum funkce log f, protože logaritmus je monotónní funkce. A protože logaritmus součinu je roven součtu logaritmů, můžeme bez ztráty přesnosti pracovat se součty logaritmů pravděpodobností (což už počítač zvládne) a dojdeme ke stejnému výsledku.

Výše jsem pouze nastínil, jak se pracuje se statickými modely, problematika je pochopitelně mnohem komplikovanější. Důkazem toho, že to celé funguje, je například Google Translate.

Sdílet