SPRACHTECHNOLOGIE IN SUCHMASCHINEN IR-GRUNDLAGEN

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

Komplexität von Algorithmen:

Sprachtechnologie in Suchmaschinen

IR Seminar SoSe 2012 Martin Leinberger

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Übung Algorithmen und Datenstrukturen

Bioinformatik Für Biophysiker

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

Exkurs Eine Algorithm-Engineering-Fallstudie Volltextsuche mit invertiertem Index

Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/

2. Hausübung Algorithmen und Datenstrukturen

Grundlagen der Programmierung

Übersicht. Grundidee des Indexing Lucene Wichtige Methoden und Klassen Lucene Indizierungsbeispiele Lucene Suchbeispiele Lucene QueryParser Syntax

Volltextsuche und Text Mining

1 Boolesches Retrieval (2)

BLATT 1. Dieser Test soll mir helfen, Ihre Vorkenntnisse richtig einzuschätzen und die Seminarinhalte entsprechend anzupassen.

2. Effizienz von Algorithmen

Grundlagen der Informatik

Praxisteil. Seminar experimentelle Evaluierung in IR WS05/06 Gruppe A

Prototypische Komponenten eines Information Retrieval Systems: Vektormodell

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Inverted Files for Text Search Engines

Information-Retrieval: Unscharfe Suche

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2004 Termin:

Vorlesung Datenstrukturen

Information-Retrieval: Evaluation

Praktikum Information Retrieval Wochen 12: Suchmaschine

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Information Retrieval. Peter Kolb

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Übung Algorithmen und Datenstrukturen

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Von Labyrinthen zu. Algorithmen

Web Information Retrieval. Zwischendiskussion. Überblick. Meta-Suchmaschinen und Fusion (auch Rank Aggregation) Fusion

Algorithmen und Datenstrukturen 1 Kapitel 5

Boole'sches Modell <is web>

Interne Sortierverfahren

Computerlinguistik im Service Management eine neue Suche für TOPdesk

5. Suchmaschinen Herausforderungen beim Web Information Retrieval. Herausforderungen beim Web Information Retrieval. Architektur von Suchmaschinen

Automatische Rekonstruktion und Spezifizierung von Attributnamen in Webtabellen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1-1. Seminar -

Kombinatorik. Additions- und Multiplikationsgesetz

Komplexität von Algorithmen

Suchmaschinen. Anwendung RN Semester 7. Christian Koczur

dacore Datenbanksysteme AG Neue Konzepte zur Optimierung der Auslastungsplanung und Big Data im Informationsmanagement

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY. Vorlesung 4: Suche

Erweitertes boolsches Retrieval

Rückblick. Aufteilung in Dokumente anwendungsabhängig. Tokenisierung und Normalisierung sprachabhängig

Komplexität von Algorithmen OOPM, Ralf Lämmel

Algorithmen und Datenstrukturen I Grundlagen

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org

Übung Algorithmen I

Indexieren und Suchen

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Effiziente Algorithmen mit Python. D. Komm, T. Kohn

Sortierverfahren für Felder (Listen)

Evaluierung von Suchmaschinen Qualitätsvergleich von Google- und Bing- Suchergebnissen unter besonderer Berücksichtigung von

Boolesche- und Vektorraum- Modelle

Grundlagen: Algorithmen und Datenstrukturen

Prof. Dr. Margarita Esponda

4. Implementierung von IR-Systemen

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Teil VII. Hashverfahren

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

Datenbank-Recherche. SS Veranstaltung 16. April Philipp Mayr - Philipp Schaer -

Retrieval Modelle. Boolesche- und Vektorraum- Modelle. Weitere Modell-Dimensionen. Klassen von Retrieval Modellen. Boolesche Modelle (Mengentheorie)

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)

Algorithmik Kap. 2: Laufzeit von Algorithmen

Abschnitt: Algorithmendesign und Laufzeitanalyse

