AUTOMATICKÁ TVORBA SLOVNÍKŮ

Rozměr: px
Začít zobrazení ze stránky:

Download "AUTOMATICKÁ TVORBA SLOVNÍKŮ"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA AUTOMATICKÁ TVORBA SLOVNÍKŮ Z PŘEKLADOVÝCH TEXTŮ BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR FRANTIŠEK SVOBODA BRNO 2009

2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA AUTOMATICKÁ TVORBA SLOVNÍKŮ Z PŘEKLADOVÝCH TEXTŮ AUTOMATIC CREATION OF DICTIONARIES FROM TRANSLATIONS BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR FRANTIŠEK SVOBODA Doc.RNDr. SMRŽ PAVEL, Ph.D. BRNO 2009

3 Abstrakt Cílem práce je vytvoření systému, který by dokázal generovat z paralelních dvojjazyčných textů překladové slovníky. Jsou popsány příklady, jak lze takové dokumenty získat, a jaké kroky je vhodné nad daty podniknout, aby z nich bylo možné extrahovat požadovanou informaci. Za tímto účelem byly prozkoumány a využity zejména statistické metody strojového překladu. Kromě popisu vytvořeného systému lze v práci nalézt rozbor problémů, které jsou s tématem spojeny, a hodnocení dosažených výsledků. Klíčová slova slovník, korpus, strojový překlad, GIZA++, hunalign, fráze Abstract Goal of this thesis is to implement system, capable of extracting bilingual dictionaries from parallel texts. Reader may find examples of how to obtain such documents and description of steps leading to successfull acquirement of desired information. Mainly statistical machine translation methods were examined and used for this purpose. Besides description of created system, short analysis of problems linked with the subject can be found as well as evaluation of results. Keywords dictionary, corpus, machine translation, GIZA++, hunalign, phrase Citace František Svoboda: Automatická tvorba slovníků z překladových textů, bakalářská práce, Brno, FIT VUT v Brně, 2009

4 Automatická tvorba slovníků z překladových textů Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana Doc. RNDr. Pavla Smrže, Ph.D František Svoboda 18. května 2009 c František Svoboda, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.

5 Obsah Úvod 2 1 Související pojmy, principy strojového překladu Lingvistika Morfologie Syntax Sémantika Další obory Nové disciplíny Strojový překlad Překlad řízený pravidly Metody založené na příkladech Statistické metody Kombinované metody Lemmatizace Návrh a realizace systému Příprava korpusů Zdroje Výběr textů Lemmatizace Získání zarovnání Zarovnání vět Zarovnání slov Generování slovníků Program pro generování slovníků Hodnocení slovníků Automatizace průběhu Závěr Získané výsledky Vliv vstupních dat na výsledky Shrnutí průběhu A Popis vytvořených skriptů 27 B Formáty souborů 30 C Instalace systému 32 D Struktura média 33 1

6 Úvod Svět se pro lidstvo každým dnem zmenšuje, především v důsledku pokroku v oblasti dopravy a komunikačních technologií. Rozvoj v těchto oblastech způsobil velké změny ve společnosti a vůbec v pohledu, jakým se moderní člověk dívá na svět. Součástí dnešních trendů je výraznější prolínání kultur, které se historicky vyvíjely odděleně, a s tím související potřeba komunikace. V dobách minulých nebyla tato potřeba až tak častá a pro její naplnění postačovalo několik tlumočníků. Dnes již by však tento přístup jistě neobstál. Lidé se nyní učí i několika jazykům, k čemuž využívají běžně dostupné materiály a pomůcky. Základem bývá dvojjazyčný slovník, v němž lze nalézt překlady výrazů v jednom jazyce do jazyka jiného. Vytvoření takového slovníku není zdaleka triviálním úkolem, protože počet slov v lidském jazyce bývá značný a k překladu celé slovní zásoby zdrojového jazyka je zapotřebí také odpovídající znalost jazyka cílového. Slovníky jsou proto sestavovány i několik let. S rozvojem výpočetní techniky se však objevily zcela nové možnosti. Náplní této práce bude některé z těchto možností prozkoumat a pokusit se o jejich využití k zisku slovníků z paralelních elektronických dokumentů. Paralelní texty vznikají v důsledku potřeby určitou informaci sdělit lidem s odlišnými jazykovými znalostmi. Protože je předávaná informace totožná, lze předpokládat, že budou pro její vyjádření v různých jazycích použity konstrukce se shodným významem, které se pokusíme rozpoznat. Získané slovníky mohou sloužit bud samostatně, či jako podklad k obohacování slovíků již existujících. Práce je členěna do tří hlavních částí. V první jsou stručně popsány některé související pojmy a teoretické zázemí systému. Ve druhé části následuje návrh systému a popis postupu při jeho realizaci, v závěru pak následuje hodnocení dosažených výsledků a shrnutí průběhu. 2

7 Kapitola 1 Související pojmy, principy strojového překladu Automatické generování slovníků z paralelních textů je tématem, které souvisí s řadou odvětví v informačních technologiích, především z oblasti umělé inteligce. V souhrnu se tato odvětví v literatuře vyskytují pod označením strojový překlad, což je obor, spadající do aplikované lingvistiky. Následuje stručný popis lingvistických disciplín, které hrají v rámci této práce nějakou roli. Jako zdroj informací posloužila zejména publikace [9]. Dále bude věnována větší pozornost možnostem strojového překladu a nakonec krátké vysvětlení pojmu lemmatizace, s nímž je v textu na několika místech pracováno. 1.1 Lingvistika Lingvistika je vědní disciplína zabývající se zkoumáním jazyka. Lidský jazyk jako prostředek komunikace zpravidla prochází složitým historickým vývojem, v průběhu něhož vstřebává všemožné aspekty a potřeby lidského života, sociálních podmínek a kultury, a stává se tak velmi komplexním útvarem. Lze jej zkoumat z mnoha značně odlišných úhlů pohledu, což vyústilo v rozčlenění lingvistiky na menší disciplíny, vyšetřující jeho konrétnější elementy Morfologie Morfologie je věda, která se zabývá skladbou slov, tedy jakým způsobem jsou slova tvořena, a popisuje pravidla, která se v tomto procesu uplatňují a tvoří gramatiku jazyka. Důležitým pojmem tohoto oboru je morfém, což je označení základní, dále nedělitelné jednotky, která nese sémantickou nebo gramatickou informaci. Jako samostatné morfémy se tedy označují předpony, přípony, koncovky a kořeny slov. Aplikace poznatků této vědy zvaná morfologická analýza spočívá v dekompozici slov na jednotlivé morfémy a hledání vztahů mezi nimi Syntax Při snaze vyjádřit určitou informaci pomocí jazyka by často existence slov jako výrazového prostředku nepostačovala, nebo by bylo takové vyjádření přinejmenším složité. Proto bývají slova podle určitých pravidel sdružována do větších celků slovních spojení a vět. Syntax je obor lingvistiky, který se zabývá pravidly, podle nichž lze slova do těchto celků spojovat 3

8 tak, aby ve výsledku nebyla porušena jiná pravidla, a zkoumá vztahy mezi slovy v takových seskupeních Sémantika Účelem samotné existence jazyků je potřeba člověka nějakým způsobem popsat svět a děje v něm, tedy určitou informaci. Gramatická a syntaktická pravidla nám poskytují návod, jak má vyjádření v daném jazyce vypadat, významem slov a slovních seskupení se zabývá jiný obor sémantika. Význam menších celků je většinou pevně určen na základě obecně přijatých znalostí, význam větších celků lze pak odvodit z významů dílčích elementů užitím jistých pravidel, která přiřazují význam například konkrétním syntaktickým jevům Další obory Vědních oborů považovaných za lingvistické disciplíny je mimo dosud uvedených ještě mnoho, například dialektologie, historická lingvistika, sociolingvistika a řada dalších, které však v rámci této práce nejsou tolik významné Nové disciplíny S příchodem informačních technologií a jejich rozmachem v blízké minulosti se dostal jazykovědcům do ruky aparát, umožňující i nové přístupy při zkoumání jednotlivých disciplín. Vznikly tak odnože lingvistických oborů, které se zabývají právě využitím výpočetní techniky ve výzkumu nově se objevujících potřeb z lingvistické oblasti a interpretace stávajících tak, aby byly tímto aparátem zpracovatelné. Objevily se tak pojmy jako počítačová lingvistika, matematická lingvistika či korpusová lingvistika. Počítačová lingvistika Počítačová lingvistika zahrnuje především sestavování jazykových modelů. Takové modely mohou popisovat syntax daného jazyka, gramatická pravidla a morfologii, zpracovávat akustickou stránku a lze nalézt i řadu dalších uplatnění. V počátku se předpokládalo, že se podaří jazyky pomocí počítačových modelů zcela popsat, očekávání se však dosud zcela nenaplnilo. Matematická lingvistika Jak název napovídá, jedná se o oblast, zahrnující metody zpracování jazyka, které využívají matematických, zejména statistických, principů. Nachází uplatnění při strojovém překladu, zpracování řeči a dalších aplikacích. Jistou měrou se dotýká prakticky všech oblastí počítačové lingvistiky. 1.2 Strojový překlad V této oblasti se v současnosti vyskytuje několik přístupů k problematice. Jako základní bych použil rozčlenění na metody řízené pravidly (jedná se o metody založené na gramatických pravidlech, syntaxi daného jazyka, sémantice výrazů apod.), založené na příkladech a metody statistické. 4

