⚡Note: this assignment is based on two previous projects. Refer to them at first:
We have a set of tweets(T), N users and there are four additional files:
- ./sets/tweets_dataset_small.csv that contains the tokenized(preprocessed) tweets
- ./sets/twitter_dataset_small_vector.csv that contains the corresponding TFIDF representation of these tweets
- ./sets/coins_queries.csv that contains K Bitcoins
- ./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:
- Recommend to user j new Bitcoins using nearest-neighbor-search techniques to find their nearest neighbors based on the Ui vectors.
- Perform clustering on users' Ui vectors. Recommend to user j new Bitcoins using his nearest neighbors that reside in the same cluster.
- 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.
- 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.
Clone this repository to your local machine:
git clone https://github.com/PetropoulakisPanagiotis/cryptocurrencyRecommendation.git
⚡To run the tests, first download Catch2.
$ cd experiment
$ make
$ make run
Petropoulakis Panagiotis [email protected]