Login
Newsletter
Werbung

Do, 9. Februar 2006, 00:00

OpenLogos 1.0.1 Installation und Anwendung

> cd openlogos-1.0.1/testapi
> cat apitest.input
Keiner weiß, wer Kanzler werden wird.
> ./testolgs.sh
[...]
 Output = /tmp/openlogos/api17575.out
[...]
> cat /tmp/openlogos/api17575.out
None knows who will become chancellor.

Die Handhabung des oben benutzten Skriptes, der Steuerdatei und der Ausgabedatei lässt Wünsche offen. Um OpenLogos bequemer einzusetzen, habe ich mir ein Shell-Skript gebastelt. Der Einfachheit halber können Sie es als openlogos.sh hier herunterladen. Sie können es z.B. als /usr/local/bin/ol speichern, müssen aber noch die Ausführungsrechte für die Datei setzen.

#!/bin/sh
# vim: set ts=2 et sw=2 tw=80 ai:
#
# ol - wrapper script for OpenLogos 1.0.1
# v0.1 2005-12-02 torsten.scheck@gmx.de
#
# uses 'recode' for UTF-8 files
settings="openlogos_settings.txt"
workfile="openlogos_file"
log="openlogos.log"
logstdout="openlogos_stdout.log"
usage() {
echo "usage: $0 source-language target-language filename
 source-language: e[ng]
 target-languages: g[er] f[re] s[pa] i[ta] p[or]
 source-language: g[er]
 target-languages: e[ng] f[re] i[ta]" >&2
}
source="$1"
target="$2"
filename="$3"
case $source in
 [eE]*) source="ENG"
 case $target in
 [gG]*) target="GER";;
 [fF]*) target="FRE";;
 [sS]*) target="SPA";;
 [iI]*) target="ITA";;
 [pP]*) target="POR";;
 *) usage
 echo "error: unsupported target-language '$target'"
 exit 1;;
 esac;;
 [gG]*) source="GER"
 case $target in
 [eE]*) target="ENG";;
 [fF]*) target="FRE";;
 [iI]*) target="ITA";;
 *) usage
 echo "error: unsupported target-language '$target'"
 exit 1;;
 esac;;
 *) usage
 echo "error: unknown source-language '$source'"
 exit 1;;
esac
if [ -f proxy.log -o -f TransL_JobControlArguments -o -f "$settings" \
 -o -f "$log" -o -f "$logstdout" -o -f "$workfile" ]; then
 echo "Temp files from a previous OpenLogos session seems to be left over."
 echo "Type 'yes' to proceed (files will be overwritten): "
 read prompt_overwrite
 if [ "$prompt_overwrite" != "yes" ]; then
 exit 1
 fi
fi
if [ ! -f "$filename" ]; then
 usage
 echo "error: file '$filename' not found"
 exit 1
fi
filenameout="${filename}.${target}"
# openlogos is picky about filenames (e.g. >5 chars) and expects ISO-8859-1 character set
cp "$filename" "$workfile"
# this won't hurt if file is already ISO-8859-1
if [ ! -z "`which recode`" ]; then
 recode "UTF-8..ISO-8859-1" "$workfile" 2>/dev/null
fi
cat > ${settings} << EOF
OPERATION_TYPE;#TRANSLATE_DOC;TRANSLATE_TEXT;TERM_SEARCH_DOC;TERM_SEARCH_TEXT;QRY_PROPERTIES;;invalid
INPUT_FILE;#filename;
SOURCE_LANGUAGE;ENG;GER;;invalid
TARGET_LANGUAGE;ENG;GER;FRE;SPA;ITA;POR;;invalid
INPUT_FORMAT;#LGS_TXT_EXCHANGE;;invalid
PROTECTION_CHAR;#@;;invalid
SOURCE_LOCALE;#.,/:.mdy;,./:.dmy;;invalid
TARGET_LOCALE;#,./:.dmy;.,/:.mdy;;invalid
DB_MODE;#Yes;No;;invalid
PM_RULES;Yes;#No;;invalid
EXTENDED_SEARCH;REG_SRCH;#EXT_SRCH;;invalid
SUBJECT_MATTER_CODES;#001;003161;Returned value;;invalid
COMPANY_CODES;#LOG;ABC;LOG ABC SEW;Returned value;;invalid
FLAG_UNFOUND_WORDS;#Yes;No;;invalid
TARGET_FORM_IMPERATIVE;#Yes;No;;invalid
GENERATE_ALIGNMENT;Yes;No;;invalid;;;;
DIAG_LEVEL;Deep;#Short;Long;Deep;;invalid;;;
DIAG_LINE_START;1;10;;invalid;;;;
DIAG_LINE_END;1;100000;;invalid;;;;
RULE_OVERRIDE_FILE_NAME;VALIDFILE.ini;;invalid;;;;;
SENTENCE_COUNT;Returned value;;;;;;;
WORD_COUNT;Returned value;;;;;;;
TRANSLATED_FILE;Returned value;;;;;;;
SESSION_ID;Returned value;;;;;;;
ERROR_DESC;Returned value;;;;;;;
ALIGNMENT_FILE;Returned value;;;;;;;
DIAG_FILE;Returned value;;;;;;;
INPUT_TEXT;#Tippen Sie Ihren Text hier ein.;;
TRANSLATED_TEXT;Returned value;;;;;;;
DIAG_TEXT;Returned value;;;;;;;
ALIGNED_TEXT;Returned value;;;;;;;
WORD_SEARCH_OPTIONS;UNFOUND;FOUND_NOUN;UNFOUND+FOUND_NOUN+FOUND_VERB+FOUND_ADJ+FOUND_ADV;;invalid
WORD_SEARCH_FOUND_START;1;2;;invalid
WORD_SEARCH_FOUND_LIMIT;1;2;;invalid
WORD_SEARCH_UNFOUND_START;1;2;;invalid
WORD_SEARCH_UNFOUND_LIMIT;1;2;;invalid
STATISTICS;Yes;#No
DEBUG_FLAG;Yes;#No
EOF
sed -i "/^SOURCE_LANGUAGE/ s/${source}/#${source}/
 /^TARGET_LANGUAGE/ s/${target}/#${target}/
 /^INPUT_FILE/ s|filename|${workfile}|" "$settings"
