Datenbanken und Informationssysteme



Ähnliche Dokumente
Übung Medienretrieval WS 07/08 Thomas Wilhelm, Medieninformatik, TU Chemnitz

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Jakarta Lucene. Eine Java-Bibliothek zur Suchindex-Erstellung. Seminararbeit Tilman Schneider

2 Evaluierung von Retrievalsystemen

Suchen und Finden mit Lucene und Solr. Florian Hopf

Suchmaschinenalgorithmen. Vortrag von: Thomas Müller

Computerlinguistik im Service Management eine neue Suche für TOPdesk

Suchmaschinen mit Lucene und SEMS

design kommunikation development

Übungsaufgaben. Aufgabe 1 Internetsuchmaschinen. Einführung in das Information Retrieval, 8. Mai 2008 Veranstaltung für die Berufsakademie Karlsruhe

Erfolgreich suchen im Internet

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

Eine Abfrage (Query) ist in Begriffe und Operatoren unterteilt. Es gibt zwei verschiedene Arten von Begriffen: einzelne Begriffe und Phrasen.

Erwin Grüner

Kill Keyword Density. Weshalb die Keyword Density blanker Unsinn ist.

Algorithmen und Datenstrukturen

Grundbegriffe der Informatik

Seminar Text- und Datamining Textmining-Grundlagen Erste Schritte mit NLTK

e-books aus der EBL-Datenbank

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

Wie Google Webseiten bewertet. François Bry

HS Information Retrieval

Praktikum Information Retrieval Wochen 12: Suchmaschine

Textdokument-Suche auf dem Rechner Implementierungsprojekt

Modellierung und Programmierung 1

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Portfolio: "Die Ratten" von Gerhart Hauptmann

IAWWeb PDFManager. - Kurzanleitung -

WMS Block: Management von Wissen in Dokumentenform PART: Text Mining. Myra Spiliopoulou

Acht Gute Gründe für Integration und einen Content Backbone

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop.

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Informatik 12 Datenbanken SQL-Einführung

USB KEYBOARD CHARACTER ASSIGNMENT für OM-Gryphon USB, Gryphon x30, Heron D130 SB3570, Firescan 2.x und Touch Pro 2.x

Allgemeiner Leitfaden zum Einfügen suchmaschinenoptimierter Texte

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Vorkurs Informatik WiSe 15/16

Maschinelle Übersetzung

Online-Dienste des EPA

Word 2010 Schnellbausteine

kleines keyword brevier Keywords sind das Salz in der Suppe des Online Marketing Gordian Hense

Der Zwei-Quadrate-Satz von Fermat

Welche Textklassifikationen gibt es und was sind ihre spezifischen Merkmale?

Übung 9 - Lösungsvorschlag

DB2 Kurzeinführung (Windows)

Datenbanken Microsoft Access 2010

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Einführung in Javadoc

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten?

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

impact ordering Info Produktkonfigurator

Installation der SAS Foundation Software auf Windows

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Erfahrungen mit Hartz IV- Empfängern

Mean Time Between Failures (MTBF)

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Aktuell 2014 als Startseite der PK-Website auf Firefox einstellen

Professionelle Seminare im Bereich MS-Office

Strategie & Kommunikation. Trainingsunterlagen TYPO3 Version 4.3: News Stand

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

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Anleitung über den Umgang mit Schildern

Online-Sendungsverfolgung. Morgenpost Briefservice GmbH

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Überblick. Lineares Suchen

User Manual Data 24. Login und Layout

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Vorlesung Information Retrieval Wintersemester 04/05

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

Multicheck Schülerumfrage 2013

GSD-Radionik iradionics Android-App

Optimieren Sie Ihre n2n Webseite

Einführung in. Logische Schaltungen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Generelle Info s zur elektronischen Stecktafel der Tennisabteilung

Transkript:

Datenbanken und Informationssysteme Information Retrieval: Konzepte und Beispiele Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16

Übersicht Konzepte des Information Retrieval Architektur von Apache Lucene Beispiel mit Apache Lucene

Information Retrieval Information Retrieval befasst sich mit der Repräsentation von, dem Suchen in, der Manipulation von großen Sammlungen elektronischer Texte und nicht-textueller Dokumente.

Beispiele Suchmaschinen im Internet Digitale Bibliothekssysteme Experten-Informationssysteme Informationssysteme in großen Unternehmen Desktop-Suchsysteme

Suchmaschinen im Internet Einfache, intuitive Benutzerschnittstelle für die Formulierung einer Suche Effizienz: schnelle Antwort Basis: Caching und Replikation, Web Crawler Effektivität: akkurate Antwort Basis: Algorithmen für Rangfolgen nach Relevanz für die Suchergebnisse

