TAU2016/Ćwiczenia 6

Zadanie A1 - implementacja algorytmu EM dla Modelu 1

Program powinien przyjmować 3 argumenty:

  • nazwę pliku ze zdaniami w jednym języku (“obcym”),
  • nazwę pliku ze zdaniami w drugim języku (“rodzimym”),
  • liczbę iteracji (po której program ma zakończyć działanie) lub liczbę rzeczywistą (próg zbieżności).

Na standardowym wyjściu program powinien wypisywać prawdopodobieństwa tłumaczenia, w każdym wierszu oddzielone spacjami:

  • wyraz “obcy” (także wartość NULL),
  • wyraz “rodzimy”,
  • prawdopodobieństwo.

Wypisujemy tylko pary, dla których prawdopodobieństwo wynosi przynajmniej 0.001. Prawdopodobieństwa wypisujemy z dokładnością 4 miejsc po kropce. Na przykład dla załączonych tutaj przykładowych plików simple.de i simple.en powinniśmy otrzymać:

NULL    book    0.5000
NULL    the    0.5000
buch    book    1.0000
das    the    1.0000
ein    a    1.0000
haus    house    1.0000

(Kolejność wypisywania par może być dowolna).

Na końcu należy także wypisać perplexity.

Załączam przykładowe pary

  • prosty przykład z wykładu (simple.de/en)
  • prosty przykład fińsko-maoryjski (genesis.fi/su)
  • 3K zdań z OpenSubtitles (sub-mini.en/pl)

UWAGA! Umieszczone pary zdań zostały już wcześniej wyczyszczone. Zakładamy, że separatorem tokenów jest spacja.

Zadanie A2 - implementacja algorytmu ekstrakcji fraz

Program powinien przyjmować na wejściu

  • urównoleglenie w jedną stronę (w formacie GIZA++)
  • urównoleglenie w drugą stronę (w formacie GIZA++)

Na standardowym wyjściu program powinien wypisywać wszystkie frazy.