Giter VIP home page Giter VIP logo

xiamx / awesome-sentiment-analysis Goto Github PK

View Code? Open in Web Editor NEW
909.0 60.0 164.0 39 KB

πŸ˜€πŸ˜„πŸ˜‚πŸ˜­ A curated list of Sentiment Analysis methods, implementations and misc. πŸ˜₯😟😱😀

License: Creative Commons Attribution Share Alike 4.0 International

sentiment-analysis awesome-list machine-learning deep-learning supervised-machine-learning python nlp linguistics

awesome-sentiment-analysis's Introduction

πŸ˜€πŸ˜„πŸ˜‚πŸ˜­ Awesome Sentiment Analysis πŸ˜₯😟😱😀 Awesome

Curated list of Sentiment Analysis methods, implementations and misc.

Sentiment Analysis is the field of study that analyzes people's opinions, sentiments, evaluations, attitudes, and emotions from written languages. (Liu 2012)

Contents

Objective

The goal of this repository is to provide adequate links for scholars who want to research in this domain; and at the same time, be sufficiently accessible for developers who want to integrate sentiment analysis into their applications.

Introduction

Sentiment Analysis happens at various levels:

  • Document-level Sentiment Analysis evaluate sentiment of a single entity (i.e. a product) from a review document.
  • Sentence-level Sentiment Analysis evaluate sentiment from a single sentence.
  • Aspect-level Sentiment Analysis performs finer-grain analysis. For example, the sentence β€œthe iPhone’s call quality is good, but its battery life is short.” evaluates two aspects: call quality and battery life, of iPhone (entity). The sentiment on iPhone’s call quality is positive, but the sentiment on its battery life is negative. (Liu 2012)

Most recent research focuses on the aspect-based approaches. But not all opensource implementations are caught up yet.

There are many different approaches to solve the problem. Lexical methods, for example, look at the frequency of words expressing positive and negative sentiment (from i.e. SentiWordNet) occurring in the given sentence. Supervised Machine Learning, such as Naive Bayes and Support Vector Machine (SVM), can be used with training data. Since training examples are difficult to obtain, Unsupervised Machine Learning, such as Latent Dirichlet Allocation (LDA) and word embeddings (Word2Vec) are also used on large unlabeled datasets. Recent works also apply Deep Learning methods such as Convolutional Neural Network (CNN) and Long Short-term Memory (LSTM), as well as their attention-based variants. You will find more details in the survey papers.

Survey Papers

Liu, Bing. "Sentiment analysis and opinion mining." Synthesis lectures on human language technologies 5.1 (2012): 1-167. [pdf]

Vinodhini, G., and R. M. Chandrasekaran. "Sentiment analysis and opinion mining: a survey." International Journal 2.6 (2012): 282-292. [pdf]

Medhat, Walaa, Ahmed Hassan, and Hoda Korashy. "Sentiment analysis algorithms and applications: A survey." Ain Shams Engineering Journal 5.4 (2014): 1093-1113. [pdf]

Baseline Systems

Wang, Sida, and Christopher D. Manning. "Baselines and bigrams: Simple, good sentiment and topic classification." Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Short Papers-Volume 2. Association for Computational Linguistics, 2012. [pdf]

Cambria, Erik, Daniel Olsher, and Dheeraj Rajagopal. "SenticNet 3: a common and common-sense knowledge base for cognition-driven sentiment analysis." Proceedings of the twenty-eighth AAAI conference on artificial intelligence. AAAI Press, 2014. [pdf]

Resources and Corpora

AFINN: List of English words rated for valence [web]

SentiWordNet: Lexical resource devised for supporting sentiment analysis. [web] [paper]

GloVe: Algorithm for obtaining word vectors. Pretrained word vectors available for download [web] [paper]

SemEval14-Task4: Annotated aspects and sentiments of laptops and restaurants reviews. [web] [paper]

Stanford Sentiment Treebank: Sentiment dataset with fine-grained sentiment annotations [web] [paper]

Multidimensional Lexicon for Interpersonal Stancetaking [web] [paper]

Open Source Implementations

The characteristics of each implementation are described.

Caveats: A key problem in sentiment analysis is its sensitivity to the domain from which either training data is sourced, or on which a sentiment lexicon is built. [β™ ] Be careful assuming off-the-shelf implementations will work for your problem, make sure to look at the model assumptions and validate whether they’re accurate on your own domain [♦].

NodeJS

thisandagain/sentiment: Lexical, Dictionary-based, AFINN-based.

thinkroth/Sentimental Lexical, Dictionary-based, AFINN-based.

Java

LingPipe: Lexical, Corpus-based, Supervised Machine Learning

CoreNLP: Supervised Machine Learning, Deep Learning

ASUM: Unsupervised Machine Learning, Latent Dirichlet Allocation. [paper]

Python

nltk: VADER sentiment analysis tool, Lexical, Dictionary-based, Rule-based. [paper]

vivekn/sentiment: Supervised Machine Learning, Naive Bayes Classifier. [paper]

xiaohan2012/twitter-sent-dnn: Supervised Machine Learning, Deep Learning, Convolutional Neural Network. [paper]

abdulfatir/twitter-sentiment-analysis: Sentiment analysis on tweets using Naive Bayes, SVM, CNN, LSTM, etc.

kevincobain2000/sentiment_classifier: Supervised Machine Learning, Naive Bayes Classifier, Max Entropy Classifier, SentiWordNet.

pedrobalage/SemevalAspectBasedSentimentAnalysis: Aspect-Based, Supervised Machine Learning, Conditional Random Field.

ganeshjawahar/mem_absa: Aspect-Based, Supervised Machine Learning, Deep Learning, Attention-based, External Memory. [paper]

openai/generating-reviews-discovering-sentiment: Deep Learning, byte mLSTM [paper]

yiyang-gt/social-attention: Deep Learning, Attention-based. Uses authors' position in the social network to aide sentiment analysis. [paper].

thunlp/NSC: Deep Learning, Attention-based. Uses user and production information.[paper].

R

timjurka/sentiment: Supervised Machine Learning, Naive Bayes Classifier.

Golang

cdipaolo/sentiment: Supervised Machine Learning, Naive Bayes Classifier. Based on cdipaolo/goml.

Ruby

malavbhavsar/sentimentalizer: Lexical, Dictionary-based.

7compass/sentimental: Lexical, Dictionary-based.

CSharp

amrish7/Dragon: Supervised Machine Learning, Naive Bayes Classifier.

SaaS APIs

  • Google Cloud Natural Language API [web]
  • IBM Watson Alchemy Language [web]
  • Microsoft Cognitive Service [web]
  • Aylien [web]
  • Indico [web]
  • Rosette API [web]

Web Apps

Contributing

πŸ‘πŸŽ‰ First off, thanks for taking the time to contribute! πŸŽ‰πŸ‘

Steps to contribute:

  • Make your awesome changes
  • Submit pull request; if you add a new entry, please give a very brief explanation why you think it should be added.

awesome-sentiment-analysis's People

Contributors

androm3da avatar dparlevliet avatar hannahm-m avatar jeffreyflynt avatar ryanguest avatar xiamx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.