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.
@1 Na webu je mnoho kurzů: http://www.ocwsearch.com/search?q=Natural+Language+Processing
Jinak jak říká @2. Další pracoviště jsou v ČR například v Praze (na MFF a FF) či v Plzni.
@1 Začnite napr. Brownom a keď sa vám to bude zdať príliš techno, pozrite si ten Hajičov seminár na JHU.
[Brown93] Brown, P., Della Pietra, S., Della Pietra, V., Mercer, R. (1993). “The mathematics of statistical machine translation: Parameter estimation.” Computational Linguistics. http://acl.ldc.upenn.edu/J/J93/J93-2003.pdf
[Brown91] Brown P,J.Lai and R.Mercer (1991) "Aligning Sentences in Parallel Corpora" 47th Annual meeting for the Association of Computational Linguistics.
[Germann01] Germann, U., Jahr, M., Knight, K., Marcu, D. and Yamada, K. (2001). “Fast Decoding and Optimal Decoding for Machine Translation.” Proceedings of the Conference of the Association for Computational Linguistics (ACL-2001), Toulouse, France, July 2001
[Knight99] Knight, K. (1999). “A Statistical MT Tutorial Workbook. Developed for the JHU 1999 Summer MT Workshop.”
[Gale91] Gale, W.A., Church, K.W. (1991): “A Program for Aligning Sentences in Bilingual Corpora.” Meeting of the Association for Computational Linguistics: 177-184.
[HA00] Hajic, J. (2000): “Natural Language Processing”, Statistical Translation: Alignment and Parameter Estimation. http://www.cs.jhu.edu/~hajic/courses/cs465/cs46531/index.htm
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 33 196×
Přečteno 21 716×
Přečteno 21 225×
Přečteno 18 409×
Přečteno 15 410×