Inverted Files for Text Search Engines

Ähnliche Dokumente
Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene

Textsuche mit Indexstrukturen. Anfragen. Inzidenz Vektoren. Term-Dokument Inzidenz Matrix

IR Seminar SoSe 2012 Martin Leinberger

Teil VII. Hashverfahren

Freispeicherverwaltung

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Algorithmen und Datenstrukturen 12

Indexstrukturen in Datenbanken

Verkettete Datenstrukturen: Listen

Text Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk

SPRACHTECHNOLOGIE IN SUCHMASCHINEN IR-GRUNDLAGEN

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany

Listen. Für die Verarbeitung von Listen durch den Rechner ist relevant:

Inhalt. Einführung in die Strukturierte Programmierung 15

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

9. Vektoren. (auch Felder/array)

Pat Trees und Pat Arrays Datenstrukturen zur effizienten Suche in Texten

Freispeicherverwaltung Martin Wahl,

2.4 Effiziente Datenstrukturen

Stabiles Sortieren. Dieses Prinzip lässt sich natürlich auf beliebiege andere Zahlensystem oder auch komplett anders gestaltete Mengen übertragen.

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Kapitel 12: Induktive

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

Slotted Pages Wie ordnet man eine Menge von Sätzen auf eine Seite an? ffl Seite besteht aus drei Teilen fixer Seitenkopf (z.b. mit Seitennr, LSN) Slot

Was ist ein assoziativer Speicher?

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Vom Leichtesten zum Schwersten Sortieralgorithmen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Verkettete Datenstrukturen: Bäume

Grundlagen der Programmierung

Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2

Nachtrag: Vergleich der Implementierungen von Stack

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Onlinehilfe Maildatenbank

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

3. Übungsblatt zu Algorithmen I im SoSe 2017

ADS: Algorithmen und Datenstrukturen

Semiautomatische Erschließung von Psychologie-Information

Index mit Adobe Acrobat Professional erstellen. Leibniz Universität IT Services Anja Aue

Grundlagen der Informatik

Datenbanken: Indexe. Motivation und Konzepte

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Informatik II, SS 2014

Datenstrukturen Teil 1. Arrays, Listen, Stapel und Warteschlange. Arrays. Arrays. Array

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Algorithmen und Datenstrukturen (für ET/IT)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

Algorithms & Data Structures 2

Boole sches Retrieval als frühes, aber immer noch verbreitetes IR-Modell mit zahlreichen Erweiterungen

Algorithmen in der Sekundarstufe I

Neue Ansätze der Softwarequalitätssicherung

Datenstrukturen und Algorithmen

Grundlagen der Informatik 0

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Indizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen (für ET/IT)

Übungsklausur Programmieren / Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen II: Hashverfahren

Transkript:

Inverted Files for Text Search Engines Justin Zobel, Alistair Moffat PG 520 Intelligence Service Emel Günal 1

Inhalt Einführung Index - Inverted Files - Indexkonstruktion - Indexverwaltung Optimierung - Indexkompression Weitere Ansätze zur Indexierung 2

Einführung Wie suchen wir? 1) Angabe einer Frage, meist Schlagwörter: Albert Einstein, Katzenklo 2) Durchsuchen Liste mit Antworten 3) Folgen der Links Bei Unzufriedenheit Frage modifizieren Suchdomäne beschränken Einbeziehen od. Auslassen von Ausdrücken 3

Allgemeines Suchmaschinen: Werkzeuge um bestimmte Dokumente in Sammlungen zu finden Liefern leichten Zugang zu Informationen Viele Suchmaschinen sind Indexbasiert Index? 4

Was ist ein Index? Datenstruktur für eine effiziente Suche 2 Varianten: 1) word-level-index - Abspeicherung der Wortpositionen - Zeigt an, wo der Ausdruck im Dokument vorkommt 2) document-level-index - Anzeige darüber, ob Ausdruck in einem Dokument vorkommt - keine Information, wo der Ausdruck erscheint Effizienteste Indexstruktur: Inverted File 5

Inverted Files- Aufbau Sammlung von Listen Abspeicherung aller Terme die in Dokumenten vorkommen Warum Invertiert? Üblich: Dokument Term - jedem Dokument Zuordnung einer Menge von Termen Hier: Term Dokument - jedem Term Zuordnung einer Liste von Informationen über das Vorkommen des Terms in Dokumenten 6

Inverted Files- Beispiel Dok.1: Die Hauptstadt von Deutschland heißt Berlin. Dok.2: Berlin ist die Hauptstadt von Deutschland Dok.3: Die Hauptstädte von Deutschland bzw. Spanien heißen Berlin bzw. Madrid Anfrage: Hauptstadt Deutschland Erweiterung: Stopping Stemming Wordpositionen Inverted File: bzw. 3 die 1,2,3 Spanien 3 Deutschland 1,2,3 Hauptstadt 1,2 Hauptstädte 3 heißen 3 heißt 1 ist 2 Madrid 3 Berlin 1,2,3 von 1,2,3 7

