Urównoleglanie Tekstów. Dwujęzycznych. Na Poziomie Zdania

Wielkość: px
Rozpocząć pokaz od strony:

Download "Urównoleglanie Tekstów. Dwujęzycznych. Na Poziomie Zdania"

Transkrypt

1 Uniwersytet im. Adama Mickiewicza w Poznaniu Wydział Matematyki i Informatyki Jarosław Lipski Urównoleglanie Tekstów Dwujęzycznych Na Poziomie Zdania Praca magisterska napisana pod kierunkiem dr Krzysztofa Jassema Poznań 2007

2 mojej ukochanej Marysi

3 Spis treści Wstęp Pojęcia Segmentacja tekstu Definicje Definicja tekstu Definicja segmentu Definicja procesu segmentacji tekstu Problemy segmentacji tekstu Zastosowania segmentacji tekstu Urównoleglanie tekstów dwujęzycznych Definicje Definicja tekstu źródłowego i tekstu docelowego Definicja segmentu źródłowego i segmentu docelowego Definicja dopasowania Definicja kategorii dopasowania Definicja urównoleglenia Definicja procesu urównoleglania tekstów dwujęzycznych Definicja korpusu równoległego Poziomy szczegółowości urównoleglania tekstów dwujęzycznych Problemy przy urównoleglaniu tekstów dwujęzycznych Miary jakości urównoleglania tekstów dwujęzycznych Dokładność Kompletność Zastosowania dopasowywania tekstów dwujęzycznych Algorytmy urównoleglania tekstów dwujęzycznych Algorytm Gale'a i Churcha bazujący na długościach segmentów Informacje wstępne Ogólna charakterystyka algorytmów bazujących na długościach segmentów Zalety algorytmów bazujących na długościach segmentów Niezależność od języków tekstów Duża wydajność Niewielkie wymagania pamięciowe

4 Wady algorytmów bazujących na długościach segmentów Niska dokładność urównoleglenia dla trudnych tekstów Sposób działania algorytmu Szkielet algorytmu urównoleglania Funkcja prawdopodobieństwa p Miara długości segmentu Wartość funkcji p Parametry rozkładu normalnego Obliczanie wartości funkcji p Wybieranie najlepszych dopasowań Pseudokod algorytmu Złożoność algorytmu Jakość urównoleglenia Algorytm Moore'a bazujący na treści segmentów Informacje wstępne Ogólna charakterystyka algorytmu Moore'a Zalety algorytmów bazujących na treści segmentów Dokładność urównoleglania Wady algorytmów bazujących na treści segmentów Zależność od języka Mniejsza wydajność Duże wymagania pamięciowe Sposób działania algorytmu Fazy algorytmu Moore'a Faza 1. Urównoleglanie na podstawie długości segmentów Miara długości segmentu Rozkłady długości segmentów Obliczanie wartości funkcji p Faza 2. Filtrowanie najlepszych dopasowań Faza 3. Trenowanie modeli statystycznych Modele języka Model translacji Sposób działania modelu 1 IBM-a Trenowanie modelu translacji Modyfikacje sposobu trenowania modelu 1 IBM-a w algorytmie Moore'a 4

5 Pseudokod algorytmu trenowania modelu translacji Faza 4. Urównoleglanie na podstawie treści segmentów Szkielet algorytmu Funkcja prawdopodobieństwa p Pseudokod algorytmu Złożoność algorytmu Optymalizacja wyszukiwania najlepszego urównoleglania beam search Jakość urównoleglania Program do segmentacji tekstu - split Wstęp Założenia programu Implementacja programu Interfejs użytkownika Standard wymiany reguł podziału SRX Struktura pliku SRX Przykładowy plik SRX Interpretacja przykładowego pliku Architektura programu Interfejs Splitter i klasy go implementujące Klasy odpowiadające strukturze pliku SRX Algorytmy segmentacji tekstu Prosty algorytm segmentacji tekstu na zdania i paragrafy Wstęp Zasada działania algorytmu Diagram stanów algorytmu Opis działania algorytmu Algorytm segmentacji tekstu oparty na regułach podziału Wstęp Dane wejściowe algorytmu Reguły podziału zapisane w formacie SRX Tekst wejściowy Język tekstu wejściowego Utworzenie obiektu SrxSplitter Diagram sekwencji tworzenia obiektu SrxSplitter w języku UML

6 Opis sekwencji tworzenia obiektu SrxSplitter Pobranie kolejnego segmentu z tekstu wejściowego Diagram sekwencji operacji pobrania kolejnego segmentu z tekstu wejściowego w języku UML Opis operacji pobrania kolejnego segmentu tekstu Złożoność algorytmu Ogólne oszacowanie złożoności czasowej algorytmu Uzyskana wydajność algorytmu Próby optymalizacji algorytmu Zwiększenie wydajności Zmniejszenie zużycia pamięci Program do dopasowywania tekstów dwujęzycznych align Wstęp Założenia programu Interfejs programistyczny Etapy urównoleglania tekstów dwujęzycznych Parsowanie Segmentacja Oczyszczanie Urównoleglanie Selekcja Formatowanie Architektura programu Klasa Alignment Interfejs Parser Interfejs Formatter Interfejs Filter Klasa Aligner Interfejs AlignAlgorithm Klasa Modifier Interfejs ModifyAlgorithm Klasa abstrakcyjna SplitAlgorithm Klasa abstrakcyjna MergeAlgorithm Klasa abstrakcyjna CleanAlgorithm Klasy wybierające część dopasowań Interfejsy użytkownika

7 Interfejs Tekstowy Format pliku AL Standard wymiany pamięci tłumaczeń TMX Struktura dokumentu TMX Przykładowy plik w formacie TMX Polecenia programu align Polecenie parse Polecenie format Polecenie align Polecenie modify Polecenie select Polecenie compare Przykłady Przykład urównoleglania algorytmem Gale'a i Churcha Przykład urównoleglania algorytmem Moore'a Interfejs urównoleglania w systemie hetman Czym jest hetman? Zastosowanie urównoleglania tekstów w systemie hetman Interferjs użytkownika do urównoleglania tekstów w systemie hetman Import dokumentu Wybranie pliku do importu Opcje importu Postęp importu Podsumowanie importu Nowo zaimportowany dokument po imporcie Opcja urównoleglania Wybór dokumentów do urównoleglenia Postęp urównoleglania Podsumowanie urównoleglania Widok dwukolumnowy urównoleglonego dokumentu Tłumaczenie za pomocą pamięci tłumaczeń...80 Zakończenie...81 Bibliografia

8 Wstęp W niniejszej pracy zajmuję się problemem urównoleglania tekstów dwujęzycznych 1 na poziomie zdania. Rozwiązanie tego problemu polega na dopasowaniu do siebie odpowiadających sobie zdań w tekstach będących wzajemnymi tłumaczeniami. Dzięki opracowaniu algorytmów dokonujących tego zadania automatycznie możliwe stało się pozyskanie dużych urównoleglonych korpusów tekstów które znajdują zastosowanie w wielu aspektach związanych z lingwistyką komputerową, szczególnie zaś w tłumaczeniu automatycznym (ang. Machine Translation) i tłumaczeniu wspomaganym komputerowo (ang. Computer Aided Translation). Ponadto szerzej omawiam w niniejszej pracy także problem podziału tekstu na zdania, który jest jednym z istotnych elementów urównoleglania. W pracy rysuje się pewien, co prawda nieostry, podział na część teoretyczną, którą tworzą pierwszy i drugi rozdział oraz część praktyczną rozdziały trzeci i czwarty. W pierwszym rozdziale zdefiniowane są podstawowe pojęcia związane z urównoleglaniem i segmentacją tekstów dwujęzycznych. Ponadto, krótko omówione są zastosowania opisywanych algorytmów. W drugim rozdziale przedstawione są od strony teoretycznej dwa algorytmy urównoleglania tekstów dwujęzycznych: algorytm Gale'a i Churcha oraz algorytm Moore'a. Omówione jest ich podłoże matematyczne, sposób działania wraz z pseudokodem oraz pokrótce analiza złożoności obliczeniowej i skuteczność działania. Wybór omawianych algorytmów nie jest przypadkowy algorytm Gale'a i Churcha jest szeroko rozpowszechnionym algorytmem bazującym wyłącznie na długościach segmentów. Zrozumienie mechaniki jego działania ułatwia znacznie zrozumienie bardziej złożonego algorytmu Moore'a, który w pierwszej fazie swego działania wykorzystuje algorytm podobny do algorytmu Gale'a i Churcha. Algorytm Moore'a jest jednym z najlepszych znanych obecnie algorytmów urównoleglania. W trzecim rozdziale opisany jest program do segmentacji tekstu split. Program realizuje dwa stworzone przeze mnie algorytmy podziału tekstu, dla których dokonana jest w tym rozdziale analiza złożoności obliczeniowej. Omówiona jest również architektura programu oraz jego interfejs programistyczny. Czwarty rozdział dotyczy programu do urównoleglania tekstów dwujęzycznych align, czyli 1 Po angielsku nazwa problemu brzmi bilingual text alignment. W języku polskim nie istnieje jednoznacznie zdefiniowany odpowiednik słowa alignment, Najczęściej stosowane jest tłumaczenie dopasowywanie, ale moim zdaniem jest to określenie zbyt szerokie, dlatego stosuje określenie używane alternatywnie urównoleglanie. 8

