What are your ideas for a controversial sorting algorithm for Lemmy?

Veritas@lemmy.ml to Programming@beehaw.org – 37 points –
Controversial posts and comments · Issue #2515 · LemmyNet/lemmy
github.com

There is a request for a comment on this issue Controversial posts and comments #2515. Do you have any ideas on how best to implement this?

I'd like to see some more people chime in with opinions, but maybe that'll come with a PR. At the very least, it's something that can be moved forward with.

— dcormier

13

You are viewing a single comment

My first thought is to rank items by totalVotes / score. This would prioritize posts that get lots of votes in both directions.

Example:

def getControversialScore(upvotes, downvotes):
  return (upvotes + downvotes) / abs(upvotes - downvotes)

getControversialScore(50, 10) # 1.5
getControversialScore(4, 5) # 9
getControversialScore(6, 30) # 1.44
getControversialScore(30, 28) # 29

It might depend on the definition but I'd probably expect engagement/total to play a bigger factor.

As it is it weights very heavily towards evenness:
A: (11, 10) = 21
B: (99, 90) = 21

They have the same ratio of votes but I'd expect B to be more controversial since more votes are tied up in the controversy / it got more attention. Maybe most people just don't care about A so they didn't bother to vote.

If you square the numerator then the busier comments would score higher.

I like this. Super clean and simple.

That said, I suspect Reddit's 'controversial' sorting might work a little differently, as I often used it to see what the crazy people were saying.

I haven't played with the numbers, but I'm not sure that your proposal would push the crazies to the top - just the moderate crazies.