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.

Maria Ioanna Sifaki

129 views

Published on

Applying Data Mining Techniques to Extract Evolution Patterns in Question-answering Systems

Published in: Education
  • Be the first to comment

  • Be the first to like this

Maria Ioanna Sifaki

  1. 1. Εκπονήτρια | Μαρία Ιωάννα Σηφάκη Αριθμός Μητρώου (ΑΕΜ) | 8241 Επιβλέπων Αναπληρωτής Καθηγητής | Ανδρέας Συμεωνίδης Επιβλέπων Μεταδιδακτορικός Ερευνητής | Θεμιστοκλής Διαμαντόπουλος Θεσσαλονίκη, Ιούλιος 2019 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ & ΥΠΟΛΟΓΙΣΜΩΝ Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Εξέλιξης σε Συστήματα Ερωταπαντήσεων
  2. 2. Δομή παρουσίασης 1. Εισαγωγή 2. Μεθοδολογία 3. Αποτελέσματα 4. Συμπεράσματα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 2
  3. 3. 1. Εισαγωγή 2. Μεθοδολογία 3. Αποτελέσματα 4. Συμπεράσματα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 3
  4. 4. Ανάγκες προγραμματιστών • Επαναχρησιμοποίηση κώδικα • Εξοικονόμηση χρόνου συγγραφής • Επίλυση καθημερινών προβλημάτων • Λειτουργικότητα • Ποιότητα Κοινότητες ερωταπαντήσεων (Q&A communities) 1. Reddit 2. Stack Overflow 3. Quora 4. Code Project 2 1 3 4 Εισαγωγή (1/3) 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 4
  5. 5. Εισαγωγή (2/3) 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 5
  6. 6. Εισαγωγή (3/3) Απαντήσεις στην κοινότητα του Stack Overflow (SO) • Δυνατότητα επεξεργασίας από οποιοδήποτε χρήστη • Στόχος η βέλτιστη λύση Answer Edited Answer Edited Answer Best Solution?User1 User2 User3 Edit1 Edit2 Προβλήματα • Σφάλματα • Δυσλειτουργίες • Μη έγκυρη πληροφόρηση 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 6
  7. 7. Σκοπός διπλωματικής Εξέλιξη τροποποιήσεων απαντήσεων • Εύρεση συνηθέστερων μορφών τροποποίησης και κατ’ επέκταση σφαλμάτων • Ομαδοποίηση τροποποιήσεων Υπάρχει προοπτική εξέλιξης από μια μεμονωμένη σε γενική λύση; Με εφαρμογή στο διαγωνισμό MSR Mining Challenge 2019 Μόντρεαλ, Καναδάς Μάιος 2019 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 7
  8. 8. Γνώσεις που αποκτήθηκαν Γνώσεις • Ερευνητική εμπειρία στην Τεχνολογία Λογισμικού • Εφαρμογή αλγορίθμων σε Βάσεις Δεδομένων • Βασικές διαδικασίες Ανάκτησης Πληροφοριών και Αλγορίθμων Εργαλεία • • • Τεχνολογίες • Εξόρυξη Δεδομένων • Τεχνολογία Λογισμικού • Βάσεις Δεδομένων 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 8
  9. 9. 1. Εισαγωγή 2. Μεθοδολογία 3. Αποτελέσματα 4. Συμπεράσματα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 9
  10. 10. Μεθοδολογία(1/8) Βασικά βήματα υλοποίησης 1. Προεπεξεργαστής 2. Ερωτήματα (SQL Queries) 3. Εξαγωγή κειμένου 4. Εξαγωγή κώδικα 5. Μοντέλο ομοιότητας 6. Ομαδοποίηση 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 10
  11. 11. Μεθοδολογία(2/8) Αναζήτηση απαντήσεων που: • Έχουν τμήμα κώδικα • Έχουν τροποποιηθεί έστω μια φορά • Έχουν σχόλιο τροποποίησης Τύποι εντολών: • Εκχωρήσεις (AM) • Κλήσεις συναρτήσεων (FC) • Αρχικοποιήσεις κλάσεων (CI) Μοντέλο ομοιότητας: • Cosine similarity (για κείμενο και κώδικα) • LCS score (για ακολουθίες κώδικα) 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 11 423241 8272
  12. 12. Μεθοδολογία(3/8) Version 1 Version 2 Edit CodeAddition CodeDeletion compareToIgnoreCase compareToIgnoringCase 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 12 TextBefore CodeBefore TextAfter CodeAfter fixed typo Comment
  13. 13. Μεθοδολογία(4/8) Επεξεργασία κειμένου και κώδικα public int compareTo (Myshares another) { 1. Punctuation public int compareTo Myshares another 2. Tokenize [public, int, compareTo, Myshares, another] 3. Camel case [public, int, compare, To, My, shares, another] 4. Stop words [public, int, compare, shares, another] 5. Stemming [public, int, compare, share, another] 6. Lowercase [public, int, compare, share, another] Παράδειγμα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 13
  14. 14. Μεθοδολογία(5/8) Παράδειγμα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 14 Εξαγωγή ακολουθιών κώδικα 1η γραμμή κώδικα CI_DecimalFormat 2η γραμμή κώδικα AM_double 3η γραμμή κώδικα FC_void 4η γραμμή κώδικα FC_void 1 2 3 4
  15. 15. Μεθοδολογία(6/8) 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑑1, 𝑑2) = 𝑐𝑜𝑠 𝜃 = 𝑑1∙𝑑2 𝑑1 ∙ 𝑑2 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 𝑋, 𝑌 = 2 ∙ 𝐿(𝑋,𝑌) 𝑋 + 𝑌 X Y L(X,Y) CI_DecimalFormat CI_DecimalFormat CI_DecimalFormat AM_double AM_double AM_double FC_void FC_void FC_void FC_void Παράδειγμα LCS Score 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 𝛸, 𝛶 = 2 ∙ 3 4+3 = 6 7 ≈ 0,857 Παράδειγμα Cosine Similarity 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑑1, 𝑑2) ≈ 0,709 d1 d2 See my question. See my question about Decimal. Vector Space Model d1 d2 cosine similarity see question decimal Μοντέλο ομοιότητας 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 15
  16. 16. Μεθοδολογία(7/8) • Πίνακες απόστασης (distance matrix) με βάση το μέσο όρο των βαθμών ομοιότητας • Ιεραρχική ομαδοποίηση (Hierarchical Clustering) • Λογική υπόθεση: Παρόμοιο σχόλιο ⇒ Παρόμοια τροποποίηση • Άθροισμα τετραγωνικών σφαλμάτων (SSE) με βάση τον πίνακα απόστασης σχολίων 𝑆𝑆𝐸 = 𝑥 𝑖,𝑗∈𝐶 𝑛 𝑑𝑖𝑠𝑡2 (𝑥𝑖, 𝑥𝑗) 𝑛 • Αποτέλεσμα: 390 ομάδες, 5 πιο αντιπροσωπευτικά σχόλια 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 16
  17. 17. Μεθοδολογία(8/8) Κατηγορίες ομάδων Changed ArrayList to List Changed code and added caveat(s), Changed from ArrayList to List in type declaration, Changed ArrayList to HashSet, changed the inventory Items to List interface, List instead of ArrayList Change index loop to forEach Changed code to use for each loop, Used for-each loop, Use Arrays.fill instead of loop., Updated to use ListIterator, label if panel pressed StringBuffer to StringBuilder changed to StringBuilder, changed out from String to StringBuilder, Replaced StringBuffer with StringBuilder., use StringBuilder instead of StringBuffer, Changed it to StringBuilder form StringBuffer (see comments) Add hashCode and equals properly implement equals, imple- mentation of hashCode and equals, corrected equals signature, impl. of hashCode & equals, generic & sc Change to check for null/range Added a check for nullness in Book constructor., added out of range check, changed exception types, it’s a little more intuitive, Added range check to Constructor., Throw the right exception type • Βελτιστοποίηση • Διορθώσεις σφαλμάτων • Προσθήκη λειτουργικότητας 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 17
  18. 18. 1. Εισαγωγή 2. Μεθοδολογία 3. Αποτελέσματα 4. Συμπεράσματα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 18
  19. 19. Αποτελέσματα(1/5) 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 19
  20. 20. Αποτελέσματα(2/5) • Ισχυροί δεσμοί (κόκκινα σημεία) • Πολλές μικρές ομάδες • Επιβεβαίωση αρχικής ιδέας ομαδοποίησης (clustering) Χάρτης θερμότητας (Heatmap) 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 20
  21. 21. Αποτελέσματα(3/5) • 1564 τροποποιήσεις απαντήσεων • Σχόλιο τροποποίησης ‘format’, ’typo’, ‘rollback’ Εργαλείο σύστασης τροποποίησης (Edit Recommender) 1. Ελάχιστη απόσταση: Ομάδα με το στοιχείο που έχει μεγαλύτερη ομοιότητα 2. Ελάχιστη μέση απόσταση: Ομάδα με τη μεγαλύτερη μέση ομοιότητα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 21
  22. 22. Αποτελέσματα(4/5) Παραδείγματα σύστασης 1ης μεθόδου 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 22
  23. 23. Αποτελέσματα(5/5) Παραδείγματα σύστασης 2ης μεθόδου 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 23
  24. 24. 1. Εισαγωγή 2. Μεθοδολογία 3. Αποτελέσματα 4. Συμπεράσματα 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 24
  25. 25. Συμπεράσματα Συμπεράσματα • Οι τροποποιήσεις απαντήσεων ακολουθούν πρότυπα/μοτίβα • Τα γενικά σχόλια μπορούν να βελτιωθούν • Μπορεί να γίνει εντοπισμός σφαλμάτων Μελλοντικές επεκτάσεις • Επανειλημμένη εφαρμογή σύστασης για να προκύψει σειρά τροποποιήσεων • Ενσωμάτωση του εργαλείου σύστασης σε προγραμματιστικό περιβάλλον IDE • Έρευνα συνεξέλιξης μεταξύ ερωτήσεων και απαντήσεων του SO 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 25
  26. 26. Δημοσιεύσεις “Toward Mining Answer Edits to Extract Evolution Patterns in Stack Overflow” • Themistoklis Diamantopoulos, Maria Ioanna Sifaki and Andreas L. Symeonidis • 16th International Conference on Mining Software Repositotiries • 2019 March 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 26
  27. 27. Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά: • Τον Αναπληρωτή Καθηγητή Ανδρέα Συμεωνίδη • Τον Μεταδιδακτορικό Ερευνητή Θεμιστοκλή Διαμαντόπουλο Ευχαριστώ για την προσοχή σας! 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 27
  28. 28. Ερωτήσεις 04.07.2019 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης | 28

×