2.7 Der Shannon-Fano-Elias Code

Algorithmen und Datenstrukturen 12

Algorithmen und Datenstrukturen

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Programmiertechnik II

Welche Textklassifikationen gibt es und was sind ihre spezifischen Merkmale?

Algorithmen und Datenstrukturen (EI)

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018

So funktionieren Suchmaschinen


Ausgewählte Algorithmen: Sortieren von Listen

6. Probabilistische Retrievalmodelle. Norbert Fuhr

Zusatzübung. Abgabetermin: Gruppe: G1 (Löberbauer) G2 (Prähofer) G3 (Prähofer)

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

13. Bäume: effektives Suchen und Sortieren

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87

Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14

Bioinformatik Für Biophysiker

Transkript:

SPRACHTECHNOLOGIE IN SUCHMASCHINEN IR-GRUNDLAGEN HAUPTSEMINAR SUCHMASCHINEN COMPUTERLINGUISTIK SOMMERSEMESTER 2016 STEFAN LANGER STEFAN.LANGER@CIS.UNI -MUENCHEN.DE

Übung (Gruppenarbeit, 10-15 min.) Sie haben ein Korpus mit 5 Millionen Nur-Text-Dokumenten und einer Gesamtgröße von ca 10 GB (auf einer lokal zugänglichen Maschine). Sie haben mit einem Team von 3 Leuten 3 Tage Zeit eine Anwendung zu entwickeln die es erlaubt: 1. möglichst schnell alle Dokumente zu finden, in denen ein bestimmter Term auftaucht 2. Kombinationen aus mehreren Termen, die im Dokument enthalten sind Machen Sie einen Plan. 2

Resultate der Übung - Fertige Suchemaschinenbibliothek (Lucene) Module implementieren: - Crawler - Tokenizer (inkl Normalisierung) - Indexer/Index - Indexabfrage 3

IR Grundlagen - Index Texte durchsuchen: mit grep dies stößt bei größeren Textmengen schnell an die Grenzen des Machbaren Mithilfe eines Indizes: Invertierte Dateien (inverted index) Grundidee der Implementierung: Hash oder Trie (aber Indizes von großen Suchmaschinen sind noch wesentlich optimierter) 4

Invertierter Index Zerlegung des Dokuments in Terme Im einfachsten Fall: Zuordnung von Termen zu Dokument-Ids Dokument 1 Schöne Frauen gehören nach Cannes wie die Aschewolke an den isländischen Himmel Dokument 2 Getrocknetes Wasser, das vom Himmel fällt und Tiere ohne Flügel, die trotzdem fliegen können? Index schöne.d1 frauen.d1. himmel.d1/d2 wasser.d2 fliegen.d2 5

Implementierung eines invertierten Indexes Implementieren Sie einen invertierten Index Zu Übungszwecken: -Verwenden Sie eine in Ihrer Programmiersprache verfügbare Datenstruktur, die schnelles Nachschlagen von Termen (und Zuordnung zu Werten erlaubt) -Z.B. Hash, Trie, (Dictionary) 6

Retrieval mit boolschen Ausdrücken Verknüpfung von Suchtermen mit UND/ODER/NICHT Dokumenten-Ids für jede Teilquery Bilde Schnittmengen (UND) /Differenzmengen (NICHT) / bzw. Vereinigungsmengen (ODER) Effiziente Algorithmen verfügbar S. Abschnitt 1.3 im IR-Buch 7

Boolsche Operatoren UND (AND): beide Teilausdrücke müssen in einem Dokument auftreten Das ist der Default bei allen mir bekannten Websuchmaschinen Beispiel: UND( HAMLET, OPHELIA ) ODER (OR): einer der Teilausdrücke muss im Dokument auftreten Beispiel: ODER( Streichholz, Zündholz ) NICHT (NOT): negiere den dahinterstehenden Ausdruck Beispiel: UND( HAMLET,NOT( OPHELIA )) Kombinationen: z. B. ANDNOT = AND NOT 8