9 praktycznej implementacji idei przedstawionych w rozdziale drugim. Są w nim omówione między innymi interfejs programistyczny oraz tekstowy interfejs użytkownika. W ostatnim fragmencie pracy przedstawione jest wykorzystanie programu programu align w systemie zarządzania pamięcią tłumaczeń o nazwie hetman. 9

10 1. Pojęcia 1.1. Segmentacja tekstu Definicje Definicja tekstu Tekstem w niniejszej pracy nazywam dowolny skończony, zazwyczaj stosunkowo długi, ciąg znaków, mający pewne znaczenie w języku naturalnym i stanowiący pewną całość. Tekstami są na przykład artykuły, książki, strony internetowe, treści umów itd Definicja segmentu Segmentem w niniejszej pracy nazywam pewien wydzielony na podstawie pewnego kryterium fragment tekstu. Mówiąc o segmencie najczęściej mam na myśli zdanie, jednak może to też być akapit, rozdział, czy część zdania albo słowo Definicja procesu segmentacji tekstu Segmentacją w niniejszej pracy określam proces dzielenia tekstu na segmenty, podczas którego nie są pomijane żadne znaki. Wynikiem tego procesu jest lista segmentów. Zatem jeśli T jest tekstem, a t 1, t 2,..., t n listą segmentów powstałą w procesie segmentacji tego tekstu, to T =t 1 t 2... t n, gdzie operator oznacza konkatenację napisów Problemy segmentacji tekstu Problemy segmentacji tekstu zależą od przyjętego poziomu szczegółowości segmentacji. Na przykład podział tekstu na paragrafy jest stosunkowo prosty do przeprowadzenia, wystarczy bowiem dzielić tekst po znaku końca wiersza2. Podział na wyrazy jest już zadaniem trudniejszym. Jednak w przypadku niniejszej pracy najczęściej stosowanym poziomem szczegółowości segmentacji jest zdanie. Zadanie podziału tekstu na zdania z początku może wydawać się trywialne - wystarczy dzielić tekst po kropce, znaku zapytania lub wykrzykniku. Niestety, istnieje tak duża liczba innych zastosowań znaku kropki - na przykład w skrótach, liczbach, datach itd., że zachodzi potrzeba zastosowania bardziej wyrafinowanej metody. 2 Albo przed znakiem końca wiersza, zależnie od przyjętej konwencji. 10

11 Zastosowania segmentacji tekstu Segmentacja tekstu ma bardzo wiele zastosowań. Każde automatyczne przetwarzanie tekstu wymaga najczęściej jego podziału na mniejsze jednostki. Powodem umieszczenia w niniejszej pracy fragmentu o segmentacji tekstu jest jej zastosowanie przy urównoleglaniu tekstów dwujęzycznych. Segmentacja stanowi pierwszy krok urównoleglania. W zależności od poziomu szczegółowości urównoleglania dokonuje się odpowiedniej segmentacji tekstów wejściowych. Najczęściej stosowany jest podział na zdania. Przydatny jest także podział tekstu na wyrazy jako pomocniczy w niektórych algorytmach urównoleglania. W celu zwiększenia wydajności urównoleglania stosuje się niekiedy także podział na akapity. Dobrze przeprowadzona segmentacja podnosi jakość urównoleglania. Segmenty są atomowymi jednostkami dla algorytmów urównoleglania. Jeśli segmentacja jest zbyt mało dokładna powstaje zbyt mało segmentów, bo cześć z nich jest w rzeczywistości konkatenacją kilku segmentów, w efekcie czego wynik urównoleglania jest niedostatecznie dokładny. Jeśli segmentacja jest zbyt szczegółowa powstaje zbyt dużo segmentów, ponieważ część z nich będzie w rzeczywistości fragmentami segmentów, a zadanie urównoleglenia staje się trudniejsze ze względu na zbyt dużą liczbę stopni swobody. W niektórych przypadkach ze względu na ograniczenia algorytmów poprawne urównoleglenie może być w ogóle niemożliwe. Niekiedy jednak algorytm urównoleglania potrafi poradzić sobie z błędami segmentacji Urównoleglanie tekstów dwujęzycznych Definicje Definicja tekstu źródłowego i tekstu docelowego W niniejszej pracy używam określeń tekst źródłowy oraz tekst docelowy. Można się domyślać, że oznaczają one odpowiednio tekst i jego tłumaczenie, jednak jest to czysto umowne chodzi po prostu o pierwszy tekst i drugi tekst które mają zostać poddane urównolegleniu, niezależnie od tego, który jest tłumaczeniem którego, albo czy w ogóle są bezpośrednio wzajemnymi tłumaczeniami. Tekst źródłowy oznaczam przez S, a tekst docelowy przez T Definicja segmentu źródłowego i segmentu docelowego Analogicznie jak w przypadku tekstów źródłowego i docelowego, segmentem źródłowym nazywam segment pochodzący z tekstu źródłowego, a segmentem docelowym segment pochodzący z tekstu docelowego. Segmenty źródłowe oznaczam literą s, a segmenty docelowe literą t. 11

12 Definicja dopasowania Mianem dopasowania określam parę składającą się z listy segmentów źródłowych i odpowiadającej jej listy segmentów docelowych. Trzymając się przyjętych oznaczeń, jeśli a jest dopasowaniem, to: a= s i, s i 1,..., s i e 1, t j,t j 1,...,t j f Definicja kategorii dopasowania Kategorią dopasowania jest para liczb e i f, które określają odpowiednio ilość segmentów źródłowych i ilość segmentów docelowych biorących udział w dopasowaniu. Kategorię dopasowania oznaczam następująco: c= e f. Na przykład 2 1, czytane jako dwa do jeden, oznacza kategorię dopasowania dwóch segmentów źródłowych do jednego segmentu docelowego Definicja urównoleglenia W niniejszej pracy mianem urównoleglenia tekstów źródłowego i docelowego określam listę dopasowań obejmującą cały tekst źródłowy i docelowy, albo pewien fragment tych tekstów. Dodatkowo segmenty tekstów źródłowego i docelowego nie mogą być zamienione kolejnością i nie mogą być w obrębie jednego dopasowania pominięte. Formalnie można to zapisać w następujący sposób. A= a1, a2,..., ar Niech e1 f 1, e2 f 2,..., er f r oznacza urównoleglenie, niech będą kategoriami dopasowań tego urównoleglenia, niech S=s 1 s 2... sn oznacza tekst źródłowy, niech T =t 1 t 2... t m oznacza tekst docelowy. Niech dopasowanie ai składa się z następujących segmentów źródłowych i docelowych: ai= s k, s k 1,..., s k e, t l,t l 1,..., s t f. Wówczas zachodzi k i 1 k i ei, l i 1 l i f i i i i i i i l i r dla i=1,2,..., r 1, k 1 1, l 1 1, k r er n, l r f r m oraz r ei n, f i m. i =1 i = Definicja procesu urównoleglania tekstów dwujęzycznych Urównloleglanie tekstów dwujęzycznych, czasem zwane dopasowywaniem tekstów dwujęzycznych, jest procesem znajdywania odpowiadających sobie segmentów w tekstach będących wzajemnymi tłumaczeniami. Wynikiem tego procesu jest urównoleglenie, czyli lista dopasowań. 12

