Non-Standard-Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Advertisements

Kohonennetze für Information Retrieval mit User Feedback
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
On the Criteria to Be Used in Decomposing Systems into Modules
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Fallstudie. 2 Statistik April Dokumente Jan Mio. Dokumente Performance 3 Mio. Queries pro Tag 9. Juni 2000 Most popular search engines.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Algorithmen und Datenstrukturen
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Information Retrieval Modelle: Vektor-Modell
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Externe Datenstruktur lineare Liste
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
20:00.
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]
Die Geschichte von Rudi
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Effiziente Algorithmen
Selbsttest zum Modul 2 Informationstechnik
GERMAN 1013 Kapitel 2 3.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Einführung in die Programmierung
GERMAN 1013 C1 Guten Morgen.
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Generalisiertes Vektorraummodell (Generalized Vector Space Model, GSVM) Karin Haenelt
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Managemententscheidungsunterstützungssysteme (Ausgewählte Methoden und Fallstudien) ( Die Thesen zur Vorlesung 3) Thema der Vorlesung Lösung der linearen.
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Es ist Herbst. Das Wetter ist schön. Die Sonne scheint oft
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Information Retrieval, Vektorraummodell
Titelmasterformat durch Klicken bearbeiten Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fünfte Ebene 1 Rising energy.
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Lösungen zum Übungsblatt 3 zur Vorlesung Datenstrukturen Prof. R. Bayer, WS 2001/02 Übung 6.1: Konstruieren Sie den B-Baum aus der Klasse  h  der.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Non-Standard-Datenbanken Volltextindizierung und Information Retrieval Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme.
DA- und WO- Verbindungen Wie gut verstehst du sie?
Non-Standard-Datenbanken
Non-Standard-Datenbanken
Non-Standard-Datenbanken und Data Mining
 Präsentation transkript:

Non-Standard-Datenbanken Volltextindizierung und Information Retrieval Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

Non-Standard-Datenbanken Volltextindizierung und Information Retrieval

Non-Standard-Datenbanken Von semistrukturierten Datenbanken zur Volltextsuche XQuery Anfrage XQuery- Implementierung Phrasale Anfragen Volltextindizierung Einfache Anfragen

where some $p in $b//para satisfies for $b in //book contains($p, "sailing") and contains($p, "windsurfing") return $b/title

Text als unstrukturierte Daten Welche Stücke von Shakespeare enthalten die Worte Brutus UND Caesar aber NICHT Calpurnia? Verwendung von grep um alle Stücke von Shakespeare mit Brutus und Caesar zu finden, um dann Zeilen mit Calpurnia zu entfernen? Langsam (für große Korpora) NICHT Calpurnia ist keinesfalls einfach zu behandeln Andere Operationen (z.B. Finde das Wort romans in der Nähe von countrymen) sind mit grep nicht umsetzbar Bewertung von Ergebnissen gewünscht Kommt später

Term-Dokument-Inzidenzmatrix 1 falls Dokument Wort enthält, sonst 0 Brutus UND Caesar aber NICHT Calpurnia

Inzidenzvektoren Wir haben einen 0/1-Vektor für jeden Term Zur Beantwortung der Anfrage: Nehme die Vektoren von Brutus, Caesar and Calpurnia (komplementiert)  bitweises UND. 110100 UND 110111 UND 101111 = 100100. Brutus UND Caesar aber NICHT Calpurnia

Antony and Cleopatra, Act III, Scene ii Antworten im Kontext Antony and Cleopatra, Act III, Scene ii Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus, When Antony found Julius Caesar dead, He cried almost to roaring; and he wept When at Philippi he found Brutus slain. Hamlet, Act III, Scene ii Lord Polonius: I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. Lineare Suche des Teilausschnitts könnte schon zu langsam sein  Positionen auch abspeichern

Größere Korpora Betrachte N = 1M Dokumente, jedes mit ca. 1K Termen Das ergibt bei 6 Bytes/Term einschl. Leerzeichen und Interpunktionszeichen 6GB Daten für alle Dokumente Sagen wir, es gibt darunter m = 500K unterschiedliche Terme

Inzidenzmatrix viel zu groß 500K x 1M Matrix hat halbe Billion 0’en und 1’en Aber nicht mehr als eine Milliarde 1’en Matrix ist extrem dünn besetzt Können wir eine bessere Repräsentation wählen? Wir brauchen nur die 1-Positionen zu speichern

Invertierter Index Für jeden Term T, müssen wir eine Liste aller Dokumente, die T enthalten, speichern Sollen wir ein Feld oder eine Liste verwenden? Brutus 2 4 8 16 32 64 128 Calpurnia 1 2 3 5 8 13 21 34 Caesar 13 16 Was machen wir, wenn das Wort Caesar zu Dokument 14 hinzugefügt wird? Luhn, H. P., Auto-encoding of documents for information retrieval systems. In M. Boaz, Modern Trends in Documentation (pp. 45-58). London: Pergamon Press, 1959

