private SentimentAnalysisResults ScoreValence(List <double> sentiments, SentiText text)
        {
            if (sentiments.Count == 0)
            {
                return(new SentimentAnalysisResults()); //will return with all 0
            }
            var sum           = sentiments.Sum();
            var puncAmplifier = PunctuationEmphasis(text.Text);

            sum += Math.Sign(sum) * puncAmplifier;

            var compound = SentimentUtils.Normalize(sum);
            var sifted   = SiftSentimentScores(sentiments);

            if (sifted.PosSum > Math.Abs(sifted.NegSum))
            {
                sifted.PosSum += puncAmplifier;
            }
            else if (sifted.PosSum < Math.Abs(sifted.NegSum))
            {
                sifted.NegSum -= puncAmplifier;
            }

            var total = sifted.PosSum + Math.Abs(sifted.NegSum) + sifted.NeuCount;

            return(new SentimentAnalysisResults
            {
                Compound = Math.Round(compound, 4),
                Positive = Math.Round(Math.Abs(sifted.PosSum / total), 3),
                Negative = Math.Round(Math.Abs(sifted.NegSum / total), 3),
                Neutral = Math.Round(Math.Abs(sifted.NeuCount / total), 3)
            });
        }