9 1.2.1 Překlad řízený pravidly Tato skupina metod zahrnuje postupy vycházející z přepokladu, že jazyk může být do značné míry popsán jistým souborem pravidel, které lze formálně definovat a uplatnit automaticky pro generování jazykových celků. Podstatou je tedy právě definování těchto pravidel a jejich uplatnění pří získávání překladů mezi danými jazyky. Pokud by bylo možné pro zkoumaný jazyk nalézt soubor pravidel, které jej kompletně a jednoznačně definují, nebylo by pochyb o vhodnosti takovéhoto popisu a řešením problému by bylo jen nalezení vhodného výpočetního modelu a jeho implementaci. Naneštěstí je realita taková, že podobný ideální jazyk v praxi často nepotkáme, právě naopak. Prostředky mezilidské komunikace jsou tradičně složité a bohaté na neobvyklé vazby. Hledání formalismu, který by pro daný jazyk splnil požadavky na úplnost i jednoznačnost, se tak stává většinou neřešitelným úkolem. Proto se v této oblasti dále rozvinulo několik odlišných přístupů, jak jazyk popsat dostatečně pro konkrétní potřeby. Nejjednodušším modelem z této rodiny je překlad pomocí slovníků, kdy se pouze nahradí slova zdrojového jazyka slovy jazyka cílového tak, jak se vyskytují ve slovníku. Výsledky tohoto přístupu jsou ve výsledku většinou pouze orientační a vyžadují značné korekce. U pokoročilejších technik se při hledání pravidel vychází z různých principů, základní myšlenka je ale takřka vždy stejná a spočívá v nalezení způsobu, jímž jsou generovány jazykové celky v jednom jazyce a korespondující celky v jazyce cílovém. Samotný překlad pak sestává z dekódování zdrojových dat, přidání informace o jejich struktuře v různé míře abstrakce a následně syntéze celků se stejným či dostatečně podobným významem v jazyce cílovém. Fázi dekódování tvoří většinou morfologická a syntaktická analýza a vede k určení mluvnických kategorií jednotlivých slov (např. slovní druh, rod, pád, čas apod.), dále je zde často zahrnuto zjednoznačnění slov, která mohou vystupovat ve více možných rolích (např. jako jiný slovní druh) na základě kontextu. V případě modelů určených jen pro dvojici jazyků je množství přidané informace v těchto krocích závislé na podobnosti uvažovaných jazyků. Jsou-li dostatečně příbuzné, postačuje třeba jen syntaktický rozbor, jindy je nutné analyzovat až na úroveň sémantiky jednotlivých výrazů. U systémů, které si kladou za cíl umožnit překlad mezi více jazyky, bývá analýza velmi detailní a výstupem této fáze je reprezentace informací ve formě nějakého univerzálního interního jazyka. Dalším krokem je nahrazení slov zdrojového a cílového jazyka za využití slovníku a volba slovních tvarů tak, aby vyhovovaly cílové synatxi (např. pro češtinu vhodný rod a číslo slovesa, změna pořadí slov atd.). Nakonec jsou nalezené jazykové celky upraveny do cílové formy, aby co nejvěrohodněji odpovídaly očekávanému výsledku Metody založené na příkladech Jiným přístupem k problematice, který se objevil, jsou metody založené na příkladech. Jako báze znalostí slouží u těchto metod dvojjazyčný korpus, v němž jsou zarovnané korespondující věty zdrojového a cílového jazyka. Tato data jsou analyzována a získávají se menší celky na základě podobnosti zdrojových vět a jejich překladů. Při potřebě přeložit větu jednoho jazyka do druhého takovýmto modelem se pak hledá její podobnost s větami v použitém korpusu a z jejích překladů se vybírají nejvhodnější vzory, které se vzájemně kombinují do věty cílové. 5

10 1.2.3 Statistické metody V současnosti se značné popularitě těší systémy postavené na statistických modelech. Podobně jako u metod založených na příkladech, slouží i zde jako báze znalostí dvojjazyčný korpus. Velkou výhodou oproti modelům, založeným na pravidlech, je nezávislost těchto řešení na konkrétních jazycích. Také odpadá potřeba náročného sestavování jazykových pravidel a závislostí, namísto toho jsou vztahy mezi jazyky popsány matematickým modelem. Parametry systému potřebné pro samotný překlad jsou pak získány trénováním na vstupních datech, zpravidla za využití některého z optimalizačních algoritmů. Výchozím předpokladem je zvýšená frekvence výskytu korespondujících řetězců v textech, které si významově odpovídají. Zpočátku se předpokládá, že jakékoliv slovo zdrojového jazyka je potenciálním překladem libovolného slova jazyka cílového. Pro každou dvojici vět (s, t) je počítána pravděpodobnost, že věta t cílového jazyka je překladem věty s zdrojového jazyka, označená P (t s). Podle Bayesova teorému můžeme pravděpodobnost, že je s překladem věty t, zapsat jako: P (s t) = P (s) P (t s) P (t) (1.1) Zde P (s) bývá nazýváno jazykový model a vyjadřuje míru, do jaké je věta s správná vzhledem ke gramatickým a jiným pravidlům jazyka, ze kterého pochází, a P (t s) zastupuje míru, do jaké si odpovídají slova v s a t. Snahou je, nalézt pro dané t nejvhodnější větu zdrojového jazyka s takovou, aby P (s t) byla co nejvyšší. Protože t je pevně dané, můžeme P (t) z rovnice (1.1) vypustit a naše úloha přechází na: s = arg max P (s) P (t s) (1.2) s Hledání maxima je klasickou optimalizační úlohou, která může být řešena vhodným algoritmem, problémem však stále zůstává vyjádření P (s) a P (t s). Tyto hodnoty mohou být určeny odlišnými přístupy a zohledněním různých kritérií, což je předmětem výzkumů v této oblasti. Statistické zarovnávání slov Pojem zarovnání slov znamená v podstatě mapování mezi slovy zdrojové věty a slovy, která vznikla jako jejich překlad ve větě cílového jazyka. Předpokládá se, že některá slova jsou jednoduše přeložena ekvivalentním výrazem v cizím jazyce, jiná však jednoduchý ekvivalent nemají a jejich překladem je slov hned několik. Zvláštním případem jsou pak ještě slova, která hrají ve větě pouze roli syntaktickou - nejsou tedy generována jako překlad žádného zdrojového slova (např. určité a neurčité členy a jiné syntaktické entity). V takovýchto případech je do zdrojové věty přidáno pomyslné prázdné slovo NULL, které pak slouží jako zdroj výskytu takových slov. Pokud má věta s m slov a věta t l slov, můžeme nalézt lm možných spojení mezi slovy těchto vět. Množinu všech možných zarovnání (s, t) budeme dále v textu označovat A(s, t), její mohutnost je dána počtem všech možných zarovnání, tedy 2 lm. Pravděpodobnost, že je věta t překladem věty s můžeme s využitím zarovnání vyjádřit jako: P (t s) = a P (t, a s) (1.3) Suma probíhá přes všechny prvky množiny A(s, t). Výraz P (t, a s) značí pravděpodobnost jevu, kdy máme-li dané zarovnání a a zdrojovou větu s, bude vygenerována věta t. Tato 6

