ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ. Γλωσσολογικές πηγές για τεχνικές εξόρυξης γνώμης (opinion mining) προσαρμοσμένες στις ιδιαιτερότητες της Νέας Ελληνικής

Σχετικά έγγραφα
ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

Στόχος της ψυχολογικής έρευνας:

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ

ΓΛΩΣΣΙΚΟΙ ΠΟΡΟΙ & ΤΕΧΝΟΛΟΓΙΕΣ:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Ηλεκτρονικό εμπόριο. HE 8 Εξατομίκευση

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Γλωσσική Τεχνολογία. Εισαγωγή. Ίων Ανδρουτσόπουλος.

Διδακτική της Περιβαλλοντικής Εκπαίδευσης

Παιδαγωγικές Εφαρμογές Η/Υ (Θεωρία) 21/03/2017. Διδάσκουσα: Αδαμαντία Κ. Σπανακά

Οδηγός. Σχολιασμού. Διπλωματικής Εργασίας

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

Ο 19ος αιώνας Είδαμε ότι πρώτοι ιστορικο-συγκριτικοί επιστήμονες είχαν στόχο να εξηγήσουν τις ομοιότητες που παρατηρούσαν ανάμεσα στις γλώσσες. Είδαμε

Για την εξέταση των Αρχαίων Ελληνικών ως μαθήματος Προσανατολισμού, ισχύουν τα εξής:

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΨΥΧΟΠΑΙΔΑΓΩΓΙΚΗ ΕΡΕΥΝΑ ΚΑΙ ΜΕΘΟΔΟΛΟΓΙΑ

«Αριθμητική και πειραματική μελέτη της διεπιφάνειας χάλυβασκυροδέματος στις σύμμικτες πλάκες με χαλυβδόφυλλο μορφής»

Σύνθετα μέτρα στην ποσοτική έρευνα: Δείκτες, κλίμακες και διαστάσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Η εξέλιξη στα συστήματα Μηχανικής Μετάφρασης

Eκπαίδευση Εκπαιδευτών Ενηλίκων & Δία Βίου Μάθηση

Πληροφορίες τμημάτων & επιπέδων _v.1. Πληροφορίες τμημάτων & επιπέδων. τηλέφωνα επικοινωνίας: & info@valores.

Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους. του Σταύρου Κοκκαλίδη. Μαθηματικού

Επιστήμη της Πληροφορικής. Εργασία του μαθητή Δημήτρη Τσιαμπά του τμήματος Α4

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Αναζητήσεις στο Διαδίκτυο

Γ Γυμνασίου: Οδηγίες Γραπτής Εργασίας και Σεμιναρίων. Επιμέλεια Καραβλίδης Αλέξανδρος. Πίνακας περιεχομένων

Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού

Τμήμα Επιστημών της Θάλασσας Σύντομες οδηγίες συγγραφής της Πτυχιακής Εργασίας

Περί της Ταξινόμησης των Ειδών

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ

DeSqual Ενότητες κατάρτισης 1. Ενδυνάμωση των εξυπηρετούμενων

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

Κωνσταντίνος Π. Χρήστου

Κεφάλαιο 9. Μέθοδοι ποιοτικής έρευνας

ΑΝΑΛΥΣΗ ΠΟΙΟΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ. Γεράσιμος Παπαναστασάτος, Ph.D. Αθήνα, Σεπτέμβριος 2016

ΑΝΑΛΥΣΗ ΠΟΙΟΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΕΟ 11. Η χρήση στατιστικών εργαλείων στην εκτιμητική

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Μεθοδολογία ερευνητικής εργασίας

Σχεδιαστικά Προγράμματα Επίπλου

ΔΙΔΑΚΤΙΚΉ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ

Παιδαγωγοί και παιδαγωγική σκέψη στον ελληνόφωνο χώρο (18ος αιώνας Μεσοπόλεμος)

Αναζητήσεις στο Διαδίκτυο

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ

ΔΙΟΙΚΗΣΗ ΕΠΙΚΟΙΝΩΝΙΑΣ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ. Public Relations Management

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

ΑΝΑΛΥΣΗ ΠΟΙΟΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

Συγγραφή Τεχνικών Κειμένων

Αξιοποίηση κοινωνικών δικτύων στην εκπαίδευση Αλέξης Χαραλαμπίδης Γραφικές Τέχνες / Πολυμέσα Ενότητα Ιανουαρίου 2015

Μέθοδος : έρευνα και πειραματισμός

Εισαγωγή στη Σχεδίαση Λογισμικού

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015

Η ΝΟΗΤΙΚΗ ΔΙΕΡΓΑΣΙΑ: Η Σχετικότητα και ο Χρονισμός της Πληροφορίας Σελ. 1

Σημαντικότητα της Έρευνας Μάρκετινγκ

ΔΙΑΔΙΚΤΥΑΚΗ ΠΡΟΒΟΛΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ

Διδακτική της Πληροφορικής

Ανάκτηση Πληροφορίας

ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥΔΩΝ (ΠΣ) Χρίστος Δούκας Αντιπρόεδρος του ΠΙ

Εφαρμογές των Η/Υ στη διδασκαλία της ξένης γλώσσας. Γεώργιος Μικρός Πανεπιστήμιο Αθηνών

Αγορά Πληροφορικής. Προϊόντα και Υπηρεσίες.

ανοιχτά γλωσσικά δεδομένα: η υποδομή γλωσσικών πόρων και υπηρεσιών clarin:el

Σχεδιασμός Κατασκευών Ενότητα 2: Βασικές Έννοιες Τεχνικών Συστημάτων & Οργάνωση Ανάπτυξης ενός Προϊόντος

ΘΕΜΑ 1 Τεχνικές Εξαγωγής Συµφράσεων από εδοµένα Κειµένου και Πειραµατική Αξιολόγηση

Διάταξη Θεματικής Ενότητας ΕΛΠ42 / Αρχαιολογία στον Ελληνικό Χώρο

Πληροφορική 2. Τεχνητή νοημοσύνη

Ανάλυση ποιοτικών δεδομένων

Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ

Ίσως/ Παρατηρήσεις/σχόλια Ακαδημαϊκού λόγου. Υπάρ χουν αμφιβολί ες

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ

14 Δυσκολίες μάθησης για την ανάπτυξη των παιδιών, αλλά και της εκπαιδευτικής πραγματικότητας. Έχουν προταθεί διάφορες θεωρίες και αιτιολογίες για τις

Μεθοδολογία Έρευνας Διάλεξη 1 η : Εισαγωγή στη Μεθοδολογία Έρευνας

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING

Η ΧΡΗΣΗ ΤΩΝ ΨΥΧΟΜΕΤΡΙΚΩΝ ΕΡΓΑΛΕΙΩΝ ΣΤΟΝ ΕΠΑΓΓΕΛΜΑΤΙΚΟ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟ

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή

ΟΡΓΑΝΩΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΜΙΑΣ ΕΡΕΥΝΑΣ. ΜΑΝΟΥΣΟΣ ΕΜΜ. ΚΑΜΠΟΥΡΗΣ, ΒΙΟΛΟΓΟΣ, PhD ΙΑΤΡΙΚHΣ

Διδακτική της Περιβαλλοντικής Εκπαίδευσης

Κεφάλαιο Ένα Επίπεδο 1 Στόχοι και Περιεχόμενο

Opinion Mining and Sentiment analysis

ΔΙΟΙΚΗΣΗ ΠΑΡΑΓΩΓΗΣ. ΕΝΟΤΗΤΑ 4η ΠΡΟΒΛΕΨΗ ΖΗΤΗΣΗΣ

Βασίλειος Κοντογιάννης ΠΕ19

ΕΠΛ 003.3: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για οικονομολόγους

Διαμόρφωση Διαφημιστικών Στόχων

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ

Εκπαιδευτικό λογισμικό

Διάταξη Θεματικής Ενότητας TSP61 / ΘΕΑΤΡΙΚΗ ΑΓΩΓΗ

Διδακτική Εννοιών τη Φυσικής για την Προσχολική Ηλικία

Υπολογιστικής Σκέψης

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Ι «Η Θεωρητική έννοια της Μεθόδου Project» Αγγελική ρίβα ΠΕ 06

Ηλεκτρονικές Κοινότητες Μάθησης

Εκπαιδευτική Τεχνολογία - Πολυμέσα. Ελένη Περιστέρη, Msc, PhD

ヤ Διδασκαλία της Γλώσσας στις τάξεις Γ & Δ

Ανοικτά Ακαδηµα κά Μαθήµατα

Ανάλυση των δραστηριοτήτων κατά γνωστική απαίτηση

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ Γλωσσολογικές πηγές για τεχνικές εξόρυξης γνώμης (opinion mining) προσαρμοσμένες στις ιδιαιτερότητες της Νέας Ελληνικής ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Δεμπέλης Νικόλαος του Χρήστου ΑΜ: 2097 ΣΕΠΤΕΜΒΡΙΟΣ 2014 Επιβλέπων καθηγητής κ. Βασίλειος Μεγαλοοικονόμου

στη μνήμη της μητέρας μου Ελένης

Ευχαριστίες Η διπλωματική αυτή εργασία δεν θα είχε ξεκινήσει να εκπονείται χωρίς την υποστήριξη του εκλιπόντος καθηγητή Δημήτρη Χριστοδουλάκη που πίστεψε ότι ποτέ δεν είναι αργά για να τα καταφέρω. Ένα μεγάλο ευχαριστώ οφείλω στον καθηγητή κ. Βασίλειο Μεγαλοοικονόμου που υπό δύσκολες συνθήκες ανέλαβε την εποπτεία της διπλωματικής μου εργασίας καθώς και στις κυρίες Β. Σιμάκη και Π. Τζέκου για την καθοδήγηση και τις συμβουλές τους. Ευγνωμοσύνη επίσης οφείλω στον πατέρα μου, Χρήστο που με στήριξε σε όλα τα χρόνια των σπουδών μου και στον αδερφό μου Δημήτρη που με ώθησε στο να ολοκληρώσω τις σπουδές μου. Τέλος, ευχαριστώ τη σύζυγό μου Δήμητρα για την αμέριστη συμπαράστασή και κατανόησή της.

Περιεχόμενα Κατάλογος σχημάτων... 9 1. Εισαγωγή... 11 1.1. Στόχος και δομή της εργασίας... 12 2. Σχετική βιβλιογραφία και εφαρμογές... 14 2.1. Εισαγωγή... 14 2.2. Σχετική βιβλιογραφία... 15 2.3. Σχετικές εφαρμογές... 17 2.3.1. Sentiment Search... 17 2.3.2. Εφαρμογή opendover... 18 2.3.3. Εφαρμογή twitter sentiment... 19 3. Sentiment Analysis, Opinion Mining... 21 3.1. Text Mining... 21 3.2. Opinion Mining / Sentiment Analysis... 23 3.3. Επιμέρους στάδια εξόρυξης γνώμης / συναισθήματος... 25 3.4. Πλεονεκτήματα... 28 3.5. Προκλήσεις / Δυσκολίες... 29 4. Γνωσιακές βάσεις, Σώμα Κειμένων, το Wordnet και το SentiWordnet... 32 4.1. Σώμα κειμένων (corpus)... 33 4.1.1. SFU Review Corpus... 34 4.1.2. Εθνικός Θησαυρός Ελληνικής Γλώσσας... 34 4.1.3. Σώμα Ελληνικών Κειμένων (ΣΕΚ)... 37 4.2. Το WordNet... 38 4.2.1. Γενικά χαρακτηριστικά... 38 4.2.2. Η δομή της πληροφορίας... 39

4.3. To SentiWordnet... 40 4.3.1. Βασικά στοιχεία... 41 4.4. Σύντομα ιστορικά στοιχεία... 42 4.5. Η διαδικασία δημιουργίας του SentiWordNet 3.0... 43 4.5.1. Διαδικασία εκμάθησης χαμηλής εποπτείας... 43 4.5.2. Διαδικασία τυχαίου περιπάτου... 44 5. Πειραματικό μέρος... 46 5.1. Περιγραφή Απαιτήσεων... 46 5.1.1. Βασικές απαιτήσεις... 46 5.1.2. Λειτουργικές Απαιτήσεις... 47 5.1.3. Σχεδιασμός βάσης δεδομένων... 48 5.1.4. Τεχνολογίες Υλοποίησης... 51 5.2. Γενική Περιγραφή Υλοποίησης... 52 5.3. Περιγραφή εφαρμογής διαχείρισης... 53 5.3.1. Επεξήγηση config.php... 54 5.3.2. Επεξήγηση functions.php... 56 5.3.3. Επεξήγηση header.php... 59 5.3.4. Επεξήγηση footer.php... 61 5.3.5. Δημιουργία γραφήματος πολικότητας... 61 5.3.6. Διαδικασία ψήφου πολικότητας... 62 5.3.7. Διαδικασία Εισαγωγής επιθέτων... 64 5.3.7.1. Προετοιμασία... 64 5.4. Στιγμιότυπα λειτουργίας... 68 5.4.1. Διαχείριση - Εξουσιοδοτημένοι χρήστες... 69 5.5. Περιβάλλον Ανάπτυξης (development enviroment)... 73 6. Επίλογος... 74 Παράρτημα... 76 Π 1. Πηγαίος Κώδικας web-scrapping εργαλείου... 76

Π 2. Η πύλη για την ελληνική γλώσσα [40]... 76 Βιβλιογραφία... 77

Κατάλογος σχημάτων Εικόνα 1 http://www.sentimentsearch.nl... 18 Εικόνα 2 http://www.opendover.nl/... 19 Εικόνα 3 http://www.sentiment140.com/... 20 Εικόνα 4 ΕΘΕΓ :: Οθόνη Αναζήτης... 35 Εικόνα 5 ΕΘΕΓ :: Αποτελέσματα Αναζήτησης... 35 Εικόνα 6 ΕΘΕΓ :: Πληροφορίες πρότασης - κειμένου... 36 Εικόνα 7 - Σώμα Ελληνικών Κειμένων - Αναζήτηση "αγαθός"... 37 Εικόνα 8 Στιγμιότυπο του Wordnet... 39 Εικόνα 9 Παράδειγμα λειτουργία για τη λέξη wonderful... 41 Εικόνα 10 Παράδειγμα λειτουργίας για τη λέξη tremendous... 42 Εικόνα 11 Τα 10 πιο "θετικά" και τα 10 πιο "αρνητικά" synset του SentiWordNet 3.0... 45 Εικόνα 12 Σχήμα της βάσης δεδομένων... 49 Εικόνα 13 Αρχική σελίδα... 68 Εικόνα 14 Αναζήτηση επιθέτων... 69 Εικόνα 15 Διαχείριση χρηστών... 70 Εικόνα 16 Τροποποίηση στοιχείων χρήστη... 70 Εικόνα 17 Διαδικασία ψήφου... 71 Εικόνα 18 Εισαγωγή επιθέτου... 71 Εικόνα 19 Εισαγωγή Επιθέτου που ήδη υπάρχει... 72

Περίληψη Η έρευνα στην παρούσα εργασία εστιάζει στην εξόρυξη γνώμης/ συναισθήματος. Στόχος είναι η θεωρητική μελέτη των γλωσσολογικών τεχνικών και πόρων που χρησιμοποιούνται στη διαδικασία της εξόρυξη γνώμης/ συναισθήματος και η υλοποίηση μέρους ενός συστήματος για την δημιουργία ενός τέτοιου γλωσσολογικού πόρου. Η ευρύτερη περιοχή της εξόρυξη γνώμης έχει ως κύρια εφαρμογή την υποβοήθηση των επιχειρήσεων και των παρόχων υπηρεσίας να προσαρμόσουν τα προϊόντα τους στις ανάγκες των χρηστών. Είναι επίσης πρωταρχικής σημασίας για καθαρά ακαδημαϊκούς και κοινωνικούς ψυχολόγους δεδομένου ότι τους δίνει τη δυνατότητα να παρακολουθούν τη σκέψη και τις αντιδράσεις online κοινοτήτων και να μελετήσουν τη στάση της κοινής γνώμης σχετικά με κάποιο θέμα. Μπορεί επίσης να χρησιμοποιηθεί και για πολιτικούς αναλυτές που έχουν ως στόχο να προβλέπουν εκλογικά αποτελέσματα κατά το στάδιο της εκστρατείας των πολιτικών εκλογών. Η εφαρμογή η οποία θα αναπτυχθεί στα πλαίσια της εργασίας θα επιτρέπει στους χρήστες να «ψηφίζουν» για την πολικότητα επιθέτων στα ελληνικά. Πολικότητα σημαίνει αν το επίθετο έχει θετική, αρνητική ή ουδέτερη έννοια. Σύμφωνα με την 5-scale βαθμολόγηση που υπάρχει στο opinion mining, οι βαθμοί που θα μπορεί να βάλει ο κάθε χρήστης είναι -2,-1,0,1,2. Η εφαρμογή προσφέρει και εμπεριέχει λειτουργικότητα για τη διαχείριση των χρηστών και την προσθήκη/τροποποίηση/διαγραφή επιθέτων στη βάση δεδομένων. Επιλέξαμε την βαθμολόγηση των επιθέτων, από όλα τα μέρη του λόγου, γιατί, στη πρόταση λειτουργούν ως χαρακτηρισμοί οι οποίοι είναι κυρίως αυτοί που προσδίδουν και μεταφέρουν, την θετική ή αρνητική, άποψη και το συναισθηματικό φορτίο σε μια πρόταση [9].