Invertierter Index Verkettete Listen i.a. bevorzugt Dynamische Speicherallokation Einfügung von Termen in Dokument leicht Zeiger evtl. speicheraufwändig Posting 2 4 8 16 32 64 128 Brutus Calpurnia Caesar 1 2 3 5 8 13 21 34 13 16 Postings-Liste Verzeichnis Sortiert nach docID (später mehr dazu)

Konstruktion des invertierten Index Dokumente Friends, Romans, countrymen. Tokenizer Siehe spezielle Vorlesungen Token-Strom Friends Romans Countrymen Linguistische Module friend roman countryman Modifizierte Token Indexer friend roman countryman 2 4 13 16 1 Invertierter Index

Indexierungsschritte Geg.: Sequenz von Paaren (Token, DocID). Doc 1 Doc 2 I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious

Indizierungsschritte Sortierung nach Term Hoher Aufwand

Indizierungsschritte Mehrfacheinträge für Terme aus einem Dokument werden verschmolzen Anzahlinformation wird hinzugefügt Warum Anzahl? Bewertung von Antworten. Wird später behandelt.

Umsetzung in SQL? TermDoc SQL:

Das Ergebnis wird in eine Verzeichnis- und eine Postings-Tabelle unterteilt Warum N docs und Coll freq? Bewertung von Antworten. Wird später behandelt.

Anfrageverarbeitung: UND Betrachten wir folgende Anfrage: Brutus UND Caesar Suche Brutus im Verzeichnis Hole die zugeordnete Postings-Liste Suche Caesar im Verzeichnis Hole die Postings-Liste “Verschmelze” die Listen 2 4 8 16 32 64 128 Brutus Caesar 1 2 3 5 8 13 21 34

Die Verschmelzung Gehe synchron durch die Postings-Listen 34 128 2 4 8 16 32 64 1 3 5 13 21 2 4 8 16 32 64 128 Brutus Caesar 2 8 1 2 3 5 8 13 21 34 Falls die Listen die Länge x und y haben, dauert die Verschmelzung O(x+y) Schritte. Notwendig: Postings nach docID sortiert Knuth, D. E. Kap. 6.5. “Retrieval on Secondary Keys". The Art of Computer Programming, Reading, Massachusetts: Addison-Wesley, 1973 Andere Methode: Signature Files z.B. mit Bloom Filter (hier nicht vertieft) Bloom, Burton H., Space/Time Trade-offs in Hash Coding with Allowable Errors, Communications of the ACM 13 (7), 422–426, 1970

Non-Standard-Datenbanken Von semistrukturierten Datenbanken zur Volltextsuche Phrasale Anfragen Volltextindizierung Einfache Anfragen

Phrasale Anfragen Gesucht sind Antworten auf “stanford university” – als eine Phrase Der Satz “I went to university at Stanford” stellt keinen Treffer dar Das Konzept der Phrasenanfrage wird von Nutzern gut verstanden und einigermaßen häufig verwendet (10% der Anfragen sind phrasal) Es reicht nicht, nur <Term : docID>-Einträge zu speichern

Erster Versuch: Zweiwort-Indexe Indexiere jedes aufeinanderfolgende Paar von Termen im Text als Phrase Beispieltext: “Friends, Romans, Countrymen” Zweiworte: friends romans romans countrymen Jedes dieser Zweiworte wird nun ein Eintrag im Verzeichnis Zweiwort Phrasenanfragen können nun einfach behandelt werden

Längere Phrasenanfragen Beispiel: stanford university palo alto Behandlung als boolesche Kombination von Zweiwortanfragen: stanford university UND university palo UND palo alto Nachbetrachtung der gefundenen Dokumente notwendig Falsch-positive Lösungen möglich!

Denkaufgabe: Können wir den nachträglichen Dokumentenabgleich zur Vermeidung von falsch-positiven Ergebnissen vermeiden?

Positionsbezogene Indexe Speichere für jeden Term folgende Einträge: <Anzahl der Dokumente, die Term enthalten; Doc1: Position1, Position2 … ; Doc2: Position1, Position2 … ; …>

Beispiel: Positionsbezogener Index 1: 7, 18, 33, 72, 86, 231; 2: 3, 149; 4: 17, 191, 291, 430, 434; 5: 363, 367, …> Welche der Dokumente 1,2,4,5 enthalten “to be or not to be”? Datenkomprimierung möglich Allerdings erhöht sich der Speicherverbrauch substantiell

