2

I am more a programming guy than math one, so please be easy on me with math expressions

Before I start describing to make it clear: I have 2 types of scores: reddit score and sentiment score. Reddit score can be of any value. Sentiment score ranges between -1 and 1

So my task is to calculate weight for each sentiment score. Besides analyzing post for sentiments I want to give this post a weight to enhance evaluation of sentiment value it carries

Basically it would look like this

sentiment value = sentiment_analyzer(post) * weight 

I want to use average of reddit scores, which can be both negative and positive Then apply this average to calculate weight the following way:

weight = reddit_score / average(reddit_scores)

So here comes the problem, it is not typical but what happens if average will end up negative ? On one hand we can leave it as is, hoping this will never happen, but if it will it would ruin all scoring (I guess ?) , on the other we can't just make it positive and ignore that fact it was originally calculated with negative values.

Maybe I am missing some basic Math concepts, but I really can remember this situation, when I studied Math.

As for method itself I understand it far from accurate, but I am also limited on functions, so I would be grateful if you tell me whether this weight estimation method makes sense at all. And if there is a better simple method. (Even quartile formula not available)

twmp
  • 23

1 Answers1

2

You can apply the transformation $\exp$ to your reddit_scores. (Exponentiate everything, e.g. $e^{reddit\_scores}$.) This will make everything positive. Then really bad posts will have very little leverage. For example, if a post got a negative value it would be just a fraction. But if a post got a positive rating then it would be a larger number. If you do not have access to exponentiation, you can remove posts with negative votes because they are supposed to be weighed very little.

A sentiment score times a weight by itself carries little meaning because it will obscure the actual sentiment score that was received. For example, if something was slightly positive (say .5) and you had a weight of 1.5 you would get a weighed sentiment score of .75, which actually means something else on the sentiment scale. So don't actually use the weights until you have all the weights and want to take the average. Then you can do

average sentiment= Sum of (weight * sentiment_analyzer(post))
                   __________________________________________
                   Sum of weights
Vons
  • 11,004