Skip to content

PetropoulakisPanagiotis/cryptocurrencyRecommendation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT

Cryptocurrency Recommendation based on Tweets



⚡Note: this assignment is based on two previous projects. Refer to them at first:

  1. nearest-neighbor-search
  2. clustering

Explanation

We have a set of tweets(T), N users and there are four additional files:

  1. ./sets/tweets_dataset_small.csv that contains the tokenized(preprocessed) tweets
  2. ./sets/twitter_dataset_small_vector.csv that contains the corresponding TFIDF representation of these tweets
  3. ./sets/coins_queries.csv that contains K Bitcoins
  4. ./sets/vader_lexicon.csv that contains words/symbols with a corresponding sentiment score

⚡Assumption: each tweet refers only to a specific Bitcoin

At first, we calculate a sentiment vector Ui for every user. This vector has K dimensions and every cell corresponds to a specific bitcoin. Each cell contains a sentiment score([-1,1]) that represents the sentiment of a specific user for a specific Bitcoin. The sentiment score is calculated as follows:


The totalscore is the total sum of the corresponding sentiment score(vader lexicon) of each word/symbol of all the tweets that refer to Bitcoin i.

The Cryptocurrency Recommendation contains 4 different methods:

  1. Recommend to user j new Bitcoins using nearest-neighbor-search techniques to find their nearest neighbors based on the Ui vectors.
  2. Perform clustering on users' Ui vectors. Recommend to user j new Bitcoins using his nearest neighbors that reside in the same cluster.
  3. Perform clustering on tweets using their TFIDF representation. Each cluster "forms" a pseudo-user with a new Ui sentiment vector. Recommend to user j new Bitcoins using nearest-neighbor-search techniques to find their nearest neighbors based on the new Ui vectors of the pseudo-users.
  4. Perform clustering on tweets using their TFIDF representation. Each cluster "forms" a pseudo-user with a new Ui sentiment vector. After that, perform clustering on pseudo-users' Ui vectors. Recommend to user j new Bitcoins using his nearest neighbors that reside in the same(previous) cluster.

Installation

Clone this repository to your local machine:

git clone https://github.com/PetropoulakisPanagiotis/cryptocurrencyRecommendation.git

⚡To run the tests, first download Catch2.

Replicate the results

$ cd experiment
$ make
$ make run

Author

Petropoulakis Panagiotis petropoulakispanagiotis@gmail.com