Ανάκτηση Δεδομένων (Information Retrieval) Παύλος Εφραιμίδης Βάσεις Δεδομένων Ανάκτηση Δεδομένων 1
Information Retrieval (1) Βάσεις Δεδομένων: Περιέχουν δομημένη πληροφορία: Πίνακες Ανάκτηση Πληροφορίας (Information Retrieval): Αφορά μη δομημένη πληροφορία ελεύθερο κείμενο ήχο εικόνα video Βάσεις Δεδομένων Ανάκτηση Δεδομένων 2
Information Retrieval (2) Βάσεις Δεδομένων: Υπάρχει συγκεκριμένη μοναδική απάντηση στα ερωτήματα Ανάκτηση Πληροφορίας (Information Retrieval): Αναζητάμε δεδομένα με βάση το βαθμό σχετικότητάς τους με κάποιο ερώτημα Βάσεις Δεδομένων Ανάκτηση Δεδομένων 3
Information Retrieval (3) Ανάκτηση Πληροφορίας: Όλοι έχουμε πρακτική εμπειρία με την ανάκτηση πληροφορίας: Η αναζήτηση δεδομένων στο διαδίκτυο με βάση τις μηχανές αναζήτησης είναι ένα χαρακτηριστικό παράδειγμα αναζήτησης πληροφορίας Αναζήτηση στο Διαδίκτυο: Σχηματίζουμε ένα ερώτημα με τους όρους που δίνουμε Παίρνουμε ως απάντηση μια λίστα διευθύνσεων ταξινομημένη με βάση το βαθμό σχετικότητάς τους Προαιρετικά επαναπροσδιορίζουμε το ερώτημα ώστε να βελτιώσουμε το αποτέλεσμα Βάσεις Δεδομένων Ανάκτηση Δεδομένων 4
Information Retrieval (4) Δύο πολύ βασικά κριτήρια την αξιολόγηση της ανάκτησης πληροφορίας: Ανάκληση (Recall): Πόσα από όλα τα σχετικά κείμενα που υπάρχουν βρέθηκαν Ακρίβεια (Precision): Από τα κείμενα που βρέθηκαν, πόσα έχουνπράγματισχέσημετηνερώτηση Τα δύο κριτήρια σχετίζονται άμεσα μεταξύ τους με ένα trade-off: Μπορούμε με προφανή τρόπο να βελτιώσουμε το ένα εις βάρος του άλλου Όσο πιο πολλά κείμενα συμπεριληφθούν στην απάντηση τόσο καλύτερο αναμένεται να είναι το recall όμως αντίστοιχα μπορεί να αυξηθεί και το ποσοστό των μη σχετικών κειμένων (μείωση του Precision) Βάσεις Δεδομένων Ανάκτηση Δεδομένων 5
Information Retrieval (5) Η λειτουργία ενός συστήματος Ανάκτησης Πληροφορίας για κείμενα (Ανάκτηση Κειμένων - Text Retrieval) περιλαμβάνει ορισμένα στάδια: Όλα τα κείμενα της συλλογής κειμένων αναλύονται Διακρίνονται οι λέξεις Κάθε λέξη ανάγεται στη ρίζα/λήμμα της λέξης Αξιολογείται η σημασία κάθε λέξης με βάση κριτήρια όπως: Σε πόσα κείμενα εμφανίζεται Πόσες φορές εμφανίζεται συνολικά Πόσες φορές εμφανίζεται στο υπό εξέταση κείμενο Λέξεις που είναι πολύ κοινές διαγράφονται από τους indexes της ανάκτηση πληροφορίας (stop list words) Η παραπάνω μεθοδολογία συμπληρώνεται με πιο προηγμένες τεχνικές: Χρήση θησαυρών λέξεων Εντοπισμό εκφράσεων (2 ή περισσότερες λέξεις μαζί) Σημασιολογική πληροφορία Βάσεις Δεδομένων Ανάκτηση Δεδομένων 6
Information Retrieval (6) Όταν εξετάζεται ένα ερώτημα τότε: Αναλύεται το ερώτημα με επεξεργασία όμοια με αυτή που αναλύονται τα μεμονωμένα κείμενα της συλλογής, δηλαδή διακρίνονται οι λέξεις του ερωτήματος ανάγεται (σε ορισμένες περιπτώσεις) κάθε λέξη στο λήμμα της λέξης Το επεξεργασμένο ερώτημα συγκρίνεται με όλα τα κείμενα της συλλογής Η σύγκριση του ερωτήματος με τα κείμενα της συλλογής μπορεί να γίνει αποδοτικά με χρήση αντεστραμμένων δεικτών (ένα είδος ευρετηρίου) Βάσεις Δεδομένων Ανάκτηση Δεδομένων 7
Full-Text Search Τα σύγχρονα ΣΔΒΔ υποστηρίζουν τεχνικές ανάκτησης κειμένων Συγκεκριμένα επιτρέπουν τον ορισμό indexes για full-text αναζήτηση σε στήλες που περιλαμβάνουν ελεύθερο κείμενο Βάσεις Δεδομένων Ανάκτηση Δεδομένων 8
Παράδειγμα σε Oracle (1) CREATE TABLE Documents ( CODE INTEGER CONSTRAINT PrimKey PRIMARY KEY, TITLE VARCHAR(40), TEXT VARCHAR(256) ); INSERT INTO Documents VALUES (1, 'Giannis', 'this is the text of the first document'); INSERT INTO Documents VALUES (2, 'Kostas', 'this is the text of the second document'); INSERT INTO Documents VALUES (3, 'Maria', 'this is the text of the third document'); INSERT INTO Documents VALUES (4, 'Eleni', 'this is the text of the forth document'); Βάσεις Δεδομένων Ανάκτηση Δεδομένων 9
Παράδειγμα σε Oracle (2) CREATE INDEX myindex ON documents(text) INDEXTYPE IS CTXSYS.CONTEXT; ALTER INDEX myindex rebuild; SELECT CODE, SCORE(1) text FROM documents WHERE CONTAINS(text, 'third', 1) > 0; SELECT CODE, SCORE(1) text FROM documents WHERE CONTAINS(text, 'document third', 1) > 0; SELECT CODE, SCORE(1) score, text FROM documents WHERE CONTAINS(text, 'document third', 1) > 0; Βάσεις Δεδομένων Ανάκτηση Δεδομένων 10
Text Retrieval στον SQL Server sp_fulltext_table sp_fulltext_catalog -- Execute a full-text query against the new table. SELECT article_title FROM FulltextTest WHERE CONTAINS(article_title, ' "Steven Buchanan" AND "ice skating" ') Βάσεις Δεδομένων Ανάκτηση Δεδομένων 11
Πηγές/Αναφορές Εγχειρίδια Oracle Εγχειρίδια SQL Server Βάσεις Δεδομένων Ανάκτηση Δεδομένων 12