Verarbeitung einer Phrasenanfrage Extrahiere die Einträge im invertierten Index für to, be, or, not. Verschmelze die Dok-Positions-Listen um alle Positionen zu finden mit “to be or not to be”. to: 2:1,17,74,222,551; 4:8,16,190,429,433; 7:13,23,191; ... be: 1:17,19; 4:17,191,291,430,434; 5:14,19,101; ... Auch anwendbar für Suchen mit “In der Nähe von”-Operatoren

Denkaufgabe: Finde alle Dokumente, die ein Wort enthalten, das mit “mon” beginnt. Wie realisieren?

Platzhalter-Anfragen: * mon*: Finde alle Dokumente, die ein Wort enthalten, das mit “mon” beginnt Verwendung eines B-Baums mit Eintragungen in lexikographischer Ordnung Finde alle Worte w, so dass mon ≤ w < moo

Denkaufgabe: Finde alle Dokumente, die ein Wort enthalten, das mit “mon” endet. Wie realisieren?

Platzhalter-Anfragen *mon: Finde Worte, die mit mon enden Mögliche Lösung: Erstelle B-Baum für Terme rückwärts geschrieben Realisierung der Anfrage als Bereichsanfrage: nom ≤ w < non.

Denkaufgabe: Wie können wir alle Terme (und damit Dokumente) finden, die auf pro*cent passen? Was machen wir bei se*ate AND fil*er?

B-Bäume für *’ne am Ende der Anfrage Bei Platzhaltern in der Mitte viele Konjunkte in der resultierenden Anfrage Was machen wir bei multiplen Platzhaltern? Neuer Ansatz: Transformiere Anfrage, so dass Platzhalter am Ende der Anfrage auftreten  “Permuterm”-Index

Permuterm-Index Für Term hello erstelle Indexeinträge: hello$, ello$h, llo$he, lo$hel, o$hell, $hello Wobei $ ein spezielles Symbol ist Behandlung von Anfragen: X suche unter X$ X* suche unter $X* *X suche unter X$* *X* suche unter X* X*Y suche unter Y$X* Anfrage = hel*o X=hel, Y=o Suche unter o$hel* Herbert Marvin Ohlman Around 1957

Denkaufgabe: Wie behandeln wir X*Y*Z?

Permuterm-Anfrageverarbeitung Rotiere Anfrageplatzhalter nach rechts Verwende B-Baum-Zugriff wie bekannt Permuterm-Problem: ≈ Vervierfachung quadruples der zu speichernden Daten im “Lexikon” Empirisches Resultat für das Englische

Bigramm-Indexe Bestimme alle n-Gramme (Sequenz von n Zeichen), die in den Termen vorkommen Beispieltext “April is the cruelest month” Wir erhalten folgende 2-Gramme (Bigramme) $ ist ein besonderes Abgrenzungssymbol Aufbau eines invertierten Index für Bigramme auf Verzeichnisterme, in denen der Index vorkommt $a,ap,pr,ri,il,l$,$i,is,s$,$t,th,he,e$,$c,cr,ru, ue,el,le,es,st,t$, $m,mo,on,nt,h$

Beispiel: Bigramm-Index mace madden mo among amortize on among sponge

Verarbeitung von n-Gramm-Platzhaltern Anfrage mon* kann als $m AND mo AND on formuliert werden Schnell und speichereffizient Hole Terme und gleiche die UND-Version der Platzhalteranfrage ab Leider kriegen wir z.B. auch moon zu fassen Nachverarbeitung notwendig Überlebende Terme führen dann über den Term-Dokument-Index zum Dokument (und ggf. zur Position darin zur Hervorhebung)

Non-Standard-Datenbanken Volltextindizierung und phrasale Anfragen Phrasale Anfragen Volltextindizierung Einfache Anfragen

Chr. Manning, P. Raghavan, H. Schütze Die Präsentationen sind inspiriert durch: http://web.stanford.edu/class/cs276/ Vgl. auch: G: Salton; E. A. Fox; H. Wu, Extended Boolean information retrieval, Commun. ACM, 26 (11): 10-22, 1983 R. Baeza-Yates,; B. Ribeiro-Neto, Modern information retrieval, Addison-Wesley, 1999 S. Büttcher, Ch.L.A. Clarke, G.V. Cormack,, Information Retrieval: Implementing and Evaluating Search Engines. Cambridge, Massachusetts: MIT Press. 2010

Native Techniques Built from scratch NatiX (University of Mannheim, Germany) Xyleme (France) Xindice (Apache – open source) TIMBER (U. of Michigan; uses Shore). Re-tool existing systems to handle XML Tamino: hierarchical database (ADABAS) Excelon: OODB Design efficient data structures for compact storage and fast access; data partitioning; indexing on both values and structure Storing XML

Ausblick Temporale, räumliche und multimodale Datenbanken Sequenzdatenbanken