Prototypische Komponenten eines Information Retrieval Systems: Vektormodell



Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

2 Evaluierung von Retrievalsystemen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Informationsblatt Induktionsbeweis

1 Vom Problem zum Programm

Professionelle Seminare im Bereich MS-Office

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Algorithmen und Datenstrukturen

Wie halte ich Ordnung auf meiner Festplatte?

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!.

Algorithmen II Vorlesung am

Anleitung über den Umgang mit Schildern

Einführung in die Programmierung

Thematische Abfrage mit Computerlinguistik

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

Vorlesung Text und Data Mining S9 Text Clustering. Hans Hermann Weber Univ. Erlangen, Informatik

Konzepte der Informatik

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Primzahlen und RSA-Verschlüsselung

1 topologisches Sortieren

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Datenbanken Microsoft Access 2010

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Gezielt über Folien hinweg springen

Die Einfache Suche finden Sie auf den Onleihen in der linken oder in der rechten Spalte oder im Headerbereich bzw. im Kopf der Homepage.

CodeSaver. Vorwort. Seite 1 von 6

Lehrer: Einschreibemethoden

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Anwendertreffen 20./21. Juni

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Korrelation (II) Korrelation und Kausalität

Datenbanken Kapitel 2

Programmierung in C. Grundlagen. Stefan Kallerhoff

Hardware - Software - Net zwerke

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Erstellen von x-y-diagrammen in OpenOffice.calc

Repetitionsaufgaben Wurzelgleichungen

Projektmanagement in Outlook integriert

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Geld Verdienen im Internet leicht gemacht

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

Kurzübericht der implementierten Funktionen der Fachinformatiker -== Info Datenbank ==-

Feiertage in Marvin hinterlegen

Objektorientierte Programmierung

Aktualisierung zum Buch Windows und PostgreSQL

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

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

multisign Signatur-Prüfwerkzeug Handbuch Security Networks AG Stand:

Anspruchsvolle Dreierausdrücke zum selbstständigen Lernen

Dokumentation. estat Version 2.0

Etikettendruck mit Works 7.0

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop.

Musterlösungen zur Linearen Algebra II Blatt 5

Dokument Lob erstellen

Word 2010 Schnellbausteine

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Programmierkurs Java

Auftragsbearbeitung 3.1

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Einführung in die C++ Programmierung für Ingenieure

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

Kreativ visualisieren

Abwesenheitsnotiz im Exchange Server 2010

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Erstellung von Präsentationspostern

Installationsanleitung für das KKL bzw. AGV4000 Interface

Sparen in Deutschland - mit Blick über die Ländergrenzen

SEP 114. Design by Contract

Datenaufbereitung in SPSS. Daten zusammenfügen

Einfügen von Bildern innerhalb eines Beitrages

TrueCrypt Anleitung: Datenschutz durch Festplattenverschlüsselung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Zwischenablage (Bilder, Texte,...)

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Aufklappelemente anlegen

FAQ Verwendung. 1. Wie kann ich eine Verbindung zu meinem virtuellen SeeZam-Tresor herstellen?

Media Teil III. Begriffe, Definitionen, Übungen

Daten sammeln, darstellen, auswerten

7 Rechnen mit Polynomen

Ein neues System für die Allokation von Spenderlungen. LAS Information für Patienten in Deutschland

AutoTexte und AutoKorrektur unter Outlook verwenden

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Erwin Grüner

Das Blabla des LiLi-Webteams. Browser. HTML-Dateien. Links & Webadressen. ROXEN.

Hilfedatei der Oden$-Börse Stand Juni 2014

Handbuch zum Statistiktool Pentaho Stand: Dezember 2013

Erstellen der Barcode-Etiketten:

Simulation LIF5000. Abbildung 1

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

Installation OMNIKEY 3121 USB

Outlook und Outlook Express

! Tipps und Tricks Sie können den Windows Explorer am einfachsten mit der Tastenkombination Windows+ E öffnen.

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Große Übung Praktische Informatik 1

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows

4 Aufzählungen und Listen erstellen

Transkript:

Prototypische Komponenten eines Information Retrieval Systems: Vektormodell Implementierung & Präsentation: Stefan Schmidt (Uni Mannheim) Kontakt: powder@gmx.de Seminar: Information Retrieval WS2002/2003 Leiterin: Privatdozentin Dr. Karin Haenelt Institut für Computerlinguistik Uni Heidelberg

