TAU2014/Ćwiczenia 4

Zadanie A - implementacja algorytmu EM dla Modelu 1

Pseudokod został podany na Wykładzie 3 (slajdy dostępne tutaj w “Dokumentach”).

Implementacja w dowolnym otwartym języku programowania (dostępnym na Linuksie).

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ść wypisywanie 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 B

Ulepszanie tłumaczenia?

  • gruzińsko-polski?

Zadanie X

Pomysły:

  • tłumaczenie speech-to-speech
  • uruchomienie Mosesa na komórce, telewizorze, drukarce, Raspberry Pi etc.
  • tłumaczenie na poznański
  • etc. etc. etc.