Successfully reported this slideshow.
Your SlideShare is downloading. ×

Evangelos papathomas diploma thesis presentation

Evangelos papathomas diploma thesis presentation

Download to read offline

Semantic Code Search in Software Repositories using Neural Machine Translation

Semantic Code Search in Software Repositories using Neural Machine Translation

More Related Content

Slideshows for you

More from ISSEL

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Evangelos papathomas diploma thesis presentation

  1. 1. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης Ευάγγελος Παπαθωμάς (ΑΕΜ: 8692) Επιβλέποντες Ανδρέας Συμεωνίδης, Αναπληρωτής Καθηγητής Θεμιστοκλής Διαμαντόπουλος, Μεταδιδακτορικός Ερευνητής Θεσσαλονίκη, 2020
  2. 2. Δομή Παρουσίασης • Εισαγωγή • Υλοποίηση του Συστήματος • Αξιολόγηση του Συστήματος • Συμπεράσματα και Μελλοντική Εργασία • Ερωτήσεις Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 2
  3. 3. Ορισμός του Προβλήματος • Σήμερα, η ανάπτυξη λογισμικού είναι μία πολύπλοκη και χρονοβόρα διαδικασία. • Πολλές επιλογές (π.χ. APIs, βιβλιοθήκες, εργαλεία κ.α.) • Ελλιπείς ή προβληματικοί σχολιασμοί. Πρόβλημα: • Αύξηση του φόρτου εργασίας των μηχανικών λογισμικού λόγω της μεγάλης δαπάνης χρόνου για την αναζήτηση παραδειγμάτων κώδικα χρησιμοποιώντας συμβατικές μηχανές αναζήτησης. Σκοπός της Διπλωματικής: • Η δημιουργία ενός Συστήματος Προτάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering ή RSSE), το οποίο δέχεται ερωτήματα σε φυσική γλώσσα και προτείνει τμήματα κώδικα υψηλής ποιότητας. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 3
  4. 4. RSSEs στη Βιβλιογραφία Αδυναμίες υπαρχουσών υλοποιήσεων: • Δε δέχονται ερωτήματα φυσικής γλώσσας. • Δεν εκμεταλλεύονται τους σχολιασμούς του κώδικα. • Δεν πραγματοποιούν σημασιολογική ανάλυση του κώδικα. • Δεν προτείνουν ολοκληρωμένα τμήματα κώδικα. • Δεν επιτυγχάνουν υψηλές αποδόσεις όσον αφορά την επιστροφή σχετικών αποτελεσμάτων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 4
  5. 5. Αρχιτεκτονική του CODEtransformer Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 5
  6. 6. Dataset Builder (1/3) • Επεξεργασία ακατέργαστων δεδομένων φυσικής γλώσσας και κώδικα. • Δημιουργία καθαρισμένου συνόλου δεδομένων και λεξιλογίων. CodeSearchNet Corpus: • 1.569.889 συναρτήσεις Java από αναγνωρισμένα αποθετήρια του GitHub. • 542.991 από τις συναρτήσεις συνοδεύονται από σχολιασμούς. • Σχολιασμοί κώδικα ως δεδομένα φυσικής γλώσσας. • Δεδομένα φυσικής γλώσσας και κώδικα ήδη χωρισμένα σε συμβολοσειρές. • Χρήσιμα δεδομένα όπως: ονόματα συναρτήσεων, URLs κ.α. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 6 Χαρακτηριστικά Δεδομένα Σχολιασμός Simplified method form for invoking the ListSSHPublicKeys operation with an AsyncHandler. @see #listSSHPublicKeysAsync(List SSHPublicKeysRequest, com.amazonaws.handlers.Asyn cHandler) Κώδικας @Overriden public java.util.concurrent.Future<List SSHPublicKeysResult> listSSHPublicKeysAsync(n com.amazonaws.handlers.Asyn cHandler<ListSSHPublicKeysR equest, ListSSHPublicKeysResult> asyncHandler) {nn return listSSHPublicKeysAsync(new ListSSHPublicKeysRequest(), asyncHandler);n }
  7. 7. Dataset Builder (2/3) Προεπεξεργασία δεδομένων φυσικής γλώσσας: • Διατήρηση μόνο της πρώτης πρότασης του σχολιασμού. • Αφαίρεση ειδικών χαρακτήρων (π.χ. !, @). • Αφαίρεση μη ASCII χαρακτήρων (π.χ. 隠, ¥). • Διαχωρισμός camelCase συμβολοσειρών (π.χ. stringUtils). • Αντικατάσταση σχολιασμού με το όνομα της αντίστοιχης συνάρτησης σε καταχωρήσεις με λιγότερες από 6 ή περισσότερες από 30 συμβολοσειρές. • Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες. Όνομα Συνάρτησης Πριν Μετά hexStringToByteArray ['--------------------------------------------------------'] ['hex', 'string', 'to', 'byte', 'array'] computeEnumSimply ['仅仅利用了转移矩阵的“维特比”算法'] ['compute', 'enum', 'simply'] getCacheManagerName ['Get', 'the', 'name', 'of', 'a', '{'] ['get', 'cache', 'manager', 'name'] concatWs ['Concatenates', 'input', 'strings', 'together', 'into', 'a', 'single', 'string', 'using', 'the', 'separator', '.', 'A', 'null', 'input', 'is', 'skipped', '.', 'For', 'example', 'concat', '(', 'a', 'null', 'c', ')', 'would', 'yield', 'a', 'c', '.'] ['concatenates', 'input', 'strings', 'together', 'into', 'a', 'single', 'string', 'using', 'the', 'separator'] Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 7
  8. 8. Dataset Builder (3/3) Προεπεξεργασία δεδομένων κώδικα: • Αφαίρεση μη ASCII χαρακτήρων (π.χ. 夏, φ). • Διαχωρισμός camelCase συμβολοσειρών (π.χ. ArrayList). • Κωδικοποίηση προγραμματιστικών συμβόλων σε μοναδικές συμβολοσειρές. • Αφαίρεση ειδικών χαρακτήρων που δε καλύπτονται από το προηγούμενο βήμα. • Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες. Πριν Μετά ['public', 'CorsConfig', 'build', '(', ')', '{', 'if', '(', 'preflightHeaders', '.', 'isEmpty', '(', ')', '&&', '!', 'noPreflightHeaders', ')', '{', 'preflightHeaders', '.', 'put', '(', 'HttpHeaderNames', '.', 'DATE', ',', 'DateValueGenerator', '.', 'INSTANCE', ')', ';', 'preflightHeaders', '.', 'put', '(', 'HttpHeaderNames', '.', 'CONTENT_LENGTH', ',', 'new', 'ConstantValueGenerator', '(', '"0"', ')', ')', ';', '}', 'return', 'new', 'CorsConfig', '(', 'this', ')', ';', '}'] ['public', 'cors', 'config', 'build', 'openingparenthesis', 'closingparenthesis', 'openingbrace', 'if', 'openingparenthesis', 'preflight', 'headers', 'is', 'empty', 'openingparenthesis', 'closingparenthesis', 'notoperator', 'no', 'preflight', 'headers', 'closingparenthesis', 'openingbrace', 'preflight', 'headers', 'put', 'openingparenthesis', 'http', 'header', 'names', 'date', 'date', 'value', 'generator', 'instance', 'closingparenthesis', 'semicolon', 'preflight', 'headers', 'put', 'openingparenthesis', 'http', 'header', 'names', 'contentlength', 'new', 'constant', 'value', 'generator', 'openingparenthesis', 'closingparenthesis', 'closingparenthesis', 'semicolon', 'closingbrace', 'return', 'new', 'cors', 'config', 'openingparenthesis', 'this', 'closingparenthesis', 'semicolon', 'closingbrace'] Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 8
  9. 9. Neural Network (1/9) Δίκτυο Αντιστοίχισης (Matching Network): • Αρχιτεκτονική ειδικά κατασκευασμένη για την επίλυση one-shot learning προβλημάτων. • Χρήση ξεχωριστών κωδικοποιητών. • Χρήση μετρικής ομοιότητας διανυσμάτων. • Δημιουργία τετραγωνικού πίνακα τιμών ομοιότητας, με διαγώνια στοιχεία τιμές ομοιότητας θετικών ζευγών. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 9
  10. 10. Neural Network (2/9) Κωδικοποιητές: • Χρήση της state-of-the-art αρχιτεκτονικής των Μετασχηματιστών (Transformers). • Δημιουργία ενσωματώσεων λέξεων (word embeddings). • Κωδικοποίηση ενσωματώσεων ως προς τη θέση των λέξεων στο κείμενο. • Χρήση Προσοχής Πολλαπλών Κεφαλών (Multi-Head Attention) για τη σημασιολογική ανάλυση του εξεταζόμενου κειμένου. • Χρήση Δικτύου Εμπρόσθιας Διάδοσης (Feed-Forward Network) για το συνδυασμό πολύπλοκων συντακτικών πληροφοριών. • Εκβάθυνση του δικτύου με την τριπλή επανάληψη των επιπέδων Προσοχής Πολλαπλών Κεφαλών και Δικτύου Εμπρόσθιας Διάδοσης. • Χρήση max pooling για τη δημιουργία ενσωματώσεων προτάσεων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 10
  11. 11. Neural Network (3/9) Προσοχή Πολλαπλών Κεφαλών: • Σημαντικές βελτιώσεις σε προβλήματα Νευρωνικής Μηχανικής Μετάφρασης. • Εστίαση της προσοχής στις πιο κατάλληλες λέξεις του κειμένου. • Μηχανισμός πολλαπλών κεφαλών για την εξέταση των πληροφοριών με διαφορετικούς τρόπους. • Σημασιολογική ανάλυση του κειμένου. Δίκτυο Εμπρόσθιας Διάδοσης: • Χρήση μη γραμμικών μετασχηματισμών. • Συνδυασμός πολύπλοκων συντακτικών και γραμματικών πληροφοριών. • Δημιουργία ενσωματώσεων οι οποίες συμπεριλαμβάνουν τις πληροφορίες των συμφραζομένων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 11
  12. 12. Neural Network (4/9) Ομοιότητα Επιφάνειας Τριγώνου - Ομοιότητα Επιφάνειας Τομέα: • Γεωμετρική υβριδική μετρική ομοιότητας. • Συνδυασμός ευκλείδειας απόστασης, μήκους και γωνίας μεταξύ των διανυσμάτων. • Διόρθωση όλων των αδυναμιών της ευκλείδειας απόστασης και της ομοιότητας συνημίτονου. • Όμοια χαρακτηρίζονται διανύσματα με μικρές ή μηδενικές διαφορές στην ευκλείδεια απόσταση, στο μήκος και στη μεταξύ τους γωνία. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 14
  13. 13. Neural Network (5/9) Τετραγωνικές Απώλειες Περιθωρίου: • Επιτρεπτή τιμή περιθωρίου οποιαδήποτε θετική τιμή. • Η χρήση του τετραγώνου «τιμωρεί» περισσότερο τις μεγάλες και λιγότερο τις μικρές τιμές απωλειών. • Γρήγορη σύγκλιση στο ολικό ελάχιστο της συνάρτησης. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 16
  14. 14. Neural Network (6/9) Βελτιστοποιητές (Optimizers): • Χρήση του βελτιστοποιητή Adam για την εκπαίδευση του δικτύου. • Εύρεση του βέλτιστου ρυθμού μάθησης με τη χρήση συνάρτησης εκθετικής αύξησης. • Εκπαίδευση του δικτύου για εκθετικά αυξανόμενο ρυθμό μάθησης. • Επιλογή ρυθμού μάθησης για τον οποίο υπάρχει απότομη μείωση απωλειών και απότομη αύξηση της ακρίβειας (accuracy). Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 18
  15. 15. Neural Network (7/9) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 19
  16. 16. Neural Network (8/9) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 20
  17. 17. Neural Network (9/9) Εκπαίδευση (Training): • Εκπαίδευση του δικτύου για 40 εποχές. • Αποθήκευση του μοντέλου όταν η τιμή της μετρικής MRR του συνόλου δεδομένων επικύρωσης (validation dataset) περνά την προηγούμενη καλύτερη τιμή. Υπερπαράμετρος Τιμή NUM_LAYERS 3 INPUT_VOCAB_SIZE 10.002 TARGET_VOCAB_SIZE 10.002 INPUT_POSITION 10.002 TARGET_POSITION 10.002 NUM_HEADS 8 DFF 512 D_MODEL 128 RATE 0,1 LEARNING_RATE 3.2e-4 MARGIN 5 EPOCHS 40 Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 21
  18. 18. Index Builder • Χρήση του εργαλείου Annoy του Spotify, το οποίο αποτελεί υλοποίηση του αλγορίθμου Αναζήτησης Πλησιέστερου Γείτονα (Nearest Neighbor Search). • Προσεγγιστικός αλγόριθμος για τη μείωση του χρόνου αναζήτησης. • Κατασκευή διανυσματικού χώρου με τη χρήση δυαδικών δέντρων, όπου κάθε κόμβος ανήκει σε μία ενσωμάτωση κώδικα. • Αναζήτηση του πιο όμοιου διανύσματος στο διάνυσμα εισαγωγής στα 10.000 κοντινότερα διανύσματα, έναντι των 1.569.889 που περιέχονται συνολικά στο διανυσματικό χώρο. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 26
  19. 19. Search Engine (1/3) • Κατασκευή μίας διαδικτυακής εφαρμογής για την αναζήτηση ερωτημάτων. • Δημιουργία Γραφικού Περιβάλλοντος Χρήστη για εύκολη προσβασιμότητα. • Χρήση της υπηρεσίας App Engine της Πλατφόρμας Νέφους της Google (Google Cloud Platform). • Προεπεξεργασία των εισαγόμενων ερωτημάτων. • Επιστροφή ολοκληρωμένων τμημάτων κώδικα με τη χρήση του Νευρωνικού Δικτύου και του διανυσματικού χώρου που κατασκευάστηκε με το εργαλείο Annoy. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 27
  20. 20. Search Engine (2/3) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 28
  21. 21. Search Engine (3/3) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 29
  22. 22. Αξιολόγηση του Συστήματος (1/5) Μετρικές Αξιολόγησης: • Precision at K (P@K): μετρά τη σχετικότητα των πρώτων Κ αποτελεσμάτων χωρίς να λαμβάνει υπόψη τη θέση τους στη λίστα αποτελεσμάτων. 𝑃@𝐾 = σ 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝐾 • Mean Reciprocal Rank (MRR): μετρά τη θέση του πρώτου σχετικού ερωτήματος που συναντάται στη λίστα αποτελεσμάτων. 𝑀𝑅𝑅 = 1 𝑄 ෍ 𝑖=1 𝑄 1 𝑟𝑎𝑛𝑘𝑖 • Normalized Discounted Cumulative Gain (NDCG): μετρά τη σχετικότητα των αποτελεσμάτων λαμβάνοντας υπόψη τη θέση τους στη λίστα και το βαθμό της σχετικότητάς τους. 𝑁𝐷𝐶𝐺 = 𝐷𝐶𝐺 𝐼𝐷𝐶𝐺 𝐷𝐶𝐺 = σ𝑖=1 𝑁 2 𝑟𝑒𝑙 𝑖−1 𝑙𝑜𝑔2 𝑖+1 𝐼𝐷𝐶𝐺 = σ𝑖=1 𝑅𝐸𝐿 𝑁 2 𝑟𝑒𝑙 𝑖−1 𝑙𝑜𝑔2 𝑖+1 Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 30
  23. 23. Αξιολόγηση του Συστήματος (2/5) Μέθοδοι Αξιολόγησης: • Σύγκριση με το παρόμοιο σύστημα CodeSearchNet. • Σύγκριση των τιμών της MRR στα δεδομένα επικύρωσης και ελέγχου. • Χρήση των 99 ερωτημάτων με τα οποία αξιολογείται το εν λόγο σύστημα για τον υπολογισμό της NDCG. • Υπολογισμός της MRR για κάθε ένα από 99 ερωτήματα. • Εξέταση των αποτελεσμάτων του CODEtransformer σε ερωτήματα του Stack Overflow. • Χρήση 40 δημοφιλών ερωτημάτων που αφορούν τη γλώσσα Java. • Υπολογισμός της P@10 για κάθε ένα από 40 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 31
  24. 24. Σύγκριση με το CodeSearchNet Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 32
  25. 25. Αξιολόγηση του Συστήματος (3/5) Σύστημα Validation MRR CodeSearchNet-NBoW 0,4972 CodeSearchNet-1D-CNN 0,4926 CodeSearchNet-biRNN 0,2713 CodeSearchNet-SelfAtt 0,5513 CODEtransformer 0,6260 Η μέτρηση της MRR στο σύνολο δεδομένων επικύρωσης κάθε συστήματος. Σύστημα Test MRR CodeSearchNet-NBoW 0,5140 CodeSearchNet-1D-CNN 0,5270 CodeSearchNet-biRNN 0,2865 CodeSearchNet-SelfAtt 0,5866 CODEtransformer 0,6263 Η μέτρηση της MRR στο σύνολο δεδομένων ελέγχου κάθε συστήματος. Σύστημα NDCG CodeSearchNet-NBoW 0,1207 CodeSearchNet-1D-CNN 0,1282 CodeSearchNet-biRNN 0,0623 CodeSearchNet-SelfAtt 0,1003 CODEtransformer 0,1028 Η μέτρηση της NDCG σε κάθε σύστημα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 33
  26. 26. Αξιολόγηση του Συστήματος (4/5) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 Η μέτρηση της MRR σε κάθε ένα από τα 99 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 34
  27. 27. Δημοφιλή Ερωτήματα του Stack Overflow Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 35
  28. 28. Αξιολόγηση του Συστήματος (5/5) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Η μέτρηση της P@10 σε κάθε ένα από τα 40 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 36
  29. 29. Συμπεράσματα • Η χρήση του CODEtransformer εξοικονομεί χρόνο και μειώνει το φόρτο εργασίας. • Η παρουσίαση ολοκληρωμένων τμημάτων κώδικα επισπεύδει την ανάπτυξη λογισμικού. • Η προεπεξεργασία και η ποιότητα των δεδομένων επηρεάζουν άμεσα την απόδοση του συστήματος. • Η αρχιτεκτονική των Μετασχηματιστών πραγματοποιεί βαθιά σημασιολογική ανάλυση. • Η χρήση της TS-SS εξασφαλίζει πραγματικά όμοιες ενσωματώσεις φυσικής γλώσσας και κώδικα. • Η διαδικτυακή εφαρμογή επιτρέπει γρήγορη και εύκολη πρόσβαση στο σύστημα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 37
  30. 30. Μελλοντική Εργασία • Η χρήση πραγματικών ερωτημάτων ως δεδομένα φυσικής γλώσσας, έναντι σχολιασμών κώδικα. • Η χρήση των ονομάτων των συναρτήσεων σε συνδυασμό με ερωτήματα φυσικής γλώσσας. • Η χρήση τεχνικών συμπίεσης Νευρωνικών Δικτύων. • Η βελτίωση του γραφικού περιβάλλοντος της διαδικτυακής εφαρμογής. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 38
  31. 31. Ευχαριστίες Ευχαριστώ θερμά: • τον κ. Ανδρέα Συμεωνίδη, για την εμπιστοσύνη που μου έδειξε. • τον κ. Θεμιστοκλή Διαμαντόπουλο, για τη στήριξη και την καθοδήγησή του. • την οικογένεια και τους στενούς μου φίλους, για τη βοήθεια και την κατανόησή τους. • εσάς, για την προσοχή σας. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 39
  32. 32. Ερωτήσεις Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 40

×