Gliederung 1. Theorie 2. Praxis: Implementierung 3. Vorführung 4. Zusammenfassung 5. Quellen

1. Theorie

Worum geht es thematisch? Menge von Dokumenten Informationsbedürfnis Anfrage an ein Programm Anzeige Liste relevanter Dokumente Evaluation der Dokumente durch User => Information Retrieval - Menge von Dokumenten: Auf der Festplatte oder im Internet. In diesem Fall einfache Textdateien mit einer größe von einigen kilobyte. - Informationsbedürfnis: Der Benutzer möchte etwas über ein für ihn interessantes Thema herausfinden und zu diesem Zweck Dokumente mit thematisch relevanten Inhalten in der Dokumentenmenge finden - Anfrage an ein Programm: Um die Dokumente thematisch einzugrenzen gibt der Benutzer Suchterme in das Interface ein. Beispiel: bei Google computerlinguistik uni heidelberg - Anzeige Liste relevanter Dokumente: Das System durchsucht die Dokumente bzw. den Index nach den Suchtermen mithilfe eine bestimmten Algorithmus und zeigt eine nach Relevanz sortierte Liste der interessanten Dokumente an (Ranking) - Evaluation der Dokumente durch User: Der Benutzer wählt die für ihn interessanten Dokumente aus der Liste aus und evaluiert diese hinsichtlich seines Informationsbedürfnisses. Wenn die Inhalte nicht interessant sind, dann stellt er eine erneute Anfrage mit veränderten Suchtermen

Zentrales Thema: Ranking Precision sollte hoch sein Recall sollte ebenfalls hoch sein Deshalb wichtig: Ranking-Algorithmus Beispiel: Vektormodell [engl.: Vector Space Model] - Precision: Wieviele Dokumente in der Antwortmenge sind relevant für den Benutzer? - Recall: Wieviele der relevanten Dokumente in der Dokumentenmenge hat das IR-System gefunden? - Ranking-Algorithmus: Es gibt unterschiedlichste Möglichkeiten die Liste der relevanten Dokumente zu berechnen. Beispiele: Boolsches Modell (Ist Term enthalten ja/nein), Probabilistisches Modell (Arbeitet mit Wahrscheinlichkeiten) und - Vektormodell: Das von mir benutzte Retrievalmodell

Indexterme Repräsentation der Dokumente durch Indexterme z.b. Der Student geht in das Seminar [ ] Indexterme: Student, geht, Seminar, Vorlesung, Uni, Stoppwörter: Der, in, das, - Repräsentation: Wie soll können die Daten für eine effiziente Nutzung durch das Informationretrievalsystem aufbereitet werden - Beispiel: Ein Satz aus einem längeren Dokument - Indexterme: Relevante Wörter mittlerer Häufigkeit - Stoppwörter: Wörter hoher Häufigkeit ohne Aussage für den Inhalt des Dokuments

documentvector Indexterme werden abgelegt in documentvector z.b. documentvector = ( 1, 3, 5, 0, 0 ) 1xStudent, 3xgeht, 5xSeminar, 0xVorlesung, 0xUni - documentvector: Repräsentation eines Dokuments mit Hinblick auf eine Suchanfrage des Informationretrievalsystems. Enthält die Häufigkeiten der Indexterme. - Häufigkeit: In dem Gesamtdokument kommen die Indexterme so-und-sooft vor

queryvector Suchterme werden abgelegt in queryvector z.b. queryvector = (1, 0, 1, 0, 0) Suchanfrage: Student Seminar - queryvector: Repräsentation der Anfrage mit Hinblick auf die Berechnung der Ähnlichkeit zwischen einer Anfrage und eines Dokuments der Dokumentenmenge. Jeder gefundene in der Suchanfrage vorhandene Indexterm wird durch eine 1 im queryvector dargestellt

similarity Berechnung der similarity (Ähnlichkeit) (d1*q1) + (d2*q2) sim(d,q)= --------------------------------------------------- sqrt(d1*d1+d2*d2) * sqrt(q1*q1+q2*q2) sqrt=squareroot (Wurzel) d=documentvector q=queryvector d1= 1. element des Vektors, usw. - Similarity: Beim Vektormodell wird die Ähnlichkeit zwischen dem queryvector und den documenvectors berechnet. Dies geschieht durch direkten mathematischen Vergleich der Vektoren. Die Formel leitet sich aus dem Cosinus des Winkels zwischen den beiden Vektoren her. Je höher die Ähnlichkeit der Vektoren ist, desto höher steht das jeweilige Dokument im Ranking.

