Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων"

Transcript

1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων Μιχαήλ Ν. Ζερβός Επιβλέποντες: Παναγιώτης Σταματόπουλος, Επίκουρος Καθηγητής Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια ΑΘΗΝΑ ΙΟΥΛΙΟΣ 2011

2

3 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων Μιχαήλ Ν. Ζερβός Α.Μ.: ΕΠΙΒΛΕΠΟΝΤΕΣ: Παναγιώτης Σταματόπουλος, Επίκουρος Καθηγητής Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια

4

5 ΠΕΡΙΛΗΨΗ Οι online περιοχές συζητήσεων (forum) αποτελούν ένα σημαντικό πόρο για πληροφορίες στο διαδίκτυο αφού περιέχουν γνώση, υπό μορφή δημοσιεύσεων, από εκατομμύρια χρηστές. Η πτυχιακή αυτή εργασία ασχολείται συγκεκριμένα με τα ζεύγη δημοσιεύσεων ερώτησης - απάντησης που εμφανίζονται σε fora. Παρουσιάζονται οι τελευταίες σχετικές επιστημονικές δημοσιεύσεις και η απαραίτητη θεωρία και αλγόριθμοι στο πεδίο αυτό. Η θεωρία αυτή χρησιμοποιείται για την δημιουργία ενός συστήματος με δύο λειτουργίες: α) την εξαγωγή γνώσης, με την μορφή ερωταποκρίσεων, από ένα forum και β) την παρακολούθηση του forum για εμφάνιση νέων ερωτήσεων και αυτόματη απάντηση αυτών. Αναλύεται ο τρόπος λειτουργίας του συστήματος και δοκιμάζεται σε πραγματικά δεδομένα. Πρόκειται για το πρώτο (στον βαθμό που είναι δυνατό να γνωρίζω) ολοκληρωμένο σύστημα αυτόματης απάντησης ερωτήσεων σε forum, καθώς και το πρώτο σύστημα αναγνώρισης ζευγών ερώτησης απάντησης στα Ελληνικά. Τα αποτελέσματα που προκύπτουν είναι ικανοποιητικά και αποδεικνύουν ότι μπορεί να υπάρξει πρακτική εφαρμογή του συστήματος. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Ανάκτηση Πληροφορίας, Επεξεργασία Φυσικής Γλώσσας ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: forum, ζεύγη ερωτήσεων απαντήσεων, εξόρυξη γνώσης, μηχανική μάθηση, αυτόματη απάντηση ερωτήσεων, παρόμοιες ερωτήσεις, SVM, αναγνώριση ερώτησης

6

7 ABSTRACT Web forums are an important resource on the web due to the rich information contributed by millions of users. Users post a large amount of questions and their respective answers every day. State of the art methods for mining those question - answer pairs, along with the theoretical background and algorithms are presented in this thesis. Also, a system that has two basic roles is proposed and implemented: a) It extracts question - answer pairs from existing posts in a web forum and b) it monitors the forum for new question posts and automatically provides an answer, based on the knowledge that has been extracted. The proposed system is thoroughly discussed and documented. It's applied on an existing web forum and the experimental results of each subsystem are presented. It is (to the best of my knowledge) the first integrated automatic question answering system for forums and the first question answer pairs detector for the Greek language. The experiments demonstrate the effectiveness of the proposed methods and prove that the system can be used in real scenarios. SUBJECT AREA: Information Retrieval, Natural Language Processing KEYWORDS: forum, question answer pairs, knowledge mining, machine learning, automatic question answering, similar questions, SVM, question detection

8

9 Στην οικογένειά μου

10

11 ΕΥΧΑΡΙΣΤΙΕΣ Θα ήθελα να ευχαριστήσω πρωτίστως τους επιβλέποντες καθηγητές μου κα. Ιζαμπώ Καράλη και κ. Παναγιώτη Σταματόπουλο για την βοήθεια και καθοδήγηση τους κατά την διάρκεια εκπόνησης αυτής της πτυχιακής εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τη Βιολέττα για την εθελοντική δουλειά της στο annotation των δεδομένων. Τέλος, ευχαριστώ την οικογένεια μου για την μόνιμη στήριξη, την βοήθεια και την αγάπη της καθ όλη την διάρκεια της ζωής μου.

12

13 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ ΕΙΣΑΓΩΓΗ Αντικείμενο της εργασίας Διάρθρωση της εργασίας ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ ΑΝΑΛΥΣΗΣ ΚΕΙΜΕΝΟΥ POS Tagging Stemming Vector Space Model TF-IDF (Term Frequency Inverse Document Frequency) Cosine Similarity Ευκλείδεια απόσταση Language Models Μονογραμμικό (Unigram) μοντέλο Ν-γραμμικό (n-gram) μοντέλο Εξομάλυνση Query Likelihood Language Model KL divergence Language Model Labeled sequential patterns ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ Εισαγωγή Μοντέλο k-πλησιέστερων γειτόνων Νευρωνικά Δίκτυα Perceptron Δίκτυα Πολλών Επιπέδων Μηχανές Διανυσμάτων Υποστήριξης (SVMs)... 50

14 3.4.1 Εύρεση βέλτιστου υπερεπιπέδου Μετασχηματισμός χώρου εισόδου ΣΧΕΤΙΚΗ ΒΙΒΛΙΟΓΡΑΦΙΑ Finding Question-Answer Pairs from Online Forums Αναγνώριση ερωτήσεων Αναγνώριση απαντήσεων Περισσότερες σχετικές επιστημονικές εργασίες Εξαγωγή γνώσης για chatbot από forums Αναγνώριση ερωτήσεων απαντήσεων σε συζητήσεις Αναγνώριση ευθέων και πλαγίων ερωτήσεων απαντήσεων σε συζητήσεις ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ Ανάλυση και επεξεργασία κειμένου Επεκτάσεις της κλάσης string Επεξεργασία κειμένου Stemmer Συλλογή έγγραφων Corpus Ομοιότητα συνημιτόνου σε συλλογή εγγράφων Βάση γνώσης Δομή Access Layer Εξόρυξη γνώσης από το forum Εξαγωγή δημοσιεύσεων και αποθήκευση τους Αναγνώριση ερωτήσεων Εύρεση ζευγών ερωτήσεων απαντήσεων Αποθήκευση στη βάση γνώσης Αντιμετώπιση νέων ερωτήσεων... 85

15 5.4.1 Forum Client Παρακολούθηση του forum Αναζήτηση στην βάση γνώσης Απάντηση της ερώτησης Εφαρμογή Annotation Εφαρμογή επεξεργασίας βάσης γνώσης ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ Μέτρα αποτελεσματικότητας Πειράματα και Αποτελέσματα Παρακολούθηση του forum Αναγνώριση ερωτήσεων Αναγνώριση ζευγών ερώτησης απάντησης ΜΕΛΛΟΝΤΙΚΕΣ ΚΑΤΕΥΘΥΝΣΕΙΣ ΠΑΡΑΡΤΗΜΑ ΟΡΟΛΟΓΙΑ ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΝΑΦΟΡΕΣ

16

17 ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα Σύνολο εκπαίδευσης και νέο αντικείμενο Εικόνα 3.2-3ΝΝ Εικόνα Νευρωνικό Δίκτυο 3 επιπέδων Εικόνα Νευρώνας Εικόνα (α) Βηματική (β) Σιγμοειδής Εικόνα 3.6 Perceptron Εικόνα Μη γραμμικά διαχωρίσιμες κλάσεις Εικόνα Βέλτιστος διαχωριστής και διανύσματα υποστήριξης Εικόνα (α) Χώρος εισόδου, (β) Μετασχηματισμένος χώρος χαρακτηριστικών Εικόνα Kernel matrix Εικόνα 4.1 Γράφος Εικόνα Διάγραμμα λειτουργίας Εικόνα Διάγραμμα κλάσης Document Εικόνα Διάγραμμα κλάσης Corpus Εικόνα Διάγραμμα βάσης γνώσης Εικόνα Διάγραμμα βάσης Posts Database Εικόνα Διαγράμματα κλάσεων AnswerDetector και AnswerDetectorSVM Εικόνα HTTP GET Request / Response Εικόνα HTTP POST Request Εικόνα Διάγραμμα κλάσης HttpClient Εικόνα Διάγραμμα interface IForumClient Εικόνα Διάγραμμα κλάσης Post Εικόνα Διάγραμμα κλάσης Thread Εικόνα Live HTTP Headers Screenshot Εικόνα Διάγραμμα κλάσης VBulletinMonitor Εικόνα Διάγραμμα κλάσης QuestionSearcher... 95

18 Εικόνα Στιγμιότυπο εφαρμογής Annotation (Εμφάνιση νημάτων) Εικόνα Στιγμιότυπο εφαρμογής Annotation (Εμφάνιση δημοσιεύσεων) Εικόνα Αποτελέσματα αναγνώρισης ερωτήσεων Εικόνα Αποτελέσματα αναγνώρισης ζευγών ερώτησης - απάντησης

19 ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας POS Tags Πίνακας Σύνολο εκπαίδευσης Πίνακας TF-IDF πίνακας για μια συλλογή κειμένων Πίνακας Χαρακτηριστικά του Question - Answer Pairing SVM Πίνακας Πιθανές καταστάσεις ταξινόμησης Πίνακας Αποτελέσματα αναγνώρισης ερωτήσεων Πίνακας Αποτελέσματα αναγνώρισης ζευγών ερώτησης - απάντησης

20

21 ΚΑΤΑΛΟΓΟΣ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος Perceptron Αλγόριθμος Υπολογισμός διανύσματος TF-IDF για μια επερώτηση Αλγόριθμος Υπολογισμός πίνακα TF-IDF μιας συλλογής κειμένων Αλγόριθμος 5.3 Παρακολούθηση forum... 93

22

23 ΠΡΟΛΟΓΟΣ Αυτή η πτυχιακή εργασία αποτελεί το τελευταίο πόνημα του συγγραφέα για την λήψη του πτυχίου του. Η συγγραφή της εργασίας έλαβε χώρα στου Παπάγου της Αθήνας κατά την διάρκεια του ακαδημαϊκού έτους Κατά την διάρκεια των σπουδών αλλά και της πρακτικής μου εργασίας διαπίστωσα ότι η μηχανική μάθηση έχει μεγάλη εφαρμογή σε πολλούς τομείς της πληροφορικής. Θέλοντας να εμπλουτίσω τις γνώσεις μου και να αποκτήσω κάποια εμπειρία στην περιοχή αυτή, αποφάσισα να ασχοληθώ με ένα ανάλογο θέμα. Επίσης, αναζητούσα ένα μη τετριμμένο θέμα που η λύση του θα αποτελούσε πρόκληση. Έχοντας αλλάξει ορισμένες φορές θέμα, τελικώς κατέληξα σε αυτό μετά από πρόταση του καθηγητή μου, κου. Σταματόπουλου. Το συγκεκριμένο θέμα με ενθουσίασε καθώς συνδύαζε αυτά που έψαχνα ενώ ταυτόχρονα απαιτούσε αρκετή συγγραφή κώδικα, κάτι που μου αρέσει ιδιαίτερα.

24

25 1. ΕΙΣΑΓΩΓΗ 1.1 Αντικείμενο της εργασίας Οι online περιοχές συζήτησης (forum) αποτελούν κομμάτι του παγκόσμιου ιστού εδώ και πολλά χρόνια. Αντίστοιχη λειτουργικότητα υπήρχε πριν ακόμα δημιουργηθεί το διαδίκτυο, στα Bulletin Board Systems. Ο αριθμός των μηνυμάτων που δημοσιεύονται σε διάφορα fora είναι τεράστιος. Αν και ο ακριβής αριθμός δεν μπορεί να υπολογιστεί, αρκεί να δει κανείς τα ακόλουθα δύο στατιστικά για να καταλάβει το μέγεθος. Μόνο τα 4 μεγαλύτερα fora στο διαδίκτυο έχουν σχεδόν 3 δισεκατομμύρια δημοσιεύσεις 1 και κάποια forum (όπως το 2channel) δέχονται καθημερινά πάνω από 1 εκατομμύριο δημοσιεύσεις. Όμως όλη αυτή η γνώση παραμένει σχεδόν ανεκμετάλλευτη καθώς έχει γίνει σχετικά μικρή ερευνητική δουλειά για την αξιοποίηση της. Επίσης, παρατηρείται το φαινόμενο να εμφανίζονται οι ίδιες ερωτήσεις, και κατά συνέπεια απαντήσεις, πολλές φορές σε ένα forum (ακόμα και στο ίδιο νήμα). Λαμβάνοντας υπ όψιν αυτά τα δύο γεγονότα, σκοπός της εργασίας αυτής είναι να εκμεταλλευτεί την υπάρχουσα γνώση ενός forum και να παρέχει άμεσα και αυτοματοποιημένα απαντήσεις σε νέες ερωτήσεις που δημοσιεύονται. Έτσι, ο χρήστης που δημοσιεύει την ερώτηση μπορεί να πάρει γρήγορα απάντηση, ενώ δεν χρειάζεται κάποιος άλλος χρήστης να δώσει την ίδια απάντηση για πολλοστή φορά. Το πρόβλημα αυτό μπορεί να χωριστεί σε δύο φάσεις. Αρχικά πρέπει να αναγνωριστούν και να εξαχθούν τα ζεύγη ερωτήσεων απαντήσεων που υπάρχουν ήδη δημοσιευμένα. Στην συνέχεια, πρέπει να παρακολουθείται το forum και μόλις εμφανιστεί μια καινούρια ερώτηση που έχει ήδη απαντηθεί, να γίνεται αυτόματα η κατάλληλη δημοσίευση. Όπως είναι κατανοητό πρέπει να αντιμετωπιστούν μια σειρά από προβλήματα, αλγοριθμικής και τεχνικής φύσης, τα οποία παρουσιάζονται παρακάτω. Αλγοριθμικά προβλήματα: Αναγνώριση ερωτήσεων Αναγνώριση ζευγών ερωτήσεων απαντήσεων 1 Πηγή Ιουλίου 2011 Μιχαήλ Ν. Ζερβός 25

26 Ταύτιση καινούριας ερώτησης με κάποια από τις υπάρχουσες Ανάλυση κειμένου Τεχνικά προβλήματα: Δημιουργία βάσης γνώσης των ερωτήσεων απαντήσεων και εισαγωγές / αναζητήσεις σε αυτήν «Διάβασμα» του forum Εξαγωγή και αποθήκευση των δημοσιεύσεων Παρακολούθηση του forum για νέες ερωτήσεις Δημοσίευση απάντησης Γενικά, το πρόβλημα της αναγνώρισης ευθέων ερωτήσεων σε κείμενα (βιβλία, άρθρα, κλπ), δεν αποτελεί ιδιαίτερη πρόκληση. Όταν όμως χειριζόμαστε περιεχόμενο δημοσιευμένο από χρήστες σε φόρουμ ή κοινωνικά δίκτυα, το πρόβλημα γίνεται δυσκολότερο. Η χρήση άτυπης γλώσσας, συντομεύσεων και η απουσία ερωτηματικών είναι ορισμένες απ τις δυσκολίες που πρέπει να λάβει κανείς υπ όψιν του όταν προσπαθεί να λύσει το πρόβλημα. Οι ίδιες δυσκολίες εμφανίζονται και κατά την αναγνώριση των ζευγαριών ερώτησης απάντησης, ένα πρόβλημα που από μόνο του αποτελεί ιδιαίτερη πρόκληση. Το σύστημα που παρουσιάζεται, δημιουργήθηκε με σκοπό την εφαρμογή του στο forum του μαθήματος 1 «Εισαγωγή στον Προγραμματισμό» του τμήματος. Για την υλοποίηση του μεγαλύτερου μέρους της εργασίας επιλέχθηκε η γλώσσα C# και το.net Framework 4. Επίσης, μέρος του κώδικα γράφηκε σε C++ και χρησιμοποιήθηκαν διάφορες βιβλιοθήκες που αναφέρονται στο αντίστοιχο κεφάλαιο της υλοποίησης. Τα διαγράμματα και τα πειράματα που εμφανίζονται στο κεφάλαιο της θεωρίας υλοποιήθηκαν σε Matlab. Τέλος, ως μηχανή βάσεων δεδομένων χρησιμοποιήθηκε ο SQL Server Για την εκτέλεση των προγραμμάτων απαιτείται.net 4 και SQL Server Ο κώδικας μπορεί να βρεθεί στο παράρτημα, στο τέλος της εργασίας. 1 Μιχαήλ Ν. Ζερβός 26

27 1.2 Διάρθρωση της εργασίας Η υπόλοιπη εργασία ξεκινάει με το κεφάλαιο 2 που έχει το απαραίτητο θεωρητικό υπόβαθρο για ένα σύνολο θεμάτων που σχετίζονται με την ανάλυση κειμένου και εξαγωγή γνώσης από αυτό. Στην συνέχεια, στο κεφάλαιο 3, περιγράφονται τεχνικές της μηχανικής μάθησης που χρησιμοποιούνται τόσο σε αυτή την εργασία αλλά και στις σχετικές επιστημονικές δημοσιεύσεις. Στο κεφάλαιο 4 παρουσιάζονται οι πιο σύγχρονες τεχνικές που έχουν προταθεί για την αντιμετώπιση των αλγοριθμικών προβλημάτων που εμφανίζονται στην εργασία. Στο 5 ο κεφάλαιο γίνεται αναλυτική περιγραφή του συστήματος που υλοποιήθηκε για την επίλυση του προβλήματος. Στο κεφάλαιο 5.5 η μέθοδος εφαρμόζεται σε πραγματικά δεδομένα και παρουσιάζονται τα αποτελέσματα. Τέλος, στο 7 ο κεφάλαιο υπάρχουν ορισμένες πιθανές μελλοντικές κατευθύνσεις για την περεταίρω βελτίωση της απόδοσης της μεθόδου. Στο παράρτημα βρίσκεται μέρος του κώδικα που συγγράφηκε στα πλαίσια της πτυχιακής. Μιχαήλ Ν. Ζερβός 27

28 Μιχαήλ Ν. Ζερβός 28

29 2. ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ ΑΝΑΛΥΣΗΣ ΚΕΙΜΕΝΟΥ Η πτυχιακή αυτή βασίζεται σε μεγάλο βαθμό στην ανάλυση κειμένων και εξόρυξη πληροφορίας από αυτά. Στο κεφάλαιο αυτό θα παρουσιαστούν οι βασικές έννοιες και μέθοδοι ανάλυσης κειμένου, οι οποίες εμφανίζονται στο υπόλοιπο της πτυχιακής. 2.1 POS Tagging Το POS Tagging (Part-of-Speech Tagging) είναι η διαδικασία κατά την οποία αναγνωρίζεται τι μέρος του λόγου (ουσιαστικό, ρήμα, επίθετο, επίρρημα, αντωνυμία, κλπ) είναι κάθε λέξη ενός κειμένου. Η διαδικασία αυτή βασίζεται τόσο στην ερμηνεία των λέξεων όσο και στο γενικότερο πλαίσιο μέσα στο οποίο αυτές χρησιμοποιούνται. Στην βιβλιογραφία υπάρχουν διάφοροι τρόποι για να επιτευχθεί το POS Tagging βασισμένοι σε μεθόδους μηχανικής μάθησης, σε κρυφά Μαρκοβιανά μοντέλα, σε μεθόδους δυναμικού προγραμματισμού, κ.α. Παρακάτω (Πίνακας 2.1) φαίνεται ένα βασικό υποσύνολο των μερών του λόγου και ο αντίστοιχος συμβολισμός του. Για περισσότερες πληροφορίες σχετικά με την αναγνώριση των συντακτικών μερών μιας πρότασης ο αναγνώστης παραπέμπεται στο [1]. DT NN IN Προσδιορισμός Ουσιαστικό Πρόθεση PRP Προσωπική αντωνυμία VB RB Ρήμα Επίρρημα Πίνακας POS Tags 2.2 Stemming Η αναγνώριση των ριζών των λέξεων (stemming) είναι μια τεχνική που εφαρμόζεται κατά την προ-επεξεργασία του κειμένου και μπορεί να βελτιώσει την απόδοση των αλγορίθμων εξόρυξης γνώσης. Κατά την διαδικασία του stemming, αναγνωρίζονται οι ρίζες των λέξεων ανεξαρτήτως πτώσης ή χρόνου. Για παράδειγμα οι λέξεις Μιχαήλ Ν. Ζερβός 29

