This is an old revision of the document!


Text-Indexierung und Information Retrieval

Die Veranstaltung ist dem Modul Text-Indexierung und Information Retrieval zugeordnet. Dozent und Übungsleiter ist Johannes Fischer.

Neuigkeiten

  • 6.11.2018: Skript+Übungsblatt 5 online
  • 30.10.18: Skript+Übungsblatt 4 online
  • 22.10.18: Skript+Übungsblatt 3 online
  • 16.10.18: Skript+Übungsblatt 2 online
  • 9.10.18: Skript+Übungsblatt 1 online

Inhalt

In dieser Vorlesung beschäftigen wir uns mit dem Problem, einen (oft sehr langen) Text so vorzuverarbeiten, dass im Anschluss effiziente Suchanfragen darin ausgeführt werden können. Beispiele solcher Anfragen reichen von einfachen Pattern-Matching Anfragen (“kommt ein Suchmuster im Text vor?”) bis hin zu komplexen Data-Mining-Anfragen, z.B. die Suche nach repetitiven Mustern. Im einzelnen behandeln wir die folgenden Themen:

  • Tries (Datenstrukturen zur Stringsuche); Strings sortieren
  • Textindizes: Suffixbäume, Suffix-Arrays, Inverted Indexes, FM-Index (evtl. LZ-Index)
  • exakte und approximative Mustersuche mit Hilfe von Textindizes
  • Funktionalität von Suchmaschinen: schnelle Berechnung und Sortierung aller Dokumente, die ein Suchmuster enthalten
  • Textkompression: Burrows-Wheeler-Transformation und LZ-Komprimierung

Voraussetzungen

Sie sollten Spaß an algorithmischen Problem und der Analyse von Algorithmen haben. Die Vorlesungen DAP1 und DAP2 sollten nicht zu Ihren schlechtesten Fächern gehört haben. Im Idealfall haben Sie bereits andere Veranstaltungen aus diesem Bereich gehört (Algorithmen und Datenstrukturen, Effiziente Algorithmen, Algorithm Engineering, Algorithmische Bioinformatik, etc.) bzw. haben vor, dies noch zu tun.

Für die Übungen sind Programmierkenntnisse in C/C++ oder Java erforderlich.

Die Vorlesung ist geeignet für Informatiker im Master- oder Diplomstudiengang (Hauptstudium). Sie eignet sich gut als Vorbereitung zur Erstellung von Studien- oder Abschlussarbeiten (Master/Diplom) im Bereich Text-Indexierung.

Stundenplan Vorlesung

  • 8.10.: Tries
  • 15.10.: Suffixbäume in O(n) Zeit, Suffix-Arrays in O(n log n) Zeit
  • 22.10.: Suffix-Arrays in O(n) Zeit
  • 29.10.: LCP-Arrays und LZ77 in O(n) Zeit
  • 6.11.: LZ78 in O(n log σ) Zeit, Suche in Suffixarrays in O(n log n) und O(n +log n) Zeit, O(1)-RMQs in O(n log n) Platz

Skriptum

  • Version vom 16.10.18. (Wird forlaufend erneuert.)

Übungsblätter

Abschlussprojekte

Die letzten 4 Übungstermine nutzen wir zu einem Mini-Seminar, bei dem jeder Stud. eine Thema präsentieren soll.

Theorieprojekte

Ziel ist es, einen die Vorlesung ergänzenden Aspekt aus einem wissenschaftlichen Artikel oder aus einem Buch in ca. 25 Minuten vorzustellen.

  • U. Beier: On Undetected Redundancy in the Burrows-Wheeler Transform. Proc. CPM'18, article no. 3. LIPIcs Band 105.
  • Platzeffiziente Konstruktion der BWT (Kapitel 9.3 in Mäkinen et al.'s Buch “Genome Scale Algorithm Design”)
  • Bidirektionale BWT (Kapitel 9.4 in Mäkinen et al.'s Buch “Genome Scale Algorithm Design”)
  • Range Min-Max-Trees (Kapitel 7.1 aus Navarros Buch “Compact Data Structures: A Practical Approach”)
  • Compressed Suffix Arrays (Kapitel 11.1 aus Navarros Buch “Compact Data Structures: A Practical Approach”)
  • XBWT??

Praxisprojekte

Ziel ist es, in der Vorlesung eingeführte Algorithmen und Datenstrukturen gut zu implementieren und anhand von realistischen Eingaben auf Platzbedarf und Laufzeit zu testen sowie mit konkurrierenden Verfahren zu vergleichen. Auch hier soll am Ende eine ca. 25-minütige Präsentation stehen.

  • Vergleich von Suffix Arrays und Inverted Indexes bei der Beantwortung von Suchanfragen
  • Praktische Evaluation der Level-Ancestor-Datenstruktur

Ort und Zeit

  • Vorlesung: Mo 14-16 c.t. (SRG1 1.001)
  • Übungsgruppe: Mo 16-18 s.t. (SRG1 1.001)
 
Last modified: 2018-11-06 09:32 (external edit)
DokuWikiRSS-Feed