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.
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.
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 (broken link)
- 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
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...
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
This paper from 2002 describes an algorithm for deriving such a dictionary from text samples automatically, using only two words as a seed set.
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!
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.
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}
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
© 2022 - 2024 — McMap. All rights reserved.