First you need to define "best". What is the overall rating for each
post? Good minus bad? Total good and ignore the bad? Something more
complex? How many "best" do you want?
Once you've defined that, you can figure out how to do it
programmatically for each post. Offhand I'd say this might wind up
being too slow to do on the fly for all posts, so as to find the top.
Premature optimization is the root of all evil, but still I'd give
SOME thought to how to stash a post's overall rating, especially in a
way that will make it trivial to retrieve the top N "best" posts (or
"worst" for that matter). Further thoughts if you like....