10. Text Mining Για να μπορέσουμε να χρησιμοποιήσουμε τις δυνατότητες text mining του Rapid Miner πρέπει να εγκαταστήσουμε το Text Mining Extension. Πηγαίνουμε Help Updates and Extensions (Marketplace) Top Downloads. Επιλέγουμε Text Mining Extension και Install. Στόχος του εργαστηρίου αυτού είναι να εκτιμήσουμε κατά πόσον μια κριτική για μια κινηματογραφική ταινία είναι θετική ή αρνητική. Η λογική είναι η ίδια με το κατά πόσον μια δήλωση ατυχήματος σε μια ασφαλιστική εταιρεία είναι αληθής ή ψευδής, κατά πόσον ένα κείμενο ανήκει στον Α ή Β συγγραφέα, κατά πόσον ένα σχόλιο για ένα προϊόν είναι αρνητικό ή θετικό κ.λ.π. Βασικό ζητούμενο όπως και στο παράδειγμα Prediction Analytics είναι να βρεθούν ικανοποιητικά ιστορικά δεδομένα τα οποία είναι χαρακτηρισμένα σαν θετικά ή αρνητικά. Για τις ανάγκες του εργαστηρίου σε κάποια περιοχή του δίσκου πρέπει να αντιγραφούν τρεις φάκελοι. Neg με χίλιες αρνητικές κριτικές για ταινίες, Pos με χίλιες θετικές κριτικές για ταινίες και Unlabeled με 6 κριτικές για μια νέα ταινία. Αριστομένης Μακρής 1
10.1. ΔΗΜΙΟΥΡΓΙΑ ΕΚΠΑΙΔΕΥΣΗ ΤΟΥ ΜΟΝΤΕΛΟΥ. Θα καταχωρήσουμε τη ροή που ακολουθεί. Ξεκινάμε από τον τελεστή Process Documents from Files. Από τις παραμέτρους δεξιά επιλέγουμε Edit List και δημιουργούμε δυο κλάσεις μία με τις θετικές κριτικές (positive) ορίζοντας την περιοχή στο δίσκο με τα 1.000 θετικά σχόλια και τις αρνητικές κριτικές (negative) ορίζοντας την περιοχή στο δίσκο με τα 1.000 αρνητικά σχόλια και Apply. Παρατηρούμε ότι ο τελεστής Process Documents from Files είναι υψηλού επιπέδου και επομένως θα πρέπει να ορίσουμε τελεστές στο χαμηλότερο επίπεδο σχετικούς με την επεξεργασία των κειμένων. Επιλέγουμε (2 κλικ) το εικονίδιο. Θα πρέπει να προσθέσουμε τους τελεστές που ακολουθούν και αφορούν την επεξεργασία του κειμένου. Όλοι αυτοί οι τελεστές αφορούν συγκεκριμένες γλώσσες. Πρώτο βήμα είναι το σπάσιμο του κειμένου σε λέξεις φράσεις (tokens). Θα χρησιμοποιήσουμε τον τελεστή Tokenize. Κατόπιν θα φιλτράρουμε τις λέξεις ώστε να κυμαίνονται σε κάποια επιθυμητή περιοχή τιμών (μήκους) με τον τελεστή Filter Tokens (by Length) επιλέγοντας λέξεις μεταξύ 4 και 25 χαρακτήρων και αγνοώντας τις υπόλοιπες. Αριστομένης Μακρής 2
Κατόπιν θα μετατρέψουμε όλο το κείμενο σε μικρά γράμματα για να μειώσουμε την πολυπλοκότητα εφ όσον τα μεγάλα γράμματα είναι άλλοι χαρακτήρες για τον υπολογιστή με τον τελεστή Transform Cases (transform to=lower case). Κατόπιν θα «γυμνώσουμε» τις λέξεις από τις καταλήξεις ing, ed κ.α. ώστε να διαχειριζόμαστε μόνο τις ρίζες των λέξεων με τον τελεστή Stem (language=english). Τέλος θα αφαιρέσουμε από το κείμενο όλες τις λέξεις που δεν έχουν σημασία όπως and, a, the κ.α. με τον τελεστή Filter Stopwords (English). Κατόπιν συνδέουμε όλους τους τελεστές μεταξύ τους όπως στο υπόδειγμα. Αριστομένης Μακρής 3
Έχοντας ολοκληρώσει όλους τους τελεστές επεξεργασίας του κειμένου επιστρέφουμε στο ανώτερο επίπεδο του διαγράμματος (κλικ). Προσθέτουμε στο διάγραμμα τον τελεστή X-Validation (ώστε να ελέγξουμε την αξιοπιστία ακρίβεια του μοντέλου) και διορθώνουμε τις παραμέτρους. Και αυτός ο τελεστής είναι ανωτέρου επιπέδου, επομένως κατεβαίνουμε στο χαμηλότερο επίπεδο (2 κλικ). Όπως και στο εργαστήριο Predictive Analytics για την αξιολόγηση του μοντέλου έχουμε δυο στάδια την εκπαίδευση (training) και τον έλεγχο (testing) του μοντέλου με βάση τα αρχικά δεδομένα. Χρησιμοποιούμε τον αλγόριθμο Support Vector Machine SVM (Linear) για τη δημιουργία και εκπαίδευση του μοντέλου. Όπως και στο εργαστήριο Predictive Analytics οι άλλοι δυο τελεστές είναι ο τελεστής Apply Model και Performance. Συνδέουμε τους τελεστές όπως στο διάγραμμα και γυρνάμε στο προηγούμενο επίπεδο. Αριστομένης Μακρής 4
Προσθέτουμε δυο τελεστές Store στο διάγραμμα. Ο πρώτος θα αποθηκεύσει τη λίστα των λέξεων με τις σχέσεις μεταξύ τους ανάλογα του αν εμφανίζονται στα θετικά ή τα αρνητικά σχόλια. Αποθηκεύουμε σε κάποιο φάκελο στο Local Repository με όνομα vector_word_list. Στον δεύτερο τελεστή Store θα αποθηκεύσουμε το μοντέλο από την έξοδο mod του Validation. Αποθηκεύουμε στην ίδια περιοχή του δίσκου με το προηγούμενο αρχείο με όνομα model. Αριστομένης Μακρής 5
Συνδέουμε προσεκτικά όλους τους τελεστές όπως στο διάγραμμα και εκτελούμε τη ροή. Αυτή τη φορά θα πάρει αρκετό χρόνο γιατί το σύστημα θα επεξεργαστεί 2.000 κείμενα. Ένα από τα αποτελέσματα της όλης διαδικασίας είναι η δημιουργία μιας εκτεταμένης λίστας λέξεων οι οποίες χρησιμοποιούνται στα αρνητικά και θετικά σχόλια για τις ταινίες. Ένα δεύτερο παράγωγο της διαδικασίας είναι η αξιολόγηση του μοντέλου (εφαρμόζοντάς το στη λίστα των θετικών και αρνητικών σχολίων και εξετάζοντας έτσι την αξιοπιστία του). Παρατηρούμε ότι είναι αρκετά αξιόπιστο περί το 80%. Αριστομένης Μακρής 6
10.2. ΕΦΑΡΜΟΓΗ ΤΟΥ ΜΟΝΤΕΛΟΥ Οι βασικοί λόγοι για τους οποίους έσπασε η διαδικασία σε δυο βήματα είναι (1) για θέμα χρόνου επεξεργασίας, επειδή η διαδικασία εκπαίδευσης είναι αρκετά χρονοβόρα και δεν συμφέρει να τρέχει μαζί με την εφαρμογή και (2) για να μπορούμε να έχουμε έτοιμα τα μοντέλα των δεδομένων ώστε να μπορούμε να τα εφαρμόζουμε σε όσα κείμενα επιλέγουμε. Όπως αναφέρθηκε στην εισαγωγή το μοντέλο της επεξεργασίας των σχολίων θα δοκιμασθεί σε νέα σχόλια για μια νέα ταινία ώστε να εκτιμηθεί από το σύστημα κατά πόσον τα σχόλια αυτά είναι αρνητικά ή θετικά. Ανοίγουμε το αρχείο vector_word_list που δημιουργήθηκε από την προηγούμενη επεξεργασία ώστε να δούμε τι περιέχει. Παρατηρούμε ότι περιέχει μια λίστα με όλες τις λέξεις που χρησιμοποιούνται σε όλα τα σχόλια με διάφορα στοιχεία συχνότητας. Δημιουργούμε μια νέα ροή στην οποία εισάγουμε (drag & drop) τα δυο αρχεία της προηγούμενης διαδικασίας (model επάνω και vector_word_list κάτω). Κατόπιν εισάγουμε τον τελεστή Process Documents from Files. Αριστομένης Μακρής 7
Στις παραμέτρους του τελεστή επιλέγουμε Edit List, ονομάζουμε τη νέα λίστα αρχείων unlabeled (γιατί δεν έχει χαρακτηρισθεί) και επιλέγουμε σαν directory την περιοχή με τα αχαρακτήριστα σχόλια για τη νέα ταινία και Apply. Κατόπιν μεταβαίνουμε στο χαμηλότερο επίπεδο για να προσθέσουμε τους τελεστές για την επεξεργασία του κειμένου (2 κλικ). Στην αναλυτική ροή της επεξεργασίας κειμένου εισάγουμε όλους τους τελεστές του προηγούμενου παραδείγματος με τις ίδιες ακριβώς παραμέτρους και επανερχόμαστε στο ανώτερο επίπεδο. Αριστομένης Μακρής 8
Προσθέτουμε στη ροή τον τελεστή Apply Model, και συνδέουμε όλους τους τελεστές μεταξύ τους σύμφωνα με το υπόδειγμα. Κατόπιν εκτελούμε. Να το αποτέλεσμα. Σύμφωνα με το αποτέλεσμα έχουμε δυο αρνητικές (4, 6) και τέσσερις θετικές κριτικές (1, 2, 3, 5). Η αρνητική κριτική με τη μεγαλύτερη εμπιστοσύνη είναι η 6 (0,673) και η θετική κριτική με τη μεγαλύτερη εμπιστοσύνη είναι η 2 (0,666). Ας διαβάσουμε τις δυο κριτικές από τα αρχεία για να βεβαιωθούμε. Αφού βεβαιωθούμε ότι πράγματι τα σχόλια είναι σωστά χαρακτηρισμένα μπορούμε να προσθέσουμε τα σχόλια στην περιοχή με τα αρνητικά ή θετικά σχόλια, να εκπαιδεύσουμε - εμπλουτίσουμε το μοντέλο και με τα νέα σχόλια, ώστε συν τω χρόνω να επιτύχουμε μοντέλα που θα είναι όλο και περισσότερο αξιόπιστα και αποτελεσματικά. Αριστομένης Μακρής 9