Komponenten eines IR-Systems User - Informationsbedürfnis Anfrage Antwort Original- Dokument Suchmaschine Index

Konzept des invertierten Index Zerlegung der Originaldokumente in Tokens Dictionary = Liste aller Terme im Vokabular (alphabetisch sortiert) Postings List = Liste aller Positionen, an denen ein Term vorkommt (nach Position sortiert) Position = Paar aus DocId und Offset

Beispiel: Shakespeares Dramen Dictionary Postings Lists... first 1:2205, 1:2268,... 22:265,... 37:36886... hurlyburly 9:30963, 22:293... thunder 1:36898, 5:6402,... 22:256, 22:278,... 37:12538... witch witchcraft 1:1595, 1:27555,... 37:10675 1:7174, 5:34316,... 37:24805... Quelle: Büttcher et al.

Weitere Informationen in einem invertierten Index N t document frequency = Zahl der Dokumente, die Term t enthalten tf t,d term frequency = Anzahl von Term t in Dokument d l d document length = Zahl der Tokens in Dokument d l avg average length = Durchschnittliche Zahl der Tokens pro Dokument N = Zahl der Dokumente in der Sammlung

Tf-idf-Maß tf t,d term frequency = Häufigkeit, in der Term t in Dokument d vorkommt. idf t inverse document frequency = Seltenheit des Terms in allen Dokumenten idf t log N N t Gewicht des Terms t im Dokument d: tf t,d ˆ idf t

Arten von Indexen Docid Index: Postings List eines Terms enthält nur die Docid d Ñ geeignet für Boolesche Suche und einfaches Ranking Frequency Index: Postings List eines Terms enthält Docid und Wert der term frequency pd, f t,d q Ñ geeignet für effektive Ranking-Verfahren, aber nicht für Phrasensuche Positional Index: Postings List eines Term enthält Docid, term frequency und Positionen im Dokument pd, f t,d, ă p 1, p 2,..., p f t,d ąq Ñ geeignet für alle Arten der Suche, auch Phrasensuche, sowie diverse Ranking-Verfahren

Verfahren für Suche und Ranking Übersicht Vector space model Vektormodell Proximity ranking Boolesche Suche Terme kombiniert mit AND, OR und NOT Boolesche Suche mit anschließendem Ranking

Vector space model Idee Jeder Term im Dictionary ist die Dimension eines n-dimensionalen Vektorraums Ein Dokument ist ein Vektor in diesem Vektorraum: d i pw i,1, w i,2... w i,t q mit Gewichten w i,j für die Bedeutung des Terms j in Dokument i Eine Suche (Query) ist auch ein Vektor in diesem Vektorraum: q pw 1, w 2... w t q Die Ähnlichkeit ist der Winkel zwischen den beiden Vektoren.

Berechnung des Winkels Gegeben zwei Vektoren x und y in einem n-dimensionalen Vektorraum gilt: x y x y cosθ wobei x y das Skalarprodukt der Vektoren ist und x bzw y die Länge der Vektoren bezeichnet. Winkel: Also: cosθ d tř i 1 i 1 x 2 i tř x i y i d tř i 1 simp d, qq d q d q y 2 i

Proximity ranking Idee Zu einem Termvektor q pt 1, t 2... t n q definiert man die Überdeckung (cover) in einem Dokument als das kleinste Intervall ru, vs, das alle Terme enthält. Bilden der Rangfolge zu einem Termvektor einer Anfrage: 1 Je kürzer die Überdeckung, desto relevanter das Dokument 2 Je mehr Überdeckungen im Dokument, desto relevanter das Dokument

Boolesche Suche Idee Terme in der Anfrage werden durch logische Operatoren verbunden: and, or und not Oft wird die Boolesche Suche mit dem Bilden einer Rangfolge im zweiten Schritt verbunden. Lucene z.b. führt (bei entsprechender Anfrage) Boolesche Suche durch und bildet hinterher mit dem Vektormodell eine Rangfolge (Scoring).

Token und Terme Voraussetzung ist die Zerlegung der Dokumente in Tokens Linguistische Aufbereitung des Tokens Je nach Sprache unterschiedlich Komplexe Angelegenheit, hier nur einige Andeutungen

Groß-/Kleinschreibung und Satzzeichen I.B.M. = IBM, U.S. = US, aber C++ = C? I ll = ill? oder = i ll? oder = I will? Normalisierung durch Kleinschreibung, aber U.S. = US = us? Zitate? I ll be back aus Terminator I will be back

Stammformen gehen, ging, gegangen Ñ Stammform Porter stemmer nach Martin Porter reduziert Worte, aber keine linguistische Stammform Stemmer gibt es heute für viele Sprachen, z.b. Snowball stemmer für europäische Sprachen (auch von Martin Porter)

