diff --git a/index.js b/index.js index 47dd1f1..4b7754b 100755 --- a/index.js +++ b/index.js @@ -6,4 +6,4 @@ module.exports = { analyze : analyze, negativity : negativity, positivity : positivity -}; \ No newline at end of file +}; diff --git a/lib/sentimental.js b/lib/sentimental.js index cdaa437..d8e3f40 100644 --- a/lib/sentimental.js +++ b/lib/sentimental.js @@ -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 @@ -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) { @@ -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 }; } @@ -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) { @@ -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 }; } diff --git a/package.json b/package.json index 1036ac6..d2ea633 100644 --- a/package.json +++ b/package.json @@ -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": { }, diff --git a/test/test.js b/test/test.js index b5165b8..553e831 100644 --- a/test/test.js +++ b/test/test.js @@ -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) { @@ -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) { diff --git a/wordLists/intlist.js b/wordLists/intlist.js deleted file mode 100644 index a70f828..0000000 --- a/wordLists/intlist.js +++ /dev/null @@ -1,20 +0,0 @@ -int1 = ["alot", "awesomely", "fairly", "far", "most", "much", -"really", "so", "such", "too", "truely", "very", "well"] - -int2 = ["absolute", "absolutely", "absolutely", "awefully", -"categorically", "certainly", "complete", "completely", "crystal", -"deadly", "deeply", "definitely", "downright", "dramatically", "effin", -"effing", "enthusiastically ", "entirely", "exceedingly", "freely", -"fully", "goddamned", "highly", "honestly ", "incredibly", -"marvelously", "mightily", "mighty", "particularily", "perfectly", "positively", -"precious", "preciously", "readily", "remarkably", "seriously", "sincerely", -"strongly", "super", "superbly", "superduper", "thoroughgoing", "toppingly", -"toppingly", "total", "totally", "utterly", "wonderfully", "wondrous", "wondrously"]; - -int3 = ["all-fired", "amazingly", "bloodyhell", "dangerously", "deucedly", "devilishly", -"drastically", "ecstatically", "extraordinarily", "extremely", "hellishly", "infernally", -"insanely ", "intense", "intensely", "sublimely", "terrifically"]; - -exports.int3 = int3; -exports.int2 = int2; -exports.int1 = int1;