sentimental

by 7compass

7compass / sentimental

Simple sentiment analysis with Ruby

433 Stars 65 Forks Last release: Not found MIT License 61 Commits 3 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

sentimental

Simple sentiment analysis with Ruby

How it works

Sentences are tokenized and tokens are assigned a numerical score for their average sentiment. The total score is then used to determine the overall sentiment in relation to the threshold.

For example, the default threshold is 0.0. If a sentence has a score of 0, it is deemed "neutral". Higher than the thresold is "positive", lower is "negative".

If you set the threshold to a non-zero amount, e.g. 0.25:

  • Positive scores are > 0.25
  • Neutral scores are -0.25 - 0.25
  • Negative scores are < -0.25

Usage

# Create an instance for usage
analyzer = Sentimental.new

Load the default sentiment dictionaries

analyzer.load_defaults

And/or load your own dictionaries

analyzer.load_senti_file('path/to/your/file.txt')

Set a global threshold

analyzer.threshold = 0.1

Use your analyzer

analyzer.sentiment 'I love ruby' #=> :positive

analyzer.sentiment 'I like ruby' #=> :neutral

analyzer.sentiment 'I really like ruby' #=> :positive

You can make new analyzers with individual thresholds:

analyzer = Sentimental.new(threshold: 0.9) analyzer.sentiment 'I love ruby' #=> :positive

analyzer.sentiment 'I like ruby' #=> :neutral

analyzer.sentiment 'I really like ruby' #=> :neutral

Get the numerical score of a string:

analyzer.score 'I love ruby' #=> 0.925

Sentiment dictionaries

These are currently plain-text files containing whitespace-separated scores and tokens, e.g.:

1.0 Awesome
0.0 Meh
-1.0 Horrible

N-grams

You can parse n-grams of words by specifying their max size in the initializer:

  Sentimental.new(ngrams: 4)

The dictionary must have this format:

1.0 very happy
-2.0 no
0.0 meh

Installation

gem install sentimental

License

MIT License

Credits

Based largely on Christopher MacLellan's script: https://github.com/cmaclell/Basic-Tweet-Sentiment-Analyzer

Changes

  • 2013-10-13 Adding :-) to slang

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.