class VaderSentimentRuby::Checker::LeastWordNegationChecker

Checks for negation case using “least”

Public Class Methods

new(valence, words_and_emoticons, index, lexicon) click to toggle source
# File lib/vader_sentiment_ruby/checker/least_word_negation_checker.rb, line 7
def initialize(valence, words_and_emoticons, index, lexicon)
  @valence = valence
  @words_and_emoticons = words_and_emoticons
  @index = index
  @lexicon = lexicon
end

Public Instance Methods

call() click to toggle source
# File lib/vader_sentiment_ruby/checker/least_word_negation_checker.rb, line 14
def call
  valence = @valence
  return valence unless !word_in_lexicon?(@index - 1) && word_is?(@index - 1, 'least')

  if @index > 1
    valence *= Constants::N_SCALAR if !word_is?(@index - 2, 'at') && !word_is?(@index - 2, 'very')
  elsif @index.positive?
    valence *= Constants::N_SCALAR
  end

  valence
end

Private Instance Methods

word_in_lexicon?(index) click to toggle source
# File lib/vader_sentiment_ruby/checker/least_word_negation_checker.rb, line 29
def word_in_lexicon?(index)
  @lexicon.keys.include?(@words_and_emoticons[index].downcase)
end
word_is?(index, word) click to toggle source
# File lib/vader_sentiment_ruby/checker/least_word_negation_checker.rb, line 33
def word_is?(index, word)
  @words_and_emoticons[index].downcase == word
end