13 Definicja korpusu równoległego Korpus równoległy to zbiór tekstów wybranych na podstawie określonych kryteriów, z których każdy został przetłumaczony na jeden lub więcej języków Poziomy szczegółowości urównoleglania tekstów dwujęzycznych Teksty można urównoleglać na różnych poziomach szczegółowości, w zależności od zastosowań tworzonego korpusu równoległego. Do uzyskania określonego poziomu szczegółowości stosuje się też różne metody urównoleglania. Omówione w tej pracy algorytmy zostały stworzone z myślą o urównoleglaniu tekstów dwujęzycznych na poziomie zdania. Mogą być także z powodzeniem stosowane do urównoleglania na poziomach bardziej ogólnych, takich jak akapity czy rozdziały, ale nie nadają się do urównoleglania na poziomach bardziej szczegółowych takich jak frazy czy słowa. Wynika to z faktu że w przedstawionych w tej pracy algorytmach dopasowane są do siebie kolejne segmenty, a nie jest obsługiwany przypadek zamiany ich kolejności. Jednak odpowiadające sobie słowa bardzo często występują w innej kolejności w zdaniu źródłowym i jego tłumaczeniu po prostu zdania w różnych językach mają różny szyk. Jedyne, co w takim wypadku któryś z przedstawionych w niniejszej pracy algorytmów potrafi zrobić, to dopasować kilka segmentów źródłowych do kilku segmentów docelowych, ale w przypadku urównoleglania na poziomie słów jest to niezadowalające Problemy przy urównoleglaniu tekstów dwujęzycznych Wydawać by się mogło że problem urównoleglania jest łatwy. W końcu najczęściej 3 tłumaczy się jedno zdanie tekstu źródłowego na jedno zdanie tekstu docelowego wystarczy zatem zastosować trywialny algorytm dopasowujący jeden do jednego. Niestety taki algorytm nie sprawdzi się, jeśli wystąpi choć jedno dopasowanie należące do innej kategorii wtedy bowiem wszystkie dopasowania występujące po nim będą nieprawidłowe4. Występowanie innych dopasowań niż jeden do jednego jest spowodowane wieloma czynnikami takimi jak: swobodne tłumaczenie wynikające ze specyfiki danego języka, pominięcie segmentu wskutek pomyłki tłumacza, błąd segmentacji, różnica w tekstach źródłowym i docelowym5 itd. Konieczne jest zatem używanie algorytmów które radzą sobie w przypadku 3 Jak podają źródła, w około 90% przypadków występuje urównoleglenie jeden do jednego. 4 W przybliżeniu szansa poprawnego urównoleglenia całych dokumentów przy zastosowaniu powyższego trywialnego algorytmu jest równa pn,gdzie p oznacza prawdopodobieństwo wystąpienia dopasowania 1 1, a n oznacza liczbę segmentów w obu tekstach. 5 Na przykład tekst źródłowy mógł zostać zaktualizowany po przetłumaczeniu, a więc tekst docelowy stał się nieaktualny. 13

14 występowania innych kategorii dopasowań niż jeden do jednego Miary jakości urównoleglania tekstów dwujęzycznych Żeby dokładnie zmierzyć jakość urównoleglenia danych tekstów trzeba mieć do dyspozycji urównoleglenie referencyjne tych samych tekstów, najczęściej wykonane przez człowieka. Niech A= a1, a2,..., ar będzie ocenianym urównolegleniem. Niech B= b 1, b2,..., bq będzie urównolegleniem referencyjnym. Niech A B oznacza część wspólną urównolegleń A i B, czyli urównoleglenie zawierające dopasowania należące zarówno do A, jak i do B. Niech A oznacza ilość dopasowań w urównolegleniu, czyli rozmiar listy jego dopasowań. Poniżej przedstawię najszerzej stosowane miary jakości urównoleglenia, a mianowicie dokładność i kompletność Dokładność Dokładność (ang. precision) określa ilość poprawnych dopasowań w stosunku do wszystkich dopasowań ocenianego urównoleglenia. Stosując powyższe oznaczenia można to zapisać następująco: p= A B. A Kompletność Kompletność (ang. recall) określa ilość poprawnych dopasowań w stosunku do wszystkich dopasowań urównoleglenia referencyjnego. Stosując powyższe oznaczenia można to zapisać następująco: A B. B r= Zastosowania dopasowywania tekstów dwujęzycznych Powstały w wyniku urównoleglania korpus równoległy dopasowany na poziomie zdania ma wiele zastosowań. Może być używany bezpośrednio jako pamięć tłumaczeń w systemie tłumaczenia przez analogię. W ten sposób został on zastosowany w systemie hetman6. Urównoleglanie tekstów dwujęzycznych na poziomie zdania jest pierwszym krokiem do urównoleglania na poziomie wyrazu, utworzenia modelu tłumaczenia, czyli słownika probabilistycznego. Model tłumaczenia jest jednym ze składników niezbędnych do tłumaczenia 6 System hetman to system zarządzania pamięcią tłumaczeń. Został on szerzej opisany w rozdziale 4. 14

15 statystycznego7. Korpus równoległy dopasowany na poziomie zdania może być też przydatny przy tworzeniu słowników pozwala określić kontekst w jakim zdaniu określony wyraz tłumaczy się na inne zdanie. Więcej na temat zastosowań urównoleglania tekstów dwujęzycznych można znaleźć w książce Machine Translation: an Introductory Guide 8 7 Między innymi tłumaczeniem statystycznym zajmuje się system Exprimo. Jest to projekt zespołowy stworzony przez Jacka Gintrowicza, Wojtka Misiurkę, Monikę Rosińską, Michała Szymańskiego i mnie. Został w nim wykorzystany program do urównoleglania który powstał jako część niniejszej pracy. 8 Patrz [Arnold i in., 1994]. 15

16 2. Algorytmy urównoleglania tekstów dwujęzycznych 2.1. Algorytm Gale'a i Churcha bazujący na długościach segmentów Informacje wstępne Ogólna charakterystyka algorytmów bazujących na długościach segmentów Algorytmy bazujące na długościach segmentów opierają się na prostym spostrzeżeniu, że dłuższe segmenty w języku źródłowym odpowiadają dłuższym segmentom w języku docelowym, a krótsze segmenty w języku źródłowym odpowiadają krótszym segmentom w języku docelowym. Każdemu potencjalnemu dopasowaniu przypisywane jest prawdopodobieństwo w oparciu o stosunek długości segmentów źródłowych i docelowych biorących w nim udział. Następnie wybiera się spośród nich najbardziej prawdopodobny ciąg dopasowań. Poniższy fragment pracy powstał na podstawie artykułu A program for Aligning Sentences in Bilingual Corpora, Williama A. Gale'a i Kennetha W. Churcha9. Jest to klasyczny10 algorytm urównoleglania tekstów dwujęzycznych bazujący wyłącznie na długościach segmentów Zalety algorytmów bazujących na długościach segmentów Niezależność od języków tekstów Zaletą algorytmów bazujących na długościach segmentów jest niezależność od języków. Nie potrzeba tutaj słowników, co najwyżej rozkładu długości zdań, ale ten da się uzyskać wprost z tekstów wejściowych. Dzięki temu można ten rodzaj algorytmów zastosować praktycznie do dowolnej pary języków, także należących do różnych rodzin Duża wydajność Kolejną zaletą algorytmów bazujących na długościach segmentów jest ich wydajność. Obliczenia potrzebne do uzyskania prawdopodobieństwa dopasowania nie są specjalnie złożone, nie ma też potrzeby przeszukiwania słowników. 9 Patrz [Gale, Church, 1991]. 10 Artykuł Gale'a i Churcha Powstał na początku lat 90, mniej więcej w tym samym czasie co drugi artykuł opisujący bardzo podobną metodę patrz [Brown, 1991], 11 Algorytmy bazujące na długościach segmentów zastosowano np. do urównoleglania korpusu angielsko, chińskiego patrz [Wu, 1994]. 16

