Sentiment Analysis Dictionaries
DictionaryNlpSentiment AnalysisDictionary Problem Overview
I was wondering if anybody knew where I could obtain dictionaries of positive and negative words. I'm looking into sentiment analysis and this is a crucial part of it.
Dictionary Solutions
Solution 1 - Dictionary
The Sentiment Lexicon, at the University of Pittsburgh might be what you are after. It's a lexicon of about 8,000 words with positive/neutral/negative sentiment. It's described in more detail in this paper and released under the GPL.
Solution 2 - Dictionary
Sentiment Analysis (Opinion Mining) lexicons
- MPQA Subjectivity Lexicon
- Bing Liu and Minqing Hu Sentiment Lexicon
- SentiWordNet (Included in NLTK)
- VADER Sentiment Lexicon
- SenticNet
- LIWC (not free)
- Harvard Inquirer
- ANEW
Sources:
- Keenformatics - Sentiment Analysis lexicons and datasets (my blog)
- Hutto, C. J., and Eric Gilbert. "Vader: A parsimonious rule-based model for sentiment analysis of social media text." Eighth International AAAI Conference on Weblogs and Social Media. 2014.
- Sentiment Symposium Tutorial by Christopher Potts
- Personal experience
Solution 3 - Dictionary
Arriving a bit late I'll just note that dictionaries have a limited contribution for sentiment analysis. Some sentiment bearing sentences do not contain any "sentiment" word - e.g. "read the book" which could be positive in a book review while negative in a movie review. Similarly, the sentiment word "unpredictable" could be positive in the context of a thriller but negative when describing the breaks system of the Toyota.
and there are many more...
Solution 4 - Dictionary
Professor Bing Liu provide an English Lexicon of about 6800 word, you can download form this link: Opinion Mining, Sentiment Analysis, and Opinion Spam Detection
Solution 5 - Dictionary
This paper from 2002 describes an algorithm for deriving such a dictionary from text samples automatically, using only two words as a seed set.
Solution 6 - Dictionary
AFINN you can find here and also create it dynamically. Like whenever unknown +ve word comes add it with +1. Like banana is new +ve word and appearing twice then it will become +2.
As much articles and data you craws your dictionary would become stronger!
Solution 7 - Dictionary
The Harvard-IV dictionary directory http://www.wjh.harvard.edu/~inquirer/homecat.htm has at least two sets of ready-to-use dictionaries for positive/negative orientation.
Solution 8 - Dictionary
You can use vader sentiment lexicon
from nltk.sentiment.vader import SentimentIntensityAnalyzer
sentence='APPle is good for health'
sid = SentimentIntensityAnalyzer()
ss = sid.polarity_scores(sentence)
print(ss)
it will give you the polarity of sentence.
output:
{'compound': 0.4404, 'neu': 0.58, 'pos': 0.42, 'neg': 0.0}
Solution 9 - Dictionary
Sentiwords gives 155,000 words (and their polarity, that is, a score between -1 and 1 for very negative through to very positive). The lexicon is discussed here