Präsenzübungsblatt Nr. 8 - Lehrstuhl 6, Fakultät für Informatik

Werbung
Technische Universität Dortmund
Lehrstuhl Informatik VI
Prof. Dr. Joachim Biskup
Pflichtmodul Informationssysteme (SS 2012)
Prof. Dr. Joachim Biskup
Leitung der Übungen: Yury Abelev, Michael Bulinski, Moritz Martens, Marcel Preuß
Präsenzübungsblatt Nr. 8
Präsenzaufgabe 1 (Information Retrieval, Precision-Recall-Diagramme)
Ein Precision-Recall-Diagramm ist ein 2-dimensionales Diagramm, bei dem zunächst die verschiedenen Recall-Werte eines Information-Retrieval-Systems auf der x-Achse abgetragen werden. Zu jedem Recall-Wert wird dann der größte Precision-Wert, der zusammen mit diesem
Recall-Wert auftritt, auf der y-Achse abgetragen.
Betrachtet folgende Rangordnungen, die von zwei verschiedenen Information-RetrievalSystemen erstellt wurden:
Rang
1
2
3
4
5
6
7
8
Dok.-Nr.
1024
2002
0768
3571
1213
6500
2716
8041
relevant?
x
x
x
x
Rang
1
2
3
4
5
6
7
8
Dok.-Nr.
1213
2716
0768
1024
8041
3571
6502
2002
relevant?
x
x
x
x
x
1. Berechnet für die beiden Information-Retrieval-Systeme nach jedem Dokument Precision
und Recall. Geht dabei von |REL| = 5 aus. Zeichnet anschließend jeweils ein PrecisionRecall-Diagramm.
2. Bewertet die folgenden Aussagen anhand der Berechnungen aus Teilaufgabe 1:
• Die Precision misst die Qualität eines Information-Retrieval-Systems.
• Der Recall misst die Qualität eines Information-Retrieval-Systems.
Präsenzaufgabe 2 (Information Retrieval, Oracle Text)
Beachtet für diese Aufgabe bitte die Informationen zu Oracle Text auf Seite 3 dieses Präsenzübungsblatts.
In der Oracle-Datenbank wurde eine Tabelle cocktails mit dem folgenden Befehl angelegt:
CREATE TABLE cocktails (
name VARCHAR2(50) PRIMARY KEY,
rezept VARCHAR2(4000) );
Pflichtmodul Informationssysteme
Präsenzübungsblatt Nr. 8
Dann wurden einige Dokumente in die Tabelle eingefügt und anschließend der folgende Befehl
ausgeführt:
CREATE INDEX idx_cocktail_ir ON cocktails(rezept) INDEXTYPE IS CTXSYS.CONTEXT;
Die Tabelle enthält in der Spalte rezept Cocktailrezepte. Die Spalte name enthält den Namen
des Cocktails.
1. Betrachtet die folgenden Oracle-Text-Anfragen und ihre Auswertungen:
SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept,’gemixt’,1) > 0;
NAME
------------Cosmopolitan
Manhattan
Margarita
SCORE(1)
-------5
5
5
SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept,’Erdbeersirup’,1) > 0;
NAME
------------Margarita
SCORE(1)
-------6
Sowohl das Wort gemixt als auch das Wort Erdbeersirup kommt im Margarita-Rezept
genau einmal vor. Stellt Vermutungen an, warum sich dennoch unterschiedliche SCOREWerte ergeben.
2. Was berechnen die folgenden Anfragen?
• SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept, ’Eis AND (Rum OR Whisky)’, 1) > 0
• SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept, ’Rum NOT Orange%’, 1) > 0
• SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept, ’?Whiskey’, 1) > 0
• SELECT name, SCORE(1)
FROM cocktails
WHERE CONTAINS(rezept, ’$mixen’, 1) > 0
2
Pflichtmodul Informationssysteme
Präsenzübungsblatt Nr. 8
Informationen zu Oracle Text:
Mit einem Index vom Typ CTXSYS.CONTEXT können Text-Retrieval-Anfragen auf den indizierten
Spalten ausgeführt werden. Oracle SQL stellt dafür die beiden Operatoren CONTAINS und SCORE
zur Verfügung:
• CONTAINS(column, query [, label])
bestimmt, als wie relevant das Dokument in der Spalte column bezüglich der Anfragezeichenkette query angesehen wird. Als Ergebnis wird eine Zahl zwischen 0 (nicht relevant) und 100 (sehr relevant) zurückgegeben. Optional ist es möglich, eine Zahl als label
anzugeben, um in der SELECT-Klausel mit dem SCORE-Operator auf das Ergebnis zuzugreifen.
• SCORE(label)
liefert das gleiche Ergebnis wie der CONTAINS-Operator mit dem gleichen label.
R
R
Genauere Informationen findet man in „Oracle
Text Reference“ und „Oracle
Text Application Developer’s Guide“.
3
Herunterladen