Wie manchem bekannt arbeite ich zur Zeit mit einigen Anderen an einer Übersetzung von Sanshôdayû, aber nicht dem Film sondern dem klassisch japanischen Original aus dem 17. Jhd. Wir benutzen zur Übersetzung eine selbst geschriebene Webanwendung mit der wir jeweils zu kurzen Textabschnitten Kommentare, Anmerkung, Fragen und natürlich die fertigen Übersetzungen schreiben und darüber diskutieren können.
Ein Problem dass sich öfter stellt ist dass man eine Formulieren oder ein Wort schon mal übersetzt hat, aber sich nicht mehr erinnern kann wie genau. Wenn man nun jedesmal anders übersetzt können aus im Original gleichen Formulierungen in der Übersetzung völlig verschiedene Sätze werden. Die Struktur des Textes wird dadurch verfälscht.
Zum Glück hat man natürlich längst Lösungen für so etwas erfunden (auch wenn die niemand benutzt)! Übersetzungsspeicher halten Quell- und Zieltexte in einer Datenbank vor und stellen Möglichkeiten zur Verfügung zu einem gegebenen Quellsatz eine mögliche Übersetzung zurückzuliefern. In unserem Beispiel werden die in der Datenbanken vorhandenen Sätze auf ihre Ähnlichkeit geprüft und danach sortiert.
Ich habe ein (sehr) einfaches TM-System mit Sinatra und Monk geschrieben. Der Code ist auf Github.
Die Datenbank stellt jeden Eintrag als ein Tupel dar, dass aus Quell- Und Zieltext besteht. Sucht man einen Satz wird dieser mit jedem Quellsatz in der Datenbank verglichen und seine Levenshtein-Distanz berechnet. Da es hierfür schon Bibliotheken gibt ist der eigentliche Suchalgorithmus sehr klein.
def get_best_matches(phrase)
$KCODE = "u"
Translation.all.map{|item| [::Text::Levenshtein.distance(phrase,item.source),item.source,item.target]}.sort_by{|item| item[0]}
end
Mal schauen ob’s bei der Übersetzung hilft.
No Comments