Sentiment Analysis Dictionaries

DictionaryNlpSentiment Analysis

Dictionary 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

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser387049View Question on Stackoverflow
Solution 1 - DictionaryStompchickenView Answer on Stackoverflow
Solution 2 - DictionaryKurt BourbakiView Answer on Stackoverflow
Solution 3 - DictionaryScienceFrictionView Answer on Stackoverflow
Solution 4 - DictionaryrodobastiasView Answer on Stackoverflow
Solution 5 - DictionaryFred FooView Answer on Stackoverflow
Solution 6 - Dictionaryuser123View Answer on Stackoverflow
Solution 7 - DictionaryKiaraView Answer on Stackoverflow
Solution 8 - DictionaryTechgeeks1View Answer on Stackoverflow
Solution 9 - DictionarystevecView Answer on Stackoverflow