17 Niewielkie wymagania pamięciowe Algorytmy bazujące na długościach segmentów zużywają także niewielką ilość pamięci w pamięci wystarczy przechowywać długości segmentów, nie trzeba przechowywać ich treści Wady algorytmów bazujących na długościach segmentów Niska dokładność urównoleglenia dla trudnych tekstów Wadą algorytmów bazujących na długościach segmentów jest niska dokładność dopasowania dla trudnych tekstów, np. jeśli tłumaczenie jest swobodne, jeśli w tekstach następują po sobie segmenty podobnej długości albo jeśli w którymś z tekstów występują pominięcia dużych fragmentów tekstu. Niska dokładność wynika z faktu, że do znalezienia urównoleglenia używana jest tylko niewielka część informacji leksykalnej zawartej w segmentach Sposób działania algorytmu Szkielet algorytmu urównoleglania Wyszukiwane jest urównoleglenie, które jako całość, ma największe prawdopodobieństwo, czyli którego iloczyn prawdopodobieństw kolejnych dopasowań jest najwyższy12. Algorytm opiera się na programowaniu dynamicznym13, a sposób jego działania można opisać za pomocą równania rekurencyjnego14. Niech S będzie tekstem źródłowym, a T tekstem docelowym. Niech s 1, s 2,..., s n będą segmentami tekstu źródłowego, a t 1, t 2,..., t m segmentami tekstu docelowego. Niech C={c1, c2,...,c r } będzie zbiorem kategorii dopasowań, gdzie ci = ei f i jest kategorią dopasowania dopasowującą ei segmentów źródłowych do f i segmentów docelowych. Przykładowo w przypadku mojej implementacji rozważane są domyślnie następujące kategorie dopasowań: C={ 1 0, 0 1, 1 1, 2 1, 1 2, 2 2 }, co oznacza na przykład, że jednemu segmentowi źródłowemu może odpowiadać zero 1 0, jeden 1 1 lub dwa 1 2 segmenty docelowe. Występuje też dopasowanie 2 2, kiedy kolejne zdania są wzajemnie 12 Można tu znaleźć analogię do algorytmu Viterbiego związanego z niejawnymi modelami Markowa, ale analogia ta wykracza poza zakres niniejszej pracy. Więcej informacji dotyczących niejawnych modeli Markowa można znaleźć w [Rabiner, 1989]. 13 Programowanie dynamiczne jest strategią projektowania algorytmów polegającą, podobnie jak w strategii dziel i zwyciężaj, na podziale rozwiązywanego problemu na podproblemy. Poprzez odpowiednie złożenie rozwiązań podproblemów uzyskuje się rozwiązanie głównego problemu. Programowanie dynamiczne stosuje się, gdy podproblemy nie są niezależne, tzn. gdy podproblemy mają wspólne podproblemy. W programowaniu dynamicznym zapamiętuje się wszystkie potrzebne rozwiązania podproblemów, by nie musieć ich rozwiązywać ponownie. Patrz [Cormen i in., 2001], rozdział Poniższe oznaczenia różnią się od używanych w artykule [Gale, Church, 1991] i stanowią ich uogólnienie, tak żeby lepiej pasowały do dalszej części pracy w szczególności do opisu algorytmu Moore'a. 17

18 wymieszane lub zamienione. Następnie, niech p x, y,e,f będzie funkcją określającą prawdopodobieństwo dopasowania segmentów s x, s x 1,..., s x e 1 15 do segmentów t y,t y 1,...,t y f 1. Niech P x, y będzie maksymalnym prawdopodobieństwem dopasowania segmentów s 1... s x do segmentów t 1... t y. P x, y jest obliczane rekurencyjnie poprzez maksymalizację po wszystkich kategoriach dopasowania. Warunek początkowy: P 0,0 =1 Definicja rekurencyjna gdy x 0 y 0 dla x 0, y 0, x n, y m : P x, y = max e f C : x e 0, y f 0 {P x e, y f p x e 1, y f 1, e, f } Prawdopodobieństwo szukanego, najlepszego dopasowania dla całych tekstów S i T wynosi P n, m. Żeby uzyskać samo urównoleglenie trzeba dodatkowo rekurencyjnie obliczać wartość Q x, y, określającą najbardziej prawdopodobną kategorię dopasowania na pozycji x, y : Q 0,0 =nieokreślony Q x, y = argmax e f C : x e 0, y f 0 {P x e, y f p x e 1, y f 1, e, f }. Następnie za pomocą techniki zwanej backtracking można uzyskać szukaną listę dopasowań A= a1,a2,..., au, czyli właściwe urównoleglenie. Najpierw definiuje się pomocniczą listę pozycji w tekstach D= d0, d1, d2,..., d u : d 0= n, m d k = x e, y f, gdzie x, y =d k 1, e f =Q x, y Oblicza się d k dopóki x e 0 y f 0. Dla ostatniego k spełniającego ten warunek przyjmuje się, że u=k. Następnie oblicza się urównoleglenie: ai= s x, s x 1,..., s x e 1, t y, t y 1,...,t y f 1, gdzie e f =Q x, y, a x, y =d u i 1, i=1,2,... u. 15 Gdy gdy e=0 to nie ma segmentów źródłowych w dopasowaniu; podobnie jest w przypadku segmentów docelowych f =0. 18

19 Funkcja prawdopodobieństwa p16 Funkcja p x, y,e,f s x, s x 1,..., s x e 1 segmentów jest funkcją określającą prawdopodobieństwo dopasowania do segmentów x 1, y 1, x e 1 n, y f 1 m, e f C. t y,t y 1,...,t y f 1 Do obliczenia przy założeniach że jej wartości trzeba wprowadzić kilka dodatkowych oznaczeń Miara długości segmentu Miara długości segmentu s jest oznaczona jako l s. W algorytmie Gale'a i Church'a długość segmentu mierzona jest w znakach, ale nie jest to jedyny sposób 17. Suma długości wszystkich branych pod uwagę w danym dopasowaniu segmentów źródłowych jest oznaczana jako ls. x e 1 l s= k =x l s k Analogicznie postępuję się z sumą długości segmentów docelowych która oznacza się jako lt Wartość funkcji p Wartość funkcji p jest wyliczana z następującego wzoru: p x, y,e,f =P e f. Przy założeniach, że e f C, P e f oznacza prawdopodobieństwo wystąpienia kategorii dopasowania e f, natomiast zależy od stosunku sumy długości segmentów źródłowych i docelowych. Zakłada się że każdy znak w tekście źródłowym generuje losową ilość znaków w tekście docelowym, że te zdarzenia są od siebie niezależne i że zmienne te mają identyczny rozkład normalny. Model probabilistyczny wyznaczają parametry: wartość oczekiwana, określająca spodziewaną ilość znaków w tekście docelowym na jeden znak tekstu źródłowego oraz wariancja ilości znaków tekstu docelowego przypadającą na znak tekstu źródłowego 2. Żeby rozkład był standardowym rozkładem normalnym, czyli miał średnią równą 0 a wariancje równą 1, przyjmuję się poniższą definicje. = l t l s l 2 s 16 W artykule [Gale, Church, 1991] definiowana jest miara dystansu, określona jako log p, gdzie zdedniowaną tutaj funkcją prawdopodobieństwa. 17 Na przykład w algorytmie Browna długość segmentów liczona jest w słowach. Patrz [Brown, 1991]. 19 p jest

20 Parametry rozkładu normalnego Parametry i 2 są wyznaczane przez autorów empirycznie na podstawie testowego korpusu. Wartość oczekiwana jest stosunkiem długości tekstu docelowego do długości tekstu źródłowego. = l T l S Wariancje wylicza się przy założeniu że 2, czyli kwadrat różnicy długości segmentów źródłowych i docelowych w dopasowaniu, rośnie proporcjonalnie do długości segmentów źródłowych. Stałą przyrostu wyznacza się na podstawie regresji liniowej. Ostatecznie jednak w samym algorytmie nie wyznacza się parametrów dla tekstów wejściowych, przyjmując wartości uśrednione, wyliczone ręcznie z korpusu testowego, niezależne od języków. Autorzy algorytmu argumentują że i tak ich dokładne wartości nie mają wielkiego wpływu na wynik urównoleglania. Przyjmuje się zatem uśrednione wartości uzyskane z korpusu testowego to: =1, a 2 =6, Obliczanie wartości funkcji p Aby obliczyć wartość funkcji p należy dokonać kilku przekształceń: P e f =P e f P e f t Gdzie t jest pewną stałą którą możemy pominąć gdyż jest identyczna dla wszystkich porównywanych dopasowań. P e f jest pobierane z Tabeli 1, utworzonej na podstawie danych empirycznych uzyskanych z testowego korpusu. Kategoria dopasowania e f Prawdopodobieństwo wystąpienia kategorii dopasowania P e f 1 1 0, albo 0 1 0, albo 1 2 0, ,011 Tabela 1: Prawdopodobieństwa występowania kategorii dopasowań18 Natomiast drugi człon można obliczyć jako: 18 Niniejsza tabela pochodzi z artykułu [Gale, Church, 1991]. 20

