A sentiment analysis engine, written in Python.
Given a review, the system classifies it into positive, negative or neutral.
It is possible to crawl reviews of a certain restaurant and get an analysis of the reviews for that restaurant. However, it is for educational purposes only, as Yelp TOC may not allow usage of their content by other parties.
The other possibility is to crawl movie reviews from IMDB (to be implemented). The algorithm has been optimised for movie reviews, using an algorithm called impact training. The results of impact training were fascinating, as the accuracy rose from 57.15% to 91.75% of the sample movie reviews dataset.
The in-depth analysis of each review includes:
- Adjectives highlighting, thus clearly indicating where the review focuses on
- Scoring of each review to indicate how strongly the opinion has been presented
- Summary of overall scores of the restaurant
To run, please start "SentimentBlade.py". Edit the URL there to crawl. To see the performance, run "PerformanceTest.py". You can change the dataset to be used.
Have a look at the <a href=https://docs.google.com/file/d/0B4fGOv7vgnt9S3pJTFNENzJ3djQ/edit?usp=sharing> preliminary design and the <a href=https://drive.google.com/file/d/0B4fGOv7vgnt9djJ6aVZTa0E1WTA/edit?usp=sharing> final report.
Preview of how each review is analysed and broken down: