SlideShare une entreprise Scribd logo
1  sur  35
Σημασιολογική Ανάλυση Κώδικα από Διαδικτυακές Πηγές με
Σκοπό την Επαναχρησιμοποίηση Λογισμικού
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Οικονόμου Νικόλαος (Α.Ε.Μ. 7742)
Επιβλέπων: Ανδρέας Συμεωνίδης, Καθηγητής
Συνεπιβλέπων: Θεμιστοκλής Διαμαντόπουλος, Υποψήφιος Διδάκτορας
Θεσσαλονίκη, 2 Ιουλίου 2018
Δομή Παρουσίασης
• Εισαγωγή
• Δομή/Υλοποίηση Συστήματος
• Αξιολόγηση Συστήματος
• Συμπεράσματα & Μελλοντική Εργασία
• Επίδειξη Συστήματος (Video Demo)
• Ερωτήσεις
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 2/35
Σκοπός της Διπλωματικής
• Τα σημερινά έργα λογισμικού είναι πολύπλοκα και μεγάλα σε μέγεθος
• Πλήθος επιλογών (APIs, βιβλιοθήκες, frameworks, πλατφόρμες κ.λπ.)
• Ελλιπής ή δυσκολονόητη τεκμηρίωση
Πρόβλημα: Δαπάνη χρόνου για την αναζήτηση και την κατανόηση χρήσιμων παραδειγμάτων κώδικα
χρησιμοποιώντας τις συμβατικές μηχανές αναζήτησης.
Σκοπός Διπλωματικής: Αυτοματοποίηση της διαδικασίας ανεύρεσης παραδειγμάτων κώδικα για ερωτήματα
του προγραμματιστή, με τη χρήση ενός Συστήματος Προτάσεων στην Τεχνολογία Λογισμικού
(Recommendation System in Software Engineering ή RSSE)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 3/35
RSSEs στη Βιβλιογραφία
Αδυναμίες υπαρχόντων συστημάτων
• Δε δέχονται ερωτήματα σε φυσική γλώσσα (περίπλοκη δομή ερωτημάτων)
• Δε γίνεται εκμετάλλευση της διαθέσιμης πληροφορίας (κείμενο που συνοδεύει τμήματα κώδικα)
• Αδύναμοι μηχανισμοί κατάταξης
• Δεν προτείνονται έτοιμα τμήματα κώδικα (ακολουθίες APIs, συμπλήρωση κώδικα κ.λπ.)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 4/35
Αρχιτεκτονική του Συστήματος
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 5/35
Code Parser & Database Builder
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 6/35
Code Parser
Δυνατότητες του parser
• Επικύρωση συντακτικής ορθότητας
• Εξαγωγή ακολουθίας στοιχείων
(imports, comments, αντικείμενα,
κλήσεις μεθόδων κ.λπ.)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 7/35
Database Builder – Μορφή Βάσης Δεδομένων
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 8/35
Επιπλέον Στοιχεία
• Τμήματα κώδικα (Snippets)
• Αριθμός τμημάτων κώδικα (SnippetCount)
• Ονόματα Οντοτήτων (NamedEntities)
Database Builder – Εξαγωγή Ονομάτων Οντοτήτων
Ταξινομητής CRF (Conditional Random Fields)
Χαρακτηριστικά όρων
• Ορθογραφικά (π.χ. προθέματα, καταλήξεις, ύπαρξη τελείας ή κάτω παύλας, κεφαλαίος πρώτος χαρακτήρας)
• Χαρακτηριστικά Αναπαραστάσεων (π.χ. ομάδα Brown, ομάδα K-Means βάσει διανύσματος)
Εξαγόμενες οντότητες
• APIs (π.χ. toString(), ArrayList)
• Platforms (π.χ. Android, Ubuntu, Windows)
• Tools-Frameworks (π.χ. Maven, Weka, JProfiler)
• Software Standards (π.χ. JSON, TCP, JDBC, jar)
• Programming Languages (π.χ. Java, C#)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 9/35
Αρχιτεκτονική του Συστήματος – Corpus Builder
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 10/35
Corpus Builder – Μορφή Αναρτήσεων (Posts)
• Μετατροπή html μορφής σε κείμενο
• Εξαγωγή ακολουθιών από τα τμήματα κώδικα
• Αξιολόγηση και επιλογή ποιοτικών αναρτήσεων
• Τελική επεξεργασία κειμένου
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 11/35
Corpus Builder – Επιλογή Αναρτήσεων
LSTM Ταξινομητής για αναρτήσεις με θόρυβο:
• 1 layer LSTM
• 1 layer CNN
• Εκπαίδευση σε 2500 κατηγοριοποιημένα post
• Accuracy > 92% στο σετ δεδομένων
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 12/35
Μετρικές χρήσιμων αναρτήσεων:
• Μέγεθος γραμμής < 1000 χαρακτήρες
• Λόγος
# 𝜆𝜀𝜉𝜀𝜔𝜈
# 𝜎𝜂𝜇𝜀𝜄𝜔𝜈 𝜎𝜏𝜄𝜉𝜂𝜍
> 1.6
1η Παρατήρηση
Αναρτήσεις με μεγάλο αριθμό σημείων στίξης περιέχουν
μη χρήσιμες πληροφορίες.
2η Παρατήρηση
Αναρτήσεις με debug logs και κώδικα σε άλλες γλώσσες
(html, javascript κ.λπ.) αποτελούν θόρυβο για το corpus
εκπαίδευσης.
Corpus Builder – Επεξεργασία Κειμένου
Κατακερματισμός κειμένου με custom
tokenizer
• Διατήρηση όρων API
• Διατήρηση τελεστών της Java (π.χ. ==, !=, >=)
• Αφαίρεση σημείων στίξης
• Αφαίρεση συμβόλων, αριθμών και URLs
Κανονικοποίηση όρων κειμένου
• Ανάπτυξη συντομογραφιών
• Αντικατάσταση αριθμών με λέξεις
Στόχοι
• Ομοιομορφία κειμένου
• Μείωση του συνόλου των όρων (λεξικό όρων)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 13/35
Original Tokenized Normalized
10 10 ten
don’t do n’t do not
that’s that ‘s that is
U.K. U.K. U.K.
properties/fields properties / fields properties fields
Java/C++ Java / C++ Java C++
(active) ( active ) active
java.io* java.io java.io
System.out.println() System.out.println System.out.println
Corpus Builder – Χρήση RegEx
Χρήση κανονικών εκφράσεων για την τελική επεξεργασία του κειμένου
• Αφαίρεση σημείων στίξης που έχουν μείνει
• Αφαίρεση κοινότυπων Java stack traces ή debug logs
• Αφαίρεση μεγάλων ονομάτων πακέτων ή άλλων string
• Συμπίεση κενών χαρακτήρων
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 14/35
Word Embeddings Builder
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 15/35
Word Embeddings Builder
Γνωστά Μοντέλα Διανυσματικού Χώρου (Vector Space Models)
• TF-IDF
• Αραιά διανύσματα
• Χρήση συχνότητας των όρων για τον υπολογισμό βαρών των όρων
• Word2vec
• Ρηχό νευρωνικό δίκτυο
• Πυκνά διανύσματα n διαστάσεων
• FastText
• Επέκταση του word2vec
• Χρήση character n-grams (model ⇨ ‘<mo’, ‘mod’, ‘mode’, ‘model’, ‘odel’, ‘del’, el>’)
• Πυκνά διανύσματα n διαστάσεων
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 16/35
Index Builder
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 17/35
Index Builder – Πίνακας Διανυσματικών Αναπαραστάσεων των Αναρτήσεων
Περιγραφή των αναρτήσεων (posts) με τρεις αναπαραστάσεις
• Διανύσματα των τίτλων (TitleVectors)
• Διανύσματα των σωμάτων (BodyVectors)
• Διανύσματα των ακολουθιών των tags (TagVectors)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 18/35
Index Builder – Ευρετήριο Μεταδεδομένων των Αναρτήσεων
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 19/35
• Μορφή JSON
• Πληροφορίες ανάρτησης
• Σχετικές οντότητες
• Τμήματα κώδικα
Search Engine & Presentation
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 20/35
Search Engine – Ερώτημα
• Διατύπωση ερωτήματος σε φυσική γλώσσα
• Αφαίρεση σημείων στίξης
• Κανονικοποίηση ερωτήματος (όπως πριν)
• Δημιουργία διανυσματικής αναπαράστασης ερωτήματος (FastText ή TF-IDF)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 21/35
Search Engine – Μηχανισμός Κατάταξης
Σενάριο μεμονομένου μοντέλου (FastText ή TF-IDF)
• Κατάταξη με βάση την ομοιότητα συνημιτόνου
• Σύγκριση διανυσμάτων ερωτήματος και αναρτήσεων (Πίνακα Διανυσματικών Αναπαραστάσεων)
• Κάθε ανάρτηση έχει τρεις διανυσματικές αναπαραστάσεις (Τίτλος, Σώμα, Tags)
• Υπολογισμός ομοιοτήτων ως:
𝑠𝑖𝑚(𝑞, 𝑑) =
𝑖=1
3
𝑤𝑖 𝑐𝑜𝑠𝑠𝑖𝑚(𝑄, 𝑓𝑖)
Σενάριο υβριδικού μοντέλου (FastText και TF-IDF)
• Συνδυασμός ομοιοτήτων των επιμέρους μοντέλων (FastText, TF-IDF)
• Υπολογισμός ομοιοτήτων ως:
ℎ𝑦𝑏𝑟𝑖𝑑_𝑠𝑖𝑚(𝑞, 𝑑) = 𝑤𝑓𝑡 · 𝑓𝑡_𝑠𝑖𝑚(𝑞, 𝑑) + 𝑤𝑡𝑓𝑖𝑑𝑓 · 𝑡𝑓𝑖𝑑𝑓_𝑠𝑖𝑚(𝑞, 𝑑)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 22/35
Search Engine – Presenter
• Διεπαφή τύπου Command Line Input (CLI)
• Παρουσίαση των παραδειγμάτων κώδικα μέσω της διεπαφής
• Παρουσίαση επιπλέον πληροφοριών από τον πίνακα μεταδεδομένων
• σύνδεσμος της ανάρτησης-απάντησης (απ’ όπου έγινε η εξαγωγή του κώδικα)
• τίτλος της ανάρτησης-ερώτησης
• βαθμολογία της ανάρτησης
• οντότητες που περιγράφουν το ερώτημα
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 23/35
Αξιολόγηση Συστήματος – Πείραμα 1ο
• Συλλογή ρεαλιστικών ερωτημάτων για την
εκτέλεση του πρώτου πειράματος
• Χρήση ερωτημάτων ίδιου περιεχομένου με
διαφορετική διατύπωση
• Ομαδοποίηση ερωτημάτων βάσει περιεχομένου
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 24/35
Index Query Group
1 How to read a comma separated file? 1
2 How to read a CSV file? 1
3 How to read a delimited file? 1
4 How to read input from console? 2
5 How to read input from terminal? 2
6 How to read input from command prompt? 2
7 How to play an mp3 file? 3
8 How to play an audio file? 3
9 How to compare dates? 4
10 How to compare time strings? 4
11 How to dynamically load a class? 5
12 How to load a jar/class at runtime? 5
13 How to calculate checksums for files? 6
14 How to calculate MD5 checksum for files? 6
15 How to iterate through a hashmap? 7
16 How to loop over a hashmap? 7
17 How to split a string? 8
18 How to handle an exception? 9
Πείραμα 1ο – Ποιοτική Αξιολόγηση
• Μετρικές όπως το precision και το recall δεν είναι εύκολα εφαρμόσιμες.
• Θέλουμε να λαμβάνεται υπόψιν και η σειρά με την οποία εμφανίζονται τα χρήσιμα αποτελέσματα.
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 25/35
Average Precision
Το Average Precision ισούται με:
𝐴𝑣𝑒𝑃 =
0
1
𝑝(𝑟)𝑑𝑟 =
𝑘=1
𝑛
𝑃(𝑘)𝛥𝑟(𝑘) =
𝑘=1
𝑛
(𝑃(𝑘) · 𝑟𝑒𝑙(𝑘))
𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑠
Mean Average Precision
Αν Q το πλήθος των ερωτημάτων, τότε το Mean Average Precision ισούται με:
𝑀𝐴𝑃 =
𝑞=1
𝑄
𝐴𝑣𝑒𝑃(𝑞)
𝑄
Mean Search Length
Ως μήκος αναζήτησης SL ορίζεται το πλήθος των μη σχετικών αποτελεσμάτων που εμφανίζονται στο χρήστη μέχρι να
εμφανιστούν N σχετικά.
Για ένα πλήθος ερωτημάτων Q το μέσο μήκος αναζήτησης MSL ισούται με:
𝑀𝑆𝐿 =
𝑞=1
𝑄
𝑆𝐿(𝑞)
𝑄
Πείραμα 1ο – Average Precision
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 26/35
Πείραμα 1ο – Mean Average Precision (MAP)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 27/35
Πείραμα 1ο – Mean Search Length (MSL)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 28/35
Πείραμα 2ο – Ποσοτική Αξιολόγηση με PostLinks
PostLinks ή Σύνδεσμοι Αναρτήσεων
• Ζεύγη αναγνωριστικών αναρτήσεων (PostId – PostId)
• Τύπος PostLink (συνδεδεμένη ή διπλότυπη ανάρτηση)
• Τα PostLinks υποδεικνύουν σχετικές αναρτήσεις
Βήματα Πειράματος
1. Περιορισμός του σετ δεδομένων
• Αναρτήσεις με τουλάχιστον ένα snippet
• Αναρτήσεις με σκορ > -3
• Αναρτήσεις με AcceptedAnswer
2. Χρήση των τίτλων σαν ερωτήματα
3. Για κάθε ερώτημα/τίτλο γίνεται λήψη των πρώτων 20 αποτελεσμάτων από το σύστημα
4. Για κάθε ερώτημα/τίτλο γίνεται σχηματισμός όλων των ζευγών αναγνωριστικών (ερώτημα – αποτέλεσμα)
5. Υπολογισμός ποσοστού των ζευγών που βρίσκονται στη λίστα των PostLinks
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 28/35
Πείραμα 2ο – PostLinks
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 30/35
Συμπεράσματα
• Εξοικονόμηση χρόνου χρησιμοποιώντας το RSSE και παρουσιάζοντας παραδείγματα
κώδικα με ορθή σύνταξη
• Η καλή προεπεξεργασία του κειμένου παράγει ποιοτικότερα μοντέλα διανυσματικού
χώρου (VSMs)
• Η χρήση του μοντέλου FastText εξάγει χρήσιμη σημασιολογική πληροφορία
• Ο συνδυασμός των δύο μοντέλων (TF-IDF, FastText) καταφέρνει καλύτερα αποτελέσματα
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 31/35
Μελλοντική Εργασία
• Γραφικό Περιβάλλον (GUI) σε ιστοσελίδα
• Ρύθμιση βαρών του μηχανισμού κατάταξης
• Συμπίεση ευρετηρίων/πινάκων αναζήτησης διανυσμάτων
• Υποστήριξη και άλλων γλωσσών προγραμματισμού (C/C++, Python, Scala)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 32/35
Παρουσίαση Συστήματος (Video Demo)
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 33/35
Ευχαριστίες
Οφείλω ένα μεγάλο ευχαριστώ:
• στον κ. Ανδρέα Συμεωνίδη για την ευκαιρία που μου έδωσε να ασχοληθώ με
το αντικείμενο της διπλωματικής.
• στο Θέμη Διαμαντόπουλο για τη συνεχή στήριξη και καθοδήγηση που μου
παρείχε.
• σε εσάς για την προσοχή σας.
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 34/35
Ερωτήσεις
Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 35/35

Contenu connexe

Similaire à Nikolaos Oikonomou

Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Manos Tsardoulias
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationISSEL
 
A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...Nikolaos Konstantinou
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...ISSEL
 
Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...ISSEL
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
 
Γεώργιος Κορδοπάτης-Ζήλος
Γεώργιος Κορδοπάτης-ΖήλοςΓεώργιος Κορδοπάτης-Ζήλος
Γεώργιος Κορδοπάτης-ΖήλοςISSEL
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis LoiasISSEL
 
Οικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – ΧρήστοςΟικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – ΧρήστοςISSEL
 
Ifigeneia Theodoridou
Ifigeneia TheodoridouIfigeneia Theodoridou
Ifigeneia TheodoridouISSEL
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485ISSEL
 
Σωτήρης Μπέης
Σωτήρης ΜπέηςΣωτήρης Μπέης
Σωτήρης ΜπέηςISSEL
 
Big Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxBig Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxGeorge Sidiras
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλISSEL
 

Similaire à Nikolaos Oikonomou (20)

Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentation
 
A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
 
Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Γεώργιος Κορδοπάτης-Ζήλος
Γεώργιος Κορδοπάτης-ΖήλοςΓεώργιος Κορδοπάτης-Ζήλος
Γεώργιος Κορδοπάτης-Ζήλος
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis Loias
 
Παρουσίαση
ΠαρουσίασηΠαρουσίαση
Παρουσίαση
 
Παρουσίαση
ΠαρουσίασηΠαρουσίαση
Παρουσίαση
 
Οικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – ΧρήστοςΟικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – Χρήστος
 
Ifigeneia Theodoridou
Ifigeneia TheodoridouIfigeneia Theodoridou
Ifigeneia Theodoridou
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Σωτήρης Μπέης
Σωτήρης ΜπέηςΣωτήρης Μπέης
Σωτήρης Μπέης
 
Big Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxBig Data with Apache Spark and Graphx
Big Data with Apache Spark and Graphx
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ Παπαμιχαήλ
 

Plus de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 

Plus de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 

Dernier

Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxeucharis
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx36dimperist
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdfssuser2f8893
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx36dimperist
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008Θεόδωρος Μαραγκούλας
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .Dimitra Mylonaki
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑDimitra Mylonaki
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψειςDimitra Mylonaki
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηTheodora Chandrinou
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptxAthina Tziaki
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx36dimperist
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της ΙταλίαςKonstantina Katirtzi
 

Dernier (20)

ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
 
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
 

Nikolaos Oikonomou

  • 1. Σημασιολογική Ανάλυση Κώδικα από Διαδικτυακές Πηγές με Σκοπό την Επαναχρησιμοποίηση Λογισμικού Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Οικονόμου Νικόλαος (Α.Ε.Μ. 7742) Επιβλέπων: Ανδρέας Συμεωνίδης, Καθηγητής Συνεπιβλέπων: Θεμιστοκλής Διαμαντόπουλος, Υποψήφιος Διδάκτορας Θεσσαλονίκη, 2 Ιουλίου 2018
  • 2. Δομή Παρουσίασης • Εισαγωγή • Δομή/Υλοποίηση Συστήματος • Αξιολόγηση Συστήματος • Συμπεράσματα & Μελλοντική Εργασία • Επίδειξη Συστήματος (Video Demo) • Ερωτήσεις Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 2/35
  • 3. Σκοπός της Διπλωματικής • Τα σημερινά έργα λογισμικού είναι πολύπλοκα και μεγάλα σε μέγεθος • Πλήθος επιλογών (APIs, βιβλιοθήκες, frameworks, πλατφόρμες κ.λπ.) • Ελλιπής ή δυσκολονόητη τεκμηρίωση Πρόβλημα: Δαπάνη χρόνου για την αναζήτηση και την κατανόηση χρήσιμων παραδειγμάτων κώδικα χρησιμοποιώντας τις συμβατικές μηχανές αναζήτησης. Σκοπός Διπλωματικής: Αυτοματοποίηση της διαδικασίας ανεύρεσης παραδειγμάτων κώδικα για ερωτήματα του προγραμματιστή, με τη χρήση ενός Συστήματος Προτάσεων στην Τεχνολογία Λογισμικού (Recommendation System in Software Engineering ή RSSE) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 3/35
  • 4. RSSEs στη Βιβλιογραφία Αδυναμίες υπαρχόντων συστημάτων • Δε δέχονται ερωτήματα σε φυσική γλώσσα (περίπλοκη δομή ερωτημάτων) • Δε γίνεται εκμετάλλευση της διαθέσιμης πληροφορίας (κείμενο που συνοδεύει τμήματα κώδικα) • Αδύναμοι μηχανισμοί κατάταξης • Δεν προτείνονται έτοιμα τμήματα κώδικα (ακολουθίες APIs, συμπλήρωση κώδικα κ.λπ.) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 4/35
  • 6. Code Parser & Database Builder Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 6/35
  • 7. Code Parser Δυνατότητες του parser • Επικύρωση συντακτικής ορθότητας • Εξαγωγή ακολουθίας στοιχείων (imports, comments, αντικείμενα, κλήσεις μεθόδων κ.λπ.) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 7/35
  • 8. Database Builder – Μορφή Βάσης Δεδομένων Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 8/35 Επιπλέον Στοιχεία • Τμήματα κώδικα (Snippets) • Αριθμός τμημάτων κώδικα (SnippetCount) • Ονόματα Οντοτήτων (NamedEntities)
  • 9. Database Builder – Εξαγωγή Ονομάτων Οντοτήτων Ταξινομητής CRF (Conditional Random Fields) Χαρακτηριστικά όρων • Ορθογραφικά (π.χ. προθέματα, καταλήξεις, ύπαρξη τελείας ή κάτω παύλας, κεφαλαίος πρώτος χαρακτήρας) • Χαρακτηριστικά Αναπαραστάσεων (π.χ. ομάδα Brown, ομάδα K-Means βάσει διανύσματος) Εξαγόμενες οντότητες • APIs (π.χ. toString(), ArrayList) • Platforms (π.χ. Android, Ubuntu, Windows) • Tools-Frameworks (π.χ. Maven, Weka, JProfiler) • Software Standards (π.χ. JSON, TCP, JDBC, jar) • Programming Languages (π.χ. Java, C#) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 9/35
  • 10. Αρχιτεκτονική του Συστήματος – Corpus Builder Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 10/35
  • 11. Corpus Builder – Μορφή Αναρτήσεων (Posts) • Μετατροπή html μορφής σε κείμενο • Εξαγωγή ακολουθιών από τα τμήματα κώδικα • Αξιολόγηση και επιλογή ποιοτικών αναρτήσεων • Τελική επεξεργασία κειμένου Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 11/35
  • 12. Corpus Builder – Επιλογή Αναρτήσεων LSTM Ταξινομητής για αναρτήσεις με θόρυβο: • 1 layer LSTM • 1 layer CNN • Εκπαίδευση σε 2500 κατηγοριοποιημένα post • Accuracy > 92% στο σετ δεδομένων Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 12/35 Μετρικές χρήσιμων αναρτήσεων: • Μέγεθος γραμμής < 1000 χαρακτήρες • Λόγος # 𝜆𝜀𝜉𝜀𝜔𝜈 # 𝜎𝜂𝜇𝜀𝜄𝜔𝜈 𝜎𝜏𝜄𝜉𝜂𝜍 > 1.6 1η Παρατήρηση Αναρτήσεις με μεγάλο αριθμό σημείων στίξης περιέχουν μη χρήσιμες πληροφορίες. 2η Παρατήρηση Αναρτήσεις με debug logs και κώδικα σε άλλες γλώσσες (html, javascript κ.λπ.) αποτελούν θόρυβο για το corpus εκπαίδευσης.
  • 13. Corpus Builder – Επεξεργασία Κειμένου Κατακερματισμός κειμένου με custom tokenizer • Διατήρηση όρων API • Διατήρηση τελεστών της Java (π.χ. ==, !=, >=) • Αφαίρεση σημείων στίξης • Αφαίρεση συμβόλων, αριθμών και URLs Κανονικοποίηση όρων κειμένου • Ανάπτυξη συντομογραφιών • Αντικατάσταση αριθμών με λέξεις Στόχοι • Ομοιομορφία κειμένου • Μείωση του συνόλου των όρων (λεξικό όρων) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 13/35 Original Tokenized Normalized 10 10 ten don’t do n’t do not that’s that ‘s that is U.K. U.K. U.K. properties/fields properties / fields properties fields Java/C++ Java / C++ Java C++ (active) ( active ) active java.io* java.io java.io System.out.println() System.out.println System.out.println
  • 14. Corpus Builder – Χρήση RegEx Χρήση κανονικών εκφράσεων για την τελική επεξεργασία του κειμένου • Αφαίρεση σημείων στίξης που έχουν μείνει • Αφαίρεση κοινότυπων Java stack traces ή debug logs • Αφαίρεση μεγάλων ονομάτων πακέτων ή άλλων string • Συμπίεση κενών χαρακτήρων Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 14/35
  • 15. Word Embeddings Builder Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 15/35
  • 16. Word Embeddings Builder Γνωστά Μοντέλα Διανυσματικού Χώρου (Vector Space Models) • TF-IDF • Αραιά διανύσματα • Χρήση συχνότητας των όρων για τον υπολογισμό βαρών των όρων • Word2vec • Ρηχό νευρωνικό δίκτυο • Πυκνά διανύσματα n διαστάσεων • FastText • Επέκταση του word2vec • Χρήση character n-grams (model ⇨ ‘<mo’, ‘mod’, ‘mode’, ‘model’, ‘odel’, ‘del’, el>’) • Πυκνά διανύσματα n διαστάσεων Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 16/35
  • 18. Index Builder – Πίνακας Διανυσματικών Αναπαραστάσεων των Αναρτήσεων Περιγραφή των αναρτήσεων (posts) με τρεις αναπαραστάσεις • Διανύσματα των τίτλων (TitleVectors) • Διανύσματα των σωμάτων (BodyVectors) • Διανύσματα των ακολουθιών των tags (TagVectors) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 18/35
  • 19. Index Builder – Ευρετήριο Μεταδεδομένων των Αναρτήσεων Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 19/35 • Μορφή JSON • Πληροφορίες ανάρτησης • Σχετικές οντότητες • Τμήματα κώδικα
  • 20. Search Engine & Presentation Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 20/35
  • 21. Search Engine – Ερώτημα • Διατύπωση ερωτήματος σε φυσική γλώσσα • Αφαίρεση σημείων στίξης • Κανονικοποίηση ερωτήματος (όπως πριν) • Δημιουργία διανυσματικής αναπαράστασης ερωτήματος (FastText ή TF-IDF) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 21/35
  • 22. Search Engine – Μηχανισμός Κατάταξης Σενάριο μεμονομένου μοντέλου (FastText ή TF-IDF) • Κατάταξη με βάση την ομοιότητα συνημιτόνου • Σύγκριση διανυσμάτων ερωτήματος και αναρτήσεων (Πίνακα Διανυσματικών Αναπαραστάσεων) • Κάθε ανάρτηση έχει τρεις διανυσματικές αναπαραστάσεις (Τίτλος, Σώμα, Tags) • Υπολογισμός ομοιοτήτων ως: 𝑠𝑖𝑚(𝑞, 𝑑) = 𝑖=1 3 𝑤𝑖 𝑐𝑜𝑠𝑠𝑖𝑚(𝑄, 𝑓𝑖) Σενάριο υβριδικού μοντέλου (FastText και TF-IDF) • Συνδυασμός ομοιοτήτων των επιμέρους μοντέλων (FastText, TF-IDF) • Υπολογισμός ομοιοτήτων ως: ℎ𝑦𝑏𝑟𝑖𝑑_𝑠𝑖𝑚(𝑞, 𝑑) = 𝑤𝑓𝑡 · 𝑓𝑡_𝑠𝑖𝑚(𝑞, 𝑑) + 𝑤𝑡𝑓𝑖𝑑𝑓 · 𝑡𝑓𝑖𝑑𝑓_𝑠𝑖𝑚(𝑞, 𝑑) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 22/35
  • 23. Search Engine – Presenter • Διεπαφή τύπου Command Line Input (CLI) • Παρουσίαση των παραδειγμάτων κώδικα μέσω της διεπαφής • Παρουσίαση επιπλέον πληροφοριών από τον πίνακα μεταδεδομένων • σύνδεσμος της ανάρτησης-απάντησης (απ’ όπου έγινε η εξαγωγή του κώδικα) • τίτλος της ανάρτησης-ερώτησης • βαθμολογία της ανάρτησης • οντότητες που περιγράφουν το ερώτημα Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 23/35
  • 24. Αξιολόγηση Συστήματος – Πείραμα 1ο • Συλλογή ρεαλιστικών ερωτημάτων για την εκτέλεση του πρώτου πειράματος • Χρήση ερωτημάτων ίδιου περιεχομένου με διαφορετική διατύπωση • Ομαδοποίηση ερωτημάτων βάσει περιεχομένου Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 24/35 Index Query Group 1 How to read a comma separated file? 1 2 How to read a CSV file? 1 3 How to read a delimited file? 1 4 How to read input from console? 2 5 How to read input from terminal? 2 6 How to read input from command prompt? 2 7 How to play an mp3 file? 3 8 How to play an audio file? 3 9 How to compare dates? 4 10 How to compare time strings? 4 11 How to dynamically load a class? 5 12 How to load a jar/class at runtime? 5 13 How to calculate checksums for files? 6 14 How to calculate MD5 checksum for files? 6 15 How to iterate through a hashmap? 7 16 How to loop over a hashmap? 7 17 How to split a string? 8 18 How to handle an exception? 9
  • 25. Πείραμα 1ο – Ποιοτική Αξιολόγηση • Μετρικές όπως το precision και το recall δεν είναι εύκολα εφαρμόσιμες. • Θέλουμε να λαμβάνεται υπόψιν και η σειρά με την οποία εμφανίζονται τα χρήσιμα αποτελέσματα. Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 25/35 Average Precision Το Average Precision ισούται με: 𝐴𝑣𝑒𝑃 = 0 1 𝑝(𝑟)𝑑𝑟 = 𝑘=1 𝑛 𝑃(𝑘)𝛥𝑟(𝑘) = 𝑘=1 𝑛 (𝑃(𝑘) · 𝑟𝑒𝑙(𝑘)) 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑠 Mean Average Precision Αν Q το πλήθος των ερωτημάτων, τότε το Mean Average Precision ισούται με: 𝑀𝐴𝑃 = 𝑞=1 𝑄 𝐴𝑣𝑒𝑃(𝑞) 𝑄 Mean Search Length Ως μήκος αναζήτησης SL ορίζεται το πλήθος των μη σχετικών αποτελεσμάτων που εμφανίζονται στο χρήστη μέχρι να εμφανιστούν N σχετικά. Για ένα πλήθος ερωτημάτων Q το μέσο μήκος αναζήτησης MSL ισούται με: 𝑀𝑆𝐿 = 𝑞=1 𝑄 𝑆𝐿(𝑞) 𝑄
  • 26. Πείραμα 1ο – Average Precision Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 26/35
  • 27. Πείραμα 1ο – Mean Average Precision (MAP) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 27/35
  • 28. Πείραμα 1ο – Mean Search Length (MSL) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 28/35
  • 29. Πείραμα 2ο – Ποσοτική Αξιολόγηση με PostLinks PostLinks ή Σύνδεσμοι Αναρτήσεων • Ζεύγη αναγνωριστικών αναρτήσεων (PostId – PostId) • Τύπος PostLink (συνδεδεμένη ή διπλότυπη ανάρτηση) • Τα PostLinks υποδεικνύουν σχετικές αναρτήσεις Βήματα Πειράματος 1. Περιορισμός του σετ δεδομένων • Αναρτήσεις με τουλάχιστον ένα snippet • Αναρτήσεις με σκορ > -3 • Αναρτήσεις με AcceptedAnswer 2. Χρήση των τίτλων σαν ερωτήματα 3. Για κάθε ερώτημα/τίτλο γίνεται λήψη των πρώτων 20 αποτελεσμάτων από το σύστημα 4. Για κάθε ερώτημα/τίτλο γίνεται σχηματισμός όλων των ζευγών αναγνωριστικών (ερώτημα – αποτέλεσμα) 5. Υπολογισμός ποσοστού των ζευγών που βρίσκονται στη λίστα των PostLinks Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 28/35
  • 30. Πείραμα 2ο – PostLinks Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 30/35
  • 31. Συμπεράσματα • Εξοικονόμηση χρόνου χρησιμοποιώντας το RSSE και παρουσιάζοντας παραδείγματα κώδικα με ορθή σύνταξη • Η καλή προεπεξεργασία του κειμένου παράγει ποιοτικότερα μοντέλα διανυσματικού χώρου (VSMs) • Η χρήση του μοντέλου FastText εξάγει χρήσιμη σημασιολογική πληροφορία • Ο συνδυασμός των δύο μοντέλων (TF-IDF, FastText) καταφέρνει καλύτερα αποτελέσματα Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 31/35
  • 32. Μελλοντική Εργασία • Γραφικό Περιβάλλον (GUI) σε ιστοσελίδα • Ρύθμιση βαρών του μηχανισμού κατάταξης • Συμπίεση ευρετηρίων/πινάκων αναζήτησης διανυσμάτων • Υποστήριξη και άλλων γλωσσών προγραμματισμού (C/C++, Python, Scala) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 32/35
  • 33. Παρουσίαση Συστήματος (Video Demo) Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 33/35
  • 34. Ευχαριστίες Οφείλω ένα μεγάλο ευχαριστώ: • στον κ. Ανδρέα Συμεωνίδη για την ευκαιρία που μου έδωσε να ασχοληθώ με το αντικείμενο της διπλωματικής. • στο Θέμη Διαμαντόπουλο για τη συνεχή στήριξη και καθοδήγηση που μου παρείχε. • σε εσάς για την προσοχή σας. Θεσσαλονίκη, Ιούλιος 2018 StackSearch RSSE 34/35