wink-sentiment
Accurate & fast sentiment scoring of phrases with #hashtags, emoticons:) & emojis🎉
Analyze sentiment of tweets, product reviews, social media content or any text using wink-sentiment
. It is based on AFINN and Emoji Sentiment Ranking; it's features include:
- Intelligent negation handling; for example, phrase "good product" will get a positive score whereas "not a good product" gets a negative score.
- Automatic detection and scoring of two-word phrases in a text; for example, "cool stuff", "well done", and "short sighted".
- Processes each emoji, emoticon and/or hashtag separately while scoring.
- Embeds a powerful tokenizer that returns the tokenized phrase.
- Returns the sentiment score and tokens. Each token contains a set of properties defining its sentiment, if any.
- Achieves accuracy of 77%, when validated using Amazon Product Review Sentiment Labelled Sentences Data Set at UCI Machine Learning Repository.
Installation
Use npm to install:
npm install wink-sentiment --save
Getting Started
// Load wink-sentiment package.var sentiment = ;// Just give any phrase and checkout the sentiment score. A positive score// means a positive sentiment, whereas a negative score indicates a negative// sentiment. Neutral sentiment is signalled by a near zero score. // Positive sentiment text.;// -> { score: 5,// normalizedScore: 2.5,// tokenizedPhrase: [// { value: 'Excited', tag: 'word', score: 3 },// { value: 'to', tag: 'word' },// { value: 'be', tag: 'word' },// { value: 'part', tag: 'word' },// { value: 'of', tag: 'word' },// { value: 'the', tag: 'word' },// { value: '@imascientist', tag: 'mention' },// { value: 'team', tag: 'word' },// { value: ':-)', tag: 'emoticon', score: 2 },// { value: '!', tag: 'punctuation' }// ]// } // Negative sentiment text.console;// -> { score: -5,// normalizedScore: -2.5,// tokenizedPhrase: [// { value: 'Not', tag: 'word' },// { value: 'a', tag: 'word', negation: true },// { value: 'good', tag: 'word', negation: true, score: -3 },// { value: 'product', tag: 'word' },// { value: ':(', tag: 'emoticon', score: -2 }// ]// } // Neutral sentiment text.console;// -> { score: 0,// normalizedScore: 0,// tokenizedPhrase: [// { value: 'I', tag: 'word' },// { value: 'will', tag: 'word' },// { value: 'meet', tag: 'word' },// { value: 'you', tag: 'word' },// { value: 'tomorrow', tag: 'word' },// { value: '.', tag: 'punctuation' }// ]// }
Try experimenting with this example and more on Runkit in the browser.
Documentation
Check out the wink sentiment API documentation to learn more.
Need Help?
If you spot a bug and the same has not yet been reported, raise a new issue or consider fixing it and sending a pull request.
About wink
Wink is a family of open source packages for Statistical Analysis, Natural Language Processing and Machine Learning in NodeJS. The code is thoroughly documented for easy human comprehension and has a test coverage of ~100% for reliability to build production grade solutions.
Copyright & License
wink-sentiment is copyright 2017-18 GRAYPE Systems Private Limited.
It is licensed under the terms of the MIT License.