11 pravděpodobnost je právě předmětem navržených modelů a počítá se v závislosti na různých parametrech. Dále v textu budou popsány některé takové modely, které byly navrženy pod záštitou IBM T.J. Watson Research Center a staly se na poli statistického překladu prakticky standardem. Pro podrobnější informace bych se odkázal na zdroj [2], ze kterého jsem čerpal, zde bude hlouběji popsán pouze nejjednodušší z nich, složitější modely jen principiálně. IBM modely Věty s a t můžeme rozložit na jednotlivá slova, která jsou dále označena indexy (počínaje od 1, tedy s 1 je první slovo zdrojové věty). IBM modely předpokládají, že každé slovo cílové věty t bude zarovnáno k nejvýše jednomu slovu zdrojové věty s. Zarovnání samotné potom můžeme reprezentovat vektorem a = (a 1, a 2,.., a m ) o délce shodné s délkou věty t, jehož prvky říkají, ze kterého slova zdrojové věty bylo příslušné slovo cílové věty vygenerováno (tedy např. výraz a 2 = 4 znamená, že druhé slovo věty t bylo generováno kvůli výskytu zdrojového slova na čtvrté pozici). Pro potřeby IBM modelů je výchozí rovnicí: P (t, a s) = P (m s) a P (a j a j 1 1, t j 1 1, m, s)p (t j a j 1, tj 1 1, m, s) (1.4) Symbol l je délka věty s, m je délka věty t, t j 1 1 vyjadřuje část věty t, počínaje prvním slovem a konče slovem na pozici j 1, a součin probíhá opět přes všechny prvky množiny A(s, t). Model 1 je nejjednodušší a předpokládá, že P (m s) = ɛ je konstantní a je rovna nějakému malému číslu ɛ. Dalším předpokladem je, že člen P (a j a j 1 1, t j 1 1, m, s) závisí jen na délce zdrojové věty s a je roven (l + 1) 1 a člen P (t j a j 1, tj 1 1, m, s) závisí pouze na f j a s aj, proto je zjednodušen na T (t j s aj ), což je pravděpodobnost zarovnání slova věty t na pozici j se slovem věty s na pozici dané hodnotou a j. Po zjednodušení původní rovnice zůstávají parametry systému ɛ a T (f j s aj ) a rovnice (1.4) přechází na: P (t, a s) = ɛ (l + 1) m m T (t j s aj ) = j=1 ɛ (l + 1) m l l a 1 =0 a 2 =0 l a m=0 j=1 m T (t j s aj ) (1.5) Doplněné sumy jsou pouze vyjádřením, že bereme v úvahu všechna možná zarovnání - všechny prvky množiny A(s, t). Pro další potřeby jsou pravděpodobnosti T (t j s aj ) normovány, aby pro každé slovo s platilo: T (t s) = 1 (1.6) t. Z těchto vyjádření se vychází při sestavení rovnice pro nalezení extrému. Hledaným extrémem je maximální pravděpodobnost, že jsou věty s a t svými ekvivalenty v daných jazycích. Tato pravděpodobnost je vyjádřena kombinací pravděpodobností zarovnání jednotlivých slov v těchto větách, proto když se nám podaří ji maximalizovat, můžeme předpokládat, že bylo nalezeno nejlepší možné zarovnání jednotlivých slov. Postup odvození rovnice je popsán v [2], výsledkem je: T (t s) = λ 1 s I c(t s, t i, s i ), kde λ s = t i=1 I c(t s, s i, t i ) (1.7) i=1 7

