/aspect-based-sentiment-analysis

Aspect Based Sentiment Analysis

Primary LanguageC++GNU General Public License v3.0GPL-3.0

SentimentAnalysis

Status

Aspect-Based Sentiment Analysis Using Bitmask Bidirectional Long Short Term Memory Networks

https://peace195.github.io/choose-distinct-units-in-lstm/

Descriptions

SemEval-2014 Task 4: Aspect Based Sentiment Analysis

SemEval-2015 Task 12: Aspect Based Sentiment Analysis

SemEval-2016 Task 5: Aspect Based Sentiment Analysis

I specialize in restaurants and laptops domain. You can see final results of these contests in [1][2]. The purposes of this project are:

  • Aspect based sentiment analysis.
  • A sample of bidirectional LSTM (tensorflow 1.2.0).
  • A sample of picking some special units of a recurrent network (not all units) to train and predict their labels.
  • Compare between struct programming and object-oriented programming in Deep Learning model.
  • Build stop words, incremental, decremental, positive & negative dictionary for sentiment problem.

Step by step:

  1. Used contest data and "addition restaurants review data" to learn word embedding by fastText.
  2. Used bidirectional LSTM in the model as above. The input of the model is the vector of word embedding that we trained before.

alt text

Results

BINGO!!

  • Outperforms state-of-the-art in semeval2014 dataset [3].

  • Achieved 81.2% accuracy. Better than 2.5% winner team in the semeval2015 competition [1].

  • Achieved 85.8% accuracy. rank 3/28 in the semeval2016 competition [2].

Getting Started

Data

Prerequisites

Installing

$ python sa_aspect_term_oop.py

Authors

Binh Do

References

[1] http://alt.qcri.org/semeval2015/cdrom/pdf/SemEval082.pdf

[2] http://alt.qcri.org/semeval2016/task5/index.php?id=data-and-tools

[3] http://alt.qcri.org/semeval2014/task4/index.php?id=data-and-tools

License

This project is licensed under the GNU License