Skip to content

GIANNIS-AGGELIS/twitter-stream-globe

 
 

Repository files navigation

Sentiment Analysis on Twitter

Εκφώνηση

Μέρος Α

Παράδειγμα της αρχικής real-time εφαρμογής θα βρείτε στον σύνδεσμο: http://twitter-stream-globe.herokuapp.com/. Στο συγκεκριμένο παράδειγμα, εάν το συναίσθημα είναι θετικό, η ακτίνα που εκπέμπεται είναι κίτρινη, ενώ εάν είναι αρνητικό, είναι κόκκινη. Στόχος του μέρους Α αυτής της εργασίας είναι να τροποποιήσετε τον κώδικα έτσι ώστε να υπάρχει διαβάθμιση σε κάθε θετικό ή αρνητικό συναίσθημα που οπτικοποιείται, π.χ.: έντονα αρνητικό συναίσθημα με κόκκινο χρώμα, αρνητικό συναίσθημα με πορτοκαλί χρώμα, θετικό συναίσθημα με κίτρινο χρώμα, έντονα θετικό συναίσθημα με πράσινο χρώμα.

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

Μέρος Β

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

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

forkRepository

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

  • Δημιουργήστε μια νέα εφαρμογή στο twitter.
  • Θα χρειαστείτε να αξιοποιήσετε την πλατφόρμα PubNub (είναι δωρεάν).
  • Στο αποθετήριο που έχετε αντιγράψει στον λογαριασμό σας (βλ. προηγούμενα βήματα), αντικαταστήστε στο αρχείο tweet-publisher/index.js τις ετικέτες TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN και TWITTER_TOKEN_SECRET με τις τιμές των αντίστοιχων μεταβλητών της εφαρμογής σας στο twitter που δημιουργήσατε στο προηγούμενο βήμα και τις μεταβλητές PUBNUB_PUBLISH_KEY και PUBNUB_SUBSCRIBE_KEY με τις αντίστοιχες τιμές από το PubNub.
var twitter = TweetPublisher.twitter = new Twit({
	consumer_key: nconf.get('TWITTER_CONSUMER_KEY'),
	consumer_secret: nconf.get('TWITTER_CONSUMER_SECRET'),
	access_token: nconf.get('TWITTER_ACCESS_TOKEN'),
	access_token_secret: nconf.get('TWITTER_TOKEN_SECRET')
});

var pubnub = TweetPublisher.pubnub = Pubnub({
	publish_key: nconf.get('PUBNUB_PUBLISH_KEY'),
	subscribe_key: nconf.get('PUBNUB_SUBSCRIBE_KEY')
});

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

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

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

Βήμα 1 herokuConfigp1 Βήμα 2 herokuConfigp2

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

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

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

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

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

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, ΜΟΝΟ να κάνετε τις κατάλληλες προσθήκες.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

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