Text-Indexierung und Information Retrieval

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

Neuigkeiten

  • Doodle für Abschlussprojekte läuft!
  • 13.11.18: Skript+Übungsblatt 6 online
  • 6.11.2018: Skript+Übungsblatt 5 online
  • 30.10.18: Skript+Übungsblatt 4 online
  • 22.10.18: Skript+Übungsblatt 3 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
  • 13.11.: RMQ und LCA in O(1) Zeit und O(n) Platz

Skriptum

Übungsblätter

Abschlussprojekte

Die letzten 4 Übungstermine nutzen wir zu einem Mini-Seminar, bei dem jeder Stud. ein Thema präsentieren soll. Ziel ist es, einen die Vorlesung ergänzenden Aspekt aus einem wissenschaftlichen Artikel oder aus einem Buch in ca. 25 Minuten vorzustellen.

  1. U. Beier: On Undetected Redundancy in the Burrows-Wheeler Transform. Proc. CPM'18, article no. 3. LIPIcs Band 105.
  2. Platzeffiziente Konstruktion der BWT (Kapitel 9.3 in Mäkinen et al.'s Buch “Genome Scale Algorithm Design”)
  3. Bidirektionale BWT (Kapitel 9.4 in Mäkinen et al.'s Buch “Genome Scale Algorithm Design”)
  4. Range Min-Max-Trees (Kapitel 7.1 aus Navarros Buch “Compact Data Structures: A Practical Approach”). Hier bitte eine geeignete Auswahl treffen (d.h. reduzieren)!
  5. Compressed Suffix Arrays (Kapitel 11.1 aus Navarros Buch “Compact Data Structures: A Practical Approach”)
  6. BWT für Bäume (Abschnitt 2 in P. Ferragina et al.: Compressing and Indexing Labeled Trees, with Applications. J. ACM 57(1), Article No. 4, 2009.)
  7. LZ77: Ultraschnelle Berechnung (Kapitel 5.2.2 aus Ohlebuschs Buch “Bioinformatics Algorithms”)
  8. LZ-Index (Abschnitt 13.2.2 in Navarros Buch “Compact Data Structures: A Practical Approach”, mit den notwendigen Ergänzungen aus vorangegangenen Kapiteln)
  9. obere Schranke für die Anzahl an Runs (Abschnitt 3 in H. Bannai et al.: The “Runs” Theorem. SIAM J. Computing 46(5), pp 1501-1514, 2017)
  10. Runs-Berechnung in O(n) Zeit (Abschnitt 4.1 in H. Bannai et al.: The “Runs” Theorem. SIAM J. Computing 46(5), pp 1501-1514, 2017.)
  11. Level Ancestor Queries in Bäumen (M. Bender and M. Farach-Colton: The Level Ancestor Problem Simplified. Theor. Comput. Sci. 321: 5–12, 2004.), evtl. mit Anwendungen in LZ78 (Abschnitte aus unserem Skript)

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-13 16:59 by Johannes Fischer
DokuWikiRSS-Feed