Ανάλυση Συναισθημάτων Κειμένου σε Hadoop & Spark
Text Sentiment Analysis In Hadoop & Spark
Keywords
Apache Hadoop ; Apache Spark ; MapReduce ; Εξόρυξη Κειμένου ; Κατηγοριοποίηση Κειμένου ; Naïve Bayes ; Support Vector Machines ; Text Mining ; Text Classification ; Sentiment Analysis ; Ανάλυση συναισθήματοςAbstract
Τα τελευταία χρόνια που ο όγκος των απαιτούμενων προς επεξεργασία δεδομένων σε (εμπορικά, ερευνητικά, και άλλα) συστήματα ολοένα και αυξάνεται, υπάρχει έντονο ενδιαφέρον σε ό,τι αφορά την τις τεχνικές διαχείρισης αυτού του όγκου με αποδοτικό τρόπο και ικανοποιητικά αποτελέσματα. Μία από τις τεχνικές που προτιμούνται για τέτοια συστήματα είναι η επεξεργασία όγκου δεδομένων στην κλίμακα των big data χρησιμοποιώντας κοινά διαθέσιμο εξοπλισμό που βρίσκεται εύκολα στο εμπόριο για να σχεδιαστεί και εφαρμοστεί μια δομή κατανεμημένου περιβάλλοντος. Σκοπός αυτής της προσπάθειας είναι να υποστηρίζεται η παράλληλη εκτέλεση εργασιών για διαφορετικά κομμάτια δεδομένων, ώστε να επιτευχθεί μία επιτάχυνση του χρόνου ολοκλήρωσης, καθώς και καλύτερη συμπεριφορά κλιμάκωσης ανάλογα με το μέγεθος των δεδομένων που δίνονται στην είσοδο, σε σχέση με κοινές σειριακές υλοποιήσεις. Ένα προγραμματιστικό μοντέλο στο οποίο βασίζονται συστήματα τέτοιου είδους είναι αυτό του MapReduce, το οποίο στηρίζεται σε αλληλουχίες δύο απλών λειτουργιών πάνω στα δεδομένα και μπορεί να εφαρμοστεί με ευκολία πάνω στις ανάγκες μια συγκεκριμένης επεξεργασίας, είτε μέσω μίας τοπικής υποδομής είτε κάνοντας χρήση υπηρεσιών απομακρυσμένων πόρων όπως γίνεται στον χώρο του cloud computing. Η ελεύθερα διατεθειμένη σαν λογισμικό ανοικτού κώδικα πλατφόρμα του Apache Hadoop είναι από τις πιο γνωστές πάνω στην υποστήριξη MapReduce εργασιών, δίνοντας με την δημοφιλία του το έναυσμα για την υλοποίηση χρήσιμων επεκτάσεων που είτε βασίζονται εξ ολοκλήρου στην δομή του είτε καινοτομούν πέρα αυτού για την βελτίωση της εκτέλεσης συγκεκριμένων εφαρμογών. Μία από τις τελευταίες αυτές επεκτάσεις είναι εκείνη του Apache Spark, όπου δίνεται προτεραιότητα στην επεξεργασία μέσα στην κύρια μνήμη έναντι του δίσκου και υποστηρίζεται μια πληθώρα χρήσιμων υλοποιήσεων στις βιβλιοθήκες του. Μία από τις εργασίες που μπορούν να βρουν εφαρμογή οι δύο εν λόγω πλατφόρμες είναι εκείνη της εξόρυξης κειμένου και πιο συγκεκριμένα της ανάλυσης συναισθημάτων κειμένου, όπου επιχειρείται να προσδιοριστεί με χρήση τεχνικών μηχανικής μάθησης το συναισθηματικό πρόσημο που χαρακτηρίζει κάθε έγγραφο μέσω ενός μοντέλου. Κύριος σκοπός της παρούσας εργασίας είναι η διερεύνηση και ανάπτυξη εφαρμογών που υλοποιούν τα μοντέλα αλγορίθμων κατηγοριοποίησης δειγμάτων (όπως είναι εκείνος των Naïve Bayes και Support Vector Machines) στις πλατφόρμες των Hadoop και Spark αλλά και η δοκιμή τροποποιημένων εκδοχών αυτών, ώστε να εξεταστούν τα αποτελέσματα τους σε πειραματικό περιβάλλον από άποψη αποτελεσματικότητας και παράλληλης εκτέλεσης και εν τέλει να αξιολογηθούν βάσει ενδεικτικών σεναρίων χρήσης.
Abstract
In recent years where the volume of data required to be processed in (commercial, research-based, and others) systems is increasing, there is a strong interest in terms of studying techniques in order to manage this volume efficiently and retrieve adequate results. One of the preferred techniques for such systems is the process of these large volumes of data in the scale of big data using commonly and commercially available equipment to design and implement it in a distributed environment structure. The purpose of this effort is to support the parallel execution of tasks for different chunks of data, in order to achieve an acceleration regarding the execution time, as well as better behavior in scalability depending on the size of the data given at the input, in relation to common serial programming implementations. One programming model in which such systems are based on is that of MapReduce, which consists of sequences of two simple types of functions to be used on the data and can be easily applied to the needs of a particular application, either through a local infrastructure or using remote resource services as in the cloud computing. The open source platform of Apache Hadoop is one of the best known for supporting MapReduce tasks, which thanks to its popularity gives the impetus for the implementation of useful extensions that are either entirely based on its very own structure or innovate beyond that for performance improvements of specific applications. One of these latter extensions is Apache Spark, which prioritizes processing in-memory over using disk storage and supports a plethora of useful implementations from its libraries. One of the task types that can be applied in both of the mentioned platforms is that of text classification and more specifically text sentiment analysis, where using machine learning techniques a model is created in an attempt to determine the sentiment that characterizes each text document. The main purpose of this thesis is to investigate and develop applications that implement the models of document classification algorithms (such as those of Naïve Bayes and Support Vector Machines) using the platforms of Hadoop and Spark, but also to test modified versions of them, in order to examine their results in an experimental environment in terms of efficiency and parallel execution and finally evaluate them on the basis of indicative usage scenarios.