Περίληψη: | Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη ενός προγράμματος που θα
αποτελεί υλοποίηση ενός ολοκληρωμένου συστήματος συστάσεων για ταινίες. Συγκεκριμένα,
έχοντας ως είσοδο δεδομένα που αφορούν τη δραστηριότητα ενός συνόλου χρηστών σχετικά με
ένα σύνολο από ταινίες, το πρόγραμμα θα μπορεί να παράγει συστάσεις ταινιών προς τους χρήστες
αυτούς. Η δραστηριότητα αυτή συγκεκριμένα αναφέρεται στην παρακολούθηση ή όχι των ταινιών,
στις βαθμολογήσεις αυτών σε αριθμητική συνεχή κλίμακα, καθώς και την εισαγωγή σύντομων
λεκτικών περιγραφών (tags) για τις ταινίες από τους χρήστες. Οι συστάσεις που μπορούν να
παραχθούν είναι δύο κατηγοριών: οι εξατομικευμένες συστάσεις, οι οποίες εξαρτώνται από τον
χρήστη για τον οποίο γίνονται, και οι γενικευμένες συστάσεις, οι οποίες εξαρτώνται κυρίως από τα
υπάρχοντα φορτωμένα δεδομένα και είναι σχετικά κοινή μεταξύ πολλαπλών χρηστών. Για τις
εξατομικευμένες συστάσεις, χρησιμοποιούνται δύο μέθοδοι: η πρώτη ανήκει στην κατηγορία
μεθόδων: user-based collaborative filtering, ενώ η δεύτερη στην κατηγορία: item-based
collaborative filtering. Τα αποτελέσματα και από τις δύο προσεγγίσεις εμφανίζονται ξεχωριστά
όταν ζητηθεί η παραγωγή εξατομικευμένης σύστασης. Στα εισαγόμενα δεδομένα στη διάρκεια
εκτέλεσης είναι υπολογισμένες σχεδόν όλες οι απαραίτητες παράμετροι που απαιτούνται για την
παραγωγή μίας σύστασης. Όλοι οι υπολογισμοί γίνονται κατά το χρόνο της φόρτωσης των
δεδομένων, κάτι που επιταχύνει κατά πολύ τη διαδικασία παραγωγής συστάσεων. Επιπλέον
προσφέρεται η δυνατότητα εξαγωγής δεδομένων σε αρχείο. Η εισαγωγή δεδομένων μπορεί να γίνει
μέσω αρχείου CSV ή JSON, ενώ η εξαγωγή σε μορφή JSON. Πέρα από την παραγωγή συστάσεων
με βάση τα αποθηκευμένα δεδομένα, το πρόγραμμα περιέχει πρόσθετες λειτουργίες και
χαρακτηριστικά: συγκεκριμένα παρέχει τη δυνατότητα προβολής και επεξεργασίας των
υπαρχόντων δεδομένων ή ενός υποσυνόλου αυτών. Επίσης δίνεται η δυνατότητα για χειροκίνητη
δημιουργία προφίλ με τα οποία μπορεί ένας χρήστης του προγράμματος να διατηρήσει αρχείο για
τις ταινίες που έχει δει, τις βαθμολογίες και τα tags που έχει βάλει, καθώς και να λάβει συστάσεις
ταινιών βασισμένες στη δική του δραστηριότητα.
Για το πρόγραμμα αυτό αναπτύχθηκαν unit tests τα οποία έχουν τη δυνατότητα να ελέγξουν την
ορθότητα των λειτουργιών του προγράμματος με αυτοματοποιημένο τρόπο. Τα unit tests έχουν
υλοποιηθεί ως αυτόνομα μικρότερα προγράμματα που παράγονται σε ένα μεγάλο ποσοστό από τον
ίδιο πηγαίο κώδικα που παράγεται και το κυρίως πρόγραμμα, αλλά μπορούν να εκτελεστούν
ξεχωριστά από αυτό. Κάθε αυτόνομο τέτοιο πρόγραμμα περιέχει ένα σύνολο από test της ίδιας
‘κατηγορίας’.
Τέλος, σημειώνεται το πρόγραμμα αυτό έχει υλοποιηθεί με τη λογική να αποτελέσει μια γενικότερη
πλατφόρμα για την υλοποίηση συστημάτων συστάσεων: έχει επιχειρηθεί να σχεδιαστεί με τρόπο
τέτοιο ώστε να είναι εύκολη η προσθήκη διαφορετικών μεθόδων παραγωγής συστάσεων καθώς και
ο εμπλουτισμός των υπαρχόντων μεθόδων. Επιπλέον, καθιστά εύκολο να γενικευτεί ο σκοπός του
ώστε να αφορά την παραγωγή συστάσεων και για οποιοδήποτε άλλο αντικείμενο πέρα από ταινίες,
αρκεί αυτό το αντικείμενο να έχει τέτοια δομή ώστε να επιτρέπει βαθμολογήσεις και προσδιορισμό
λεκτικών προσδιορισμών.
|