Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών
Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη ενός προγράμματος που θα αποτελεί υλοποίηση ενός ολοκληρωμένου συστήματος συστάσεων για ταινίες. Συγκεκριμένα, έχοντας ως είσοδο δεδομένα που αφορούν τη δραστηριότητα ενός συνόλου χρηστών σχετικά με ένα σύνολο από ταινίες, το πρόγ...
Κύριος συγγραφέας: | |
---|---|
Άλλοι συγγραφείς: | |
Μορφή: | Thesis |
Γλώσσα: | Greek |
Έκδοση: |
2020
|
Θέματα: | |
Διαθέσιμο Online: | http://hdl.handle.net/10889/13127 |
id |
nemertes-10889-13127 |
---|---|
record_format |
dspace |
institution |
UPatras |
collection |
Nemertes |
language |
Greek |
topic |
Συστήματα συστάσεων Σύσταση ταινιών Εξατομικευμένες συστάσεις Συνεργατικό φιλτράρισμα Recommender systems Movie recommendation Personalized recommendations Collaborative filtering |
spellingShingle |
Συστήματα συστάσεων Σύσταση ταινιών Εξατομικευμένες συστάσεις Συνεργατικό φιλτράρισμα Recommender systems Movie recommendation Personalized recommendations Collaborative filtering Τσιάκαλος, Στυλιανός Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
description |
Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη ενός προγράμματος που θα
αποτελεί υλοποίηση ενός ολοκληρωμένου συστήματος συστάσεων για ταινίες. Συγκεκριμένα,
έχοντας ως είσοδο δεδομένα που αφορούν τη δραστηριότητα ενός συνόλου χρηστών σχετικά με
ένα σύνολο από ταινίες, το πρόγραμμα θα μπορεί να παράγει συστάσεις ταινιών προς τους χρήστες
αυτούς. Η δραστηριότητα αυτή συγκεκριμένα αναφέρεται στην παρακολούθηση ή όχι των ταινιών,
στις βαθμολογήσεις αυτών σε αριθμητική συνεχή κλίμακα, καθώς και την εισαγωγή σύντομων
λεκτικών περιγραφών (tags) για τις ταινίες από τους χρήστες. Οι συστάσεις που μπορούν να
παραχθούν είναι δύο κατηγοριών: οι εξατομικευμένες συστάσεις, οι οποίες εξαρτώνται από τον
χρήστη για τον οποίο γίνονται, και οι γενικευμένες συστάσεις, οι οποίες εξαρτώνται κυρίως από τα
υπάρχοντα φορτωμένα δεδομένα και είναι σχετικά κοινή μεταξύ πολλαπλών χρηστών. Για τις
εξατομικευμένες συστάσεις, χρησιμοποιούνται δύο μέθοδοι: η πρώτη ανήκει στην κατηγορία
μεθόδων: user-based collaborative filtering, ενώ η δεύτερη στην κατηγορία: item-based
collaborative filtering. Τα αποτελέσματα και από τις δύο προσεγγίσεις εμφανίζονται ξεχωριστά
όταν ζητηθεί η παραγωγή εξατομικευμένης σύστασης. Στα εισαγόμενα δεδομένα στη διάρκεια
εκτέλεσης είναι υπολογισμένες σχεδόν όλες οι απαραίτητες παράμετροι που απαιτούνται για την
παραγωγή μίας σύστασης. Όλοι οι υπολογισμοί γίνονται κατά το χρόνο της φόρτωσης των
δεδομένων, κάτι που επιταχύνει κατά πολύ τη διαδικασία παραγωγής συστάσεων. Επιπλέον
προσφέρεται η δυνατότητα εξαγωγής δεδομένων σε αρχείο. Η εισαγωγή δεδομένων μπορεί να γίνει
μέσω αρχείου CSV ή JSON, ενώ η εξαγωγή σε μορφή JSON. Πέρα από την παραγωγή συστάσεων
με βάση τα αποθηκευμένα δεδομένα, το πρόγραμμα περιέχει πρόσθετες λειτουργίες και
χαρακτηριστικά: συγκεκριμένα παρέχει τη δυνατότητα προβολής και επεξεργασίας των
υπαρχόντων δεδομένων ή ενός υποσυνόλου αυτών. Επίσης δίνεται η δυνατότητα για χειροκίνητη
δημιουργία προφίλ με τα οποία μπορεί ένας χρήστης του προγράμματος να διατηρήσει αρχείο για
τις ταινίες που έχει δει, τις βαθμολογίες και τα tags που έχει βάλει, καθώς και να λάβει συστάσεις
ταινιών βασισμένες στη δική του δραστηριότητα.
Για το πρόγραμμα αυτό αναπτύχθηκαν unit tests τα οποία έχουν τη δυνατότητα να ελέγξουν την
ορθότητα των λειτουργιών του προγράμματος με αυτοματοποιημένο τρόπο. Τα unit tests έχουν
υλοποιηθεί ως αυτόνομα μικρότερα προγράμματα που παράγονται σε ένα μεγάλο ποσοστό από τον
ίδιο πηγαίο κώδικα που παράγεται και το κυρίως πρόγραμμα, αλλά μπορούν να εκτελεστούν
ξεχωριστά από αυτό. Κάθε αυτόνομο τέτοιο πρόγραμμα περιέχει ένα σύνολο από test της ίδιας
‘κατηγορίας’.
Τέλος, σημειώνεται το πρόγραμμα αυτό έχει υλοποιηθεί με τη λογική να αποτελέσει μια γενικότερη
πλατφόρμα για την υλοποίηση συστημάτων συστάσεων: έχει επιχειρηθεί να σχεδιαστεί με τρόπο
τέτοιο ώστε να είναι εύκολη η προσθήκη διαφορετικών μεθόδων παραγωγής συστάσεων καθώς και
ο εμπλουτισμός των υπαρχόντων μεθόδων. Επιπλέον, καθιστά εύκολο να γενικευτεί ο σκοπός του
ώστε να αφορά την παραγωγή συστάσεων και για οποιοδήποτε άλλο αντικείμενο πέρα από ταινίες,
αρκεί αυτό το αντικείμενο να έχει τέτοια δομή ώστε να επιτρέπει βαθμολογήσεις και προσδιορισμό
λεκτικών προσδιορισμών. |
author2 |
Δερματάς, Ευάγγελος |
author_facet |
Δερματάς, Ευάγγελος Τσιάκαλος, Στυλιανός |
format |
Thesis |
author |
Τσιάκαλος, Στυλιανός |
author_sort |
Τσιάκαλος, Στυλιανός |
title |
Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
title_short |
Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
title_full |
Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
title_fullStr |
Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
title_full_unstemmed |
Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
title_sort |
ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών |
publishDate |
2020 |
url |
http://hdl.handle.net/10889/13127 |
work_keys_str_mv |
AT tsiakalosstylianos anaptyxēepharmogēsgiaparagōgēsystaseōntainiōn AT tsiakalosstylianos developmentofamovierecommendationapplication |
_version_ |
1771297160538619904 |
spelling |
nemertes-10889-131272022-09-05T05:37:33Z Ανάπτυξη εφαρμογής για παραγωγή συστάσεων ταινιών Development of a movie recommendation application Τσιάκαλος, Στυλιανός Δερματάς, Ευάγγελος Σγάρμπας, Κυριάκος Tsiakalos, Stylianos Συστήματα συστάσεων Σύσταση ταινιών Εξατομικευμένες συστάσεις Συνεργατικό φιλτράρισμα Recommender systems Movie recommendation Personalized recommendations Collaborative filtering Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη ενός προγράμματος που θα αποτελεί υλοποίηση ενός ολοκληρωμένου συστήματος συστάσεων για ταινίες. Συγκεκριμένα, έχοντας ως είσοδο δεδομένα που αφορούν τη δραστηριότητα ενός συνόλου χρηστών σχετικά με ένα σύνολο από ταινίες, το πρόγραμμα θα μπορεί να παράγει συστάσεις ταινιών προς τους χρήστες αυτούς. Η δραστηριότητα αυτή συγκεκριμένα αναφέρεται στην παρακολούθηση ή όχι των ταινιών, στις βαθμολογήσεις αυτών σε αριθμητική συνεχή κλίμακα, καθώς και την εισαγωγή σύντομων λεκτικών περιγραφών (tags) για τις ταινίες από τους χρήστες. Οι συστάσεις που μπορούν να παραχθούν είναι δύο κατηγοριών: οι εξατομικευμένες συστάσεις, οι οποίες εξαρτώνται από τον χρήστη για τον οποίο γίνονται, και οι γενικευμένες συστάσεις, οι οποίες εξαρτώνται κυρίως από τα υπάρχοντα φορτωμένα δεδομένα και είναι σχετικά κοινή μεταξύ πολλαπλών χρηστών. Για τις εξατομικευμένες συστάσεις, χρησιμοποιούνται δύο μέθοδοι: η πρώτη ανήκει στην κατηγορία μεθόδων: user-based collaborative filtering, ενώ η δεύτερη στην κατηγορία: item-based collaborative filtering. Τα αποτελέσματα και από τις δύο προσεγγίσεις εμφανίζονται ξεχωριστά όταν ζητηθεί η παραγωγή εξατομικευμένης σύστασης. Στα εισαγόμενα δεδομένα στη διάρκεια εκτέλεσης είναι υπολογισμένες σχεδόν όλες οι απαραίτητες παράμετροι που απαιτούνται για την παραγωγή μίας σύστασης. Όλοι οι υπολογισμοί γίνονται κατά το χρόνο της φόρτωσης των δεδομένων, κάτι που επιταχύνει κατά πολύ τη διαδικασία παραγωγής συστάσεων. Επιπλέον προσφέρεται η δυνατότητα εξαγωγής δεδομένων σε αρχείο. Η εισαγωγή δεδομένων μπορεί να γίνει μέσω αρχείου CSV ή JSON, ενώ η εξαγωγή σε μορφή JSON. Πέρα από την παραγωγή συστάσεων με βάση τα αποθηκευμένα δεδομένα, το πρόγραμμα περιέχει πρόσθετες λειτουργίες και χαρακτηριστικά: συγκεκριμένα παρέχει τη δυνατότητα προβολής και επεξεργασίας των υπαρχόντων δεδομένων ή ενός υποσυνόλου αυτών. Επίσης δίνεται η δυνατότητα για χειροκίνητη δημιουργία προφίλ με τα οποία μπορεί ένας χρήστης του προγράμματος να διατηρήσει αρχείο για τις ταινίες που έχει δει, τις βαθμολογίες και τα tags που έχει βάλει, καθώς και να λάβει συστάσεις ταινιών βασισμένες στη δική του δραστηριότητα. Για το πρόγραμμα αυτό αναπτύχθηκαν unit tests τα οποία έχουν τη δυνατότητα να ελέγξουν την ορθότητα των λειτουργιών του προγράμματος με αυτοματοποιημένο τρόπο. Τα unit tests έχουν υλοποιηθεί ως αυτόνομα μικρότερα προγράμματα που παράγονται σε ένα μεγάλο ποσοστό από τον ίδιο πηγαίο κώδικα που παράγεται και το κυρίως πρόγραμμα, αλλά μπορούν να εκτελεστούν ξεχωριστά από αυτό. Κάθε αυτόνομο τέτοιο πρόγραμμα περιέχει ένα σύνολο από test της ίδιας ‘κατηγορίας’. Τέλος, σημειώνεται το πρόγραμμα αυτό έχει υλοποιηθεί με τη λογική να αποτελέσει μια γενικότερη πλατφόρμα για την υλοποίηση συστημάτων συστάσεων: έχει επιχειρηθεί να σχεδιαστεί με τρόπο τέτοιο ώστε να είναι εύκολη η προσθήκη διαφορετικών μεθόδων παραγωγής συστάσεων καθώς και ο εμπλουτισμός των υπαρχόντων μεθόδων. Επιπλέον, καθιστά εύκολο να γενικευτεί ο σκοπός του ώστε να αφορά την παραγωγή συστάσεων και για οποιοδήποτε άλλο αντικείμενο πέρα από ταινίες, αρκεί αυτό το αντικείμενο να έχει τέτοια δομή ώστε να επιτρέπει βαθμολογήσεις και προσδιορισμό λεκτικών προσδιορισμών. The subject of this thesis is the development of an application that aims to be a full implementation of a movie recommendation system. With the activity of a set of users regarding their watched movies as input, the application will be able to produce movie recommendations for these users. Activity in this context is defined as whether a specific user has watched a movie or not, the rating that the user assigned for the movie (in a continuous arithmetic scale), as well as the tags that the user assigned for the movie. The recommendations that the application will produce can be split into two categories: the personalized recommendations, which are dependent on the user for which they are produced, and the generalized recommendations, which are dependent mainly on the loaded data and are common between users. Two methods are used for the production of personalized recommendations: the first falls under the 'user-based collaborative filtering' category, while the second falls under the 'item-based collaborative filtering' category. The results from both methods are displayed separately when a personalized recommendation is requested. In runtime, the loaded data have all the necessary parameters that are required for the production of a recommendation, pre-calculated. Almost all parameter calculations are made during the data loading phase, which results in much less time required for the production of recommendations. Data exporting to files is also supported in this application. Data loading can be performed via either CSV or JSON files, while exporting can be made to JSON files. Additionally, the application contains additional secondary features that improve usability: the application user can view and edit existing data, manually add new data via the CLI, view statistics on loaded data, and create and maintain user profiles which record their activity. For the development of this application, unit tests were constructed in order to fully test its functionalities in an automated manner. The unit tests are implemented as a set of smaller standalone programs that can be executed independently. Each standalone program contains multiple tests that fall under the same 'category'. Finally, it should be noted that this application is designed in such a way that it can be used as a general platform for recommender systems: it aims to easily facilitate additions in recommendation methods and/or enrichment of existing recommendation methods. Furthermore, it can be easily expanded in scope to produce recommendations for any item, as long as this item has a structure that allows for arithmetic ratings and tag allocation from users. 2020-02-06T21:16:33Z 2020-02-06T21:16:33Z 2019-12-12 Thesis http://hdl.handle.net/10889/13127 gr 0 application/pdf |