21 P e f =2 1 P Gdzie P jest prawdopodobieństwem że pewna losowa zmienna z o standardowym rozkładzie normalnym będzie miała wartość co najmniej. 1 P = e 2 z 2 2 dz. Reasumując w algorytmie wyliczane jest bezpośrednio na podstawie sum długości segmentów tekstu źródłowego i docelowego l s, l t oraz na podstawie parametrów, 2. Następnie oblicza się P 19. Dalej, z tabeli odczytywana jest wartość P e f. Z pomnożenia tych czynników obliczana jest ostatecznie wartość funkcji prawdopodobieństwa p Wybieranie najlepszych dopasowań Omawiana metoda urównoleglania ma bardzo przydatną właściwość, mianowicie prawdopodobieństwo dopasowania czyli wartość funkcji p pozwala ocenić jakość dopasowań, i odrzucić najmniej prawdopodobne. W ten sposób odrzucając np. 20% najmniej prawdopodobnych dopasowań da się uzyskać znacznie mniej błędów urównoleglenia, a tylko nieznacznie zmniejszone wynikowe urównoleglenie Pseudokod algorytmu Wejście: S[1..n] T[1..m] # segmenty tekstu źródłowego # segmenty tekstu docelowego Wyjście: A[1..u] # urównoleglenie lista dopasowań Stałe: C[1..r] # kategorie dopasowań, struktury z polami e,f Algorytm: # Inicjalizacja P[0..n, 0..m] # tabela prawdopodobieństw Q[0..n, 0..m] # tabela kategorii dopasowań # Główny algorytm P[0, 0] := 1 Q[0, 0] := null x := 0 19 Istnieje wiele sposobów na przybliżenie tej wartości przez komputer, autorzy stosują przybliżenie na podstawie [Abramowitz, Stegun, 1964]. 21

22 y := 1 while x <= n while y <= m maxp := -1 maxc.e := 0 maxc.f := 0 for i := 1 to r e := C[i].e f := C[i].f if (x e >= 0) AND (y f >= 0) do p := P[x e, y f] * p(x e + 1, y f + 1, e, f) if (p > maxp) do maxp := p maxc.e := e maxc.f := f P[x, y] := maxp Q[x, y] := maxc y := y + 1 y := 0 X := x + 1 # Backtracking tworzenie ciągu dopasowań D[0..n+m] # tabela pozycji w tekstach, struktury z polami x,y; # wielkość tej tabeli nie przekracza n+m i := 0 x := n y := m while (x > 0) OR (y > 0) do D[i].x := x D[i].y := y c := Q[x, y] x := x c.e y := y c.f i := i + 1 u := i - 1 A[1..u] # urównoleglenie - ciąg dopasowań; każde dopasowanie # to para S: lista segmentów źródłowych # i T: lista segmentów docelowych for i := 1 to u x := D[u i + 1].x y := D[u i + 1].y e := Q[x, y].e f := Q[x, y].f A[i].S[1..e] # Inicjalizacja list segmentów A[i].T[1..f] for k := 1 to e A[i].S[k] := S[x + k 1] for k := 1 to f A[i].T[k] := T[y + k 1] Złożoność algorytmu W przybliżeniu złożoność czasowa20 algorytmu wynosi: 20 Mowa tutaj o pesymistycznym przypadku stąd notacja O. Więcej szczegółów na temat badania złożoności i notacji asymptotycznych można znaleźć w [Cormen i in., 2001], rozdział 2. 22

23 T n, m =O n m r, gdzie n,m są ilościami segmentów w tekstach źródłowym i docelowym, a r ilością kategorii dopasowań. Wynika to z faktu że trzeba obliczać prawdopodobieństwo dopasowania (wartość funkcji p) każdego segmentu źródłowego z każdym segmentem docelowym dla każdej kategorii dopasowania, co oznacza n m r operacji. Inaczej to ujmując, trzeba wypełnić całą tabelę P i, j, i=0..n, j=0..m, na każdej jej pozycji rozważając r dopasowań. Ilość kategorii dopasowań r jest niewielką21 stałą dlatego można ją pominąć we wzorze, i przyjąć następującą złożoność czasową: T n, m =O n m Podobnie wygląda złożoność pamięciowa, ponieważ dominującym czynnikiem jest tutaj wielkość tabeli P. Dla dużych tekstów jest to złożoność nieakceptowalna. Żeby ją poprawić stosuje się urównoleglanie wieloetapowe na różnych poziomach szczegółowości, na początku urównoleglając np. na poziomie paragrafu, a potem dopiero zdania. Zazwyczaj dopasowanie na wyższych poziomach składa się wyłącznie z dopasowań kategorii 1 1, więc do jego uzyskania wystarczy prosty algorytm urównoleglania jeden do jednego. Jeśli jednak liczby segmentów źródłowych i docelowych na wyższym poziomie są różne można zastosować zwyczajny algorytm urównoleglania, albo dla większej pewności dokonać ręcznego urównoleglenia ze względu na to że pomyłka np. na poziomie paragrafu spowoduje od razu dużo błędów na poziomie zdania Jakość urównoleglenia Autorzy algorytmu piszą że ich metoda dla dosłownie przetłumaczonego korpusu raportów ekonomicznych złożonych przez Union Bank of Switzerland (UBS) dla języków angielskiego, francuskiego i niemieckiego daje średnio 95,8% poprawnych dopasowań. Po odrzuceniu 20% najmniej prawdopodobnych dopasowań uzyskano 99,3% poprawnych dopasowań spośród wszystkich nieodrzuconych dopasowań. Bardziej wiarygodne wydają się prace porównawcze Alexandra Rosena22 dla korpusów czesko angielskiego i czesko francuskiego, Grzegorza Krynickiego23 dla korpusu polsko angielskiego oraz Anila Kumara Singh-a i Samara Husaina24 dla korpusu w języku angielskim i języku hindi. Na ich podstawie można wysnuć wniosek że urównoleglanie algorytmem Gale'a i Dla mojej implementacji r =6. Patrz [Rosen, 2005]. Patrz [Krynicki, 2006]. Patrz [Singh, Husain, 2005]. 23

24 Churcha, daje średnio dokładność25 rzędu 87 %, a kompletność rzędu 82% Algorytm Moore'a bazujący na treści segmentów Informacje wstępne Ogólna charakterystyka algorytmu Moore'a Algorytmy bazujące na treści segmentów korzystają ze słowników. Każdemu potencjalnemu dopasowaniu przypisywane jest prawdopodobieństwo, że segmenty docelowe są tłumaczeniami segmentów źródłowych. W algorytmie Moore'a wylicza się prawdopodobieństwo tłumaczenia korzystając z metod statystycznego tłumaczenia automatycznego26. Dodatkowo, nowatorskim pomysłem jest automatyczne generowanie słownika probabilistycznego27 na podstawie tekstów wejściowych, dzięki czemu nie potrzebuje on zewnętrznych słowników (choć mogą one w niektórych wypadkach poprawić jakość urównoleglenia). Ten fragment pracy powstał głównie na podstawie artykułu Fast and Accurate Sentence Alignment of Bilingual Corpora, Roberta C. Moore'a28 oraz implementacji29 w Perlu stworzonej przez autora algorytmu. Idee zawarte w tym artykule zostały rozwinięte w dalszych artykułach Moore'a Zalety algorytmów bazujących na treści segmentów Dokładność urównoleglania Algorytmy te, dzięki użyciu całej informacji lingwistycznej zawartej w tekstach, dają dużą dokładność urównoleglania, zbliżoną do jakości urównoleglania przez człowieka. 25 Miary jakości dokładność i kompletność zostały zdefiniowane w rozdziale Statystyczne tłumaczenia automatyczne to rodzaj tłumaczenia automatycznego w którym tłumaczenie jest dokonywane na podstawie zbudowanych z dużego korpusu równoległego modeli statystycznych, takich jak model translacji, modele języka i inne. Patrz [Knight, 1999]. 27 Słownik probabilistyczny to rodzaj słownika w którym dla każdego słowa podana jest lista jego tłumaczeń wraz z prawdopodobieństwami tłumaczenia. Patrz rozdział Patrz [Moore, 2002]. 29 Patrz [Moore implementacja]. 30 Patrz [Moore, 2004], [Moore, 2005]. 24

