Zadanie 1
Zaimplementować różne (wybrane) metody obliczania rdzenia wyrazów:
- obcinanie ustalonej ilości znaków na końcu
- obcinanie końcówki tak by długość wyrazu była podzielna przez
ustaloną liczbę
- obcinanie zmiennej ilosci znaków, z minimalną ilością aż do
napotknia samogłoski
- obcinanie bazujące na liscie końcowek: usuwać najdłuższą
końcówkę jaką się da
- usuwanie przedrostka (bazując na liście przedrostków) a potem
jedna z metod powyżej.
Zadanie 2
Zaimlementować następującą miarę odległości na słowach:
- jeśli pierwsze litery są takie same to obliczać odległość dla
reszty wyrazów
- jeśli pominięcie pierwszej litery w jednym z wyrazów spowoduje
że piewsze litery będą równe to zrobić to i dodać 1 do wyniku
dla tak otrzymanej pary wyrazów (jeśli jest niejednoznaczność
którą literę pominąć to wybrać dowolnie).
- w przeciwnym razie dodać 2 wyniku porównania reszt
- porównywać rekursywnie aż do końca krótszego w wyrazów lub
uzyskania ustalenej ilości równych liter.
Porównać losowe wyrazy z listy polskich oraz angielskich słów.
Wypróbować modyfikacje, np. jeśli litery mogą odpowadać sobie
ze względu na wymowę ('c' i 'k' czy też 'v' i 'w') to postępować
tak jak by były równe (ale dodawać małą liczbę do odległości).
Jak dobrze taka miara wykrywa słowa zapożyczone?
Zadanie 3
Spróbować konstrukcji słownika bazując na tekstach równoległych.
Można np. użyć polskiej i niemieckiej bibli z katalogu
'/home/s/test/tt/biblia'. Pomijać słowa funkcyjne, wyznaczyć
rdzenie. Następnie szacować prawdopodobieństwa że dana para
słów jest odpowiednikiem słownikowym. Iteracyjnie wybierać
"najlepsze" tłumaczenia i ponownie szacować prawdopodobieństwa
dla pozostałych słów.