Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...ISSEL
Με την ολοένα και αυξανόµενη ενσωµάτωση του λογισµικού σε κοινωνικές δοµές όπως η εκπαίδευση και η υγεία, η γρήγορη συντήρηση (π.χ. αποσφαλµάτωση) µεγάλων έργων λογισµικού γίνεται όλο και πιο σηµαντική. Για αυτό το σκοπό, καθίσταται αναγκαία η κοινοτική οργάνωση του πηγαίου κώδικα σε οµάδες οντοτήτων (π.χ. µεθόδων σε κλάσεις, κλάσεων σε πακέτα, πακέτων σε ϐιβλιοθήκες), έτσι ώστε να διευκολύνεται η κατανόηση και πλοήγηση µεταξύ υλοποιηµένων λειτουργιών. Αν οι οντότητες οργανωθούν σε γράφους των οποίων οι ακµές αντικατοπτρίζουν τις εξαρτήσεις τους, υπάρχουν κοινά αποδεκτές αρχές της τεχνολογίας λογισµικου για το τι συνιστά καλή ποιοτικά οργάνωση του πηγαίου κώδι κα, όπως η υψηλή συνεκτικότητα εντός οµάδων οντοτήτων και η χαλαρή συνδεσιµότητα µε οντότητες άλλων οµάδων. Σε αυτή τη διπλωµατική, εξετάζεται το πρόβληµα της αυτοµατο ποιηµένης επανοργάνωσης οντοτήτων πηγαίου κώδικα ώστε να ϐελτιστοποιηθούν µετρικές που ποσοτικοποιούν αρχές ποιοτικής κοινοτικής οργάνωσης. Για να το πετύχουµε αυτό, χρησιµοποιούµε µεθόδους εξόρυξης κοινοτικής πληροφορίας από γράφους εξαρτήσεων ο ντοτήτων. Η κύρια υπόθεσή µας είναι η τρέχουσα ιεραρχική οργάνωση του κώδικα περιέχει ψήγµατα της ϐέλτιστης οργάνωσης και τη χρησιµοποιούµε ως µια προσεγγιστική πρώτη εκτίµηση την οποία και προσπαθούµε να ϐελτιώσουµε µε ϕίλτρα γράφων. Αυτή η ηµιε πιβλεπόµενη µέθοδος συγκρίνεται µε υπάρχουσες πρακτικές άπληστης ϐελτιστοποίησης της αρχικής εκτίµησης και µη επιβλεπόµενης γενετικής ϐελτιστοποίησης των κοινοτήτων στους γράφους εξαρτήσεων οντοτήτων 10 δηµοφιλών έργων λογισµικού. Βρίσκουµε ότι, δεδοµένης µια ¨στρευλωµένης¨ οργάνωσης, η προσέγγισή µας επιτρέπει την ακριβέστερη εξόρυξη των κοινοτήτων που ορίστηκαν από τους προγραµµατιστές των έργων. Επιπρο σθέτως, ολοκληρώνεται σε σχεδόν γραµµικούς χρόνους εκτέλεσης σε σχέση με τον αριθµό των εξαρτήσεων που επιτρέπουν την εφαρµογή της σε μεγάλα έργα λογισµικού.
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...ISSEL
Με την ολοένα και αυξανόµενη ενσωµάτωση του λογισµικού σε κοινωνικές δοµές όπως η εκπαίδευση και η υγεία, η γρήγορη συντήρηση (π.χ. αποσφαλµάτωση) µεγάλων έργων λογισµικού γίνεται όλο και πιο σηµαντική. Για αυτό το σκοπό, καθίσταται αναγκαία η κοινοτική οργάνωση του πηγαίου κώδικα σε οµάδες οντοτήτων (π.χ. µεθόδων σε κλάσεις, κλάσεων σε πακέτα, πακέτων σε ϐιβλιοθήκες), έτσι ώστε να διευκολύνεται η κατανόηση και πλοήγηση µεταξύ υλοποιηµένων λειτουργιών. Αν οι οντότητες οργανωθούν σε γράφους των οποίων οι ακµές αντικατοπτρίζουν τις εξαρτήσεις τους, υπάρχουν κοινά αποδεκτές αρχές της τεχνολογίας λογισµικου για το τι συνιστά καλή ποιοτικά οργάνωση του πηγαίου κώδι κα, όπως η υψηλή συνεκτικότητα εντός οµάδων οντοτήτων και η χαλαρή συνδεσιµότητα µε οντότητες άλλων οµάδων. Σε αυτή τη διπλωµατική, εξετάζεται το πρόβληµα της αυτοµατο ποιηµένης επανοργάνωσης οντοτήτων πηγαίου κώδικα ώστε να ϐελτιστοποιηθούν µετρικές που ποσοτικοποιούν αρχές ποιοτικής κοινοτικής οργάνωσης. Για να το πετύχουµε αυτό, χρησιµοποιούµε µεθόδους εξόρυξης κοινοτικής πληροφορίας από γράφους εξαρτήσεων ο ντοτήτων. Η κύρια υπόθεσή µας είναι η τρέχουσα ιεραρχική οργάνωση του κώδικα περιέχει ψήγµατα της ϐέλτιστης οργάνωσης και τη χρησιµοποιούµε ως µια προσεγγιστική πρώτη εκτίµηση την οποία και προσπαθούµε να ϐελτιώσουµε µε ϕίλτρα γράφων. Αυτή η ηµιε πιβλεπόµενη µέθοδος συγκρίνεται µε υπάρχουσες πρακτικές άπληστης ϐελτιστοποίησης της αρχικής εκτίµησης και µη επιβλεπόµενης γενετικής ϐελτιστοποίησης των κοινοτήτων στους γράφους εξαρτήσεων οντοτήτων 10 δηµοφιλών έργων λογισµικού. Βρίσκουµε ότι, δεδοµένης µια ¨στρευλωµένης¨ οργάνωσης, η προσέγγισή µας επιτρέπει την ακριβέστερη εξόρυξη των κοινοτήτων που ορίστηκαν από τους προγραµµατιστές των έργων. Επιπρο σθέτως, ολοκληρώνεται σε σχεδόν γραµµικούς χρόνους εκτέλεσης σε σχέση με τον αριθµό των εξαρτήσεων που επιτρέπουν την εφαρµογή της σε μεγάλα έργα λογισµικού.
Source code remodularization based on component dependency graphsISSEL
With the increasing integration of software in social structures, such as education and health, maintenance (e.g. debugging) of large software projects is becoming increasingly important. To this end, it is necessary to organize the source code into communities of artifacts (e.g. methods in classes, classes in packages, packages in libraries) to fa cilitate understandability and ease-of-navigation across implemented functionalities. If artifacts are organized into graphs whose edges reflect their dependencies, there ex ist commonly accepted software engineering principles of what constitutes high-quality source code organization, such as high connectivity of artifacts within groups and loose connectivity with artifacts of other groups. In this dissertation, we tackle the problem of automated reorganization of source code entities to optimize measures quantifying source code community organization quality. To this end, we apply community ex traction methods on dependency graphs. Our main hypothesis is that the existing hierarchical organization of source code comprises fragments of the optimal organiza tion and thus we use it as a first approximation that we refine with graph filters. This type of semi-supervised technique is compared to existing greedy optimization and un supervised genetic optimization approaches across 10 popular software projects. We find that, given a permutation of the ideal organization provided by developers, our approach derives the community organization closest to the ideal one. Additionally, it runs in near-linear times with respect to the number of dependencies that enable its application on dependency graphs of large projects.
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...ISSEL
Η χρήση βιβλιοθηκών κώδικα µειώνει το χρόνο ανάπτυξης νέου λογισµικού, δίνει τη δυνατότητα στους προγραµµατιστές να εστιάσουν περισσότερο στην υλοποίηση νέων λειτουργικών απαιτήσεων, και αυξάνει την αξιοπιστία του παραγόµενου κώδικα. Έτσι, η αναζήτηση κατάλληλων βιβλιοθηκών είναι απαραίτητη για τη γρήγορη ανάπτυξη λογισµικού υψηλής ποιότητας. Ταυτόχρονα, όµως, απαιτείται χρόνος (και αντίστοιχο κόστος) για διερεύνηση και επιλογή βιβλιοθηκών µεταξύ των χιλιάδων σχετικών λύσεων που διαµοιϱάζονται µέσω αποθετηρίων λογισµικού. Στην εργασία αυτή, εστιάζουµε στο αρχικό στάδιο της ανάπτυξης έργων λογισµικού, όπου η διαθέσιµη πληροφορία για αναζήτηση συνίσταται στην περιγραφή των έργων προς ανάπτυξη µε λέξεις-κλειδιά. Υπάρχοντα συστήµατα µελετάνε την εξαγωγή σχετικών βιβλιοθηκών ϐάσει της οµοιότητας των περιγραφών τους µε λέξεις-κλειδιά. Αλλά αυτή η πρακτική αγνοεί τη δηµοτικότητα των σχετικών βιβλιοθηκών και τις σηµασιολογικές συσχετίσεις µεταξύ λέξεων που δε βρίσκονται στις περιγραφές τους, όπως λέξεις που βρίσκονται στις περιγραφές έργων λογισµικού που τις χρησιµοποιούν. Για την ταυτόχρονη ενσωµάτωση των παραπάνω σηµασιολογικών συσχετίσεων και της δηµοτικότητας σε µοντέλα πρόβλεψης βιβλιοθηκών, προτείνουµε µια προσέγγιση συνεργατικού ϕιλτραρίσµατος. Για την ακρίβεια, οργανώνουµε βιβλιοθήκες και λέξεις-κλειδιά σε γράφους συσχετίσεων, όπου οι ακµές αντιστοιχούν σε εµφάνιση των λέξεων σε έργα λογισµικού που χρησιµοποιούν τις βιβλιοθήκες. ∆εδοµένης αυτής της οργάνωσης, εφαρµόζουµε παραλλαγές του αλγορίθµου PageRank για τη βαθµολόγηση των κόµβων του γράφου ϐάσει της σχετικότητάς τους µε λέξεις-κλειδιά που περιγράφουν το λογισµικό προς ανάπτυξη και προτείνουµε χρήση των βιβλιοθηκών µε την υψηλότερη βαθµολογία. Αυτή η πρακτική συγκρίνεται πειραµατικά µε υπάρχουσες εναλλακτικές σε δύο σύνολα δεδοµένων της γλώσσας Java, όπου χρησιµοποιούµε τα ονόµατα των έργων λογισµικού ως σύντοµες περγραφές. Η µέθοδός µας παρουσιάζει µεγαλύτερη προβλεπτική ικανότητα σε σχέση µε απλή αναζήτηση λέξεων-κλειδιών σε κλάσµατα του δευτερολέπτου και µπορεί να µεταβληθεί ώστε να παράγει ετερογενείς προβλέψεις.
Keyword-based software library recommendation in order to bootstrap software ...ISSEL
Software library reuse promotes efficient and effective software development, as it leads to improvement in the overall quality, reduces time-to-market and lets developers write application specific code instead of reinventing the wheel. The availability of a huge amount of reusable libraries facilitates effective software development. Code repositories provide an increasingly large number of such libraries. However, manually identifying which ones are relevant for a specific implementation is a fastidious and time consuming task for developers. In this work we focus at the early stages of software development, where finding appropriate libraries is based solely on a keyword-based description of the software. Existing recommendation systems rely on the similarity of such keywords with the descriptions of reusable libraries. This method, however, does not take into consideration the popularity of each library and the semantic similarity of searched keywords with other software entities, other than the library itself, like, for example, the descriptions of projects that use these libraries. In order to encompass in one model both the semantic similarity and the popularity of reusable libraries, we propose a collaborative filtering approach. More specifically, we organize in a relational graph keywords and libraries, such that an edge between a keyword and a library corresponds to the usage of this keyword in the description of a software project that uses this library. Given this structure, we use variants of the PageRank algorithm in order to rank the nodes of this graph depending on their relevance to a set of keywords that describe the software we want to develop. Based on this ranking, we recommend the libraries with the highest rank. We compare our method to existing library search methods on two datasets that list dependencies of Java projects, where we use the Project title as a short description. Our method performs better than the simple similarity based approach, with an execution time of a fraction of a second and could be modified in order to make heterogeneous predictions.
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
Contemporary Software products are getting larger and more complex. Dur ing the processes of software development and maintenance, developers spend a significant amount of their work time on detecting and fixing bugs. Static Analysis Tools automate the process of bug detection. Their application, however, is lim ited as the process of understanding and fixing of bugs, remains part of developer’s responsibilities. Lately, several research approaches aspire to extract useful bug fix patterns, or to automate the bug fixing process. The first approaches focus on understanding how developers face similar problems and frequently they serve as groundwork for systems for automated bug fixing. Our research aims at the extraction of useful bug fix patterns, for bugs that trigger the rules of the static analysis tool PMD. Initially, by querying the Github API, we search for commits that correspond to fixes of these categories of bugs. Both the before and after the commit versions of the commits’ files are downloaded. Then, by executing PMD on the two versions of each file, individual fixes are detected and a proper dataset is crafted. The dataset comprises fixes of bugs detectable from rules of PMD. The fixes are analyzed, and by utilizing srcML code representation and tree edit distance algorithm Gumtree, a representative sequence is extracted from each fix. Afterwards, by utilizing the metric of longest common subsequence between two sequences of two fixes, we develop a similarity scheme for the dataset’s fixes. This similarity scheme, operates as the base for the clustering of fixes and pattern extraction. In order to cluster the fixes, two separate experiments were conducted, one with K-medoids and one with the DBSCAN algorithm. In both experiments, but mostly with the DBSCAN algorithm, almost each cluster groups mostly bug fixes of a certain PMD rule. Alongside, by computing the number of commits and repositories from which the fixes of each cluster come from, it becomes obvious, that most of the clusters arise from fixes coming from a large number of commits and repositories. Thus, the extracted patterns correspond to the way in which similar problems are faced, by a number of different developers. Consequently, our extracted patterns, can be utilized as groundwork for an automated bug fixing system, where PMD will serve for bug detection.
Γ6.3 Πίνακες
Να δημιουργούμε και να αποθηκεύουμε έναν πίνακα σε μια βάση δεδομένων και να καθορίζουμε τα πεδία και τους τύπους δεδομένων των πεδίων
Να καθορίζουμε τις ιδιότητες των πεδίων ενός πίνακα
Να αναφέρουμε τα κριτήρια επιλογής προσδιορισμού ενός πρωτεύοντος κλειδιού και να καθορίζουμε το κατάλληλο πεδίο ως πρωτεύον κλειδί
Να χρησιμοποιούμε την εναλλαγή προβολών πίνακα (Design View και Datasheet View)
Να διαγράφουμε ένα πίνακα.
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
Η ανάκτηση πληροφορίας ανέκαθεν ήταν μια πλέον σημαντική πτυχή κάθε διεργασίας και δεδομένης της ταχείας αύξησης της απαίτησης γρήγορης και εύστοχης παροχής και ανάκτησης πληροφοριών, δεν είναι τίποτα παρά φυσικό να γίνεται συλλογική προσπάθεια προς την βελτιστοποίηση αυτής της διαδικασίας με οποιαδήποτε μέσα είναι διαθέσιμα, όπως η Τεχνητή Νοημοσύνη. Με αυτό τον τρόπο θα μπορεί ένας υπολογιστής να “εκπαιδευτεί” και να βοηθάει στο έργο αυτό, αντί να είναι μονάχα ένα εργαλείο για μαθηματικά πιθανοτήτων και στατιστική. Σε μία εποχή όπου τα πάντα είναι καθοδηγούμενα από την πληροφορία και τα δεδομένα, η ανάγκη για δομημένα δεδομένα και ορθή ανάκτηση πληροφορίας είναι τουλάχιστον επιτακτική. Η δομή και η οργάνωση στα δεδομένα διευκολύνει την λήψη αποφάσεων και μέσω αυτού επιβεβαιώνεται πάντα η σημασία και η συνεισφορά της τεχνητής νοημοσύνης και των μοντέλων μηχανικής μάθησης. Η εφαρμογή και η υλοποίηση μεθόδων και τεχνικών βαθιάς μάθησης μπορεί σταδιακά μπορεί να βοηθήσει στην απαλλαγή μας από την εξάρτηση από λέξεις κλειδιά και να οδεύσουμε προς την διδασκαλία της σημασιολογικής κατανόησης της φυσικής γλώσσας από τους υπολογιστές. Σε αυτό μπορεί να συνεισφέρει εν μέρει από ένα πλήρως αυτόνομο σύστημα ικανό να οργανώνει, να διαχειρίζεται και να ταξινομεί έγγραφα σημασιολογικά, με ελάχιστη εκπαίδευση. Η αξιοποίηση των δυνατοτήτων και της πολυχρηστικότητας της μάθησης και ταξινόμησης μηδενικών και λίγων βολών, καθώς και των σύγχρονων τεχνικών θεματικής μοντελοποίησης, μπορεί κανείς να αναπτύξει μια εφαρμογή που ως είσοδο λαμβάνει ακατέργαστα μη επισημειωμένα ή επεξεργασμένα δεδομένα και να επιστρέφει μια πλήρως λειτουργική εφαρμογή ερωτοαπαντήσεων. Στην προσπάθεια μεγιστοποίησης της πολυχρηστικότητας του εν λόγω συστήματος, η παρούσα διπλωματική εργασία ερευνεί και αξιολογεί την βιωσιμότητα ενός συστήματος τέτοιας φύσεως. Δεδομένου ότι ο τελικός σκοπός είναι η δομημένη πληροφορία και η αποτελεσματική ανάκτηση της, θα εξεταστεί η υπόθεση της αποκεντρωμένης προσέγγισης, καθώς μειώνονται σημαντικά οι απαιτήσεις υπολογιστικής ισχύος και αποθηκευτικού χώρου. Μέσω δοκιμών και πειραμάτων τα παραγόμενα δεδομένα φαίνεται να υποστηρίζουν την υπόθεση υπέρ ενός τέτοιου συστήματος, και δυνητικά με διάφορα πλεονεκτήματα υπέρ ενός αντίστοιχου αλλά ενιαίου συστήματος.
User-generated online content has met a significant increase in recent years, as comments, online conversations, wikis etc. are an integral part of everyday human life. The storage capability improvement of such data, combined with evolution of machine learning techniques, has led to the creation of Natural Language Understanding-Processing (NLU NLP) systems. These systems are capable of extracting useful information, without any human intervention. The sentiment that is expressed in the content contributed by users is valuable information for analysis and a number of efficient analysis systems have been built. However, there are few systems that perform sentiment analysis for the Greek language. The lack of datasets hinders the research in that direction. Within the context of the present diploma thesis, a data annotation system is developed, which is used to create a dataset containing technology product reviews and the sentiment that is expressed towards their aspects. The dataset is utilized to train sentiment analysis models. Firstly, a comparison between already existing models for Greek is conducted. Then, a new architecture for Aspect Category Detection (ACD) from reviews is proposed, which is used along with an existing architecture for Sentiment Polarity (SP) to forge an end-to-end model. Furthermore, a web interface is implemented, with the purpose of analyzing text from any given review and presenting the respective results in a user-friendly graphical interface. Experimentation with the trained models shows promising results. The end-to-end model manages to accurately recognize aspects that are included in a review and analyze the sentiment expressed towards them.
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών ΚριτικώνISSEL
Το περιεχόμενο που παράγεται από τους χρήστες στο διαδίκτυο έχει σημειώσει σημαντική αύξηση τα τελευταία χρόνια, καθώς τα σχόλια, οι διαδικτυακές συζητή σεις, οι ηλεκτρονικές πηγές κλπ. αποτελούν αναπόσπαστο κομμάτι της καθημερινό τητας. Η βελτίωση της ικανότητας αποθήκευσης τέτοιων δεδομένων, σε συνδυασμό με την εξέλιξη τεχνικών μηχανικής μάθησης, οδήγησε στην δημιουργία συστημάτων Κατανόησης-Επεξεργασίας Φυσικής Γλώσσας (NLU-NLP). Τα συστήματα αυτά εί ναι σε θέση να διαχειριστούν μεγάλο όγκο δεδομένων και να εξάγουν χρήσιμη πληροφορία, χωρίς ανθρώπινη παρέμβαση. Στο πλαίσιο αυτό, το συναίσθημα που εκφράζεται στο κείμενο των χρηστών αποτελεί επιθυμητή πληροφορία προς ανάλυση και υπάρχουν αρκετά και αξιόπι στα συστήματα σε αυτή την κατεύθυνση. Ωστόσο, δεν υπάρχουν πολλά συστήματα που να πραγματοποιούν ανάλυση συναισθήματος στην ελληνική γλώσσα. Η έλλειψη συνόλων δεδομένων αποτελεί τροχοπέδη στην έρευνα προς αυτή την κατεύθυνση. Στην παρούσα διπλωματική εργασία υλοποιείται ένα σύστημα σχολιασμού δε δομένων και μέσω αυτού δημιουργείται ένα σύνολο δεδομένων που περιέχει κριτι κές προϊόντων τεχνολογίας και το συναίσθημα που εκφράζεται προς τις πτυχές των προϊόντων. Το σύνολο δεδομένων αξιοποιείται για την εκπαίδευση μοντέλων ανά λυσης συναισθήματος. Σε πρώτη φάση, πραγματοποιείται μία σύγκριση μεταξύ των ήδη υπαρχόντων μοντέλων για τα ελληνικά. Έπειτα, προτείνεται μία νέα αρχιτεκτο νική για την ανίχνευση πτυχών από κριτικές (ACD), η οποία, σε συνδυασμό με μία υπάρχουσα αρχιτεκτονική για ανάλυση συναισθήματος πτυχών (SP), αξιοποιείται για την δημιουργία ενός συνολικού μοντέλου. Επιπρόσθετα, υλοποιείται μία διαδικτυακή διεπαφή για την ανάλυση κειμένου από οποιαδήποτε κριτική και την παρουσίαση των αποτελεσμάτων σε ένα γραφικό περιβάλλον φιλικό προς τον χρήστη. Η διεξαγωγή πειραμάτων με τα εκπαιδευμένα μοντέλα παρουσιάζει ικανοποιη τικά αποτελέσματα. Το συνολικό μοντέλο επιτυγχάνει την ακριβή αναγνώριση των πτυχών που περιέχονται σε μία κριτική και την ανάλυση του συναισθήματος που εκφράζεται προς αυτές.
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
Η Τεχνητή Νοηµοσύνη αποτελεί έναν τοµέα της τεχνολογίας που καθηµερινά πραγµατοποιεί άλµατα. Αποτελεί την αιχµή του δόρατος στην επίλυση πληθώρας προβληµάτων αλλά και στην παροχή υπηρεσιών υψηλού επιπέδου. Οι εµπορικές εφαρµογές, αν και µε απεριόριστες προοπτικές, τα τελευταία χρόνια εστιάζουν κυϱίως στη Συνοµιλητική Τεχνητή Νοηµοσύνη ή στην Τεχνητή Νοηµοσύνη Επεξεργασίας Βίντεο και Εικόνας, µε αποτέλεσµα τον ενθουσιασµό της αγοράς και των χρηστών, οι οποίοι αποκτούν όλο και µεγαλύτερες απαιτήσεις, ως προς την ποιότητα και τις δυνατότητες των εργαλείων τους. Οι συνοµιλητικοί ϐοηθοί, Chatbots, έχουν διεισδύσει στην καθηµερινότητά, µε πληθώρα µορφών και χρήσεων. Η παραδοσιακή µορφή τους, που απαντούσε ένα κλειστό σύνολο απλοϊκών ερωτήσεων, αντικαταστάθηκε από µοντέρνα συστήµατα και εφαρµογές που προτείνουν, συζητούν, συνοµιλούν, διασκεδάζουν, συµβουλεύουν. Είτε ως εφαρµογές στο κινητό του χρήστη, είτε διαθέσιµοι online, οι σύγχρονοι βοηθοί αποτελούν πλέον κοµµάτι της καθηµερινής ϱουτίνας και των εργαλείων που την καθιστούν πιο ανεκτή και ευχάριστη. Αυτή η καθολική πλέον παρουσία τους καθιστά αναγκαίο τον εκλεκτισµό αυτών των υπηρεσιών προσθέτοντας νέα στοιχεία και παραµέτρους, ανάλογα µε την εξειδίκευση κάθε χρήστη και των αναγκών του. Αυτές οι εφαρµογές, όντας συνεχώς συνδεδεµένες στο διαδίκτυο, θυσιάζουν την ιδιωτικότητα του χρήστη, καθιστώντας τον επιρρεπή σε κακόβουλο λογισµικό ή απάτες. Παράλληλα ,όµως, η πλειοψηφία αυτών των εφαρµογών αδυνατούν να χρησιµοποιήσουν τον µεγαλύτερο όγκο της πληροφορίας η οποία είναι διαθέσιµη στο διαδίκτυο, παρότι είναι συνδεδεµένες σε αυτό. Τέλος, τα υπάρχοντα συστήµατα δεν έχουν προσωποποιηµένο χαρακτήρα. Οι απαντήσεις και οι υπηρεσίες τους σπανίως προσαρµόζονται στον εκάστοτε χρήστη. Σε αυτήν τη διπλωµατική εργασία γίνεται µια προσπάθεια ανάπτυξης ενός ψηφιακού βοηθού ερωταπαντήσεων που αναζητά δυναµικά τις απαντήσεις στον ιστό. Αυτό το σύστηµα, χρησιµοποιώντας προεκπαιδευµένα µοντέλα αλλά και τεχνολογίες λογισµικού, απαντάει τις ερωτήσεις του χρήστη αξιοποιώντας το σύνολο της online πληροφορίας. Η ϕορητότητα του συστήµατος µπορεί να εξασφαλίσει µια ιδιωτική εµπειρία καθώς και απαντήσεις από εξειδικευµένες πηγές δεδοµένων. Τα πειραµατικά αποτελέσµατα αποδεικνύουν ότι το συγκεκριµένο σύστηµα είναι επαρκώς ακριβές, ενώ ταυτόχρονα επιτυγχάνει τους σκοπούς για τους οποίους αναπτύχθηκε. Θυσιάζεται η αναλυτικότητα και το συνοµιλητικό ύφος των συµβατικών ψηφιακών βοηθών, για να αξιοποιηθεί το µέγιστο πλήθος πληροφορίας. Επιπλέον, οι προεκτάσεις του συστήµατος µπορούν να οδηγήσουν σε χρήση του σε εξειδικευµένα συστήµατα όπου η πληροφορία που είναι διαθέσιµη είναι περιορισµένη και προέρχεται πάλι από το διαδίκτυο αλλά µόνο από µια συγκεκριµένη πηγή.
Source code remodularization based on component dependency graphsISSEL
With the increasing integration of software in social structures, such as education and health, maintenance (e.g. debugging) of large software projects is becoming increasingly important. To this end, it is necessary to organize the source code into communities of artifacts (e.g. methods in classes, classes in packages, packages in libraries) to fa cilitate understandability and ease-of-navigation across implemented functionalities. If artifacts are organized into graphs whose edges reflect their dependencies, there ex ist commonly accepted software engineering principles of what constitutes high-quality source code organization, such as high connectivity of artifacts within groups and loose connectivity with artifacts of other groups. In this dissertation, we tackle the problem of automated reorganization of source code entities to optimize measures quantifying source code community organization quality. To this end, we apply community ex traction methods on dependency graphs. Our main hypothesis is that the existing hierarchical organization of source code comprises fragments of the optimal organiza tion and thus we use it as a first approximation that we refine with graph filters. This type of semi-supervised technique is compared to existing greedy optimization and un supervised genetic optimization approaches across 10 popular software projects. We find that, given a permutation of the ideal organization provided by developers, our approach derives the community organization closest to the ideal one. Additionally, it runs in near-linear times with respect to the number of dependencies that enable its application on dependency graphs of large projects.
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...ISSEL
Η χρήση βιβλιοθηκών κώδικα µειώνει το χρόνο ανάπτυξης νέου λογισµικού, δίνει τη δυνατότητα στους προγραµµατιστές να εστιάσουν περισσότερο στην υλοποίηση νέων λειτουργικών απαιτήσεων, και αυξάνει την αξιοπιστία του παραγόµενου κώδικα. Έτσι, η αναζήτηση κατάλληλων βιβλιοθηκών είναι απαραίτητη για τη γρήγορη ανάπτυξη λογισµικού υψηλής ποιότητας. Ταυτόχρονα, όµως, απαιτείται χρόνος (και αντίστοιχο κόστος) για διερεύνηση και επιλογή βιβλιοθηκών µεταξύ των χιλιάδων σχετικών λύσεων που διαµοιϱάζονται µέσω αποθετηρίων λογισµικού. Στην εργασία αυτή, εστιάζουµε στο αρχικό στάδιο της ανάπτυξης έργων λογισµικού, όπου η διαθέσιµη πληροφορία για αναζήτηση συνίσταται στην περιγραφή των έργων προς ανάπτυξη µε λέξεις-κλειδιά. Υπάρχοντα συστήµατα µελετάνε την εξαγωγή σχετικών βιβλιοθηκών ϐάσει της οµοιότητας των περιγραφών τους µε λέξεις-κλειδιά. Αλλά αυτή η πρακτική αγνοεί τη δηµοτικότητα των σχετικών βιβλιοθηκών και τις σηµασιολογικές συσχετίσεις µεταξύ λέξεων που δε βρίσκονται στις περιγραφές τους, όπως λέξεις που βρίσκονται στις περιγραφές έργων λογισµικού που τις χρησιµοποιούν. Για την ταυτόχρονη ενσωµάτωση των παραπάνω σηµασιολογικών συσχετίσεων και της δηµοτικότητας σε µοντέλα πρόβλεψης βιβλιοθηκών, προτείνουµε µια προσέγγιση συνεργατικού ϕιλτραρίσµατος. Για την ακρίβεια, οργανώνουµε βιβλιοθήκες και λέξεις-κλειδιά σε γράφους συσχετίσεων, όπου οι ακµές αντιστοιχούν σε εµφάνιση των λέξεων σε έργα λογισµικού που χρησιµοποιούν τις βιβλιοθήκες. ∆εδοµένης αυτής της οργάνωσης, εφαρµόζουµε παραλλαγές του αλγορίθµου PageRank για τη βαθµολόγηση των κόµβων του γράφου ϐάσει της σχετικότητάς τους µε λέξεις-κλειδιά που περιγράφουν το λογισµικό προς ανάπτυξη και προτείνουµε χρήση των βιβλιοθηκών µε την υψηλότερη βαθµολογία. Αυτή η πρακτική συγκρίνεται πειραµατικά µε υπάρχουσες εναλλακτικές σε δύο σύνολα δεδοµένων της γλώσσας Java, όπου χρησιµοποιούµε τα ονόµατα των έργων λογισµικού ως σύντοµες περγραφές. Η µέθοδός µας παρουσιάζει µεγαλύτερη προβλεπτική ικανότητα σε σχέση µε απλή αναζήτηση λέξεων-κλειδιών σε κλάσµατα του δευτερολέπτου και µπορεί να µεταβληθεί ώστε να παράγει ετερογενείς προβλέψεις.
Keyword-based software library recommendation in order to bootstrap software ...ISSEL
Software library reuse promotes efficient and effective software development, as it leads to improvement in the overall quality, reduces time-to-market and lets developers write application specific code instead of reinventing the wheel. The availability of a huge amount of reusable libraries facilitates effective software development. Code repositories provide an increasingly large number of such libraries. However, manually identifying which ones are relevant for a specific implementation is a fastidious and time consuming task for developers. In this work we focus at the early stages of software development, where finding appropriate libraries is based solely on a keyword-based description of the software. Existing recommendation systems rely on the similarity of such keywords with the descriptions of reusable libraries. This method, however, does not take into consideration the popularity of each library and the semantic similarity of searched keywords with other software entities, other than the library itself, like, for example, the descriptions of projects that use these libraries. In order to encompass in one model both the semantic similarity and the popularity of reusable libraries, we propose a collaborative filtering approach. More specifically, we organize in a relational graph keywords and libraries, such that an edge between a keyword and a library corresponds to the usage of this keyword in the description of a software project that uses this library. Given this structure, we use variants of the PageRank algorithm in order to rank the nodes of this graph depending on their relevance to a set of keywords that describe the software we want to develop. Based on this ranking, we recommend the libraries with the highest rank. We compare our method to existing library search methods on two datasets that list dependencies of Java projects, where we use the Project title as a short description. Our method performs better than the simple similarity based approach, with an execution time of a fraction of a second and could be modified in order to make heterogeneous predictions.
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
Contemporary Software products are getting larger and more complex. Dur ing the processes of software development and maintenance, developers spend a significant amount of their work time on detecting and fixing bugs. Static Analysis Tools automate the process of bug detection. Their application, however, is lim ited as the process of understanding and fixing of bugs, remains part of developer’s responsibilities. Lately, several research approaches aspire to extract useful bug fix patterns, or to automate the bug fixing process. The first approaches focus on understanding how developers face similar problems and frequently they serve as groundwork for systems for automated bug fixing. Our research aims at the extraction of useful bug fix patterns, for bugs that trigger the rules of the static analysis tool PMD. Initially, by querying the Github API, we search for commits that correspond to fixes of these categories of bugs. Both the before and after the commit versions of the commits’ files are downloaded. Then, by executing PMD on the two versions of each file, individual fixes are detected and a proper dataset is crafted. The dataset comprises fixes of bugs detectable from rules of PMD. The fixes are analyzed, and by utilizing srcML code representation and tree edit distance algorithm Gumtree, a representative sequence is extracted from each fix. Afterwards, by utilizing the metric of longest common subsequence between two sequences of two fixes, we develop a similarity scheme for the dataset’s fixes. This similarity scheme, operates as the base for the clustering of fixes and pattern extraction. In order to cluster the fixes, two separate experiments were conducted, one with K-medoids and one with the DBSCAN algorithm. In both experiments, but mostly with the DBSCAN algorithm, almost each cluster groups mostly bug fixes of a certain PMD rule. Alongside, by computing the number of commits and repositories from which the fixes of each cluster come from, it becomes obvious, that most of the clusters arise from fixes coming from a large number of commits and repositories. Thus, the extracted patterns correspond to the way in which similar problems are faced, by a number of different developers. Consequently, our extracted patterns, can be utilized as groundwork for an automated bug fixing system, where PMD will serve for bug detection.
Γ6.3 Πίνακες
Να δημιουργούμε και να αποθηκεύουμε έναν πίνακα σε μια βάση δεδομένων και να καθορίζουμε τα πεδία και τους τύπους δεδομένων των πεδίων
Να καθορίζουμε τις ιδιότητες των πεδίων ενός πίνακα
Να αναφέρουμε τα κριτήρια επιλογής προσδιορισμού ενός πρωτεύοντος κλειδιού και να καθορίζουμε το κατάλληλο πεδίο ως πρωτεύον κλειδί
Να χρησιμοποιούμε την εναλλαγή προβολών πίνακα (Design View και Datasheet View)
Να διαγράφουμε ένα πίνακα.
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
Η ανάκτηση πληροφορίας ανέκαθεν ήταν μια πλέον σημαντική πτυχή κάθε διεργασίας και δεδομένης της ταχείας αύξησης της απαίτησης γρήγορης και εύστοχης παροχής και ανάκτησης πληροφοριών, δεν είναι τίποτα παρά φυσικό να γίνεται συλλογική προσπάθεια προς την βελτιστοποίηση αυτής της διαδικασίας με οποιαδήποτε μέσα είναι διαθέσιμα, όπως η Τεχνητή Νοημοσύνη. Με αυτό τον τρόπο θα μπορεί ένας υπολογιστής να “εκπαιδευτεί” και να βοηθάει στο έργο αυτό, αντί να είναι μονάχα ένα εργαλείο για μαθηματικά πιθανοτήτων και στατιστική. Σε μία εποχή όπου τα πάντα είναι καθοδηγούμενα από την πληροφορία και τα δεδομένα, η ανάγκη για δομημένα δεδομένα και ορθή ανάκτηση πληροφορίας είναι τουλάχιστον επιτακτική. Η δομή και η οργάνωση στα δεδομένα διευκολύνει την λήψη αποφάσεων και μέσω αυτού επιβεβαιώνεται πάντα η σημασία και η συνεισφορά της τεχνητής νοημοσύνης και των μοντέλων μηχανικής μάθησης. Η εφαρμογή και η υλοποίηση μεθόδων και τεχνικών βαθιάς μάθησης μπορεί σταδιακά μπορεί να βοηθήσει στην απαλλαγή μας από την εξάρτηση από λέξεις κλειδιά και να οδεύσουμε προς την διδασκαλία της σημασιολογικής κατανόησης της φυσικής γλώσσας από τους υπολογιστές. Σε αυτό μπορεί να συνεισφέρει εν μέρει από ένα πλήρως αυτόνομο σύστημα ικανό να οργανώνει, να διαχειρίζεται και να ταξινομεί έγγραφα σημασιολογικά, με ελάχιστη εκπαίδευση. Η αξιοποίηση των δυνατοτήτων και της πολυχρηστικότητας της μάθησης και ταξινόμησης μηδενικών και λίγων βολών, καθώς και των σύγχρονων τεχνικών θεματικής μοντελοποίησης, μπορεί κανείς να αναπτύξει μια εφαρμογή που ως είσοδο λαμβάνει ακατέργαστα μη επισημειωμένα ή επεξεργασμένα δεδομένα και να επιστρέφει μια πλήρως λειτουργική εφαρμογή ερωτοαπαντήσεων. Στην προσπάθεια μεγιστοποίησης της πολυχρηστικότητας του εν λόγω συστήματος, η παρούσα διπλωματική εργασία ερευνεί και αξιολογεί την βιωσιμότητα ενός συστήματος τέτοιας φύσεως. Δεδομένου ότι ο τελικός σκοπός είναι η δομημένη πληροφορία και η αποτελεσματική ανάκτηση της, θα εξεταστεί η υπόθεση της αποκεντρωμένης προσέγγισης, καθώς μειώνονται σημαντικά οι απαιτήσεις υπολογιστικής ισχύος και αποθηκευτικού χώρου. Μέσω δοκιμών και πειραμάτων τα παραγόμενα δεδομένα φαίνεται να υποστηρίζουν την υπόθεση υπέρ ενός τέτοιου συστήματος, και δυνητικά με διάφορα πλεονεκτήματα υπέρ ενός αντίστοιχου αλλά ενιαίου συστήματος.
User-generated online content has met a significant increase in recent years, as comments, online conversations, wikis etc. are an integral part of everyday human life. The storage capability improvement of such data, combined with evolution of machine learning techniques, has led to the creation of Natural Language Understanding-Processing (NLU NLP) systems. These systems are capable of extracting useful information, without any human intervention. The sentiment that is expressed in the content contributed by users is valuable information for analysis and a number of efficient analysis systems have been built. However, there are few systems that perform sentiment analysis for the Greek language. The lack of datasets hinders the research in that direction. Within the context of the present diploma thesis, a data annotation system is developed, which is used to create a dataset containing technology product reviews and the sentiment that is expressed towards their aspects. The dataset is utilized to train sentiment analysis models. Firstly, a comparison between already existing models for Greek is conducted. Then, a new architecture for Aspect Category Detection (ACD) from reviews is proposed, which is used along with an existing architecture for Sentiment Polarity (SP) to forge an end-to-end model. Furthermore, a web interface is implemented, with the purpose of analyzing text from any given review and presenting the respective results in a user-friendly graphical interface. Experimentation with the trained models shows promising results. The end-to-end model manages to accurately recognize aspects that are included in a review and analyze the sentiment expressed towards them.
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών ΚριτικώνISSEL
Το περιεχόμενο που παράγεται από τους χρήστες στο διαδίκτυο έχει σημειώσει σημαντική αύξηση τα τελευταία χρόνια, καθώς τα σχόλια, οι διαδικτυακές συζητή σεις, οι ηλεκτρονικές πηγές κλπ. αποτελούν αναπόσπαστο κομμάτι της καθημερινό τητας. Η βελτίωση της ικανότητας αποθήκευσης τέτοιων δεδομένων, σε συνδυασμό με την εξέλιξη τεχνικών μηχανικής μάθησης, οδήγησε στην δημιουργία συστημάτων Κατανόησης-Επεξεργασίας Φυσικής Γλώσσας (NLU-NLP). Τα συστήματα αυτά εί ναι σε θέση να διαχειριστούν μεγάλο όγκο δεδομένων και να εξάγουν χρήσιμη πληροφορία, χωρίς ανθρώπινη παρέμβαση. Στο πλαίσιο αυτό, το συναίσθημα που εκφράζεται στο κείμενο των χρηστών αποτελεί επιθυμητή πληροφορία προς ανάλυση και υπάρχουν αρκετά και αξιόπι στα συστήματα σε αυτή την κατεύθυνση. Ωστόσο, δεν υπάρχουν πολλά συστήματα που να πραγματοποιούν ανάλυση συναισθήματος στην ελληνική γλώσσα. Η έλλειψη συνόλων δεδομένων αποτελεί τροχοπέδη στην έρευνα προς αυτή την κατεύθυνση. Στην παρούσα διπλωματική εργασία υλοποιείται ένα σύστημα σχολιασμού δε δομένων και μέσω αυτού δημιουργείται ένα σύνολο δεδομένων που περιέχει κριτι κές προϊόντων τεχνολογίας και το συναίσθημα που εκφράζεται προς τις πτυχές των προϊόντων. Το σύνολο δεδομένων αξιοποιείται για την εκπαίδευση μοντέλων ανά λυσης συναισθήματος. Σε πρώτη φάση, πραγματοποιείται μία σύγκριση μεταξύ των ήδη υπαρχόντων μοντέλων για τα ελληνικά. Έπειτα, προτείνεται μία νέα αρχιτεκτο νική για την ανίχνευση πτυχών από κριτικές (ACD), η οποία, σε συνδυασμό με μία υπάρχουσα αρχιτεκτονική για ανάλυση συναισθήματος πτυχών (SP), αξιοποιείται για την δημιουργία ενός συνολικού μοντέλου. Επιπρόσθετα, υλοποιείται μία διαδικτυακή διεπαφή για την ανάλυση κειμένου από οποιαδήποτε κριτική και την παρουσίαση των αποτελεσμάτων σε ένα γραφικό περιβάλλον φιλικό προς τον χρήστη. Η διεξαγωγή πειραμάτων με τα εκπαιδευμένα μοντέλα παρουσιάζει ικανοποιη τικά αποτελέσματα. Το συνολικό μοντέλο επιτυγχάνει την ακριβή αναγνώριση των πτυχών που περιέχονται σε μία κριτική και την ανάλυση του συναισθήματος που εκφράζεται προς αυτές.
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
Η Τεχνητή Νοηµοσύνη αποτελεί έναν τοµέα της τεχνολογίας που καθηµερινά πραγµατοποιεί άλµατα. Αποτελεί την αιχµή του δόρατος στην επίλυση πληθώρας προβληµάτων αλλά και στην παροχή υπηρεσιών υψηλού επιπέδου. Οι εµπορικές εφαρµογές, αν και µε απεριόριστες προοπτικές, τα τελευταία χρόνια εστιάζουν κυϱίως στη Συνοµιλητική Τεχνητή Νοηµοσύνη ή στην Τεχνητή Νοηµοσύνη Επεξεργασίας Βίντεο και Εικόνας, µε αποτέλεσµα τον ενθουσιασµό της αγοράς και των χρηστών, οι οποίοι αποκτούν όλο και µεγαλύτερες απαιτήσεις, ως προς την ποιότητα και τις δυνατότητες των εργαλείων τους. Οι συνοµιλητικοί ϐοηθοί, Chatbots, έχουν διεισδύσει στην καθηµερινότητά, µε πληθώρα µορφών και χρήσεων. Η παραδοσιακή µορφή τους, που απαντούσε ένα κλειστό σύνολο απλοϊκών ερωτήσεων, αντικαταστάθηκε από µοντέρνα συστήµατα και εφαρµογές που προτείνουν, συζητούν, συνοµιλούν, διασκεδάζουν, συµβουλεύουν. Είτε ως εφαρµογές στο κινητό του χρήστη, είτε διαθέσιµοι online, οι σύγχρονοι βοηθοί αποτελούν πλέον κοµµάτι της καθηµερινής ϱουτίνας και των εργαλείων που την καθιστούν πιο ανεκτή και ευχάριστη. Αυτή η καθολική πλέον παρουσία τους καθιστά αναγκαίο τον εκλεκτισµό αυτών των υπηρεσιών προσθέτοντας νέα στοιχεία και παραµέτρους, ανάλογα µε την εξειδίκευση κάθε χρήστη και των αναγκών του. Αυτές οι εφαρµογές, όντας συνεχώς συνδεδεµένες στο διαδίκτυο, θυσιάζουν την ιδιωτικότητα του χρήστη, καθιστώντας τον επιρρεπή σε κακόβουλο λογισµικό ή απάτες. Παράλληλα ,όµως, η πλειοψηφία αυτών των εφαρµογών αδυνατούν να χρησιµοποιήσουν τον µεγαλύτερο όγκο της πληροφορίας η οποία είναι διαθέσιµη στο διαδίκτυο, παρότι είναι συνδεδεµένες σε αυτό. Τέλος, τα υπάρχοντα συστήµατα δεν έχουν προσωποποιηµένο χαρακτήρα. Οι απαντήσεις και οι υπηρεσίες τους σπανίως προσαρµόζονται στον εκάστοτε χρήστη. Σε αυτήν τη διπλωµατική εργασία γίνεται µια προσπάθεια ανάπτυξης ενός ψηφιακού βοηθού ερωταπαντήσεων που αναζητά δυναµικά τις απαντήσεις στον ιστό. Αυτό το σύστηµα, χρησιµοποιώντας προεκπαιδευµένα µοντέλα αλλά και τεχνολογίες λογισµικού, απαντάει τις ερωτήσεις του χρήστη αξιοποιώντας το σύνολο της online πληροφορίας. Η ϕορητότητα του συστήµατος µπορεί να εξασφαλίσει µια ιδιωτική εµπειρία καθώς και απαντήσεις από εξειδικευµένες πηγές δεδοµένων. Τα πειραµατικά αποτελέσµατα αποδεικνύουν ότι το συγκεκριµένο σύστηµα είναι επαρκώς ακριβές, ενώ ταυτόχρονα επιτυγχάνει τους σκοπούς για τους οποίους αναπτύχθηκε. Θυσιάζεται η αναλυτικότητα και το συνοµιλητικό ύφος των συµβατικών ψηφιακών βοηθών, για να αξιοποιηθεί το µέγιστο πλήθος πληροφορίας. Επιπλέον, οι προεκτάσεις του συστήµατος µπορούν να οδηγήσουν σε χρήση του σε εξειδικευµένα συστήµατα όπου η πληροφορία που είναι διαθέσιµη είναι περιορισµένη και προέρχεται πάλι από το διαδίκτυο αλλά µόνο από µια συγκεκριµένη πηγή.
3. Το πρόβλημα (1)
• O τεράστιος όγκος δεδομένων και η ανάγκη για
αξιοποίηση της πληροφορίας αυτής κάνουν
ιδιαίτερα χρήσιμη την δυνατότητα
αυτοματοποιημένης αναζήτησης ειδικών
• Δύο από τα πολλά παραδείγματα:
– Η συγκρότηση επιτροπών για αξιολόγηση
δημοσιεύσεων
– Η επιλογή κατάλληλων υπαλλήλων για πρόσληψη
4. Το πρόβλημα (2)
• Αυτοματοποιημένη αναζήτηση ειδικών
– Οι κλασικές μηχανές αναζήτησης δεν επαρκούν
καθώς επιστρέφουν κείμενα και όχι άτομα
• Εύρεση ενός εξειδικευμένου ατόμου
– Εκτενώς μελετημένο στην βιβλιογραφία
• Σημασιολογία (Semantics)
• Μη τοπικά στοιχεία (Non Local Evidence)
• Μπορεί να βρεθεί ένα σύνολο ειδικών R με Κ
στοιχεία των οποίων η εξειδίκευση καλύπτει ένα
σύνολο λέξεων Q; Και εάν ναι ποιο είναι αυτό;
6. Μέθοδος Επίλυσης
• Η μέθοδος αναλύεται σε τρία διακριτά στάδια.
Ευρετήριο
Δημιουργία
προφίλ
Εφαρμογή
αλγορίθμου
7. Ψευδοκείμενο
• Το ψευδοκείμενο αποτελεί την συνένωση όλων
των πληροφοριών που περιγράφουν έναν ειδικό.
• Ο τρόπος δημιουργίας του ψευδοκειμένου είναι
ορθογώνιος στην προσέγγισή μας
• Χρησιμοποιήθηκαν τίτλοι άρθρων από συνέδρια
και περιοδικά
• Διαισθητικά στο ψευδοκείμενο περιέχονται όροι
που αντικατοπτρίζουν τους τομείς έρευνας ενός
ειδικού
11. Συνολική Βαθμολόγηση
• Επίλυση ‘ισοπαλίας’ μεταξύ συγγραφέων με ίδιο
πλήθος τομέων εξειδίκευσης
• Έστω ο συγγραφέας Alexandros G. Dimakis και
οι όροι αναζήτησης
– index, storage, network.
Όρος αναζήτησης Βαθμολογία
Πλήθος σχετικών
άρθρων
index 3 3
storage 29 29
network 12 12
12. Μέγιστη Κάλυψη Συνόλου (Max-Cover)
• Έστω ένα πλήθος συνόλων 𝑆 = 𝑆1, 𝑆2, … , 𝑆 𝑚
• Να επιλεχθούν το πολύ Κ υποσύνολα
• Η ένωση των υποσυνόλων έχει τον μέγιστο
δυνατό αριθμό διαφορετικών στοιχείων.
• Λύση: Άπληστος αλγόριθμος
– Greedy Set Cover (GSC)
• Επιλέγει το υποσύνολο που καλύπτει τα
περισσότερα μη επιλεγμένα στοιχεία.
14. Αξιολόγηση (1)
• Δεδομένα: Τίτλοι δημοσιεύσεων από το
DBLP.XML (1.2GB)
• Διαδικασία επεξεργασίας αρχείου:
– XML Parsing
– Εισαγωγή σε σχεσιακή βάση
– Ομαδοποίηση πληροφορίας ανά ειδικό
– Ευρετηριοποίηση
• Στατιστικά
– 6.498.625 Τίτλοι
– 1.314.915 Ειδικοί => 1.314.915 Ψευδοκείμενα
15. Αξιολόγηση (2)
• Κάθε διαδικασία αξιολόγησης απαιτεί
τουλάχιστον ένα μέτρο σύγκρισης
• Goodness: το πλήθος των άρθρων που έχει
γράψει κάποιος σε συναφή συνέδρια και
περιοδικά
• Το Goodness ορίζεται από τον χρήστη και
αφορά μόνο την διαδικασία της αξιολόγησης
• Όσα περισσότερα άρθρα έχει κάποιος τόσο
καλύτερος είναι
16. Αξιολόγηση (3)
• Επίσημες λίστες συνεδρίων
• ICDE 13’
• SIGMOD 13’
• VLDB 13’
– Σύγκριση λίστας συνεδρίου με αυτήν της εφαρμογής.
– Όροι αναζήτησης είναι οι τομείς ενδιαφέροντος του
εκάστοτε συνεδρίου (50 λέξεις)
• Τυχαίες λέξεις
– Επιλέχθηκαν τυχαία 15 λέξεις από το σύνολο των
τομέων ενδιαφέροντος κάθε συνεδρίου
• Όροι με αύξουσα σειρά (από 5 έως 30)
• Π.χ. Q = {index, storage, network…}
17. Αλγόριθμος βάσης
• Cosine Similarity (CS)
• Συγκρίνει δύο διανύσματα μετρώντας το
συνημίτονο της γωνίας μεταξύ τους
• cos 𝑑1, 𝑑2 = 𝑑𝑜𝑡 𝑑1, 𝑑2 / 𝑑1 𝑑2
• 𝑑𝑜𝑡 𝑑1, 𝑑2 = 𝑑1 0 ∗ 𝑑2 0 + 𝑑1 1 ∗ 𝑑2 1 …
• 𝑑1 = 𝑑1
2
0 + 𝑑1
2
[1]
• Όπου
– 𝑑1 = Σύνολο όρων αναζήτησης
– 𝑑2 = Ψευδοκείμενο
21. Συμπεράσματα
• Ο GSC διατηρεί καλή βαθμολογία κάτω από
όλες τις συνθήκες και παραμένει ψηλά
ανεξάρτητα της εισόδου
• Μεγάλο προβάδισμα στις δοκιμές με πλήθος
λέξεων μικρότερο των 20
• Τα αποτέλεσμα τον καθιστούν με διαφορά
σαφώς πιο αξιόπιστο από τον βασικό αλγόριθμο
CS
22. Μελλοντικές Επεκτάσεις
• Δυναμικά δεδομένα
• Εμπλουτισμένα προφίλ
– Πρόλογοι αντί τίτλων
– Βιογραφικά
• Σύνδεση με το TREC
• Σημασιολογία Semantics (Wordnet)
• Αξιολόγηση με βάση το πού έχει δημοσιευτεί,
από ποιόν έχει γραφτεί και πόσες παραπομπές
έχει μία δημοσίευση
Editor's Notes
Μη τοπικό στοιχείο ένα κείμενο d που δεν σχετίζεται θεματολογικά με άλλα.
TC Term Count
Εμείς θεωρήσαμε μια ομάδα συνεδρίων SIGMOD,VLDB,ICDE… με αντικείμενο τις βάσεις δεδομένων