25 Wady algorytmów bazujących na treści segmentów Zależność od języka Tradycyjnie do wad tego typu algorytmów można zaliczyć zależność od słowników a więc i języków tekstów. Algorytm Moore'a jednak radzi sobie z tym problemem przez generowanie słownika z tekstów źródłowych. Dla małych tekstów wejściowych może to jednak nie działać zadowalająco Mniejsza wydajność Kolejną wadą algorytmów bazujących na treści segmentów jest ich wydajność. Obliczenia potrzebne do uzyskania prawdopodobieństwa dopasowania są dość złożone, ponieważ wymagają przeszukiwania słowników. Algorytm Moore'a w celu optymalizacji stosuje urównoleglanie dwuprzebiegowe: w pierwszym przebiegu dokonuje się urównoleglania algorytmem bazującym na długościach segmentów, w drugim przebiegu natomiast dokonuje się właściwego urównoleglania, biorąc jednak pod uwagę wyłącznie dopasowania, które w pierwszym przebiegu uzyskały znaczące prawdopodobieństwo. Dodatkowo stosuje się technikę zawężania przeszukiwanej przestrzeni rozwiązań nazywaną przez Moore'a beam search, opisaną na końcu tego rozdziału Duże wymagania pamięciowe Całe segmenty tekstu źródłowego i docelowego oraz słowniki muszą być przechowywane w pamięci, co razem może powodować znaczne jej zużycie Sposób działania algorytmu Fazy algorytmu Moore'a Algorytm Moore'a działa w kilku dość złożonych fazach. Poniżej naszkicuję każdą z nich. 1. Stosowany jest algorytm urównoleglania bazujący na długości segmentów. Może być to na przykład opisany wcześniej algorytm Gale'a i Churcha. W algorytmie Moore'a zastosowany jest, zmodyfikowany w celu uproszczenia, algorytm Browna Z uzyskanego w poprzedniej fazie urównoleglenia są wybierane dopasowania należące do kategorii dopasowań 1 1, z których wybierane są dopasowania o prawdopodobieństwie powyżej pewnego progu32, albo jest wybierana pewna dana część33. Celem jest uzyskanie stosunkowo dobrze urównoleglonego małego korpusu tekstu. 31 Patrz [Brown, 1991]. 32 W implementacji Moore'a próg ten wynosi 99%. 33 W mojej implementacji częścią tą jest 80%. 25

26 3. Na podstawie uzyskanego korpusu równoległego trenowane są statystyczne modele języka dla obydwu języków oraz statystyczny model translacji z języka źródłowego na język docelowy. 4. Dokonywane jest ostateczne urównoleglenie, podczas którego przy obliczaniu prawdopodobieństwa dopasowania, poza stosunkiem długości segmentów, bierze się pod uwagę także prawdopodobieństwo, że zdania docelowe są tłumaczeniami zdań źródłowych, obliczane za pomocą metod zaczerpniętych ze statystycznego tłumaczenia automatycznego i przy wykorzystaniu wytrenowanych wcześniej modeli Faza 1. Urównoleglanie na podstawie długości segmentów W pierwszej fazie urównoleglania stosowany jest algorytm urównoleglania bazujący na długości segmentów. Schemat jego działania jest identyczny jak w algorytmie Gale'a i Churcha opisanym wcześniej. Znaczące różnice polegają jedynie na sposobie liczenia wartości funkcji prawdopodobieństwa dopasowania p x, y,e,f. Po pierwsze, przyjmuje się inną miarę długości segmentu liczoną w słowach a nie w znakach. Po drugie przyjmuje się założenie że stosunek długości segmentów ma rozkład Poissona34, a nie rozkład normalny, jak w algorytmie Gale'a i Churcha. Nie powoduje to znacznych różnic w wynikach urównoleglania, algorytm jest jednak szybszy i bardziej intuicyjny Miara długości segmentu Miarą długości segmentu s jest oznaczona jako l s. W algorytmie Moore'a długość segmentu mierzona jest w słowach. Żeby ją obliczyć niezbędna jest tokenizacja35. W tym celu można posłużyć się splitterem36 z regułami podziału na poziomie słowa. Dokładna tokenizacja jest ważna w dalszych fazach takich jak trenowanie modelu czy obliczanie prawdopodobieństw tłumaczenia. W implementacji oryginalnej37 słowami są tylko ciągi składające się z liter i cyfr, a wszystkie pozostałe znaki są traktowane jako znaki podziału, a ich ciągi nie są traktowane jako słowa. Podobnie jak w opisie algorytmu Gale'a i Chucha, sumę długości segmentów źródłowych biorących udział w rozpatrywanym dopasowaniu oznaczam jako l s, a sumę długości segmentów docelowych jako l t. 34 Rozkład Poissona to rozkład dyskretny przedstawiający liczbę wystąpień zjawiska w danym czasie, w określonej liczbie prób, jeśli wystąpienia te są niezależne od siebie. 35 Pisząc tokenizacja mam na myśli podział tekstu na słowa. 36 Można posłużyć się na przykład splitterem opisanym w rozdziale Patrz [Moore implementacja]. 26

27 Rozkłady długości segmentów Żeby obliczyć prawdopodobieństwo dopasowania potrzebne są rozkłady długości segmentów w tekście źródłowym i docelowym38 oraz stosunek średnich długości segmentów źródłowych i docelowych. Długości segmentów liczone są za pomocą zdefiniowanej wcześniej miary. Prawdopodobieństwo wystąpienia segmentu źródłowego s o długości k =l s oznaczam jako r s k. Rozkład prawdopodobieństwa źródłowego oblicza się dzieląc ilość segmentów o danej długości przez łączną ilość segmentów w tym tekście. Jako R s x, e oznaczam prawdopodobieństwo wystąpienia segmentów źródłowych s x, s x 1,..., s x e 1 o długościach l s x, l s x 1,..., l s x e 1, liczone jako iloczyn prawdopodobieństw wystąpienia każdego z segmentów o określonej długości: R s x, e =r s l s x r s l s x 1... r s l s x e 1. Analogicznie prawdopodobieństwo wystąpienia segmentu docelowego t o długości l=l t oznaczam r t l, jako a prawdopodobieństwo wystąpienia segmentów docelowych t y,t y 1,...,t y f 1 o długościach l t y, l t y 1,..., l t y f 1 oznaczam jako Rt y, f. Średnią długość segmentu w tekście źródłowym L s liczy się następująco: n l si. L s= i=1 n Średnią długość segmentu w tekście docelowym Lt liczy się analogicznie Obliczanie wartości funkcji p Wartość funkcji p x, y,e,f jest wyliczana następująco. Jeśli e=0 to prawdopodobieństwo oblicza się jako iloczyn prawdopodobieństwa wystąpienia segmentów docelowych t y,t y 1,...,t y f 1 o określonej długości Rt y, f i prawdopodobieństwa wystąpienia kategorii dopasowania P 0 f : p x, y,0,f =Rt y,f P 0 f. Analogicznie postępuje się gdy f =0. W pozostałych zaś przypadkach prawdopodobieństwo jest iloczynem prawdopodobieństwa wystąpienia długości segmentów 38 Rozkłady długości segmentów można by nazwać modelami długości segmentów analogicznie do modeli języków występujących w dalszej części rozdziału. 27

28 źródłowych i prawdopodobieństwa łącznej długości zdań docelowych pod warunkiem łącznej długości zdań źródłowych P l t l s oraz prawdopodobieństwa wystąpienia kategorii dopasowania P e f : p x, y,e,f =Rs x, e P l t l s P e f. Idea obliczania P l t l s polega na tym, że każde słowo w języku źródłowym tłumaczy się na pewną liczbę słów w języku docelowym zgodnie z rozkładem Poissona. Zatem l t ma rozkład Poissona, którego wartością oczekiwaną jest iloczyn łącznej długości segmentów źródłowych w tym dopasowaniu l s i stosunku średniej długości segmentu docelowego Lt do średniej długości segmentu źródłowego L s : =l s Lt Ls Zatem zgodnie z rozkładem Poissona P l t l s wynosi: lt e P l t l s =. l t! Prawdopodobieństwo wystąpienia kategorii dopasowań P e f jest pobierane z Tabeli 1. zdefiniowanej w opisie algorytmu Gale'a i Churcha, utworzonej na podstawie danych empirycznych uzyskanych z testowego korpusu Faza 2. Filtrowanie najlepszych dopasowań Najpierw spośród dopasowanych segmentów wybierane są tylko te należące do kategorii 1 1. Następnie spośród nich wybierane są najlepsze dopasowania na podstawie prawdopodobieństwa ich wystąpienia (czyli wartości funkcji p dla tych dopasowań, dlatego musi być ona podczas urównoleglania przechowywana). Można wybrać dopasowania z prawdopodobieństwem powyżej jakiegoś progu, albo wybrać pewną część najlepszych dopasowań zwykle 80% najbardziej prawdopodobnych dopasowań powstałych w wyniku urównoleglania bazującego na długości segmentu jest poprawnych Faza 3. Trenowanie modeli statystycznych Do obliczania prawdopodobieństw tłumaczenia w ostatniej fazie algorytmu Moore'a stosuje się metody znane z automatycznego tłumaczenia statycznego. Chociaż można by zastosować najbardziej zaawansowaną postać tych metod, w przykładowej implementacji Moore'a (a także w mojej implementacji) zastosowano ich uproszczoną wersję. Motywuje się to wydajnością i prostotą 28