PATH=$PATH:/usr/local/bin openlogos "$settings" . "$log" 2>&1 | tee "$logstdout"
outfile=`grep "^ Output" "$logstdout" | cut -d= -f2 | sed "s/ //g"`
cp "$outfile" "$filenameout"
echo "Result: '$filenameout'"
cat "$filenameout"
'rm' -f proxy.log TransL_JobControlArguments "$settings" "$log" \
 "$logstdout" "$workfile" "$outfile" "${outfile%out}diag"
exit 0

Das nachfolgende Beispiel zeigt OpenLogos und ol im Einsatz, d.h. beim Übersetzen der Einleitung dieses Kapitels. Auf einem modernen Notebook benötigte OpenLogos hierfür knapp über 1 Minute.

> ol ger eng einleitung.txt
[...]
Result: 'einleitung.txt.ENG'
Since October 2005, the mechanical translation system ?OpenLogos has been
available as a free software. With the portability, the project persons
responsible of the 'Deutschen research center for artificial Intelligenz'
(?DFKI) did entire work. Unfortunately the installation and the application are
still very complicated. Is added that the documentation is something more for
the puzzle and puzzle friends between us. In the commentaries on the ?OpenLogos
announcements of the ?Linux portals e.g. (per ?Linux: Translator Logos becomes
provides ?Open source) it scarcely any references to successful installations.
Even the ?OpenLogos ?Mailingliste is still very quiet.

Ausblick

Da die Portierung auf ein anderes Datenbanksystem und auf freie Entwicklungswerkzeuge erst vor kurzem durchgeführt wurde, bleibt noch viel Raum für Verbesserungen. Aus den Reihen der zukünftigen Anwender kommen hoffentlich Lösungen zur Komprimierung der Datenbank oder gar zur Optimierung der Übersetzungsgdauer. Immerhin genügt für den Übersetzungsvorgang ausschließlich lesender Zugriff. Auch die Konfigurationsmöglichkeiten des Übersetzungssystems sollten noch genauer untersucht werden.

Für Fragen und Tipps zum Einsatz unter anderen Distributionen richtet man sich am besten an die OpenLogos-Mailingliste. Bevor das Übersetzungssystem von der Anwendergemeinde selbst verbessert werden kann, muss noch einiges an Dokumentation geschrieben werden. Die Einrichtung eines OpenLogos-Wikis wäre hierfür ein wichtiger Schritt. Der empfohlene Artikel zur Übersicht des Logos-Modells, The Logos Model: An Historical Perspective, ist leider nur käuflich zu erwerben (30 USD).

Vielleicht gibt es auch andere vielversprechende Ansätze zur maschinellen Übersetzung. Die Möglichkeit, Einblick in die Funktionsweise eines Übersetzungssystems zu nehmen, könnte das generelle Interesse für dieses Forschungsgebiet erhöhen. In jedem Fall profitieren wir Anwender jedoch heute schon von OpenLogos.

  • Dieses Werk wurde unter der GNU Free Documentation License veröffentlicht. Das Kopieren, Verbreiten und/oder Modifizieren ist erlaubt unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder einer späteren Version, veröffentlicht von der Free Software Foundation.

    - Weitere Informationen
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung