Live data from Hacker News

Simple recommendation system written in Ruby

otobrglez.opalab.com

1–10 of 21 posts

Re: Simple recommendation system written in Ruby

#8

Programming Collective Intelligence is an excellent book for learning these sort of things. First chapter is a recommendation engine! :)

I second this. And if you decide you want to go really in-depth on recommender systems, I suggest taking a look at "Recommender Systems Handbook" (http://www.springer.com/computer/ai/book/978-0-387-85819-7). It's basically a collection of scholarly articles on on the topic, so the approach is academic. But it's also the best resource I'm aware of for understanding what's state-of-the art across a range of aspects of recommender systems. (Also, although the price is a somewhat hair-raising $179, there are PDF copies of the whole thing floating around that are easy to find with a google search.)

Re: Simple recommendation system written in Ruby

#9

You may use Levenshtein Distance to get better results by taking word variations into account. And also you can enhance it by using semantic similarity scores for strings.

If you're willing to get into actual NLP, then semantic similarity would certainly be one way to go. Is there any equivalent to Stanford (Java) or NLTK (Python) in Ruby land? But I'm not sure that Levenshtein will necessarily get you better results than the bag-of-words approach the author is taking with Jaccard distance, if all you're doing is document classification.

Re: Simple recommendation system written in Ruby

#10

How well does this perform compared to your postgreSQL example? Also - We are looking for a Ruby / Backbone.js developer drop me an email josh@seriousfox.co.uk :)

Thanks for you comment Josh. In production I actually implemented PG version and it's still in use today. I thought it will scale better and last longer. I didn't do benchmarking or anything like that - it think it would really depend on size of you dataset. For something serious - compute recommendation in background and store them in database. I believe that is how "big boys" do it. :)
Post reply on HN