29 kodu, ale w przyszłości można ten fragment algorytmu rozbudować. W tej fazie tworzy się dwa rodzaje modeli: modele języka osobne dla tekstu źródłowego i docelowego oraz model translacji z języka źródłowego na język docelowy Modele języka Modelem języka w algorytmie Moore'a jest prosty model prawdopodobieństw występowania unigramów39, czyli słów. Przez pls v oznaczam prawdopodobieństwo wystąpienia słowa źródłowego v, a p lt w prawdopodobieństwo wystąpienia słowa docelowego w. Model języka źródłowego pozwala na obliczenie prawdopodobieństwa wystąpienia segmentu źródłowego s = v 1, v 2,..., v k jako iloczyn prawdopodobieństw słów w nim występujących, gdzie v i oznaczają słowa a k =l s : k P ls s = pls v i. i=1 Analogicznie, model języka docelowego pozwala na obliczenie prawdopodobieństwa P lt t segmentu docelowego t = w 1,w 2,..., w l. Modele języka źródłowego i docelowego buduje się licząc częstotliwości występowania danego słowa w tekście odpowiednio źródłowym i docelowym Model translacji Model translacji, inaczej słownik probabilistyczny, pozwala określić prawdopodobieństwo, że dane słowo docelowe jest tłumaczeniem danego słowa źródłowego. W algorytmie Moore'a zastosowano znany z literatury model 1 IBM-a40 z pewnymi niewielkimi modyfikacjami Sposób działania modelu 1 IBM-a Generalnie w modelach IBM-a przyjmuje się że segment docelowy t jest generowany przez segment źródłowy s = v 1, v 2,..., v k w następujący sposób: najpierw wybierana jest długość segmentu docelowego l. Następnie dla każdej pozycji w zdaniu docelowym j=1, 2,..., l wybierane jest generujące je słowo z s (łącznie ze słowem pustym v0 ). Ostatecznie dla każdej pary składającej się z pozycji w segmencie docelowym j i generującego słowa z segmentu źródłowego v i wybierane jest słowo docelowe w j. W modelu 1 przyjmuje się, że wszystkie 39 Lepsze rezultaty dają modele bigramów w których liczy się prawdopodobieństwo wystąpienia danego słowa pod warunkiem że poprzednim słowem było dane słowo. Można budować modele n-gramowe, dla większych n, ale zajmują one coraz więcej miejsca w pamięci i są coraz mniej wydajne. 40 Patrz [Brown, 1993], [Knight, 1999]. 29

30 możliwe długości segmentu docelowego l, do pewnej górnej granicy, są jednakowo prawdopodobne i prawdopodobieństwo to wynosi. W algorytmie Moore'a pomija się jednak tą stałą, ponieważ długości segmentów są brane pod uwagę poprzez wyprowadzony wcześniej rozkład długości segmentów. Dalej, wybór każdego ze słów generujących w zdaniu źródłowym jest jednakowo prawdopodobny. Następnie prawdopodobieństwo pt w j v i wygenerowania słowa docelowego w j zależy wyłącznie od słowa źródłowego v i. Zatem prawdopodobieństwo wygenerowania segmentu t przez segment s wynosi: l k 1 P t t s = p t w j vi. l k 1 j=1 i= Trenowanie modelu translacji Model taki trenuje się (czyli estymuje nieznane parametry pt w j v i ) stosując algorytm typu EM41. Treningu takiego dokonuje się w iteracjach, przy czym wejściem do kolejnej iteracji jest model z poprzedniej iteracji. W algorytmie Moore'a do uzyskania pożądanego efektu przeprowadza się 4 iteracje. W zerowej iteracji przyjmuje się że prawdopodobieństwo tłumaczenia dowolnego słowa na dowolne wynosi 1. W każdej kolejnej iteracji dla każdej pary segmentów źródłowego i docelowego42 z korpusu treningowego dokonywana jest następująca procedura: Dla każdego słowa w j z segmentu docelowego liczona jest suma prawdopodobieństw w modelu z poprzedniej iteracji p to w j v i, że słowo to jest tłumaczeniem każdego z słów v i, i=0,1,2,..., k z segmentu źródłowego rozszerzonego o słowo puste v 0. Następnie prawdopodobieństwo tłumaczenia każdego ze słów v i, i=0, 1, 2,..., k z segmentu źródłowego na słowo docelowe wj w trenowanym modelu ptn w j v i jest powiększane o iloraz prawdopodobieństwa tego tłumaczenia w modelu z poprzedniej iteracji pto w j v i przez uzyskaną wcześniej sumę prawdopodobieństw. ptn w j v i = p to w j v i k pto w j vh. h=0 41 Algorytm EM (od ang. Expectation Maximization) jest algorytmem pozwalającym wyestymować najbardziej prawdopodobne wartości brakujących parametrów dla pewnych danych. Jest to algorytm iteracyjny i składaja się z dwóch kroków. W pierwszym kroku wyliczane jest prawdopodobieństwo dla wartości brakujących, a w drugim kroku maksymalizuje się prawdopodobieństwo tak, jak gdyby nie było wartości brakujących i otrzymuje się nowe wartości. Kroki te są powtarzane tak długo, aż zmiana parametrów będzie zaniedbywalnie mała. 42 Czyli dla każdego dopasowania. W praktyce do trenowania stosowane są tylko dopasowania należące do kategorii (1-1). 30

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Efektywność algorytmów

Efektywność algorytmów Efektywność algorytmów Algorytmika Algorytmika to dział informatyki zajmujący się poszukiwaniem, konstruowaniem i badaniem własności algorytmów, w kontekście ich przydatności do rozwiązywania problemów

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

Schemat programowania dynamicznego (ang. dynamic programming)

Schemat programowania dynamicznego (ang. dynamic programming) Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten

Bardziej szczegółowo

Układy stochastyczne

Układy stochastyczne Instytut Informatyki Uniwersytetu Śląskiego 21 stycznia 2009 Definicja Definicja Proces stochastyczny to funkcja losowa, czyli funkcja matematyczna, której wartości leżą w przestrzeni zdarzeń losowych.

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Lokalizacja Oprogramowania

Lokalizacja Oprogramowania mgr inż. Anton Smoliński anton.smolinski@zut.edu.pl Lokalizacja Oprogramowania 16/12/2016 Wykład 6 Internacjonalizacja, Testowanie, Tłumaczenie Maszynowe Agenda Internacjonalizacja Testowanie lokalizacji

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

WYRAŻENIA ALGEBRAICZNE

WYRAŻENIA ALGEBRAICZNE WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

( x) Równanie regresji liniowej ma postać. By obliczyć współczynniki a i b należy posłużyć się następującymi wzorami 1 : Gdzie:

( x) Równanie regresji liniowej ma postać. By obliczyć współczynniki a i b należy posłużyć się następującymi wzorami 1 : Gdzie: ma postać y = ax + b Równanie regresji liniowej By obliczyć współczynniki a i b należy posłużyć się następującymi wzorami 1 : xy b = a = b lub x Gdzie: xy = też a = x = ( b ) i to dane empiryczne, a ilość

Bardziej szczegółowo

Zad. 3: Układ równań liniowych

Zad. 3: Układ równań liniowych 1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformata Fouriera Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformacja Fouriera rozkłada funkcję okresową na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne

Bardziej szczegółowo

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów Rozdział : Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów W tym rozdziale omówione zostaną dwie najpopularniejsze metody estymacji parametrów w ekonometrycznych modelach nieliniowych,

Bardziej szczegółowo

Lekcja : Tablice + pętle

Lekcja : Tablice + pętle Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 7/15 Rachunek różnicowy Dobrym narzędziem do obliczania skończonych sum jest rachunek różnicowy. W rachunku tym odpowiednikiem operatora

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

Bioinformatyka. Ocena wiarygodności dopasowania sekwencji.

Bioinformatyka. Ocena wiarygodności dopasowania sekwencji. Bioinformatyka Ocena wiarygodności dopasowania sekwencji www.michalbereta.pl Załóżmy, że mamy dwie sekwencje, które chcemy dopasować i dodatkowo ocenić wiarygodność tego dopasowania. Interesujące nas pytanie

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

Bardziej szczegółowo

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo

Statystyka matematyczna dla leśników

Statystyka matematyczna dla leśników Statystyka matematyczna dla leśników Wydział Leśny Kierunek leśnictwo Studia Stacjonarne I Stopnia Rok akademicki 03/04 Wykład 5 Testy statystyczne Ogólne zasady testowania hipotez statystycznych, rodzaje

Bardziej szczegółowo

Rozkłady statystyk z próby