1. Εισαγωγή Με τη ραγδαία ανάπτυξη των Web 2 εφαρμογών όπως τα φόρουμ, τα blogs και τα κοινωνικά δίκτυα, το διαδίκτυο είναι πλέον πλούσιο σε σχόλια, παρατηρήσεις, συστάσεις, αξιολογήσεις και ανατροφοδοτήσεις που παράγονται από τους χρήστες. Το περιεχόμενο που δημιουργείται από τους χρήστες μπορεί να αφορά οποιοδήποτε θέμα και εμπεριέχει συχνά τη γνώμη του χρήστη πάνω στο θέμα αυτό. Η κατάσταση αυτή δημιούργησε ανάγκη στις επιχειρήσεις, στους πολιτικούς, στους παρόχους υπηρεσιών και στους ερευνητές να αναλύσουν το περιεχόμενο για διαφορετικές χρήσεις. Το μέγεθος του διαθέσιμου περιεχομένου που δημιουργείται από τους χρήστες απαιτεί τη χρήση αυτοματοποιημένων τεχνικών για την εξόρυξη και ανάλυση της γνώμης των χρηστών. Η εξόρυξη γνώμης/ συναισθήματος στοχεύει στο να προσδιορίσει την υποκειμενική στάση του ομιλούντος ή του γράφοντα σχετικά με ένα ζήτημα ή την συνολική άποψη που επικρατεί σε ένα έγγραφο. Η άποψη ή η στάση αυτή μπορεί να συνίσταται στην κρίση ή αξιολόγηση, την συναισθηματική κατάσταση του ομιλούντα ή γράφοντα ή την προσδοκώμενη από τον τελευταίο συναισθηματική επικοινωνία και αντίκτυπο που επιθυμεί για όσα λέει ή γράφει. Η ευρύτερη περιοχή της εξόρυξη γνώμης έχει ως κύρια εφαρμογή την υποβοήθηση των επιχειρήσεων και των παρόχων υπηρεσίας να προσαρμόσουν τα προϊόντα τους στις ανάγκες των χρηστών. Είναι επίσης πρωταρχικής σημασίας για καθαρά ακαδημαϊκούς και κοινωνικούς ψυχολόγους δεδομένου ότι τους δίνει τη δυνατότητα να παρακολουθούν τη σκέψη και τις αντιδράσεις online κοινοτήτων και να μελετήσουν τη στάση της κοινής γνώμης σχετικά με κάποιο θέμα. Μπορεί επίσης να χρησιμοποιηθεί και για πολιτικούς αναλυτές που έχουν ως στόχο να προβλέπουν εκλογικά αποτελέσματα κατά το στάδιο της εκστρατείας των πολιτικών εκλογών.

1.1. Στόχος και δομή της εργασίας Η έρευνα στην παρούσα εργασία εστιάζει στην εξόρυξη γνώμης/ συναισθήματος. Στόχος είναι η θεωρητική μελέτη των γλωσσολογικών τεχνικών και πόρων που χρησιμοποιούνται στη διαδικασία της εξόρυξη γνώμης/ συναισθήματος και η υλοποίηση μέρους ενός συστήματος για την δημιουργία ενός τέτοιου γλωσσολογικού πόρου για την ελληνική γλώσσα. Αν και υπάρχει πληθώρα εργαλείων και προσεγγίσεων για την εξερεύνηση του πεδίου αυτού, τα κυριότερα εκ των οποίων θα παρουσιάσουμε στη συνέχεια, αυτά αφορούν κυρίως την αγγλική γλώσσα. Για τα ελληνικά η διαθέσιμη βιβλιογραφία και τα διαθέσιμα εργαλεία είναι περιορισμένα. Για την πληρότητα της εργασίας αναφέρουμε και δύο σώματα κειμένων της ελληνικής γλώσσας τα οποία όμως δεν κατασκευάστηκαν με σκοπό την εξόρυξη γνώμης / συναισθήματος αλλά ούτε υπάρχουν δημοσιευμένες εργασίες στις οποίες να χρησιμοποιούνται με αυτό τον σκοπό. Το υπόλοιπο τμήμα της εργασίας έχει την ακόλουθη δομή: Στο κεφάλαιο 2 γίνεται μια σύντομη ιστορική αναδρομή στην έρευνα πάνω στην γλώσσα, μια συνοπτική παράθεση της βιβλιογραφίας και παρουσίαση δύο σχετικών εφαρμογών. Στο κεφάλαιο 3 γίνεται αρχικά σύντομη παρουσίαση του ιστορικού του πεδίου της εξόρυξη γνώμης / συναισθήματος, με αναφορές στα σημαντικότερα σημεία. Στη συνέχεια ακολουθεί γενική περιγραφή του επιστημονικού πεδίου, και γίνεται παρουσίαση των τεχνικών που προτείνονται στη βιβλιογραφία, παρουσίαση των τεχνικών που έχουν προταθεί και των πόρων που χρησιμοποιούνται. Στο 4 ο κεφάλαιο παρουσιάζονται οι γνωσιακές βάσεις, τα σώματα κειμένων (corpora), το Wordnet και το SentiWordnet. Ειδικά όσον αφορά το SentiWordnet γίνεται παρουσίαση του ιστορικού ανάπτυξής του, της δομής του, στατιστικών και κυρίως της θεωρητικής τεκμηρίωσης που συνοδεύει τη δημιουργία του. Στο 5 ο κεφάλαιο γίνεται ο σχεδιασμός και η υλοποίηση μιας εφαρμογής η οποία επιτρέπει στους χρήστες να «ψηφίζουν» για την πολικότητα επιθέτων στα ελληνικά. Θα οριστούν αρχικά οι προδιαγραφές, στη συνέχεια θα γίνει ο σχεδιασμός της εφαρμογής, θα περιγραφούν οι τεχνολογίες που χρησιμοποιήθηκαν για την ανάπτυξή της και τελικά θα περιγραφούν βασικά κομμάτια της υλοποίησης.

Η εργασία ολοκληρώνεται στο 6 ο κεφάλαιο με τον επίλογο.

2. Σχετική βιβλιογραφία και εφαρμογές 2.1. Εισαγωγή Η εξόρυξη γνώμης βασίζεται στο πεδίο της επεξεργασίας της γλώσσας, με κατεύθυνση την αποσαφήνιση των λέξεων. Οι πρώτες προσεγγίσεις του ζητήματος οφείλονται σε φιλολόγους και γλωσσολόγους [2]. Ήδη στην περίοδο 1920-1940 έκαναν την εμφάνισή τους οι πρώτες εργασίες, οι οποίες προσπάθησαν να θέσουν τις βάσεις και να συστηματοποιήσουν ένα νεφελώδες, ακόμη τότε, επιστημονικό αντικείμενο. Οι έρευνες ξεκίνησαν με απώτερο σκοπό να μελετηθεί ο τρόπος με τον οποίο ο άνθρωπος μαθαίνει, αναπαράγει και αντιλαμβάνεται τη γλώσσα. Σιγά-σιγά, όμως, έγινε φανερό ότι το αντικείμενο είναι σύνθετο και αχανές. Ξεκίνησε, λοιπόν, μία συστηματική μελέτη της γραμματικής των γλωσσών για να καταγραφούν και να μελετηθούν οι κανόνες σύμφωνα με τους οποίους οι άνθρωποι σε διαφορετικά μέρη του κόσμου εκφέρουν λόγο. Είναι η πρώτη φορά που έγινε αντιληπτό ότι «όλες οι γραμματικές έχουν ψεγάδια» σύμφωνα με την περίφημη φράση του Edward Sapir. Αυτό σημαίνει ότι δεν μπορούμε να διακρίνουμε επαρκώς ποιες αλληλουχίες λέξεων είναι σωστές γραμματικά και ποιες όχι. Αυτό συμβαίνει εξαιτίας της τάσης των ανθρώπων να προσαρμόζουν τους κανόνες της γλώσσας στις εκάστοτε επικοινωνιακές τους ανάγκες, κάτι που γίνεται φανερό από την εξέλιξη των ανθρώπινων γλωσσών - και στον γραπτό και στον προφορικό λόγο - από την αρχαιότητα ως σήμερα. Το πρόβλημα στην πορεία του διευρύνθηκε και απορρόφησε ιδέες και από άλλες επιστήμες, όπως η ψυχολογία (προσπάθεια ερμηνείας για το πώς λειτουργεί ο ανθρώπινος εγκέφαλος), η κοινωνιολογία (αναζήτηση του τρόπου αλληλεπίδρασης των ανθρώπων) και η βιολογία (μελέτη της φυσιολογίας του εγκεφάλου). Από το δεύτερο μισό του εικοστού αιώνα εντατικοποιήθηκε η έρευνα και άρχισαν να αναζητούνται απαντήσεις σε ερωτήσεις όπως: Ποια είναι τα συνήθη πρότυπα που προκύπτουν από τη χρήση της γλώσσας;. Δημιουργήθηκαν τότε δύο μεγάλες σχολές επιστημόνων, η μία προσέγγισε το πρόβλημα με την αρχική θεώρηση ότι ένα κομμάτι της γνώσης στο ανθρώπινο μυαλό προϋπάρχει και είναι το ίδιο σε όλους τους ανθρώπους (προερχόμενο ίσως από γενετική κληρονομιά). Η

ομάδα αυτή των επιστημόνων, των ορθολογιστών (rationalist) όπως λέγονται, επικράτησε τον πρώτο καιρό, έχοντας στα μέλη της σημαντικούς επιστήμονες όπως ο Noam Chomsky που εμπλούτιζαν τη θεωρία της συνεχώς. Η δεύτερη προσέγγιση, αυτή των εμπειριστών (empiricist), ήταν λιγότερο δημοφιλής αρχικά, αλλά είναι κυρίαρχη τις τελευταίες δεκαετίες λόγω των καλύτερων αποτελεσμάτων που δίνουν τα συστήματα που βασίζονται σε αυτήν. Κατά την προσέγγιση αυτή ο ανθρώπινος εγκέφαλος θεωρείται ότι είναι αρχικά άδειος, κενός από γνώση (tabula rasa), αλλά διαθέτει τους μηχανισμούς της ανάλυσης και της αφαίρεσης για την επεξεργασία αυτών που ο άνθρωπος αντιλαμβάνεται με τη βοήθεια των αισθητηρίων του. 2.2. Σχετική βιβλιογραφία Η αλματώδης ανάπτυξη του διαδικτύου άλλαξε δραστικά τον τρόπο και τις πηγές ενημέρωσης δισεκατομμυρίων χρηστών ανά τον κόσμο. Προς την κατεύθυνση αυτή, έχει επιφέρει μεγάλες αλλαγές και η χρήση εφαρμογών Ιστού 2.0 όπως τα κοινωνικά μέσα, τα ιστολόγια (blogs) και λοιπά, οι οποίες προσφέρουν τη δυνατότητα άμεσης αλληλεπίδρασης και ανταλλαγής πληροφοριών ανάμεσα στους χρήστες, χωρίς γεωγραφικούς και πολιτιστικούς και κοινωνικούς περιορισμούς Με την ραγδαία ανάπτυξη τέτοιων εφαρμογών, αυξήθηκε ραγδαία και το πλήθος κειμένων που δημοσιεύονται καθημερινά στο διαδίκτυο. Τα κείμενα αυτά βρίσκονται ήδη σε ψηφιακή μορφή και συνεπώς παρακάμπτεται η χρονοβόρα και η κοστοβόρα διαδικασία ψηφιοποίησης η οποία απαιτείται σε κείμενα παραδοσιακής μορφής (βιβλία, περιοδικά, εφημερίδες). Ως φυσικό επακόλουθο, τα τελευταία χρόνια υπάρχει ερευνητικό ενδιαφέρον για την ανάπτυξη τεχνικών εξόρυξης γνώσης από δεδομένα με στόχο την ανάκτηση πληροφορίας. Η εξόρυξη γνώσης από δεδομένα (data mining) αναφέρεται στην εφαρμογή τεχνικών και αλγορίθμων μηχανικής μάθησης (machine learning και machine learning algorithms). Οι τεχνικές και οι αλγόριθμοι αυτοί αποτελούν έναν από τους επιστημονικούς κλάδους του ευρύτερου πεδίου της Τεχνητής Νοημοσύνης και αφορούν ερευνητικές περιοχές όπως οι βάσεις δεδομένων, η επεξεργασία φυσικής γλώσσας και η μοντελοποίηση χρηστών. Ένα ενδιαφέρον πρόβλημα είναι το πρόβλημα του προσδιορισμού της σημασιολογικής κατεύθυνσης (θετική ή αρνητική πόλωση) των απόψεων που εκφράζονται σχετικά με τα

χαρακτηριστικά του προϊόντος σε κριτικές [14]. Οι περισσότερες υπάρχουσες προσεγγίσεις χρησιμοποιούν μια σειρά "λέξεων γνώμης" (opinion words) για το σκοπό αυτό. Ωστόσο, oι ερευνητές διαπιστώνουν ότι η πόλωση πολλών λέξεων εξαρτάται από το σημασιολογικό περιεχόμενο στο οποίο χρησιμοποιούνται. Για το λόγο αυτό, προτείνουν τη χρησιμοποίηση κάποιων γλωσσικών κανόνων για την αντιμετώπιση του προβλήματος μαζί με μια νέα συνάρτηση συνάθροισης γνώμης. Η συνάρτηση αυτή αθροίζει τις "λέξεις γνώμης" σε μια πρόταση, χρησιμοποιώντας βάρη, δίνοντας μικρά βάση σε λέξεις γνώμης που είναι μακριά από τη λέξη που περιγράφει ένα χαρακτηριστικό του προϊόντος. Ένα ακόμα ενδιαφέρον πρόβλημα είναι η εύρεση των αλγόριθμων που είναι κατάλληλοι για την εξόρυξη γνώμης και περίληψης σε κείμενα. Έχουν γίνει πειραματικές δοκιμές σε διαφορετικά είδη κειμένου σε διαφορετικές γλώσσες [15]. Στη δημοσίευση αυτή οι ερευνητές καταλήγουν ότι οι μέθοδοι μηχανικής μάθησης δεν είναι κατάλληλες για την εξόρυξη συναισθήματος. Όπως και στην προηγούμενη δημοσίευση, χρησιμοποιούνται αθροιστικές συναρτήσεις με βάρη. Πιο συγκεκριμένα, εξόρυξη του συναισθήματος κάθε πρότασης προκύπτει ως άθροισμα της τιμής συναισθήματος κάθε "λέξης γνώμης", και το άθροισμα αυτό πολλαπλασιάζεται με το βάρος αυτού που αναφέρει την άποψη. Υπάρχουν και άλλες μελέτες που επικεντρώνονται επίσης σε κριτικές πελατών για προϊόντα και συνεισφέρει σε δυο διαστάσεις. Χαρακτηριστικό παράδειγμα είναι το "Opinion Observer" [17], το οποίο έχει τα παρακάτω χαρακτηριστικά: Πρώτον, προτείνεται ένα νέο πλαίσιο για την ανάλυση και τη σύγκριση απόψεων καταναλωτών για ανταγωνιστικά προϊόντα. Ένα πρωτότυπο σύστημα που ονομάζεται Παρατηρητής Γνώμης (Opinion Observer) υλοποιήθηκε για το σκοπό αυτό, το οποίο απεικονίζει συγκεντρωτικά στοιχεία για τις απόψεις των χρηστών και απευθύνεται τόσο στους κατασκευαστές όσο και στους χρήστες των προϊόντων. ο χρήστης είναι σε θέση να δει καθαρά τα πλεονεκτήματα και αδυναμίες του κάθε προϊόντος όσον αφορά στα διάφορα χαρακτηριστικά του προϊόντος. Παράλληλα, οι ερευνητές προτείνουν μια νέα τεχνική που βασίζεται στην εξόρυξη μοτίβων στη γλώσσα, προκειμένου να εξαχθούν τα χαρακτηριστικά του προϊόντος από Πλεονεκτήματα και μειονεκτήματα σε ένα συγκεκριμένο τύπο κριτικών. Αυτά τα χαρακτηριστικά αποτελούν τη βάση για την παραπάνω σύγκριση. Για τη μέτρηση της πόλωσης μιας γνώμης, αντί να χρησιμοποιηθούν γλωσσικοί πόροι, όπως γίνεται συνήθως, η γνώμη μπορεί να αξιολογηθεί και σε ένα "οικονομικό πλαίσιο". Πιο

συγκεκριμένα, μπορεί να βασιστεί κανείς στο γεγονός ότι το κείμενο σε online συστήματα επηρεάζει τη συμπεριφορά των ανθρώπων και αυτή η επίδραση μπορεί να παρατηρηθεί χρησιμοποιώντας μερικές εύκολες στον υπολογισμό οικονομικές παραμέτρους, όπως τα έσοδα ή τις τιμές των προϊόντων. Στη δημοσίευση [16] οι ερευνητές προσπαθούν να αποδείξουν ότι η ανατροφοδότηση από τους χρήστες ( user feedback) επηρεάζει την δύναμη τιμολόγησης των εμπόρων και μετρώντας την τιμολογιακή τους δύναμη μπορεί κανείς να συμπεράνουν την πόλωση και ισχύ σχετικών τοποθετήσεων των χρηστών σχετικά με τα προϊόντα τους. 2.3. Σχετικές εφαρμογές Στην ενότητα αυτή παραθέτουμε κάποιες από τις πλέον ενδιαφέρουσες εφαρμογές στο πεδίο αυτόματης εξόρυξης συναισθήματος από κοινωνικά μέσα, οι οποίες είναι διαθέσιμες δωρεάν διαδικτυακά. Στα πλεονεκτήματα των εφαρμογών αυτών συγκαταλέγεται το γεγονός ότι είναι εύχρηστες καθώς δεν απαιτούν κανενός είδους επεξεργασία από τη χρήστη και καμία εξειδικευμένη γνώση κατά τη χρήση τους. Τα αποτελέσματα επιστρέφονται άμεσα και έτσι μπορούν να χρησιμοποιηθούν κυρίως για μία αρχική εξόρυξη της αναλογίας θετικών και αρνητικών απόψεων που κυριαρχούν σε ένα θέμα. 2.3.1. Sentiment Search Η Sentiment search είναι online εφαρμογή που είναι διαθέσιμη μέσω της ιστοσελίδας http://www.sentimentsearch.nl και πρόκειται για μηχανή αναζήτησης συναισθήματος. Μάλιστα, δίνεται και σχετική βαθμολόγηση ανάλογα με το πόσο έντονα θετική ή αρνητική είναι η άποψη που διατυπώνεται. Κάποιες παραπάνω επιλογές που είναι διαθέσιμες κατά την εν λόγω αναζήτηση είναι η ημερομηνία δημοσίευσης του άρθρου ή του σχολίου αντίστοιχα και η ταξινόμηση ανάλογα είτε με τη σχετικότητα του θέματος είτε ανάλογα με το συναίσθημα του περιεχομένου. Παρακάτω δίνεται το αντίστοιχο screenshot κατά την εισαγωγή των παραμέτρων αναζήτησης:

Εικόνα 1 http://www.sentimentsearch.nl 2.3.2. Εφαρμογή opendover Η εφαρμογή αυτή (http://www.opendover.nl/ ) επεξεργάζεται ένα κείμενο που εισάγουμε και εντοπίζει τις λέξεις που εκφράζουν συναίσθημα καθώς και την ένταση του συναισθήματος αυτού. Ο χρήστης μπορεί να επιλέξει την οντότητα πάνω στην οποία θα αναζητηθεί κάθε είδους χαρακτηρισμός εντός του κειμένου ή απλά να παραθέσει το κείμενο και η εφαρμογή θα επιστρέψει ως αποτέλεσμα τις λέξεις- κλειδιά που σχετίζονται με κάποιου είδους κατηγορία, όπως για παράδειγμα οικονομία, πολιτική, υγεία, εκπαίδευση, σε συνδυασμό με λέξεις που εκφράζουν κάποιου είδους επιδοκιμασία ή δυσαρέσκεια. Παρακάτω δίνεται το αντίστοιχο στιγμιότυπο χρήσης ώστε να φανεί καλύτερα το αποτέλεσμα της συγκεκριμένης εφαρμογής. Στο παρακάτω παράδειγμά η εφαρμογή έχει μαρκάρει τις λέξεις που περιέχουν συναίσθημα.

Εικόνα 2 http://www.opendover.nl/ Θα πρέπει να γίνει αναφορά στις πολυάριθμες εφαρμογές sentiment analysis που είναι διαθέσιμες διαδικτυακά και είναι εστιασμένες στα σχόλια των χρηστών μέσω της πλατφόρμας κοινωνικής δικτύωσης: http://www.twitter.com. Η εν λόγω πλατφόρμα κερδίζει όλο και περισσότερους χρήστες και η λειτουργία της είναι συνυφασμένη με τη δημοσίευση από μέρους των χρηστών μικρών και άμεσων κειμένων, ενώ τα θέματα σχολιασμού ποικίλουν και καλύπτουν ουσιαστικά κάθε είδους κατηγορία. 2.3.3. Εφαρμογή twitter sentiment Η παρακάτω εφαρμογή λειτουργεί ως μηχανή αναζήτησης και επιστρέφει αποτελέσματα που αντλούνται αποκλειστικά μέσω των σχολίων των χρηστών του twitter, τα οποία και ταξινομεί σε θετικά και αρνητικά. Ο ιστότοπος της εν λόγω εφαρμογής είναι:

http://www.sentiment140.com/ και επιστρέφονται τα πιο πρόσφατα αποτελέσματα που εντοπίζονται. Ένα χαρακτηριστικό παράδειγμα λειτουργίας είναι το παρακάτω: Εικόνα 3 http://www.sentiment140.com/ Ιδιαίτερο ενδιαφέρον παρουσιάζει η εργασία [24] των Bollen, J., Mao, H., & Pepe, A. όπου αναλύοντας την συναισθηματική φόρτιση των tweets μια συγκεκριμένης χρονικής περιόδου (2008) καταφέρνουν να εξάγουν ακριβή συμπεράσματα για τη διάθεση (mood) του κοινωνικού συνόλου απέναντι σε κοινωνικά και οικονομικά γεγονότα της περιόδου αυτής.

3. Sentiment Analysis, Opinion Mining 3.1. Text Mining Τα τελευταία χρόνια υπάρχει ερευνητικό ενδιαφέρον για την ανάπτυξη τεχνικών εξόρυξης γνώσης από δεδομένα με στόχο την ανάκτηση πληροφορίας. Η εξόρυξη γνώσης από δεδομένα (data mining) αναφέρεται στην εφαρμογή τεχνικών και αλγορίθμων μηχανικής μάθησης (machine learning και machine learning algorithms). Οι τεχνικές και οι αλγόριθμοι αυτοί αποτελούν έναν από τους επιστημονικούς κλάδους του ευρύτερου πεδίου της Τεχνητής Νοημοσύνης και αφορούν ερευνητικές περιοχές όπως οι βάσεις δεδομένων, η επεξεργασία φυσικής γλώσσας και η μοντελοποίηση χρηστών. Η εξόρυξη κειμένου (text mining) είναι υποκατηγορία της ερευνητικής περιοχής της εξόρυξης γνώσης με στόχο την επίλυση του προβλήματος της υπερφόρτωσης πληροφοριών. Η εξόρυξη κειμένου βοηθά τους χρήστες να εξάγουν αυτόματα από μεγάλα κείμενα την επιθυμητή γι αυτούς πληροφορία κυρίως μέσω της κατηγοριοποίησης και ομαδοποίησης εγγράφων και δεν πρέπει να συγχέεται με την απλή αναζήτηση πληροφορίας μέσω διαδικτύου (web search). Στην απλή αναζήτηση πληροφορίας, η οποία γίνεται με τις μηχανές αναζήτησης στο διαδίκτυο, ο χρήστης αναζητά κάτι που είναι ήδη γνωστό και έχει γραφτεί προηγουμένως από κάποιον άλλο. Εδώ το μοναδικό πρόβλημα του χρήστη είναι να ξεχωρίσει το υλικό που είναι σχετικό και προσαρμοσμένο στις εκάστοτε ανάγκες του. Αντίθετα, με την εξόρυξη κειμένου προσφέρεται η δυνατότητα ανακάλυψης καινούριας πληροφορίας, άγνωστης μέχρι στιγμής και συνεπώς μη ακόμα καταγεγραμμένης από κάποιον άλλο χρήστη στο παρελθόν. Οι έννοιες/πεδία εξόρυξη κειμένου και εξόρυξη γνώσης από δεδομένα συχνά συγχέονται. Η βασική τους διαφορά εστιάζεται στο ότι στην εξόρυξη κειμένου τα υποδείγματα (γνώση) εξάγονται από κείμενο φυσικής γλώσσας και όχι από δομημένες βάσεις γεγονότων. Οι βάσεις δεδομένων άλλωστε σχεδιάζονται ώστε να μπορούν να προσπελαστούν αυτόματα

από διάφορα προγράμματα σε αντίθεση με το κείμενο γραμμένο σε φυσική γλώσσα που διαβάζεται από ανθρώπους. Εξάλλου, στην ερευνητική κοινότητα υπάρχει η πεποίθηση ότι απαιτείται η εύρεση τεχνικών προσομοίωσης του τρόπου με τον οποίο λειτουργεί ο ανθρώπινος εγκέφαλος, με στόχο την δημιουργία προγραμμάτων που θα μπορούν να «διαβάζουν» ένα κείμενο όπως οι άνθρωποι. Η Επεξεργασία Φυσικής Γλώσσας (γνωστή και ως υπολογιστική γλωσσολογία) έχει σημειώσει αξιόλογη πρόοδο στην διεκπεραίωση μικρών δευτερευουσών εργασιών σχετικά με την ανάλυση κειμένου, όπως για παράδειγμα η εξαγωγή της περίληψης ενός κειμένου. Οι μέθοδοι αντιμετώπισης του προβλήματος επεξεργασίας της γλώσσας χωρίζονται σε δύο μεγάλες κατηγορίες: σε αυτές που βασίζονται σε γνώση και σε αυτές που χρησιμοποιούν στατιστικές μεθόδους. Στα επόμενα αναπτύσσονται συνοπτικά οι δύο τρόποι εργασίας και παρουσιάζονται τα πλεονεκτήματα και τα μειονεκτήματά τους [3]. Μέθοδοι βασισμένες σε γνωσιακές βάσεις Οι μέθοδοι αυτοί χρησιμοποιούν ως είσοδο, εκτός από το κείμενο, οργανωμένη γνώση που έχει προκύψει από corpora, λεξικά και σημασιολογικούς γράφους. Τα corpora είναι συλλογή πρότυπων κειμένων με γενική ή και πολύ ειδική θεματολογία (π.χ. μαθηματικά). Τα κείμενα αυτά υπάρχουν προς το παρόν μόνο για ευρέως ομιλούμενες γλώσσες (αγγλικά, ισπανικά, γερμανικά, γαλλικά). Τα λεξικά που χρησιμοποιούνται στο αντικείμενο της αυτόματης αποσαφήνισης νοήματος δεν είναι ερμηνευτικά, αλλά είναι θησαυροί. Τέλος, οι σημασιολογικοί γράφοι έχουν προκύψει αυτόματα ή με ανθρώπινη εργασία από λεξικογραφικές κυρίως μελέτες. Τα ποσοστά επιτυχίας των συστημάτων που βασίζονται σε γνωσιακές βάσεις είναι ενθαρρυντικά, ενδεχομένως επειδή προσεγγίζουν καλύτερα την ανθρώπινη λογική. Τα πλεονεκτήματα αυτών των συστημάτων είναι ότι είναι πιο δομημένα και πιο ευέλικτα, καθώς γνώση που προέρχεται από διαφορετικές πηγές μπορεί να εφαρμοστεί για τη βελτίωση του συστήματος. Από την άλλη πλευρά, τα συστήματα αυτά έχουν αυξημένη πολυπλοκότητα, ενώ η εφαρμογή τους εκ των πραγμάτων περιορίζεται στις πολύ διαδεδομένες γλώσσες, για τις οποίες υπάρχουν δεδομένα.

Στατιστικές μέθοδοι Οι στατιστικές μέθοδοι εν γένει δεν χρησιμοποιούν γνώση. Το κείμενο συνήθως είναι σε μία μορφή η οποία διευκολύνει την επεξεργασία από τον υπολογιστή. Η λειτουργία του συστήματος συνίσταται στη στατιστική επεξεργασία του κειμένου εισόδου και στην συνέχεια τη μη επιβλεπόμενη ταξινόμηση. Για το σκοπό αυτό χρησιμοποιούνται εκπαιδευόμενα μοντέλα, όπως είναι τα νευρωνικά δίκτυα και τα Hidden Markov Models. Τα ποσοστά επιτυχίας των συστημάτων αυτών είναι, όπως κανείς θα ανέμενε, εν γένει χαμηλότερα από αυτά στα οποία χρησιμοποιείται γνώση. Εντούτοις, έχουν πολύ καλύτερα αποτελέσματα για κείμενα τα οποία ανήκουν σε περιορισμένη θεματική περιοχή. Ακόμη, λειτουργούν εξίσου καλά για οποιαδήποτε γλώσσα και είναι λιγότερο πολύπλοκα. Υβριδικές μέθοδοι Τα συστήματα των παραπάνω κατηγοριών δεν εμφανίζονται σχεδόν ποτέ αυτούσια, στην πραγματικότητα, τα περισσότερα σύγχρονα συστήματα αποτελούνται από ένα συνδυασμό των δύο παραπάνω μεθόδων, με σκοπό να πετύχουν καλύτερα αποτελέσματα συνδυάζοντας τα πλεονεκτήματά τους. 3.2. Opinion Mining / Sentiment Analysis Η εξόρυξη γνώμης/ συναισθήματος (opinion mining ή sentiment analysis είναι ένας πιο εξειδικευμένος κλάδος της επεξεργασίας φυσικής γλώσσας και της εξόρυξης κειμένου. Η εξόρυξη γνώμης/ συναισθήματος στοχεύει στο να προσδιορίσει την υποκειμενική στάση του ομιλούντος ή του γράφοντα σχετικά με ένα ζήτημα ή την συνολική άποψη που επικρατεί σε ένα έγγραφο. Η άποψη ή η στάση αυτή μπορεί να συνίσταται στην κρίση ή αξιολόγηση, την συναισθηματική κατάσταση του ομιλούντα ή γράφοντα ή την προσδοκώμενη από τον τελευταίο συναισθηματική επικοινωνία και αντίκτυπο που επιθυμεί για όσα λέει ή γράφει.

Η ανάγκη για την γνώση σχετικά με το τι σκέφτονται οι υπόλοιποι για κάποιο θέμα αποτελούσε ανέκαθεν σημαντικό κομμάτι της συλλογής πληροφοριών. Με τη μεγάλη εξάπλωση εφαρμογών Ιστού 2.0 όπως τα κοινωνικά μέσα (social media), οι ηλεκτρονικοί τόποι δημόσιας συζήτησης (forum) και τα προσωπικά ιστολόγια (blogs), προέκυψαν νέες ερευνητικές προκλήσεις προς την κατεύθυνση εξόρυξης συναισθήματος. Παράλληλα, η αυτόματη εξόρυξη γνώμης έχει αναδειχτεί σε ένα από τα αντικείμενα που προσελκύουν ολοένα και αυξανόμενο ενδιαφέρον από εμπορικούς οργανισμούς, καθώς η εξαγόμενη πληροφορία έχει εμπορική αξία και μπορεί να χρησιμοποιηθεί για διαφημιστικούς και άλλους σκοπούς. Η ιστορία του όρου opinion mining ξεκινά το 2003 σε δημοσίευση στα πλαίσια του συνεδρίου WWW (WWW conference) [1]. Η δημοσίευση στο συγκεκριμένο συνέδριο μπορεί εν μέρει να εξηγήσει την δημοτικότητα του όρου opinion mining μεταξύ των κοινοτήτων που είναι προσανατολισμένες στην κατεύθυνση αναζήτησης στο διαδίκτυο (Web search) ή ανάκτησης πληροφορίας (information retrieval). Σύμφωνα με την εν λόγω δημοσίευση, η ιδανική εφαρμογή για εξόρυξη συναισθήματος «θα μπορούσε να επεξεργαστεί ένα σύνολο από δεδομένα αναζήτησης, δημιουργώντας μία λίστα των κύριων χαρακτηριστικών αυτών και συνοψίζοντας τις απόψεις που επικρατούν για κάθε ένα από αυτά τα χαρακτηριστικά σε θετικές, ουδέτερες και αρνητικές». Ο παραπάνω ορισμός είναι αποδεκτός με τις περισσότερες δημοσιεύσεις στο πεδίο αυτό, με έμφαση κυρίως στο κομμάτι της εξόρυξης και ανάλυσης κρίσεων πάνω σε διάφορες πλευρές των εκάστοτε δοθέντων αντικειμένων. Ωστόσο, ο εν λόγω όρος πρόσφατα έχει διερμηνευτεί καλύπτοντας μεγαλύτερο εύρος και περιέχοντας πολύ περισσότερους και ταυτόχρονα διαφορετικούς τύπους ανάλυσης των κειμένων προς αξιολόγηση. Ο όρος sentiment analysis θεωρείται ταυτόσημος με τον όρο opinion mining από αρκετές πλευρές. Ο όρος «sentiment» που χρησιμοποιείται αναφορικά με την αυτόματη ανάλυση του κειμένου προς αξιολόγηση εμφανίστηκε για πρώτη φορά το 2001 στις δημοσιεύσεις [5][6]. Στις δημοσιεύσεις αυτές, χρησιμοποιήθηκε για την ανάλυση αίσθησης στην αγορά. Ακολούθησαν και άλλες δημοσιεύσεις στην ετήσια συνάντηση της Εταιρίας Υπολογιστικής Γλωσσολογίας (Association for Computational Linguistics (ACL)) καθώς και στο ετήσιο συνέδριο Εμπειρικών Μεθόδων για την Επεξεργασία Φυσικής Γλώσσας (Empirical Methods in Natural Language Processing (EMNLP)) [7][8].

Ένας αξιόλογος αριθμός δημοσιεύσεων που αναφέρεται στον εν λόγω όρο εμβαθύνει κυρίως σε εφαρμογές κατηγοριοποίησης κριτικών σχετικά με την πόλωση συναισθήματος που περιέχεται σε αυτές, γεγονός που φαίνεται να έχει οδηγήσει κάποιους ερευνητές στο να συνδέσουν τον όρο sentiment analysis συγκεκριμένα με αυτή την μικρή σε εύρος λειτουργία. Εξάλλου, ο όρος sentiment analysis χρησιμοποιείται συνήθως ως αναφορά στην υπολογιστική αντιμετώπιση της γνώμης, του συναισθήματος και της υποκειμενικότητας σε κάποιο κείμενο. Συνεπώς, οι όροι opinion mining και sentiment analysis χρησιμοποιούνται πλέον ταυτόσημα και παρουσιάζονται στο ίδιο πεδίο μελέτης, το οποίο με την σειρά του μπορεί να θεωρηθεί μια υποπεριοχή της υποκειμενικής ανάλυσης. Σημειώνεται εδώ ότι στα πλαίσια της εργασίας αυτής δεν υπάρχει διαχωρισμός των παραπάνω εννοιών και στο εξής οι όροι opinion mining και sentiment analysis θα αναφέρονται εξίσου στην εξόρυξη συναισθήματος. 3.3. Επιμέρους στάδια εξόρυξης γνώμης / συναισθήματος Στην ενότητα αυτή θα γίνει ανάλυση των τριών κύριων στόχων/βημάτων της τεχνικής εξόρυξης γνώμης/ συναισθήματος. Εξ αιτίας της πολυπλοκότητας της εν λόγω τεχνικής, η εξόρυξη συναισθήματος περιλαμβάνει αρκετά επιμέρους διαχωρίσιμα βήματα, τα οποία τελικά συνδυάζονται για την εξαγωγή γνώσης μέσω των απόψεων που εκφράζονται σε ένα κείμενο. Εντοπισμός γνώμης ή συναισθήματος Το πρώτο βήμα για την εξόρυξη γνώμης, είναι ο εντοπισμός των σχετικών σημείων στο κείμενο. Η διαδικασία αυτή μπορεί να περιγραφεί ως μία ευρύτερη κατηγοριοποίηση του κειμένου σε αντικειμενικό ή υποκειμενικό και βασίζεται συνήθως υπαρχόντων επιθέτων στις προτάσεις. στην εξέταση των Για παράδειγμα, στην πρόταση: «Η γυναίκα είναι όμορφη» μπορεί εύκολα να προσδιοριστεί η πόλωση, εξετάζοντας το επίθετο που περιέχεται σε αυτή. Παλαιότερη μελέτη [9] περιγράφει αναλυτικά την επίδραση των επιθέτων στην υποκειμενικότητα μίας

πρότασης, ενώ πιο πρόσφατες μελέτες [10] έχουν δείξει ότι τα επιρρήματα αποτελούν εξίσου σημαντικούς παράγοντες. Κατηγοριοποίηση της πόλωσης Με δεδομένο ένα τμήμα του κειμένου, το επόμενο βήμα είναι η κατηγοριοποίηση της άποψης που εκφράζεται. Η κατηγοριοποίηση μπορεί να γίνει μεταξύ των δύο αντίθετων κατηγοριών συναισθήματος ή σε περίπτωση σύγχυσης στην πλησιέστερη εκ των δύο αυτών. Αν η άποψη/συναίσθημα θεωρηθεί ως δυαδικό χαρακτηριστικό, η κατηγοριοποίηση πόλωσης είναι η δυαδική κατηγοριοποίηση συναισθήματος είτε σε συνολικά θετική ή σε συνολικά αρνητική άποψη. Συνήθως, οι έρευνες αφορούν κριτικές πάνω σε κάποια υπηρεσία ή προϊόν, όπου η κατηγοριοποίηση σε θετική ή αρνητική άποψη είναι σχετικά ξεκάθαρη. Υπάρχουν όμως και άλλες εφαρμογές, όπως για παράδειγμα η κατηγοριοποίηση ειδήσεων, όπου παρουσιάζεται μεγαλύτερος βαθμός δυσκολίας καθώς ένα ειδησεογραφικό άρθρο μπορεί να περιέχει «κακά» νέα χωρίς ουσιαστικά να χρησιμοποιεί κανένα υποκειμενικό όρο. Επιπλέον, μεγάλο πλήθος κειμένων περιέχει τόσο θετικές όσο αρνητικές απόψεις ώστε τελικά ο στόχος θα πρέπει να είναι ο προσδιορισμός του κυρίαρχου συναισθήματος εντός αυτού. Με αυτόν τον τρόπο, η εξόρυξη συναισθήματος γίνεται τελικά ένα πολυσύνθετο πρόβλημα κατηγοριοποίησης κειμένου. Εξάλλου, κρίσιμο μέρος της διαδικασίας κατηγοριοποίησης την πόλωσης είναι το γεγονός ότι το αντίστοιχο λεξιλόγιο παρουσιάζει ομοιότητα και διαφέρει μόνο σε μερικές κρίσιμες λέξεις, οι οποίες δυνητικά είναι οι μοναδικές που κρίνουν την κατηγορία στην οποία εμπίπτει το κείμενο. Αντίθετα, στην πρώτη διαδικασία, στην κατηγοριοποίηση κειμένου, ο διαχωρισμός βασίζεται στο λεξιλόγιο και είναι ευκολότερος. Συνεπώς, όταν πρόκειται για αρχεία που περιέχουν «μιξαρισμένη» γνώμη, η κατηγορία τελικά επιλέγεται να είναι ένας συνδυασμός θετικού και αρνητικού. Οι παραπάνω διαδικασίες μπορούν να γίνουν σε πολλά επίπεδα: σε επίπεδο όρου, φράσης, πρότασης, ή αρχείου. Είναι επίσης σύνηθες να χρησιμοποιείται η έξοδος ενός επιπέδου ως είσοδος για τα υψηλότερα επίπεδα [11][12][13]. Για παράδειγμα, μπορεί κανείς να εφαρμόσει μία διαδικασία εξόρυξης συναισθήματος σε μία φράση και στη συνέχεια να κάνει χρήση της εν λόγω πληροφορίας ώστε να αποτιμήσει προτάσεις, παραγράφους και

ούτω καθεξής. Φυσικά, ανάλογα με το επίπεδο κατηγοριοποίησης, απαιτείται και τροποποίηση της διαδικασίας κατηγοριοποίηση της πόλωσης. Ανακάλυψη του αντικειμένου- στόχου Η τρίτη διαδικασία είναι η ανακάλυψη του αντικειμένου- στόχου στο οποίο αναφέρεται η γνώμη που εντοπίστηκε προηγουμένως και μπορεί να χρησιμοποιηθεί συμπληρωματικά με την κατηγοριοποίησης της πόλωσης. Η δυσκολία υλοποίησης της διαδικασίας αυτής εξαρτάται κατά πολύ από το είδος της ανάλυσης. Για παράδειγμα, είναι σχετικά ασφαλές να υποθέσει κανείς ότι μία κριτική προϊόντος αναφέρεται στο συγκεκριμένο και μόνο προϊόν. Σε άλλες πιο πολύπλοκες περιπτώσεις όπως τα περιεχόμενα των ιστοσελίδων και τα άρθρα των ιστολογιών οι απόψεις που διατυπώνονται δεν ανήκουν σε μια προκαθορισμένη θεματική περιοχή και συχνά γίνεται αναφορά σε πολλά και διαφορετικά αντικείμενα. Συνεπώς, είναι σημαντικό να μπορούν να προσδιοριστούν και να εξαχθούν τα επιμέρους συστατικά ενός κειμένου ως αντικείμενα αυτού, και το σημείο αυτό παρουσιάζει ερευνητικό ενδιαφέρον. Με τον προσδιορίζοντας τα εν λόγω συστατικών, οδηγείται κανείς σε μία πιο ακριβή ανάλυση των συναισθημάτων που περιέχονται σε ένα κείμενο και μία πιο λεπτομερή ανακεφαλαίωση των αποτελεσμάτων. Επίσης, είναι πιθανό σε μία πρόταση που περιέχει συναίσθημα/άποψη να αναφέρονται περισσότερα του ενός αντικειμένου, όπως συμβαίνει στην περίπτωση των συγκριτικών προτάσεων. Ένας τρόπος προσδιορισμού των συγκριτικών προτάσεων είναι η ανίχνευση για την ύπαρξη συγκριτικών επιθέτων και επιρρημάτων, υπερθετικών επιθέτων και κάποιων άλλων χαρακτηριστικών λέξεων όπως ίδιος, διαφέρω, προτιμώ και άλλων συναφών. Αφού γίνει ο παραπάνω προσδιορισμός, τα εν λόγω αντικείμενα μπορούν να παρατεθούν σε μία περισσότερο αντιπροσωπευτική ως προς τα προτερήματά τους σειρά, όπως αυτή προκύπτει μέσα από το κείμενο.

3.4. Πλεονεκτήματα Στην ενότητα αυτή θα παρουσιάσουμε τα πλεονεκτήματα που μπορεί να επιφέρει η αυτόματη εξόρυξη συναισθήματος και κάποια χαρακτηριστικά παραδείγματα τομέων που μπορούν να επωφεληθούν από την ανάπτυξη της τεχνικής αυτής. Ο παραδοσιακός τρόπος λήψης της γνώμης είναι οι δημοσκοπήσεις. Το πρόβλημα με τις παραδοσιακές προσεγγίσεις σχετίζεται κυρίως με την δαπάνη σε χρόνο και χρήμα για την ετοιμασία και κατάστρωση των δημοσκοπήσεων, την επιλογή κατάλληλου δείγματος, την διανομή και τελικά την ανάλυση και αξιολόγηση των αποτελεσμάτων. Επιπλέον, οι παραπάνω μέθοδοι στηρίζονται κατά κόρον στην «καλή θέληση» των συμμετεχόντων, γεγονός που πολλές φορές καθιστά την αξιοπιστία των αποτελεσμάτων τους αμφίβολη. Ακόμη, θα μπορούσαμε να πει κανείς ότι αν υπάρχει δυνατότητα συλλογής απόψεων με αυτοματοποιημένο τρόπο από διαδικτυακές πηγές η διεξαγωγή κάθε είδους ερευνών μέσω ερωτηματολογίων κρίνεται δυνητικά παρωχημένη. Για παράδειγμα, με την ευρεία χρήση των προσωπικών ιστολογίων και των forum, ως εργαλεία παράθεσης ιδεών και ανταλλαγής απόψεων και γνώσης, υπάρχει μια τεράστια πηγή δεδομένων διαθέσιμη στο διαδίκτυο για την εξόρυξη των απόψεων πάνω σε διάφορα ζητήματα. Έτσι λοιπόν, τα διάφορα σχόλια στα άρθρα των ιστολογιών αποτελούν μία πλούσια πηγή πληροφοριών που αντικατοπτρίζει άμεσα τις απόψεις των χρηστών σε μία ευρεία γκάμα θεματικών περιοχών και η αυτοματοποιημένη εξόρυξη και μετέπειτα ταξινόμηση αυτών θα μπορούσε αναμφίβολα να αντικαταστήσει τις πατροπαράδοτες έρευνες και δημοσκοπήσεις, ξεπερνώντας μάλιστα αυτές σε αξιοπιστία. Η αυτόματη εξόρυξη συναισθήματος έχει συνδεθεί πλέον με την λεγόμενη «φωνή του καταναλωτή». Προς αυτή την κατεύθυνση, η ανάλυση κειμένων απέκτησε τεράστια σημασία κυρίως λόγω της συνειδητοποίησης ότι η πληθώρα αναξιοποίητης έως τότε πληροφορίας θα μπορούσε να χρησιμοποιηθεί προς όφελος εταιριών και οργανισμών. Οι αυτόματες τεχνικές εξόρυξης κειμένου όπως η κατηγοριοποίηση, η εξόρυξη συναισθήματος και η περίληψη επιτρέπουν ικανοποιητική και επαρκή επεξεργασία των σχολίων των καταναλωτών και αναδεικνύουν τα σημαντικότερα θέματα καθώς και τα κυρίαρχα συναισθήματα.

Με την αναγνώριση των θεμάτων που σχολιάζονται σε κάποια δημόσια ιστοσελίδα και με την κατηγοριοποίηση των απόψεων που περιέχονται σε αυτή μπορούμε τελικά να χαρακτηρίσουμε την συνολική άποψη που εκφράζεται. Αξιοποιώντας την εν λόγω γνώση, οι εταιρίες και οι οργανισμοί μπορούν να βελτιώσουν σημαντικά την αξία των παρεχόμενων προϊόντων και υπηρεσιών, καθιερώνοντας νέα επιχειρησιακά μοντέλα προσαρμοσμένα κατάλληλα στις ανάγκες των πελατών. Η μεγαλύτερη καινοτομία και πλεονέκτημα έναντι των παραδοσιακών μεθόδων εξαγωγής της κοινής γνώμης είναι ότι η αυτόματη διαδικασία εξόρυξης γνώμης μπορεί να γίνεται συνεχώς και να λαμβάνει υπόψη τις συνεχώς μεταβαλλόμενες ανάγκες που προκύπτουν στην αγορά. Η «φωνή των καταναλωτών» όπως παρουσιάζεται μέσω διαδικτυακών πηγών βοηθάει στο να προσδιοριστούν νέες ευκαιρίες για εφεύρεση και βελτίωση των προϊόντων ενώ από την άλλη συνεισφέρει στον ευρύτερο προσδιορισμό των τάσεων της αγοράς και των προτιμήσεων των καταναλωτών που οδηγεί σε καινούριες επιχειρησιακές ευκαιρίες. Συνεπώς, οι ενδιαφερόμενοι οργανισμοί επωφελούνται από την αυτοματοποιημένη εξόρυξη γνώμης διατηρώντας μία συνεχή εικόνα του πώς οι χρήστες, καταναλωτές ή πολίτες αισθάνονται απέναντι στις υπηρεσίες τους, αποσπώντας συγκεκριμένες πληροφορίες που βρίσκονται «κρυμμένες» μέσα σε ένα κείμενο όπως παράπονα, προβλήματα και γενικότερες παρατηρήσεις. 3.5. Προκλήσεις / Δυσκολίες Η κατηγοριοποίηση της άποψης σε θετική και αρνητική είναι κάτι περίπλοκο, ακόμα και για τους ίδιους τους ανθρώπους. Πολλές φορές ο άνθρωπος δεν λέει ξεκάθαρα πως αισθάνεται για κάποιο θέμα, και είναι δύσκολο να καταλάβει κανείς αν η άποψή του είναι θετική ή αρνητική. Ένα άλλο ζήτημα που προκύπτει σε τοποθετήσεις σε ένα ιστότοπο είναι αν θα πρέπει πηγές που αναφέρονται στο κείμενο θεωρούνται επίσης μέρος του κειμένου. Όταν, λοιπόν, ένα άρθρο ή μία κριτική αντίστοιχα γίνονται αντικείμενο συζήτησης η κατηγοριοποίηση άποψης συνολικά μπορεί να γίνει πολύ δύσκολη. Αυτό ισχύει κυρίως όταν πρόκειται για πολιτικές συζητήσεις, όπου οι χρήστες- σχολιαστές προβαίνουν συχνά σε συγκρίσεις μεταξύ προσώπων, πολιτικών τακτικών ή γεγονότων.

Ένα ακόμα στοιχείο που δυσχεραίνει την αυτόματη εξόρυξη συναισθήματος είναι η παράθεση αστείων, ιδιωματισμών, ειρωνείας και πολιτιστικών αναφορών καθώς απαιτεί ευρύτερη γνώση και εξοικείωση με τα σχετικά γεγονότα και τις αναφορές. Ο παράγοντας αυτός καθιστά την κατηγοριοποίηση κειμένου ιδιαίτερα πολύπλοκη, αν όχι αδύνατη για τους περισσότερους αλγόριθμους. Επιπλέον, η εξαγωγή γνώμης θέτει ένα πλήθος προκλήσεων τόσο από πλευράς έρευνας όσο και από μηχανικής μάθησης. Συγκεκριμένα παρατίθενται: Είδη κειμένων: Ο σχεδιασμός και ανάπτυξη ενός γενικού αλγορίθμου που να μπορεί να εφαρμοστεί με συνέπεια σε όλα τα είδη κειμένου μοιάζει εξαιρετικά δύσκολο να γίνει, καθώς διαφορετικού είδους κείμενα διαφέρουν σε ύφος και λεξιλόγιο. Για παράδειγμα, τα άρθρα των ιστολογιών είναι πολύ πιο «θορυβώδη» και συνήθως περιέχουν περισσότερες διαφημίσεις και παραπλανητικές πληροφορίες (spam) σε σχέση με τα αντίστοιχα των επίσημων ιστοτόπων ενημέρωσης. Επιπλέον, στα πρώτα απαντώνται συχνότερα φαινόμενα ανορθογραφίας και χρήσης ιδιωματισμών, ειρωνείας κλπ. Αίσθημα/ γνώμη σε σχέση με μία οντότητα: Ενώ τα περισσότερα πειράματα που περιγράφονται στην ακαδημαϊκή βιβλιογραφία γενικά κατηγοριοποιούν μία πρόταση ή ένα κείμενο με βάση το μεταδιδόμενο αίσθημα, είναι πιο ενδιαφέρον να αναζητηθεί το τελευταίο επί μίας συγκεκριμένης οντότητας (π.χ. μίας υπηρεσίας). Σε αυτήν την περίπτωση απαιτείται ένα επιπλέον βήμα, αυτό της «εξαγωγής» μονάδων σχετικών με την οντότητα- είσοδο, γεγονός που αποτελεί καθ αυτό μία πρόκληση. Μονάδα μέτρησης κατηγοριοποίησης: Η άποψη που εκφράζεται σε ένα κείμενο μπορεί να διατρέχει όλο το κείμενο ή να αναφέρεται σε ένα μικρότερο μέρος, μία παράγραφο, μία πρόταση ή ακόμη στο μέρος μίας πρότασης. Η επιλογή της κατάλληλης μονάδας συνδέεται αναπόφευκτα με την ποσότητα της απαιτούμενης γλωσσικής επεξεργασίας και κατ αυτόν τον τρόπο επηρεάζει την απόδοση αλλά και την ταχύτητα του αλγόριθμου. Πολυγλωσσία: Η ανάπτυξη αλγορίθμων σε λέξεις εκτός της αγγλικής περιλαμβάνει τη δόμηση λεξικών και σωμάτων εκπαίδευσης (training corpora) σε αυτές τις γλώσσες, μία διαδικασία ταυτόχρονα δημιουργική και δαπανηρή. Ποιότητα: Η ποιότητα της κατηγοριοποίησης συναισθήματος μετριέται με όρους βαθμού ορθότητας (το ποσοστό των παραδειγμάτων που κατηγοριοποιούνται

σωστά από τον αλγόριθμο) ή με όρους ακρίβειας και ανάκλησης (το πλήθος των σωστών παραδειγμάτων αποτελεί την ακρίβεια ενώ το πλήθος των σωστών παραδειγμάτων που ανιχνεύτηκαν από τον αλγόριθμο επί του συνόλου αυτών ονομάζεται ανάκληση). Η επίτευξη βαθμού ποιότητας αρκούντως υψηλού για χρήση προσανατολισμένη στα αποτελέσματα παραμένει ένα δύσκολο εγχείρημα και μία συνεχής πρόκληση για τους ερευνητές.

4. Γνωσιακές βάσεις, Σώμα Κειμένων, το Wordnet και το SentiWordnet Οι γνωσιακές βάσεις (knowledge bases) είναι εργαλεία που περιέχουν δεδομένα οργανωμένα με κάποιον τρόπο ο οποίος επιτρέπει την αποδοτική διαχείριση της πληροφορίας που περιέχουν. Η πληροφορία αυτή δίνεται είτε σε μορφή απ ευθείας ορισμών είτε σε μορφή δομών χαρακτηριστικών οι οποίες στη συνέχεια αξιολογούνται από το σύστημα, για να παρθεί μία απόφαση. Επομένως, οι γνωσιακές βάσεις είναι πολύ σημαντικά εργαλεία για εφαρμογές που απαιτούν πρότερη γνώση, για να λειτουργήσουν ικανοποιητικά. Μπορεί να πει κανείς ότι είναι τα τμήματα ενός συστήματος που συνδέουν τη μηχανή με την ανθρώπινη νόηση. Είναι φανερό ότι η καλή δομή μίας γνωσιακής βάσης καθιστά δυνατή την συλλογή, οργάνωση και εξαγωγή πληροφορίας από αυτήν με αποδοτικό τρόπο. Για αυτό το λόγο, η καλή δομή της γνωσιακής βάσης αποτελεί απαίτηση κατά το σχεδιασμό της. Τα περιεχόμενα της βάσης αποτελούν μία οντολογία, καθώς διατηρούν κάποιες σχέσεις μεταξύ τους. Η οντολογία μπορεί να είναι ιεραρχική ή όχι, να είναι μία συλλογή αντικειμένων με ένα ή περισσότερα του ενός χαρακτηριστικά, κτλ. Τα περιεχόμενα της οντολογίας μπορεί να είναι δύο ειδών αντικείμενα: είτε μετρήσιμες ποσότητες (συντακτικά χαρακτηριστικά) είτε αφηρημένες έννοιες (σημασιολογικές οντότητες). Για παράδειγμα, η παρούσα εργασία ασχολείται με το κείμενο και τις λέξεις που αυτό περιέχει. Συντακτικό χαρακτηριστικό στη γνωσιακή βάση μπορεί να είναι ο αριθμός των διαφορετικών λέξεων, η συχνότητα της κάθε λέξης μέσα στο κείμενο, ή ακόμη κάποιο πιθανοτικό μοντέλο βασισμένο σε στατιστικά χαρακτηριστικά του κειμένου. Απεναντίας, οι σημασιολογικές οντότητες είναι πολύ δύσκολο να εξαχθούν από το κείμενο, και γι αυτό είναι επιθυμητό να χρησιμοποιήσουμε μία έτοιμη πηγή γνώσης, την οποία θα πρέπει στη συνέχεια να χειριστούμε κατάλληλα για να καταλήξουμε σε κάποια συμπεράσματα. Μια πολύ γνωστή γνωσιακή βάση που χρησιμοποιήθηκε που χρησιμοποιείται ευρέως είναι το WordNet.

4.1. Σώμα κειμένων (corpus) Ως σώμα κειμένων (corpus, πληθ. corpora) ορίζεται ένα αντιπροσωπευτικό σύνολο κειμένων, το οποίο χρησιμοποιείται ως δείγμα με αντικείμενο τη γλωσσολογική ανάλυση η καλύτερα, σύμφωνα με τον Sinclair [36], "ως σώμα κειμένων θεωρείται κάθε συλλογή τμημάτων μιας συγκεκριμένης γλώσσας, τα οποία επιλέγονται και διατάσσονται σύμφωνα με συγκεκριμένα γλωσσολογικά κριτήρια, έτσι ώστε να μπορούν να χρησιμοποιηθούν ως αντιπροσωπευτικό δείγμα της γλώσσας αυτής". Τα σώματα κειμένων παρέχουν στους γλωσσολόγους τη δυνατότητα για επιστημονικές παρατηρήσεις σχετικά με τη συχνότητα χρήσεως ενός τύπου, το συμφραστικό περιβάλλον του. Η έκταση ενός σώματος ποικίλλει ανάλογα με τις πηγές και τον σκοπό για τον οποίο έχει παραχθεί: υπάρχουν σώματα κειμένων που καλύπτουν ολόκληρες γραμματειακές περιόδους (όπως την Αρχαία Ελληνική και Λατινική γραμματεία) και άλλα, πιο περιορισμένα, που επιχειρούν να αποδώσουν στοιχεία τού προφορικού λόγου ή κοινωνιολέκτους. Ειδικά σώματα κειμένων αντλούν επιλεκτικά στοιχεία από έντυπο ή προφορικό λόγο, με σκοπό τη μελέτη ορισμένης γλωσσικής λειτουργίας. Στη σύγχρονη εποχή τα σώματα κειμένων αποτελούν αντικείμενο της Υπολογιστικής Γλωσσολογίας. Με την ανάπτυξη ειδικού προηγμένου λογισμικού η καταχώριση ενός κειμένου στο σώμα συνοδεύεται από κατάλληλη σήμανση (tagging), η οποία παρέχει τη δυνατότητα αναλύσεως της δομής της γλώσσας και βοηθεί στην άντληση φωνολογικών, γραμματικών και συντακτικών πληροφοριών από το κείμενο. Η διαδικασία εισαγωγής τέτοιων πληροφοριών ονομάζεται επισημείωση (annotation) και μπορεί να περιλαμβάνει εισαγωγή δεικτών σχετικά με το μέρος τού λόγου στο οποίο ανήκει κάθε λέξη (π.χ. όνομα, ρήμα, κλιτικό κτλ.) ή να αναγνωρίζει τον λημματικό τύπο της λέξεως (π.χ. το ρήμα στο α ενικό πρόσωπο του ενεστώτα, το όνομα στην ονομαστική τού ενικού) ανεξάρτητα από τον τύπο που απαντά στο κείμενο. Όπως και κάθε άλλη επιστημονική μέθοδος, τα σώματα κειμένων έχουν περιορισμούς. Όσο εκτενής και αν είναι η κάλυψή τους, χρειάζονται διαρκώς διόρθωση, ανανέωση και συμπλήρωση. Επιπλέον, τα στοιχεία τους, όταν πρόκειται για σύγχρονες, ζωντανές γλώσσες, χρειάζονται διασταύρωση και επιβεβαίωση από υλικό που προέρχεται από ιθαγενείς ομιλητές της γλώσσας. Τέλος, για να προκύψουν αξιόπιστα αποτελέσματα, απαιτούνται σταθμισμένα σώματα κειμένων, δηλ. επιμελημένα ώστε να αντιπροσωπεύουν διάφορες γλωσσικές ποικιλίες και διάφορα είδη ομιλητών.

Για την εξόρυξη γνώμης από κείμενα τα σώματα κειμένων μπορούν να φανούν πολύ χρήσιμα. Αφού κατασκευάσουμε ένα αντιπροσωπευτικό σώμα και αξιολογήσουμε το συναισθηματικό του περιεχόμενο μπορούμε να αξιολογήσουμε το συναισθηματικό φορτίο ενός άγνωστου κειμένου από τον βαθμό ομοιότητας του με κείμενα του σώματός κειμένων που κατασκευάσαμε. Στη συνέχεια θα παρουσιάσουμε τρία σώματα κειμένων, το μεν πρώτο γιατί ασχολείται με το αντικείμενο που μας ενδιαφέρει, τα δε άλλα γιατί είναι οι δύο πρώτες μεγάλες προσπάθειες δημιουργίας σώματος κειμένων στην ελληνική γλώσσα. 4.1.1. SFU Review Corpus To SFU Review Corpus [32],[33] αποτελεί μια συλλογή από κείμενα κριτικών σε ταινίες, βιβλία και καταναλωτικά προϊόντα από χρήστες του ιστοτόπου Epinions. Δημιουργήθηκε στα πλαίσια του έργου "Computational analysis of text sentiment" και περιλάμβάνει 25 θετικές και 25 αρνητικές κριτικές στις κατηγορίες βιβλία, αυτοκίνητα, υπολογιστές, μαγειρικά σκεύη, ξενοδοχεία, ταινίες, μουσική και τηλέφωνα. Ο χρήστης μπορεί να το "κατεβάσει" είτε σε ακατέργαστη μορφή όπου για κάθε κατηγορία υπάρχει ένας υποκατάλογος που περιέχει 50 αρχεία κειμένου, 25 θετικά και 25 αρνητικά, είτε μια annotated έκδοση του σώματος. Υπάρχει διαθέσιμη μια εκδοση στην οποία ο σχολιασμός (annotation) γίνεται χρησιμοποιώντας με χρηση της θεωρίας Rhetorical Structure [35] και μια έκδοση όπου ο σχολιασμός (annotation) γίνεται βάση του Apraisal Framework [34]. Τέλος δημιουργήθηκε, με τον ίδιο τρόπο, δηλαδή με κριτικές χρηστών από τον ιστότοπο ciao.es, αντίστοιχο σώμα κειμένων για την ισπανική γλώσσα. 4.1.2. Εθνικός Θησαυρός Ελληνικής Γλώσσας Ο Εθνικός Θησαυρός Ελληνικής Γλώσσας (ΕΘΕΓ) είναι το σώμα κειμένων του Ινστιτούτου Επεξεργασίας του Λόγου αναπτύχθηκε επί σειρά ετών και σήμερα περιλαμβάνει περισσότερες από 47.000.000 λέξεις, ενώ εμπλουτίζεται συνεχώς. Όλα τα κείμενα του ΕΘΕΓ είναι επιλεγμένα, έτσι ώστε να αντικατοπτρίζουν την πραγματική εικόνα της σύγχρονης ελληνικής γλώσσας. Ο ΕΘΕΓ περιλαμβάνει αποκλειστικά δείγματα γραπτού λόγου και περιλαμβάνει κείμενα με υψηλή αναγνωσιμότητα (εφημερίδες μεγάλης κυκλοφορίας, βιβλία με υψηλές πωλήσεις κτλ) που χρονολογούνται από το 1990 και μετά. Τα κείμενα του ΕΘΕΓ ταξινομούνται με βάση το μέσο δημοσίευσης, βιβλία, εφημερίδες, περιοδικά, διαδίκτυο, άλλο (κατηγορία

στην οποία περιλαμβάνονται κείμενα που δεν εντάσσονται στις προηγούμενες κατηγορίες, όπως διαφημιστικά ή ενημερωτικά φυλλάδια, προσπέκτους, δακτυλογραφημένο υλικό, όπως αναφορές, αιτήσεις, νομικά κείμενα, πρακτικά, ανακοινώσεις). Η πρόσβαση στο ΕΘΕΓ παρέχεται μέσω του ιστοτόπου και υποστηρίζει δύο τύπους χρηστών "επισκέπτη" και "συνδρομητή". Ο "επισκέπτης" έχει περιορισμούς στη χρήση του σώματος, η αναζήτηση γίνεται πάντα στο σύνολο του σώματος και επιστρέφονται μέχρι 5 προτάσεις. Ο "συνδρομητής" έχει τη δυνατότητα να επιλέξει το σύνολο ή συγκεκριμένο υποσύνολο του σώματος για να αναζητήσει εκεί με βάση τη λέξη, το λήμμα ή / και το γραμματικό προσδιορισμό καθώς και να αποθηκεύσει τις αναζητήσεις του. Εικόνα 4 ΕΘΕΓ :: Οθόνη Αναζήτης Εικόνα 5 ΕΘΕΓ :: Αποτελέσματα Αναζήτησης

Εικόνα 6 ΕΘΕΓ :: Πληροφορίες πρότασης - κειμένου Δεν υπάρχει δημοσιευμένη εργασία που να συνδέει το συγκεκριμένο σώμα κειμένων με έρευνα πάνω στο αντικείμενο αυτής της διπλωματικής εργασίας.

4.1.3. Σώμα Ελληνικών Κειμένων (ΣΕΚ) Το Σώμα Ελληνικών Κειμένων (ΣΕΚ) δημιουργήθηκε με στόχο τη γλωσσολογική έρευνα της Ελληνικής, περιλαμβάνει ένα ευρύ φάσμα προφορικών και γραπτών κειμενικών ειδών της σύγχρονης γλώσσας και αποτελεί προϊόν της συνεργασίας των Πανεπιστημίων Αθηνών και Κύπρου. Ο σκοπός του, ο τρόπος κατασκευής του και οι στόχοι του περιγράφονται στο [30]. Χαρακτηριστικό που το ξεχωρίζει είναι ότι μέρος του είναι και δεδομένα προφορικού λόγου. Δεν υπάρχει δημοσιευμένη εργασία που να συνδέει το συγκεκριμένο σώμα κειμένων με έρευνα πάνω στο αντικείμενο αυτής της διπλωματικής εργασίας. Δημόσια προσβαση στο Σώμα παρέχεται, μετά από εγγραφή, από τον ιστότοπο http://www.sek.edu.gr/index.php. Εικόνα 7 - Σώμα Ελληνικών Κειμένων - Αναζήτηση "αγαθός"

4.2. Το WordNet 4.2.1. Γενικά χαρακτηριστικά Το WordNet [20] είναι ένα σημασιολογικό λεξικό. Πρόκειται για μία εφαρμογή ανοιχτού κώδικα η οποία αναπτύσσεται από το Πανεπιστήμιο του Princeton. Ο λόγος της επιλογής του WordNet ήταν κυρίως ευρεία χρήση του από διάφορα συστήματα σαν γνωσιακή βάση. Παράλληλα, η επικοινωνία με το WordNet σε επίπεδο προγραμματισμού είναι πολύ εύκολη γρήγορη. Αλλά τι είναι στην πραγματικότητα το WordNet και τι μας προσφέρει; Το WordNet είναι μία εφαρμογή αποτελούμενη από μία ιεραρχική δομή εννοιών. Δημιουργήθηκε βασιζόμενο σε ψυχολογικές και γλωσσολογικές θεωρίες για τον τρόπο λειτουργίας του ανθρώπινου εγκεφάλου, και πιο συγκεκριμένα για τον τρόπο με τον οποίο ο άνθρωπος μαθαίνει τα νοήματα των λέξεων. Για κάθε λέξη στο λεξικό του WordNet υπάρχει ένα σύνολο από έννοιες/ερμηνείες. Οι ερμηνείες αυτές συνοδεύονται από: έναν αριθμό που δηλώνει πόσες φορές έχει βρεθεί η συγκεκριμένη ερμηνεία στα πρότυπα κείμενα από τα οποία οι λεξικογράφοι έχουν κατασκευάσει το WordNet (συχνότητα). ένα σύνολο λέξεων, που ονομάζεται synset, και αποτελείται από τα συνώνυμα της κάθε ερμηνείας της λέξης, αντιπροσωπευτικές φράσεις (gloss) στις οποίες περιέχεται η λέξη με τη δεδομένη ερμηνεία της. Στην παρακάτω εικόνα φαίνεται η πιο απλή αναζήτηση που μπορεί να κάνει το WordNet: να τυπώσει όλες τις δυνατές ερμηνείες μίας λέξης. Η δύναμη του WordNet σε πρώτο επίπεδο, όπως φαίνεται, είναι η ομαδοποίηση των ερμηνειών των λέξεων. Μάλιστα, στο αποτέλεσμα γίνεται διάκριση μεταξύ ουσιαστικών, ρημάτων, επιθέτων και επιρρημάτων.

Εικόνα 8 Στιγμιότυπο του Wordnet 4.2.2. Η δομή της πληροφορίας Έχοντας περιγράψει τα γενικά χαρακτηριστικά του WordNet μπορούμε να εξετάσουμε πώς οργανώνεται όλη η πληροφορία που περιέχει: υπερώνυμο (hypernym): η λέξη έχει γενικότερη/ευρύτερη έννοια από αυτήν της οποίας είναι υπερώνυμο, π.χ. play is a kind of..., υπώνυμο (hyponym): η λέξη έχει ειδικότερη/στενότερη έννοια από αυτήν της οποία είναι υπώ- νυμο, π.χ.... is a kind of play, ολώνυμο (holonym): η λέξη αποτελεί μία κατηγορία, στην οποία υπάγεται η λέξη της οποίας είναι ολώνυμο, π.χ. play is apart of..., μερώνυμο (meronym): η λέξη αποτελεί ένα είδος της κατηγορίας της λέξης της οποίας είναι μερώνυμο, π.χ. parts of play, πεδίο (domain): θεματική ενότητα στην οποία υπάγεται η λέξη, π.χ. play#1 is in topic of drama1

συντεταγμένοι όροι (coordinate terms): λέξεις οι οποίες έχουν κοινό υπερώνυμο, π.χ. play#1 has coordinate terms play, act, scene, script. Κάθε μία από αυτές τις σχέσεις που συνδέουν ερμηνείες μεταφράζεται σε ένα είδος αναζήτησης από το WordNet. Αυτό σημαίνει ότι κάθε φορά που γίνεται μία αναζήτηση, επιστρέφεται από το πρόγραμμα μία δενδρική δομή που σχετίζεται μόνο με τη συγκεκριμένη σχέση που έχει επιλεγεί. Γίνεται αντιληπτό ότι το μέγεθος της πληροφορίας που είναι διαθέσιμο είναι μεγάλο και ανάλογα με τη λέξη και το πλήθος των δεσμών της μπορεί να γίνει τεράστιο, αφού η αύξηση των σχέσεων είναι εκθετική. Παρατηρείται ότι στην κορυφή αυτής της ιεραρχίας βρίσκεται η λέξη entity, για την οποία δεν υπάρχει ορισμός, παρά μόνο περιφραστική περιγραφή. Είναι μια έννοια η οποία ναι μεν γίνεται κατανοητή από την ανθρώπινη αντίληψη, αλλά όχι από κάποια μηχανή, διότι δεν υπάρχει κάποιο μέτρο της αντίληψης. Αυτό συμβαίνει με πολλές λέξεις που το νόημά τους είναι αφηρημένο. 4.3. To SentiWordnet To SENTIWORDNET 3.0 είναι ένας λεξιλογικός πόρος που σχεδιαστεί ειδικά για την υποστήριξη εφαρμογών εξόρυξης άποψης/ συναισθήματος [18][19]. Το SENTIWORDNET 3.0 είναι μια βελτιωμένη έκδοση του SENTIWORDNET 1.0 και είναι διαθέσιμο στο κοινό για ερευνητικούς σκοπούς. Χρησιμοποιείται σε περισσότερες από 300 ερευνητικές ομάδες και σε μια μεγάλη ποικιλία ερευνητικών προγραμμάτων σε όλο τον κόσμο. Τα SENTIWORDNET 1.0 και 3.0 βασίζονται στο WordNet και είναι το αποτέλεσμα αυτόματου σχολιασμού όλων των synset του WORDNET ανάλογα με τους βαθμό θετικότητας, αρνητικότητας ή ουδετερότητας που έχουν. Οι διαφορές των SENTIWORDNET 1.0 και 3.0 είναι συνοπτικά οι εξής: διαφέρουν στην εκδόσεις του WordNet στην οποία βασίζονται (WORDNET 2.0 and 3.0 αντίστοιχα) διαφέρουν στον αλγόριθμο που έχει χρησιμοποιηθεί για την αυτόματη βαθμολόγηση των synset.

4.3.1. Βασικά στοιχεία Κάθε synset s συνδέεται με τρεις αριθμητικές βαθμολογίες Pos (s),neg(s), και Obj (s), οι οποίες περιγράφουν πόσο θετικοί, αρνητικοί, ή «αντικειμενικοί» (δηλαδή, ουδέτεροι) είναι οι όροι που περιλαμβάνονται synset. Διαφορετικές έννοιες του ίδιου όρου μπορεί συνεπώς να έχουν τιμές. Για παράδειγμα, το synset [estimable (J, 3)], που αντιστοιχεί στην έννοια "μπορεί να υπολογιστεί ή να εκτιμηθεί" και είναι επίθετο, έχει βαθμολογία Obj:1,0 POS:0 και Neg:0, ενώ το synset [estimable (J, 1)] που αντιστοιχεί στην έννοια "άξιος σεβασμού ή μεγάλης εκτίμησης" έχει βαθμολογία Pos: 0,75, Neg:0 και Obj:0,25. Καθεμία από τις τρεις βαθμολογίες παίρνουν τιμές στο διάστημα [0,1] και το άθροισμα τους είναι 1 για κάθε synset. Αυτό σημαίνει ότι ένα synset δε μπορεί να έχει μη μηδενική βαθμολογία σε όλες τις κατηγορίες, που σημαίνει ότι η έννοια που εξετάζεται μπορεί να έχει πόλωση και στις τρεις κατηγορίες άποψης. Ακολουθούν δυο ακόμα παραδείγματα λειτουργίας από το Online εργαλείο του synset. Εικόνα 9 Παράδειγμα λειτουργία για τη λέξη wonderful

Εικόνα 10 Παράδειγμα λειτουργίας για τη λέξη tremendous 4.4. Σύντομα ιστορικά στοιχεία Τέσσερις διαφορετικές εκδόσεις του SENTIWORDNET έχουν παρουσιαστεί σε δημοσιεύσεις:

1. SENTIWORDNET 1.0, που παρουσιάστηκε και στο κοινό και διατίθεται ελέυθερα για ερευνητικούς σκοπούς (Esuli και Sebastiani,2006) 2. SENTIWORDNET 1.1, που παρουσιάστηκε ως τεχνική έκθεση (Esuli και Sebastiani, 2007b) και δεν έφθασε ποτέ το στάδιο της δημοσίευσης 3. SENTIWORDNET 2.0, που παρουσιάστηκε στη διδακτορική διατριβή του δεύτερου συγγραφέα (Esuli, 2008) 4. SENTIWORDNET 3.0, που παρουσιάστηκε το 2006 [19] Στη συνέχεια θα γίνει μια σύγκριση χαρακτηριστικών ανάμεσα στις διάφορες εκδόσεις του SentiWordNet. Καθώς οι εκδόσεις 1.1 και 2.0 δεν έχουν επίσημες εκδόσεις, θα επικεντρωθεί στη συζήτηση στις διαφορές μεταξύ των εκδόσεων 1.0 και 3.0. Οι κύριες διαφορές είναι οι εξής: Η έκδοση 1.0 ( όπως και οι 1.1 και 2.0) βασίζεται στο παλιότερο WORDNET 2.0, ενώ η έκδοση 3.0 είναι βασισμένη στο WORDNET 3.0. Για το SENTIWORDNET 1.0 (και 1.1), ο αυτόματος σχολιασμός των synset διεξήχθη μέσω ενός ασθενούς εποπτείας (semisupervised) αλγόριθμου εκμάθησης. Αντίθετα, στο SENTIWORDNET (2.0 και) 3.0 τα αποτελέσματα του αλγόριθμου εκμάθησης που χρησιμοποιούνταν στην προηγούμενη έκδοση είναι μόνο ένα ενδιάμεσο βήμα της διαδικασίας βαθμολόγησης, καθώς δίνονται ως είσοδος σε μια επαναληπτική τυχαιοποιημένη διαδικασία που επεξεργάζεται περεταίρω τα δεδομένα. Το SENTIWORDNET (2.0 και) 3.0 είναι η έξοδος της διαδικασίας αυτής αφού έχει επιτευχθεί σύγκλιση. 4.5. Η διαδικασία δημιουργίας του SentiWordNet 3.0 Στην ενότητα αυτή περιγράφονται τα δυο βήματα δημιουργίας του SentiWordNet. 4.5.1. Διαδικασία εκμάθησης χαμηλής εποπτείας Η διαδικασία αποτελείται από τέσσερα βήματα τα οποία περιγράφονται στη συνέχεια:

1. Στο πρώτο βήμα, λαμβάνονται δυο μικρά σύνολα ( ένα που αποτελείται από όλα τα synset που περιέχουν 7 παραδειγματικά θετικούς όρους και ένα που αποτελείται από όλα τα synset που περιέχουν 7 παραδειγματικά αρνητικού όρους). Τα σύνολα αυτά αυξάνονται αυτόματα διαπερνόντας ένα αριθμό από δυαδικές συσχετίσεις στο WordNet που μπορούν να ληφθούν έτσι ώστε να διατηρήσουν ή να αντιστρέψουν τις Pos και Neg ιδιότητες. Με άλλα λόγια, συσχετίζονται synset δεδομένης πόλωσης με άλλα synset είτε ίδιας πόλωσης (με τη χρήση της σχέσης "also-see" (δείτε επίσης), είτε αντίστροφης πόλωσης (με τη χρήση της σχέσης direct antonymy"). Η εξάπλωση αυτή μπορεί να πραγματοποιηθεί με τη χρήση μιας συγκεκριμένης "ακτίνας", δηλαδή προσθέτοντας synset που έχουν απόσταση k από τα μέλη των αρχικών συνόλων. 2. Στο βήμα αυτό χρησιμοποιούνται τα σύνολα που παράχθηκαν στο προηγούμενο βήμα μαζί με ένα ακόμα το οποίο θεωρείται ότι έχει την Obj ιδιότητα, ως σύνολα εκμάθησης σε ένα ταξινομητή κλάσης (classifier). Τα glosses (σχολιασμοί) των synset χρησιμοποιούνται από τη διαδικασία εκμάθησης αντί για τα ίδια τα synset, που σημαίνει ότι ο ταξινομητής που προκύπτει είναι gloss classifier. 3. Στο βήμα αυτό όλα τα synset από το WordNet κατηγοριοποιούνται ώστε να ανήκουν σε μια από τις τρεις ιδιότητες Pos, Neg και Obj με βάση τον ταξινομητή που δημιουργήθηκε στο προηγούμενο βήμα. 4. Το βήμα 2 μπορεί να εκτελεστεί για διαφορετική ακτίνα k κάθε φορά, όπως αναφέρθηκε προηγουμένως. Παράγονται λοιπόν 8 διαφορετικοί ταξινομητές, ως αποτέλεσμα του συνδυασμού διαφορετικής ακτίνας (k = {0; 2; 4; 6) και δυο διαφορετικών μεθόδων εκμάθησης (Rocchio and SVM). Στο βήμα αυτό η τελική τιμή για τα Pos, Neg και Obj προκύπτει από τον μέσο όρο των τιμών των οχτώ ταξινομητών ανά ιδιότητα. 4.5.2. Διαδικασία τυχαίου περιπάτου Η διαδικασία αυτόματου περιπάτου αποτελείται "βλέποντας" το Wordnet 3.0 ως ένα γράφο και τρέχοντας μια επαναληπτική "τυχαίου περιπάτου" διαδικασία στην οποία οι τιμές Pos, Neg και Obj (ξεκινώντας από αυτές που προέκυψαν στην προηγούμενη διαδικασία) αλλάζουν πιθανώς σε κάθε επανάληψη. Η διαδικασία τερματίζει όταν επέλθει σύγκλιση.

Πιο συγκεκριμένα, θεωρούμε την ύπαρξη μιας κατευθυντικής ζεύξης από το synset s1 στο synset s2 αν και μόνο αν το s1 υπάρχει στον σχολιασμό (gloss) του synset s2. Η λογική σε αυτό το συσχετισμό είναι ότι αν οι περισσότεροι από τους όρους που χρησιμοποιούνται για να ορίζουν ένα συγκεκριμένο όρο είναι θετικοί (ή αντίστοιχα αρνητικοί), τότε υπάρχει μεγάλη πιθανότητα ότι ο όρος ορίζεται ως θετικός (ή αντίστοιχα αρνητικό). Με άλλα λόγια, η θετική ή αρνητική πόλωση ρέουν μέσα στο γράφο, από τους όρους που χρησιμοποιούνται σε ορισμούς στους όρους που ορίζονται. Ο μαθηματικός αλγόριθμος που χρησιμοποιείται για την διαδικασία του τυχαίου περιπάτου παρουσιάζεται στην δημοσίευση [21]. Εκτελούνται δυο διαφορετικές διαδικασίες τυχαίου περιπάτου, για τη θετική και την αρνητική διάσταση, αντίστοιχα και παράγουν δυο διαφορετικές βαθμολογίες για όλα τα synset. Εικόνα 11 Τα 10 πιο "θετικά" και τα 10 πιο "αρνητικά" synset του SentiWordNet 3.0 Οι βαθμολογίες που προκύπτουν κανονικοποιούνται ώστε να έχουν τιμές στο διάστημα [0,1]. Οι τιμές της ουδετερότητας προκύπτουν από τις άλλες δυο, έτσι ώστε το άθροισμα των Pos, Neg και Obj για κάθε synset να είναι ίσο με τη μονάδα. Στην εικόνα 4, παρουσιάζονται τα 10 πιο "θετικά" και τα 10 πιο "αρνητικά" synset του SentiWordNet 3.0.

5. Πειραματικό μέρος Στο κεφάλαιο αυτό παρατίθεται ο σχεδιασμός και η υλοποίηση μιας εφαρμογής η οποία επιτρέπει στους χρήστες να «ψηφίζουν» για την πολικότητα επιθέτων στα ελληνικά. Θα οριστούν αρχικά οι προδιαγραφές, στη συνέχεια θα γίνει ο σχεδιασμός της εφαρμογής, θα περιγραφούν οι τεχνολογίες που χρησιμοποιήθηκαν για την ανάπτυξή της και τελικά θα περιγραφούν βασικά κομμάτια της υλοποίησης. 5.1. Περιγραφή Απαιτήσεων 5.1.1. Βασικές απαιτήσεις Φιλικό περιβάλλον. Στόχος η ύπαρξη μιας φιλικής προς το χρήστη διεπαφής η οποία να μην αποτρέπει τη χρήση του συστήματος και να βοηθά τους μη έμπειρους χρήστες. Επίσης πρέπει να υπάρχει στην ίδια την εφαρμογή Online βοήθεια που να εξηγεί στους χρήστες τις δυνατότητες της εφαρμογής και τα αποτελέσματα κάθε ενέργειας. Έλλειψη ανάγκης για ειδικό λογισμικό σύνδεσης. Απαιτείται η ελάχιστη συμμετοχή χρηστών στην εγκατάσταση συστημάτων και τη λειτουργία του συστήματος. Η έλλειψη ειδικού λογισμικού για τη χρήση της εφαρμογής ελαχιστοποιεί το κόστος για τη χρήση του συστήματος. Η εφαρμογή για το λόγο αυτό πρέπει να σχεδιαστεί ως Εφαρμογή Ιστού. Στην τεχνολογία λογισμικού, μια εφαρμογή Ιστού είναι μια εφαρμογή που προσεγγίζεται μέσω ενός φυλλομετρητή ιστοσελίδων (web browser) πάνω από το δίκτυο. Ένας φυλλομετρητής ιστοσελίδων είναι ένα λογισμικό που επιτρέπει στον χρήστη του να προβάλλει, και να αλληλεπιδρά με, κείμενα, εικόνες, βίντεο, μουσική, παιχνίδια και άλλες πληροφορίες συνήθως αναρτημένες σε μια ιστοσελίδα ενός ιστότοπου στον Παγκόσμιο Ιστό ή σε ένα τοπικό δίκτυο. Το κείμενο και οι εικόνες σε μια ιστοσελίδα μπορεί να περιέχουν συνδέσμους προς άλλες ιστοσελίδες του ίδιου ή διαφορετικού ιστότοπου. Ο φυλλομετρητής επιτρέπει στον χρήστη την γρήγορη και εύκολη πρόσβαση σε πληροφορίες που βρίσκονται σε διάφορες ιστοσελίδες και ιστότοπους εναλλάσσοντας τις ιστοσελίδες μέσω συνδέσμων (links). Η κύρια γλώσσα που χρησιμοποιείται από τις εφαρμογές ιστού και

τους φυλλομετρητές είναι η γλώσσα μορφοποίησης HTML για την προβολή των ιστοσελίδων. Για την ανάπτυξη εφαρμογών που χρειάζονται περισσότερες διαδραστικά χαρακτηριστικά και δυνατότητες χρησιμοποιούνται και άλλες γλώσσες προγραμματισμού παράλληλα με την HTML όπως η JavaScript η Java και η PHP. Οι εφαρμογές Ιστού είναι δημοφιλείς επειδή δεν υπάρχει σύγχρονο λειτουργικό σύστημα που προορίζεται για υπολογιστές γραφείου που να μην έχει προ-εγκατεστημένο έναν ή περισσότερους φυλλομετρητές. Οι φυλλλομετρητές ουσιαστικά αποτελούν λογισμικό πελάτη του δικτυακού πρωτοκόλλου επιπέδου εφαρμογών HTTP. Για κάθε web browser διατίθενται, επίσης, και αρκετά πρόσθετα στοιχεία (add-ons), με στόχο την επαύξηση των δυνατοτήτων τους, τη βελτίωση της χρηστικότητας τους και την προστασία του χρήστη σε θέματα ασφάλειας. και η ευκολία της χρησιμοποίησης μιας μηχανής αναζήτησης Ιστού ως πελάτη, αποκαλούμενη μερικές φορές λεπτό πελάτη. Η δυνατότητα να ενημερωθούν και να διατηρηθούν οι εφαρμογές Ιστού χωρίς τη διανομή και εγκατάσταση του λογισμικού ενδεχομένως σε χιλιάδες υπολογιστές πελατών είναι ένας βασικός λόγος για τη δημοτικότητά τους. Γρήγορη πρόσβαση στην εφαρμογή. Επειδή η εφαρμογή είναι δικτυακή, επηρεάζεται από την απόδοση του δικτύου. Στόχος είναι η ελαχιστοποίηση των δεδομένων που ανταλλάσσονται ώστε η επικοινωνία να είναι όσο το δυνατόν γρηγορότερη. Όταν μια διεπαφή είναι αργή επηρεάζει αρνητικά τους χρήστες και μειώνεται σημαντικά η χρηστικότητά της. Ταυτοποίηση. Κάθε χρήστης που έχει πρόσβαση στο περιβάλλον πρέπει να έχει ταυτοποιηθεί πρωτύτερα. 5.1.2. Λειτουργικές Απαιτήσεις Στόχος είναι υλοποίηση μιας εφαρμογής η οποία επιτρέπει στους χρήστες να «ψηφίζουν» για την πολικότητα επιθέτων στα ελληνικά. Η εφαρμογή απευθύνεται σε τρεις διαφορετικές κατηγορίες χρηστών: Ανώνυμοι χρήστες: Οι χρήστες αυτοί μπορούν να αναζητήσουν κάποιο επίθετο. Για κάθε επίθετο διατηρείται στο σύστημα ο ορισμός του, ο κωδικός του (wordnet) και

προαιρετικά παραδείγματα χρήσης. Τα αποτελέσματα αναζήτησης περιέχουν διαφορετικούς ορισμούς του επίθετου που αναζητήθηκε, και την πολικότητά του, όπως αυτή έχει προκύψει από ψηφοφορία. Εγγγραμένοι χρήστες: Ο χρήστες που θα μπορούν να μπουν στο σύστημα και να πραγματοποιήσουν μια διαδικασία «βαθμολόγησης» των επιθέτων. Σύμφωνα με την 5-scale βαθμολόγηση που υπάρχει στο opinion mining, η βαθμοί που θα μπορεί να βάλει είναι -2,-1,0,1,2. Για την περίπτωση που δεν καταλαβαίνει τι σημαίνει το επίθετο που βλέπει ή δεν ξέρει τι να απαντήσει, μπορεί να μην ψηφήσει για κάποιο επίθετο. Κάθε χρήστης μπορεί να φηψίσει μια φορά μόνο για κάθε επίθετο. Διαχειριστές (Advanced): Οι χρήστες οι οποίοι θα μπορούν να εισάγουν επίθετα στο σύστημα μαζί με τα στοιχεία τους. Οι χρήστες αυτοί μπορούν επίσης να αλλάζουν τα στοιχεία των επιθέτων που έχουν ήδη φορτωθεί. Προκειμένου να υπάρχει ισοκαταμερισμός των "ψήφων" που έχει λάβει κάθε επίθετο, οι χρήστες δεν επιλέγουν ποια επίθετα θα ψηφίσουν. Αντίθετα, το σύστημα πρέπει να φροντίζει να τους δίνει κάθε φορά μια λίστα με επίθετα, (τα οποία δεν έχουν ψηφίσει ήδη), επιλέγοντας αυτά με τις λιγότερες ψήφους. 5.1.3. Σχεδιασμός βάσης δεδομένων Με βάση τις παραπάνω λειτουργικές απαιτήσεις, η εφαρμογή χρειάζεται τα παρακάτω αντικείμενα: Επίθετο: Ένα επίθετο αποτελείται από τα εξής πεδία: κωδικός (κλειδί), το επίθετο, τον ορισμό, και μια λίστα από παραδείγματα. Δηλαδή ένα επίθετο μπορεί να έχει κανένα, ένα ή περισσότερα παραδείγματα χρήσης. Χρήστες: Κάθε χρήστης αποτελείται από το username (κλειδί), ονοματεπώνυμο, κωδικό ασφαλείας και τύπο. Ο τύπος έχει 2 πιθανές τιμές( advanced και registered). Βαθμολογίες: Κάθε επίθετο μπορεί να έχει μια βαθμολογία από κάθε χρήστη. Η βαθμολογία δηλαδή αποτελείται από τα εξής πεδία: κωδικός επιθέτου και κωδικός χρήστη (ο συνδυασμός τους είναι πρωτεύον κλειδί) και το βαθμό. Ο βαθμός παίρνει τις διακριτές τιμές -2,-1,0,1,2.

Το σχήμα της βάσης δίνεται στο παρακάτω σχήμα: Εικόνα 12 Σχήμα της βάσης δεδομένων Στο παραπάνω σχήμα φαίνονται τα πρωτεύοντα κλειδιά (με το διακριτικό κλειδί) και οι συσχετίσεις (foreign keys) ανάμεσα στους διαφορετικούς πίνακες. Ακολουθεί και ο κώδικας SQL της βάσης δεδομένων: -- -- Βάση: `sentiment` -- -- -------------------------------------------------------- -- -- Δομή Πίνακα για τον Πίνακα `adjectives` -- CREATE TABLE IF NOT EXISTS `adjectives` ( `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `adjective` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `definition` varchar(500) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -------------------------------------------------------- --

-- Δομή Πίνακα για τον Πίνακα `contactus` -- CREATE TABLE IF NOT EXISTS `contactus` ( `id` int(11) NOT NULL AUTO_INCREMENT, `from` varchar(255) NOT NULL, `subject` varchar(255) NOT NULL, `comment` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; -- -------------------------------------------------------- -- -- Δομή Πίνακα για τον Πίνακα `examples` -- CREATE TABLE IF NOT EXISTS `examples` ( `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `example` varchar(500) COLLATE utf8_unicode_ci NOT NULL, KEY `code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -------------------------------------------------------- -- -- Δομή Πίνακα για τον Πίνακα `rank` -- CREATE TABLE IF NOT EXISTS `rank` ( `value` tinyint(4) NOT NULL, PRIMARY KEY (`value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -------------------------------------------------------- -- -- Δομή Πίνακα για τον Πίνακα `rankings` -- CREATE TABLE IF NOT EXISTS `rankings` ( `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `rank` tinyint(11) NOT NULL, PRIMARY KEY (`code`,`username`), KEY `username` (`username`), KEY `rank` (`rank`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -------------------------------------------------------- -- -- Δομή Πίνακα για τον Πίνακα `users` -- CREATE TABLE IF NOT EXISTS `users` ( `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `usertype` enum('registered','advanced','','') COLLATE utf8_unicode_ci NOT NULL, `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- Περιορισμοί για πίνακα `examples` -- ALTER TABLE `examples` ADD CONSTRAINT `examples_ibfk_2` FOREIGN KEY (`code`) REFERENCES `adjectives` (`code`) ON DELETE CASCADE ON UPDATE NO ACTION; -- -- Περιορισμοί για πίνακα `rankings` -- ALTER TABLE `rankings` ADD CONSTRAINT `rankings_ibfk_3` FOREIGN KEY (`code`) REFERENCES `adjectives` (`code`) ON DELETE CASCADE ON UPDATE NO ACTION, ADD CONSTRAINT `rankings_ibfk_4` FOREIGN KEY (`username`) REFERENCES `users` (`username`) ON DELETE CASCADE ON UPDATE NO ACTION, ADD CONSTRAINT `rankings_ibfk_5` FOREIGN KEY (`rank`) REFERENCES `rank` (`value`); 5.1.4. Τεχνολογίες Υλοποίησης Η ανάπτυξη της εφαρμογής βασίστηκε στις παρακάτω τεχνολογίες: HTML: H HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language (γλώσσα μορφοποίηση υπερκειμένου) και είναι η βασική γλώσσα δόμηση σελίδων του World Wide Web (ή απλά ιστού: Web PHP: Η ΡΗΡ είναι μια γλώσσα scripting από την πλευρά του εξυπηρετητή Ιστού, σχεδιασμένη ειδικά για το Web. Μέσα σε μια HTML σελίδα μπορεί κανείς να ενσωματώσει PHP κώδικα. Ο ΡΗΡ κώδικας μεταφράζεται στο εξυπηρετητή και δημιουργεί HTML ή άλλη έξοδο που εμφανίζεται στον browser του χρήστη. Javascript: Η JavaScript είναι γλώσσα προγραμματισμού η οποία έχει σαν σκοπό την παραγωγή δυναμικού περιεχομένου και την εκτέλεση κώδικα στην πλευρά του πελάτη (client-side) σε ιστοσελίδες. MySQL: Η MySQL είναι ένα πολύ γρήγορο και ισχυρό σύστημα διαχείρισης βάσεων δεδομένων.

CSS: To CSS είναι μια απλή γλώσσα που βοηθάει να ορίσει κανείς με σαφήνεια και ιδιαίτερη ευελιξία τον τρόπο με τον οποίο θα εμφανίζονται τα διάφορα στοιχεία σε μια ιστοσελίδα. 5.2. Γενική Περιγραφή Υλοποίησης Οι βασικές αρχές που έχουν τηρηθεί κατά την ανάπτυξη της εφαρμογής είναι οι εξής: Έγινε προσπάθεια διαχωρισμού των χαρακτηριστικών εμφάνισης του site από τη λειτουργικότητά του. Για το λόγο αυτό, έχει χρησιμοποιηθεί αρχείο css, που περιγράφει το πώς θα εμφανίζονται τα διάφορα στοιχεία της HTML. Επίσης, όλες οι κλήσεις στη βάση δεδομένων έχουν υλοποιηθεί με συναρτήσεις, ώστε να χωριστεί σε ένα βαθμό η λειτουργικότητα του ιστότοπου από την επικοινωνία με τη βάση. Τα επαναχρησιμοποιούμενα στοιχεία του ιστότοπου (header, footer) έχουν οριστεί σε ξεχωριστά αρχεία, ώστε να μην επαναλαμβάνεται συνεχώς ο ίδιος κώδικας και να είναι ευκολότερο να γίνουν αλλαγές. Οι βασικές οντότητες που περιγράφηκαν και στη βάση δεδομένων, μοντελοποιούνται με χρήση αντικειμενοστραφούς προγραμματισμού. Η χρήση αντικειμένων για την ανάκτηση και αποθήκευση δεδομένων κάνει το κώδικα ευκολότερο στην ανάγνωση και διόρθωση. Με βάση τα παραπάνω, ο ιστότοπος έχει την παρακάτω δομή: Admin: κατάλογος της διαχειριστικής εφαρμογής Css: κατάλογος με τα αρχεία css Img: κατάλογος με τις εικόνες Includes: κατάλογος με βοηθητικά αρχεία Includes/config.php : Αρχείο ρυθμίσεων και ορισμού των βασικών κλάσεων Includes/functions.php : Αρχείο ορισμού όλων των συναρτήσεων του ιστότοπου Js: Κατάλογος με αρχεία javascript. Περιέχει την βιβλιοθήκη jquery που χρησιμοποιούμε

ranking.php: Παράγει ως έξοδο μια δυναμική εικόνα με ραβδόγραμμα με τις ψήφους των χρηστών σχετικά με την πολικότητα του επίθετου. contactus.php: Υλοποιεί μια φόρμα επικοινωνίας των επισκεπτών με τους διαχειριστές του συστήματος 5.3. Περιγραφή εφαρμογής διαχείρισης Η εφαρμογή βρίσκεται στον κατάλογο admin και αποτελείται από τα εξής βασικά αρχεία: footer.php: footer του διαχειριστικού ιστότοπου header.php: header του διαχειριστικού ιστότοπου index.php: Αρχική σελίδα login.php: Login page addadjective.php: Σελίδα με φόρμα για την εισαγωγή επίθετου adjectives.php: Σελίδα που εμφανίζει τα στοιχεία ενός επίθετου edituser.php: Σελίδα για την τροποποίηση στοιχείων του χρήστη user.php: Σελίδα εμφάνισης των στοιχείων ενός χρήστη adduser.php : Σελίδα για την εισαγωγή ενός χρήστη voting.php: Σελίδα για την «ψήφιση» της πολικότητας των επίθετων contactus.php: Σελίδα για την πρόσβαση και διαχείριση των σχολίων των επισκεπτών του ιστοτόπου imports.php : Σελίδα για την εισαγωγή των επιθέτων από το [26], με την βοήθεια των create_index.php, load_data.php, save_data.php και process.php τα οποία υλοποιούν την αναζήτηση του επιθέτου στο αρχείο all-adjectives.txt την ανάκτηση δεδομένων από αυτό και την αποθήκευση του επιθέτου, του ορισμού και των παραδειγμάτων της χρήσης του στην βάση δεδομένων. Το αρχείο all-adjectives.txt είναι έξοδος του web data extraction εργαλείου που δημιουργήθηκε ειδικά για τον σκοπό της ανάκτησης των επιθέτων από το [26]. Στη συνέχεια θα γίνει αναλυτική περιγραφή των βασικών αρχείων.

5.3.1. Επεξήγηση config.php Στο αρχείο αυτό βρίσκονται οι ορισμοί των κλάσεων που χρησιμοποιούνται στην εφαρμογή και μερικές βοηθητικές συναρτήσεις. Γίνεται η σύνδεση με τη βάση, αρχικοποιείται το PHP SESSION και ορίζονται βασικές μεταβλητές όπως το όνομα του site, ο βασικός κατάλογος. Επίσης ορίζονται τα στοιχεία πρόσβασης με τη βάση δεδομένων, και γίνεται σύνδεση με τη βάση. Τέλος ενσωματώνουμε το βασικό αρχείο με χρησιμές συναρτήσεις functions.php <?php session_start(); define('dbhost','localhost'); define('dbuser','sentiment'); define('dbpass','johnsnow'); define('dbname','sentiment'); $conn = @mysql_connect (DBHOST, DBUSER, DBPASS); $conn = @mysql_select_db (DBNAME); if(!$conn){ die( "Sorry! There seems to be a problem connecting to our database."); mysql_query("set NAMES UTF8"); /* * Δημιούργησε τις σταθερές DIR και DIRADMIN * το REQUEST_URI αφορά το script που μας έκανε include / require * τα script που μας κάνούν include είναι είτε στο project / είτε στο project /admin */ $path = pathinfo($_server['request_uri']); $app_root =''; if (empty($path['extension']) ){ /* this was included by index which was called implicit */ $app_root = $path['dirname']; if (strlen($app_root) > 1 ) { // we have /somepath $app_root.= '/'; if ($path['basename'][0]!='?') //do not include GET variables $app_root.= $path['basename'].'/'; if ($app_root[strlen($app_root)-1]!= '/') $app_root.= '/'; else { /* this was included by /somepath/sthing.php so we can safely use dirname on it*/ $app_root = $path['dirname'].'/'; if (basename($app_root) == 'admin') { $app_root = dirname($app_root). '/';

/* Παραδοχή: το admin/ στο project root είναι το τελευταίο directory με αυτό το όνομα στο path */ if ( ($pos = strpos($app_root, 'admin'))!= false ) { do { $cur = strpos($app_root, 'admin', $pos + strlen('admin')); if ($cur!= false ) $pos = $cur; while ($cur!= false); $app_root = substr($app_root,0, $pos); define ( 'DIR', $app_root); define ( 'DIRADMIN', $app_root. 'admin/'); unset ($path); unset ($app_root); define('sitetitle','πολικότητα επιθέτων'); define('num_of_adj_to_show', 5); define('included', 1); define('adjective_max_voting', 5);......... include('functions.php');?> Προκειμένου να γίνει η ανάπτυξη του κώδικα ευκολότερα, προτιμήθηκε η χρήση κλάσεων που περιγράφουν τις βασικές οντότητες του συστήματος. Οι κλάσεις αυτές αντιστοιχούν στους πίνακες της βάσης που ορίστηκαν σε προηγούμενη ενότητα. Adjective, Example, User. Ο ορισμός τους δίνεται παρακάτω: Πρόκειται για τις class Adjective { public $code="n/a"; public $definition="n/a"; public $adjective="n/a"; public $examples = array(); public $votes = 0; class User { public $username="n/a"; public $password="n/a"; public $name="n/a"; public $type="n/a"; class Example { public $code; public $adjective; public $example;

class Comment { public $id; public $from; public $subject; public $comment; 5.3.2. Επεξήγηση functions.php Το αρχείο αυτό περιέχει τις συναρτήσεις σύνδεσης και επεξεργασίας των πινάκων της βάσης δεδομένων. Καλείται (με include) από το αρχείο config.php Στη συνέχεια, παρουσιάζουμε ενδεικτικά διάφορα είδη συναρτήσεων που υπάρχουν στο αρχείο. Συνάρτηση ταυτοποίησης των στοιχείων του χρήστη: function login($user, $pass){ $user = strip_tags(mysql_escape_string($user)); $pass = strip_tags(mysql_escape_string($pass)); $pass = md5($pass); $sql = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'"; $result = mysql_query($sql) or die('query failed. '. mysql_error()); if (mysql_num_rows($result) == 1) { $_SESSION['authorized'] = true; $_SESSION['username'] = $user; $row = mysql_fetch_array($result); $_SESSION['userType'] = $row['usertype']; header('location: '.DIRADMIN); exit(); else { $_SESSION['error'] = 'Sorry, wrong username or password'; Για λόγους ασφαλείας, γίνεται χρήση των συναρτήσεων mysql_real_escape_string και strip_tags σε όλες τις μεταβλητές που προκύπτουν από εισαγωγή στοιχείων από το χρήστη (φόρμες, http get request κλπ). Οι συναρτήσεις αυτές αφαιρούν «επικίνδυνους» χαρακτήρες από τη μεταβλητή, όπως εισαγωγικά, ερωτηματικά και λοιπά. Με τον τρόπο αυτό παρέχεται προστασία σε επιθέσεις που ονομάζονται SQL injection. Οι επιθέσεις αυτές

εκμεταλλεύονται τη σύνταξη της SQL για να εισφέρουν εντολές που μπορούν να διαβάσουν ή να τροποποιήσουν μια βάση δεδομένων, ή να αλλάξουν την έννοια του αρχικού query. Για παράδειγμα, στην περίπτωσή μας η login.php έχει δύο πεδία στα οποία επιτρέπεται οι χρήστες να εισάγουν ένα όνομα χρήστη και έναν κωδικό πρόσβασης. Ο κώδικας πίσω από τη σελίδα θα δημιουργήσει ένα ερώτημα SQL για να ελέγξει τον κωδικό πρόσβασης βάσει του καταλόγου των ονομάτων των χρηστών SELECT * FROM members WHERE username = '$user' AND password = '$pass' Αν αυτό το ερώτημα επιστρέφει αποτελέσματα, τότε παρέχεται πρόσβαση. Ωστόσο, εάν ο κακόβουλος χρήστης εισάγει ένα έγκυρο όνομα χρήστη και δώσει κάποιο έγκυρο κωδικό("password' OR '1'='1"), στο πεδίο του κωδικού πρόσβασης, τότε το ερώτημα που προκύπτει, θα είναι κάπως έτσι: SELECT * FROM members WHERE members.username = 'Username' AND members.password = 'password' OR '1'='1' Στο παραπάνω παράδειγμα, αν επιτραπεί η μεταβλητή $pass να πάρει την τιμή string '1'='1, τότε το query θα επιστρέφει πάντα αποτελέσματα, επιτρέποντας έτσι την πρόσβαση. Συνάρτηση η οποία τυπώνει στη σελίδα μηνύματα, μέσα από το Session: function messages() { $message = ''; if(isset($_session['success']) && $_SESSION['success']!= '') { $message = '<div class="msgok">'.$_session['success'].'</div>'; $_SESSION['success'] = ''; if( isset($_session['error']) && $_SESSION['error']!= '') { $message = '<div class="msgerror">'.$_session['error'].'</div>'; $_SESSION['error'] = ''; echo "$message"; Η συνάρτηση αυτή καλείται στην αρχή κάθε σελίδας για να τυπώσει μηνύματα που παράχθηκαν από την προηηγούμενη ενέργεια του χρήστη. Επειδή τα μηνύματα παράγονται σε προηγούμενη κλήση στο site, επιλέχθηκε το SESSION προκειμένου να περάσουν από τη μια σελίδα στην άλλη.

Συνάρτηση η οποία επιστρέφει λίστα από αντικείμενα αναζήτηση στη βάση με χρήση του επιθέτου. τύπου Adjective, υλοποιώντας Κάθε εγγραφή (row) που επιστρέφει η MySQL, χρησιμοποιείται για τη δημιουργία αντικειμένου τύπου Adjective, το οποίο προστίθεται στο array αdjective_list. Η συνάρτηση επιστρέφει το adjective_list. function getadjectives($search){ $search = mysql_escape_string(trim($search)); $adjective_list=array(); $sql="select * FROM adjectives where adjective LIKE '$search' "; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $adjective=new Adjective(); $adjective->code=$row['code']; $adjective->adjective=$row['adjective']; $adjective->definition=$row['definition']; $sql="select example FROM examples where code='$adjective- >code' "; $res = mysql_query($sql); $i=0; while($myrow = mysql_fetch_array($res)) { $adjective->examples[$i] = $myrow['example']; $i++; $adjective_list[]=$adjective; return $adjective_list; Συνάρτηση η οποία ενημερώνει τα στοιχεία ενός αντικειμένου (adjective). Γίνεται με χρήση του UPDATE και του REPLACE στην SQL. function addadjective($code,$adjective,$definition,$examples){ $code = mysql_escape_string($code); $adjective = mysql_escape_string($adjective); $definition = mysql_escape_string($definition); $examples = explode(',', mysql_escape_string($examples)); $sql = "replace INTO adjectives (code,adjective,definition) VALUES ('$code','$adjective','$definition')"; $res = mysql_query($sql ) or die(mysql_error()); foreach ($examples as $example){ $sql = "insert INTO examples (code,example) VALUES ('$code','$example')"; $result = mysql_query($sql ) or die(mysql_error());

if($res) return true; else return false; Τέλος για την εμφάνιση των επιθέτων στην αρχική σελίδα του ιστοτόπου με σελιδοποίηση και μετακίνηση στις σελίδες χρησιμοποιείται η συνάρτηση showadjectives() function showadjectives($page, $show=num_of_adj_to_show) { $adjective_list = array(); $start = ($page - 1) * NUM_OF_ADJ_TO_SHOW; $sql = "SELECT * FROM adjectives LIMIT ". $start.", ". $show; // var_dump($sql); exit; $result = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($result)) { $adjective=new Adjective(); $adjective->code=$row['code']; $adjective->adjective=$row['adjective']; $adjective->definition=$row['definition']; $sql="select example FROM examples where code='$adjective- >code' "; $res = mysql_query($sql); $i=0; while($myrow = mysql_fetch_array($res)) { $adjective->examples[$i] = $myrow['example']; $i++; $adjective_list[]=$adjective; return $adjective_list; 5.3.3. Επεξήγηση header.php Το αρχείο αυτό χρησιμοποιείται για το κοινό κομμάτι κάθε ιστοσελίδας (header) στην διαχειριστική εφαρμογή. Αρχικά, γίνεται έλεγχος αν ο χρήστης έχει συνδεθεί στο σύστημα, αλλιώς γίνεται redirection στη σελίδα login.php μέσω της συνάρτησης login_required(). <?php login_required();

if(isset($_get['logout'])){ logout();?> Στη συνέχεια, ακολουθεί ο HTML Header της σελίδας, με δηλώσεις για τα αρχεία css και js που χρησιμοποιούνται στον ιστότοπο. <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta charset="utf-8"> <title><?php echo SITETITLE;?></title> <link href="<?php echo DIR;?>css/adminstyle.css" rel="stylesheet" type="text/css" /> <script src="<?php echo DIR;?>js/jquery-1.7.1.js"></script> Κατά τη διαγραφή ενός αντικειμένου, ο ιστότοπος πρέπει να ζητά επιβεβαίωση. Συνεπώς, όταν γίνεται ένα HTTP GET Request που αφορά τη διαγραφή μιας εγγραφής, καλείται η αντίστοιχη συνάρτηση που ζητά επιβεβαίωση από το χρήστη. Η επιβεβαίωση γίνεται μέσω της συνάρτησης confirm της Javascript: <script language="javascript" type="text/javascript"> function deluser(username, name) { if (confirm("θέλετε σίγουρα να διαγράψετε τo χρήστη '" + name + "';")) { window.location.href = 'users.php?deluser=' + username; function deladjective(code, adjective) { if (confirm("θέλετε σίγουρα να διαγράψετε τo επίθετο '" + adjective + "';")) { window.location.href = 'adjectives.php?deladjective=' + code; { function delcomment(id) { if (confirm("θέλετε σίγουρα να διαγράψετε αυτό το σχόλιο ;")) </script> window.location.href = 'contactus.php?delcomment=' +id; Στη συνέχεια ξεκινά το HTML BODY και ορίζεται το κεντρικό μενού που είναι κοινό για όλες τις σελίδες.

<body> <div id="wrapper"> <div id="navigation"> <ul class="menu"> <li><a href="<?php echo DIRADMIN;?>">Κεντρική Σελίδα</a></li> <li><a href="<?php echo DIRADMIN;?>adjectives.php">Επίθετα</a></li> <?php if (isadvanced()) { echo "<li><a href='".diradmin. "users.php'>χρήστες</a></li>"; echo "<li><a href='".diradmin. "contactus.php'>σχόλια</a><li>"; echo "<li><a href='". DIRADMIN. "imports.php'>εισαγωγή</a><li>";?> <li><a href="<?php echo DIRADMIN;?>?logout">Αποσύνδεση</a></li> </ul> </div><!-- navigation div --> 5.3.4. Επεξήγηση footer.php Το αρχείο αυτό χρησιμοποιείται για το κοινό κομμάτι κάθε ιστοσελίδας (footer) διαχειριστική εφαρμογή. στην <div id="footer"> <span class="copy" style="margin-left: 10px;"> <?php echo SITETITLE.' '. date('y');?> </span> </div><!-- footer div --> </div><!-- wrapper div --> </body> </html> 5.3.5. Δημιουργία γραφήματος πολικότητας Για τη δημιουργία του γραφήματος πολικότητας για κάθε επίθετο, χρησιμοποιείται η βιβλιοθήκη GD της PHP και παράγεται ένα ραβδόγραμμα που συνοψίζει τις ψήφους των χρηστών. Για κάθε κατηγορία (-2,-1,0,1,2) εμφανίζεται ο αριθμός ψήφων.

Ο κώδικας που παράγει το ραβδόγραμμα είναι στο αρχείο ranking.php. Το ranking.php παράγει ως έξοδο μια δυναμική εικόνα με ραβδόγραμμα με τις ψήφους των χρηστών σχετικά με την πολικότητα του επίθετου. 5.3.6. Διαδικασία ψήφου πολικότητας Αν ο χρήστης εκκινήσει τη διαδικασία αυτή, επιστρέφονται μέχρι 5 επίθετα τυχαία από τη βάση, για τα οποία δεν έχει ξαναψηφίσει. Η διαδικασία αυτή τρέχει στη σελίδα admin/voting.php και έχει ως στόχο να ισοκατανέμονται οι ψήφοι των χρηστών στα διάφορα διαθέσιμα επίθετα στη βάση. Αυτό επιτυγχάνεται με τη συνάρτηση getadjectivesforvoting που επιστρέφει μέχρι 5 επίθετα από τη βάση, τα οποία ο χρήστης δεν έχει ξαναφηφίσει. function getadjectivesforvoting($username){ $username = mysql_escape_string($username); $adjective_list=array(); Το παρακάτω query επιλέγει επίθετα τα οποία ο χρήστης δεν έχει ξαναψηφίσει. $sql="select * FROM `adjectives` WHERE code not in ( select code from rankings where username='$username') LIMIT 1000 " ; $result = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($result)) { $adjective=new Adjective(); $adjective->code=$row['code']; $adjective->adjective=$row['adjective']; $adjective->definition=$row['definition']; $sql="select example FROM examples where code='$adjective- >code' "; $res = mysql_query($sql); $i=0; while($myrow = mysql_fetch_array($res)) { $adjective->examples[$i] = $myrow['example']; $i++; Για κάθε επίθετο, υπολογίζουμε τον αριθμό ψήφων που έχει λάβει. $sql="select count(*) as count FROM rankings where code='$adjective->code' "; $res = mysql_query($sql); $myrow = mysql_fetch_array($res); $adjective->votes = $myrow['count'];

$adjective_list[]=$adjective; Η λίστα ταξινομείται με βάση το πλήθος των ψήφων. Τα επίθετα με λιγότερες ψήφους εμφανίζονται πρώτα στη λίστα. usort($adjective_list, "cmp"); return $adjective_list; Από τη λίστα αυτή, η σελίδα εμφανίζει τα πρώτα 5 (ο αριθμός είναι παράμετρος στο config.php και συγκεκριμένα η σταθερά ADJECTIVE_MAX_VOTING). Ο χρήστης μπορεί να επαναλάβει τη διαδικασία αυτή όσες φορές επιθυμεί.

5.3.7. Διαδικασία Εισαγωγής επιθέτων 5.3.7.1. Προετοιμασία Χρησιμοποιώντας το εργαλείο που παρατίθεται στο Παράρτημα εξάγουμε από το [26] τα επίθετα που περιέχει σε ένα αρχείο κειμένου. Ουσιαστικά χρησιμοποιούμε την υπήρεσια αναζήτηση που μας προσφέρει ο ιστότοπος του λεξικού για να αναζητήσουμε επίθετα. Χρησιμοποιώντας τις βιβλιοθήκες Mechanize και Nokogirii της ruby περιηγούμαστε στα αποτελέσματα και αποθηκεύουμε το μέρος της κάθε ιστοσελίδας που περιέχει τα επίθετα. Ουσιαστικά κάθε επίθετο είναι και ένα definition list όπως φαίνεται και στο παρακάτω "απόκομμα" από το παραγόμενο αρχείο: <dl id="1_1458"><dt> <b>α καπέλα</b> [akapéla] Ε (άκλ.) <b>:</b> (μουσ.) για χορωδιακό έργο που εκτελείται χωρίς συνοδεία οργάνων: <i>mουσική</i> ~. (ως επίρρ.): <i>aυτή η σύνθεση τραγουδιέται</i> ~. <p class='\"etymology\"'> [λόγ. < ιταλ. a cappella] </p> </dt></dl> Η διαδικασία που χρησιμοποιούμε για να εισάγουμε επίθετα είναι η εξής: 1. Διαβάζουμε το αρχείο που παράχθηκε από το προηγούμενο στάδιο εξάγωντας κάθε φορά τα περιεχόμενα των <dl>... </dl> html tags $fh = fopen("all-adjectives.txt", "r"); if ($fh == false) { echo '<p>δεν μπόρεσα να ανοίξω το αρχείο</p>'; exit; $read_more = true; if (isset($_get['pos']) ){ fseek($fh,$_get['pos'], SEEK_SET); else { fclose($fh); header("location: index.php"); exit; $ln=''; $str=''; while (!feof($fh) && $read_more) { $ln = fgets($fh); $str.=$ln; if ( strpos($ln,'</dl>')!= false ) $read_more = false; fclose($fh);

2. Χρησιμοποιούμε την βιβλιοθήκη PHP Simple HTML DOM Parser για να περιηγηθούμε μέσα στο εξαχθέν αρχείο για να εντοπίσουμε χρήσιμη πληροφορία. Σημειώστε ότι επειδή οι ορισμοί των επιθέτων έχουν διαφοροποιήσεις δεν μπορέσαμε αξιόπιστα να αυτοματοποιήσουμε την εισαγωγή των επιθέτων στη βάση μας. Έτσι επιλέξαμε την εναλλακτική λύση να παρουσιάζουμε το επίθετο με τον ορισμό και τα παραδείγματα χρήσης του στον χρήστη και ο χρήστης να επιλέγει τι και πως θα αποθηκεύεται. Χρησιμοποιούμε το id του λεξικού σαν αναγνωριστικό του επιθέτου και στην βάση μας έτσι ώστε με μια γρήγορη ματιά στο code του επιθέτου να καταλαβαίνουμε την πηγή του. $html = new simple_html_dom(); $html->load($str); /* * id of adjective */ $ret = $html->find('dl',0); $code = $ret->id; /* * Επίθετο και καταλήξεις */ $ret = $html->find('b', 0); $mpe=''; foreach ($ret->nodes as $c ) { if ($c->tag == 'text') $mpe.= $c->plaintext; $adjs = array(); $adjs = explode('-', $mpe); foreach ( $adjs as $i ) { trim ($i); $adj = $adjs[0]; unset($adjs); unset($mpe); /* * Ορισμός */ $ret = $html->find('dt',0); $adjdefs = array(); foreach($ret->nodes as $c ) { if ($c->tag == 'text' &&!strpos($c->innertext, '[') &&!strpos($c->innertext, ']') &&!strpos($c->innertext, 'ΕΠIΡ') ) { $mpe = trim($c->innertext); if (!empty($mpe) && strlen($mpe) > 2) { $adjdefs[] = $mpe; /* Παραδείγματα */ $examples = array(); $ret = $html->find('i'); foreach($ret as $c ) {

if ( $c->parent()->tag!= 'p') $examples[] = $c->plaintext; Για την καλύτερη δυνατή λειτουργικότητα του ιστοτόπου μας χρησιμοποιούμε AJAX (από την βιβλιοθήκη jquery). Πρώτα δημιουργούμε ένα index στο αρχείο με κλειδί το επίθετο και τιμή το offset του μέσα στο αρχείο και με βάση το index αυτό δημιουργούμε ψεύδο-link για να προσπελαύνουμε την πληροφορία. Επιπλέον έχουμε υλοποιήσει και μια διαδικασία αναζήτησης για γρήγορη εύρεση επιθέτων. Στο επόμενο snippet φαίνεται η διαδικασία δημιουργίας του index <?php $fh = fopen("all-adjectives.txt", "r"); if ($fh == false) { echo 'Το αρχείο δεν υπάρχει / δεν ανοίγει'; exit; $i=0; $data = array(); while (!feof($fh)) { $read_more = true; $ln=''; $str=''; $pos = ftell($fh); do { $ln = fgets($fh); $str.=$ln; if ( strpos($ln,'</dl>')!= false ) $read_more = false; while ($read_more &&!feof($fh)); if (!$read_more ) { /* if we really read what we were expecting */ if (strstr($str, 'α καπέλα') ){ $adj = 'α καπέλα'; else { $start = strpos($str,'<b>')+3; $end = strpos($str,' ', $start); $adj = trim(substr($str, $start, ($end - $start + 1))); if(isset($_get['like']) ) { $test_str = mb_substr($adj,0, mb_strlen($_get['like'])); $t = strcmp($test_str, $_GET['like']); if ($t < 0 ) continue; else if ($t == 0 ) $data[] = array('adj'=>$adj, 'offset'=>$pos); else break; else {

$data[]=array('adj'=>$adj, 'offset'=>$pos); fclose($fh); $i=0; foreach ($data as $el ) {?> <p class="adj" style="cursor: pointer; margin: 0px; backgroundcolor: <?php echo $i%2?'#ffffff':'#e5e5e5';?>;" onclick="<?php echo 'get_data(\''.$el['adj'].'\','.$el['offset'].')';?>"><?php echo $el['adj'];?></p> <?php $i++;?> Για την ανάγνωση των επιθέτων από το αρχείο και την εμφάνιση της φόρμας εισόδου χρησιμοποιούμε το αρχείο load_data.php. Με μια πρώτη προέργασία προσπαθούμε να προσδιορίσουμε τον αριθμό των ορισμών που περιλαμβάνει το συγκεκριμένο επίθετο και στη συνέχεια δημιουργία μια φόρμα εισαγωγής δεδομένων για κάθε ορισμό. Τέλος ο χρήστης αφου επεξεργαστεί τον ορισμό καλεί με ένα HTTP POST request (ασύγχρονα με χρήση AJAX ) το αρχείο save_data.php για την αποθήκευση στη βάση δεδομένων του επιθέτου, του κωδικού του, του ορισμού του καθώς και τυχόν παραδειγμάτων χρήσης του.

5.4. Στιγμιότυπα λειτουργίας Η αρχική σελίδα της εφαρμογής, προσφέρει τη δυνατότητα αναζήτησης της πολικότητας κάποιου επίθετου. Εικόνα 13 Αρχική σελίδα Από την αρχική σελίδα μας δίνεται η δυνατότητα είτε να επισκεφθούμε σειριακά όλα τα επίθετα με τα "κουμπιά" πλοήγησής στο κάτω μέρος είτε να αναζητήσουμε συγκεκριμένο επίθετο. Ο επισκέπτης μπορεί επίσης να αφήσει κάποιο σχόλιο στους διαχειριστές του ιστοτόπου ή αν είναι διαχειριστής ή εγγεγραμμένος χρήστης να αποκτήσει πρόσβαση (μετά από επιτυχημένη πιστοποίηση της ταυτότητάς του) στο διαχειριστικό μέρος του ιστοτόπου.

5.4.1. Διαχείριση - Εξουσιοδοτημένοι χρήστες Η εφαρμογή διαχείρισης έχει ένα οριζόντιο μενού με τις παρακάτω επιλογές: Επίθετα: Η σελίδα αυτή προσφέρει αναζήτηση επιθέτων και έναρξη της διαδικασίας ψηφοφορίας. Αν ο χρήστης είναι "advanced" υπάρχει η δυνατότητα προσθήκης, τροποποίησης ή διαγραφής κάποιου επίθετου. Χρήστες: Η επιλογή αυτή είναι διαθέσιμη μονάχα στους "advanced" χρήστες και παρέχει την δυνατότητα διαχείρισης των χρηστών. Σχόλια: Η επιλογή αυτή είναι διαθέσιμη μονάχα στους "advanced" χρήστες και παρέχει την περιήγηση στα σχόλια των επισκεπτών και την διαγραφή τους. Εισαγωγή: Η επιλογή αυτή είναι διαθέσιμη μονάχα στους "advanced" χρήστες και παρέχει την δυνατότητα εισαγωγής των επιθέτων του λεξικού [26] στη βάση Στη συνέχεια φαίνεται στιγμιότυπο λειτουργίας της εφαρμογής στην λειτουργία "Επίθετα" ενός "advanced" χρήστη Εικόνα 14 Αναζήτηση επιθέτων

Η διαχείριση χρηστών παρουσιάζεται στα παρακάτω στιγμιότυπα: Εικόνα 15 Διαχείριση χρηστών Εικόνα 16 Τροποποίηση στοιχείων χρήστη Στη συνέχεια παρουσιάζεται στιγμιότυπο λειτουργίας της διαδικασίας κατάθεσης ψήφου. Επιστρέφονται επίθετα για τα οποία ο χρήστης δεν έχει καταθέσει ψήφο, με σειρά προτεραιότητας τον αριθμό ψήφων (λιγότερες ψήφοι ισοδυναμούν με μεγαλύτερη προτεραιότητα). Στη λίστα πολλαπλών επιλογών, αν ο χρήστης δεν επιλέξει κάποια τιμή από το -2 ως το 2, τότε δεν κατατίθεται ψήφος για το συγκεκριμένο επίθετο.

Εικόνα 17 Διαδικασία ψήφου Στο παρακάτω στιγμιότυπο φαίνεται η σελίδα για την εισαγωγή των επιθέτων Εικόνα 18 Εισαγωγή επιθέτου

Στην περίπτωση που στο σύστημα είναι ήδη αποθηκευμένο το επίθετο που επιλέξαμε τότε εμφανίζεται tooltip με τον ορισμό και link για την επεξεργασία του επιθέτου. Εικόνα 19 Εισαγωγή Επιθέτου που ήδη υπάρχει