30 «τηλέφωνα», «τηλεφωνώ», «τηλέφωνο», «τηλεφώνησαν» θα αντιστοιχούν στην ίδια ρίζα «τηλεφων». Έτσι μπορεί να μειωθεί δραστικά ο αριθμός των λέξεων στο λεξικό και η διαστασιμότητα (dimensionality) της αναπαράστασης του κειμένου όπως παρουσιάζεται αμέσως μετά. Επίσης, έχοντας εξαλείψει τις διαφορετικές πτώσεις ή χρόνους από τις λέξεις, ο υπολογισμός της ομοιότητας μεταξύ κειμένων μπορεί να είναι καλύτερος. 2.3 Vector Space Model Μια συλλογή κειμένων (corpus) αποτελείται από έναν αριθμό εγγραφών. Το λεξικό του είναι το σύνολο των λέξεων που περιέχονται στα κείμενα αυτού. Ορισμένες φορές από το λεξικό αφαιρούνται λέξεις όπως «και», «το», κλπ (αυτές αναφέρονται ως stopwords). Το μοντέλο διανυσματικού χώρου (vector space model) είναι ένα αλγεβρικό μοντέλο αναπαράστασης κειμένου (στην δικιά μας περίπτωση) μέσω διανυσμάτων. Έτσι μπορούμε να γράψουμε ένα κείμενο ως:. Η κάθε διάσταση αντιστοιχεί σε έναν ξεχωριστό όρο (term). Ο όρος συνήθως είναι μια λέξη ή σπανιότερα μια φράση. Αν αυτός ο όρος συναντάται στο κείμενο τότε η αντίστοιχη τιμή είναι μη-μηδενική, διαφορετικά είναι μηδέν. Αν επιλεγούν λέξεις ως όροι τότε ο αριθμός των διαστάσεων του διανύσματος είναι ίσος με τον αριθμό των όρων στο λεξικό. Υπάρχουν διάφοροι τρόποι για να υπολογιστούν αυτές οι τιμές (weights). Ο πιο απλός τρόπος είναι:, γνωστές ως βάρη { Μια εναλλακτική σε αυτή την απλοϊκή προσέγγιση είναι να χρησιμοποιηθεί το πλήθος των εμφανίσεων (term count) του όρου στο κείμενο, δηλαδή: TF-IDF (Term Frequency Inverse Document Frequency) Ένα απ τα πιο γνωστά και συχνά χρησιμοποιούμενα σχήματα για των υπολογισμό των βαρών είναι το TF-IDF (Term Frequency Inverse Document Frequency). Πρόκειται για ένα μέτρο το οποίο υπολογίζει πόσο σημαντικός είναι ένας όρος για ένα κείμενο μέσα σε μια συλλογή κειμένων. Η σημαντικότητα αυξάνει όσο περισσότερο εμφανίζεται ο Μιχαήλ Ν. Ζερβός 30

31 όρος μέσα στο κείμενο αλλά αυτό αντισταθμίζεται από την συχνότητα εμφάνισης του στα υπόλοιπα κείμενα της συλλογής. Για παράδειγμα, έστω μια συλλογή κειμένων με θέματα σχετικά με τον προγραμματισμό και ένα κείμενο της συλλογής που πραγματεύεται την μηχανική μάθηση. Ο όρος «αλγόριθμος» μπορεί να εμφανίζεται πολλές φορές στο κείμενο αυτό, όμως δεν πρέπει να θεωρηθεί ιδιαίτερα σημαντικός για αυτό το κείμενο αφού εμφανίζεται αρκετά και σε πολλά άλλα κείμενα της συλλογής. Αντίθετα ο όρος «νευρωνικό», ο οποίος επίσης εμφανίζεται πολλές φορές στο εν λόγω κείμενο, δεν συναντάται πολύ στα υπόλοιπα κείμενα της συλλογής. Οπότε αυτός ο όρος θα έχει ένα μεγαλύτερο TF-IDF βάρος. Σε πιο αυστηρή διατύπωση το TF-IDF μπορεί να γραφτεί ως εξής: Όπου είναι η συχνότητα εμφάνισης (term frequency) του όρου στο κείμενο. Πρόκειται για το πλήθος των εμφανίσεων (term count) του όρου κανονικοποιημένο ως προς το μέγεθος του κειμένου. Το μέγεθος του κειμένου είναι το άθροισμα του πλήθος όλων των όρων που εμφανίζονται σε αυτό και συμβολίζεται με. Η κανονικοποίηση γίνεται διότι μεγαλύτερα κείμενα αναμένεται να έχουν περισσότερες εμφανίσεις κάποιου όρου. Ο τύπος για να υπολογιστεί η συχνότητα εμφάνισης είναι: Το είναι η αντίστροφη συχνότητα εγγράφου (inverse document frequency) και είναι ένα μέτρο της γενικής σημαντικότητας του όρου στην συλλογή. Υπολογίζεται διαιρώντας το πλήθος των εγγράφων στην συλλογή ( μέγεθος του ), με τον πλήθος των εγγράφων που περιέχουν τον όρο και παίρνοντας τον λογάριθμο αυτής της ποσότητας. { } Για να αποφύγουμε την διαίρεση με το μηδέν όταν ένας όρος δεν συναντάται σε κανένα κείμενο, προσθέτουμε 1 στον παρανομαστή. Όπως είναι εμφανές από τον τύπο για να έχει ένας όρος σε ένα κείμενο μεγάλο σκορ TF-IDF πρέπει να εμφανίζεται πολλές φορές σε αυτό το κείμενο και λίγες στα υπόλοιπα κείμενα της συλλογής. Μιχαήλ Ν. Ζερβός 31

32 Έστω μια συλλογή κειμένων με κείμενα. Σε 50 από αυτά εμφανίζεται ο όρος «υπολογιστής». Σε ένα συγκεκριμένο κείμενο 100 λέξεων, ο όρος «υπολογιστής» υπάρχει 5 φορές. Μπορούμε, λοιπόν, να υπολογίσουμε την συχνότητα εμφάνισης του όρου και την αντίστροφη συχνότητα εγγράφων. Οπότε Cosine Similarity Η ομοιότητα συνημίτονων (cosine similarity) είναι μια μετρική της ομοιότητας μεταξύ δύο διανυσμάτων, η οποία συχνά χρησιμοποιείται για την σύγκριση δύο εγγράφων ή μιας επερώτησης (query) και ενός εγγράφου. Ουσιαστικά πρόκειται για τον υπολογισμό του συνημίτονου της γωνίας των δύο διανυσμάτων. Αυτό κυμαίνεται από -1 έως 1. Στην περίπτωση μας όμως που χρησιμοποιούνται τα TF-IDF ως συνιστώσες στα διανύσματα οι τιμές κυμαίνονται από 0 έως 1. Το 0 σημαίνει καμία συσχέτιση μεταξύ των κειμένων και το 1 απόλυτη ταύτιση. Έστω δύο διανύσματα. Το συνημίτονο της γωνίας μεταξύ τους μπορεί, ως γνωστόν, να υπολογιστεί με τον τύπο: Στην περίπτωση που θέλει κανείς να μετρήσει την ομοιότητα μεταξύ δύο κείμενων ή επερώτησης και κειμένου, αρκεί να χρησιμοποιήσει ως διανύσματα τις αναπαραστάσεις των κειμένων με κάποιο βάρος όπως αυτά περιγράφηκαν παραπάνω. Για τον έλεγχο της ομοιότητας δύο εγγράφων με βάση το σκορ TF-IDF (αντίστοιχα μπορεί απλά να χρησιμοποιηθεί μόνο το term frequency ή το term count), ο τύπος γίνεται: Αντίστοιχα μπορεί κανείς να συγκρίνει μια επερώτηση (query) με ένα κείμενο της συλλογής. Πρώτα δημιουργείται ένα διάνυσμα για την επερώτηση, ίδιας διάστασης με αυτά των κειμένων. Οι τιμές του διανύσματος υπολογίζονται με τον ίδιο τρόπο όπως αυτές των κειμένων και στην συνέχεια υπολογίζεται η ομοιότητα με το κείμενο. Υπολογίζοντας την ομοιότητα ενός query με κάθε κείμενο μπορούν να εμφανιστούν τα πιο σχετικά κείμενα για αυτή την αναζήτηση. Μιχαήλ Ν. Ζερβός 32

33 2.3.3 Ευκλείδεια απόσταση Η ευκλείδεια απόσταση μεταξύ δύο εγγράφων με βάση το term count (αντίστοιχα μπορεί να χρησιμοποιηθεί το TF-IDF σκορ) δίνεται από τον τύπο: 2.4 Language Models Τα γλωσσικά μοντέλα είναι μια εναλλακτική προσέγγιση (σε σχέση με το Vector Space μοντέλο) στην αναπαράσταση εγγράφων. Ένα στατιστικό γλωσσικό μοντέλο (language model) μας λέει πόσο πιθανό είναι να συναντήσουμε μια ακολουθία λέξεων σε ένα έγγραφο. Ουσιαστικά ορίζει μια κατανομή πιθανοτήτων σε ένα σύνολο από ακολουθίες λέξεων Μονογραμμικό (Unigram) μοντέλο Το πιο απλό τέτοιο μοντέλο είναι το μονογραμμικό (unigram model) στο οποίο αντιστοιχίζεται μια πιθανότητα σε κάθε λέξη του λεξικού και θεωρεί ότι η κάθε λέξη είναι ανεξάρτητη από τις υπόλοιπες. Οπότε η πιθανότητα να εμφανιστεί π.χ. η ακολουθία είναι. Γενικά η πιθανότητα να εμφανιστεί μια φράση λέξεων είναι. Ένα τέτοιο μοντέλο που δεν λαμβάνει υπ όψιν του τις σχέσεις μεταξύ των λέξεων (όπως ακριβώς και το Vector Space Model) λέμε ότι είναι ένα bag-of-words μοντέλο. Για ένα κείμενο η πιθανότητα μιας λέξης μπορεί να υπολογιστεί ως όπου είναι ο αριθμός των εμφανίσεων της λέξης στο κείμενο και ο συνολικός αριθμός λέξεων στο κείμενο Ν-γραμμικό (n-gram) μοντέλο Αντίστοιχα ένα 2-γραμμικό μοντέλο αναθέτει πιθανότητες σε κάθε λέξη δεδομένης της προηγούμενης της, δηλαδή. Έτσι η πιθανότητα να εμφανιστεί μια ακολουθία λέξεων σε ένα έγγραφο είναι: Μιχαήλ Ν. Ζερβός 33

34 Και όπως είναι εμφανές ένα n-γραμμικό μοντέλο αναθέτει πιθανότητες με βάση τις προηγούμενες λέξεις. Πρόκειται δηλαδή για ένα Μαρκοβιανό μοντέλο - τάξης. Η πιθανότητα να εμφανιστεί μια ακολουθία λέξεων σε ένα έγγραφο είναι: Για παράδειγμα σε ένα 3-γραμμικό μοντέλο ενός κειμένου η πιθανότητα να εμφανιστεί η έκφραση E = «Η Java είναι γλώσσα προγραμματισμού» υπολογίζεται ως εξής: Για ένα κείμενο, το οποίο περιέχει στο λεξικό του διαφορετικές λέξεις, η πιθανότητα εμφάνισης μια λέξης δεδομένων των προηγούμενων λέξεων μπορεί να υπολογιστεί από τον τύπο: ( ), όπου ο είναι το πλήθος των εμφανίσεων της ακολουθίας. Όπως είναι αντιληπτό για ένα κείμενο με λεξικό που περιέχει διαφορετικές λέξεις ο συνολικός αριθμός n-γραμμάτων που θα μπορούσαν να υπάρξουν είναι. Όμως μέσα στο κείμενο θα εμφανίζονται πολύ λιγότερα από αυτά με αποτέλεσμα ένας πολύ μεγάλος αριθμός n-γραμμάτων να αντιστοιχείται με πιθανότητα 0. Αν για παράδειγμα σε μια αναζήτηση πάνω στο κείμενο εμφανίζεται ένα από αυτά τα n-γράμματα που έχουν μηδενική πιθανότητα, τότε λόγω του γινομένου το αποτέλεσμα θα είναι 0. Επειδή δεν θέλουμε το μοντέλο να δείχνει όλα αυτά τα n- γράμματα ως απίθανα, χρειάζεται να ενσωματωθεί κάποια εξομάλυνση (smoothing) στον υπολογισμό των πιθανοτήτων Εξομάλυνση Ο πιο απλός τρόπος είναι η «συν 1» εξομάλυνση (add-one smoothing ή αλλιώς Laplace smoothing) κατά την οποία προστίθεται 1 στην μέτρηση κάθε n-γράμματος. Οπότε η πιθανότητα εμφάνισης ενός n-γράμματος γίνεται: ( ) ( ) ( ) όπου το λεξικό της συλλογής των κειμένων. Μιχαήλ Ν. Ζερβός 34

35 Μια λίγο πιο περίπλοκη μέθοδος εξομάλυνσης είναι αυτή της γραμμικής παρεμβολής (linear interpolation smoothing). Αυτή μπορεί να συνδυάσει μονογραμμικά, 2-γραμμικά και 3-γραμμικά μοντέλα. Με βάση αυτή, η εκτίμηση πιθανότητας ορίζεται ως: Όπου και οι παράμετροι μπορούν να είναι σταθερές ή να προκύπτουν από εκπαίδευση. Εκτενέστερη ανάλυση και περισσότερες τεχνικές εξομάλυνσης για γλωσσικά μοντέλα υπάρχουν στην δημοσίευση [2] Query Likelihood Language Model Το γλωσσικό μοντέλο Query Likelihood χρησιμοποιείται κυρίως στην περιοχή της ανάκτησης πληροφορίας (Information Retrieval). Με βάση αυτό το μοντέλο, για κάθε έγγραφο δημιουργείται ένα γλωσσικό μοντέλο, όπως περιγράφηκε προηγουμένως. Χρησιμοποιώντας αυτά τα γλωσσικά μοντέλα μπορεί να υπολογιστεί η πιθανότητα κάθε εγγράφου δεδομένης μιας ερώτησης. Αυτό μπορεί να ερμηνευτεί ως η πιθανότητα συσχέτισης ενός εγγράφου με την δεδομένη ερώτηση. Μπορεί, λοιπόν, κανείς να χρησιμοποιήσει αυτές τις πιθανότητες για να κατατάξει τα έγγραφα με σειρά σχετικότητας με την ερώτηση. Η πιθανότητα ενός εγγράφου δεδομένης μιας ερώτησης μπορεί να γραφτεί χρησιμοποιώντας τον τύπο του Bayes:. Η πιθανότητα της ερώτησης είναι η ίδια για κάθε έγγραφο οπότε μπορεί να παραλειφθεί. Επίσης, αν θεωρηθεί ότι η κατανομή των εγγραφών είναι ομοιόμορφη, μπορεί επίσης να παραληφθεί ο όρος. Άρα τελικά:. Όμως η πιθανότητα της ερώτησης δεδομένου του εγγράφου (δηλαδή η πιθανότητα εμφάνισης της ερώτησης στο έγγραφο) μπορεί να υπολογιστεί από το γλωσσικό μοντέλο, όπως περιγράφηκε παραπάνω. Αν για παράδειγμα χρησιμοποιείται το n-γραμμικό μοντέλο χωρίς εξομάλυνση, τότε για μια ερώτηση : Μιχαήλ Ν. Ζερβός 35

36 Για περισσότερες πληροφορίες σχετικά με το μοντέλο ο αναγνώστης παραπέμπεται στο [3] KL divergence Language Model Η απόκλιση KL (KL-divergence; Kullback Leibler divergence) είναι ένα μη-συμμετρικό μέτρο στην στατιστική που ποσοτικοποιεί την διαφορά σε bits μεταξύ δύο κατανομών πιθανοτήτων και. Η KL υπολογίζει τον αναμενόμενο επιπλέον αριθμό bits που χρειάζεται να κωδικοποιηθούν δείγματα της όταν αυτή προσεγγίζεται από την (όταν χρησιμοποιείται μια βάση που προέρχεται από το ). Η αναφέρεται ως η «πραγματική» κατανομή των δεδομένων και η είναι ένα μοντέλο ή προσέγγιση της. Η KL μεταξύ δύο διακριτών κατανομών και ορίζεται ως εξής: Όπως προ-αναφέρθηκε (και φαίνεται και από τον τύπο) η KL-divergence είναι μη συμμετρική, το οποίο σημαίνει ότι. Από τον ορισμό ισχύει ότι. Όταν οι δύο κατανομές ταυτίζονται. Επίσης για τον υπολογισμό της KL ορίζεται ότι και. Μπορεί κανείς να χρησιμοποιήσει την KL-απόκλιση για να μετρήσει πόσο διαφέρει μια ερώτηση από ένα έγγραφο. Αφού η KL μετράει την απόκλιση μεταξύ των κατανομών, όσο μικρότερη είναι η τιμή τόσο πιο σχετική θα είναι η ερώτηση και το έγγραφο. Αρχικά, δημιουργούνται γλωσσικά μοντέλα (όπως έχει περιγραφεί) για την ερώτηση και το έγγραφο και στην συνέχεια χρησιμοποιούνται οι κατανομές των μοντέλων για να καθοριστεί η διαφορά μεταξύ τους. Αναλυτικά αυτή η διαδικασία παρουσιάζεται στο [4]. Ο τύπος που την υπολογίζει είναι: ) Εξίσωση 2.1 Έχει παρατηρηθεί ότι μέθοδοι σύγκρισης μοντέλων (όπως η KL) δίνουν καλύτερα αποτελέσματα από την μέθοδο Query Likelihood και από μετρικές όπως το cosine similarity. 1 Σελίδες Μιχαήλ Ν. Ζερβός 36

37 2.5 Labeled sequential patterns Ας θεωρήσουμε αρχικά τους παρακάτω ορισμούς. : ένα σύνολο αντικειμένων, : ένα σύνολο από κλάσεις (labels) μια βάση δεδομένων που περιέχει ζεύγη της μορφής όπου (ακολουθία αντικειμένων) και. Ένα labeled sequential pattern (LSP) είναι μια συνεπαγωγή της μορφής όπου είναι μια ακολουθία και ένα label. Συμβολίζουμε την ακολουθία και την αντίστοιχη κλάση. Λέμε ότι μια ακολουθία αν και μόνο αν: περιέχεται σε μια ακολουθία 1. Υπάρχουν ακέραιοι αριθμοί τέτοιοι ώστε και 2. Η απόσταση μεταξύ δύο γειτονικών αντικειμένων και στην είναι μικρότερη από ένα κατώφλι, δηλαδή. Συμβολίζουμε την σχέση αυτή ως και μπορούμε εύκολα να παρατηρήσουμε ότι δεν απαιτείται η να εμφανίζεται συνεχόμενα μέσα στην εκτός αν. Παράδειγμα Έστω οι ακολουθίες και και. Εύκολα παρατηρεί κανείς ότι αφού ισχύουν οι αναγκαίες συνθήκες για Αν όμως είχαμε τότε θα παραβιαζόταν η 2 η συνθήκη: και συνεπώς η δεν θα περιείχε την. Όμοια λέμε ότι ένα labeled sequential pattern περιέχεται σε ένα LSP και συμβολίζουμε με αν και μόνο αν: 1., δηλαδή η ακολουθία του περιέχεται σε αυτήν του 2., δηλαδή ανήκουν στην ίδια κλάση Μιχαήλ Ν. Ζερβός 37

38 Ένας ακόμα ορισμός που είναι χρήσιμος για την αναγνώριση των ερωτήσεων είναι αυτός του confidence ενός LSP. Για να ορίσουμε την εμπιστοσύνη χρειαζόμαστε πρώτα την έννοια του support. Το support ενός LSP συμβολίζεται με και αναφέρεται στο ποσοστό των ζευγών στην βάση τα οποία περιέχουν το, δηλαδή: Η πιθανότητα ενός LSP (δηλαδή του ) να είναι αληθές ονομάζεται confidence του, συμβολίζεται ως και υπολογίζεται με τον τύπο: Το support δείχνει το πόσο γενικό είναι ένα LSP και το confidence είναι μια μετρική για την ικανότητα πρόβλεψης της κλάσης μέσω του. Όσο μεγαλύτερο είναι το confidence ενός pattern, τόσο καλύτερα μπορεί να ξεχωρίσει τις κλάσεις (labels). Λέμε ότι ένα LSP είναι πιο σημαντικό από ένα αν: ή Παράδειγμα Έστω ότι η βάση αποτελείται από τα ζεύγη: και δύο LSPs: και Θεωρούμε ότι. Το support και το confidence κάθε LSP υπολογίζεται ως εξής: Μιχαήλ Ν. Ζερβός 38

39 Οπότε προκύπτει ότι το μεγαλύτερο confidence. είναι μια καλύτερη ένδειξη για την κλάση Q, αφού έχει Για την εξόρυξη LSPs από μια βάση, μπορούν να χρησιμοποιηθούν διάφοροι αλγόριθμοι επιβάλλοντας ένα ελάχιστο κατώφλι στο confidence ή/και στο support. Η παρουσίαση αυτών των αλγορίθμων ξεφεύγει απ τα όρια αυτής της εργασίας. Περισσότερες πληροφορίες υπάρχουν στο [5]. Μιχαήλ Ν. Ζερβός 39

40 Μιχαήλ Ν. Ζερβός 40

41 3. ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ Μεγάλο μέρος αυτής της εργασίας, αλλά και των σχετικών δημοσιεύσεων που περιγράφονται στο κεφάλαιο 4, βασίζεται στη Μηχανική Μάθηση (Machine Learning). Σε αυτό το κεφάλαιο θα παρουσιαστεί συνοπτικά η θεωρία που είναι απαραίτητη για την καλύτερη κατανόηση της εργασίας αυτής. 3.1 Εισαγωγή Η Μηχανική Μάθηση είναι ένας τομέας της Τεχνητής Νοημοσύνης που ασχολείται με προγράμματα που έχουν τη δυνατότητα μάθησης. Σε ορισμένα προβλήματα, ένα πρόγραμμα που μαθαίνει μέσα από την εμπειρία μπορεί να δώσει πολύ καλύτερα αποτελέσματα από ένα πρόγραμμα που προσπαθεί να λύσει το πρόβλημα «συμβατικά». Η γκάμα των προβλημάτων που μπορούν να αντιμετωπιστούν με τεχνικές μηχανικής μάθησης είναι μεγάλη. Για παράδειγμα χρησιμοποιείται εκτενώς στην επεξεργασία φυσικής γλώσσας, στην αναγνώριση προτύπων, στις μηχανές αναζήτησης, στη μηχανική όραση, στη διάγνωση ασθενειών, στα ηλεκτρονικά παιχνίδια, στην βιο-πληροφορική και σε διάφορους άλλους τομείς. Έχοντας τόσο μεγάλο πεδίο εφαρμογής, είναι λογικό να έχει αναπτυχθεί σε μεγάλο βαθμό η ερευνητική περιοχή της Μηχανικής Μάθησης. Ένας ορισμός που δόθηκε από τον Mitchell (1997) για τη Μηχανική Μάθηση είναι ο ακόλουθος: «Ένα πρόγραμμα υπολογιστή θεωρείται ότι μαθαίνει από την εμπειρία σε σχέση με μια κατηγορία εργασιών και μια μετρική απόδοσης, αν η απόδοση του σε εργασίες της, όπως μετριούνται από την, βελτιώνονται με την εμπειρία». Το υπόλοιπο αυτού του κεφαλαίου θα περιοριστεί στο κομμάτι της θεωρίας που είναι απαραίτητο σε αυτή την εργασία. Για μια εκτενή παρουσίαση του τομέα της μηχανικής μάθησης ο αναγνώστης παραπέμπεται στο [6]. Στην εργασία αυτή μας ενδιαφέρει το ένα από τα τρία μέρη της μηχανικής μάθησης, αυτό της επιβλεπόμενης (supervised) μάθησης. Στην επιβλεπόμενη μάθηση, το πρόγραμμα προσπαθεί να μάθει μια συνάρτηση από παραδείγματα εισόδου εξόδου (σύνολο εκπαίδευσης) με σκοπό την χρήση αυτής της συνάρτησης για τον υπολογισμό της εξόδου σε οποιαδήποτε είσοδο. Μιχαήλ Ν. Ζερβός 41

42 Έστω το πρόβλημα της κατάταξης ενός ανθρώπου σε μια από τις κατηγορίες (class): άνδρα ( ) ή γυναίκα ( ). Άρα έχουμε το σύνολο των κλάσεων: Μπορούμε να περιγράψουμε (πολύ απλοϊκά) έναν άνθρωπο με τα εξής χαρακτηριστικά (features): Ύψος ( ) και βάρος ( ). Άρα μπορούμε να μοντελοποιήσουμε κάθε άνθρωπο ως ένα διάνυσμα αυτών των χαρακτηριστικών (input vector). Κάθε άνθρωπος μπορεί λοιπόν να περιγραφεί από το διάνυσμα χαρακτηριστικών και την κατηγορία στην οποία ανήκει: Έστω τώρα ότι έχουμε στην διάθεση μας αυτά τα δεδομένα για πέντε ανθρώπους και θέλουμε να εκπαιδεύσουμε ένα πρόγραμμα να ξεχωρίζει αν ένας άλλος άνθρωπος είναι άνδρας ή γυναίκα. Αυτά τα πέντε ζευγάρια εισόδου (input vector) εξόδου (class) αποτελούν το σύνολο εκπαίδευσης (training set) και φαίνονται στον παρακάτω πίνακα. Ύψος ( ) Βάρος ( ) Κατηγορία ( ) Γιώργος Άνδρας (M) Βιολέττα Γυναίκα (F) Νικόλας Άνδρας (M) Κωνσταντίνος Άνδρας (M) Αιμιλία Γυναίκα (F) Πίνακας Σύνολο εκπαίδευσης Σκοπός του προγράμματος μας είναι να δημιουργήσει έναν ταξινομητή (classifier) που θα αντιστοιχεί άλλους ανθρώπους σε μια από τις δύο κατηγορίες με βάση τη γνώση από το σύνολο εκπαίδευσης. Έστω ότι εμφανίζεται ένας καινούριος άνθρωπος (query) με input vector που πρέπει να ταξινομηθεί. Στην Εικόνα 3.1 φαίνεται μια γραφική αναπαράσταση του συνόλου εκπαίδευσης και του query. Με μπλε χρώμα φαίνονται οι άνδρες, με κόκκινο οι γυναίκες και με πράσινο ο που πρέπει να ταξινομηθεί. Μιχαήλ Ν. Ζερβός 42

43 Εικόνα Σύνολο εκπαίδευσης και νέο αντικείμενο Βλέποντας τη γραφική αναπαράσταση θα μπορούσε κανείς να πει ότι ο είναι γυναίκα. Για να το συμπεράνει αυτό το πρόγραμμα όμως πρέπει να χρησιμοποιήσει έναν ταξινομητή με βάση το σύνολο εκπαίδευσης. 3.2 Μοντέλο k-πλησιέστερων γειτόνων Ο αλγόριθμος k-πλησιέστερων γειτόνων (k-nearest neighbor ή k-nn) είναι μια από τις πιο απλές μεθόδους ταξινόμησης της μηχανικής μάθησης. Ανήκει στις μεθόδους βασισμένες στα στιγμιότυπα (instance-based) οι οποίες διαφέρουν από τις άλλες μεθόδους μάθησης στο εξής: δεν προσπαθούν να κατασκευάσουν ένα μοντέλο που προσεγγίζει την συνάρτηση ολικά. Αντίθετα, αποθηκεύουν τα δεδομένα εκπαίδευσης και τα χρησιμοποιούν για να κατατάξουν ένα νέο αντικείμενο (query), γι αυτό και είναι γνωστές ως μέθοδοι βασισμένες στην μνήμη (memory-based). Ένα νέο στιγμιότυπο ταξινομείται με βάση τις αντίστοιχες τιμές των k πλησιέστερων γειτόνων (διανυσμάτων) από τα δεδομένα εκπαίδευσης. Επιλέγεται δηλαδή η κλάση που έχει την πλειοψηφία από τους k κοντινότερους γείτονες. Βασίζεται στην απλή παρατήρηση ότι τα χαρακτηριστικά ενός αντικειμένου προς ταξινόμηση έχουν τιμές κοντινές με τα αντικείμενα που βρίσκονται στην γειτονιά του. Το ερώτημα που προκύπτει είναι το πώς μετριέται η απόσταση στον χώρο των χαρακτηριστικών. Μιχαήλ Ν. Ζερβός 43