Rozkłady statystyk z próby Rozkłady statystyk z próby Rozkłady statystyk z próby Przypuśćmy, że wykonujemy serię doświadczeń polegających na 4 krotnym rzucie symetryczną kostką do gry, obserwując liczbę wyrzuconych oczek Nr kolejny

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

Bardziej szczegółowo

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 12a: Prawdopodobieństwo i algorytmy probabilistyczne http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Teoria prawdopodobieństwa

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Testowanie hipotez statystycznych

Testowanie hipotez statystycznych Agenda Instytut Matematyki Politechniki Łódzkiej 2 stycznia 2012 Agenda Agenda 1 Wprowadzenie Agenda 2 Hipoteza oraz błędy I i II rodzaju Hipoteza alternatywna Statystyka testowa Zbiór krytyczny Poziom

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

Algorytmika i pseudoprogramowanie Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k. Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy

Bardziej szczegółowo

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. Jarosław Wróblewski Matematyka dla Myślących, 008/09. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. 15 listopada 008 r. Uwaga: Przyjmujemy,

Bardziej szczegółowo

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,

Bardziej szczegółowo

Weryfikacja hipotez statystycznych

Weryfikacja hipotez statystycznych Weryfikacja hipotez statystycznych Hipoteza Test statystyczny Poziom istotności Testy jednostronne i dwustronne Testowanie równości wariancji test F-Fishera Testowanie równości wartości średnich test t-studenta

Bardziej szczegółowo

Testowanie hipotez statystycznych. Wnioskowanie statystyczne

Testowanie hipotez statystycznych. Wnioskowanie statystyczne Testowanie hipotez statystycznych Wnioskowanie statystyczne Hipoteza statystyczna to dowolne przypuszczenie co do rozkładu populacji generalnej (jego postaci funkcyjnej lub wartości parametrów). Hipotezy

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

Bardziej szczegółowo

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

Jeśli X jest przestrzenią o nieskończonej liczbie elementów: Logika rozmyta 2 Zbiór rozmyty może być formalnie zapisany na dwa sposoby w zależności od tego z jakim typem przestrzeni elementów mamy do czynienia: Jeśli X jest przestrzenią o skończonej liczbie elementów

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

7. Estymacja parametrów w modelu normalnym(14.04.2008) Pojęcie losowej próby prostej

7. Estymacja parametrów w modelu normalnym(14.04.2008) Pojęcie losowej próby prostej 7. Estymacja parametrów w modelu normalnym(14.04.2008) Pojęcie losowej próby prostej Definicja 1 n-elementowa losowa próba prosta nazywamy ciag n niezależnych zmiennych losowych o jednakowych rozkładach

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n ) SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,

Bardziej szczegółowo

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych. Ćwiczenia nr 2 metody połowienia, regula falsi i siecznych. Sformułowanie zagadnienia Niech będzie dane równanie postaci f (x) = 0, gdzie f jest pewną funkcją nieliniową (jeżeli f jest liniowa to zagadnienie

Bardziej szczegółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka. Wstęp teoretyczny Zmienne losowe Zmienne losowe

Bardziej szczegółowo

Systemy liczbowe używane w technice komputerowej

Systemy liczbowe używane w technice komputerowej Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.

Bardziej szczegółowo

Statystyka. Rozkład prawdopodobieństwa Testowanie hipotez. Wykład III ( )

Statystyka. Rozkład prawdopodobieństwa Testowanie hipotez. Wykład III ( ) Statystyka Rozkład prawdopodobieństwa Testowanie hipotez Wykład III (04.01.2016) Rozkład t-studenta Rozkład T jest rozkładem pomocniczym we wnioskowaniu statystycznym; stosuje się go wyznaczenia przedziału

Bardziej szczegółowo

INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Temat: Podstawowe pojęcia z logiki rozmytej Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Dr inż. Barbara Mrzygłód KISiM, WIMiIP, AGH mrzyglod@ agh.edu.pl 1 Wprowadzenie Sterowanie

Bardziej szczegółowo

Błędy przy testowaniu hipotez statystycznych. Decyzja H 0 jest prawdziwa H 0 jest faszywa

Błędy przy testowaniu hipotez statystycznych. Decyzja H 0 jest prawdziwa H 0 jest faszywa Weryfikacja hipotez statystycznych Hipotezą statystyczną nazywamy każde przypuszczenie dotyczące nieznanego rozkładu badanej cechy populacji, o prawdziwości lub fałszywości którego wnioskuje się na podstawie

Bardziej szczegółowo

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1 Weryfikacja hipotez statystycznych KG (CC) Statystyka 26 V 2009 1 / 1 Sformułowanie problemu Weryfikacja hipotez statystycznych jest drugą (po estymacji) metodą uogólniania wyników uzyskanych w próbie

Bardziej szczegółowo

Zadanie 1. Suma silni (11 pkt)

Zadanie 1. Suma silni (11 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję

Bardziej szczegółowo

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

KADD Metoda najmniejszych kwadratów funkcje nieliniowe Metoda najmn. kwadr. - funkcje nieliniowe Metoda najmniejszych kwadratów Funkcje nieliniowe Procedura z redukcją kroku iteracji Przykłady zastosowań Dopasowanie funkcji wykładniczej Dopasowanie funkcji

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

Bardziej szczegółowo

W rachunku prawdopodobieństwa wyróżniamy dwie zasadnicze grupy rozkładów zmiennych losowych:

W rachunku prawdopodobieństwa wyróżniamy dwie zasadnicze grupy rozkładów zmiennych losowych: W rachunku prawdopodobieństwa wyróżniamy dwie zasadnicze grupy rozkładów zmiennych losowych: Zmienne losowe skokowe (dyskretne) przyjmujące co najwyżej przeliczalnie wiele wartości Zmienne losowe ciągłe

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia 1. Liczby naturalne, podzielność, silnie, reszty z dzielenia kwadratów i sześcianów przez małe liczby, cechy podzielności przez 2, 4, 8, 5, 25, 125, 3, 9. 26 września 2009 r. Uwaga: Przyjmujemy, że 0 nie

Bardziej szczegółowo

Oprogramowanie typu CAT

Oprogramowanie typu CAT Oprogramowanie typu CAT (Computer Aided Translation) Informacje ogólne Copyright Jacek Scholz 2009 Wprowadzenie: narzędzia do wspomagania translacji Bazy pamięci tłumaczet umaczeń (Translation Memory)

Bardziej szczegółowo

Testowanie hipotez statystycznych.

Testowanie hipotez statystycznych. Bioinformatyka Wykład 9 Wrocław, 5 grudnia 2011 Temat. Test zgodności χ 2 Pearsona. Statystyka χ 2 Pearsona Rozpatrzmy ciąg niezależnych zmiennych losowych X 1,..., X n o jednakowym dyskretnym rozkładzie

Bardziej szczegółowo

Zadanie 1 Zakładając liniową relację między wydatkami na obuwie a dochodem oszacować MNK parametry modelu: y t. X 1 t. Tabela 1.

Zadanie 1 Zakładając liniową relację między wydatkami na obuwie a dochodem oszacować MNK parametry modelu: y t. X 1 t. Tabela 1. tel. 44 683 1 55 tel. kom. 64 566 811 e-mail: biuro@wszechwiedza.pl Zadanie 1 Zakładając liniową relację między wydatkami na obuwie a dochodem oszacować MNK parametry modelu: gdzie: y t X t y t = 1 X 1

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

Układy równań liniowych. Krzysztof Patan

Układy równań liniowych. Krzysztof Patan Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja Faza strategiczna określenie wymagań specyfikowanie projektowanie kodowanie implementacja testowanie produkt konserwacja Faza strategiczna Analiza Synteza Dokumentacja Instalacja Faza strategiczna (ang.

Bardziej szczegółowo

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n

Bardziej szczegółowo

Wykład 5 Dopasowywanie lokalne

Wykład 5 Dopasowywanie lokalne Wykład 5 Dopasowywanie lokalne Dopasowanie par (sekwencji) Dopasowanie globalne C A T W A L K C A T W A L K C O W A R D C X X O X W X A X R X D X Globalne dopasowanie Schemat punktowania (uproszczony)

Bardziej szczegółowo

RÓWNANIA NIELINIOWE Maciej Patan

RÓWNANIA NIELINIOWE Maciej Patan RÓWNANIA NIELINIOWE Maciej Patan Uniwersytet Zielonogórski Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością v = mg ( 1 e c t) m c gdzie g = 9.81 m/s 2. Dla współczynnika oporu c

Bardziej szczegółowo

Sortowanie zewnętrzne

Sortowanie zewnętrzne Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4 Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo