CIS
Centrum für Informations-
und Sprachverarbeitung



Software Programmierpraktikas in C und C++ am CIS
2008 - 2011 ff:

Satzendeerkennung (eos)

Projektleiter:

Dr. Max Hadersbeck

beteiligte Studenten:

Entwickler des utf8 ubuffers: Florian Fink
Projektmangement und -betreuung: Daniel Bruder und Susanne Peters
Programmierer von Agenten: Dino Azzano, Estelle Perez, David Kaumanns, Simon Thum
Entwickler des CisWeb Frontends: Sebastian Bildner

History: eos, V1.0: Max Hadersbeck, Susanne Peters, Michael Mandl, Daniel Bruder,
Jonathan Cummins (Erasmus Student SS2009 aus Dublin)

Dieses Programm wurde innerhalb dreier Programmierpraktika am CIS entwickelt. Das Hauptaugenmerk lag auf Objektorientiertheit und Effizienz. Es ist in der Programmiersprache C++ geschrieben, verwendet aber gleichzeitig selbstgeschriebene hocheffiziente C-Programme.

Das Programm erlaubt Satzgrenzen in deutschen/englischen (eine Fassung für das italienische/spanische und französische Texte ist in Vorbereitung) Textdateien zu entdecken. .

Das C++-Programm verwendet folgende Technologien:

  • Internationalisierung (eigene UTF8 Klasse, Facets zur Unterstützung von UTF16)
  • eigene UTF-8 Library (ubuffer) zur internen Speicherung der Daten
  • selbstentwickelter sehr effizienter UTF-8 HASH
  • boost - Library für reguläre Ausdrücke
  • linguistische Frequenzlisten aus unseren Korpora
  • Objektorientierte Technologien

Das C-Modul verwendet folgende Technologien:

  • Effizienter trie zur Analyse von Abkürzungen.
  • Die Graphische Oberfläche / CisWeb verwendet folgende Technologien:

  • Google Webtool Kit, JAVA, Tomact, Ajax
  • Strategie des Satzerkenners:

    Der Satzendeerkenner untersucht alle potientielle Satzgrenzen eines Textes mit Hilfe von sogenannten Agenten. Jeder Agent steuert statitisches bzw. linguistisches KnowHow bei und bewertet die potentiellen Satzgrenzen. Diese Bewertung für dazu, dass jede potentielle Satzgrenze entweder akzeptiert bzw. abgelehnt werden kann. Zusätzlich erlaubt der Satzendeerkenner dem Benutzer eigene Reguläre Ausdrücke zu spezifizieren, die besondere Zeichenmuster zusätzlich als Satzende definieren lassen.

    Performance:

    3 MB text takes around 3 seconds, for example a text with 1 Million Token takes around 52 sec.
    		  Optionen:
    -h Help page -v Printout version and exit -l <lang> Select language ('de' or 'en') ('de' by default) -a Print out all tags (OFF by default) -B Deactivate Abbrevation agent (ON by default) -r <file> Activate Regular Expression agent with file name -R Deactivate Regular Expression agent (ON by default) -M Deactivate multiline/paragraph detection (ON by default) -n Activate Normalize (Squeeze Spaces) (OFF by default) -e Activate extended tagging (OFF by default) -s Activate print one EOS per line (OFF by default) -p <file> Activate Primus agent with file name -P Deactivate Primus agent (ON by default) -C Deactivate Cross agent (ON by default) -t <tag> Use <tag> as EOS marker -f <in> Use input file <in> -o <out> Set output file <out>