Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #08 Συµπίεση Κειµένων Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1
Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ιονίου Πανεπιστημίου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 3
Συµπίεση Κειµένων Η δυνατότητα να αναπαραστήσουµε τα κείµενα µε µικρότερο αριθµό bytes Οι µέθοδοι συµπίεσης χρησιµοποιούν τη δοµή που υπάρχει στο κείµενο για να δηµιουργήσουν µία συµπυκνωµένη έκδοση του αρχικού κειµένου Από τη συµπιεσµένη έκδοση του κειµένου το αρχικό κείµενο µπορεί να ανακτηθεί πλήρως Το µέγεθος του συµπιεσµένου αρχείου δια το µέγεθος του αρχικού αρχείου καλείται λόγος συµπίεσης 2 4
Γιατί Συµπίεση; Λιγότερος χώρος αποθήκευσης Λιγότερος χρόνος για λειτουργίες εισόδου/εξόδου Λιγότερος χρόνος µετάδοσης δεδοµένων 3 Μέθοδοι Συµπίεσης Κειµένων Οι µέθοδοι συµπίεσης διακρίνονται σε δύο βασικές κατηγορίες: Στατιστικές µέθοδοι, οι οποίες στηρίζονται σε εκτιµήσεις πιθανότητας σχετικά µε την εµφάνιση των συµβόλων στο κείµενο Μέθοδοι βασισµένες σε λεξικό, οι οποίες αντικαθιστούν την εµφάνιση µίας σειράς συµβόλων µε έναν δείκτη στην αµέσως προηγούµενη εµφάνιση της σειράς 4 5
Μέθοδοι Συµπίεσης Κειµένων Συµπίεση Statistical Dictionary Modeling Coding Modeling Coding 1. adaptive 2. static 3. semi-static 1. Huffman coding 2. Byte-oriented Huffman coding 1. adaptive 2. static 3. semi-static Inverted File coding 5 Α. Στατιστικές Μέθοδοι Συµπίεσης Σύµβολο: ένας χαρακτήρας, µία λέξη, µία σειρά χαρακτήρων Αλφάβητο: το σύνολο των διαφορετικών συµβόλων Μοντελοποίηση: η διαδικασία εκτίµησης της πιθανότητας των συµβόλων Κωδικοποίηση: η διαδικασία της µετατροπής των συµβόλων σε δυαδικά ψηφία 6 6
Στατιστικές Μέθοδοι Συµπίεσης ύο βασικές µέθοδοι στατιστικής κωδικοποίησης (coding) χρησιµοποιούνται: Αριθµητική Κωδικοποίηση (Arithmetic Coding) Κωδικοποίηση Huffman (Huffman Coding) 7 Αριθµητική Κωδικοποίηση Επεξεργάζεται ένα σύµβολο τη φορά εν επιτρέπεται η αποκωδικοποίηση µίας σειράς χαρακτήρων η οποία βρίσκεται στη µέση του κειµένου Πρέπει κάθε φορά η αποκωδικοποίηση να ξεκινά από την αρχή του κειµένου Για το λόγο αυτό τα συστήµατα IR δεν χρησιµοποιούν τη µέθοδο της αριθµητικής κωδικοποίησης 8 7
Στατιστικές Μέθοδοι Συµπίεσης Σχέση µεταξύ πιθανοτήτων και κωδικών (Claude Shannon): Στη βέλτιστη µέθοδο κωδικοποίησης, ένα σύµβολο που αναµένεται να εµφανιστεί µε πιθανότητα p, πρέπει να αντιστοιχεί σε κωδικό µεγέθους log 2 (1/ p) bits 9 Εντροπία Η µέση ποσότητα πληροφορίας κάθε συµβόλου σε όλο το αλφάβητο καλείται εντροπία της κατανοµής και δίνεται από τον τύπο: E = p i log 2 (1/ p i ) Η Εντροπία αποτελεί το κάτω όριο του αριθµού των bits που πρέπει να περιέχει ένα κωδικοποιηµένο σύµβολο 10 8
Modeling Προσαρµοστικό (adaptive) Στατικό (static) Ηµιστατικό (semi-static) 11 1.Προσαρµοστικά Μοντέλα εν έχουν καµία πληροφορία για το κείµενο, αλλά την αποκτούν σταδιακά καθώς προχωρά η διαδικασία συµπίεσης Απαιτούν µόνο ένα πέρασµα στο κείµενο εισόδου Για αρκετά µεγάλα κείµενα το µοντέλα συγκλίνουν στην πραγµατική κατανοµή του κειµένου Η διαδικασία της αποσυµπίεσης πρέπει να ξεκινά από την αρχή του κειµένου Καλή τεχνική για γενικές εφαρµογές αλλά όχι τόσο καλή για IR 12 9
2.Στατικά Μοντέλα Θεωρούν µία µέση κατανοµή όλων των κειµένων εισόδου εν έχουν καλό λόγο συµπίεσης όταν το περιεχόµενο του κειµένου ξεφεύγει από τις αρχικές πιθανοτικές εκτιµήσεις Ένα µοντέλο κατάλληλο για λογοτεχνικά κείµενα δεν είναι κατάλληλο για οικονοµικά κείµενα τα οποία περιέχουν πολλούς αριθµούς 13 3.Ηµιστατικά Μοντέλα εν υποθέτουν κατανοµή δεδοµένων, αλλά παίρνουν αυτήν την πληροφορία κατά το πρώτο πέρασµα Στο δεύτερο πέρασµα γίνεται συµπίεση µε βάση τα στατιστικά στοιχεία που εξάχθηκαν από το πρώτο πέρασµα Στη φάση της αποκωδικοποίησης, η στατιστική πληροφορία µεταδίδεται στον decoder πριν την αποστολή του συµπιεσµένου κειµένου Το βασικό τους µειονέκτηµα είναι τα δύο περάσµατα που απαιτούνται Επιτρέπεται άµεση προσπέλαση σε οποιοδήποτε σηµείο του κειµένου 14 1 0
Μοντέλα Βασισµένα σε Λέξεις Επιτυγχάνεται καλύτερος λόγος συµπίεσης Τα περισσότερα συστήµατα IR στηρίζονται σε λέξεις Η συχνότητα εµφάνισης λέξεων είναι χρήσιµη στην απάντηση ερωτήσεων τα οποία χρησιµοποιούν πολλές λέξεις µαζί Η επεξεργασία συνήθως ξεκινά από τη λέξη µε τη µικρότερη συχνότητα εµφάνισης 15 Μοντέλα Βασισµένα σε Λέξεις Πρέπει να ληφθούν υπόψη και οι διαχωριστές λέξεων (κενά, κόµµατα, κτλ.) Σε µερικές περιπτώσεις παράγονται µεγάλες ποσότητες διαφορετικών κωδικών (π.χ. αριθµοί) Συνήθως οι µέθοδοι που στηρίζονται σε λέξεις είναι αποδοτικές για αρκετά µεγάλα κείµενα. 16 1 1
Κωδικοποίηση Ο κύριος στόχος ενός κωδικοποιητή είναι η αντιστοίχiση µικρών κωδικών σε συχνά εµφανιζόµενα σύµβολα και µεγάλων κωδικών σε σπάνια εµφανιζόµενα σύµβολα Ο χρόνος κωδικοποίησης και αποκωδικοποίησης είναι σηµαντικός Μερικές φορές προτιµούµε να έχουµε µικρότερο λόγο συµπίεσης προκειµένου να κερδίσουµε σε χρόνο (π.χ. WinZIP) 17 Παράδειγµα Έστω τα σύµβολα A,B,C,D µε τους εξής κωδικούς: Code( A ) = 0 Code( B ) = 000 Code( C ) = 11 Code( D ) = 1 Ο κωδικός 111000 σε ποια σειρά χαρακτήρων αντιστοιχεί; DDDAAA CDAAA DCB DDDB 18 1 2
Βασική Προϋπόθεση Κωδικοποίησης Μετά τη φάση της κωδικοποίησης κανένας κωδικός δεν πρέπει να αποτελεί prefix άλλου κωδικού!!! 19 Κωδικοποίηση Huffman Παράγει κωδικούς µεταβλητού µήκους Μικρότεροι κωδικοί αντιστοιχούνται σε συχνότερα σύµβολα ιασφαλίζεται ότι κανένας κωδικός δεν είναι prefix κάποιου άλλου Σε συνδυασµό µε ένα ηµι-στατικό µοντέλο βασισµένο σε λέξεις αποτελούν µία καλή επιλογή για συµπίεση κειµένου 20 10
Παράδειγµα Έστω το ακόλουθο κείµενο: one two three one two one one one two three four five one: 5/12 two: 3/12 three: 2/12 four: 1/12 five: 1/12 Συχνότητες εµφάνισης λέξεων 21 ένδρο Huffman 0 12/12 0 7/12 0 2/12 0 1 4/12 1 1 1 five 1/12 four 1/12 three 2/12 two 3/12 one 5/12 22 14
Παράδειγµα Μετά την κωδικοποίηση προκύπτουν οι εξής κωδικοί: five: 0000 four: 0001 three: 001 two: 01 one: 1 Τι παρατηρούµε; 23 Λόγος Συµπίεσης Τι συµπίεση επιτυγχάνουµε για το παράδειγµα; Απαιτούνται 42*8 = 336 bits για το αρχικό κείµενο (χωρίς τους κενούς χαρακτήρες) Απαιτούνται 25 bits για το συµπιεσµένο κείµενο. Γιατι; 24 15
Παράδειγµα Έστω το ακόλουθο κείµενο ABRACADABRA A 5/11 B 2/11 C 1/11 D 1/11 R 2/11 25 έντρο Huffman 0 11/11 6/11 0 1 2/11 4/11 0 1 0 1 1 C 1/11 D 1/11 B 2/11 R 2/11 A 5/11 000 001 010 011 1 26 16
Β. Μέθοδοι µε Λεξικά Οι µέθοδοι συµπίεσης βασισµένες σε λεξικά επιτυγχάνουν συµπίεση αντικαθιστώντας σειρές συµβόλων µε δείκτες Αυτό που πρέπει να προσέξουµε είναι η επιλογή των entries στο λεξικό 27 Στατικές Μέθοδοι Λεξικών Οι πιο απλές µέθοδοι χρησιµοποιούν στατικά λεξικά τα οποία περιέχουν µικρές εκφράσεις Είναι αρκετά γρήγορες και απαιτούν λίγο χρόνο για να επιτύχουν µικρά ποσοστά συµπίεσης Μία διαδεδοµένη µέθοδος είναι η διγραµµατική κωδικοποίηση (digram coding), στην οποία επιλεγµένα ζεύγη γραµµάτων αντικαθιστώνται µε κωδικούς Το βασικό πρόβληµα των στατικών µεθόδων είναι ότι ένα λεξικό κατάλληλο για ένα κείµενο µπορεί να είναι ακατάλληλο για κάποιο άλλο 28 17
Ηµι-στατικές Μέθοδοι Λεξικών Κατασκευάζουν νέο λεξικό για κάθε νέο κείµενο που συµπιέζεται Το βασικό πρόβληµα στις µεθόδους αυτές είναι η επιλογή των φράσεων που πρέπει να µπουν στο λεξικό 29 Προσαρµοστικές Μέθοδοι Μέθοδος Ziv-Lempel, 1970 Μία φράση αντικαθίσταται µε έναν δείκτη ο οποίος αναφέρεται σε µία προηγούµενη εµφάνιση της φράσης Αν ο δείκτης σε µία προηγούµενη εµφάνιση µιας φράσης αποθηκεύεται µε λιγότερα bits από τη φράση, επιτυγχάνεται συµπίεση Η διαδικασία της αποκωδικοποίησης δεν µπορεί να ξεκινήσει από τη µέση του κειµένου, αλλά µόνο από την αρχή Το ενδιαφέρον για τις µεθόδους βασισµένες σε λεξικά συνεχώς µειώνεται 30 18
Τάσεις και Έρευνα Η τάση στα σύγχρονα συστήµατα IR είναι η χρήση semi-static, word-based, Huffman coding Τα πειραµατικά αποτελέσµατα έχουν δείξει ότι είναι οι πλέον αποτελεσµατικές µέθοδοι Με τη δυνατότητα που υπάρχει να αναζητούµε απευθείας στο συµπιεσµένο κείµενο, υπάρχει η τάση τόσο ο index όσο και το κείµενο να παραµένουν συµπιεσµένα και να αποσυµπιέζονται µόνο µετά από απαίτηση του χρήστη 31 19