Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Giorgos Karagiannoulos

81 views

Published on

Ανάπτυξη Συστήματος Προτάσεων για την Εξαγωγή Τμημάτων Κώδικα από Διαδικτυακές Πηγές

Published in: Education
  • Be the first to comment

  • Be the first to like this

Giorgos Karagiannoulos

  1. 1. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . . ...... Ανάπτυξη Συστήματος Προτάσεων για την Εξαγωγή Τμημάτων Κώδικα από Διαδικτυακές Πηγές Καραγιαννόπουλος Γεώργιος (A.E.M. 7805) Αν. Καθηγητής Συμεωνίδης Ανδρέας Υπ. Δρ. Διαμαντόπουλος Θεμιστοκλής Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας & Υπολογιστών Θεσσαλονίκη, 2 Νοεμβρίου 2017
  2. 2. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Περιεχόμενα Παρουσίασης ...1 Εισαγωγή ...2 Υλοποίηση Συστήματος ...3 Αξιολόγηση Πειράματα ...4 Επίδειξη Συστήματος Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 2 / 29
  3. 3. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Ορισμός του Προβλήματος Η ανάπτυξη ενός έργου λογισμικού απαιτεί συνδυασμό επιμέρους μικρότερων τμημάτων. Πληθώρα διαθέσιμων επιλογών ανοικτού κώδικα (APIs, βιβλιοθήκες, εργαλεία κλπ.) Ο μηχανικός λογισμικού είναι αδύνατον να γνωρίζει απέξω τον τρόπο χρήσης κάθε API. Πρόβλημα: Χάσιμο πολύτιμου χρόνου και συγκέντρωσης στην αναζήτηση παραδειγμάτων μέσω μηχανών αναζήτησης. Σκοπός της Διπλωματικής Εργασίας: Ανάπτυξη συστήματος που επιταχύνει/αυτοματοποιεί τη διαδικασία αναζήτησης παραδειγμάτων → Σύστημα Προτάσεων στη Τεχνολογία Λογισμικού (Recommendation System in Software Engineering - RSSE) Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 3 / 29
  4. 4. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Ορισμός του Προβλήματος Η ανάπτυξη ενός έργου λογισμικού απαιτεί συνδυασμό επιμέρους μικρότερων τμημάτων. Πληθώρα διαθέσιμων επιλογών ανοικτού κώδικα (APIs, βιβλιοθήκες, εργαλεία κλπ.) Ο μηχανικός λογισμικού είναι αδύνατον να γνωρίζει απέξω τον τρόπο χρήσης κάθε API. Πρόβλημα: Χάσιμο πολύτιμου χρόνου και συγκέντρωσης στην αναζήτηση παραδειγμάτων μέσω μηχανών αναζήτησης. Σκοπός της Διπλωματικής Εργασίας: Ανάπτυξη συστήματος που επιταχύνει/αυτοματοποιεί τη διαδικασία αναζήτησης παραδειγμάτων → Σύστημα Προτάσεων στη Τεχνολογία Λογισμικού (Recommendation System in Software Engineering - RSSE) Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 3 / 29
  5. 5. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . State of the Art . Structure Based .. ...... Bing Code Search Blueprint SnipMatch Deckard MAPO PARSEWeb PRIME XSnippet . Semantic Based .. ...... Strathcona FrUit CodeBroker . Statistical Based .. ...... SLANG CodeHint Codex Τα περισσότερα συστήματα είναι δύσκολα στην εκμάθηση και χρήση. Δεν υποστηρίζουν ερωτήματα σε φυσική γλώσσα και δεν προτείνουν έτοιμα παραδείγματα κώδικα αλλά συνήθως προτείνουν ακολουθίες, μοτίβα, συμπληρώνουν κενά κλπ. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 4 / 29
  6. 6. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Περιεχόμενα Παρουσίασης ...1 Εισαγωγή ...2 Υλοποίηση Συστήματος ...3 Αξιολόγηση Πειράματα ...4 Επίδειξη Συστήματος Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 5 / 29
  7. 7. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Δομή του Συστήματος Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 6 / 29
  8. 8. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Query . Ιδιότητες Ερωτημάτων .. ...... ...1 Ερωτήματα σε φυσική γλώσσα. ...2 Ερωτήματα στη γλώσσα προγραμματισμού Java. . Παραδείγματα Ερωτημάτων .. ...... "How to read file" "How to split string" "How to send email" Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 7 / 29
  9. 9. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Augmenter . Σκοπός του Augmenter .. ...... Προσαυξάνει το ερώτημα του χρήστη με λέξεις-κλειδιά ώστε τα αποτελέσματα της αναζήτησης να είναι πιο στοχευμένα. . Παραδείγματα Λέξεων-Κλειδιών .. ...... java protected for import abstract void class final int interface static long public if double Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 8 / 29
  10. 10. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Downloader . Λειτουργία του Downloader .. ...... ...1 Αποστέλλει το ερώτημα στη μηχανή αναζήτησης της Google. ...2 Εξάγει μέσω εκφράσεων XPath το περιεχόμενο από HTML tags τα οποία συνήθως περιέχουν κώδικα. ...3 Οργανώνει την εξαγόμενη πληροφορία σε ένα αρχείο τύπου JSON για μετέπειτα επεξεργασία. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 9 / 29
  11. 11. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . . Πρόβλημα... .. ......Το μεγαλύτερο ποσοστό των snippets δεν είναι μεταγλωττίσιμα... . Λειτουργία του Parser .. ...... ...1 Αν το snippet είναι μεταγλωττίσιμο → εξαγωγή AST → εξαγωγή API calls από AST. ...2 Αν το snippet δεν είναι μεταγλωττίσιμο → διαχωρισμός του snippet σε μικρότερα τμήματα → εξαγωγή API calls Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 10 / 29
  12. 12. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . API Miner . Φιλοσοφία του Miner... .. ...... Υπόθεση: Σημαντικά έργα λογισμικού κάνουν χρήση ευρέως αποδεκτών και υψηλής ποιότητας APIs. Πόρισμα: Ένα τμήμα κώδικα που χρησιμοποιεί API calls όμοια με σημαντικά έργα λογισμικού, εμπεριέχει και το ίδιο καλής ποιότητας API calls. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 11 / 29
  13. 13. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . API Miner . Φιλοσοφία του Miner... .. ...... Υπόθεση: Σημαντικά έργα λογισμικού κάνουν χρήση ευρέως αποδεκτών και υψηλής ποιότητας APIs. Πόρισμα: Ένα τμήμα κώδικα που χρησιμοποιεί API calls όμοια με σημαντικά έργα λογισμικού, εμπεριέχει και το ίδιο καλής ποιότητας API calls. . Λειτουργία του API Miner .. ...... ...1 Συγκεντρώνουμε τοπικά τα δημοφιλέστερα projects της Java στο GitHub. ...2 Σχηματίζουμε ένα λεξιλόγιο από API calls που εμφανίζονται στα παραπάνω projects. ...3 Εξετάζουμε αν τα API calls που περιέχουν τα snippets ανήκουν στο λεξιλόγιο. ...4 Απορρίπτουμε τα snippets που περιέχουν περισσότερα άγνωστα API calls από ένα κατώφλι. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 11 / 29
  14. 14. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Readability Evaluator . Ορισμός... .. ...... Ορίζουμε την αναγνωσιμότητα (readability) ως την ανθρώπινη κρίση για το κατά πόσο είναι εύκολη ή μη η κατανόηση ενός κειμένου. . Στόχος... .. ...... Στόχος μας είναι να εκπαιδεύσουμε ένα μοντέλο ώστε να μπορεί να κρίνει την αναγνωσιμότητα ενός snippet. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 12 / 29
  15. 15. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Readability Evaluator . Το Dataset... .. ...... Έχουμε 100 snippets βαθμολογημένα από 120 διαφορετικά άτομα. . Διαδικασία... .. ...... ...1 Από κάθε snippet εξάγουμε στατικά ένα πλήθος από χαρακτηριστικά. ...2 Εκπαιδεύουμε ένα δυαδικό ταξινομητή με cross-validation για αποφυγή overfitting, και με Grid Search βρίσκουμε βέλτιστες παραμέτρους. ...3 Εφαρμόζουμε το μοντέλο σε νέα άγνωστα snippets. Avg. Max. Feature Name √ √ line length (# characters)√ √ # identifiers√ √ identifier length√ √ indentation (proceding whitespace)√ √ # keywords√ √ # numbers√ # comments√ # periods√ # commas√ # spaces√ # parenthesis√ # arithmetic operators√ # comparison operators√ # assignments (=)√ # branches (if)√ # loops (for, while)√ # blank lines√ # occurences of any single character√ # occurences of any single identifier Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 13 / 29
  16. 16. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Readability Evaluator . Το Dataset... .. ...... Έχουμε 100 snippets βαθμολογημένα από 120 διαφορετικά άτομα. . Διαδικασία... .. ...... ...1 Από κάθε snippet εξάγουμε στατικά ένα πλήθος από χαρακτηριστικά. ...2 Εκπαιδεύουμε ένα δυαδικό ταξινομητή με cross-validation για αποφυγή overfitting, και με Grid Search βρίσκουμε βέλτιστες παραμέτρους. ...3 Εφαρμόζουμε το μοντέλο σε νέα άγνωστα snippets. Avg. Max. Feature Name √ √ line length (# characters)√ √ # identifiers√ √ identifier length√ √ indentation (proceding whitespace)√ √ # keywords√ √ # numbers√ # comments√ # periods√ # commas√ # spaces√ # parenthesis√ # arithmetic operators√ # comparison operators√ # assignments (=)√ # branches (if)√ # loops (for, while)√ # blank lines√ # occurences of any single character√ # occurences of any single identifier Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 13 / 29
  17. 17. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Readability Evaluator . AdaBoost .. ...... Το προεπιλεγμένο μοντέλο είναι ένας ταξινομητής με τον αλγόριθμο AdaBoost, ωστόσο υπάρχουν διαθέσιμες επιλογές για 2 ακόμη ταξινομητές (KNN, RandomForests). Estimators Learning Rate Score F1 160 0.6 0.85 Recall 160 0.6 0.87 Precision 160 0.5 0.87 Accuracy 160 0.6 0.82 Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 14 / 29
  18. 18. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer . Στόχος... .. ...... Ο στόχος είναι να διαχωρίσουμε τα snippets που αντιπροσωπεύουν ανόμοιες υλοποιήσεις. . Υπόθεση... .. ...... ”...snippets που χρησιμοποιούν διαφορετικά API calls απεικονίζουν και διαφορετικές υλοποιήσεις του προβλήματος...” Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 15 / 29
  19. 19. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer . Υπόθεση... .. ...... ”...snippets που χρησιμοποιούν διαφορετικά API calls απεικονίζουν και διαφορετικές υλοποιήσεις του προβλήματος...” Charset charset = Charset.forName("US-ASCII"); try (BufferedReader reader = Files.newBufferedReader(file, charset)) { String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException x) { System.err.format("IOException: %s%n", x); try (InputStream in = Files.newInputStream(file); BufferedReader reader = new BufferedReader(new InputStreamReader(in))) { String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException x) { System.err.format("IOException: %s%n", x); } Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 15 / 29
  20. 20. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer . Προεπεξεργασία Δεδομένων .. ...... ...1 Κατακερματισμός των snippets ως προς τα API calls. ...2 Καταμέτρηση εμφανίσεων των tokens. ...3 Κανονικοποίηση και απόδοση βαρών στα tokens μέσω μετασχηματισμού tf-idf. . Επιλογή του Πλήθους Ομάδων (Clusters) .. ...... Η εκτίμηση του πλήθους γίνεται με μία από τις παρακάτω μεθόδους ή συνδυασμό αυτών: ...1 Ιεραρχική ομαδοποίηση. ...2 Μέθοδος γονάτου. ...3 Ανάλυση διαγράμματος σιλουέτας. ...4 Affinity propagation. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 16 / 29
  21. 21. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer . Προεπεξεργασία Δεδομένων .. ...... ...1 Κατακερματισμός των snippets ως προς τα API calls. ...2 Καταμέτρηση εμφανίσεων των tokens. ...3 Κανονικοποίηση και απόδοση βαρών στα tokens μέσω μετασχηματισμού tf-idf. . Επιλογή του Πλήθους Ομάδων (Clusters) .. ...... Η εκτίμηση του πλήθους γίνεται με μία από τις παρακάτω μεθόδους ή συνδυασμό αυτών: ...1 Ιεραρχική ομαδοποίηση. ...2 Μέθοδος γονάτου. ...3 Ανάλυση διαγράμματος σιλουέτας. ...4 Affinity propagation. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 16 / 29
  22. 22. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 17 / 29
  23. 23. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 17 / 29
  24. 24. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 17 / 29
  25. 25. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Clusterer Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 17 / 29
  26. 26. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Presenter . Λειτουργία 1 .. ...... Κατάταξη των snippets μέσα σε κάθε cluster αλλά και κατάταξη των clusters. Η κατάταξη των snippets γίνεται με βάση τα παρακάτω 2 κριτήρια: ...1 Μικρότερη απόσταση από το centroid του cluster −→ Μεγαλύτερη βαθμολογία ...2 Μικρότερο μήκος κώδικα −→ Μεγαλύτερη βαθμολογία Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 18 / 29
  27. 27. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Presenter . Λειτουργία 2 .. ...... Παρουσίαση και πλοήγηση στα αποτελέσματα μέσω διεπαφής γραμμής εντολών (command line interface). Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 18 / 29
  28. 28. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Περιεχόμενα Παρουσίασης ...1 Εισαγωγή ...2 Υλοποίηση Συστήματος ...3 Αξιολόγηση Πειράματα ...4 Επίδειξη Συστήματος Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 19 / 29
  29. 29. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Αξιολόγηση Συστήματος Η σύγκριση της αποδοτικότητας του συστήματος έγινε με τη βοήθεια πειραμάτων ως προς τη μηχανή αναζήτησης της Google. Συγκεντρώθηκε ένα σύνολο ερωτημάτων τα οποία ήταν κοινά σε όλα τα πειράματα. Index Query Clusters Snippets Snippets/Cluster 1 How to read CSV file 3 44 14.7 2 How to generate MD5 hash code 4 43 10.8 3 How to upload file to FTP 3 13 4.3 4 How to split string 5 53 10.6 5 How to draw text graphics 3 40 13.3 6 How to play audio file 5 79 15.8 7 How to substitute string 3 31 10.3 8 How to convert collection to an array 4 49 12.3 9 How to send email 3 46 15.3 10 How to connect to a JDBC database 5 44 8.8 11 How to execute select statement JDBC database 3 59 19.7 12 How to initialize thread 3 33 11.0 13 How to write binary data 3 35 11.7 14 How to read ZIP archive 2 32 16.0 15 How to send packet via UDP 2 31 15.5 Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 20 / 29
  30. 30. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Αξιολόγηση Συστήματος Η σύγκριση της αποδοτικότητας του συστήματος έγινε με τη βοήθεια πειραμάτων ως προς τη μηχανή αναζήτησης της Google. Συγκεντρώθηκε ένα σύνολο ερωτημάτων τα οποία ήταν κοινά σε όλα τα πειράματα. Index Query Clusters Snippets Snippets/Cluster 1 How to read CSV file 3 44 14.7 2 How to generate MD5 hash code 4 43 10.8 3 How to upload file to FTP 3 13 4.3 4 How to split string 5 53 10.6 5 How to draw text graphics 3 40 13.3 6 How to play audio file 5 79 15.8 7 How to substitute string 3 31 10.3 8 How to convert collection to an array 4 49 12.3 9 How to send email 3 46 15.3 10 How to connect to a JDBC database 5 44 8.8 11 How to execute select statement JDBC database 3 59 19.7 12 How to initialize thread 3 33 11.0 13 How to write binary data 3 35 11.7 14 How to read ZIP archive 2 32 16.0 15 How to send packet via UDP 2 31 15.5 Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 20 / 29
  31. 31. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 1ο - Ακρίβεια Αποτελεσμάτων Μετρικές όπως το precision p και το recall r δεν είναι εύκολο να εφαρμοστούν. Θέλουμε να λάβουμε υπόψιν και τη σειρά με την οποία εμφανίζονται τα αποτελέσματα. . Average Precision .. ...... Το Average Precision ισούται με το ολοκλήρωμα p(r), r ∈ [0, 1]. AveP = ∫ 1 0 p(r)dr = n∑ k=1 P(k)∆r(k) = ∑n k=1(P(k) · rel(k)) number of relevants documents . Mean Average Precision .. ...... Έστω ένα πλήθος ερωτημάτων Q τότε το Mean Average Precision θα ισούται: MAP = ∑Q q=1 AveP(q) Q Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 21 / 29
  32. 32. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 1ο - Ακρίβεια Αποτελεσμάτων Μετρικές όπως το precision p και το recall r δεν είναι εύκολο να εφαρμοστούν. Θέλουμε να λάβουμε υπόψιν και τη σειρά με την οποία εμφανίζονται τα αποτελέσματα. . Average Precision .. ...... Το Average Precision ισούται με το ολοκλήρωμα p(r), r ∈ [0, 1]. AveP = ∫ 1 0 p(r)dr = n∑ k=1 P(k)∆r(k) = ∑n k=1(P(k) · rel(k)) number of relevants documents . Mean Average Precision .. ...... Έστω ένα πλήθος ερωτημάτων Q τότε το Mean Average Precision θα ισούται: MAP = ∑Q q=1 AveP(q) Q Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 21 / 29
  33. 33. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 1ο - Ακρίβεια Αποτελεσμάτων Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 22 / 29
  34. 34. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 1ο - Ακρίβεια Αποτελεσμάτων Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 22 / 29
  35. 35. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 2ο - Μέσο Μήκος Αναζήτησης . Ορισμοί... .. ...... ...1 Ως μήκος αναζήτησης SL ορίζεται το πλήθος των μη σχετικών αποτελεσμάτων που εμφανίζονται στο χρήστη έως ότου εμφανιστούν N σχετικά. ...2 Για πλήθος ερωτημάτων Q το μέσο μήκος αναζήτησης MSL ισούται με: MSL = ∑Q q=1 SL(q) Q Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 23 / 29
  36. 36. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 2ο - Μέσο Μήκος Αναζήτησης Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 24 / 29
  37. 37. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 3ο - Ποιότητας Ομαδοποίησης Χρήση δύο μετρικών μη εποπτευόμενης μάθησης: . Silhouette Coefficient .. ...... Ένας συνδυασμός συνεκτικότητας (cohesion) και διαχωρισμού (separation) των clusters. Λαμβάνει τιμές στο διάστημα [−1, 1]. . CoPhenetic Correlation Coefficient (CPCC) .. ...... Ένα μέτρο του πόσο πιστά αναπαριστώνται στο δενδρόγραμμα οι ανομοιότητες μεταξύ των παρατηρήσεων. Λαμβάνει τιμές στο διάστημα [0, 1] Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 25 / 29
  38. 38. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Πείραμα 3ο - Ποιότητας Ομαδοποίησης Query Index Silhouette Coefficient CPCC 1 0.66 0.65 2 0.63 0.61 3 0.71 0.68 4 0.73 0.84 5 0.60 0.69 6 0.69 0.65 7 0.65 0.68 8 0.74 0.75 9 0.63 0.64 10 0.69 0.64 11 0.67 0.63 12 0.69 0.69 13 0.65 0.66 14 0.62 0.63 15 0.61 0.63 Mean Value 0.66 0.67 Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 25 / 29
  39. 39. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Συμπεράσματα - Μελλοντική Εργασία . Συμπεράσματα .. ...... Ο μηχανικός λογισμικού μπορεί να εξοικονομήσει χρόνο μέσω των RSSEs. Ο έλεγχος αναγνωσιμότητας βοηθάει στον εντοπισμό ποιοτικού κώδικα. Η ομαδοποίηση των αποτελεσμάτων μπορεί να είναι πιο αποδοτική από την παρουσίαση τους ως μία ενιαία λίστα. . Μελλοντική Εργασία .. ...... Προσθήκη επιπλέον μηχανών αναζήτησης. Δημιουργία βάσης δεδομένων με συχνά χρησιμοποιούμενα αποτελέσματα. Ενσωμάτωση συστήματος σε κάποιο προγραμματιστικό περιβάλλον. Επέκταση και σε άλλες γλώσσες προγραμματισμού. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 26 / 29
  40. 40. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Συμπεράσματα - Μελλοντική Εργασία . Συμπεράσματα .. ...... Ο μηχανικός λογισμικού μπορεί να εξοικονομήσει χρόνο μέσω των RSSEs. Ο έλεγχος αναγνωσιμότητας βοηθάει στον εντοπισμό ποιοτικού κώδικα. Η ομαδοποίηση των αποτελεσμάτων μπορεί να είναι πιο αποδοτική από την παρουσίαση τους ως μία ενιαία λίστα. . Μελλοντική Εργασία .. ...... Προσθήκη επιπλέον μηχανών αναζήτησης. Δημιουργία βάσης δεδομένων με συχνά χρησιμοποιούμενα αποτελέσματα. Ενσωμάτωση συστήματος σε κάποιο προγραμματιστικό περιβάλλον. Επέκταση και σε άλλες γλώσσες προγραμματισμού. Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 26 / 29
  41. 41. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Περιεχόμενα Παρουσίασης ...1 Εισαγωγή ...2 Υλοποίηση Συστήματος ...3 Αξιολόγηση Πειράματα ...4 Επίδειξη Συστήματος Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 27 / 29
  42. 42. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Demo . Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 28 / 29
  43. 43. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Καραγιαννόπουλος Γ. RSSE Development Θεσσαλονίκη 2017 29 / 29

×