Algorithm for rating books: Relative perception

Posted by suneet on Programmers See other posts from Programmers or by suneet
Published on 2014-07-17T10:23:46Z Indexed on 2014/08/22 10:27 UTC
Read the original article Hit count: 251

So I am developing this application for rating books (think like IMDB for books) using relational database.

Problem statement :

Let's say book "A" deserves 8.5 in absolute sense. In case if A is the best book I have ever seen, I'll most probably rate it > 9.5 whereas for someone else, it might be just an average book, so he/they will rate it less (say around 8). Let's assume 4 such guys rate it 8.

If there are 10 guys who are like me (who haven't ever read great literature) and they all rate it 9.5-10. This will effectively make it's cumulative rating greater than 9 (9.5*10 + 8*4) / 14 = 9.1

whereas we needed the result to be 8.5 ... How can I take care of(normalize) this bias due to incorrect perception of individuals.

MyProposedSolution :

Here's one of the ways how I think it could be solved. We can have a variable Lit_coefficient which tells us how much knowledge a user has about literature. If I rate "A"(the book) 9.5 and person "X" rates it 8, then he must have read books much better than "A" and thus his Lit_coefficient should be higher. And then we can normalize the ratings according to the Lit_coefficient of user. Could there be a better algorithm/solution for the same?

© Programmers or respective owner

Related posts about algorithms

Related posts about relational-database