Skip to content

Commit

Permalink
Merge pull request #6 from thinkroth/remove_intensifiers
Browse files Browse the repository at this point in the history
intensifiers don't work with sentences, removing them
  • Loading branch information
thinkroth committed May 16, 2013
2 parents 06f936e + 53ef09e commit e6dc86f
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 183 deletions.
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ module.exports = {
analyze : analyze,
negativity : negativity,
positivity : positivity
};
};
46 changes: 5 additions & 41 deletions lib/sentimental.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,7 @@ var neg5 = require('../wordLists/neglist.js').neg5,
pos4 = require('../wordLists/poslist.js').pos4,
pos3 = require('../wordLists/poslist.js').pos3,
pos2 = require('../wordLists/poslist.js').pos2,
pos1 = require('../wordLists/poslist.js').pos1,
int3 = require('../wordLists/intlist.js').int3,
int2 = require('../wordLists/intlist.js').int2,
int1 = require('../wordLists/intlist.js').int1;

pos1 = require('../wordLists/poslist.js').pos1;


// Calculates the negative sentiment of a sentence
Expand All @@ -22,16 +18,11 @@ function negativity (phrase) {
hits += score;
words.push(t);
};
var multiply = function(t, score){
hits *= score;
adjectives.push(t);
};

var noPunctuation = phrase.replace(/[^a-zA-Z ]+/g, ' ').replace('/ {2,}/',' '),
tokens = noPunctuation.toLowerCase().split(" "),
hits = 0,
words = [],
adjectives = [];
words = [];

tokens.forEach(function(t) {
if (neg5.indexOf(t) > -1) {
Expand All @@ -47,21 +38,10 @@ function negativity (phrase) {
}
});

tokens.forEach(function(t) {
if (int3.indexOf(t) > -1) {
multiply(t, 4);
} else if (int2.indexOf(t) > -1) {
multiply(t, 3);
} else if (int1.indexOf(t) > -1) {
multiply(t, 2);
}
});

return {
score : hits,
comparative : hits / tokens.length,
words : words,
adjectives : adjectives
words : words
};
}

Expand All @@ -74,16 +54,11 @@ function positivity (phrase) {
hits += score;
words.push(t);
};
var multiply = function(t, score){
hits *= score;
adjectives.push(t);
};

var noPunctuation = phrase.replace(/[^a-zA-Z ]+/g, ' ').replace('/ {2,}/',' '),
tokens = noPunctuation.toLowerCase().split(" "),
hits = 0,
words = [],
adjectives = [];
words = [];