Problem bei Berechnung der similarity Länge der Vektoren bleibt unberücksichtigt Lösung: Term Frequency und Inverse Document Frequency - Lösung: Berücksichtigung der Häufigkeit eines Terms innerhalb des Dokuments und innerhalb der Dokumentenmenge

TF Term Frequency (TF) Welche Terme kommen häufig vor? Frequenz des Terms in Dokument tf = ---------------------------------------------------- Max. Frequenz eines Terms in Dok. - Term Frequency: Die normalisierte Häufigkeit eines Indexterms innerhalb eines Dokuments

IDF Inverse Document Frequency (IDF) Welche Terme sind aussagekräftig? Gesamtzahl der Dokumente IDF= log ---------------------------------------- Anzahl Dok. mit Term t - Inverse Document Frequency: Die logarithmisierte inverse Häufigkeit des Terms in allen Dokumenten

Neuer documentvector Pro Term jeweils ein Neues Termdokumentgewicht w = tf * idf Werte ersetzen documentvector Bessere Berechnung der similarity - Werte: Die neue berechneten Werte ersetzen den bisherigen documentvector - similarity: Nun werden bessere Ergebnisse bei der Berechnung der similarity erzielt

Eigenschaften Vektormodell Vorteil: Ranking Vorteil: Skalierbarkeit Nachteile: Annahme der Unabhängigkeit der Suchterme - Ranking: ist besser als beim Boolsches Modell - Skalierbarkeit: Funktioniert auch gut für große Datenmengen - Annahme der Unabhängigkeit der Suchterme: Es wird nicht berücksichtigt, dass einzelne Terme unter Umständen zueinander in Beziehung stehen

2. Praxis: Implementierung

Anforderungen an das System Eingabemaske für Suchterme Einlesemodul für Dateien Beliebige Anzahl Suchtermen & Dateien Rankingberechnung und Ausgabe - Eingabemaske für Suchterme: Möglichkeit für den Benutzer die Suchterme einzugeben - Einlesemodul für Dateien: Externe Daten sind verwendbar - Beliebige Anzahl Suchtermen & Dateien: Testcorpus hat 16 Dateien - Rankingberechnung und Ausgabe: Eine Tabelle der Suchergebnisse soll erstellt werden mit den Dokumenten in der Reihenfolge der Relevanz

Technologien Windows XP Visual Studio.NET Sprache: C++ - Windows XP: Unter Windows entwickelt - Visual Studio.NET: Sehr gute Integrierte Entwicklungsumgebung für Programmierung mit Visual Basic, C#( C-Sharp ) und C++ - Sprache: Bisher mit Java gearbeitet, jetzt mal C++ ausprobiert

Systemarchitektur Prototyp enthält ~400 Zeilen Quellcode Funktionen: main() readfile() splitstring() sim() sortranking() main() enthält Programmkern readfile() liest Datei ein splitstring() teilt Text in Wörter auf sim() berechnet similarity von Vektoren sortranking() sortiert Rankingtabelle

Ablauf des Programms 1. Definition Variablen 2. Eingabe Suchterme 3. Einlesen der Dateien und Aufteilung in Wörter 4. Bestimmung der Frequenz der Indexterme 5. Bestimmung von TF/IDF-Werten 6. Berechnung Similarity und einfügen in Rankingtabelle 7. Sortieren der Rankingtabelle 8. Ausgabe der Rankingtabelle Definition Variablen: Hauptsächlich Doubles, Vectors und Vectors of Vectors Eingabe Suchterme: Einfach über die Kommandozeile Einlesen der Dateien und Aufteilung in Wörter: Alle Dateien im corpus- Verzeichnis werden eingelesen und in Wörter aufgetrennt zwischen Leerstellen, Kommas, Punkten, Klammern, etc. Bestimmung der Frequenz der Indexterme: Die Häufigkeit der Indexterme in jedem Dokument wird bestimmt Bestimmung von TF/IDF-Werten: Für jedes Dokument/Termpaar wird die Termfrequency bestimmt und für jeden Term die Inverse Document Frequency Berechnung Similarity und einfügen in Rankingtabelle: Für alle Dokumente wird die similarity mit der Suchanfrage berechnet und das ergebnis wird in eine Rankingtabelle eingefügt Sortieren der Rankingtabelle: Das Dokument mit der höchsten Similarity steht oben Ausgabe der Rankingtabelle: Die Tabelle mit den Ergebnissen wird auf der Console ausgegeben

