sentiment / 1.0.2 last updated 2 months ago created on Oct 8th 2012

Install

npm install --save sentiment

Clone

git clone git@github.com:thisandagain/sentiment.git

dependencies

main extend-object 1.0.0 MIT

maintainers

diy diy

versions 8 total

1.0.2 2 months ago diy
1.0.1 5 months ago diy
1.0.0-alpha 6 months ago diy
0.2.4 6 months ago diy
0.2.3 7 months ago diy
0.2.1 a year ago diy
0.2.0 2 years ago diy
0.1.0 2 years ago diy
288 Downloads yesterday.

readme

sentiment

AFINN-based sentiment analysis for Node.js

Build Status

Sentiment is a Node.js module that uses the AFINN-111 wordlist to perform sentiment analysis on arbitrary blocks of input text. Sentiment provides serveral things:

  • Performance (see benchmarks below)
  • The ability to append and overwrite word / value pairs from the AFINN wordlist
  • A build process that makes updating sentiment to future versions of the AFINN word list trivial

Installation

npm install sentiment

Usage

1
2
3
4
5
6
7
var sentiment = require('sentiment');

var r1 = sentiment('Cats are stupid.');
console.dir(r1);        // Score: -2, Comparative: -0.666

var r2 = sentiment('Cats are totally amazing!');
console.dir(r2);        // Score: 4, Comparative: 1

Adding / overwriting words

You can append and/or overwrite values from AFINN by simply injecting key/value pairs into a sentiment method call:

1
2
3
4
5
6
7
var sentiment = require('sentiment');

var result = sentiment('Cats are totally amazing!', {
    'cats': 5,
    'amazing': 2  
});
console.dir(result);    // Score: 7, Comparative: 1.75

Benchmarks

The primary motivation for designing sentiment was performance. As such, it includes a benchmark script within the test directory that compares it against the Sentimental module which provides a nearly equivalent interface and approach. Based on these benchmarks, running on an older MacBook Air with Node 0.10.26, sentiment is more than twice as fast as alternative implementations:

sentiment (Latest) x 244,901 ops/sec ±0.49% (100 runs sampled)
Sentimental (1.0.1) x 94,135 ops/sec ±0.50% (100 runs sampled)

To run the benchmarks yourself, simply:

make benchmark

Testing

npm test
Resolving all dependencies.. This could take a while as our cache is not yet fully warmed up.