12 Zde λ 1 s značí, že hodnota má být normována, I je počet párů vět v trénovacích datech, t i a s i vyjadřuje i-tou větu po řadě cílového a zdrojového jazyka v trénovacích datech a člen c(t s, t i, s i ) je definován jako c(t s, t i, s i ) = T (t s) T (t s 0 ) + + T (t s l ) m δ(t, t j ) j=1 }{{} l δ(s, s i ) i=1 }{{} kolikrát je slovo t v t i kolikrát je slovo s v s i (1.8) Je zřejmé, že v rovnici pro hledání extrému (1.7) jsou pro získání T (t s) použity samotné hodnoty T (t s) (viz. definice členu c(t s, t i, s i ) v rovnici (1.8)), mohlo by se tedy zdát, že problém je neřešitelný. Bylo však ověřeno, že hodnoty T (t s) lze na počátku odhadnout a opakovaným použitím rovnice (1.7) je zpřesňovat. Tento postup je nazýván EM algoritmus 1 a odkaz na důkaz o jeho konvergenci pro tento případ je uveden též v [2]. Pro zlepšování výsledků je tedy třeba provést přepočet parametrů v několika iteracích, v každé jsou aktualizovány hodnoty λ s pro všechna zdrojová slova v trénovacích datech a T (t s) pro všechny páry (slovo překladu, zdrojové slovo). Je vhodné poznamenat, že s množstvím dat by teoreticky měla růst přesnost získaných parametrů, ovšem značně vzrostou také výpočetní nároky systému. Model 2 se pokouší oproti modelu 1 zohlednit v rovnici (1.4) také vzájemnou polohu slov ve zdrojové a cílové větě. Člen P (a j a j 1 1, t j 1 1, m, s), který byl v modelu 1 vyjádřen jako (l + 1) 1, je zde nahrazen výrazem D(a j j, m, l), s podmínkou l i=0 D(i j, m, l) = 1. Pravděpodobnost zarovnání vět je v tomto modelu pak P (t s) = ɛ m j=1 i=0 l T (t j, s i )D(i j, m, l) (1.9) Opět byla odvozena rovnice pro nalezení maxima a v iteracích zlepšuje hodnoty svých parametrů. Oproti předchůdci je zde počítáno také s pravděpodobnostmi, že je slovo překladové věty t délky m na pozici j vygenerováno jako překlad slova zdrojové věty s délky l na pozici i. V modelu 3 je zohledněn další jev, a sice s jakou pravděpodobností vyprodukuje které zdrojové slovo s jaký počet slov v cílovém jazyce. Také jsou zde uvažovány případy, kdy nejsou některá slova v cílové větě vyprodukována jako důsledek přítomnosti určitého slova ve větě zdrojové, ale z důvodů jiných (např. syntaxe jazyka). Podobně pro slova, která nemají v cílové větě žádný překlad. Model 4 dále rozvádí myšlenku o umístění slov generovaných při překladu. Zabývá se předpokladem, že některá slova jsou přeložena jako sousloví - celé fráze, na což model 3 není koncipován. K určení, která slova budou uvažována jako potenciální součásti fráze, je využito rozdělení všech slov do tříd podle jejich výskytu v trénovacích datech. Model 5 si klade za úkol odstranit nedostatky odhalené ve dvou předchozích modelech. Jednak je třeba rozhodnout situace, kdy systém umístí více slov na stejnou pozici ve větě, dalším problémem je případ, kdy jsou pro slova nalezena vhodná umístění mimo meze cílové věty. Pro potřeby modelů s vyšším označením než 2 je více než vhodné využít parametrů, zíkaných modelem předchozím. To je také důvod, proč i s příchodem dalšího modelu zůstávají předešlé stále aktuální. Jejich existence je důležitá pro prvotní odhad parametrů modelu s vyšším označením. 1 Estimate-Maximize algorithm 8

13 Zarovnávání vět U zarovnávání vět lze nalézt opět několik přístupů, především zarovnání na základě délek (kritériem délky může být počet slov či písmen) [3], dále metody využívající slovník [7], případně založené na podobnosti vět (tento přístup zřejmě není vhodný pro jazyky z různých jazykových rodin). Počítat u vět pravděpodobnosti podobně jako u slov se nezdá být vhodné, jelikož neobměněná věta se v lidském jazyce nevyskytuje ani zdaleka s takovou frekvencí, jako slovo. Proto je pro zárovnání vět využito menších celků právě podobnosti či počtu slov, počtu znaků, může být využito interpunkce nebo jiné dostupné informace jako pevných bodů apod Kombinované metody Podobně jako v jiných oborech, kde jsou používány natolik rozmanité přístupy, objevují se i v případě strojového překladu tendence využít přínosů jednotlivých náhledů zároveň a pokud možno současně eliminovat jejich nedostatky. Například předzpracování korpusu pro trénování statistického modelu s využitím morfologické analýzy a lemmatizace u jazyků s bohatou morfologií, se může i velmi výrazně snížit počet slov v korpusu (všechny tvary slovesa, které by se v každém tvaru počítaly za nezávislé slovo, se pak objeví vždy v základním tvaru), což může značně ovlivnit jak výsledky následného statistického zpracování, tak i potřebnou výpočetní sílu. 1.3 Lemmatizace Lemmatizace je proces, při kterém se hledá ke slovu jeho základní tvar (např. v češtině ke slovesnému tvaru infinitiv, k podstatnému jménu 1.pád singuláru atd.). Například při vyhledávání je tímto umožněno nalézt i slova, která jsou s vyhledávaným výrazem spojená právě přes tento základní tvar. Přitom se mohou od samotného výrazu značně lišit. Jiným využitím může být již zmíněné předzpracování dat pro využití některou statistickou metodou zarovnání. Součástí procesu bývá zpravidla přidání značek (tagů), které nesou informaci o struktuře textu, možných morfologických kategoriích slov a další potřebné údaje. 9

14 Kapitola 2 Návrh a realizace systému Cílem práce je automatická tvorba slovníků z překladových textů. Aby bylo možné tohoto dosáhnout, je třeba získat vstupní data, připravit je pro další zpracování, zjistit zarovnání slov, vytvořit z těchto zarovnání slovník a ohodnotit, do jaké míry je výsledek úspěšný. Pro získání zarovnání bylo zvoleno použití převážně statistických metod, konkrétně pro zarovnání vět hybridní algoritmus hunalign [7] a jeho stejnojmenná implementace a pro zarovnání slov pak GIZA++ [8], implementující popsané IBM modely. 2.1 Příprava korpusů Zdroje Jako hlavní zdroj překladových textů byly zvoleny titulky k filmům. Administrátor serveru poskytnul české a anglické titulky, přítomné na serveru k V těchto datech je přítomno titulek v českém jazyce a v jazyce anglickém. Čísla bohužel nejsou zcela přesná, protože u některých titulek byl chybně specifikován jazyk a do dat se tak dostaly i titulky ve zcela jiných jazycích (mad arština, slovenština a další). Jednotlivé titulky jsou uloženy jako komprimované archivy. Informace o obsahu archivů jsou uloženy odděleně ve dvou textových souborech a lze z nich zjistit údaje jako jazyk titulků, identifikační číslo filmu 1, na kolik dílů je rozděleno video, pro které jsou titulky určeny, pro kterou část je určen tento konkrétní soubor, rok vzniku filmu, datum nahrání titulků na server a další. Vedle filmových titulek byl jako další dostupný zdroj dat použit korpus sestávající ze souboru evropských právních norem, nazvaný JRC-Acquis corpus [11]. V porovnání s předchozím zdrojem lze u těchto dat očekávat doslovnější překlad a ve výsledku tak i přesnější zarovnání a kvalitnější slovník, který bude vzhledem k povaze těchto dat monotematický. Pro demonstraci jazykové nezávislosti statistických metod zarovnání byla zpracována francouzkso-anglická část korpusu, nazvaného Europarl [5], který je sestaven ze zápisů jednání Evropského parlamentu Výběr textů Z dostupných informací bylo zjištěno, že jsou ve vstupních datech k dispozici v anglickém i českém jazyce titulky k 5455 filmovým titulům. Toto číslo se může zdát malé vzhledem 1 podle databáze filmů Internet Movie Database 10

15 k množství všech titulků, avšak v těchto se často vyskytuje i 20 alternativ k jedinému filmu, případně jsou titulky určeny pro verzi filmu, rozdělenou na více částí a pro každou část je určen samostatný soubor. V češtině jsou přítomny titulky k 5458 titulům, v jazyce anglickém k 5479 titulům. Rozpoznáno bylo českých a anglických slov ( a různých). Pro další zpracování musela být provedena ještě další selekce. V již zmíněné situaci, kdy jsou titulky určeny pro video rozdělené na více částí, mohou být tyto části v různých verzích a při složení titulků nenáležejících k sobě by mohlo dojít k překrytí. Část textu by pak byla ve výsledku dvakrát, nebo by naopak chyběla. Pro eliminaci tohoto problému byly dále zpracovávány pouze titulky určené pro nerozdělené video. Filmové titulky se v převážné většině vyskytují v jednom z formátů nazývaných sub a srt. Pro tyto formáty byl proto vytvořen pomocí regulárních výrazů jednoduchý parser, který z dat extrahuje pouze samotný text a odstraní informace, které nejsou pro další postup relevantní. U právních předpisů evropské unie bylo k dispozici 6305 českých a 8184 anglických textů, z nichž se podařilo vybrat 6138 párů, které byly dále zpracovány. V těchto souborech se vyskytovalo celkem českých a anglických slov ( a různých). Korpus Europarl je opět dostupný ve formě 658 paralelních textů, v nichž je obsaženo anglických a francouzských vět Lemmatizace Jak bylo naznačeno v první kapitole, při statistickém zpracování lze předpokládat zlepšení výsledků zarovnání, je-li korpus lemmatizován. K tomuto účelu jsem se seznámil s dalšími nástroji. Pro lemmatizaci českých textů s nástroji, dostupnými jako součást projektu Prague Dependency Treebank [4], [12]. Pražský závislostní korpus, verze 2.0, byl vytvořen Ústavem formální a aplikované lingvistiky, K lemmatizaci angličtiny pak byl využit nástroj TreeTagger, vyvinutý na Universität Stuttgart, Institute for Natural Language Processing [10]. Výstupy těchto programů nemají jednotný formát. Pro jejich zpracování byly vytvořeny jednoduché skripty v jazyce Python. Princip jejich funkcionality je prakticky stejný. Slova, k nimž se podařilo určit základní tvar, jsou jednoduše ve výsledném korpusu tímto tvarem nahrazena. Výsledkem je výrazné snížení počtu unikátních slov vyskytujících se v korpusu. Konkrétně u filmových titulek se snížil počet českých slov z na , v jazyce anglickém z na Z těchto údajů je patrné, jak bohatá je česká morfologie. 2.2 Získání zarovnání Zarovnání vět Základem pro další postup je získání zarovnání vět. Pro splnění tohoto úkolu byl zvolen nástroj hunalign, který využívá hybridní algoritmus, spočívající v zarovnání vět na základě podobnosti počtu slov v kombinaci s bilinguálním slovníkem, je-li k dispozici. Takový slovník byl pro zarovnání česko-anglických korpusů získán konverzí slovníku, dostupného na školním stroji minerva1 (minerva1:/mnt/data/nlp/projects/dicts2olif/ledaparser/out.xml). Program hunalign byl primárně vyvinut pro zarovnávání angličtiny a mad arštiny. Vzhledem k algoritmu, který využívá, je však dobře použitelný pro prakticky libovolný jazykový pár, obzvláště pokud je k dispozici slovník. Algoritmus uvažuje i případy, kdy je jedna věta zarovnána ke dvěma větám jazyka druhého, případně dvě věty ke dvěma, není-li 11

16 tato možnost potlačena. Vstupem jsou soubory s paralelními texty a soubor se slovníkem (lze použít i prázdný slovník). Paralelní texty musejí být nejprve upraveny do formátu, který program vyžaduje, což obnáší rozdělení textu na věty, každou na samostatném řádku. Soubor představující výstup obsahuje na každém řádku zarovnání a ohodnocení, které pro něj bylo algoritmem získáno. Nakonec program vypíše i souhrnné skóre pro celou proceduru. Vzhledem k povaze vstupních dat se ukázalo jako vhodné zárovnání vět provádět po jednotlivých titulkových párech, korpusy JRC-Acquis a Europarl jsou členěny podobně po jednotlivých textech. V tomto kroku je snahou určit korespondující věty v korpusu a spárované titulky či jednotlivé právní vyhlášky a zápisy lze považovat za autonomní celky, které nemusí s ostatními texty nikterak souviset. Nedá se tedy už z principu očekávat zlepšení výsledků při spojování souborů do větších seskupení. S myšlenkou, že rozsáhlé texty lze rozdělit na menší logické celky (odstavce, kapitoly apod.), byl vyvíjen i samotný program hunalign, který při zpracování velkých souborů skončí s hlášením, že byl překročen limit na velikost využívané paměti. Máme-li menší celky k dispozici, bylo by kontraproduktivní se takového členění zbavovat, protože počet vět ve zdrojových a cílových textech se někdy značně liší. Tento jev by mohl při spojení všech souborů negativně ovlivnit i zarovnání u textů, které jsou si věrným překladem. Podobně v případech, kdy byly chybně vyplněny údaje při nahrávání titulků na server a mohou patřit dokonce ke zcela jinému filmu, je dobré odhalit nekvalitní překlad již na této úrovni a nenechat jej negativně ovlivnit výsledky u dalších dat. Nekvalitní překlady jsou zahozeny na základě nízkého skóre pro zarovnání vstupních souborů. Mimo to je také dobré vhodně nastavit parametr programu --thresh=n, který zamezuje výpisu zarovnání, jejichž ohodnocení nepřesáhlo Na základě experimentů byla nastavena tato hodnota na Zarovnání slov Každý výstup zarovnání programem hunalign je znovu rozdělen do souborů, v nichž se na každém řádku vyskytují odpovídající si zarovnané věty v jednotlivých jazycích. (V některých případech ne pouze jedna, ale dvě věty daného jazyka, ohodnotil-li hunalign takové zarovnání jako nejpravděpodobnější.) Všechny takové soubory jsou posléze sjednoceny do dvou souborů, které jsou určeny jako vstup do další etapy hledání zarovnání slov. Než se však k samotnému zarovnávání slov přistoupí, jsou data nejprve zbavena znaků, jejichž přítomnost negativně ovlivňuje výsledky. Především se jedná o interpunkční znaménka. Důvodem je vnímání slov použitým programem GIZA++, který za slovo považuje jakoukoliv sekvenci jiných než bílých znaků. Protože interpunkční znaménka mezi bílé znaky nepatří, jsou pak interpretována jako součásti slova. V důsledku je pak stejné slovo, vyskytující se například jednou na konci věty a jednou uprostřed, hodnoceno jako slova různá. Záměrnou výjimkou při odstraňování interpunkce byl znak apostrof, který má v anglickém jazyce zvláštní úlohu u zkracování některých slov a při použití přívlastňovacích adjektiv. Další předzpracování dat je provedeno programy, které jsou distribuovány spolu s programem GIZA++ a nesou název plain2snt.out a mkcls. První z uvedených slouží k převedení textových souborů do formátu, který je programem GIZA++ očekáván na vstupu. V podstatě pouze prochází vstupní soubory a nahrazuje slova celými čísly, pod kterými je ukládá do slovníků (ty jsou zapsány v samostatných souborech) a páruje věty na odpovídajících si řádcích. Výstupem jsou pak kromě slovníků dva soubory, jejichž formátem je opakující se sekvence trojice řádků. Na prvním je číslo, udávající počet výskytů větného páru v korpusu, na druhém a třetím jsou řádky vstupních souborů, v nichž jsou již slova nahrazena n

17 přiřazenými čísly. Tento krok by principiálně ani nebyl nutný. Jedná se v podstatě o optimalizaci pro použití algoritmů, implementovaných programem GIZA++, na současných počítačích, u nichž jsou operace porovnání nad celými čísly tradičně přímo v instrukčních sadách procesorů. Práce s řetězci znaků bývá podstatně složitější a těchto operací se v dalších krocích chystáme provádět nemalé množství. Podobně potřeba operační paměti pro uložení celého čísla bývá oproti znakovému řetězci nižší. Program mkcls slouží k rozdělení slov do tříd, které jsou použity v IBM modelech s číselným označením vyšším než 3. Pokud se tedy nechystáme těchto modelů využít, není nutné program vůbec spouštět. Experimentálně bylo zjištěno, že je také vhodné před dalším krokem korpus zbavit velmi dlouhých vět a větných párů, jejichž délky se příliš liší. Sice se tak připravujeme o potenciálně významnou informaci, na druhou stranu však takové situace znatelně zvyšují časovou náročnost výpočtu. Bez tohoto kroku trvá trénink statistických jazykových modelů výrazně déle. Po připravení vstupních souborů již následuje spuštění programu GIZA++, časově i výpočetně nejsložitějšímu kroku v celé proceduře. GIZA++ umožňuje volbu mnoha parametrů výpočtu, nejpodstatnějšími z nich jsou počty iterací jednotlivých modelů. IBM modely využívají EM algoritmu a v každé iteraci zpřesňují odhady svých parametrů, avšak zejména při zpracování většího množství dat znamená každá iterace prodloužení běhu programu, je proto třeba volit uvážlivě. Byla provedena řada experimentů s různými konfiguracemi. Nakonec bylo ponecháno implicitní nastavení programu, které se zdá být zvoleno vhodně ve smyslu kvality výsledků a době výpočtu (hodnoceno čistě subjektivními dojmy), a bude rozumnější se zaměřit spíše na přípravu vstupních dat a zpracování výstupů tohoto programu. Za tímto účelem je program GIZA++ spuštěn dvakrát, protože IBM modely jsou závislé na směru překladu a výsledné zarovnání je různé, je-li například zvolen jako zdrojový jazyk angličtina a jako cílový čeština nebo naopak. Výsledkem jsou tedy po tomto kroku parametry jednotlivých modelů uložené v definovaných souborech. Jejich význam lze nalézt v dokumentaci k programu a bylo by zbytečné je zde detailně popisovat. Pro další postup jsou důležité ty, uvedené v následujícím výčtu: Důležité výstupy fáze zarovnání slov *.A3.final soubory obsahující zdrojový text a zarovnání mezi slovy zdrojového jazyka a cílového jazyka ve větách. *.t3.final v těchto souborech lze nalézt pravděpodobnosti zarovnání mezi slovy zdrojového a cílového jazyka. *.snt zdrojová data, kde jsou k sobě přiřazeny dříve zarovnané věty a slova jsou nahrazena číselnými identifikátory (výstup programu plain2snt.out). *.vcb slovníky, obsahující mapování mezi číselnými identifikátory a příslušnými slovy. 2.3 Generování slovníků Přepokladem pro další krok je úspěšné dokončení všech předchozích fází, tedy i existence souborů, představujících výstup z fáze předchozí. Máme k dispozici zarovnání slov v obou směrech a nyní lze konečně přistoupit k poslednímu kroku vygenerování slovníků. Slovník ve formátu slovo překlad je základem, a měl by být pokud možno co nejpřesnější. Takový slovník ale často nepostačuje a hlavně nereflektuje některé informce, které by teoreticky 13

18 mohl. Konkrétně se jedná o slovní spojení, která mají jako kombinace zvláštní sémantiku, a jsou proto často překládána jako jeden celek. Ke zpracování výsledků z předchozí fáze je využito slovníků pro GIZA++ a také dostupné reprezentace korpusu ve formátu snt (popsáno výše), za účelem úspory potřebné výpočetní síly. Dále jsou zpracovány soubory *.A3.final, v nichž je uloženo nejlepší zarovnání slov, které GIZA++ získává procesem trénování. Jde spíše o vedlejší produkt tohoto programu, pro získání konečných výsledků systému má však stěžejní úlohu. Pro generování slovníků z těchto dat byl implementován program, jehož popis následuje Program pro generování slovníků Jako základní výstup bude generován jednoduchý slovník ve formátu slovo překlad. Kromě něj se program pokusí identifikovat větší celky shluky slov, kterým budeme říkat fráze nebo sousloví, z nich vybrat ty nejlepší a uložit je jako další slovník. Postup byl inspirován publikací [6]. Při zpracování dat vyprodukovaných v minulém kroku se bude postupovat po větách, které jsou v *.snt i *.A3.final souborech uloženy na třech řádcích. Na prvním z nich jsou informace o větném páru (identifikace věty, počet výskytů, souhrnné skóre získané při zarovnání), na dalších dvou lze pak nalézt větu ve zdrojovém a cílovém jazyce. (Toto tvrzení není zcela přesné, pokud bylo při zarovnání vět určeno jako nejvhodnější zarovnání dvou vět k jedné, pak jsou na příslušném řádku věty dvě.) Jak bylo předesláno, pro interní reprezentaci slov je vhodné využít informace z dostupných souborů *.snt, kde jsou slova nahrazena číselnými identifikátory, v souborech *.A3.final je obsaženo nalezené zarovnání. Pro zpracování větného páru je tedy nutné přečíst tři řádky z některého *.snt souboru a tři řádky z každého *.A3.final souboru, abychom získali zarovnání v obou směrech. Ke každé větě je vytvořena v obou směrech zarovnání matice, v níž řádky odpovídají slovům zdrojové věty na dané pozici a podobně sloupce slovům věty cílové. Každý prvek takové matice může nabývat jen dvou hodnot, protože nese pouze informaci, zda jsou slova na pozicích, udávajících indexy prvku, k sobě zarovnány či nikoliv. Jedná se tedy o řídkou matici, jejíž neprázdé položky reprezentují body zarovnání mapování mezi slovy zdrojové a cílové věty nalezené v předchozím kroku. Po získání takových matic z obou směrů překladu je jedna z nich invertována a spočítají se matice s body zarovnání, které se objevily v obou směrech současně (dále v textu nazvaná průnik) a alespoň v jednom směru (dále sjednocení). Průnik poslouží mimo jiné pro generování základního slovníku. Použité statistické modely jsou založeny na myšlence, že se slova cílového jazyka vyskytují v textu jako důsledek přítomnosti určitého slova jazyka zdrojového a že jedno slovo jazyka zdrojového může takto generovat obecně více slov jazyka cílového, ne však naopak. V důsledku je tak často ke zdrojovému slovu zarovnáno několik slov v cílovém jazyce, protože se model snaží určit, ze kterého zdrojového slova bylo slovo generováno s největší pravděpodobností, a dané zdrojové slovo se s cílovým jednoduše ve zdrojových datech vyskytuje častěji než ostatní slova zdrojové věty. To je základní myšlenkou statistického přístupu a v principu kýžený jev. Ovšem v situacích, kdy se cílové slovo v datech objevuje zřídka, je velmi pravděpodobné, že tento přístup zvýhodní často se vyskytující zdrojová slova, která mají větší šanci se s cílovým ve větách potkat, a nastává tak rozpor vzácná slova jednoho jazyka jsou překládána často se vyskytujícím slovem jazyka druhého. Omezení těchto případů lze sice do jisté míry docílit vhodným nastavením pravděpodobnosti, že je slovo do cílové věty vloženo (není překladem žádného ze zdrojových slov), jako vhodnější se však jeví právě použití vhodné kombinace zarovnání v obou 14

19 směrech. Pokud bylo zarovnání dvojice slov nalezeno v obou směrech, je pravděpodobné, že se tak nestalo v důsledku popsaného jevu a že jsou tedy skutečně svými překlady. Tyto dvojice jsou uloženy do slovníku, ve kterém se dále uchovává počet případů, kdy se tak stalo, aby bylo možné posoudit míru důvěryhodnosti, a po dočtení vstupů je uložen do souboru. Matice průniku je také použita jako výchozí bod k extrakci frází. K těmto bodům zarovnání jsou dále přidány body zarovnání z matice sjednocení, které s již přítomnými přímo sousedí. Tím je myšleno, že mají v pomyslném souřadném systému, který je určen indexy řádků a sloupců v matici, pouze jedinou souřadnici různou právě o 1. V dalším kroku jsou přidány ještě další body zarovnání tak, aby shluky vytvářely pravoúhlá seskupení. Postup přidávání bodů zarovnání je znázorněn na následujícím obrázku: Obrázek 2.1: Postup přidávání bodů zarovnání v matici Výsledné shluky pak pokládáme za základ pro určení frází. Jako potenciální fráze jsou uvažovány všechny kombinace řádu 1-N (N je minimum z hodnot rozměr shluku a maximální délka fráze) z indexů, vyskytujících se ve shluku pro daný rozměr. Obrázek 2.2: Shluky slov naznačené v matici Na obrázku je naznačen případ, kde jsou patrné dva shluky. Jeden je tvořen slovy na pozicích 2 a 3 věty v jednom jazyce a slovy na pozicích 1, 2 a 3 jejího překladu, druhý představuje 15

20 pouze bod z průniku, kde byla k sobě zarovnána slova na pozici 4. Za předpokladu, že řádky matice reprezentují slova první věty a maximální délka frází je větší než 2, dostaneme z prvního shluku potenciální fráze (řídí), (důstojnický) a (řídí, důstojnický) pro češtinu, z anglické věty pak (he), (runs), (officers ), (he, runs), (runs, officers ) a (he, runs, officers ). Z druhého shluku by byly v tomto případě extrahovány pro oba jazyky pouze jednoslovné fráze (klub) a (club). Pro každý shluk je uchován kartézský součin množin, jejichž obsahem jsou získané fráze pro oba jazyky. Tak je možné později určit, která fráze jednoho jazyka je pravděpodobným překladem fráze jazyka druhého. Heuristická funkce použitá pro hodnocení frází bude popsána dále v textu. Návrh tříd a datových struktur K implementaci popsaného konceptu byl zvolen programovací jazyk C++, protože umožňuje objektově orientovaný přístup, nabízí kontrolu využití operační paměti, kompilátory tohoto jazyka jsou běžně dostupné a výsledné programy mívají velmi dobré parametry z hlediska rychlosti, což je vzhledem k problematice důležité. Předpokladem pro vznik použitelné aplikace byl uvážlivý přístup při návrhu datových struktur a tříd, jelikož může být vyžadováno zpracování velkého množství dat a uchovávání zbytečné informace by tak vedlo nejen k plýtvání pamětí, ale v důsledku i k prodloužení doby výpočtu. Základem popsaného postupu je matice bodů zarovnání. Byl již uvedeno, že se jedná o řídkou matici, jejíž prvky mohou nabývat pouze dvou hodnot. Implementována byla jako vektor množin, v němž každá množina reprezentuje řádek matice a obsahuje celočíselné indexy těch sloupců, pro něž je v matici bod zarovnání. Řádky, v nichž není žádný bod zarovnání, reprezentuje prázdná množina, aby bylo možné se odkazovat na slova ve zdrojové větě stejnými indexy jako na řádky matice. K načítání vstupních souborů jsou definovány struktury, uchovávající získaná data. Pro řádek *.snt souborů je to vektor celočíselných identifikátorů slov. Slovníky vytvořené pro potřeby programu GIZA++ jsou načítány do vektoru řetězců, které jsou uloženy na pozicích, odpovídajících jejich celočíselné reprezentaci. Indexy, které nebyly pro žádné slovo přiřazeny, jsou vyplněny prázdným řetězcem, aby byl později hledaný řetězec získán s konstatntní časovou složitostí. Dalším typem souborů, které jsou prerekvizitou pro běh programu, jsou soubory *.t3.final, kde jsou spočítané pravděpodobnosti zarování jednotlivých slov. Tato data jsou uchována v asociativním kontejneru std::map, v němž je jako klíče použito páru celých čísel identifikátorů slov zdrojového a cílového jazyka po řadě. Hodnotou je pak číslo v plovoucí řádové čárce typu double pravděpodobnost, že jsou slova tvořící klíč svým překladem. Další datovou strukturou je třída reprezentující základní slovník (BaseDict), do nějž jsou ukládány páry slov z matice průniku spolu s informací o četnosti výskytu tohoto jevu, podle níž lze posuzovat důvěryhodnost zarovnání. Tento slovník je ve struktuře, tvořené opět kontejnerem std::map se shodným klíčem jako v případě pravděpodobností, hodnotou je tentokrát celočíselný údaj o počtu případů, kdy byl pro pár nalezen bod zarovnání v matici průniku. Třída nabízí metody pro přidání páru, přidání záznamů přímo z matice s body zarovnání, zápis slovníku do souboru či jeho uvolnění z paměti. Třídou, která ovlivňuje průběh zpracování nejvíce, je slovník frází nazvaný PhraseDict. Fráze jsou reprezentovány vektorem celočíselných identifikátorů a jsou ukládány pro každý jazyk odděleně ve struktuře, která krom fráze samotné obsahuje počet jejích výskytů v korpusu a dále vektor s referencemi na fráze z druhého jazyka, které jsou jejím potenciálním překladem, a počet případů, kdy byla s těmito frázemi spárována. Účelem ukládání jazyků 16

21 odděleně je zejména úspora operační paměti. Využitím referencí je fráze samotná vždy v paměti pouze jednou, bez ohledu na počet frází druhého jazyka, k nimž byla zarovnána. K dispozici jsou metody pro přidání páru, zjištění počtu frází v obou jazycích, metody zpřístupňující slovníky jednotlivých jazyků prostředníctvím reference a zápis aktuálního obsahu těchto slovníků do souboru v definovaném formátu, jehož popis lze nalézt v příloze. Jako další byla vytvořena třída pro načítání souborů ve formátu, v němž ukládá svůj obsah třída PhraseDict, nazvaná PartResReader. Kromě samotného čtení záznamů v takovém souboru do vnitřní struktury umožňuje operace, které usnadňují další zpracování. Mezi jinými je to například definovaná operace sčítání, která nachází uplatnění při zpracovávání více takových souborů a kombinování jejich obsahu. Dosud popsané struktury jsou navrženy jako prostředky pro řešení dílčích problémů, je proto třeba vnést do projektu prvek, který by se postaral o koordinaci jejich činnosti a řídil tak celý proces od načtení vstupů po zápis výsledků. Takovou roli hraje třída Phraser, která využívá prostředků nabízených ostatními prvky a zastřešuje většinu aplikační logiky. Podmínkou pro instanciaci této třídy je dodání několik parametrů, především názvy vstupních souborů výstupů předchozí fáze. V konstruktorech dojde k pokusu o otevření těchto souborů a vytvoření adresáře, určeného pro uložení výstupů. Dojde-li při této operaci k nějaké chybě, je nastavena interní proměnná Errcode, jejíž stav lze zjistit metodou int GetErrCode(), na nenulovou hodnotu. Pro uživatele nejzajímavější metodou je int Process(), která se postará o celý průběh zpracování až po zápis výsledků. Posloupnost kroků, které jsou touto metodou vykonány, je naznačena dále, pro popis ostatních metod, jejich prerekvizit, výstupů a možností využití se odkáži na dokumentaci k programu. Postup zpracování Po úspěšném vytvoření objektu třídy Phraser a vyvolání metody int Process() proběhne zpracování vstupních souborů. Jako jeden z parametrů konstruktoru je možné uvést počet segmentů, na které se mají vstupy při průběhu rozčlenit, implicitně je počet segmentů nastaven na 1, tedy bez segmentace. Pokud je tento parametr nastaven na hodnotu větší než 1, je prvním krokem zjištění počtu vět, spadajících do jednoho segmentu. Je-li ponechána přednastavená hodnota, je tento krok přeskočen. Počet vět je získán jako počet řádků *.snt souboru podělen třemi, což je platný údaj, je-li v souboru dodržen předepsaný formát. Poté jsou postupně čteny větné páry se zarovnáním slov, pro každý pár jsou načteny tři řádky ze *.snt souboru a tři řádky z každého z *.A3.final souboru, v nichž je zarovnání slov. Z těchto dat jsou sestaveny matice s body zarovnání a je proveden jejich průnik a sjednocení. Matice průniku je zakomponována do základního slovníku a jsou přidány další body zarovnání popsaným postupem. V takto vzniklé matici jsou určeny shluky bodů zarovnání. Ze shluků se extrahují potenciální fráze a uloží se spolu s informacemi o zarovnání do slovníku frází. Při použití segmentace je slovník frází po dočtení příslušného počtu vět uložen do dočasných souborů a uvolněn z paměti. Jakmile je přečten poslední pár vět, jsou načteny ostatní vstupní soubory *.vcb a *.t3.final, jejichž obsah je potřebný pro zápis výsledků programu. Poté jsou již zapsány získané slovníky. Pokud nebyla použita segmentace, jsou již všechny potřebné informace v paměti, věty jsou ohodnoceny, a je-li jejich hodnocení dostatečné, jsou vypsány jako výsledek. Číslené identifikátory slov jsou nahrazeny zpět jejich původní podobou. Jestliže byla segmentace využita, přichází ke slovu třída PartResReader, jejíž instance jsou postupně vytvářeny nad všemi dočasnými soubory s částečnými výsledky. Postupným čtením jsou získány fráze podobně jako v případě bez segmentace, opět následuje hodnocení a zápis výsledku. Základní slovník se zpracovává 17

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a datových modelů Obsah Seznam tabulek... 1 Seznam obrázků... 1 1 Úvod... 2 2 Metody sémantické harmonizace... 2 3 Dvojjazyčné katalogy objektů

Více

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 2. Množiny, funkce MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí

Více

Úloha - rozpoznávání číslic

Úloha - rozpoznávání číslic Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání

Více

Paralelní korpusy. 0/2 Z, zimní semestr 2006/2007. Alexandr Rosen

Paralelní korpusy. 0/2 Z, zimní semestr 2006/2007. Alexandr Rosen Paralelní korpusy 0/2 Z, zimní semestr 2006/2007 Alexandr Rosen Ústav teoretické a komputační lingvistiky Filozofická fakulta Univerzity Karlovy v Praze Alexandr Rosen (ÚTKL FF UK ) Paralelní korpusy 1

Více

Informační a znalostní systémy jako podpora rozhodování

Informační a znalostní systémy jako podpora rozhodování Informační systémy a technologie Informační a znalostní systémy jako podpora rozhodování Petr Moos - ČVUT VŠL Přerov listopad 2015 Analýza a syntéza systému Definici systému můžeme zapsat ve tvaru: S =

Více

DATABÁZE MS ACCESS 2010

DATABÁZE MS ACCESS 2010 DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,

Více

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ Úvod do problematiky VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ Databáze je uspořádaná množina velkého množství informací (dat). Příkladem databáze je překladový slovník, seznam PSČ nebo telefonní seznam. Databáze

Více

BALISTICKÝ MĚŘICÍ SYSTÉM

BALISTICKÝ MĚŘICÍ SYSTÉM BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí primitivních pojmů; považuje se totiž rovněž za pojem primitivní. Představa o pojmu množina

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Sémantický web a extrakce

Sémantický web a extrakce Sémantický web a extrakce informací Martin Kavalec kavalec@vse.cz Katedra informačního a znalostního inženýrství FIS VŠE Seminář KEG, 11. 11. 2004 p.1 Přehled témat Vize sémantického webu Extrakce informací

Více

4EK201 Matematické modelování. 2. Lineární programování

4EK201 Matematické modelování. 2. Lineární programování 4EK201 Matematické modelování 2. Lineární programování 2.1 Podstata operačního výzkumu Operační výzkum (výzkum operací) Operational research, operations research, management science Soubor disciplín zaměřených

Více

xrays optimalizační nástroj

xrays optimalizační nástroj xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto

Více

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti. Přednáška č. 1 Úvod do statistiky a počtu pravděpodobnosti Statistika Statistika je věda a postup jak rozvíjet lidské znalosti použitím empirických dat. Je založena na matematické statistice, která je

Více

Manuál k programu RIZIKA

Manuál k programu RIZIKA Manuál k programu RIZIKA nástroj k efektivnímu vyhledávání a řízení pracovních rizik Program RIZIKA Program RIZIKA jsou víceuživatelskou aplikací s možností nastavení uživatelských práv pro jednotlivé

Více

DUM 12 téma: Příkazy pro tvorbu databáze

DUM 12 téma: Příkazy pro tvorbu databáze DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací

Více

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Autor: Jan Hošek

Autor: Jan Hošek Úvod STC Závěr Autor: Jan Hošek Školitel: RNDr. Radim Řehůřek Fakulta jaderná a fyzikálně inženýrzká České vysoké učení technické v Praze 25. 5. 2009 Osnova Úvod STC Závěr 1 Úvod Motivace Ukázka technologie

Více

Pokyny pro zpracování bakalářských prací

Pokyny pro zpracování bakalářských prací Grafická a multimediální laboratoř Vysoká škola ekonomická v Praze 2014 Pokyny pro zpracování bakalářských prací Obsah Struktura bakalářské práce... 2 Vstupní část práce... 2 Hlavní textová část práce...

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Pravděpodobnost a její vlastnosti

Pravděpodobnost a její vlastnosti Pravděpodobnost a její vlastnosti 1 Pravděpodobnost a její vlastnosti Náhodné jevy Náhodný jev je výsledek pokusu (tj. realizace určitého systému podmínek) a jeho charakteristickým rysem je, že může, ale

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE

SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE Václav Šebesta Ústav informatiky Akademie věd ČR, e-mail: vasek@cs.cas.cz Abstrakt Jestliže ještě před

Více

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

Více

Da D to t v o é v ty t py IB111: Datové typy

Da D to t v o é v ty t py IB111: Datové typy Datové typy IB111: Datové typy Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji provádět? Navržení práce s daty je velice důležité

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Úvod do databázových systémů

Úvod do databázových systémů Úvod do databázových systémů Databáze je dnes velmi často skloňovaným slovem. Co se pod tímto termínem skrývá si vysvětlíme na několika následujících stranách a cvičeních. Databáze se využívají k ukládání

Více

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole 1815 1864. Aplikace booleovské logiky

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole 1815 1864. Aplikace booleovské logiky Modely vyhledávání informací 4 podle technologie 1) Booleovský model 1) booleovský 2) vektorový 3) strukturní 4) pravděpodobnostní a další 1 dokumenty a dotazy jsou reprezentovány množinou indexových termů