Inverted Files- Implementierung Besteht aus: Wörterbuch (Vocabulary): Menge aller vork. Terme Meist im Speicher gehalten Schnell Posting File: Speichert noch zusätzliche (anwendungsabhängige) Information, z.b.: TermVorkommen, Wortposition,... Wörterbuch bzw. die Spanien Deutschland Hauptstadt Hauptstädte heißen heißt ist Madrid Berlin von Posting File 3 1, 2, 3 3 1, 2, 3 1, 2 3 3 1, 2 2 3 1, 2, 3 1, 2, 3 8

Inverted Files Vor- und Nachteile Vorteile: Schneller Zugriff auf Terme, Dokumente Kurze Suchzeit Verwaltung zusätzlicher Informationen (Position im Satz) Nachteile: Hoher Speicheraufwand Aufbau und Aktualisierung aufwendig 9

Techniken um Suche effektiv zu machen Stemming auf Stammwörter reduzieren: neues neu, heißt heiß Stopping Stopwörter( die, ist, und, bzw..) raus Thesaurus: Zusammenfassung unterschiedlicher Worte gleicher Bedeutung Vorteil: Platzsparend Suche effektiv Index kleiner Nachteil: Ergebnis wird vielleicht schlechter 10

Indexkonstruktion Die Indexkonstruktion (Invertierung) besteht aus folgenden Schritten: 1. Parsen der Dokumente 2. Sortieren der Listen 3. Zusammenfassen doppelter Einträge Mögliche Probleme: Hoher Speicherverbrauch Lange Sortierzeit 11

Indexkonstruktion 1) Parsen der Dokumente Durchlaufen der zu indizierenden Dokumente von vorne bis hinten Anlegen einer Liste der gefundenen Wörter mit der dazugehörigen Dokumentnr. (Stopwörter ignorieren) Liste noch unsortiert Doppelte Einträge noch nicht zusammengefasst 12

Indexkonstruktion 2) Sortieren der Listen Alphabetische Sortierung der Liste mittels Sortieralgorithmus Doppelte Einträge werden noch nicht entfernt 3) Zusammenfassen doppelter Einträge Zusammenfassung doppelt vorkommender Wörter 13

Indexverwaltung Updates von invertierten Listen meist Neu Einfügungen Löschen seltener Kurze invertierte Listen in Speicher fester Größe Lange Listen in zusammenhängende Speicherbereiche variabler Größe 14

Indexverwaltung Jede invertierte Liste beginnt als kurze Liste in einem Bucket Beim Überlauf längste darin enthaltene Liste wird zu langer Liste Was machen wir mit zu langen Listen? 15

Optimierung Schon kennengelernt: Stemming Stopping Indexkompression mittels - Golomb-Code - Rice-Code - Binäre Kodierung Vorteil: 1. Weniger als 50% der Textgröße 2. Auswertungszeit von Fragen geringer 3. Erstellung des Indexes in kurzer Rechenzeit 16

Indexkompression Zeit- und Platzsparende Speicherung von Daten bzw. Integer auf einem Computer Zugriffszeit auf Daten möglichst kurz Viele Ansätze zur Indexkompression Golomb-Code Rice-Code: Spezialfall des Golomb-Codes Unäre, Binäre Kodierung... 17

Golomb-Code Darstellungsform für alle positiven Zahlen Abspeicherung von Zahlen unbekannter Größe Speicher sparsam einfach umzusetzen schnelle Kodierung 18

Beispiel zum Golomb-Code Teil 1: Berechne q der Zahl n Quotient wird unär ausgegeben q besteht nur aus 1 Am Ende Anhängen 0 Teil 2: wird als Binärzahl aufgeschrieben n = Zahl q = Quotienten b = Parameter n = Zahl q = Quotienten b = Parameter r = Rest 19

Weitere Ansätze zur Indexierung Suffix Array Array, welches Suffixe eines Strings in lexikographischer Reihenfolge angibt erlaubt binäre Suche Nutzbar als Index, lokalisiert jeden Substring innerhalb des Strings Text lange Zeichenkette jedes Teilstück des Textes ist eindeutig durch seine Position bestimmt Positionen im Text frei wählbar 20

Weitere Ansätze zur Indexierung Signature Files Effiziente Herausfilterung von Einträgen einer Datenbasis, welche eine bestimmte Bedingung erfüllen große Textbestände, innerhalb kurzer Zeit nach Schlüsselwörtern durchsuchbar Signaturen werden durch die Abbildung von Wörtern auf Bitstrings mittels Hash-Funktion erzeugt Speicherung der Dokumente in einer Textdatei, Signaturen in einer separaten Datei Signature File Aufbau: Text wird in gleichgroße Blöcke unterteilt jeder Block repräsentiert ein Stück des Textes 21

Das war s Danke für eure Aufmerksamkeit! 22