Skip to content

ioniodi/twitter-stream-globe

 
 

Repository files navigation

Sentiment Analysis on Twitter

Εκφώνηση

Μέρος Α

Παράδειγμα της αρχικής real-time εφαρμογής θα βρείτε στον σύνδεσμο: https://stark-lake-93710.herokuapp.com/. Στο συγκεκριμένο παράδειγμα, εάν το συναίσθημα είναι θετικό, η ακτίνα που εκπέμπεται είναι κίτρινη, ενώ εάν είναι αρνητικό, είναι κόκκινη. Στόχος του μέρους Α αυτής της εργασίας είναι να τροποποιήσετε τον κώδικα ανάλογα με αυτά που σας ζητούνται σε κάθε παραδοτέο. Για παράδειγμα, στη διαβάθμιση των θετικών ή αρνητικών συναισθημάτων που οπτικοποιούνται (τμήμα του Παραδοτέου 2), μια πρόταση θα μπορούσε να είναι: έντονα αρνητικό συναίσθημα με κόκκινο χρώμα, αρνητικό συναίσθημα με πορτοκαλί χρώμα, θετικό συναίσθημα με κίτρινο χρώμα, έντονα θετικό συναίσθημα με πράσινο χρώμα.

Ο κώδικας που θα επεξεργαστούμε παρακάτω προέρχεται από το αποθετήριο: https://github.com/twitterdev/twitter-stream-globe.

Μέρος Β (bonus)

Στο μέρος Β αυτής της εργασίας θα πρέπει να μεταφράσετε στα ελληνικά και να ενσωματώσετε (pull request) τις λέξεις που υποδηλώνουν συναισθήματα στο αρχείο AFINN-translateToGreek165.txt. Αναλυτικές οδηγίες παρέχονται παρακάτω.

Οδηγίες εκπόνησης της εργασίας (βήμα προς βήμα)

forkRepository

Για να τρέξετε αρχικά την εφαρμογή:

  • Δημιουργήστε ένα νέο κλαδί (branch) στο αντίγραφο του αποθετηρίου στον λογαριασμό σας.
  • Δημιουργήστε μια νέα εφαρμογή στο twitter.
  • Θα χρειαστείτε να αξιοποιήσετε την πλατφόρμα PubNub (είναι δωρεάν).
  • Μπείτε στον λογαριασμό σας στο Heroku και δημιουργήστε μια νέα εφαρμογή. Η πλατφόρμα Heroku, η οποία συνεργάζεται και με το Github https://blog.heroku.com/heroku_github_integration προσφέρει δωρεάν υπηρεσίες web hosting σε ssl.

herokuapps

  • Στο αποθετήριο που έχετε αντιγράψει στον λογαριασμό σας (βλ. προηγούμενα βήματα), οι μεταβλητές-ετικέτες (KEYS): TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN και TWITTER_TOKEN_SECRET θα πρέπει να αντικατασταθούν με τις τιμές (VALUES) των αντίστοιχων μεταβλητών της εφαρμογής σας στο twitter που δημιουργήσατε στο προηγούμενο βήμα και οι PUBNUB_PUBLISH_KEY και PUBNUB_SUBSCRIBE_KEY με τις αντίστοιχες τιμές από το PubNub.

Συμβουλή: Για λόγους ασφαλείας, καλό θα είναι αυτές οι τιμές των 6 μεταβλητών που περιγράψαμε παραπάνω (TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET κ.λπ.) να μην είναι δημόσια στο github. Μια καλή λύση θα ήταν να τις αποκρύψετε καταχωρώντας τις κατευθείαν στην εφαρμογή σας στο Heroku (Settings -> Config Variables).

herokuConfigp0

και στη συνέχεια

herokuConfigp1

Όσον αφορά στην πλατφόρμα PubNub, για να βρείτε τις τιμές των 2 μεταβλητών ακολουθήστε τα εξής βήματα:

Βήμα 1 pubnub1 Βήμα 2 pubnub2

  • Στην καρτέλα Deploy στο Heroku dashboard, συνδέστε την εφαρμογή που μόλις δημιουργήσατε με το repository που μεταφέρατε στο github μέσω fork (κάντε την απαραίτητη ρύθμιση στο πεδίο Connect to GitHub -> Search -> Connect). herokudeploy1
  • Πατήστε το κουμπί Deploy Branch για να ανέβει ο κώδικας από το github στην εφαρμογή σας. Αυτή η κίνηση θα πρέπει να γίνεται κάθε φορά που θα αλλάζετε κάτι στο github, προκειμένου να ενημερώνεται η εφαρμογή σας στο Heroku. herokudeploy2
  • Πατήστε το κουμπί Open app στο Dashboard της εφαρμογής σας στο Heroku και στην καρτέλα που ανοίγει εκτελείται η εφαρμογή σας.