Quellcode sim()-funktion double sim (vector <double> dv, vector <int> qv) { double sim; // simularity double uppersum=0; double lowersum=0; double sumdoc=0; double sumquery=0; for(int i=0; i < (int) dv.size();i ++) { uppersum += dv[i]*qv[i ]; sumdoc += dv[i]*dv[i ]; sumquery += qv[i]*qv[i ]; } lowersum = sqrt (sumdoc) * sqrt (sumquery); if (lowersum!= 0) sim = uppersum / lowersum; else sim = 0; return sim; } Parameter: documentvector und queryvector Variablendefinitionen: Variablen zum abspeichern von Zwischenergebnissen Schleife: Läuft einmal durch die kompletten Vektoren und verrechnet die Komponenten der Vektoren If-Abfrage: Überprüfung wegen eventueller Nulldivision Rückgabewert: similarity

Quellcode sortranking()-funktion vector<vector<double> > sortranking(vector<vector<double> > ranking) { int size=ranking.size(); } for(int obergrenze=size-1;obergrenze>0;--obergrenze) { for(int pos=0;pos<obergrenze;++pos) { if(ranking[pos][1]<ranking[pos+1][1]) swap(ranking[pos],ranking[pos+1]); } } return ranking; Parameter: vector of vector of double Variablendefinitionen: Größe der Rankingtabelle Schleifen: Läuft einmal durch den kompletten Vektor If-Abfrage: Überprüfung der Reihenfolge. Falls falsch => Elemente vertauschen Rückgabewert: sortierter rankingvektor

3. Vorführung Informationretriever Testcorpus: Architekturtexte (achtung: probleme mit umlauten) 2 Durchläufe: 1) Frankreich Bauten Architektur - jugenstil.txt & breuer.txt liegen klar vorne, da alle 3 terme vorkommen - jugenstil an der spitze, da maximale Termfrequenz geringer ist - breites Mittelfeld (2 terme kommen vor) - Schlußlichter (1 term kommt vor) 2) Gropius Akademie - breuer.txt liegt klar an der spitze (beide terme kommen vor) - gropius.txt kommt an zweiter stelle, aber mit abstand wegen maximaler Termfrequenz - dann kommt das Mittelfeld und in den meisten Dokumenten kommt weder der eine noch der andere Term vor

Evaluierung der Algorithmen in Hinblick auf große Datenmengen Prototyp nur akzeptable Laufzeit für kleine Datenmengen Mögliche Verbesserungen: Quicksort anstatt Bubblesort Feste Indexterme Hashtabellen Sparse Matrix Algorithmen Feste Indexterme: Momentan Indexterme=Suchterme Hashtabellen: für Indextermsuche bei zehntausenden Termen Sparse Matrix Algorithmen: für dünnbesetzte große Matrizen

4. Zusammenfassung Prototyp Vektormodell / Datenmengen Effizienz Prototyp: demonstriert Möglichkeiten der Suche Vektormodell: interessant für große, variable Datenmengen Effiziente: Implementierung nötig für gute Skalierbarkeit

5. Literaturangaben Haenelt, Karin (2001): Information Retrieval Modelle. Seminarfolien. 26.10.2001. http://www.darmstadt.gmd.de/kontext/ haenelt/kurs/folien/ir-modelle.pdf Soboroff, Ian (2002) Vector Space Model. Kursfolien. 10.2002 http://www.csee.umbc.edu/~ian/irf02/lectures/07models-vsm.pdf Popescu, Andrei Radu (2001) Implementation of term weighting in a simple IR system. Kursprojekt. 06.2001 http://www.cs.helsinki.fi/u/popescu/docs/ir.pdf Microsoft Corporation (2003) MSDN Library. C++ Sprachreferenz. Laufend Aktualisiert. http://msdn.microsoft.com/ Das sind die Quellen die ich verwendet habe

Ende! Das wars!