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 Affero General Public License (AGPL).

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



Installation und 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.

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.

Lingo ist in der Programmiersprache Ruby programmiert, benötigt eine Ruby-Umgebung Version 1.9.2 oder höher und lässt sich als RubyGem installieren (ausführliche Installationshinweise):

gem install lingo

Lingo verfügt über keine grafische Benutzeroberfläche. Sämtliche Programmabläufe werden über die Kommandozeile gestartet. Für die Arbeit mit Lingo kann man sich mit folgendem Befehl eine Arbeitsumgebung einrichten:

lingoctl demo lingo-work

Der Befehl kopiert alle benutzerspezifischen Dateien der Lingo-Installation in das neue Verzeichnis "lingo-work" (das auch anders genannt werden kann). Dieses Verzeichnis hat vier Unterverzeichnisse:
  • "config" enthält Konfigurationsdateien für Lingo
  • "dict" enthält alle Benutzerwörterbücher in sprachspezifischen Unterverzeichnissen
  • "lang" enthält die sprachspezifischen Konfigurationen
  • "txt" enthält die von Lingo zu indexierenden Dateien, u.a. Testdateien
Das System kann nun mit folgenden Funktionsaufrufen im Arbeitsverzeichnis "lingo-work" getestet werden:

lingo -c lingo.cfg txt/artikel.txt
Testet das System mit der Standardkonfiguration und dem Beispieltext deutsch.

lingo -c lir.cfg txt/lir.txt
Testet das System für die lir-Konfiguration.

lingo -c lingo.cfg -l en txt/artikel-en.txt
Testet das System für die englische Sprache.

Die Ergebnisse einer Lingo-Indexierung sind nicht im Kommandozeilen-Fenster zu sehen, sie werden in das Verzeichnis geschrieben, in dem sich die zu indexierende Datei befindet, hier in das Verzeichnis "txt".

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.

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.

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. Eine grundlegende Einführung in die Thematik findet sich im Lehrbuch "Informationserschließung und Automatisches Indexieren".

Projekte mit Lingo

Lingo wird häufig in Projekten eingesetzt und dort weiterentwickelt. Die folgende Liste soll die wichtigsten Projekte dokumentieren und laufend fortgeschrieben werden.

Detecting multiword phrases in mathematical text corpora

Ein Projekt, bei dem Lingo für eine algorithmische Mehrworterkennung eingesetzt wurde, um mathematische Fachterminologie aus den Nachweisen des Zentralblatts der Mathematik zu extrahieren.

Gödert, Winfried: Detecting multiword phrases in mathematical text corpora. arXiv:1210.0852 [cs.CL] 2 Oct 2012


Automatische Erschließung des digitalen Bildarchivs prometheus

In diesem Projekt wurde Lingo eingesetzt, um die Bildbeschreibungen des prometheus-Bildarchivs mit Titelübersetzungen und Synonymen von Künstlernamen anzureichern.

Projektbeschreibung


Automatische Klassifizierung mit DDC: autoclass/DDC

Der Anwendungskontext für Lingo lag in der Weiterentwicklung einer automatischen DDC-Klassifizierung durch Integration einer automatischen Indexierung. Dazu wurde der Erschließungsprozess durch eine linguistische und semantische Vorverarbeitung der Klassifizierungskomponenten (DDC-basierte Repräsentationen und bibliographische Titeldatensätze) mit dem Ziel ergänzt, die Erschließungsmerkmale sprachlich zu vereinheitlichen und mit zusätzlichen synonymen Bezeichnungen anderer Dokumentationssprachen anzureichern.

Lingo Rus - Automatische Indexierung des Russischen

Um die Analyse russischer Texte mit kyrillischen Zeichen zu realisieren, wurden russischsprachige Wörterbücher und eine eigene Sprachkonfiguration erstellt, in der die Suffixendungen für die einzelnen Wortklassen definiert sind. Außerdem wurde Lingo um die komplette Zeichenklasse Alphabetic des Unicode-Zeichensatzes erweitert. Prinzipiell ist Lingo mit dieser Erweiterung in der Lage, nicht nur Zeichen aus dem lateinischen und kyrillischen Alphabet zu erkennen und zu verarbeiten, sondern alle Buchstaben (und Zahlen), die in Unicode definiert sind.

Diese Funktion ist verfügbar seit Version 1.8.3.


 Для автоматической обработки текстов на русском языке в кириллическом шрифте были подобраны словари и разработан русский языковой файл, в котором дефинированы окончания изменяемых частей речи. Кроме того, в программу Lingo был добавлен набор смиволов "Alphabetic Unicode". Данное обновление позволяет опознавать и обрабатывать не только символы латинского и кириллического алфавита, но и все знаки (буквы и числа), дефинированные в юникоде.

 Данная функция доступна с версией 1.8.3.