twiter Sentiment Analysis(TWS)

based on Python 2.7

On clicking on "Get Started" you will be redirected to our twitter-sentiment API to get tweets

Its recomended to go through the website before trying.

What is NLP?

Natural language processing (NLP) is an area of computer science and artificial intelligence concerned with the interactions between computers and human (natural) languages, in particular how to program computers to process and analyze large amounts of natural language data.

What are we processing?

Twitter (/ˈtwɪtər/) is an online news and social networking service on which users post and interact with messages known as "tweets".

tweets is our area of interest and also acts as our database

What is happening?

We are performing a sentiment analysis on the tweets to determine if a tweet is Positive, Negative or Neutral.

What do we do with the result?

We are loading these tweets on to our graph database. We are using Neo4j and this data can be accesed using Cypher queries from the browser or can export the database in other formats.

What is NLP (video)

What packages we use ?

Advantage of working with python and its community is that we get lot of support and help from the packages available online which are open source.

NLTK

NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength NLP libraries, and an active discussion forum.

Learn More

textblob

TextBlob is a Python (2 and 3) library for processing textual data. It provides a simple API for diving into common natural language processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more.

Learn More

Vadersentiment

VADER Sentiment Analysis. VADER (Valence Aware Dictionary and sEntiment Reasoner) is a lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media, and works well on texts from other domains.

Learn More

tweepy

An easy-to-use Python library for accessing the Twitter API. We use this package to access the tweets from twitter

Learn More

py2neo and Neo4j-driver

Py2neo is a client library and toolkit for working with Neo4j from within Python applications and from the command line.

Learn More

NLTK data

NLTK provides lot of examples and datasets in its data which can be downloaded and explored. We are using the data whiuch contains stopwords

Learn More

<

Stages

The project deals mainly with three stages.

user

Research

The Reasearch work can further be classified into searching for an ideal dataset and also learning the basics of Natural Language processing concepts and the functioning of the packages and API's. Also find the best and suitable package for our project and its requirements from the available options.

user

Development
Python 2.7 using Pycharm

The main and the most important stage when the requirements are met by cooking up a python recipie. The backend of our application which is responsible to accept the input from the usir from the UI and procure the tweets from twitter, process the tweets and finally create a Neo4j graph and return the results to the UI.

user

Deployment
AWS Elastic Beanstalk‎

The local machine Application is finally hosted on a web server for access from anywhere and to get rid of local processing and dependencies. We are using Amazon Ellastic Beanstacklk for this purpose which is really easy to setup and creates its own instance of EC2 for this purpose.

Frameworks Used

To make a local python program with command line interface to a full fledged web application on the web, we make use of some important frameworks which help us link the python program with the UI and server.

Flask

Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. It is the best available option compared to other options available in the market to deploy a simple web application using python.

Learn More

WSGI

The Web Server Gateway Interface (WSGI) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal

Learn More

AWSCLI

The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. We use Awsebcli to create and setup an Elastic Beanstalk instance.

Learn More

HTML (UI)

Hypertext Markup Language (HTML) is the standard markup language for creating web pages and web applications. With Cascading Style Sheets (CSS) and JavaScript, it forms a triad of cornerstone technologies for the World Wide Web. We use basic html to create an UI for the python application.

Github

GitHub Inc. is a web-based hosting service for version control using Git. It is mostly used for computer code. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features. We are using this to host the frontend of the project

Neo4j Sandbox

Neo4j sandbox is a very useful tool for exploring graphs and using them in small projects as demo. It is completely free and is created fro 3 days which can be further extended upto 7 days.

Video Tutorials

Before we start lets go through some of the basics.

Getting started with Neo4j

In this tutorial you'll learn how to build a web app with Python. We'll use a micro-framework called Flask.

Learn More...

Getting started with Flask

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

Learn More...

Getting started with Ellastic Beanstalk

AWS Elastic Beanstalk reduces management complexity without restricting choice or control. You simply upload your application, and Elastic Beanstalk automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring.

Learn More...