Για το Μέρος Α:

  • Δημιουργήστε ένα νέο κλαδί (branch) για κάθε αλλαγή που θα κάνετε στον κώδικα.
  • Εφαρμόστε τις αλλαγές στον κώδικα του κατάλληλου(/ων) κάθε φορά αρχείου(/ων), ανάλογα με το παραδοτέο.

Για το Μέρος Β (bonus):

Στα πλαίσια του bonus της εργασίας θα πρέπει να μεταφράσετε στα ελληνικά και να ενσωματώσετε (pull request από το ξεχωριστό κλαδί/branch του -αντιγραμμένου στον λογαριασμό σας- αποθετηρίου του κώδικα της εφαρμογής) τις λέξεις που υποδηλώνουν συναισθήματα στο αρχείο AFINN-translateToGreek165.txt.

  • Δημιουργήστε ένα νέο κλαδί (branch). Στο νέο κλαδί δεν θα πρέπει να έχει υπάρχει οποιαδήποτε προγενέστερη αλλαγή που να έχει γίνει από εσάς στον αρχικό κώδικα.
  • Στο αρχείο AFINN-translateToGreek165.txt προσθέστε τις μεταφρασμένες ελληνικές λέξεις. Θα πρέπει να υπάρχουν εντός σχολίων, στα λατινικά, τα εξής στοιχεία: ο Α.Μ. σας, το ονοματεπώνυμο και ο τίτλος του μαθήματος.
  • Το σύνολο των μεταφρασμένων λέξεων θα πρέπει να είναι τουλάχιστον 40.
  • Προκειμένου να αποφευχθεί μεγάλος αριθμός μεταφράσεων σε λίγες λέξεις, προτείνουμε κάθε φοιτητής/τρια να επιλέγει κατά προτεραιότητα τις λέξεις εκείνες που ξεκινούν με το αρχικό γράμμα του επωνύμου του/της, ελέγχοντας παράλληλα και τις δηλώσεις-δεσμεύσεις λέξεων των υπολοίπων. Στον σύνδεσμο δεσμευμένες λέξεις μπορείτε να βλέπετε ποιες λέξεις έχουν ήδη δεσμευτεί από άλλους/ες συμφοιτητές/συμφοιτήτριές σας (οι χρωματισμένες λέξεις έχουν ήδη δεσμευτεί) και να δεσμεύετε τις δικές σας (με το να τις χρωματίζετε).

Παρακάτω φαίνεται ένα ενδεικτικό παράδειγμα του 2016000 πριν και μετά την προσθήκη των μεταφρασμένων λέξεων στο αρχείο AFINN-translateToGreek165.txt:

Πριν τη μετάφραση

accomplish 2
accomplished 2
accomplishes 2

Μετά τη μετάφραση

accomplish 2
ολοκληρώνω 2
// 2016000 Giorgos Αnomeritis CSCW
accomplished 2
ολοκλήρωσα 2
ολοκληρώθηκε 2
// 2016000 Giorgos Αnomeritis CSCW
accomplishes 2
ολοκληρώνει 2
// 2016000 Giorgos Αnomeritis CSCW
  • Όταν έχετε ολοκληρώσει το τμήμα του παραδοτέου που σας ζητείται σε αυτήν τη φάση της εργασίας, κάντε pull request με τίτλο τον Α.Μ. σας και το είδος του παραδοτέου και στα σχόλια να συμπεριλάβετε το ονομετεπώνυμο και τα αρχικά του μαθήματος (π.χ. CSCW, SW κ.λπ.) - όλα με λατινικούς χαρακτήρες.

Προσοχή: Δεν θα πρέπει να διαγράψετε κάτι στο αρχείο AFINN-translateToGreek165.txt, ΜΟΝΟ να κάνετε τις κατάλληλες προσθήκες.

Εφόσον επιλέξετε να εκπονήσετε και το bonus, το μόνο pull request που χρειάζεται να γίνει (το πέμπτο συνολικά μετά τα 4 pull request που έχετε κάνει στο αποθετήριο του μαθήματος) είναι στο αποθετήριο του κώδικα της εφαρμογής, με τις αλλαγές στο branch σας να περιορίζονται αποκλειστικά και μόνο στο αρχείο AFINN-translateToGreek165.txt.

About

Η ιστοσελίδα της υλοποίησης:

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.8%
  • HTML 20.7%
  • CSS 11.5%