Update [11/02/12]: Looks like Chrome is blocking installation of my extension, which is fine. You can download the git repository and install from the extensions dashboard until I post to the webstore.
I have finally gone and done it! I thought of a really cool way to create a recommender using a statistical algorithm of choice, so I chose the easiest one: the Naive Bayes classifier! After so much frustration, this has been a good project!
You can see the posts recommended to me are highlighted.
What does my extension do exactly? In a nutshell, find interesting posts for you based on your past interests. Your past interests would be the posts you've clicked on. The more posts you click on, the better the recommendations.
How does it do it? Well, I thought of two things, gathering data and training the Naive Bayes classifier.This requires a persistent datasource, user to label the dataset and have the classifier trained on the data set.
- I decided Local Storage was the way to go, it is really really simple. Simple as getItem, setItem, and removeItem makes my life easy!
- I really want to make the labeling as simple as possible, so I used the delegate listener from jQuery to listen in on clicks to the posts. When you click on a post, it is saved onto a data structure and then saved into localstorage.
- The training happens when you click on the more link. The next page should show the current/updated recommendations.
- Title/Urls are not counted twice. Every post is a one time affair!
Considering that I finally got something working, I am working to polish and then publish this thing. I sort of fudged some values and need to look more into how the weighting is factored in. Weights are needed because there will always be more non-interests than interests, so the posts you click will need a high weight.
I'm hosting it right now! Come and get it!