Funktions- und Stoppworte Funktionsworte modifizieren andere Worte oder geben grammatikalische Beziehungen an: z.b. Präpositionen, Artikel, Pronomen, Konjunktionen u.ä. Bei der Suche helfen sie in der Regel nicht, man blendet sie aus: stop words aber: to be or not to be that is the question Ñ question

k-gram-index ein alternativer Ansatz k-gram = Sequenz von k Zeichen, inklusive Leerzeichen Die Terme des Dictionary sind alle k-gramme Beispiel: To be or not to be that is the question" 5-Gramme: _to_b, to_be, o_be_, _be_o, be_or, e_or_, _or_n, or_no.... k-gram-indexe geben oft sehr akkurate Suchergebnisse, gerade bei europäischen oder CJK-Sprachen k-gramme können zur Spracherkennung verwendet werden

Übersicht Konzepte des Information Retrieval Architektur von Apache Lucene Beispiel mit Apache Lucene

Architektur von Lucene Original- Dokument Document Converter Anfrage Document QueryParser Document R IndexWriter R Analyzer Query IndexSearcher R IndexReader Lucene Index Apache Lucene Architektur -- Überblick

Lucene Document Document 1 1..* Field 1 1 1 1 Eigenschaften von Feldern Index.ANALYZED Index.NOT_ANALYZED Index.NO Store.YES Store.NO TermVector.YES TermVector.WITH_POSITIONS Name Value

Beispiel zweier Documents author = Stefan Büttcher, Charles, L.A. Clarke, Gordon V. title = Information Retrieval: Implementing and Evaluati Engines path = c:\ebooks\eb_büttcher... contents=... author = Christopher D. Manning, Prabhakar Raghavan, Hinri title = Introduction to Information Retrieval path = c:\ebooks\eb_manning... contents=...

Analyzer und IndexWriter IndexWriter verwendet Analyzer als Strategie für die Token-Ermittlung Analyzer: WhitespaceAnalyzer SimpleAnalyzer StopAnalyzer KeywordAnalyzer StandardAnalyzer

Lucene Index Segmente = Teilindexe, die gemischt werden können Segment enthält: Feldnamen Gespeicherte Feldinhalte Term Dictionary Daten zur Term Frequency Termvektoren...

Query und QueryParser Feld bzw. Default: title:information TermQuery: lucene BooleanQuery: java and lucene oder +java +lucene PhraseQuery: title:"information Retrieval" PrefixQuery: Info*...

Übersicht Konzepte des Information Retrieval Architektur von Apache Lucene Beispiel mit Apache Lucene

Demonstration Desktopsuche Suche nach Information Retrieval Suche nach +Information -Retrieval Suche nach title:"information Retrieval"

Document Converter <<interface>> Converter <<returns>> Document <<returns>> <<uses>> <<interface>> Decorator {abstract} AbstractConverter EbDecorator PDFConverter HTMLConverter TXTConverter

Indexierung Codestruktur //create index writer writer = new IndexWriter( FSDirectory.open(idxDir), new StandardAnalyzer(Version.LUCENE_CURRENT, StopWords.getStopWords()), true, IndexWriter.MaxFieldLength.UNLIMITED); // index documents in docdir indexdocs(docdir, writer); // optimize writer.optimize(); writer.close();

Indexierung Codestruktur, 2 //foreach file in docdir Converter c = null; try { if ( filename.endswith(".pdf") ){ c = new PDFConverter(); } else //.., html, htm, txt etc //convert and decorate Decorator d = new EbDecorator(); Document doc = d.decorate( c.convert( fileordir) ); writer.adddocument( doc );

Suche Codestruktur // process query statement Query query = null; Analyzer analyzer = new StandardAnalyzer( Version.LUCENE_CURRENT, StopWords.getStopWords() ); QueryParser parser = new QueryParser( Version.LUCENE_CURRENT, "contents", analyzer ); parser.setdefaultoperator( QueryParser.AND_OPERATOR ); try { query = parser.parse( qry ); } catch (ParseException e) {... }

Suche Codestruktur, 2 // search index IndexReader reader = null; try { reader = IndexReader.open(FSDirectory.open(idxDir), true); } catch (IOException e) {... } Searcher searcher = new IndexSearcher(reader); TopDocs topdocs = null; try { topdocs = searcher.search( query, null, 100 ); } catch (IOException e) {... }

Literatur Stefan Büttcher, Charles, L.A. Clarke, Gordon V. Cormack Information Retrieval: Implementing and Evaluating Search Engines MIT Press, 2010 Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze Introduction to Information Retrieval Cambridge University Press, 2008 Michael McCandless, Erik Hatcher, Otis Gospodnetić Lucene in Action 2nd Edition Manning, 2010