Více

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy Formální systémy (výrokové) logiky postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy cíl: získat formální teorii jako souhrn dokazatelných

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

Využití tabulkového procesoru MS Excel

Využití tabulkového procesoru MS Excel Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...

Více

Ontologie. Otakar Trunda

Ontologie. Otakar Trunda Ontologie Otakar Trunda Definice Mnoho různých definic: Formální specifikace sdílené konceptualizace Hierarchicky strukturovaná množina termínů popisujících určitou věcnou oblast Strukturovaná slovní zásoba

Více

Matematika pro informatiky

Matematika pro informatiky (FIT ČVUT v Praze) Konvexní analýza 13.týden 1 / 1 Matematika pro informatiky Jaroslav Milota Fakulta informačních technologíı České vysoké učení technické v Praze Letní semestr 2010/11 Extrémy funkce

Více

POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE

POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE na Fakultě životního prostředí UJEP v Ústí nad Labem. 1. Bakalářská a diplomová práce se odevzdává ve třech výtiscích v pevné vazbě. Práce musí být svázaná

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

KRY. Projekt č. 2. Kamil Dudka xdudka00

KRY. Projekt č. 2. Kamil Dudka xdudka00 KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí

Více

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu:

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_01_ACCESS_P2 Číslo projektu: CZ 1.07/1.5.00/34.1077