tokens.forEach(function(t) {
if (pos5.indexOf(t) > -1) {
Expand All @@ -99,21 +74,10 @@ function positivity (phrase) {
}
});

tokens.forEach(function(t) {
if (int3.indexOf(t) > -1) {
multiply(t, 4);
} else if (int2.indexOf(t) > -1) {
multiply(t, 3);
} else if (int1.indexOf(t) > -1) {
multiply(t, 2);
}
});

return {
score : hits,
comparative : hits / tokens.length,
words : words,
adjectives: adjectives
words : words
};
}

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "Sentimental",
"description": "Sentiment Analysis module",
"repository": "git://github.com/thinkroth/Sentimental",
"version": "0.0.3",
"version": "0.0.4",
"author": "Kevin M Roth",
"dependencies": {
},
Expand Down
120 changes: 0 additions & 120 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,66 +26,6 @@ describe('Negativity', function () {
negativity("anti").score.should.equal(1);
done();
});
it('level 5 word with level 1 intensifier should return 10 points', function (done) {
negativity("such bastard").score.should.equal(10);
done();
});
it('level 5 word with level 2 intensifier should return 15 points', function (done) {
negativity("complete bastard").score.should.equal(15);
done();
});
it('level 5 word with level 3 intensifier should return 20 points', function (done) {
negativity("extremely bastard").score.should.equal(20);
done();
});
it('level 4 word with level 1 intensifier should return 8 points', function (done) {
negativity("such scumbag").score.should.equal(8);
done();
});
it('level 4 word with level 2 intensifier should return 16 points', function (done) {
negativity("complete scumbag").score.should.equal(12);
done();
});
it('level 4 word with level 3 intensifier should return 24 points', function (done) {
negativity("extremely scumbag").score.should.equal(16);
done();
});
it('level 3 word with level 1 intensifier should return 6 points', function (done) {
negativity("such evil").score.should.equal(6);
done();
});
it('level 3 word with level 2 intensifier should return 9 points', function (done) {
negativity("complete evil").score.should.equal(9);
done();
});
it('level 3 word with level 3 intensifier should return 12 points', function (done) {
negativity("extremely evil").score.should.equal(12);
done();
});
it('level 2 word with level 1 intensifier should return 4 points', function (done) {
negativity("such ache").score.should.equal(4);
done();
});
it('level 2 word with level 2 intensifier should return 5 points', function (done) {
negativity("complete ache").score.should.equal(6);
done();
});
it('level 2 word with level 3 intensifier should return 24 points', function (done) {
negativity("extremely ache").score.should.equal(8);
done();
});
it('level 1 word with level 1 intensifier should return 2 points', function (done) {
negativity("such anti").score.should.equal(2);
done();
});
it('level 1 word with level 2 intensifier should return 3 points', function (done) {
negativity("complete anti").score.should.equal(3);
done();
});
it('level 1 word with level 3 intensifier should return 4 points', function (done) {
negativity("extremely anti").score.should.equal(4);
done();
});
});
describe('#negativeComparative', function () {
it('should return score divided by word length', function (done) {
Expand Down Expand Up @@ -130,66 +70,6 @@ describe('Positivity', function () {
positivity("cool").score.should.equal(1);
done();
});
it('level 5 word with level 1 intensifier should return 10 points', function (done) {
positivity("such breathtaking").score.should.equal(10);
done();
});
it('level 5 word with level 2 intensifier should return 15 points', function (done) {
positivity("complete breathtaking").score.should.equal(15);
done();
});
it('level 5 word with level 3 intensifier should return 20 points', function (done) {
positivity("extremely breathtaking").score.should.equal(20);
done();
});
it('level 4 word with level 1 intensifier should return 8 points', function (done) {
positivity("such fun").score.should.equal(8);
done();
});
it('level 4 word with level 2 intensifier should return 16 points', function (done) {
positivity("complete fun").score.should.equal(12);
done();
});
it('level 4 word with level 3 intensifier should return 24 points', function (done) {
positivity("extremely fun").score.should.equal(16);
done();
});
it('level 3 word with level 1 intensifier should return 6 points', function (done) {
positivity("such delight").score.should.equal(6);
done();
});
it('level 3 word with level 2 intensifier should return 9 points', function (done) {
positivity("complete delight").score.should.equal(9);
done();
});
it('level 3 word with level 3 intensifier should return 12 points', function (done) {
positivity("extremely delight").score.should.equal(12);
done();
});
it('level 2 word with level 1 intensifier should return 4 points', function (done) {
positivity("such eager").score.should.equal(4);
done();
});
it('level 2 word with level 2 intensifier should return 5 points', function (done) {
positivity("complete eager").score.should.equal(6);
done();
});
it('level 2 word with level 3 intensifier should return 24 points', function (done) {
positivity("extremely eager").score.should.equal(8);
done();
});
it('level 1 word with level 1 intensifier should return 2 points', function (done) {
positivity("such trust").score.should.equal(2);
done();
});
it('level 1 word with level 2 intensifier should return 3 points', function (done) {
positivity("complete trust").score.should.equal(3);
done();
});
it('level 1 word with level 3 intensifier should return 4 points', function (done) {
positivity("extremely trust").score.should.equal(4);
done();
});
});
describe('#positiveComparative', function () {
it('should return score divided by word length', function (done) {
Expand Down
20 changes: 0 additions & 20 deletions wordLists/intlist.js

This file was deleted.

0 comments on commit e6dc86f

Please sign in to comment.