44 Η πιο απλή και προφανής μετρική που μπορεί να χρησιμοποιηθεί είναι η ευκλείδεια απόσταση. Δηλαδή για δύο input vectors και η απόσταση είναι:. Όταν όμως οι μεταβλητές (τα χαρακτηριστικά) παίρνουν διακριτές τιμές δεν μπορεί να χρησιμοποιηθεί αυτή η μετρική. Σε τέτοιες περιπτώσεις συνήθως επιλέγεται η απόσταση Hamming (ή overlap metric) η οποία ορίζεται ως: { Ουσιαστικά η απόσταση Hamming μετράει πόσα χαρακτηριστικά διαφέρουν μεταξύ των δύο διανυσμάτων. Έχουν προταθεί πολλές άλλες μετρικές για την μέτρηση της απόστασης στην μέθοδο k-nn αλλά η παρουσίαση τους ξεφεύγει από τα όρια αυτής της εργασίας. Εικόνα 3.2-3ΝΝ Στην παραπάνω εικόνα (Εικόνα 3.2) φαίνονται τα σημεία που αντιστοιχούν σε αντικείμενα δύο κλάσεων που περιγράφονται από δύο τυχαία χαρακτηριστικά (Feature 1, Feature 2). Κατά την ταξινόμηση του νέου αντικειμένου χρησιμοποιείται ο αλγόριθμος Μιχαήλ Ν. Ζερβός 44

45 3NN και έτσι ελέγχονται οι κλάσεις των τριών κοντινότερων γειτόνων του, όπως φαίνεται στην εικόνα. Με βάση αυτό, το καινούριο αντικείμενο κατατάσσεται στην κλάση 2 (κόκκινο). Η μέθοδος k-nn έχει μεγάλο υπολογιστικό κόστος για την ταξινόμηση ενός νέου αντικειμένου. Αυτό συμβαίνει διότι σχεδόν όλοι οι υπολογισμοί συμβαίνουν κατά την διάρκεια της ταξινόμησης και όχι της εκπαίδευσης (lazy learning). Η εύρεση των k κοντινότερων γειτόνων αν τα δεδομένα είναι πολλά μπορεί να απαιτεί πάρα πολύ χρόνο. Η απλοϊκή υλοποίηση του αλγορίθμου αυτού είναι προφανώς της τάξης. Έχουν προταθεί διάφορες μέθοδοι για να γίνει πιο αποδοτικό αυτό το μέρος του αλγορίθμου. Μια γνωστή και ιδιαίτερα αποδοτική μέθοδος είναι η οργάνωση των δεδομένων σε kd-δέντρο η οποία επιτρέπει την εύρεση των πλησιέστερων γειτόνων στην γενική περίπτωση λογαριθμικό χρόνο [7]. 3.3 Νευρωνικά Δίκτυα Ένα Νευρωνικό Δίκτυο (Neural Network) είναι ένα μοντέλο που προσομοιώνει το κεντρικό νευρικό σύστημα του ανθρώπου. Περιλαμβάνει ένα δίκτυο διασυνδεδεμένων υπολογιστικών κόμβων. Ένα νευρωνικό δίκτυο ορίζεται ουσιαστικά από τρία πράγματα: 1. Τον γράφο του δικτύου 2. Τον αλγόριθμο εκμάθησης των βαρών (weight) των συνάψεων (links) 3. Την συνάρτηση ενεργοποίησης των νευρώνων (activation function) Εικόνα Νευρωνικό Δίκτυο 3 επιπέδων Μιχαήλ Ν. Ζερβός 45

46 Ένα νευρωνικό δίκτυο χωρίζεται σε επίπεδα (layers). Στην γενική περίπτωση υπάρχει ένα επίπεδο εισόδου (input layer), κάποια κρυφά επίπεδα (hidden layers) και ένα επίπεδο εξόδου (output layer). Στην Εικόνα 3.3 φαίνεται ένα νευρωνικό δίκτυο τριών επιπέδων. Κάθε απλός κόμβος του νευρωνικού δικτύου ονομάζεται νευρώνας. Στην Εικόνα 3.4 φαίνεται η σχηματική αναπαράσταση ενός νευρώνα. Ο σύνδεσμος (link) από έναν νευρώνα σε έναν άλλο εξυπηρετεί την διάδοση της ενεργοποίησης (activation). Κάθε σύναψη έχει ένα βάρος το οποίο προσδιορίζει την ισχύ της σύνδεσης. Εικόνα Νευρώνας Ο νευρώνας αρχικά υπολογίζει το σταθμισμένο άθροισμα των εισόδων του: Ο πρώτος όρος δεν αποτελεί είσοδο από κάποιο προηγούμενο διασυνδεδεμένο νευρώνα αλλά χρησιμοποιείται όπως περιγράφεται παρακάτω για να οριστεί το κατώφλι της συνάρτησης ενεργοποίησης. Στην συνέχεια εφαρμόζεται η συνάρτηση ενεργοποίησης (activation function) στο άθροισμα και το αποτέλεσμα της μεταφέρεται στην έξοδο. Η συνάρτηση ενεργοποίησης είναι μια συνάρτηση η οποία έχει διαλεχτεί έτσι ώστε να ενεργοποιεί την έξοδο αν δεχθεί την «κατάλληλη» είσοδο. Τέτοια συνάρτηση μπορεί να είναι η βηματική (step function): { η γραφική παράσταση της οποίας φαίνεται στην Εικόνα 3.6(α). Το μειονέκτημα αυτής της συνάρτησης είναι ότι δεν είναι παραγωγίσιμη. Συνήθως προτιμούνται συναρτήσεις που την προσεγγίζουν και είναι παραγωγίσιμες, αυτές ονομάζονται σιγμοειδείς Μιχαήλ Ν. Ζερβός 46

47 συναρτήσεις και οι πιο γνωστές είναι η λογιστική (logistic) και η υπερβολική εφαπτόμενη (hyperbolic tangent). Η λογιστική σιγμοειδής έχει τύπο: Και η υπερβολική εφαπτόμενη: Η τυπική μορφή μιας σιγμοειδής φαίνεται στην Εικόνα 3.6(β). Εικόνα (α) Βηματική (β) Σιγμοειδής Όπως γίνεται αντιληπτό, σκοπός της συνάρτησης είναι να ενεργοποιήσει την έξοδο του νευρώνα αν το σταθμισμένο άθροισμα των εισόδων είναι πάνω από κάποιο όριο (threshold). Η έξοδος δηλαδή του νευρώνα είναι: Η συνάρτηση ενεργοποίησης όπως ορίστηκε έχει ένα σταθερό κατώφλι στο μηδέν. Το μπορεί να χρησιμοποιηθεί για να οριστεί ένα διαφορετικό κατώφλι Perceptron Το πιο απλό είδος ενός τεχνητού νευρωνικού δικτύου είναι το Perceptron, ένα δίκτυο ενός επίπεδου. Πρόκειται ουσιαστικά για έναν γραμμικό ταξινομητή. Περιλαμβάνει μόνο ένα επίπεδο με ένα νευρώνα. Οι είσοδοι του δικτύου είναι κατευθείαν συνδεδεμένες με τον νευρώνα και η έξοδος του αποτελεί την έξοδο του δικτύου. Η μορφή του είναι όπως αυτή στην Εικόνα 3.4. Η είσοδος του δικτύου ισούται με τις τιμές ενεργοποίησης που φαίνονται στην εικόνα και το κατώφλι είναι. Αν τα βάρη είναι τότε το σταθμισμένο άθροισμα είναι: Μιχαήλ Ν. Ζερβός 47

48 Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων Το ουσιαστικά αντιστοιχεί σε ένα υπερεπίπεδο στον n-διάσταστο χώρο (γραμμή στο ). Η συνάρτηση ενεργοποίησης είναι η βηματική συνάρτηση. Έτσι τελικά ισχύει ότι η έξοδος είναι: { Άρα ο perceptron χωρίζει τον χώρο σε δύο υποχώρους και ταξινομεί ένα διάνυσμα στον αντίστοιχο υποχώρο ανάλογα με το αν το σταθμισμένο άθροισμα είναι μεγαλύτερο ή όχι από το κατώφλι. Στην μηχανική μάθηση (και συγκεκριμένα στην επιβλεπόμενη) σκοπός είναι η εκπαίδευση του perceptron, δηλαδή η εύρεση του, χρησιμοποιώντας το σύνολο εκπαίδευσης. Εφ όσον υπολογιστεί ο γραμμικός ταξινομητής (το υπερεπίπεδο) τότε κάθε νέο αντικείμενο. μπορεί να ταξινομηθεί ελέγχοντας απλά το πρόσημο της Το perceptron εκπαιδεύεται με έναν απλό on-line αλγόριθμο (Αλγόριθμος 3.1) που χρησιμοποιεί επαναληπτικά τα παραδείγματα εισόδου εξόδου κάνοντας σταδιακά διορθώσεις στο μέχρι να φτάσει σε ένα υπερεπίπεδο που διαχωρίζει τις δύο κλάσεις (αν το σύνολο εκπαίδευσης είναι γραμμικά διαχωρίσιμο). 1: Αρχικοποίηση: 2: Όσο ΚΑΙ 3: Για κάθε 4: Εάν KAI Τότε 5: 6: 7: Αλλιώς-εάν KAI Τότε 8: 9: 10: Αλλιώς 11: Αλγόριθμος Perceptron Έχει αποδειχτεί πως ο αλγόριθμος perceptron συγκλίνει σε πεπερασμένο αριθμό επαναλήψεων αν το σύνολο εκπαίδευσης είναι γραμμικά διαχωρίσιμο. Για να συγκλίνει ο αλγόριθμος συνήθως χρειάζεται να χρησιμοποιηθούν τα διανύσματα του συνόλου εκπαίδευσης του περισσότερες από μια φορά. Κάθε φορά που εξαντλούνται τα στοιχεία συμπληρώνεται μια εποχή (epoch). Στον παραπάνω αλγόριθμο με συμβολίζεται η τιμή του στο βήμα. Το σύνολο εκπαίδευσης περιέχει Μιχαήλ Ν. Ζερβός 48

49 παραδείγματα. Η ταχύτητα σύγκλισης του αλγορίθμου εξαρτάται από τις αρχικές τιμές του και το όπου μπορούν να επιλεγούν αυθαίρετα. Συνήθως επιλέγεται. Στο παράδειγμα της εικόνας παρήχθησαν 60 τυχαία αντικείμενα από δύο γραμμικά διαχωρίσιμες κλάσεις (30 από κάθε κλάση). Εικόνα 3.6 Perceptron Στην συνέχεια ο αλγόριθμος perceptron (υλοποίηση σε Matlab) δημιούργησε το υπερεπίπεδο (πράσινη γραμμή) που διαχωρίζει τις δύο κλάσεις. Κάθε νέο αντικείμενο προς κατάταξη αντιστοιχίζεται στην κλάση που βρίσκεται στο ίδιο ημιεπίπεδο με αυτό. Όπως ήταν αναμενόμενο ο perceptron δημιούργησε έναν ταξινομητή που χωρίζει εντελώς τις δύο κλάσεις αφού αυτές είναι γραμμικά διαχωρίσιμες Δίκτυα Πολλών Επιπέδων Όπως φάνηκε στο προηγούμενο κεφάλαιο, ένας κόμβος του δικτύου λειτουργεί ουσιαστικά ως ένας γραμμικός ταξινομητής. Συνδυάζοντας περισσότερους κόμβους σε επίπεδα μπορούμε να δημιουργήσουμε μη-γραμμικούς ταξινομητές. Έτσι μπορούμε να δημιουργήσουμε ταξινομητές για κλάσεις που δεν μπορούν να διαχωριστούν γραμμικά (Εικόνα 3.7). Μιχαήλ Ν. Ζερβός 49

50 Εικόνα Μη γραμμικά διαχωρίσιμες κλάσεις Ανάλογα με των αριθμό των κόμβων, των επιπέδων και τα βάρη μεταξύ των κόμβων, ένα νευρωνικό δίκτυο μπορεί να προσεγγίσει πολύπλοκες συναρτήσεις, αρκετών μεταβλητών με άγνωστο τύπο. Όπως φάνηκε και από το perceptron τα νευρωνικά δίκτυα έχουν την ικανότητα των να εκπαιδεύονται από παραδείγματα (να υπολογίζονται τα βάρη των συνάψεων) και στην συνέχεια να ταξινομούν γρήγορα ένα νέο αντικείμενο. Για την εκπαίδευση νευρωνικών δικτύων πολλών επιπέδων συνήθως χρησιμοποιείται ένας αλγόριθμος οπισθοδιάδωσης (back-propagation) [8]. Περισσότερες πληροφορίες για τα νευρωνικά δίκτυα υπάρχουν στο [6]. 3.4 Μηχανές Διανυσμάτων Υποστήριξης (SVMs) Οι Μηχανές Διανυσμάτων Υποστήριξης (Support Vector Machines SVMs) είναι μια σχετικά νέα ομάδα μεθόδων μάθησης με επίβλεψη. Σε ένα πρόβλημα δύο γραμμικά διαχωρίσιμων κλάσεων (με ετικέτες ), η βασική ιδέα ενός SVM είναι να κατασκευάσει τον βέλτιστο γραμμικό διαχωριστή [9]. Να δημιουργήσει, δηλαδή, ένα υπερεπίπεδο που θα έχει τη μέγιστη απόσταση μεταξύ αυτού και των θετικών παραδειγμάτων από τη μια πλευρά και των αρνητικών παραδειγμάτων από την άλλη. Δηλαδή ένας ταξινομητής που μοιάζει με τον Perceptron (κεφάλαιο 3.3.1) αλλά εγγυάται το μέγιστο περιθώριο (margin) μεταξύ του υπερεπιπέδου και των κλάσεων. Η πραγματική δύναμη των Μιχαήλ Ν. Ζερβός 50

51 μηχανών διανυσμάτων υποστήριξης βρίσκεται όμως στην ικανότητά τους να δημιουργούν ταξινομητές για μη-γραμμικά διαχωρίσιμες κλάσεις. Ο αρχικός χώρος (χώρος εισόδου) μετασχηματίζεται σε έναν χώρο περισσοτέρων διαστάσεων στον οποίο οι κλάσεις είναι γραμμικά διαχωρίσιμες. Έπειτα, κατασκευάζεται στον χώρο αυτό το βέλτιστο υπερεπίπεδο που διαχωρίζει τις κλάσεις. Όπως φαίνεται, οι μηχανές διανυσμάτων υποστήριξης έχουν δύο βασικά μέρη: Την εύρεση ενός βέλτιστου υπερεπιπέδου για γραμμικά διαχωρίσιμες κλάσεις Το μετασχηματισμό του χώρου εισόδου σε έναν πολυδιάστατο χώρο χαρακτηριστικών στον οποίο οι κλάσεις είναι γραμμικά διαχωρίσιμες Εύρεση βέλτιστου υπερεπιπέδου Στο κεφάλαιο περιγράφηκε ο αλγόριθμος perceptron, ο οποίος υπολογίζει ένα υπερεπίπεδο που διαχωρίζει δύο κλάσεις. Οι μηχανές διανυσματικής υποστήριξης προχωρούν αυτή την ιδέα, υπολογίζοντας το βέλτιστο υπερεπίπεδο. Έστω το σύνολο εκπαίδευσης που περιέχει παραδείγματα και, δηλαδή. Όπως είδαμε και στον Perceptron, ένα υπερεπίπεδο περιγράφεται από τον τύπο. Αυτό που χρειάζεται δηλαδή να προσδιοριστεί είναι το ζεύγος. Στην Εικόνα 3.8 φαίνονται στιγμιότυπα δύο κλάσεων που περιγράφονται από δύο χαρακτηριστικά και ο βέλτιστος γραμμικός διαχωριστής (πράσινη γραμμή). Εικόνα Βέλτιστος διαχωριστής και διανύσματα υποστήριξης Μιχαήλ Ν. Ζερβός 51

52 Τα πλησιέστερα στο υπερεπίπεδο διανύσματα ονομάζονται διανύσματα υποστήριξης (support vectors). Ο αλγόριθμος SVM προσπαθεί να μεγιστοποιήσει το περιθώριο μεταξύ του και των διανυσμάτων υποστήριξης. Παραλείποντας την μαθηματική απόδειξη, το πρόβλημα είναι ισοδύναμο με το εξής: Ελαχιστοποίησε το Ικανοποιώντας την συνθήκη Αυτό είναι κλασσικό πρόβλημα ελαχιστοποίησης και συγκεκριμένα τετραγωνικού προγραμματισμού με γραμμικούς περιορισμούς και αποτελεί το primal problem. Χρησιμοποιώντας την μέθοδο πολλαπλασιαστών Lagrange [10] μπορούμε να μεταβούμε στο dual πρόβλημα το οποίο ορίζεται ως εξής: Μεγιστοποίησε την: ( ) Εξίσωση 3.1 Υπό τους περιορισμούς: Αυτό το πρόβλημα τετραγωνικής βελτιστοποίησης μπορεί να λυθεί σε γραμμικό χρόνο καθώς είναι κυρτό, χωρίς τοπικά ελάχιστα. Ουσιαστικά πρέπει να προσδιοριστούν οι συντελεστές οι οποίοι είναι οι πολλαπλασιαστές Lagrange (ή δυικές μεταβλητές). Αφού υπολογιστούν τα, ο υπολογισμός του είναι τετριμμένος. Συγκεκριμένα:, όπου είναι ένα θετικό support vector. Σε κάθε σημείο (διάνυσμα) του συνόλου εκπαίδευσης αντιστοιχεί μια μεταβλητή και αποδεικνύεται ότι αυτή ισούται με μηδέν για όλα τα σημεία εκτός των διανυσμάτων υποστήριξης. Έτσι παρ όλο που ο αριθμός των διαστάσεων μπορεί να είναι πολύ μεγάλος, ο δραστικός αριθμός παραμέτρων που ορίζουν το είναι συνήθως μικρός, όσο και το πλήθος των διανυσμάτων υποστήριξης. Αφού εκπαιδευτεί ο διαχωριστής, κάθε νέο διάνυσμα μπορεί να ταξινομηθεί στην θετική ή αρνητική κλάση αποτιμώντας την παράσταση Μιχαήλ Ν. Ζερβός 52

53 Το δυϊκό πρόβλημα όπως ορίστηκε παραπάνω (Εξίσωση 3.1), έχει μια πολύ σημαντική ιδιότητα. Τα διανύσματα του συνόλου εκπαίδευσης εισάγονται στην εξίσωση μόνο υπό την μορφή εσωτερικού γινομένου. Αυτή η ιδιότητα, όπως θα φανεί στο επόμενο υποκεφάλαιο, επιτρέπει τον γρήγορο υπολογισμό του ταξινομητή όταν ο χώρος εισόδου απεικονίζεται σε έναν πολυδιάστατο (ή μερικές φορές άπειρο) χώρο Μετασχηματισμός χώρου εισόδου Έστω ένα πρόβλημα μάθησης με στιγμιότυπα δύο μη γραμμικά διαχωρίσιμων κλάσεων (που περιγράφονται από δύο χαρακτηριστικά ) όπως φαίνονται στην Εικόνα 3.9α. Τα στιγμιότυπα της πρώτης κλάσης (κόκκινα σημεία) δημιουργήθηκαν τυχαία με τιμές χαρακτηριστικών. Τα στιγμιότυπα της δεύτερης κλάσης (μπλε σημεία) δημιουργήθηκαν τυχαία με τιμές χαρακτηριστικών στον κύκλο με κέντρο το και ακτίνα. Ο αρχικός αυτός χώρος ονομάζεται χώρος εισόδου. Αν κάθε διάνυσμα μετασχηματιστεί σε ένα διάνυσμα μέσω της συνάρτησης τότε το σύνολο εισόδου θα μεταφερθεί σε ένα χώρο τριών διαστάσεων που ονομάζεται χώρος χαρακτηριστικών. Δηλαδή: Ο χώρος αυτός εμφανίζεται στην Εικόνα 3.9β. Στον χώρο των χαρακτηριστικών οι δύο κλάσεις είναι γραμμικά διαχωρίσιμες από ένα υπερεπίπεδο (επίπεδο στον 3-διάστατο χώρο) που φαίνεται με πράσινο. Όπως φαίνεται, λοιπόν, απεικονίζοντας τα δεδομένα του χώρου εισόδου σε κάποιον άλλο χώρο μπορούμε να μετατρέψουμε τις κλάσεις σε γραμμικά διαχωρίσιμες. Αν τα δεδομένα απεικονιστούν σε χώρους με αρκετές διαστάσεις (ή άπειρες) μπορούν πάντα να διαχωριστούν από ένα υπερεπίπεδο. Μιχαήλ Ν. Ζερβός 53

54 Εικόνα (α) Χώρος εισόδου, (β) Μετασχηματισμένος χώρος χαρακτηριστικών Πυρήνες Εφ όσον μεταβούμε σε έναν χώρο που οι κλάσεις είναι γραμμικά διαχωρίσιμες, μπορεί να χρησιμοποιηθεί το πρόβλημα βελτιστοποίησης όπως ορίστηκε παραπάνω (Εξίσωση 3.1) για να υπολογιστεί το υπερεπίπεδο. Η μόνη διαφορά είναι ότι το εσωτερικό γινόμενο πρέπει να αντικατασταθεί από το όπου η απεικόνιση που χρησιμοποιήθηκε για την μετάβαση στον χώρο των χαρακτηριστικών. Έτσι, όπως παρατηρήσαμε και στο προηγούμενο υποκεφάλαιο, τα δεδομένα μπαίνουν στην εξίσωση υπό την μορφή εσωτερικού γινομένου. Αυτό το εσωτερικό γινόμενο ονομάζεται συνάρτηση πυρήνα (kernel function): ( ). Έτσι η Εξίσωση 3.1 μπορεί να ξαναγραφεί ως: ( ) Έστω το παραπάνω παράδειγμα (Εικόνα 3.9) και δύο διανύσματα εκπαίδευσης. Η απεικόνιση τους στον χώρο των χαρακτηριστικών είναι: ( ) ( ) ( ) Και το εσωτερικό γινόμενο τους: ( ) ( ) Μιχαήλ Ν. Ζερβός 54

55 Άρα η εκπαίδευση του διαχωριστή μπορεί να γίνει χρησιμοποιώντας κατευθείαν την συνάρτηση πυρήνα ( ) ( ) χωρίς να χρειάζεται να υπολογιστούν για κάθε διάνυσμα οι τιμές των χαρακτηριστικών του στον πολυδιάστατο χώρο χαρακτηριστικών. Στο συγκεκριμένο παράδειγμα οι διαστάσεις του χώρου των χαρακτηριστικών είναι μόνο τρεις οπότε αυτό δεν θα επέφερε μεγάλο υπολογιστικό κόστος, αλλά σε άλλες περιπτώσεις ο χώρος των χαρακτηριστικών μπορεί να έχει χιλιάδες ή εκατομμύρια διαστάσεις. Κάθε συνάρτηση που μπορεί να εφαρμοστεί σε ζεύγη διανυσμάτων και υπολογίζει το εσωτερικό τους γινόμενο σε κάποιο άλλο χώρο χαρακτηριστικών μπορεί να είναι συνάρτηση πυρήνα. Μέθοδοι που χρησιμοποιούν πυρήνες όπως οι SVMs ονομάζονται Μηχανές Πυρήνων (kernel machines) [11]. Έχουν προταθεί πάρα πολλοί πυρήνες για διάφορες κατηγορίες προβλημάτων. Κάποιοι γνωστοί είναι οι εξής: Πολυωνυμικός: Εκθετικός: Gaussian Radial Basis Function: Το σύνολο των πυρήνων είναι κλειστό ως προς κάποιες πράξεις (πρόσθεση, πολλαπλασιασμό, κ.α.), το οποίο σημαίνει ότι μπορεί κανείς να κατασκευάσει πολύπλοκους πυρήνες από πιο απλούς. Για παράδειγμα, αν είναι πυρήνες τότε και ο είναι πυρήνας. Για διανύσματα εκπαίδευσης μπορούμε να δημιουργήσουμε έναν πίνακα (kernel matrix) με τις τιμές της συνάρτησης πυρήνα για κάθε ζεύγος διανυσμάτων (Εικόνα 3.10). Ισχύει ότι κάθε πίνακας πυρήνων είναι θετικά ορισμένος (θεώρημα Mercer, 1909) και κάθε θετικά ορισμένος πίνακας μπορεί να χρησιμοποιηθεί ως πίνακας πυρήνων. K(1,1) K(1,2) K(1,N) K(2,1) K(2,2) K(2,N) K(N,1) K(N,2) K(N,N) Εικόνα Kernel matrix Μιχαήλ Ν. Ζερβός 55

56 Μιχαήλ Ν. Ζερβός 56

57 4. ΣΧΕΤΙΚΗ ΒΙΒΛΙΟΓΡΑΦΙΑ Στην εργασία αυτή, όπως έχει περιγραφεί και στα προηγούμενα κεφάλαια, εμφανίζονται τρία διαφορετικά προβλήματα. Αυτά συναντώνται στην βιβλιογραφία είτε μεμονωμένα ή ως μέρη ενός γενικότερου προβλήματος, όπως συμβαίνει και στην παρούσα εργασία. Συγκεκριμένα αυτά είναι: 1. Η αναγνώριση δημοσιεύσεων (post) που είναι ερωτήσεις στα υπάρχοντα νήματα του forum. 2. Η εύρεση απαντήσεων στις ερωτήσεις που αναγνωρίστηκαν, εάν αυτές υπάρχουν, στις δημοσιεύσεις (posts) που ακολουθούν. 3. Η ταύτιση μιας καινούριας ερώτησης (υποβληθείσας από έναν χρήστη) με κάποια από τις ήδη αναγνωρισμένες. Στο υπόλοιπο του κεφαλαίου θα παρουσιαστούν σύγχρονες επιστημονικές εργασίες σχετικές με τα παραπάνω προβλήματα. Η αναγνώριση ερωτήσεων συχνά εμφανίζεται σε εργασίες ως μέρος ενός μεγαλύτερου προβλήματος. Επίσης, η αναγνώριση ζευγών ερώτησης απάντησης, έχει μελετηθεί αρκετές φορές σε ένα ενιαίο πλαίσιο. 4.1 Finding Question-Answer Pairs from Online Forums Οι συγγραφείς της εργασίας [12] παρουσιάζουν μια μέθοδο για την αναγνώριση ερωτήσεων και των απαντήσεων τους σε online forums. Η εργασία αυτή έχει την μεγαλύτερη συνάφεια με το θέμα αυτής της πτυχιακής και παρουσιάζει τα καλύτερα αποτελέσματα στην αναγνώριση ερωτήσεων και απαντήσεων. Ως εκ τούτου παρουσιάζεται αναλυτικά παρακάτω. Στόχος αυτής της δημοσίευσης είναι η εξόρυξη γνώσης με την μορφή ερωτήσεων απαντήσεων (QA) από online forums. Όπως αναφέρουν, μεγάλη πλειοψηφία (90%) από forums που εξέτασαν περιέχουν γνώση υπό μορφή ερωτο-απαντήσεων. Οι συγγραφείς αρχικά παρουσιάζουν μια μέθοδο για την αναγνώριση ερωτήσεων στις δημοσιεύσεις ενός νήματος. Στην συνέχεια δίνουν μια καινοτόμα λύση στο πρόβλημα της εύρεσης απάντησης στις ερωτήσεις Αναγνώριση ερωτήσεων Η μέθοδος αναγνώρισης ερωτήσεων που προτείνεται βασίζεται στα Labeled Sequential Patterns (LSP), τα οποία έχουν παρουσιαστεί στην ενότητα 2.5. Μιχαήλ Ν. Ζερβός 57

58 Στόχος των συγγραφέων είναι να αναγνωρίσουν όλες τις ερωτήσεις μέσα σε ένα νήμα (thread) ενός forum. Λόγω της άτυπης γραφής στα forum οι συγγραφείς θεωρούν πως διάφορες γνωστές ευριστικές συναρτήσεις, όπως το ερωτηματικό στο τέλος της πρότασης ή ο έλεγχος για τις ερωτηματικές λέξεις 5W1H ( Who, What, Where, Why, When, How ) δεν είναι επαρκείς για να αναγνωρίσουν όλες τις ερωτήσεις. Για τον λόγο αυτό προτείνουν μια τεχνική βασισμένη στην μηχανική μάθηση χρησιμοποιώντας ως χαρακτηριστικά ορισμένα labeled sequential patterns που εξάγονται αυτόματα από τις προτάσεις (ερωτήσεις και μη). Ως πρώτο βήμα προεπεξεργάζονται τις προτάσεις χρησιμοποιώντας έναν POS tagger (Κεφάλαιο 2.1), συγκεκριμένα το MXPOST Toolkit, ενώ διατηρούν ορισμένες λέξεις (όπως τις 5W1H). Για παράδειγμα η πρόταση where can you find a job μετατρέπεται σε where can PRP VB DT NN. Κάθε επεξεργασμένη πρόταση (κλάσης αν πρόκειται για ερώτηση ή διαφορετικά) στην συνέχεια εισάγεται στην βάση ως ένα ζεύγος. Οι συγγραφείς χρησιμοποιούν μια τροποποιημένη εκδοχή του αλγορίθμου [5] για να εξάγουν LSPs από την βάση αυτή. Επιβάλλουν ελάχιστο κατώφλι 0.5% στο support και 85% στο confidence και χρησιμοποιούν ως ελάχιστη απόσταση μεταξύ διαδοχικών όρων. Δύο τέτοια LSPs για παράδειγμα είναι τα και Κάθε LSP που εξήχθη, αποτελεί ένα δυαδικό χαρακτηριστικό για το μοντέλο ταξινόμησης (classification model) και χρησιμοποιείται ως είσοδος. Αν μια πρόταση περιέχει κάποιο LSP τότε το αντίστοιχο χαρακτηριστικό είναι 1 (διαφορετικά 0). Ο ταξινομητής που υλοποιούν βασίζεται στον αλγόριθμο Ripper [13] Αναγνώριση απαντήσεων Οι συγγραφείς παρατηρούν ότι μια παράγραφος αποτελεί συνήθως ικανοποιητικό μέγεθος για απάντηση σε μια ερώτηση. Με βάση αυτό θεωρούν ως υποψήφιες απαντήσεις τις παραγράφους που υπάρχουν στις δημοσιεύσεις (posts) που έχουν αναρτηθεί μετά από την ερώτηση. Παρ όλα αυτά η μέθοδος μπορεί να λειτουργήσει και σε διαφορετικά τμήματα κειμένου (π.χ. να θεωρηθεί απάντηση ένα ολόκληρο post). Οι συγγραφείς χρησιμοποιούν στην εργασία τους τρεις μεθόδους απ την περιοχή της Ανάκτησης Πληροφορίας (Information Retrieval). Την ομοιότητα συνημίτονου (cosine similarity), το Query Likelihood language model και το KL-divergence model. Οι μέθοδοι αυτοί έχουν παρουσιαστεί στο προηγούμενο κεφάλαιο. Μιχαήλ Ν. Ζερβός 58

59 Συγκεκριμένα για το Query Likelihood language model οι συγγραφείς επέλεξαν να χρησιμοποιήσουν μονογραμμικό μοντέλο με εξομάλυνση βασισμένη στην κατανομή Dirichlet. Για περισσότερες πληροφορίες για αυτή την εξομάλυνση ο αναγνώστης παραπέμπεται στα [4], [2]. Με βάση αυτά, η πιθανότητα εμφάνισης της ερώτησης ως τυχαίο δείγμα σε μια υποψήφια απάντηση είναι: Όπου είναι η πιθανότητα (με την εξομάλυνση) της λέξης στο γλωσσικό μοντέλο της απάντησης. Το είναι η συχνότητα εμφάνισης της λέξης στο κείμενο Το είναι η συλλογή κειμένων που χρησιμοποιήθηκαν για εξομάλυνση και το ένας συντελεστής αυτής. Για το KL-divergence model, κατασκευάζεται ένα μονογραμμικό γλωσσικό μοντέλο και χρησιμοποιείται η Εξίσωση 2.1. Οι συγγραφείς προτείνουν μια καινοτόμο μέθοδο για την αναγνώριση των απαντήσεων βασισμένη στη διάδοση πάνω σε γράφο (graph-based propagation). Με αυτό τον τρόπο εκμεταλλεύονται τις σχέσεις που υπάρχουν μεταξύ των πιθανών απαντήσεων στις δημοσιεύσεις του νήματος. Παρ όλο που μέθοδοι βασισμένοι στην διάδοση πάνω σε γράφο είναι ιδιαίτερα επιτυχημένοι και ευρέως εφαρμοσμένοι στην αναζήτηση στο διαδίκτυο, είναι η πρώτη φορά που μια τέτοια μέθοδος δοκιμάζεται στο συγκεκριμένο πρόβλημα. Η ιδέα είναι ότι για κάθε υποψήφια απάντηση υπολογίζεται ένα αρχικό σκορ. Στην συνέχεια δημιουργείται ένας γράφος με αυτές τις πιθανές απαντήσεις και διαδίδονται και υπολογίζονται ενδιάμεσες τιμές με βάση τα αρχικά σκορ μέχρι να υπολογιστεί το τελικό σκορ για κάθε πιθανή απάντηση. Τέλος, αυτό χρησιμοποιείται για να επιλεγεί η πιο πιθανή απάντηση στην ερώτηση. Αρχικά παρουσιάζεται ο τρόπος με τον οποίο χτίζεται ο γράφος και στη συνέχεια η διαδικασία που ακολουθείται για να υπολογιστούν τα τελικά σκορ. Μιχαήλ Ν. Ζερβός 59

60 Δημιουργία του γράφου Δεδομένης μιας ερώτησης και ενός συνόλου από υποψήφιες απαντήσεις δημιουργείται ένας κατευθυνόμενος γράφος που συμβολίζεται με με συνάρτηση βάρους, όπου είναι το σύνολο των κορυφών, είναι το σύνολο των κατευθυνόμενων ακμών και είναι το βάρος που αντιστοιχεί στην ακμή. Κάθε υποψήφια απάντηση αντιστοιχεί σε μια κορυφή. Το πρόβλημα είναι πως θα δημιουργηθούν οι ακμές και πώς θα υπολογιστούν τα βάρη τους. Δεδομένων δύο υποψήφιων απαντήσεων και, οι συγγραφείς χρησιμοποιούν το KL-divergence language model (και αντίστοιχα το ) για να καθορίσουν αν θα δημιουργηθεί η ακμή (και αντίστοιχα η ). Η χρήση του KL-divergence model μπορεί να δικαιολογηθεί αν σκεφτεί κανείς το παρακάτω παράδειγμα. Έστω η ερώτηση q: «Μπορείτε να μου πείτε ορισμένα πράγματα για το ξενοδοχείο» και δύο πιθανές απαντήσεις a 1 : «Το Τιτάνια είναι καλό αλλά προτιμώ το Ηλέκτρα» και a 2 : «Το Τιτάνια έχει πολύ καλό εστιατόριο». Αν γνωρίζουμε ότι η a 2 είναι πράγματι απάντηση στη q, τότε μπορούμε να συμπεράνουμε και ότι η a 1 είναι σχετικά σημαντική και θα μπορούσε να είναι πιθανή απάντηση. Το αντίθετο δεν ισχύει, διότι η a 1 αφορά και τα δύο ξενοδοχεία, ενώ η a 2 μόνο το Τιτάνια. Το KL-divergence language model, σε αντίθεση με το cosine similarity, μπορεί να «αντιληφθεί» τέτοιες ασυμμετρίες (όπως περιγράφηκε στη σχετική ενότητα) και άρα να χρησιμοποιηθεί για την δημιουργία των ακμών. Χρησιμοποιείται, επομένως, η παρακάτω συνθήκη ομοιότητας για να αποφασιστεί αν θα δημιουργηθεί μια ακμή μεταξύ δύο ακμών. ( ) Όπου μια τιμή κατωφλιού που υπολογίζεται εμπειρικά. Αν ισχύει η σχέση αυτή τότε δημιουργείται η ακμή. Ο λέγεται generator (δημιουργός) του και ο λέγεται offspring (απόγονος) του. Είναι δυνατόν να υπάρχουν ακμές της μορφής το οποίο σημαίνει ότι μια πιθανή απάντηση είναι δημιουργός και απόγονος του εαυτού της. Επίσης αυτού του είδους οι ακμές χρησιμοποιούνται ως παράγοντας εξομάλυνσης στον υπολογισμό των βαρών Μιχαήλ Ν. Ζερβός 60

61 των ακμών και του κύρους των απαντήσεων. Πρέπει να σημειωθεί ότι μια υποψήφια απάντηση μπορεί να είναι generator για πολλές άλλες, ενώ είναι πιθανόν μια υποψηφία απάντηση να μην έχει κανέναν δημιουργό. Οι συγγραφείς κάνουν την παρατήρηση ότι δημοσιεύσεις (posts) που βρίσκονται μακριά απ την ερώτηση έχουν μικρότερες πιθανότητες να είναι απαντήσεις σε αυτήν. Δεύτερη παρατήρηση των συγγραφέων είναι το γεγονός πως δημοσιεύσεις από χρήστες με υψηλό «κύρος» (authority) είναι πιο πιθανό να περιέχουν απαντήσεις. Αν και δεν παρουσιάζονται κάποια δεδομένα που να υποστηρίζουν αυτές τις υποθέσεις, διαισθητικά και με βάση την εμπειρία φαίνεται πως έχουν νόημα. Ορισμένα forum περιέχουν πληροφορία για το «κύρος» των χρηστών αλλά σε πολλά αυτό απουσιάζει. Γι αυτό τον λόγο οι συγγραφείς προσπαθούν να προσεγγίσουν το authority κάθε χρήστη ως εξής: ( ) Όπου το σύνολο όλων των χρηστών του forum, το πλήθος των απαντήσεων που έχει δώσει ο χρήστης και το πλήθος των νημάτων που έχει αρχίσει ο χρήστης. Το authority ενός χρήστη μεγαλώνει όσο αυτός απαντάει σε υπάρχοντα νήματα, ενώ μικραίνει για κάθε καινούριο νήμα που αυτός ξεκινάει. Η τιμή κανονικοποιείται με βάση το μεγαλύτερο authority που υπάρχει. Το επόμενο, και τελευταίο στάδιο της δημιουργίας του γράφου, είναι ο υπολογισμός των βαρών των ακμών. Δεδομένων δύο υποψήφιων απαντήσεων το βάρος για την ακμή υπολογίζεται με γραμμική παρεμβολή τριών παραγόντων, της ομοιότητας, την απόσταση της απάντησης από την ερώτηση και το authority του χρήστη που δημοσίευσε την υποψήφια απάντηση. Ο τύπος του βάρους είναι: ( ) ( ) Το βάρος στην συνέχεια κανονικοποιείται με την μέθοδο που χρησιμοποιείται και στον αλγόριθμο PageRank [14]. Το κανονικοποιημένο βάρος τελικά υπολογίζεται με τον τύπο: Μιχαήλ Ν. Ζερβός 61

62 ( ) ( ) Όπου υπενθυμίζεται το σύνολο απ τις υποψήφιες απαντήσεις, είναι το σύνολο από generators της υποψήφιας απάντησης και ένας συντελεστής απόσβεσης (damping factor). Αυτό που επιτυγχάνεται είναι η κανονικοποίηση του ( ) μεταξύ όλων των generators του. Για περισσότερες πληροφορίες σχετικά με την κανονικοποίηση ο αναγνώστης παραπέμπεται στο [14]. Στο παρακάτω παράδειγμα (Εικόνα 4.1), το βάρος της ακμής θα κανονικοποιηθεί από τα βάρη όλων των generators του, δηλαδή από τα,,,. Αντίστοιχα, το βάρος της ακμής θα κανονικοποιηθεί από τα και. Εικόνα 4.1 Γράφος Υπολογισμός διαδιδόμενων σκορ Οι συγγραφείς ανέπτυξαν δύο μεθόδους για τον υπολογισμό του τελικού σκορ για κάθε υποψήφια απάντηση. Μια που ενσωματώνει το αρχικό σκορ στην διαδικασία της διάδοσης και μια που δεν το ενσωματώνει. Το αρχικό σκορ κάθε πιθανής απάντησης στην ερώτηση μπορεί να είναι είτε το cosine similarity ή η ομοιότητα που υπολογίζεται από το μοντέλο KL-divergence δηλαδή συνάρτηση του Query likelihood language model. Μιχαήλ Ν. Ζερβός 62 ή η

63 Διάδοση χωρίς το αρχικό σκορ Αφού έχουν υπολογιστεί τα αρχικά σκορ κάθε υποψήφιας απάντησης με έναν από τους τρεις τρόπους, υπολογίζεται και το authority κάθε μιας. Αυτό χρησιμοποιείται για να προσαρμοστεί το αρχικό σκορ ανάλογα με την σημαντικότητα που έχει η κάθε απάντηση. Έτσι το τελικό σκορ για μια υποψήφια ερώτηση στην ερώτηση, με αρχικό σκορ είναι: Η αρχική σημαντικότητα μιας υποψήφιας απάντησης υπολογίζεται από τον έσω-βαθμό (weighted in-degree) της κορυφής που αντιστοιχεί στην απάντηση αυτή στον γράφο. Οπότε: ( ) Δηλαδή, η αρχική τιμή του authority για κάθε κορυφή είναι το άθροισμα των βαρών των ακμών, όπου είναι τα offspring του. Οι συγγραφείς βασίζονται στην παρατήρηση μιας άλλης επιστημονικής εργασίας [15], η οποία λέει ότι αν το authority του offspring είναι χαμηλό τότε το authority του δεν θα είναι μεγάλο. Η παρατήρηση αυτή φαίνεται και διαισθητικά σωστή. Αυτή η παρατήρηση μπορεί να μοντελοποιηθεί αναδρομικά ως εξής: ( ) ( ) Όπως δείχνουν οι συγγραφείς, η διάδοση των authorities στον γράφο συγκλίνει. Έχοντας λοιπόν και το authority κάθε κορυφής μπορεί να υπολογιστεί το τελικό σκορ Διάδοση με το αρχικό σκορ Η μέθοδος αυτή διαφέρει από την προηγούμενη στο ότι ενσωματώνει το αρχικό σκορ κατά την φάση της διάδοσης. Δεδομένης μιας ερώτησης και του συνόλου των υποψήφιων απαντήσεων της, το σκορ κάθε υποψήφιας απάντησης υπολογίζεται αναδρομικά: Μιχαήλ Ν. Ζερβός 63

64 Ενοποίηση με άλλες μεθόδους Οι συγγραφείς υποστηρίζουν ότι η μέθοδος αυτή που βασίζεται στους γράφους μπορεί να χρησιμοποιηθεί συμπληρωματικά με μεθόδους μηχανικής μάθησης που υπάρχουν στην βιβλιογραφία με δύο τρόπους. Πρέπει να σημειωθεί ότι για να γίνει αυτό πρέπει να υπάρχουν δεδομένα εκπαίδευσης που είναι δύσκολο να αποκτηθούν. Πρώτον, για κάθε ζεύγος ερώτησης και υποψήφιας απάντησης, το αποτέλεσμα της μεθόδου που βασίζεται στον γράφο μπορεί να προστεθεί ως χαρακτηριστικό στην μέθοδο μάθησης. Τελικά το σκορ του ταξινομητή μπορεί να χρησιμοποιηθεί για να επιλεγεί η απάντηση. Με αυτό τον τρόπο το μοντέλο μάθησης μπορεί να χρησιμοποιήσει τις σχέσεις μεταξύ των υποψήφιων απαντήσεων που διαφορετικά δεν θα μπορούσε να λάβει υπ όψιν του. Δεύτερον, το σκορ που επιστρέφει ο ταξινομητής στην μέθοδο μάθησης μπορεί να μετατραπεί στην πιθανότητα η κάθε υποψήφια απάντηση να είναι η πραγματική. Έτσι, μπορούν να χρησιμοποιηθούν αυτά τα σκορ ως αρχικές τιμές στην μέθοδο που περιγράφηκε. 4.2 Περισσότερες σχετικές επιστημονικές εργασίες Μια σειρά άλλων επιστημονικών δημοσιεύσεων σχετίζονται άμεσα ή έμμεσα με αυτή την πτυχιακή εργασία. Στην συνέχεια παρουσιάζονται οι πιο αξιοσημείωτες και σχετικές με το θέμα Εξαγωγή γνώσης για chatbot από forums Οι συγγραφείς της εργασίας αυτής [16] έχουν ως στόχο την εξαγωγή γνώσης με την μορφή <τίτλος νήματος, απάντηση> από online συζητήσεις. Τα ζευγάρια αυτά προορίζονται για να αποτελέσουν μια βάση γνώσης για chat-bots. Για να επιτύχουν τον στόχο τους, προτείνουν ένα μοντέλο που έχει τρία στάδια. Αρχικά χρησιμοποιούν μια Μηχανή Διανυσμάτων Υποστήριξης (βλέπε κεφάλαιο 3.4) για να εξάγουν απαντήσεις σχετικές με το θέμα. Έπειτα φιλτράρουν αυτές τις απαντήσεις με βάση κάποια κριτήρια. Τέλος, βαθμολογούν όσες έχουν απομείνει χρησιμοποιώντας έναν ranking SVM και επιλέγουν τις πρώτες για να χρησιμοποιηθούν ως γνώση του chat-bot. Πιο αναλυτικά, στο πρώτο στάδιο χρησιμοποιείται η μηχανή διανυσμάτων υποστήριξης SVMlight [17] για να ταξινομήσει κάθε υποψήφια δημοσίευση ως απάντηση ή όχι. Για Μιχαήλ Ν. Ζερβός 64

65 την αναπαράσταση των δημοσιεύσεων (posts) χρησιμοποιήθηκαν τα ακόλουθα χαρακτηριστικά: 1. Αληθές αν υπάρχει παράθεση (quote) του αρχικού μηνύματος, αλλιώς ψευδές 2. Αληθές αν υπάρχει παράθεση σε κάποια άλλη πιθανή απάντηση, αλλιώς ψευδές 3. Αληθές αν αυτή η δημοσίευση έγινε από τον χρήστη που άρχισε το νήμα, αλλιώς ψευδές 4. Πλήθος δημοσιεύσεων μεταξύ αυτής και της προηγούμενης δημοσίευσης του ίδιου χρήστη 5. Πλήθος λέξεων στην δημοσίευση, 6. Πλήθος λέξεων (χωρίς stop-words) στην δημοσίευση, 7. Πλήθος ίδιων λέξεων που υπάρχουν στην δημοσίευση και στον τίτλο του νήματος, 8. Πλήθος ίδιων λέξεων (χωρίς stop-words) που υπάρχουν στην δημοσίευση και στον τίτλο του νήματος, 9. Λόγος 10. Λόγος 11. Πλήθος in-domain λέξεων στην δημοσίευση 12. Αληθές αν αυτή η δημοσίευση περιέχει ονόματα χρηστών που υπάρχουν στο forum, αλλιώς ψευδές Στην συνέχεια, διαγράφονται ορισμένες από τις απαντήσεις με βάση κάποιες λίστες από keywords και το μέγεθος των απαντήσεων. Τέλος, όσες πιθανές απαντήσεις απομείνουν ταξινομούνται με ένα ranking SVM [18] χρησιμοποιώντας τα ακόλουθα χαρακτηριστικά: 1. Πλήθος παραθέσεων της απάντησης στο νήμα 2. Πλήθος νημάτων που έχει ξεκινήσει ο συγγραφέας της απάντησης 3. Πλήθος απαντήσεων του συγγραφέα σε άλλα νήματα 4. Μέσο μήκος των απαντήσεων του συγγραφέα 5. Διάρκεια συμμετοχής του συγγραφέα στο forum 6. Πλήθος απαντήσεων στα νήματα που έχει δημιουργήσει ο συγγραφέας 7. Πλήθος νημάτων στα οποία συμμετέχει ο συγγραφέας 8. Πλήθος παραθέσεων των μηνυμάτων του συγγραφέα στο νήμα 9. Πλήθος παραθέσεων των μηνυμάτων του συγγραφέα στο forum Μιχαήλ Ν. Ζερβός 65

66 Όπως φαίνεται η κατάταξη στηρίζεται αρκετά σε χαρακτηριστικά που έχουν να κάνουν με το «κύρος» του συγγραφέα, το οποίο είναι λογικό. Αν ένας συγγραφέας έχει καλή «φήμη» και συνηθίζει να δίνει καλές απαντήσεις, τότε είναι αρκετά πιθανό και αυτή η απάντηση να είναι καλή. Στο τέλος επιλέγονται οι απαντήσεις με το μεγαλύτερο σκορ από την κατάταξη. Προσαρμόζοντας το μπορεί να επιτευχθεί η κατάλληλη αναλογία ποιότητας ποσότητας απαντήσεων Αναγνώριση ερωτήσεων απαντήσεων σε συζητήσεις Οι Shrestha και McKeown στην εργασία τους [19] ασχολούνται με ένα παρόμοιο πρόβλημα. Προσπαθούν να αναγνωρίσουν ζεύγη ερωτήσεων απαντήσεων σε συζητήσεις ηλεκτρονικού ταχυδρομείου. Όπως και σε άλλες σχετικές εργασίες, οι συγγραφείς παρατηρούν ότι η αναγνώριση ερωτήσεων μόνο με το ερωτηματικό είναι προβληματική. Για την αναγνώριση των ερωτήσεων επιλέγουν μια μέθοδο βασισμένη στην μηχανική μάθηση. Ασχολούνται μόνο με ευθείες ερωτήσεις (όχι πλάγιες και ρητορικές). Κάθε φράση περιγράφεται από ένα διάνυσμα που περιλαμβάνει τα ακόλουθα χαρακτηριστικά: 1. POS tags για τους 5 πρώτους όρους της πρότασης 2. POS tags για τους τελευταίους 5 όρους της πρότασης 3. Μήκος της πρότασης 4. 2-γράμματα POS Έπειτα χρησιμοποιείται ο αλγόριθμος Ripper [13] για να δημιουργηθεί ένας ταξινομητής με την μορφή if-then κανόνων. Κάθε πρόταση χωρίζεται σε φράσεις με βάση το κόμμα. Αν η πρώτη φράση μιας πρότασης δεν ταξινομηθεί ως ερώτηση τότε δοκιμάζεται η τελευταία. Αν η τελευταία φράση είναι ερώτηση τότε ολόκληρη η πρόταση ταξινομείται ως ερώτηση. Για την αναγνώριση των ζευγαριών ερώτησης απάντησης, οι συγγραφείς επιλέγουν πάλι μια μέθοδο βασισμένη στην μηχανική μάθηση. Ο αλγόριθμος δουλεύει με τμήματα (segments) κειμένου και συγκεκριμένα με παραγράφους των . Μια παράγραφος θεωρείται ερώτηση (question segment) αν περιέχει τουλάχιστον μια πρόταση που είναι ερώτηση και αντίστοιχα απάντηση (answer segment) αν περιέχει μια πρόταση που Μιχαήλ Ν. Ζερβός 66

67 ταξινομείται ως απάντηση. Σε μια συζήτηση (μια σειρά από s με το ίδιο θέμα), για ένα question segment που περιλαμβάνεται στο και ένα πιθανό answer segment που περιλαμβάνεται στο , το διάνυσμα των χαρακτηριστικών περιλαμβάνει τα εξής features: 1. Πλήθος λέξεων στο και στο (εκτός stopwords) 2. Ομοιότητα συνημίτονου μεταξύ - 3. Ευκλείδια απόσταση μεταξύ - 4. Αριθμός ενδιάμεσων μηνυμάτων μεταξύ στο 5. Ο λόγος των στο που στάλθηκαν πριν το προς το σύνολο των στο 6. Αληθές αν το segment είναι το πρώτο segment του πρώτου που στάλθηκε μετά το, διαφορετικά ψευδές 7. Πλήθος υποψήφιων απαντήσεων του 8. Πλήθος υποψήφιων απαντήσεων του μετά το 9. Ο λόγος του πλήθους των υποψήφιων απαντήσεων του πριν το, προς το πλήθος όλων των υποψηφίων απαντήσεων του 10. Αληθές αν το είναι μεγαλύτερο από το για κάθε υποψήφια απάντηση που προηγείται της, διαφορετικά ψευδές Αναγνώριση ευθέων και πλαγίων ερωτήσεων απαντήσεων σε συζητήσεις Οι συγγραφείς της εργασίας [20] ουσιαστικά επεκτείνουν την δουλειά [19] που παρουσιάστηκε στο αμέσως προηγούμενο υποκεφάλαιο (4.2.2). Η διαφοροποίηση είναι ότι προσπαθούν να αναγνωρίσουν όχι μόνο ευθείς αλλά και πλάγιες ερωτήσεις. Επίσης επιλέγουν να δουλέψουν σε επίπεδο πρότασης και όχι παραγράφου. Για την αναγνώριση των ερωτήσεων προτείνουν έναν αλγόριθμο βασισμένο στα regular expressions. Ταξινομεί μια πρόταση ως ερώτηση αν πληροί ένα από τα εξής: 1. Τελειώνει με ερωτηματικό και δεν είναι URL 2. Περιέχει μια φράση που ξεκινάει με λέξεις που ταιριάζουν με κάποια υποδείγματα ερωτήσεων 3. Ταιριάζει με υποδείγματα πλάγιων προτάσεων Μιχαήλ Ν. Ζερβός 67

68 Τα υποδείγματα (patterns) για τα δύο τελευταία κριτήρια δημιουργήθηκαν από τους συγγραφείς και είναι περίπου πενήντα. Τα αποτελέσματα δείχνουν ότι η μέθοδος τους προσφέρει καλύτερα αποτελέσματα από την μέθοδο βασισμένη στην μάθηση που παρουσιάστηκε στο [19] ενώ απαιτεί και πολύ λιγότερο χρόνο. Για την αναγνώριση των απαντήσεων οι συγγραφείς προτείνουν τρεις μεθόδους βασισμένες σε ένα σύνολο χαρακτηριστικών. Η πρώτη είναι ένα σταθμισμένο άθροισμα των χαρακτηριστικών με παραμέτρους που επιλέχτηκαν από τους συγγραφείς. Η δεύτερη μαθαίνει ένα μοντέλο ταξινόμησης με τον αλγόριθμο Ripper [13] όπως και η εργασία [19]. Τέλος, η τρίτη μέθοδος μαθαίνει ένα γραμμικό μοντέλο παλινδρόμησης (linear regression model). Για μια ερώτηση που περιλαμβάνεται στο και μια πιθανή απάντηση που περιλαμβάνεται στο , το σύνολο των χαρακτηριστικών που χρησιμοποιείται και στις τρεις μεθόδους είναι το ακόλουθο: 1. Τα πρώτα οχτώ χαρακτηριστικά (εκτός του 6) που χρησιμοποιήθηκαν και από τους Shrestha και McKeown [19] όπως φαίνονται στο υπό-κεφάλαιο Αληθές αν το είναι η πρώτη απάντηση στο, διαφορετικά ψευδές 9. Αληθές αν το είναι ερώτηση που απευθύνεται σε κάποιον με το ίδιο όνομα με τον αποστολέα του 10. Σημασιολογική (semantic) ομοιότητα μεταξύ και 11. Αληθές αν η έχει τον αναμενόμενο τύπο απάντησης (ναι / όχι, τοπικός / χρονικός προσδιορισμός, αριθμό, κλπ) με βάση την ερώτηση Τα πειραματικά αποτελέσματα δείχνουν ότι οι τρεις μέθοδοι που προτείνουν παρουσιάζουν καλύτερα αποτελέσματα από την μέθοδο στο [19]. Μεταξύ των τριών μεθόδων, αυτή που παράγει τα καλύτερα αποτελέσματα είναι η πρώτη, δηλαδή το σταθμισμένο άθροισμα με παραμέτρους που επιλέχτηκαν από τους συγγραφείς. Όπως και στην αναγνώριση των ερωτήσεων, οι μέθοδοι που προτείνονται είναι σαφώς γρηγορότερες από την αντίστοιχη μέθοδο των S&M. Μιχαήλ Ν. Ζερβός 68

69 5. ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ Η εργασία αυτή, όπως έχει προαναφερθεί, μπορεί να διαχωριστεί σε δύο μέρη. 1. Στην εξαγωγή ερωταποκρίσεων από τις υπάρχουσες δημοσιεύσεις και δημιουργία της βάσης γνώσης. 2. Στην αντιμετώπιση νέων ερωτήσεων που εμφανίζονται στο forum. Το πρώτο μέρος εμφανίζεται στο δεξί κομμάτι του παρακάτω διαγράμματος (Εικόνα 5.1) και το δεύτερο στο αριστερό κομμάτι. Last posts Importer Load / Save Insert posts Monitoring Retrieve Posts Extracted from DB (SQL) Question Detector New Post Question Detector Forum Client Posts Database Possible Answers Yes (Questions) Text Analyzing / Processing HTTP Yes Text Analyzing / Processing FORUM Annotation Application Question Matching Training Q / A Pairing SVM Get Questions KB Access Layer Insert Q/A Pairs Knowledge Base (Q/A Pairs) Εικόνα Διάγραμμα λειτουργίας Μιχαήλ Ν. Ζερβός 69

70 Ο μόνος τρόπος επικοινωνίας αυτών των δύο μερών είναι η βάση γνώσης (Knowledge Base στο διάγραμμα). Κατά την εξαγωγή γνώσης η βάση γεμίζει με τα ζεύγη ερωτήσεων απαντήσεων. Όταν εμφανιστούν νέες δημοσιεύσεις / ερωτήσεις τότε το πρόγραμμα αντιμετώπισης τους, χρησιμοποιεί αυτή την βάση για να ταιριάξει τη νέα ερώτηση με κάποια από τις υπάρχουσες. Στα επόμενα υποκεφάλαια παρουσιάζονται τα δύο αυτά μέρη και τα υποσυστήματα που τα απαρτίζουν. Στο 5.1 αναλύεται το υποσύστημα ανάλυσης και επεξεργασίας κειμένου (Text Analyzing / Processing) που χρησιμοποιείται και στα δύο μέρη του προγράμματος. Το 5.2 αναφέρεται στη βάση γνώσης. Τα 5.3 και 5.4 αναλύουν τα δύο διαφορετικά μέρη / προγράμματα της εργασίας, αυτό της εξαγωγής γνώσης (δεξί μισό του διαγράμματος) και αυτό της αντιμετώπισης νέων ερωτήσεων (αριστερό μισό του διαγράμματος). Ο τρόπος λειτουργίας του συστήματος αναγνώρισης ερωτήσεων βρίσκεται στο 5.3.2, του συστήματος αναγνώρισης ζευγών ερώτησης απάντησης στο και της αναζήτησης στη βάση γνώσης στο Όπως φαίνεται και από το διάγραμμα, η υλοποίηση έχει χωριστεί σε αυτόνομα υποσυστήματα (modules). Έτσι το καθένα από αυτά μπορεί να επεκταθεί αυτόνομα και εύκολα και να επαναχρησιμοποιηθεί σε διάφορα μέρη της εργασίας ή άλλων προγραμμάτων. Όπου χρειάζεται, το σύστημα έχει σχεδιαστεί έτσι ώστε να μπορούν να αντικατασταθούν κλάσεις με άλλες που προσφέρουν αντίστοιχη λειτουργικότητα μέσω πολυμορφισμού (με την χρήση Interfaces στην C#), χωρίς να χρειάζονται περισσότερες αλλαγές. 5.1 Ανάλυση και επεξεργασία κειμένου Το υποσύστημα ανάλυσης και επεξεργασίας κειμένου (Text analyzing / processing) αποτελείται από έναν αριθμό κλάσεων. Οι πιο βασικές είναι: StringExtensions Επεκτάσεις στην κλάση String του.net TextProcessor Επεξεργασία κειμένου GreekStemmer Ελληνικός stemmer Corpus Συλλογή εγγράφων CosineSimilarity Ομοιότητα συνημίτονου Μιχαήλ Ν. Ζερβός 70

71 Σε ορισμένα σημεία του υποσυστήματος γίνονται πράξεις με διανύσματα και πίνακες. Για την λειτουργικότητα αυτή ενσωματώθηκε η βιβλιοθήκη Math.Net Iridium Επεκτάσεις της κλάσης string Η κλάση StringExtensions επεκτείνει την κλάση String του.net με τις τέσσερις συναρτήσεις. Η RemoveAccentuation() αφαιρεί τον τονισμό και τα διαλυτικά από τους χαρακτήρες. Η SplitSentences() χωρίζει ένα string σε προτάσεις και επιστρέφει μια λίστα με αυτές. Λειτουργεί χωρίζοντας την πρόταση στα σημεία που ισχύει το regular expression "(?<=[\.!\?;])\s+". Ουσιαστικά χωρίζει όταν βρίσκει κάποιους χαρακτήρες τερματισμού πρότασης που ακολουθούνται από κενό. Η SplitWords() χωρίζει μια πρόταση σε λέξεις. Και αυτή χωρίζει την πρόταση με βάση το regular expression "\W+" και επιστρέφει τις μη-κενές λέξεις. Η CountWords() επιστρέφει τον αριθμό των λέξεων σε ένα string Επεξεργασία κειμένου Η κλάση TextProcessor παρέχει δύο βασικές μεθόδους. H μέθοδος Preprocess() αφαιρεί τον τονισμό (μέσω της StringExtensions) και μετατρέπει σε κεφαλαία το δοθέν string. Η μέθοδος RemoveStopwords() διαγράφει τις stopwords από ένα string ή από μια λίστα από λέξεις που της δίνεται ως παράμετρος. Οι stopwords μπορούν να φορτωθούν από αρχείο ή να δοθούν στην κλάση ως παράμετροι. Το κείμενο που εξάγεται από το forum περιέχει κώδικα μορφοποίησης BBCode, ειδικούς χαρακτήρες html (πχ ) και emoticons. Για να είναι δυνατή η επεξεργασία του κείμενου, πρέπει να αφαιρεθούν ή να αντικατασταθούν όλα αυτά τα στοιχεία. Για το λόγο αυτό δημιουργήθηκε η κλάση BBCodeStripper, η οποία παρέχει την μέθοδο Strip(). Η Strip() βασίζεται εξ ολοκλήρου σε Regular Expressions και ο κώδικας της μπορεί να βρεθεί στο Παράρτημα Stemmer Το Stemming είναι η διαδικασία μετατροπής μια λέξης στην ρίζα της, όπως περιγράφηκε στο κεφάλαιο 2.2. Αν και υπάρχουν διάφοροι stemmers στο διαδίκτυο και στη βιβλιογραφία για την Αγγλική γλώσσα, για τα Ελληνικά υπάρχει ουσιαστικά μόνο 1 Math.Net Iridium - Μιχαήλ Ν. Ζερβός 71

72 ένας ο οποίος έχει υλοποιηθεί στη γλώσσα javascript 1 και στη συνέχεια δημιουργήθηκε ένα port σε php 2. Για τις ανάγκες τις εργασίας, έκανα port αυτή την έκδοση στη γλώσσα C#. Ο τρόπος λειτουργίας του συγκεκριμένου stemmer βασίζεται σε κανόνες αλλά είναι αρκετά πολύπλοκος και ξεφεύγει από αυτή την εργασία. Περισσότερες πληροφορίες για τον συγκεκριμένο stemmer υπάρχουν στο [21]. Η κλάση GreekStemmer υλοποιεί το interface IStemmer (έτσι ώστε να μπορεί εύκολα να αντικατασταθεί με κάποιον άλλον) και παρέχει δύο μεθόδους, την StemWord() που επιστρέφει τη ρίζα μιας λέξης και την StemWords() που κάνει το ίδιο αλλά για πολλές λέξεις. Η δεύτερη χρησιμοποιεί εσωτερικά ένα ευρετήριο για να μην επαναλαμβάνει την ίδια διαδικασία πολλές φορές για λέξεις που έχουν υπολογιστεί. Κάθε λέξη που περνάει στον Stemmer πρέπει να έχει προ-επεξεργαστεί ώστε να μην έχει τονισμό και να είναι με κεφαλαία Συλλογή έγγραφων Corpus Το Corpus αποτελείται ουσιαστικά από μια συλλογή εγγράφων και διάφορες πληροφορίες για αυτά. Το κάθε έγγραφο (Document) αποτελεί μια κλάση με πεδία για τον τίτλο, το κείμενο, το μέγεθος, τους όρους που περιέχει και ένα αναγνωριστικό. Το διάγραμμα της κλάσης Document φαίνεται στην Εικόνα 5.2. Εικόνα Διάγραμμα κλάσης Document Το Corpus εκτός από την λίστα με τα έγγραφα, υπολογίζει και αποθηκεύει και διάφορες άλλες πληροφορίες που είναι χρήσιμες για την αναζήτηση σε αυτό. Περιέχει ένα ευρετήριο των όρων που υπάρχουν στα έγγραφα (TermIndex) καθώς επίσης για κάθε όρο, μια λίστα από τα έγγραφα τα οποία τον περιέχουν (Postings). Τέλος, περιέχει τον πίνακα TfIdfMatrix μεγέθους που αποθηκεύει τα TF- 1 Ελληνικός Stemmer Javascript Ελληνικός Stemmer PHP - Μιχαήλ Ν. Ζερβός 72

73 IDF scores για κάθε ζεύγος όρου κειμένου. Το διάγραμμα της κλάσης φαίνεται στην Εικόνα 5.3. Η συνάρτηση PreprocessDocuments()χρησιμοποιεί τις μεθόδους που έχουν περιγραφεί προηγουμένως για να κάνει τις ακόλουθες διεργασίες: Αφαιρεί τον τονισμό Μετατροπή σε κεφαλαία Αφαίρεση stopwords Stemming Τα stems που θα προκύψουν μετά από αυτή τη διαδικασία αποτελούν τους όρους (Terms). Στο υπόλοιπο της εργασίας ως όρος αναφέρεται κάθε stem που έχει δημιουργηθεί ύστερα από επεξεργασία κατ αυτό τον τρόπο. Εικόνα Διάγραμμα κλάσης Corpus Η συνάρτηση BuildIndexAndPostings() δημιουργεί το ευρετήριο και τα postings. Εισάγει κάθε ξεχωριστό όρο που εμφανίζεται στα έγγραφα στο ευρετήριο και του αποδίδει ένα αναγνωριστικό. Επίσης, εισάγει τα έγγραφα που περιέχουν τον κάθε όρο στο αντίστοιχο σύνολο του Postings. Για την αποθήκευση του ευρετηρίου έχει χρησιμοποιηθεί η δομή Dictionary που προσφέρει αναζητήσεις με βάση το κλειδί (όρος) Μιχαήλ Ν. Ζερβός 73

74 σε χρόνο κοντά στο καθώς υλοποιείται εσωτερικά ως hash table. Για την αποθήκευση των Postings έχει χρησιμοποιηθεί πάλι η δομή Dictionary για την αντιστοίχιση όρου σε σύνολο με έγγραφα. Το σύνολο των εγγράφων αποθηκεύεται σε μια δομή OrderedSet. Η δομή αυτή αποτελεί ένα σύνολο το οποίο σημαίνει ότι κάθε αντικείμενο (αναγνωριστικά κειμένων στην προκειμένη περίπτωση) περιέχεται μόνο μια φορά. Έτσι κατά την εισαγωγή των εγγράφων στο σύνολο δεν χρειάζεται έλεγχος αν ήδη υπάρχουν καθώς το φροντίζει εσωτερικά η κλάση. Η συνάρτηση BuildMatrix() δημιουργεί τον πίνακα TfIdfMatrix του Corpus. Έχει μια γραμμή για κάθε όρο του ευρετηρίου και μια στήλη για κάθε έγγραφο, δηλαδή το μέγεθος του είναι. Το στοιχείο του πίνακα αποτελεί το TF-IDF score του όρου στο έγγραφο. Ένα παράδειγμα φαίνεται παρακάτω (Πίνακας 6.1). Κάθε στήλη του πίνακα είναι κανονικοποιημένη και αποτελεί το διάνυσμα αναπαράστασης του εγγράφου αυτού στο μοντέλο διανυσματικού χώρου (Κεφάλαιο 2.3). Έγγραφο 1 Έγγραφο 2 Έγγραφο 3 Έγγραφο 4 «τεχνητή» «υπολογιστής» «ADSL» Πίνακας TF-IDF πίνακας για μια συλλογή κειμένων Ο πίνακας αυτός μπορεί να χρησιμοποιηθεί στην συνέχεια για να υπολογιστεί πολύ γρήγορα η ομοιότητα συνημιτόνου μεταξύ ενός query string και κάθε εγγράφου στο corpus. Ο τρόπος δημιουργίας του πίνακα θα παρουσιαστεί στο αμέσως επόμενο υποκεφάλαιο σε ένα ενιαίο πλαίσιο με την ομοιότητα συνημιτόνου Ομοιότητα συνημιτόνου σε συλλογή εγγράφων Η κλάση CosineSimilarity δουλεύει πάνω σε μια συλλογή εγγράφων. Σκοπός της είναι ο υπολογισμός της ομοιότητας συνημιτόνου μεταξύ ενός query string και κάθε εγγράφου της συλλογής. Η βασική μέθοδος που παρέχει είναι η GetSimilarity() η οποία επιστρέφει μια λίστα με έγγραφα και την ομοιότητα του καθενός. Όπως είχε παρουσιαστεί στο αντίστοιχο κεφάλαιο (Cosine Similarity 2.3.2) η ομοιότητα συνημιτόνου μεταξύ δύο διανυσμάτων (κειμένων) είναι: Μιχαήλ Ν. Ζερβός 74

75 Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων όπου το term frequency του όρου στο έγγραφο και το inverse document frequency του όρου στην συλλογή κειμένων. Όμως το να υπολογίζει κανείς κάθε φορά το μεταξύ του query string και κάθε εγγράφου με αυτό τον τρόπο είναι πάρα πολύ ακριβό. Η παραπάνω εξίσωση μπορεί να γραφτεί ως: Όπου κάθε στοιχείο των είναι ένα. Τα αντίστοιχα κανονικοποιημένα διανύσματα και είναι: Οπότε το συνημίτονο της γωνίας τους γίνεται: Άρα μπορεί κανείς να έχει αποθηκευμένο το διάνυσμα για κάθε έγγραφο και όταν χρειάζεται να το πολλαπλασιάζει με το διάνυσμα της επερώτησης. Τα διανύσματα κάθε εγγράφου μια συλλογής κειμένων εισάγονται ως στήλες στον πίνακα. Έστω ότι υπάρχουν όροι και έγγραφα. Τότε ο πίνακας έχει μέγεθος. Πολλαπλασιάζοντας το διάνυσμα με τον παίρνουμε ένα διάνυσμα, του οποίου το στοιχείο είναι η ομοιότητα του query string με το έγγραφο [ ] Άρα ουσιαστικά η συνάρτηση GetSimilarity() δημιουργεί το διάνυσμα της επερώτησης και το πολλαπλασιάζει με τον πίνακα (τον TfIdfMatrix του Corpus) και επιστρέφει τα έγγραφα (μαζί με το αντίστοιχο similarity score ) για τα οποία. Το μόνο που μένει να περιγραφεί είναι ο τρόπος δημιουργίας του διανύσματος και του πίνακα. Κάθε στοιχείο (tf-idf score του αντίστοιχου όρου) του διανύσματος υπολογίζεται ως εξής: Μιχαήλ Ν. Ζερβός 75

76 1: Συνάρτηση TermTfIdf (t, terms) 2: 3: 4: 5: Αν τότε 6: 7: Επέστρεψε Αλγόριθμος Υπολογισμός διανύσματος TF-IDF για μια επερώτηση Όπου Postings η δομή που περιέχει τις λίστες με τα έγγραφα που περιέχουν κάθε όρο, όπως περιγράφηκε στο προηγούμενο υποκεφάλαιο και ο αριθμός των εγγράφων στο corpus. Αφού υπολογιστεί κάθε όρος του, γίνεται κανονικοποίησή του διανύσματος και έχουμε το. Η συναρτήσεις που υλοποιούν την παραπάνω διαδικασία είναι οι BuildTfIdfVector() και TermTfIdf() της κλάσης CosineSimilarity. Ο υπολογισμός του για μια συλλογή κειμένων με όρους γίνεται ως εξής: 1: Συνάρτηση BuildMatrix () 2: Αρχικοποίηση 3: Για κάθε έγγραφο 4: Για κάθε όρο 5: 6: 7: Για κάθε έγγραφο 8: Για κάθε όρο 9: 10: Για κάθε όρο 11: 12: Για κάθε έγγραφο 13: Αν τότε 14: 15: Για κάθε έγγραφο 16: 17: Για κάθε έγγραφο 18: 19: Επέστρεψε Αλγόριθμος Υπολογισμός πίνακα TF-IDF μιας συλλογής κειμένων Ο αλγόριθμος αυτός λειτουργεί σε τέσσερα στάδια. Αρχικά γεμίζει τον πίνακα με τα terms count, στη συνέχεια τα μετατρέπει σε term frequency, έπειτα υπολογίζει το inverse document frequency και μετατρέπει της τιμές σε tf-idf και τέλος κανονικοποιεί κάθε στήλη (διάνυσμα εγγράφου) του πίνακα. Η συνάρτηση που υλοποιεί αυτό τον αλγόριθμο είναι η BuildMatrix() της κλάσης Corpus. Μιχαήλ Ν. Ζερβός 76

77 Έχοντας λοιπόν τα και η συνάρτηση GetSimilarity() της κλάσης CosineSimilarity μπορεί να επιστρέψει την ομοιότητα για κάθε έγγραφο με έναν πολλαπλασιασμό διανύσματος πίνακα. 5.2 Βάση γνώσης Η βάση γνώσης αποτελεί κεντρικό κομμάτι της πλατφόρμας αφού χρησιμοποιείται και από τα δύο ξεχωριστά προγράμματα / μέρη που υλοποιήθηκαν. Εκεί αποθηκεύονται τα ζεύγη ερωτήσεων απαντήσεων που εξάγονται από το forum. Αποτελείται από μια βάση δεδομένων στον SQL Server 2008 και ένα data access layer Δομή Η βασική δομή της βάσης δεδομένων αποτελείται από τρεις πίνακες και τις αντίστοιχες σχέσεις μεταξύ τους, όπως φαίνεται στην Εικόνα 5.4. Οι πίνακες αυτοί είναι οι: Questions Answers Pairs Εικόνα Διάγραμμα βάσης γνώσης Μιχαήλ Ν. Ζερβός 77

78 Στον πίνακα Questions αποθηκεύονται οι ερωτήσεις. Κάθε ερώτηση έχει ένα αναγνωριστικό id, το κείμενο που την αποτελεί (text), κάποιες προαιρετικές πληροφορίες για την προέλευση της (postid, threadid, userid) και το confidence, το οποίο είναι μια τιμή στο διάστημα που δείχνει κατά πόσο ο Question Classifier πιστεύει ότι πρόκειται για ερώτηση. Ο πίνακας Answers αποθηκεύει απαντήσεις. Κάθε μια αποτελείται από ένα αναγνωριστικό id, το κείμενο text και κάποιες πληροφορίες προέλευσης από το forum. Στον πίνακα Pairs αποθηκεύονται τα ζεύγη ερωτήσεων απαντήσεων. Κάθε ζεύγος έχει ένα αναγνωριστικό id, το αναγνωριστικό της ερώτησης questionid, το αναγνωριστικό της απάντησης answerid, το μέτρο confidence που λέει κατά πόσο η δεδομένη απάντηση είναι απάντηση στην ερώτηση και παίρνει τιμή στο και το rating το οποίο μπορεί να χρησιμοποιηθεί για την αξιολόγηση του ζεύγους ερώτησης απάντησης. Κάθε ερώτηση μπορεί να έχει πολλές πιθανές απαντήσεις, οπότε να υπάρχουν περισσότερα του ενός ζευγάρια με το ίδιο questionid. Αντίστοιχα μια δημοσίευση μπορεί να είναι απάντηση σε περισσότερες από μια ερωτήσεις (συνήθως παραπλήσιες) Access Layer Το Data Access Layer (DAL) δίνει την δυνατότητα για εύκολη προσπέλαση της βάσης δεδομένων μέσω συναρτήσεων για εισαγωγή, ανάκτηση και διαγραφή. Επίσης, η προσπέλαση της βάσης μέσω αυτού έχει το πλεονέκτημα ότι σε περίπτωση αλλαγής του σχήματος της βάσης, χρειάζεται να αλλάξει μόνο ο κώδικας στο DAL. Ακόμα, μπορεί να αλλάξει η υλοποίηση μια συνάρτησης του DAL για καλύτερες επιδόσεις χωρίς να χρειαστεί να αλλάξει ο κώδικας οπουδήποτε αλλού. Τέλος το DAL προσφέρει κλάσεις που αντιστοιχούν σε κάθε πίνακα της βάσης. Για κάθε πίνακα, δημιουργείται μια κλάση με τα ίδια πεδία και τύπους όπως ο πίνακας, ώστε να είναι εύκολη η επικοινωνία με τη βάση. Το DAL αποτελείται από την κλάση KnowledgeBase και τις LINQ to SQL κλάσεις για τους πίνακες της βάσης που δημιουργήθηκαν (κλάσεις Question, Answer, Pair, PairFeatures). Βασίζεται στην τεχνολογία LINQ to SQL 1 που δίνει τη δυνατότητα για queries στη βάση SQL που είναι ενσωματωμένα στον κώδικα (LINQ - Language Integrated Query). 1 LINQ to SQL - Μιχαήλ Ν. Ζερβός 78

79 Η κλάση KnowledgeBase περιέχει τέσσερις κατηγορίες συναρτήσεων για εισαγωγή, ανάκτηση, τροποποίηση και διαγραφή. Για εισαγωγή είναι οι βασικές: AddQuestion(), AddAnswer(), AddPair(), AddPairFeatures(), η κάθε μια από τις οποίες έχει αρκετές overload συναρτήσεις για διαφορετικά (ή λιγότερα) ορίσματα. Στον κώδικα (Παράρτημα) μπορεί κανείς να δει όλες τις διαφορετικές εκδοχές. Επίσης, παρέχεται η AddQuestionAnswerAsPair() η οποία εισάγει την ερώτηση, την απάντηση και το μεταξύ τους pair στη βάση. Όλες οι συναρτήσεις εισαγωγής επιστρέφουν τα id με τα οποία καταχωρήθηκαν τα αντίστοιχα αντικείμενα στην βάση. Αντίστοιχα, υπάρχουν μέθοδοι για διαγραφή και τροποποίηση των δεδομένων στην βάση δεδομένων οι οποίες μπορούν να βρεθούν στο παράρτημα. Για την ανάκτηση δεδομένων από την βάση παρέχονται εκτός από τις προφανείς GetQuestionById(), GetAnswerById(), GetPairById()και κάποιες ακόμα. Συγκεκριμένα η GetQuestions() επιστρέφει μια λίστα με όλες τις ερωτήσεις στην βάση γνώσης. Η GetQuestionAnswerByPairId()επιστρέφει την ερώτηση και την απάντηση που αντιστοιχεί στο ζευγάρι με το id που ζητείται. Η GetAnswersByQuestionId() επιστρέφει τις απαντήσεις που έχουν αντιστοιχηθεί σε μια ερώτηση, είτε όλες ή τις n (παράμετρος) με το μεγαλύτερο confidence. 5.3 Εξόρυξη γνώσης από το forum Η διαδικασία της εξόρυξης γνώσης μπορεί να χωριστεί σε δύο κομμάτια. Το πρώτο κομμάτι είναι η εξαγωγή των δημοσιεύσεων από το forum, η προ-επεξεργασία του κειμένου και η αποθήκευση τους με μια φιλικότερη μορφή σε μια βάση δεδομένων. Πρόκειται για το module Importer στο διάγραμμα της υλοποίησης (Εικόνα 5.1) και αναλύεται στο Το δεύτερο κομμάτι είναι η αναγνώριση των ερωτήσεων μεταξύ όλων των δημοσιεύσεων (κεφάλαιο 5.3.2), η αναγνώριση των απαντήσεων σε αυτές τις ερωτήσεις (κεφάλαιο 5.3.3), και τέλος η αποθήκευση των ζευγών ερώτησης απάντησης στη βάση γνώσης (κεφάλαιο 5.3.4) Εξαγωγή δημοσιεύσεων και αποθήκευση τους Για την εξαγωγή των δημοσιεύσεων από το forum, επιλέχθηκε η απευθείας ανάκτηση τους μέσω της βάσης δεδομένων αφού υπήρχε πρόσβαση σε αυτήν. Σε διαφορετική Μιχαήλ Ν. Ζερβός 79

80 περίπτωση θα έπρεπε να γίνει crawling του forum, διαδικασία η οποία είναι περίπλοκη. Ένας τρόπος για crawling σε forum παρουσιάζεται στο [22]. Τα δεδομένα μετά την εξαγωγή τους από τη βάση ήταν διαθέσιμα σε ένα αρχείο κειμένου με συγκεκριμένη μορφή. Για το διάβασμα του αρχείου, το parsing των δεδομένων, την προ-επεξεργασία των κειμένων και την αποθήκευση τους στη βάση δεδομένων δημιουργήθηκε ένα πρόγραμμα (Importer στο διάγραμμα). Ο Importer περιέχει την κλάση Parser η οποία αναλαμβάνει να κάνει parse τα δεδομένα του αρχείου κυρίως με χρήση Regular Expressions και κώδικα για την αποθήκευση αυτών των δεδομένων στη βάση δεδομένων (Posts Database στην Εικόνα 5.1). Η βάση αυτή περιέχει πίνακες για τις δημοσιεύσεις (Posts), τα νήματα (Threads) και τους χρήστες (Users). Ουσιαστικά αποτελεί μια μικρογραφία της βάσης του πραγματικού forum με τα δεδομένα που χρειάζονται για την εργασία. Επίσης περιέχει πίνακες για το annotation των δημοσιεύσεων που χρειάζεται για την εκπαίδευση του υποσυστήματος αναγνώρισης ζευγών ερώτησης απάντησης, όπως περιγράφεται αργότερα. Η δομή αυτής της βάσης φαίνεται στην Εικόνα 5.5. Εικόνα Διάγραμμα βάσης Posts Database Μιχαήλ Ν. Ζερβός 80

81 Ο κώδικας του Importer μπορεί να βρεθεί στο παράρτημα Αναγνώριση ερωτήσεων Η διαδικασία της ταξινόμησης μιας δημοσίευσης ως ερώτηση προς αποθήκευση γίνεται σε δύο στάδια. Αρχικά, η δημοσίευση ταξινομείται ως ερωτηματική αν περιέχει τουλάχιστον μια πρόταση που είναι ερώτηση. Στην συνέχεια, γίνεται προσπάθεια να υπολογιστεί η «σημαντικότητα» της δημοσίευσης / ερώτησης, για να αποφασιστεί αν θα αξιολογηθεί συνολικά ως χρήσιμη ερώτηση για να εισαχθεί στην βάση γνώσης. Για παράδειγμα και οι δύο ακόλουθες δημοσιεύσεις ταξινομήθηκαν αρχικά ως ερωτηματικές. Όμως μόνο η πρώτη έχει αξία να αποθηκευτεί ως χρήσιμη ερώτηση. Δημοσίευση 1: «Αν ο compiler μου βγαζει αυτο το μηνυμα τι σημαινει? "ISO C++ forbids declaration of `main' with no type "». Δημοσίευση 2: «Αν λοιπόν έδινες σε ένα παιδί δημοτικού τις παραπάνω οδηγίες και του έλεγες να ελέγξει τον αριθμό 8128 πιστεύεις πως θα κόλλαγε σε κάποιο από τα βήματα του αλγορίθμου σου? Μόλις θα έφτανε» (Έχει περικοπεί το μεγαλύτερο μέρος της δημοσίευσης στην αρχή και στο τέλος για εξοικονόμηση χώρου) Πριν ξεκινήσει ο αλγόριθμος αναγνώρισης το κείμενο προ-επεξεργάζεται με τις κλάσεις που έχουν περιγραφεί στο 5.1 για να διαγραφεί ο κώδικας μορφοποίησης BBCode, να αφαιρεθούν οι παραθέσεις (quote), κλπ. Το πρώτο μέρος του αλγορίθμου, που αναγνωρίζει αν υπάρχει ερωτηματική πρόταση σε μια δημοσίευση βασίζεται σε έναν συνδυασμό ευριστικών συναρτήσεων και σε μια σειρά από patterns που προσπαθεί να ταιριάξει. Η δημοσίευση αρχικά χωρίζεται σε προτάσεις, και κάθε πρόταση χωρίζεται σε φράσεις με βάση το κόμμα. Για την αναγνώριση χρησιμοποιούνται η πρώτη και η τελευταία (αν υπάρχει) φράση αφού αυτές αποτελούν την καλύτερη ένδειξη. Τις περισσότερες φορές, ενδιάμεσες προτάσεις περιέχουν επεξηγήσεις. Οι ευριστικές συναρτήσεις που χρησιμοποιούνται είναι οι ακόλουθες: Ύπαρξη ερωτηματικού στο τέλος της πρότασης Αρχή της πρότασης / φράσης με μια ερωτηματική λέξη κλειδί (π.χ. πότε) Αρχή της πρότασης / φράσης με μια λιγότερη πιθανή ερωτηματική λέξη κλειδί Επίσης, ο ταξινομητής ελέγχει αν η φράση ταιριάζει σε ένα από τα 20 patterns (regular expressions) που δημιουργήθηκαν για το σκοπό αυτό. Τα 14 από αυτά αποτελούν μια Μιχαήλ Ν. Ζερβός 81

82 πιο ισχυρή ένδειξη για ερώτηση, ενώ τα άλλα 6 λιγότερο. Ένα παράδειγμα αποτελεί το: "^ΜΠΟΡΕΙ\s+(ΚΑΠΟΙΟΣ ΚΑΝΕΙΣ)\s+(ΝΑ)\s". Συνδυάζοντας τα αποτελέσματα των ευριστικών και το κατά πόσο βρέθηκε ένα pattern, δημιουργείται το confidence που λέει κατά πόσο η φράση / πρόταση αποτελεί ερώτηση. Αφού ο αλγόριθμος τρέξει σε όλες τις προτάσεις, επιστρέφεται το υψηλότερο σκορ και η αντίστοιχη πρόταση που το περιείχε (αν είναι μεγαλύτερο του μηδενός). Ο κώδικας των ευριστικών βρίσκεται στην κλάση QuestionDetectorHeuristics, ενώ αυτός των patterns στην κλάση QuestionPatternMatcher. Η κλάση που είναι υπεύθυνη για την αναγνώριση των ερωτηματικών δημοσιεύσεων είναι η QuestionDetector. Η συνάρτηση που περιγράφηκε και αποφασίζει αν υπάρχει ερώτηση σε ένα post είναι η DetectQuestion(). Το δεύτερο μέρος του αλγορίθμου προσπαθεί να καταλάβει και να αποκλείσει ερωτήσεις που δεν έχουν ιδιαίτερη αξία για να αποθηκευτούν. Στο στάδιο αυτό ελέγχονται οι εξής παράμετροι: Χρήστης που έκανε την δημοσίευση Μέγεθος δημοσίευσης Αριθμός παραθέσεων (quote) στην δημοσίευση Ερώτηση μέσα σε εισαγωγικά ή παρενθέσεις Συνήθως οι ερωτήσεις γίνονται από τους φοιτητές και όχι από καθηγητές ή συνεργάτες μαθήματος. Με βάση αυτό, οι δημοσιεύσεις από τους δεύτερους αγνοούνται. Έχει παρατηρηθεί ότι οι «καλές» ερωτήσεις δεν είναι πολύ μεγάλες σε μέγεθος, ούτε πολύ μικρές (π.χ. «Σωστά?»). Έτσι οι δημοσιεύσεις που βγαίνουν εκτός των ορίων λαμβάνουν μικρότερη τιμή confidence. Επίσης, οι ερωτηματικές δημοσιεύσεις σπάνια κάνουν quote κάποια άλλη δημοσίευση. Γι αυτό το confidence μειώνεται με βάση τον αριθμό των παραθέσεων που περιλαμβάνει μια δημοσίευση. Τέλος, οι ερωτήσεις μέσα σε εισαγωγικά, συνήθως έχουν αντίστοιχη σημασία με τα quotes, ενώ αυτές που βρίσκονται μέσα σε παρενθέσεις δεν αποτελούν το βασικό μήνυμα της δημοσίευσης, οπότε αγνοούνται. Ο κώδικας για το δεύτερο μέρος του αλγορίθμου βρίσκεται στη συνάρτηση RefineDetection(). Η ολοκληρωμένη ταξινόμηση μιας «καλής» ερωτηματικής δημοσίευσης γίνεται στη συνάρτηση DetectValuableQuestionPost(), η οποία καλεί τις δύο προαναφερθείσες συναρτήσεις. Μιχαήλ Ν. Ζερβός 82

83 Αφού αποκλειστούν οι «κακές» ερωτήσεις, αποθηκεύονται όσες έχουν μείνει για να περάσουν στο επόμενο στάδιο. Πριν αναζητηθούν οι απαντήσεις τους, μπορεί να υπάρξει ένας ενδιάμεσος χειροκίνητος έλεγχος και περεταίρω διαγραφή άχρηστων ερωτήσεων, καθώς το πρόγραμμα δεν είναι σε θέση να φιλτράρει 100% τις ερωτήσεις που χρειάζονται Εύρεση ζευγών ερωτήσεων απαντήσεων Η μέθοδος που προτείνεται και υλοποιείται, για την αναγνώριση της απάντησης σε μια δεδομένη ερώτηση, βασίζεται στις μηχανές διανυσμάτων υποστήριξης (SVM Κεφάλαιο 3.4). Ως υποψήφιες απαντήσεις σε μια ερωτηματική δημοσίευση, θεωρούνται οι 10 επόμενες δημοσιεύσεις μετά την ερώτηση, στο ίδιο νήμα. Το όριο αυτό δόθηκε για δύο λόγους. Πρώτον, γιατί πολύ σπάνια μια ερώτηση θα απαντηθεί τόσο αργότερα από κάποιον χρήστη (το πιο πιθανό είναι να μην απαντηθεί καθόλου αν μεσολαβούν πολλές δημοσιεύσεις) και δεύτερον για λόγους απόδοσης, καθώς δεν είναι δυνατόν να ελέγχονται όλες οι δημοσιεύσεις του νήματος. Στην περίπτωση που βρεθούν περισσότερες από μια απαντήσεις, επιλέγεται αυτή με την μεγαλύτερη πιθανότητα όπως επιστρέφεται από τον ταξινομητή SVM. Για μια δεδομένη ερωτηματική δημοσίευση Μιχαήλ Ν. Ζερβός 83 και μια υποψήφια απάντηση / δημοσίευση, τα χαρακτηριστικά (features) που χρησιμοποιούνται είναι τα εξής: ID Χαρακτηριστικό Τύπος Εύρος τιμών 1 Αν η Q γίνεται quote στην A Boolean 0 / 1 2 Είδος χρήστη (φοιτητής ή καθηγητής/συνεργάτης) που δημοσίευσε την Α 3 Πλήθος posts που μεσολαβούν μεταξύ Α και Q 4 Ομοιότητα συνημιτόνου μεταξύ Q και Α μετά από αφαίρεση stopwords και stemming Boolean 0 / 1 Φυσικός Αριθμός Πραγματικός Αριθμός [0, 20) [0, 1] 5 Αν η Α περιέχει code tag Boolean 0 / 1 Πίνακας Χαρακτηριστικά του Question - Answer Pairing SVM Το 1 ο χαρακτηριστικό είναι ίσως και το πιο σημαντικό, αφού στα fora όταν κάποιος θέλει να απαντήσει σε μια δημοσίευση συνηθίζεται να την παραθέτει. Η επιλογή του 2 ου χαρακτηριστικού έγινε με βάση το ότι οι καθηγητές και οι συνεργάτες του μαθήματος έχουν μεγαλύτερη γνώση και συνηθίζουν να απαντούν, παρά να κάνουν ερωτήσεις. Το

84 3 ο χαρακτηριστικό επιλέχτηκε διότι η απάντηση σε μια ερώτηση συνήθως βρίσκεται ορισμένα posts χαμηλότερα. Το 4 ο χαρακτηριστικό προσπαθεί να «συλλάβει» λεξιλογικές ομοιότητες στην ερώτηση και την απάντηση. Τέλος, το γεγονός ότι μια δημοσίευση περιέχει κομμάτι κώδικα μπορεί να είναι μια ένδειξη για το αν είναι απάντηση (5 ο χαρακτηριστικό), αφού έχει ήδη αποκλειστεί το ενδεχόμενο να είναι ερώτηση. Ο υπολογισμός των τιμών των χαρακτηριστικών είναι απλός. Πριν αυτά χρησιμοποιηθούν, γίνεται scaling στο [0, 1] για να αποφευχθούν αριθμητικά προβλήματα. Ο πυρήνας που επιλέχτηκε είναι ο RBF (Radial Basis Function): Ο RBF kernel κάνει map τα δεδομένα εισόδου σε έναν χώρο μεγαλύτερης διάστασης και έτσι μπορεί να χειριστεί μη γραμμικά διαχωρίσιμα προβλήματα. Επίσης, η αποτελεσματικότητα του SVM βασίζεται κατά πολύ στην επιλογή των σωστών παραμέτρων και ο RBF έχει μόνο δύο, το και το (soft-margin παράμετρος, ένας όρος που «τιμωρεί» τις λάθος ταξινομήσεις). Για τον προσδιορισμό του βέλτιστου συνδυασμού και, δοκιμάζονται διάφορες τιμές τους από ένα πλέγμα. Κάθε συνδυασμός ελέγχεται με N-fold cross validation στο σύνολο εκπαίδευσης. Ο συνδυασμός παραμέτρων που δίνει το καλύτερο αποτέλεσμα χρησιμοποιείται για την εκπαίδευση του μοντέλου. Περισσότερες πληροφορίες για αυτή τη διαδικασία μπορούν να βρεθούν στο [23]. Το υποσύστημα αναγνώρισης απάντησης υλοποιείται βασικά στις κλάσεις AnswerDetector και AnswerDetectorSVM. Η μηχανή διανυσμάτων υποστήριξης που χρησιμοποιείται είναι η LIBSVM [24] και ο wrapper της για.νετ, libsvmwrapper 1 (ο οποίος επεκτάθηκε για τις ανάγκες της εργασίας). Για το format των αρχείων με τα δεδομένα εκπαίδευσης και δοκιμής ο αναγνώστης παραπέμπεται στο [24]. Η κλάση AnswerDetectorSVM αποτελεί ένα ενδιάμεσο layer και προορίζεται για εσωτερική χρήση από την AnswerDetector. Οι μέθοδοι που προσφέρουν οι δύο αυτές κλάσεις φαίνονται στην Εικόνα LIBSVM Wrapper για.net - Μιχαήλ Ν. Ζερβός 84

85 Η Train() είναι υπεύθυνη για την εκπαίδευση του SVM. Η Test() δοκιμάζει τον SVM σε ένα σύνολο δεδομένων που παρέχονται τα σωστά labels και επιστρέφει τα αποτελέσματα με την μορφή τριών μετρικών (Precision, Recall, F 1 Κεφάλαιο 6.1). Η Classify() ταξινομεί μια υποψήφια απάντηση και επιστρέφει ένα confidence value για το κατά πόσο αποτελεί πραγματικά απάντηση. Η ClassifyAll() ταξινομεί όλες τις υποψήφιες απαντήσεις για μια δεδομένη ερώτηση. Εικόνα Διαγράμματα κλάσεων AnswerDetector και AnswerDetectorSVM Αποθήκευση στη βάση γνώσης Αφού έχει αναγνωριστεί ένα ζεύγος ερώτησης απάντησης, ελέγχεται αν η ερώτηση και η απάντηση υπάρχουν ήδη στη βάση γνώσης και αν όχι εισάγονται. Έπειτα εισάγεται και το αντίστοιχο Pair μεταξύ τους. Αν μια ερώτηση που αναγνωρίστηκε, δεν είχε υποψήφιες απαντήσεις, μπορεί να εισαχθεί στο σύστημα ώστε να δώσει ο διαχειριστής μια απάντηση χειροκίνητα και να αποθηκευτεί ως ζεύγος. Ο έλεγχος και η εισαγωγή επιτυγχάνονται με τη χρήση των συναρτήσεων του DAL της βάσης γνώσης (κεφάλαιο 5.2.2). 5.4 Αντιμετώπιση νέων ερωτήσεων Αφού έχει δημιουργηθεί μια βάση γνώσης με τα ζεύγη ερωτήσεων απαντήσεων, το δεύτερο μέρος της εργασίας είναι η παρακολούθηση του forum για νέες απορίες. Αν μια νέα ερώτηση είναι παραπλήσια με κάποια που υπάρχει στη βάση γνώσης, τότε το πρόγραμμα αναλαμβάνει να απαντήσει αυτόματα με μια δημοσίευση. Για τον σκοπό αυτό δημιουργήθηκε το πρόγραμμα αντιμετώπισης νέων ερωτήσεων. Τα μέρη του προγράμματος αυτού εμφανίζονται στο αριστερό μισό του διαγράμματος υλοποίησης (Εικόνα 5.1). Αναλυτικά είναι τα εξής υποσυστήματα: Μιχαήλ Ν. Ζερβός 85

86 Forum Client Forum Monitoring Text Analyzing / Processing Question Classifier Question Matching Ο Forum Client αναλαμβάνει την επικοινωνία με το forum και μια πιο αναλυτική περιγραφή του βρίσκεται στο κεφάλαιο Το υποσύστημα παρακολούθησης (Forum Monitoring) ελέγχει το forum για νέες δημοσιεύσεις. Παρουσιάζεται αναλυτικότερα στο κεφάλαιο Ο Question Classifier είναι υπεύθυνος για την ταξινόμηση ενός κειμένου ως ερώτηση ή όχι και είναι ο ίδιος με αυτόν που χρησιμοποιήθηκε και αναλύθηκε στο κεφάλαιο Το υποσύστημα Question Matching έχει ως σκοπό να ταιριάξει μια καινούρια ερώτηση με κάποια από τις υπάρχουσες στη βάση γνώσης. Παρουσιάζεται αναλυτικά στο κεφάλαιο Το Text Analyzing / Processing υποσύστημα χρησιμοποιείται από τον Question Classifier και από το Question Matching. Το module αυτό έχει περιγραφεί στην ενότητα Forum Client Το υποσύστημα αυτό είναι υπεύθυνο για την αμφίδρομη επικοινωνία με το forum. Αναλαμβάνει το κατέβασμα και parsing των σελίδων, την είσοδο του χρήστη, την δημιουργία νέας δημοσίευσης, κ.α. Έχει τη δυνατότητα να λειτουργεί με τρόπο αντίστοιχο ενός web browser στέλνοντας και λαμβάνοντας μηνύματα HTTP. Ακολουθεί μια σύντομη εισαγωγή στο πρωτόκολλο αυτό Πρωτόκολλο HTTP Το HTTP είναι ένα πρωτόκολλο που βασίζεται στο μοντέλο πελάτη διακομιστή (client server). Ο πελάτης στέλνει ένα αίτημα (request) στο διακομιστή και περιμένει μια απάντηση (response). Η πιο συνηθισμένη λειτουργία που πραγματοποιεί ένας πελάτης (συνήθως κάποιος web browser) είναι η αίτηση για μια ιστοσελίδα, χρησιμοποιώντας την μέθοδο GET. Στην συνέχεια ο διακομιστής «απαντάει» στον πελάτη τον HTML κώδικα της σελίδας που αιτήθηκε, μαζί με κάποιες κεφαλίδες του πρωτοκόλλου HTTP που περιέχουν πληροφορίες για το διακομιστή και την ιστοσελίδα που αποστέλλεται. Μιχαήλ Ν. Ζερβός 86

87 Στην παρακάτω εικόνα (Εικόνα 5.7) φαίνεται ένα τυπικό request response μεταξύ πελάτη και διακομιστή για την αρχική σελίδα της ιστοσελίδας GET /index.php HTTP/1.1 Host: lists.di.uoa.gr HTTP/ OK Date: Wed, 9 Jun :33:45 GMT Server: Apache Content-Length: 8664 Connection: Keep-Alive Content-Type: text/html; charset=iso <HTML> </HTML> Εικόνα HTTP GET Request / Response Ο πελάτης έχει την δυνατότητα να στείλει δεδομένα στο διακομιστή με δύο τρόπους. Ο πρώτος τρόπος είναι μέσω ενός query string στη μέθοδο GET. Ένα παράδειγμα μιας τέτοιας αίτησης είναι το εξής: Το query string είναι το: GET /index.php?q=test&bar=1&foo=20 HTTP/1.1 q=test&bar=1&foo=20 Αυτό ερμηνεύεται ως τρεις μεταβλητές q, bar και foo που έχουν αντίστοιχα τις τιμές test, 1 και 20. Όπως φαίνεται τα δεδομένα «περνάνε» στον server μέσω του query string που προσαρτείται στο τέλος της διεύθυνσης της ιστοσελίδας. Το query string ξεκινάει με το χαρακτήρα του λατινικού ερωτηματικού? και ακολουθείται από ζεύγη «μεταβλητή=τιμή» τα οποία διαχωρίζονται με το χαρακτήρα &. Ο δεύτερος τρόπος για να αποσταλούν δεδομένα είναι η μέθοδος POST. Σε αυτή την περίπτωση τα δεδομένα στέλνονται στις κεφαλίδες του πρωτοκόλλου HTTP και όχι μέσω του URL. Παρακάτω φαίνεται (Εικόνα 5.8) η αντίστοιχη αίτηση χρησιμοποιώντας τη μέθοδο POST. POST /index.php HTTP/1.1 Host: lists.di.uoa.gr Connection: keep-alive Content-Length: 372 q=test&bar=1&foo=20 Εικόνα HTTP POST Request Για περισσότερες πληροφορίες για το πρωτόκολλο HTTP ο αναγνώστης παραπέμπεται στο [25]. Μιχαήλ Ν. Ζερβός 87

88 HttpClient και vbulletinclient Στα πλαίσια αυτής της πτυχιακής δημιουργήθηκε η κλάση HttpClient (Εικόνα 5.9) η οποία υποστηρίζει τις δύο βασικές μεθόδους αιτήσεων του πρωτοκόλλου HTTP, το POST και το GET. Επίσης υποστηρίζει την αποστολή και λήψη cookies για να είναι δυνατές λειτουργίες συνόδου (sessions), όπως η είσοδος εγγεγραμμένου χρήστη κλπ. Τέλος, δίνεται η δυνατότητα για ασύγχρονη λήψη ιστοσελίδων μέσω της μεθόδου GetAsync(), η οποία δημιουργεί άλλο νήμα (thread) στο οποίο γίνεται το «κατέβασμα» ώστε να μη μπλοκάρεται η εκτέλεση της εφαρμογής. Εικόνα Διάγραμμα κλάσης HttpClient Επειδή η εργασία αυτή δοκιμάζεται σε ένα vbulletin 1 forum, δημιουργήθηκαν μέθοδοι που επικοινωνούν και αναλύουν τις σελίδες αυτού του είδους forum. Βασικό στοιχείο αυτού του προγράμματος είναι η κλάση vbulletinclient. Ουσιαστικά πρόκειται για έναν «πελάτη» (ή χρήστη) που μπορεί να κάνει κάποιες βασικές λειτουργίες στο vbulletin forum. Παρ όλα αυτά, δημιουργήθηκε το interface IForumClient, το οποίο περιγράφει τις μεθόδους που πρέπει να έχει οποιαδήποτε αντίστοιχη κλάση «πελάτης» άλλων forum ώστε να μπορούν να επιτύχουν αντίστοιχη λειτουργικότητα. Το UML διάγραμμα του interface φαίνεται στην Εικόνα vbulletin Forum - Μιχαήλ Ν. Ζερβός 88

89 Εικόνα Διάγραμμα interface IForumClient Χρησιμοποιώντας, λοιπόν, το interface IForumClient και την κλάση HttpClient μπορεί κανείς να επεκτείνει εύκολα το πρόγραμμα ώστε να λειτουργεί και σε άλλου είδους fora. Οι κλάσεις που υλοποιούν αυτό το interface (όπως η vbulletinclient) είναι υπεύθυνες για να στείλουν τα κατάλληλα requests που περιμένει ένα forum και να αναλύσουν (parse) τον html κώδικα που επιστρέφουν. Οι βασικές μέθοδοι (όπου οι υπογραφές τους φαίνονται στην παραπάνω εικόνα) που πρέπει να παρέχονται είναι οι: ParseThreadPage() η οποία αναλύει τον html κώδικα της σελίδας προβολής ενός νήματος και επιστρέφει μια λίστα από δημοσιεύσεις (Post - Εικόνα 5.11) που ανήκουν σε αυτό το forum. ParseForumPage() η οποία αναλύει τον html κώδικα της σελίδας προβολής ενός forum και επιστρέφει μια λίστα από τα νήματα (Thread - Εικόνα 5.12) που ανήκουν σε αυτό το forum. MakePost() η οποία κάνει μια καινούρια δημοσίευση στο νήμα που της ορίζεται. Login() η οποία εισάγει έναν εγγεγραμμένο χρήστη στο forum χρησιμοποιώντας το όνομα χρήστη και τον κωδικό που παρέχονται. DownloadPage() η οποία επιστρέφει τον html κώδικα μιας σελίδας του forum DownloadForum() η οποία επιστρέφει τον html κώδικα της σελίδας εμφάνισης ενός συγκεκριμένου forum. DownloadThread() η οποία επιστρέφει τον html κώδικα της σελίδας εμφάνισης ενός συγκεκριμένου thread. Μιχαήλ Ν. Ζερβός 89

90 Εικόνα Διάγραμμα κλάσης Post Εικόνα Διάγραμμα κλάσης Thread Για το parsing των σελίδων χρησιμοποιούνται Regular Expressions, η βιβλιοθήκη HtmlAgilityPack 1 καθώς και η γλώσσα XPath 2 (XML Path Language) Είσοδος (Login) Το πρώτο βήμα του προγράμματος παρακολούθησης του forum είναι η είσοδος με τα διαπιστευτήρια (όνομα χρήστη, κωδικός) του χρήστη που δημιουργήθηκε για τις ανάγκες της πτυχιακής. Για την είσοδο στο forum χρησιμοποιείται η μέθοδος Login(), η οποία κάνει ένα HTTP POST request, στέλνοντας δεδομένα για 8 μεταβλητές. Τα τρία πιο βασικά στοιχεία που αποστέλλονται είναι το όνομα χρήστη (vb_login_username), ο κωδικός πρόσβασης (vb_login_password) και ο κρυπτογραφημένος κωδικός πρόσβασης (vb_login_md5password) με τον αλγόριθμο MD5. Για τον λόγο αυτό 1 HtmlAgilityPack XPath - Μιχαήλ Ν. Ζερβός 90

91 δημιουργήθηκε η μέθοδος MD5(), η οποία επιστρέφει το hash ενός αλφαριθμητικού και χρησιμοποιεί την εσωτερική υλοποίηση του.net για το md5 (κλάση MD5CryptoServiceProvider). Κατά την είσοδο του χρήστη, αποστέλλεται ένα cookie το οποίο χρησιμοποιείται σε όλες τις επόμενες ενέργειες του χρήστη για την αναγνώριση του. Αυτό το χειρίζεται αυτόματα η κλάση HttpClient. Ο έλεγχος για την επιτυχία της σύνδεσης γίνεται με την βοήθεια ενός regular expression στον κώδικα της σελίδας που επιστρέφεται Δημιουργία δημοσίευσης Για να καταχωρηθεί μια καινούρια δημοσίευση στο vbulletin forum πρέπει να γίνει ένα HTTP POST request στη σελίδα: newreply.php?do=postreply&t=thread-id Η μέθοδος MakePost() αρχικά «κατεβάζει» τη σελίδα του νήματος στο οποίο θα γίνει η δημοσίευση. Έπειτα την αναλύει μέσω της μεθόδου ParseThreadPage() για να ανακτήσει κάποια από τα δεδομένα που χρειάζονται να αποσταλούν κατά το POST, όπως το id μιας δημοσίευσης, ένα security token που πρέπει να αποσταλεί πίσω, την ώρα του server, κλπ. Τέλος, πραγματοποιεί το POST request το οποίο περιέχει 13 μεταβλητές. Πιο συγκεκριμένα αυτές φαίνονται στον κώδικα στο παράρτημα Παρατηρήσεις για το Forum Client Καθώς το συγκεκριμένο installation του vbulletin έχει ως προεπιλογή την κωδικοποίηση ISO (Ελληνικά), οι κλάσεις του προγράμματος χρησιμοποιούν αυτή ως προεπιλεγμένη. Παρέχεται όμως η δυνατότητα προσδιορισμού της μέσω των constructors των κλάσεων. Για την πραγματοποίηση διάφορων λειτουργιών (όπως καινούρια δημοσίευση, είσοδος από έναν εγγεγραμμένο χρήστη, κλπ) απαιτείται να γίνουν κάποιες HTTP POST αιτήσεις σε διάφορες σελίδες. Οι σελίδες αυτές και οι μεταβλητές που πρέπει να σταλούν στον server εξήχθησαν από τα αντίστοιχα HTML tags (<form>, <input>) στον κώδικα των σελίδων κατά την περιήγηση με τον Mozilla Firefox 1, καθώς επίσης και με την βοήθεια του plugin του εν λόγω browser, Live HTTP Headers 2. Το plugin αυτό επιτρέπει την παρακολούθηση των κεφαλίδων των πακέτων HTTP που στέλνονται ή λαμβάνονται από και προς τον server. Στην Εικόνα 5.13 εμφανίζεται ένα στιγμιότυπο 1 Mozilla Firefox Live HTTP Headers - Μιχαήλ Ν. Ζερβός 91

92 του Live HTTP Headers κατά την δημιουργία μιας καινούριας δημοσίευσης σε ένα νήμα του forum. Εικόνα Live HTTP Headers Screenshot Παρακολούθηση του forum Η παρακολούθηση του vbulletin forum γίνεται μέσω της κλάσης VBulletinMonitor, οι μέθοδοι της οποίας φαίνονται στην Εικόνα Ο πλήρης κώδικας μπορεί να βρεθεί στο Παράρτημα. Μέσω των μεθόδων Start() και Stop(), ξεκινάει και σταματάει το monitoring. Κάθε ορισμένα λεπτά (καθορισμένα από τον χρήστη) η κλάση ελέγχει για καινούριες δημοσιεύσεις στο forum με ένα συγκεκριμένο id. Μιχαήλ Ν. Ζερβός 92

93 Εικόνα Διάγραμμα κλάσης VBulletinMonitor Ο γενικός αλγόριθμος ελέγχου και ανάκτησης νέων δημοσιεύσεων εμφανίζεται παρακάτω (Αλγόριθμος 5.3). Ο πίνακας διατηρεί τον αριθμό των δημοσιεύσεων για κάθε νήμα του forum. Η συνάρτηση διατηρεί και επιστρέφει μια λίστα ( ) από ζευγάρια της μορφής < >. 1: Συνάρτηση 2: 3: 4: 5: Για κάθε 6: 7: 8: Αν τότε 9: 10: 11: 12: < > 13: 14: Τέλος αν 15: Τέλος για 16: Επέστρεψε Αλγόριθμος 5.3 Παρακολούθηση forum Μιχαήλ Ν. Ζερβός 93

94 Η κλάση αποθηκεύει το στο σκληρό δίσκο (σε μορφή XML) κάθε φορά που εμφανίζονται νέες δημοσιεύσεις. Έτσι, σε περίπτωση που το πρόγραμμα σταματήσει να λειτουργεί για κάποιο λόγο, κατά την επανεκκίνηση του θα φορτωθεί το αρχείο και θα συνεχίσει από το σημείο που είχε μείνει. Η αποθήκευση και ανάγνωση του αρχείου γίνεται μέσω των συναρτήσεων SavePostsCount() και LoadPostsCount().Την πρώτη φορά που εκτελείται το πρόγραμμα ο πίνακας γεμίζει με δεδομένα που κατεβάζει από το forum, έτσι θα ξεκινήσει να αντιμετωπίζει δημοσιεύσεις που εμφανίζονται από εκείνο το σημείο και μετά. Η μέθοδος στη γραμμή 11 του παραπάνω αλγορίθμου ανακτά τις δημοσιεύσεις στο διάστημα ενός νήματος. Οι δημοσιεύσεις ενός νήματος δεν εμφανίζονται όλες σε μια σελίδα αλλά χωρίζονται, συνήθως, σε σελίδες των δέκα posts (ή γενικά posts). Για τον λόγο αυτό, στη γενική περίπτωση, δεν αρκεί να κατεβάσει κανείς μια μόνο σελίδα για να ανακτήσει όλες τις δημοσιεύσεις που χρειάζονται. Η μέθοδος RetrievePosts() πρώτα υπολογίζει την πρώτη και την τελευταία σελίδα που πρέπει να κατέβουν: Στη συνέχεια υπολογίζεται η θέση του πρώτου post (και αντίστοιχα του τελευταίου) μέσα στην πρώτη σελίδα ως εξής: Τέλος, η συνάρτηση κατεβάζει τις σελίδες του νήματος στο διάστημα και για κάθε σελίδα ανακτά (μέσω parsing) τις δημοσιεύσεις. Για τις ενδιάμεσες σελίδες αποθηκεύονται όλα τα posts, ενώ για την πρώτη και την τελευταία αποθηκεύονται μόνο τα και αντίστοιχα. Τυχόν λάθη, exceptions ή ειδοποιήσεις στην κλάση VBulletinMonitor κάνουν raise τα αντίστοιχα events ώστε να ειδοποιηθεί το βασικό πρόγραμμα. Επειδή το πρόγραμμα έχει σχεδιαστεί να τρέχει μόνιμα στο background (ή ως service), δεν παρέχεται κάποια διεπαφή χρήστη και τα μηνύματα λάθους καταγράφονται σε αρχεία log. Μιχαήλ Ν. Ζερβός 94

95 Όταν εμφανίζονται νέες δημοσιεύσεις τότε γίνεται raise το event NewPostsFound και ειδοποιείται το βασικό πρόγραμμα (το οποίο έχει εγγραφεί σε αυτό το event). Το επόμενο στάδιο είναι η ταξινόμηση της κάθε καινούριας δημοσίευσης ως ερώτηση ή όχι. Για την ταξινόμηση χρησιμοποιείται ακριβώς το ίδιο υποσύστημα που ανέλαβε να αναγνωρίσει τις ερωτήσεις κατά τη διαδικασία εξαγωγής γνώσης από το forum και περιγράφηκε στο κεφάλαιο Αναζήτηση στην βάση γνώσης Εφ όσον μια δημοσίευση χαρακτηριστεί ως ερώτηση από το ανάλογο υποσύστημα, στη συνέχεια γίνεται προσπάθεια να ταυτιστεί με μια από τις υπάρχουσες ερωτήσεις στη βάση γνώσης. Το υποσύστημα που είναι υπεύθυνο για αυτή τη διαδικασία είναι το Question Matching στο διάγραμμα της υλοποίησης (Εικόνα 5.1) και βρίσκεται στην κλάση QuestionSearcher. Το διάγραμμα της κλάσης φαίνεται στην Εικόνα Εικόνα Διάγραμμα κλάσης QuestionSearcher Η κλάση αυτή έχει τη δυνατότητα να δημιουργήσει ένα Corpus με τις ερωτήσεις από τη βάση γνώσης μέσω της συνάρτησης BuildQuestionCorpusFromKB() ή αντίστοιχα από ένα αρχείο κειμένου με τη συνάρτηση BuildQuestionCorpusFromFile(). Η βασική μέθοδος της κλάσης είναι η Match(), η οποία επιστρέφει μια λίστα από ερωτήσεις και το confidence που υποδεικνύει κατά πόσο η πρόταση είναι ερώτηση και παίρνει τιμές στο. Μιχαήλ Ν. Ζερβός 95

96 Η Match() παίρνει ως παράμετρο ένα string και δημιουργεί για αυτό τη λίστα με τους όρους που το αποτελούν. Αρχικά, υπολογίζει την ομοιότητα συνημιτόνου μεταξύ του και όλων των ερωτήσεων στο Corpus καλώντας τη μέθοδο της CosineSimilarity.GetSimilarity(). Έπειτα, αναλαμβάνει να βελτιώσει τα αποτελέσματα με ορισμένες ευριστικές. Τέλος, επιστρέφονται οι ερωτήσεις που έχουν confidence μεγαλύτερο από ένα κατώφλι (Threshold) το οποίο ορίζεται ως παράμετρος. Αυξάνοντας την τιμή του Threshold μπορούμε να πάρουμε καλύτερα αλλά λιγότερα αποτελέσματα, ενώ μειώνοντάς το επιστρέφονται περισσότερες απαντήσεις με χαμηλότερο όμως score Απάντηση της ερώτησης Σε περίπτωση που η ερώτηση βρεθεί μέσα στην βάση γνώσης, το τελευταίο βήμα είναι η δημοσίευση της αντίστοιχης απάντησης στο νήμα. Αυτό γίνεται χρησιμοποιώντας την μέθοδο MakePost() της κλάσης vbulletinclient που παρουσιάστηκε στο κεφάλαιο Το αρχικό κείμενο της ερώτησης γίνεται quote ώστε να είναι πιο εύκολα αντιληπτό στον χρήστη. Ένα μήνυμα στο τέλος της δημοσίευσης ενημερώνει ότι πρόκειται για αυτοματοποιημένη απάντηση. 5.5 Εφαρμογή Annotation Για τις ανάγκες της εκπαίδευσης και της αξιολόγησης των υποσυστημάτων αναγνώρισης ερωτήσεων και αναγνώρισης ζευγών ερώτησης απάντησης, χρειάστηκε να γίνουν annotate δημοσιεύσεις από το forum του μαθήματος «Εισαγωγή στον Προγραμματισμό» 1. Το υποσύστημα αυτό (Annotation Application) είναι μια Web εφαρμογή που δημιουργήθηκε σε ASP.NET. Ουσιαστικά παρουσιάζει στους annotators το forum με μια γνώριμη μορφή και επιπλέον δίνει τη δυνατότητα να σημειωθεί μια δημοσίευση ως ερώτηση ή απάντηση σε κάποια ερώτηση. Τα δεδομένα αποθηκεύονται στη βάση δεδομένων Posts Database, η δομή της οποίας έχει παρουσιαστεί στο κεφάλαιο και φαίνεται στην Εικόνα 5.5. Καθώς οι δημοσιεύσεις περιέχουν κώδικα μορφοποίησης BBCode 2, για τη σωστή εμφάνιση τους χρησιμοποιήθηκε μια βιβλιοθήκη μετατροπής BBCode to HTML BBCode BBCode to HTML - Μιχαήλ Ν. Ζερβός 96

97 Παρακάτω φαίνονται δύο στιγμιότυπα της εφαρμογής για το annotation (Εικόνα 5.16 και Εικόνα 5.17). Εικόνα Στιγμιότυπο εφαρμογής Annotation (Εμφάνιση νημάτων) Εικόνα Στιγμιότυπο εφαρμογής Annotation (Εμφάνιση δημοσιεύσεων) Μιχαήλ Ν. Ζερβός 97

Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων

Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων Εξαγωγή ζευγών ερώτησης απάντησης από forum και αυτόματη απάντηση νέων ερωτήσεων Μιχαήλ Ν. Ζερβός std04079@di.uoa.gr Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Διαβάστε περισσότερα

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Verson ΧΑΡΤΟΓΡΑΦΗΣΗ ΤΟΥ ΧΩΡΟΥ ΤΩΝ ΤΑΞΙΝΟΜΗΤΩΝ Ταξινομητές Ταξινομητές συναρτ. διάκρισης Ταξινομητές επιφανειών απόφ. Παραμετρικοί ταξινομητές Μη παραμετρικοί

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 18η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Machine Learning του T. Mitchell, McGraw- Hill, 1997,

Διαβάστε περισσότερα

Το μοντέλο Perceptron

Το μοντέλο Perceptron Το μοντέλο Perceptron Αποτελείται από έναν μόνο νευρώνα McCulloch-Pitts w j x x 1, x2,..., w x T 1 1 x 2 w 2 Σ u x n f(u) Άνυσμα Εισόδου s i x j x n w n -θ w w 1, w2,..., w n T Άνυσμα Βαρών 1 Το μοντέλο

Διαβάστε περισσότερα

Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή

Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΜΜΥ 795: ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ Ακαδηµαϊκό έτος 2010-11 Χειµερινό Εξάµηνο Τελική εξέταση Τρίτη, 21 εκεµβρίου 2010,

Διαβάστε περισσότερα

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο Δίκαρος Νίκος Δ/νση Μηχανογράνωσης κ Η.Ε.Σ. Υπουργείο Εσωτερικών. Τελική εργασία Κ Εκπαιδευτικής Σειράς Ε.Σ.Δ.Δ. Επιβλέπων: Ηρακλής Βαρλάμης Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο Κεντρική ιδέα Προβληματισμοί

Διαβάστε περισσότερα

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Εισηγητής: ρ Ηλίας Ζαφειρόπουλος Εισαγωγή Ιατρικά δεδοµένα: Συλλογή Οργάνωση Αξιοποίηση Data Mining ιαχείριση εδοµένων Εκπαίδευση

Διαβάστε περισσότερα

Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP)

Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP) Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP) x -0,5 a x x 2 0 0 0 0 - -0,5 y y 0 0 x 2 -,5 a 2 θ η τιμή κατωφλίου Μία λύση του προβλήματος XOR Multi Layer Perceptron (MLP) x -0,5 Μία

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

HMY 795: Αναγνώριση Προτύπων

HMY 795: Αναγνώριση Προτύπων HMY 795: Αναγνώριση Προτύπων Διάλεξη 3 Επιλογή μοντέλου Επιλογή μοντέλου Θεωρία αποφάσεων Επιλογή μοντέλου δεδομένα επικύρωσης Η επιλογή του είδους του μοντέλου που θα χρησιμοποιηθεί σε ένα πρόβλημα (π.χ.

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Το Πιθανοκρατικό Μοντέλο Κλασικά Μοντέλα Ανάκτησης Τρία είναι τα, λεγόμενα, κλασικά μοντέλα ανάκτησης: Λογικό (Boolean) που βασίζεται στη Θεωρία Συνόλων Διανυσματικό (Vector) που βασίζεται στη Γραμμική

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 19 ης διάλεξης

Ασκήσεις μελέτης της 19 ης διάλεξης Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 19 ης διάλεξης 19.1. Δείξτε ότι το Perceptron με (α) συνάρτηση ενεργοποίησης

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

Διαβάστε περισσότερα

Βασικές αρχές εκπαίδευσης ΤΝΔ: το perceptron. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Βασικές αρχές εκπαίδευσης ΤΝΔ: το perceptron. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Βασικές αρχές εκπαίδευσης ΤΝΔ: το perceptron Βιολογικός Νευρώνας Δενδρίτες, που αποτελούν τις γραμμές εισόδου των ερεθισμάτων (βιολογικών σημάτων) Σώμα, στο οποίο γίνεται η συσσώρευση των ερεθισμάτων και

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 3: Στοχαστικά Συστήματα Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 2: Δομικά Συστήματα Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Το Πολυεπίπεδο Perceptron. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Το Πολυεπίπεδο Perceptron. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Το Πολυ Perceptron Δίκτυα Πρόσθιας Τροφοδότησης (feedforward) Tο αντίστοιχο γράφημα του δικτύου δεν περιλαμβάνει κύκλους: δεν υπάρχει δηλαδή ανατροφοδότηση της εξόδου ενός νευρώνα προς τους νευρώνες από

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #06 Πιθανοτικό Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη Διαχείριση εγγράφων Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη Απεικόνιση κειμένων για Information Retrieval Δεδομένου ενός κειμένου αναζητούμε μια μεθοδολογία απεικόνισης του γραμματικού χώρου

Διαβάστε περισσότερα

HMY 795: Αναγνώριση Προτύπων. Διαλέξεις 15-16

HMY 795: Αναγνώριση Προτύπων. Διαλέξεις 15-16 HMY 795: Αναγνώριση Προτύπων Διαλέξεις 15-16 Νευρωνικά Δίκτυα(Neural Networks) Fisher s linear discriminant: Μείωση διαστάσεων (dimensionality reduction) y Τ =w x s + s =w S w 2 2 Τ 1 2 W ( ) 2 2 ( ) m2

Διαβάστε περισσότερα

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012 ΔΕ. ΙΟΥΝΙΟΥ Δίνονται τα εξής πρότυπα: [ ] [ ] [ ] [ ] Άσκηση η ( μονάδες) Χρησιμοποιώντας το κριτήριο της ομοιότητας να απορριφθεί ένα χαρακτηριστικό με βάσει το συντελεστή συσχέτισης. (γράψτε ποιο χαρακτηριστικό

Διαβάστε περισσότερα

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Σύνοψη Στο κεφάλαιο αυτό παρουσιάζεται η ιδέα του συμπτωτικού πολυωνύμου, του πολυωνύμου, δηλαδή, που είναι του μικρότερου δυνατού βαθμού και που, για συγκεκριμένες,

Διαβάστε περισσότερα

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο Πρόβλημα ο Ασκήσεις Φροντιστηρίου 5 o Φροντιστήριο Δίνεται το παρακάτω σύνολο εκπαίδευσης: # Είσοδος Κατηγορία 0 0 0 Α 2 0 0 Α 0 Β 4 0 0 Α 5 0 Β 6 0 0 Α 7 0 Β 8 Β α) Στον παρακάτω κύβο τοποθετείστε τα

Διαβάστε περισσότερα

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Verson 2 1 ΧΑΡΤΟΓΡΑΦΗΣΗ ΤΟΥ ΧΩΡΟΥ ΤΩΝ ΤΑΞΙΝΟΜΗΤΩΝ Ταξινομητές Ταξινομητές συναρτ. διάκρισης Ταξινομητές επιφανειών απόφ. Παραμετρικοί ταξινομητές Μη παραμετρικοί

Διαβάστε περισσότερα

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΜΜΥ 795: ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ Ακαδημαϊκό έτος 2010-11 Χειμερινό Εξάμηνο Practice final exam 1. Έστω ότι για

Διαβάστε περισσότερα

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ 2012

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ 2012 ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ Δίνονται τα εξής πρότυπα: [ ] [ ] [ ] [ ] Άσκηση η (3 μονάδες) Χρησιμοποιώντας το κριτήριο της ομοιότητας να απορριφθεί ένα χαρακτηριστικό με βάση το συντελεστή συσχέτισης. (γράψτε ποιο

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Νευρώνας Perceptron Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος Τζώρτζης Γρηγόρης Περιεχόμενα Εισαγωγή

Διαβάστε περισσότερα

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 - Project Σεπτεμβρίου Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος Εξέταση: Προφορική, στο τέλος της εξεταστικής. Θα βγει ανακοίνωση στο forum. Ομάδες

Διαβάστε περισσότερα

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

HMY 795: Αναγνώριση Προτύπων

HMY 795: Αναγνώριση Προτύπων HMY 795: Αναγνώριση Προτύπων Διαλέξεις 9 20 Kernel methods Support vector machines Εκπαίδευση νευρωνικών δικτύων backpropagation:. Υπολογισμός μεταβλητών δικτύου «τρέχον» w () () (2) (2) aj = wji xi ak

Διαβάστε περισσότερα

3. O ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ PERCEPTRON

3. O ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ PERCEPTRON 3. O ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ PERCEPRON 3. ΕΙΣΑΓΩΓΗ: Το Perceptron είναι η απλούστερη μορφή Νευρωνικού δικτύου, το οποίο χρησιμοποιείται για την ταξινόμηση ενός ειδικού τύπου προτύπων, που είναι γραμμικά διαχωριζόμενα.

Διαβάστε περισσότερα

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας Διανύσματα Καστοριά,

Διαβάστε περισσότερα

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Verson ΜΙΑ ΣΥΜΒΑΣΗ: Προκειμένου να καταστήσουμε πιο συμπαγή το συμβολισμό H : ορίζουμε Ετσι έχουμε *=[ ] an *=[ ]. H : * * ΣΗΜΕΙΩΣΗ: Στη συνέχεια εκτός αν ορίζεται

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

Διαβάστε περισσότερα

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας Τεχνικές Μείωσης Διαστάσεων Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας 1 Εισαγωγή Το μεγαλύτερο μέρος των δεδομένων που καλούμαστε να επεξεργαστούμε είναι πολυδιάστατα.

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ ΘΕΜΑ 1 ο (2,5 μονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ Τελικές εξετάσεις Πέμπτη 21 Ιουνίου 2012 16:30-19:30 Υποθέστε ότι θέλουμε

Διαβάστε περισσότερα

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

Διαβάστε περισσότερα

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς Καστοριά, Ιούλιος 14 A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ (ΖTransform)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ (ΖTransform) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα : ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ (ΖTransform) Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX Θεμελιώδης αλγόριθμος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού που κάνει χρήση της θεωρίας της Γραμμικής Άλγεβρας Προτάθηκε από το Dantzig (1947) και πλέον

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση με περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Διάλεξη 9-10 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά. Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία

Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά. Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία Αντικείμενο Μελέτη και ανάπτυξη μεθόδων από τον χώρο της μηχανικής μάθησης για

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

Διαβάστε περισσότερα

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Verson 2 1 C MH ΠΑΡΑΜΕΤΡΙΚΟΙ ΤΑΞΙΝΟΜΗΤΕΣ ΒΑΣΙΣΜΕΝΟΙ ΣΕ ΕΠΙΦΑΝΕΙΕΣ ΑΠΟΦΑΣΗΣ Υπενθύμιση: είναι το σύνολο δεδομένων που περιέχει τα διαθέσιμα δεδομένα από όλες

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος 3

Περιεχόμενα. Πρόλογος 3 Πρόλογος Η χρησιμότητα της Γραμμικής Άλγεβρας είναι σχεδόν αυταπόδεικτη. Αρκεί μια ματιά στο πρόγραμμα σπουδών, σχεδόν κάθε πανεπιστημιακού τμήματος θετικών επιστημών, για να διαπιστώσει κανείς την παρουσία

Διαβάστε περισσότερα

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης Μάθημα 4 ο Δρ. Ανέστης Γ. Χατζημιχαηλίδης Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Ανατολικής Μακεδονίας και Θράκης 2016-2017 Διευρυμένη Υπολογιστική Νοημοσύνη (ΥΝ) Επεκτάσεις της Κλασικής ΥΝ. Μεθοδολογίες

Διαβάστε περισσότερα

1. Financial New Times Year MAXk {FREQij} D D D D

1.  Financial New Times Year MAXk {FREQij} D D D D Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών HY46 - Συστήματα Ανάκτησης Πληροφοριών 2004-2005 Εαρινό Εξάμηνο 2 η Σειρά ασκήσεων (Μοντέλα Ανάκτησης Πληροφοριών και Ευρετήρια) Ανάθεση: 6 Μαρτίου Παράδοση:

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

τα βιβλία των επιτυχιών

τα βιβλία των επιτυχιών Τα βιβλία των Εκδόσεων Πουκαμισάς συμπυκνώνουν την πολύχρονη διδακτική εμπειρία των συγγραφέων μας και αποτελούν το βασικό εκπαιδευτικό υλικό που χρησιμοποιούν οι μαθητές των φροντιστηρίων μας. Μέσα από

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

* * * ( ) mod p = (a p 1. 2 ) mod p.

* * * ( ) mod p = (a p 1. 2 ) mod p. Θεωρια Αριθμων Εαρινο Εξαμηνο 2016 17 Μέρος Α: Πρώτοι Αριθμοί Διάλεξη 1 Ενότητα 1. Διαιρετότητα: Διαιρετότητα, διαιρέτες, πολλαπλάσια, στοιχειώδεις ιδιότητες. Γραμμικοί Συνδυασμοί (ΓΣ). Ενότητα 2. Πρώτοι

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 17η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 17η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 17η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Artificia Inteigence A Modern Approach των S. Russe και

Διαβάστε περισσότερα

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Ι

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Ι ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Ι Προσέγγιση και Ομοιότητα Σημάτων Επιμέλεια: Πέτρος Π. Γρουμπός Καθηγητής Γεώργιος Α. Βασκαντήρας Υπ. Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών Άδειες Χρήσης

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Συμβολισμοί Σε αναλογία με τους ορισμούς συμβολίζουμε μια ακολουθία: 1 είτε μέσω του διανυσματικού ορισμού, παραθέτοντας αναγκαστικά

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ, ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΕΣ 3: ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΚΑΙ ΑΝΑΛΥΣΗ ΕΙΚΟΝΑΣ Ακαδημαϊκό Έτος 7 8, Χειμερινό Εξάμηνο Καθ.: Νίκος Τσαπατσούλης ΕΡΩΤΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ Το παρόν

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

3.7 Παραδείγματα Μεθόδου Simplex

3.7 Παραδείγματα Μεθόδου Simplex 3.7 Παραδείγματα Μεθόδου Simplex Παράδειγμα 1ο (Παράδειγμα 1ο - Κεφάλαιο 2ο - σελ. 10): Το πρόβλημα εκφράζεται από το μαθηματικό μοντέλο: max z = 600x T + 250x K + 750x Γ + 450x B 5x T + x K + 9x Γ + 12x

Διαβάστε περισσότερα

ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ

ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ Βασίζεται στην εφαρμογή των παρακάτω βημάτων:. Το φυσικό πεδίο αναπαριστάται με ένα σύνολο απλών γεωμετρικών σχημάτων που ονομάζονται Πεπερασμένα Στοιχεία.. Σε κάθε στοιχείο

Διαβάστε περισσότερα

ΔΙΚΤΥO RBF. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

ΔΙΚΤΥO RBF. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων ΔΙΚΤΥO RBF Αρχιτεκτονική δικτύου RBF Δίκτυα RBF: δίκτυα συναρτήσεων πυρήνα (radial basis function networks). Πρόσθιας τροφοδότησης (feedforward) για προβλήματα μάθησης με επίβλεψη. Εναλλακτικό του MLP.

Διαβάστε περισσότερα

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Component Analysis, PCA)

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Component Analysis, PCA) ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα 005 - Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Coponent Analysis, PCA) καθ. Βασίλης Μάγκλαρης aglaris@netode.ntua.gr www.netode.ntua.gr

Διαβάστε περισσότερα

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων. Δρ. Ε. Χάρου

Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων. Δρ. Ε. Χάρου Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων Δρ. Ε. Χάρου Πρόγραμμα υπολογιστικής ευφυίας Ινστιτούτο Πληροφορικής & Τηλεπικοινωνιών ΕΚΕΦΕ ΔΗΜΟΚΡΙΤΟΣ exarou@iit.demokritos.gr Μηχανική

Διαβάστε περισσότερα

HMY 795: Αναγνώριση Προτύπων

HMY 795: Αναγνώριση Προτύπων HMY 795: Αναγνώριση Προτύπων Διάλεξη 5 Κατανομές πιθανότητας και εκτίμηση παραμέτρων Κατανομές πιθανότητας και εκτίμηση παραμέτρων δυαδικές τυχαίες μεταβλητές Διαχωριστικές συναρτήσεις Ταξινόμηση κανονικών

Διαβάστε περισσότερα

Στατιστική Συμπερασματολογία

Στατιστική Συμπερασματολογία Στατιστική Συμπερασματολογία Διαφάνειες 1 ου κεφαλαίου Βιβλίο: Κολυβά Μαχαίρα, Φ. & Χατζόπουλος Στ. Α. (2016). Μαθηματική Στατιστική, Έλεγχοι Υποθέσεων. [ηλεκτρ. βιβλ.] Αθήνα: Σύνδεσμος Ελληνικών Ακαδημαϊκών

Διαβάστε περισσότερα

Μάθηση και Γενίκευση. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Μάθηση και Γενίκευση. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Μάθηση και Γενίκευση Το Πολυεπίπεδο Perceptron (MultiLayer Perceptron (MLP)) Έστω σύνολο εκπαίδευσης D={(x n,t n )}, n=1,,n. x n =(x n1,, x nd ) T, t n =(t n1,, t np ) T Θα πρέπει το MLP να έχει d νευρώνες

Διαβάστε περισσότερα

Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων»

Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων» Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πρόγραμμα Μεταπτυχιακών Σπουδών Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων» Αργυροπούλου Αιμιλία

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ανάκτηση Πληροφορίας Το μοντέλο Boolean Το μοντέλο Vector Ταξινόμηση Μοντέλων IR Ανάκτηση Περιήγηση Κλασικά Μοντέλα Boolean Vector Probabilistic Δομικά Μοντέλα Non-Overlapping Lists Proximal Nodes Browsing

Διαβάστε περισσότερα

2.0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ

2.0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ .0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ Έστω διανύσματα που ανήκουν στο χώρο δ i = ( a i, ai,, ai) i =,,, και έστω γραμμικός συνδυασμός των i : xδ + x δ + + x δ = b που ισούται με το διάνυσμα b,

Διαβάστε περισσότερα

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Τρεις αλγόριθμοι μηχανικής μάθησης ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2018 Μηχανική μάθηση αναγνώριση προτύπων Η αναγνώριση προτύπων

Διαβάστε περισσότερα

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 Περιεχόμενα 1 Εισαγωγή 2 2 Μεγιστικός τελέστης στην μπάλα 2 2.1 Βασικό θεώρημα........................ 2 2.2 Γενική περίπτωση μπάλας.................. 6 2.2.1 Στο

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ 1 ο : ΔΙΑΝΥΣΜΑΤΑ 1 ΜΑΘΗΜΑ 1 ο +2 ο ΕΝΝΟΙΑ ΔΙΑΝΥΣΜΑΤΟΣ Διάνυσμα ορίζεται ένα προσανατολισμένο ευθύγραμμο τμήμα, δηλαδή ένα ευθύγραμμο τμήμα

Διαβάστε περισσότερα

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

Διαβάστε περισσότερα

Τεχνητά Νευρωνικά Δίκτυα. Τσιριγώτης Γεώργιος Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας & Θράκης

Τεχνητά Νευρωνικά Δίκτυα. Τσιριγώτης Γεώργιος Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας & Θράκης Τεχνητά Τσιριγώτης Γεώργιος Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας & Θράκης Ο Βιολογικός Νευρώνας Δενδρίτες Συνάψεις Πυρήνας (Σώμα) Άξονας 2 Ο Βιολογικός Νευρώνας 3 Βασικά Χαρακτηριστικά

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει 8 7y = 4 y + y ( 8 7y) = ( 4 y + y) ( y) + 4 y y 4 y = 4 y y 8 7y = 4 y + ( 4 y) = ( 4 y y) ( 4 y) = 4( 4 y)( y) ( 4 y) 4( 4 y)( y) = 0 ( 4 y) [ 4 y 4( y) ] = 4 ( 4 y)( y + 4) = 0 y = ή y = 4) 0 4 H y

Διαβάστε περισσότερα

Συσχέτιση μεταξύ δύο συνόλων δεδομένων

Συσχέτιση μεταξύ δύο συνόλων δεδομένων Διαγράμματα διασποράς (scattergrams) Συσχέτιση μεταξύ δύο συνόλων δεδομένων Η οπτική απεικόνιση δύο συνόλων δεδομένων μπορεί να αποκαλύψει με παραστατικό τρόπο πιθανές τάσεις και μεταξύ τους συσχετίσεις,

Διαβάστε περισσότερα

Ορισμός και Ιδιότητες

Ορισμός και Ιδιότητες ΚΑΝΟΝΙΚΗ ΚΑΤΑΝΟΜΗ Ορισμός και Ιδιότητες H κανονική κατανομή norml distriution θεωρείται η σπουδαιότερη κατανομή της Θεωρίας Πιθανοτήτων και της Στατιστικής. Οι λόγοι που εξηγούν την εξέχουσα θέση της,

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Παρεμβολή και Παρεκβολή Εισαγωγή Ορισμός 6.1 Αν έχουμε στη διάθεσή μας τιμές μιας συνάρτησης

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 1: ΟΡΙΣΜΟΣ ΠΕΔΙΟ ΟΡΙΣΜΟΥ ΠΡΑΞΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΛΥΜΕΝΑ ΘΕΜΑΤΑ ΘΕΜΑ Α

ΕΝΟΤΗΤΑ 1: ΟΡΙΣΜΟΣ ΠΕΔΙΟ ΟΡΙΣΜΟΥ ΠΡΑΞΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΛΥΜΕΝΑ ΘΕΜΑΤΑ ΘΕΜΑ Α ΚΕΦΑΛΑΙΟ 1 ο : ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 1: ΟΡΙΣΜΟΣ ΠΕΔΙΟ ΟΡΙΣΜΟΥ ΠΡΑΞΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΛΥΜΕΝΑ ΘΕΜΑΤΑ Ερώτηση θεωρίας 1 ΘΕΜΑ Α Τι ονομάζουμε πραγματική συνάρτηση

Διαβάστε περισσότερα

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί Χώροι Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: Διανυσματικοί Χώροι α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο

Διαβάστε περισσότερα

Σειρά: Επεξεργασία Δεδομένων Εκδοση/Ημ.νία: #3.1/ Συγγραφέας: Μίχος Θεόδωρος, Φυσικός

Σειρά: Επεξεργασία Δεδομένων Εκδοση/Ημ.νία: #3.1/ Συγγραφέας: Μίχος Θεόδωρος, Φυσικός Σειρά: Επεξεργασία Δεδομένων Εκδοση/Ημ.νία: #3.1/018-0-15 Συγγραφέας: Μίχος Θεόδωρος, Φυσικός 1. Μέθοδος Ελαχίστων Τετραγώνων Μια από τις πρώτες δουλειές που μαθαίνει ένας φοιτητής θετικών επιστημών μόλις

Διαβάστε περισσότερα

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8 ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ Άλγεβρα 1 ο Κεφάλαιο 1. Τι ονομάζουμε αριθμητική και τι αλγεβρική παράσταση; Να δώσετε από ένα παράδειγμα. Μια παράσταση που περιέχει πράξεις με αριθμούς, καλείται αριθμητική παράσταση,

Διαβάστε περισσότερα

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ ΚΕΦΑΛΑΙΟ ο: ΣΥΝΑΡΤΗΣΕΙΣ - ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ R - ΟΡΙΟ ΣΥΝΑΡΤΗΣΗΣ ΣΤΟ ΑΠΕΙΡΟ - ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΑΚΟΛΟΥΘΙΑΣ [Κεφ..6: Μη Πεπερασμένο Όριο στο R - Κεφ..7: Όρια Συνάρτησης

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

ΑΝΤΑΓΩΝΙΣΤΙΚΗ ΜΑΘΗΣΗ ΔΙΚΤΥA LVQ και SOM. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

ΑΝΤΑΓΩΝΙΣΤΙΚΗ ΜΑΘΗΣΗ ΔΙΚΤΥA LVQ και SOM. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων ΑΝΤΑΓΩΝΙΣΤΙΚΗ ΜΑΘΗΣΗ ΔΙΚΤΥA LVQ και SOM Μάθηση χωρίς επίβλεψη (unsupervised learning) Σύνολο εκπαίδευσης D={(x n )}, n=1,,n. x n =(x n1,, x nd ) T, δεν υπάρχουν τιμές-στόχοι t n. Προβλήματα μάθησης χωρίς

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Ολοκλήρωση Εισαγωγή Έστω ότι η f είναι μία φραγμένη συνάρτηση στο πεπερασμένο

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 16η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται σε ύλη του βιβλίου Artificial Intelligence A Modern Approach των

Διαβάστε περισσότερα

z = c 1 x 1 + c 2 x c n x n

z = c 1 x 1 + c 2 x c n x n Τεχνολογικό Εκπαιδευτικό Ιδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός & Βελτιστοποίηση Δρ. Δημήτρης Βαρσάμης Καθηγητής Εφαρμογών Δρ. Δημήτρης Βαρσάμης Μάρτιος

Διαβάστε περισσότερα

Εισόδημα Κατανάλωση 1500 500 1600 600 1300 450 1100 400 600 250 700 275 900 300 800 352 850 400 1100 500

Εισόδημα Κατανάλωση 1500 500 1600 600 1300 450 1100 400 600 250 700 275 900 300 800 352 850 400 1100 500 Εισόδημα Κατανάλωση 1500 500 1600 600 1300 450 1100 400 600 250 700 275 900 300 800 352 850 400 1100 500 Πληθυσμός Δείγμα Δείγμα Δείγμα Ο ρόλος της Οικονομετρίας Οικονομική Θεωρία Διατύπωση της

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο 2.5 µονάδες ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 2 Σεπτεµβρίου 2005 5:00-8:00 Σχεδιάστε έναν αισθητήρα ercetro

Διαβάστε περισσότερα

Θεωρία Αποφάσεων ο. 4 Φροντιστήριο. Λύσεις των Ασκήσεων

Θεωρία Αποφάσεων ο. 4 Φροντιστήριο. Λύσεις των Ασκήσεων Θεωρία Αποφάσεων ο Φροντιστήριο Λύσεις των Ασκήσεων Άσκηση Έστω ένα πρόβλημα ταξινόμησης μιας διάστασης με δύο κατηγορίες, όπου για κάθε κατηγορία έχουν συλλεχθεί τα παρακάτω δεδομένα: D = {, 2,,,,7 }

Διαβάστε περισσότερα