Komplexität von Algorithmen Die Komplexität eines Algorithmus liefert Anhaltspunkte dafür, wie lange ein Programm läuft, in Abhängkeit von den Eingabedaten Wieviele Resourcen (v.a. Prozessorzeit, Speicherplatz) es verbraucht Hierbei unterscheidet man in der Regel nach den Parametern: Schlechtester Fall Durchschnitt Bester Fall Jeder Algorithmus sollte auch für den schlechtesten Fall (falls dieser irgendwie möglich ist), noch mit den vorhandenen Resources zurechtkommen 9

Die O-Notation g(n) = O (f (n) ) z.b. g(n) = O (n 2 ) Hier ist: n die Größe der Eingabedaten. O (f(n)) bezeichnet eine Menge von Funktionen für die gilt: g(n) <= c*f(n) d.h. der Wert von G ist abhängig von f(n) mal einer Konstanten. 10

Schrankenfunktionen (Beispiele) Konstant : O (1) Logarithmisch: O (log N) Linear: O (N) n-log-n: O (N x log N) Quadratisch (polynomial mit Hochzahl 2): O (N 2 ) Exponentiell: O (k n ) 11

Beispiele Komplexität Was ist die Komplexität für Algorithmen zur Lösung der folgenden Aufgaben? Ist der erste Buchstabe eines Strings ein a Stringlänge Wie oft enthält ein String den Buchstaben a Frequenz aller Buchstaben in einem String 12

Beispiel Komplexität Beispiel: Vergleiche zwei Listen von Strings auf gleiche Einträge Parameter: Größe des Lexikons (N), Länge des zu suchenden Eintrags (L). 13

Komplexität Schnittmengenbildung Die Komplexität der Schnittmengenbildung für einen Index (Mengen nach Größe sortiert): - Naiver Ansatz: Vergleiche alle Elemente aus Menge 1 mit allen aus Menge 2: O (n 2 ) - Verbesserter naiver Ansatz: Sortiere die Elemente aus Menge 1 oder schreibe sie in einen Hash/Dictionary. Lookup von allen Elementen aus Menge 2 in Menge 1 (binäre Suche oder Hash-Lookup):O (n log n) (sortieren) - Index-Ansatz: lege die Mengen bereits nach Dokument-ID sortiert ab. Arbeite die sortierten Listen nach Dokument-ID ab. Linear O (N) 14

Trefferquote (Recall) und Genauigkeit (Precision) F A F A D Maß für die Qualität des Retrievals D: Alle Dokumente A: Relevante Dokument F: Gefundene Dokumente Recall = F A/A Precision F A/F 15

F-measure Fmeasure: f = 2 p r p+r Hier ist p: Precision und r: Recall (Harmonisches Mittel zwischen Precision und Recall) 16

Übung (10 min) Welche IR-Szenarien (i.e. welche Anforderungen von Benutzern an die Suche) kann mit einfachen boolschen Ausdrücken (UND/ODER/NICHT) auf einfachen Termen nicht ohne weiteres lösen? Wie könnten Lösungsmöglichkeiten für solche Szenarien aussehen? 17

Ergebnisse der Übung Welche IR-Szenarien lassen sich mit einfacher boolscher Suche nicht lösen: Ranking Termnähe (Phrasen, Terme die nahe beieinander stehen) Berücksichtung der Dokumentengröße und Termhäufigkeit Wichtigkeit eines Dokuments Dokumentenstrukur/Position des Suchterms im Dokument Vektor-Ähnlichkeitsmaße 18

Suche von Termfolgen und Nähe im durchsuchten Dokument Beispiele für Operatoren: PHRASE( Rot, Grün ) NAH(Rot,Grün) NAH(Rot,Grün,<ABSTAND>) GEORDNETES_NAH(Rot,Grün) 19