Willkommen bei Lingo!

Lingo ist ein frei verfügbares System zur linguistisch und statistisch basierten automatischen Indexierung des Deutschen und Englischen. Lingo arbeitet mit einem Wörterbuchmodell, das eine Grundformidentifizierung bzw. -reduktion mit einem Grundformenwörterbuch und einer zugehörigen einfachen Suffixliste realisiert. Lingo verfügt zusätzlich über eine algorithmische Kompositumzerlegung, eine algorithmische und lexikalische Mehrworterkennung sowie eine allgemeine lexikalische Relationierung. Lingo unterliegt der GNU General Public License (GPL).

Einen ersten Eindruck von der Funktionalität vermittelt Lingo Web:


Lingo ist vollständig in Ruby programmiert, weshalb vor dem Einsatz von Lingo eine Ruby-Umgebung installiert werden muss.

Lingo - erste Schritte

Das Indexierungssystem Lingo leistet eine Grundformidentifizierung bzw. Grundformreduktion mit einem Grundformenwörterbuch und einer zugehörigen einfachen Suffixliste. Zusätzlich wurden für Lingo eine algorithmische und eine lexikalische Mehrworterkennung sowie eine allgemeine lexikalische Relationierung von Termen realisiert. Neben diesen linguistischen Kernfunktionen ist es möglich, mit Lingo Termgewichte nach absoluter und relativer Auftretenshäufigkeit zu ermitteln.

Lingo ist vollständig in der Programmiersprache Ruby programmiert, alle Programmmodule haben daher die Endung rb und sind, eine installierte Version von Ruby vorausgesetzt, auf der Kommandozeile ausführbar. Da Lingo primär für Forschung und Lehre eingesetzt wird, wurde bei der Entwicklung großer Wert auf die Transparenz des Programms und seiner Bestandteile, sowie auf die Transparenz der Programmabläufe bei einer Indexierung gelegt. Alle Funktionen des Systems sind umfangreich konfigurierbar und damit für individuelle Einsatzzwecke leicht anzupassen.

Die Funktionen von Lingo werden jeweils von eigenen Programmmodulen (attendees) realisiert, die in einem Indexierungslauf (Lingo-Sitzung) hintereinander geschaltet sind und so aufeinander aufsetzen. Eine Lingo-Sitzung ist aufgebaut wie eine Besprechung mit mehreren Teilnehmern (attendees), die über eine Konfiguration eingeladen werden. Die Fähigkeiten der eingeladenen Teilnehmer bestimmen das Besprechungsergebnis, d. h. die Ergebnisse der Indexierung.

Lingo verfügt über keine grafische Benutzeroberfläche. Sämtliche Programmabläufe werden über die Kommandozeile gestartet. Für die Installation des Programms muss dieses als Archivdatei heruntergeladen und in ein eigenes Verzeichnis entpackt werden. Nach der Installation (dem Entpacken des Archivs) von Lingo ergibt sich folgende Verzeichnisstruktur (aufgeführt sind nur die wichtigsten Verzeichnisse):

.../lingo
Das Hauptverzeichnis mit dem Lingo-Programm (Endung rb) und den Konfigurationsdateien (Endungen cfg)

.../lingo/de
Quellen (Textdateien), aus denen die Wörterbuch-Datenbanken aufgebaut werden

.../lingo/de/store
Wörterbuch-Datenbanken (von Lingo beim ersten Start automatisch generiert)

.../lingo/lib
Verzeichnis mit den Programmdateien

.../lingo/txt
Verzeichnis der Ein- und Ausgangsdaten der Indexierung

Als linguistisches, wörterbuchgestütztes System ist Lingo von den verfügbaren und eingebundenen Wörterbüchern direkt abhängig. Lingo-Wörterbücher sind als Quelltext reine Textdateien, die mit jedem Editor bearbeitet werden können. Für die Verwendung der Wörterbücher in Indexierungsläufen müssen diese aus Performance-Gründen in Datenbankdateien umgewandelt werden. Lingo prüft bei jedem Programmstart, ob es möglicherweise neue oder geänderte Wörterbuchquellen gibt und wandelt diese, falls noch nicht geschehen, selbstständig in Datenbankdateien um. Die generierten Datenbanken werden im Verzeichnis /store als jeweils zusammengehörende dir- und pag-Dateien abgelegt.

Nach der Installation von Lingo (und ggf. einer Ruby-Umgebung) soll ein erster Systemstart das Funktionieren des Programms testen. Dazu ist es nötig, in ein Terminal (bzw. unter Windows der DOS-Eingabeaufforderung) in das Lingo-Programmverzeichnis zu wechseln (dies ist die oberste Ebene des Lingo-Installationsbaums, dort muss sich die Programmdatei lingo.rb befinden). Für einen ersten Start benötigt Lingo mindestens den Programmaufruf und die Nennung einer Datei, die zu indexieren ist. Für diesen Zweck wird Lingo mit einer Beispieldatei artikel.txt ausgeliefert, die sich im Unterverzeichnis /txt befindet. Um die Indexierung dieser Datei zu starten, ist folgende Eingabe in einem Terminal erforderlich:

ruby lingo.rb txt/artikel.txt

Nach dem Absenden des Befehls werden zunächst Zeilen sichtbar, in denen Prozentwerte hochgezählt werden. Dies ist die Phase des Aufbaus der Wörterbuchdateien, die im Auslieferungszustand noch nicht vorhanden waren. Danach werden im Terminal rasch Textzeilen angezeigt, bis die Indexierung beendet ist. Die durchgelaufenen Textzeilen sind nicht das Ergebnis des Indexierungslaufs. Die Ergebnisdateien befinden sich alle im Unterverzeichnis /txt. Alle dort liegenden Dateien, die mit artikel. beginnen, sind Ergebnisdateien dieses ersten Indexierungslaufs.

Das System läuft nun und kann für eigene Anwendungen konfiguriert und genutzt werden. Ein Lehrveranstaltungsskript zu einem einsemestrigen Laborpraktikum mit Lingo führt tiefer in die Materie ein und kann hier als pdf heruntergeladen werden.