Více

1 Řešení soustav lineárních rovnic

1 Řešení soustav lineárních rovnic 1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty

Více

Experimentální systém pro WEB IR

Experimentální systém pro WEB IR Experimentální systém pro WEB IR Jiří Vraný Školitel: Doc. RNDr. Pavel Satrapa PhD. Problematika disertační práce velmi stručný úvod WEB IR information retrieval from WWW, vyhledávání na webu Vzhledem

Více

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software. Maturitní témata IKT, školní rok 2017/18 1 Struktura osobního počítače Von Neumannova architektura: zakreslete, vysvětlete její smysl a popište, jakým způsobem se od ní běžné počítače odchylují. Osobní

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6 APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...

Více

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev Úvod do MS Access Modelování v řízení Ing. Petr Kalčev Postup při tvorbě aplikace Vytvoření tabulek Vytvoření relací Vytvoření dotazů Vytvoření formulářů Vytvoření sestav Tabulky Slouží k definování polí,

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

Aktuální změny v didaktickém testu z češtiny 2015

Aktuální změny v didaktickém testu z češtiny 2015 Aktuální změny v didaktickém testu z češtiny 2015 PhDr. Dana Brdková Lektorka Bankovní akademie a VŠFS Pro použití v rámci projektu ematurity Jak je sestaven didaktický test? Didaktický test obsahuje 10

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 7.4 13/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 7.4 13/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 7.4 13/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 13 0:40 Implementace Umělá inteligence (UI) Umělá inteligence

Více

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A VEKTORY Vektorem se rozumí množina všech orientovaných úseček, které mají stejnou velikost, směr a orientaci, což vidíme na obr. 1. Jedna konkrétní orientovaná úsečka se nazývá umístění vektoru na obr.

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Fyzikální veličiny. - Obecně - Fyzikální veličiny - Zápis fyzikální veličiny - Rozměr fyzikální veličiny. Obecně

Fyzikální veličiny. - Obecně - Fyzikální veličiny - Zápis fyzikální veličiny - Rozměr fyzikální veličiny. Obecně Fyzikální veličiny - Obecně - Fyzikální veličiny - Zápis fyzikální veličiny - Rozměr fyzikální veličiny Obecně Fyzika zkoumá objektivní realitu - hmotu - z určité stránky. Zabývá se její látkovou formou

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Vývoj IS - strukturované paradigma II

Vývoj IS - strukturované paradigma II Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 05 1/18 Vývoj IS - strukturované paradigma II Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta informačních

Více

Dolování z textu. Martin Vítek

Dolování z textu. Martin Vítek Dolování z textu Martin Vítek Proč dolovat z textu Obrovské množství materiálu v nestrukturované textové podobě knihy časopisy vědeckéčlánky sborníky konferencí internetové diskuse Proč dolovat z textu

Více

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi

Více

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

Databáze Bc. Veronika Tomsová

Databáze Bc. Veronika Tomsová Databáze Bc. Veronika Tomsová Databázové schéma Mapování konceptuálního modelu do (relačního) databázového schématu. 2/21 Fyzické ik schéma databáze Určuje č jakým způsobem ů jsou data v databázi ukládána

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

47 Mapování přístupnosti

47 Mapování přístupnosti 47 Mapování přístupnosti Modul Mapování přístupnosti slouží ke správě výsledků mapování architektonických objektů z hlediska přístupnosti a především k evidenci zjištěných skutečností o mapovaných objektech.

Více

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání 6. dubna 2018 První verze Obecné pokyny 1. Celkem jsou k dispozici tři zadání příkladů. 2.

Více

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Matematická analýza pro informatiky I. Limita posloupnosti (I) Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz

Více

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012 Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012 Problém hledání kořenů rovnice f(x) = 0 jeden ze základních problémů numerické matematiky zároveň i jeden

Více

Analytické procedury v systému LISp-Miner

Analytické procedury v systému LISp-Miner Dobývání znalostí z databází MI-KDD ZS 2011 Přednáška 8 Analytické procedury v systému LISp-Miner Část II. (c) 2011 Ing. M. Šimůnek, Ph.D. KIZI, Fakulta informatiky a statistiky, VŠE Praha Evropský sociální

Více

Matematická morfologie

Matematická morfologie / 35 Matematická morfologie Karel Horák Rozvrh přednášky:. Úvod. 2. Dilatace. 3. Eroze. 4. Uzavření. 5. Otevření. 6. Skelet. 7. Tref či miň. 8. Ztenčování. 9. Zesilování..Golayova abeceda. 2 / 35 Matematická

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Aplikace pro srovna ní cen povinne ho ruc ení

Aplikace pro srovna ní cen povinne ho ruc ení Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady Předmět: Náplň: Třída: Počet hodin: Pomůcky: Matematika Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady 4. ročník a oktáva 3 hodiny týdně PC a dataprojektor, učebnice

Více

Formální systém výrokové logiky

Formální systém výrokové logiky Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

Jak správně psát scénáře k případům užití?

Jak správně psát scénáře k případům užití? Jak správně psát scénáře k případům užití? Autor RNDr. Ilja Kraval 2007 http://www.objects.cz K napsání tohoto článku mne inspiroval tento mail: Dobrý den pane Kravale, chci Vás poprosit o radu, která

Více

WEBOVÉ KORPUSY ARANEA A VÍCEJAZYČNÉ KOLOKAČNÍ PROFILY

WEBOVÉ KORPUSY ARANEA A VÍCEJAZYČNÉ KOLOKAČNÍ PROFILY WEBOVÉ KORPUSY ARANEA A VÍCEJAZYČNÉ KOLOKAČNÍ PROFILY Datum konání: 11. dubna 2014 Místo konání: Filozofická fakulta Masarykovy univerzity (učebna G13) Název přednášky: Přednášející: Webové korpusy Aranea

Více

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h)

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h) A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h) 2.1 Základy marketingové strategie (2,5h) Učitelé se seznámí se základní marketingovou terminologií a s možnými cestami rozvoje firmy. V

Více

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2 Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací

Více

Moderní systémy pro získávání znalostí z informací a dat

Moderní systémy pro získávání znalostí z informací a dat Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ RELATIONAL AND OBJECT DATABASES DESIGN DIFFERENCES AND IT S IMPLICATIONS TO MODEL TRANSFORMATION Vít Holub

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL

Více

Olympiáda v českém jazyce 45. ročník, 2018/2019

Olympiáda v českém jazyce 45. ročník, 2018/2019 Národní institut pro další vzdělávání MŠMT Senovážné náměstí 25, 110 00 Praha 1 Olympiáda v českém jazyce 45. ročník, 2018/2019 Krajské kolo zadání II. kategorie přidělené soutěžní číslo body gramatika

Více

Teorie systémů TES 5. Znalostní systémy KMS

Teorie systémů TES 5. Znalostní systémy KMS Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti. Teorie systémů TES 5. Znalostní systémy KMS ZS 2011/2012 prof. Ing. Petr Moos, CSc. Ústav informatiky a telekomunikací Fakulta dopravní

Více

Stonožka jak se z výsledků dozvědět co nejvíce

Stonožka jak se z výsledků dozvědět co nejvíce Stonožka jak se z výsledků dozvědět co nejvíce Vytvoření Map učebního pokroku umožňuje vyhodnotit v testování Stonožka i dílčí oblasti učiva. Mapy učebního pokroku sledují individuální pokrok žáka a nabízejí

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast CZ.1.07/1.5.00/34.0963 IV/2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti

Více