SlideShare a Scribd company logo
Sentiment Analysis of
Twitter Data
Hello!
We are Team 10
Member 1:
Name: Nurendra Choudhary
Roll Number: 201325186
Member 2:
Name: P Yaswanth Satya Vital Varma
Roll Number: 201301064
Introduction:
Twitter is a popular microblogging service where users
create status messages (called "tweets").
These tweets sometimes express opinions about different
topics.
Generally, this type of sentiment analysis is useful for
consumers who are trying to research a product or
service, or marketers researching public opinion of their
company.
AIM OF THE PROJECT
The purpose of this project is to build
an algorithm that can accurately
classify Twitter messages as positive
or negative, with respect to a query
term.
Our hypothesis is that we can obtain
high accuracy on classifying
sentiment in Twitter messages using
machine learning techniques.
The details of the dataset used for
training the Classifier.
1.
Dataset
1600000 sentences annotated as positive, negative.
http://help.sentiment140.com/for-students/
Sentiment140 Dataset
Pre-Processing the raw data to
increase ease for the classifier.
2.
Pre-Processing
➜ Case Folding of the Data (Turning everything
to lowercase)
➜ Punctuation Removal from the data
➜ Common Abbreviations and Acronyms
expanded.
➜ HashTag removal.
Steps in Preprocessing:
Includes Language Models
(Unigram,Bigram),
Lexical Scoring, Machine Learning
Scores, Emoticon Scores.
2.
The Main System
2.1 Training Distributed Semantic Representation
(Word2Vec Model)
➜ We use a Python Module called gensim.
models.word2vec for this.
➜ We train a model using only the sentences
(after preprocessing) from the corpus.
➜ This generates vectors for all the words in the
corpus.
➜ This model can now be used to get vectors for
the words.
➜ For unknown words, we use the vectors of
words with frequency one.
2.2 Language Model
Unigram
The word vectors
are taken
individually to train.
E.g: I am not dexter.
Is taken as:
[I, am, not, dexter]
Bigram
The word vectors
are taken two at a
time to train.
E.g: I am not dexter.
Is taken as:
[(I,am), (am,not),
(not,dexter)]
Unigram + Bigram
Use unigram
normally but bigram
when words
reversing sentiments
like not,no,etc are
present.
E.g: I am not dexter.
Is taken as:
[I,am,(not,dexter)]
2.3 Training For Machine Learning Scores
1. Use the various language models and train various
two-class classifiers for results.
2. The classifiers we used are:
a. Support Vector Machines - Scikit Learn Python
b. Multi Layer Perceptron Neural Network - Scikit
Learn Python
c. Naive Bayes Classifier - Scikit Learn Python
d. Decision Tree Classifier - Scikit Learn Python
e. Random Forest Classifier - Scikit Learn Python
f. Logistic Regression Classifier - Scikit Learn
Python
g. Recurrent Neural Networks - PyBrain module
Python
Logistic Regression:
Logistic regression is a powerful statistical way of modeling a
binomial outcome (takes the value 0 or 1 like having or not having
a disease) with one or more explanatory variables.
Naive Bayes Classifier:
Try solving the problem with a simple classifier.
Multi-Layer Perceptron Neural Network Classifier:
The method has significantly increased results in binary
classification compared to classical classifiers.
Recurrent Neural Networks:
This class of neural networks have significantly improved results
for various Natural Language Processing Problems. Hence, this
was tried too.
2.3.1 Reasons for using the Classifiers
Decision Trees:
Decision trees are very intuitive and easy to explain. Decision
trees do not require any assumptions of linearity in the data.
Random Forest:
Decision Trees tend to overfit. Hence an ensemble of them gives a
much better output for unseen data.
Support Vector Machines:
This classifier has been proven by a lot of research papers to give
the best result among the classical classifiers.
2.3.1 Reasons for using the Classifiers
2.3.2 Accuracies of Various Approaches
(Accuracies are calculated using 5-fold cross-validation)
Unigram Bigram Unigram + Bigram
Support Vector
Machines 71.1%
-NA-
(Takes too much
time to train,
stopped after 28
hours)
74.3%
Naive Bayes
Classifier 64.2% 62.8% 65.0%
Logistic Regression 67.4% 72.1% 71.6%
2.3.2 Accuracies of Various Approaches
(Accuracies are calculated using 5-fold cross-validation)
Unigram Bigram Unigram + Bigram
Decision Trees 60.4% 60.0% 61.5%
Random Forest
Classifier 67.1% 70.8% 71.3%
Multi-Perceptron
Neural Network
Classifier
68.6% 72.7% 74%
2.3.2 Accuracies of Various Approaches
(Accuracies are calculated using 5-fold cross-validation)
Unigram Bigram Unigram + Bigram
Recurrent Neural
Networks 69.1% 70.4% 71.5%
2.3.4 Based on the Above
Results:
We chose
Unigram+Bigram with
Random Forest Classifier to
be the part of our system
as they gave the best
results.
Emoticons play a major role in deciding
the sentiment of a sentence, hence
Emoticon Scoring
Emoticon Scoring
Use a
dictionary to
score the
emoticons.
Use this
emoticon score
in the model.
Search for
Emoticons in
the given text
using RegEx or
find.
Get the text
Lexical Scoring
(Scoring based on words of the text)
Lemmatize the
text
The Score will be
used in the final
system.
This will be given
more weightage as
this is more definite
Score the
Lemmatized text
using dictionaries
Training Classifier and Word2Vec Model
Preprocessing
Train Word2Vec
Model
Annotated
Training Data
Sentence VectorSentences Classifier ModelTrain using various
classifier algorithms
The Overall Scoring Process Goes Like This
Lexical Scores
Classifier Scores
Emoticon Scores
Unigram
Bigram
Sentences Overall Scores
Weight of Lexical
Scores
Weight of
Emoticons
Challenges in the Approach
Randomness in
Data
Twitter is written by
Users, hence it is not
very formal.
Emoticons
Lots of types of
emoticons with new
ones coming very
frequently.
Abbreviations
Users use a lot of
abbreviation slangs like
AFAIK, GN, etc.
Capturing all of them is
difficult.
Grapheme
Stretching
Emotions expressed
through stretching of
normal words.
Like, Please ->
Pleaaaaaseeeeee
Reversing Words
Some words completely
reverse sentiment of
another word.
E.g: not good ==
opposite(good)
Technical
Challenges
Classifiers take a lot of
time to train, hence silly
mistakes cost a lot of
time.
Future Improvements
➜ Handle Grapheme Stretching
➜ Handle authenticity of Data and Users
➜ Handle Sarcasm and Humor
Thanks!
Github Link to the Project:
https://github.com/Akirato/Twitter-Sentiment-Analysis-Tool
Any questions?
You can mail us at:
nurendra.choudhary@research.iiit.ac.in
Or
satyavital.varma@students.iiit.ac.in

More Related Content

PPTX
Presentation on Sentiment Analysis
PPTX
Sentiment Analaysis on Twitter
PPTX
Sentiment analysis
PPTX
Sentiment analysis using naive bayes classifier
PPTX
Sentiment Analysis Using Machine Learning
PPTX
Social media mining PPT
PPT
Twitter sentiment-analysis Jiit2013-14
PPTX
Sentiment Analysis using Twitter Data
Presentation on Sentiment Analysis
Sentiment Analaysis on Twitter
Sentiment analysis
Sentiment analysis using naive bayes classifier
Sentiment Analysis Using Machine Learning
Social media mining PPT
Twitter sentiment-analysis Jiit2013-14
Sentiment Analysis using Twitter Data

What's hot (20)

PPTX
Twitter sentiment analysis
PDF
Sentiment Analysis of Twitter Data
PPTX
Twitter sentiment analysis
PPTX
New sentiment analysis of tweets using python by Ravi kumar
PPTX
Sentiment analysis of twitter data
PPTX
Twitter sentiment analysis ppt
PPTX
Sentiment Analysis Using Twitter
PPTX
Sentiment analysis
PPTX
Sentiment Analysis in Twitter
PPTX
Sentiment analysis of Twitter data using python
DOCX
Twitter sentiment analysis project report
PPTX
Sentiment Analysis
PDF
Sentiment analysis - Our approach and use cases
PPTX
Approaches to Sentiment Analysis
PPTX
Twitter sentiment analysis ppt
PPTX
Sentiment Analysis on Twitter
PDF
IRE2014-Sentiment Analysis
PPTX
social network analysis project twitter sentimental analysis
PPTX
Sentimental analysis
PPTX
Sentiment analysis using ml
Twitter sentiment analysis
Sentiment Analysis of Twitter Data
Twitter sentiment analysis
New sentiment analysis of tweets using python by Ravi kumar
Sentiment analysis of twitter data
Twitter sentiment analysis ppt
Sentiment Analysis Using Twitter
Sentiment analysis
Sentiment Analysis in Twitter
Sentiment analysis of Twitter data using python
Twitter sentiment analysis project report
Sentiment Analysis
Sentiment analysis - Our approach and use cases
Approaches to Sentiment Analysis
Twitter sentiment analysis ppt
Sentiment Analysis on Twitter
IRE2014-Sentiment Analysis
social network analysis project twitter sentimental analysis
Sentimental analysis
Sentiment analysis using ml
Ad

Viewers also liked (19)

PDF
Introduction to Sentiment Analysis
PDF
Twitter sentiment analysis
PPTX
Sentiment analysis of tweets
PPT
How Sentiment Analysis works
PPTX
Tutorial of Sentiment Analysis
PPTX
Ads team12 final_project_presentation
PPTX
Sentiment Analysis in Twitter with Lightweight Discourse Analysis
PDF
Project report
PPTX
Sentiment Analysis Symposium 2015: Syntax
PPT
Classifying Twitter Content
PDF
Sentiment of Sentence in Tweets: A Review
PPTX
Intrusion Detection with Neural Networks
PDF
Project sentiment analysis
PDF
Sentiment Analysis
PPTX
Sentiment Analysis
PPT
Sentiment Analysis in Twitter
PDF
Sentence level sentiment analysis
PPTX
Twitter Sentiment Analysis
PPTX
On Stopwords, Filtering and Data Sparsity for Sentiment Analysis of Twitter
Introduction to Sentiment Analysis
Twitter sentiment analysis
Sentiment analysis of tweets
How Sentiment Analysis works
Tutorial of Sentiment Analysis
Ads team12 final_project_presentation
Sentiment Analysis in Twitter with Lightweight Discourse Analysis
Project report
Sentiment Analysis Symposium 2015: Syntax
Classifying Twitter Content
Sentiment of Sentence in Tweets: A Review
Intrusion Detection with Neural Networks
Project sentiment analysis
Sentiment Analysis
Sentiment Analysis
Sentiment Analysis in Twitter
Sentence level sentiment analysis
Twitter Sentiment Analysis
On Stopwords, Filtering and Data Sparsity for Sentiment Analysis of Twitter
Ad

Similar to Sentiment analysis of Twitter Data (20)

PDF
IRJET- Classification of Food Recipe Comments using Naive Bayes
PDF
Internship project report,Predictive Modelling
PPTX
Trending Topics in Machine Learning
PDF
Image analysis using python
PPT
Machine Learning BASICS AND ITS TYPES and its difference
PDF
Sentiment Analysis on Twitter Data
PDF
Disease Prediction Using Machine Learning
PDF
IRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
PDF
Empowering First Responders through Automated Multimodal Content Moderation
PPTX
Svm and maximum entropy model for sentiment analysis of tweets
PDF
Identifying and classifying unknown Network Disruption
PDF
IRJET- Prediction of Crime Rate Analysis using Supervised Classification Mach...
PPTX
Machine learning_ Replicating Human Brain
PDF
A Survey on Machine Learning Algorithms
PPTX
5. Machine Learning.pptx
PDF
IRJET- Machine Learning: Survey, Types and Challenges
DOCX
Data Analytics Using R - Report
PPTX
Unit 2-ML.pptx
PPTX
Internshipppt.pptx
IRJET- Classification of Food Recipe Comments using Naive Bayes
Internship project report,Predictive Modelling
Trending Topics in Machine Learning
Image analysis using python
Machine Learning BASICS AND ITS TYPES and its difference
Sentiment Analysis on Twitter Data
Disease Prediction Using Machine Learning
IRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
Empowering First Responders through Automated Multimodal Content Moderation
Svm and maximum entropy model for sentiment analysis of tweets
Identifying and classifying unknown Network Disruption
IRJET- Prediction of Crime Rate Analysis using Supervised Classification Mach...
Machine learning_ Replicating Human Brain
A Survey on Machine Learning Algorithms
5. Machine Learning.pptx
IRJET- Machine Learning: Survey, Types and Challenges
Data Analytics Using R - Report
Unit 2-ML.pptx
Internshipppt.pptx

Recently uploaded (20)

PDF
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
PPTX
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PPTX
Major-Components-ofNKJNNKNKNKNKronment.pptx
PPT
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
climate analysis of Dhaka ,Banglades.pptx
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PPTX
Global journeys: estimating international migration
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PPTX
Business Acumen Training GuidePresentation.pptx
PDF
Clinical guidelines as a resource for EBP(1).pdf
PPT
Reliability_Chapter_ presentation 1221.5784
PPT
Quality review (1)_presentation of this 21
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PDF
.pdf is not working space design for the following data for the following dat...
PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
Supervised vs unsupervised machine learning algorithms
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
Major-Components-ofNKJNNKNKNKNKronment.pptx
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
oil_refinery_comprehensive_20250804084928 (1).pptx
climate analysis of Dhaka ,Banglades.pptx
Introduction-to-Cloud-ComputingFinal.pptx
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
Global journeys: estimating international migration
Data_Analytics_and_PowerBI_Presentation.pptx
Business Acumen Training GuidePresentation.pptx
Clinical guidelines as a resource for EBP(1).pdf
Reliability_Chapter_ presentation 1221.5784
Quality review (1)_presentation of this 21
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
.pdf is not working space design for the following data for the following dat...
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
Supervised vs unsupervised machine learning algorithms

Sentiment analysis of Twitter Data

  • 2. Hello! We are Team 10 Member 1: Name: Nurendra Choudhary Roll Number: 201325186 Member 2: Name: P Yaswanth Satya Vital Varma Roll Number: 201301064
  • 3. Introduction: Twitter is a popular microblogging service where users create status messages (called "tweets"). These tweets sometimes express opinions about different topics. Generally, this type of sentiment analysis is useful for consumers who are trying to research a product or service, or marketers researching public opinion of their company.
  • 4. AIM OF THE PROJECT The purpose of this project is to build an algorithm that can accurately classify Twitter messages as positive or negative, with respect to a query term. Our hypothesis is that we can obtain high accuracy on classifying sentiment in Twitter messages using machine learning techniques.
  • 5. The details of the dataset used for training the Classifier. 1. Dataset
  • 6. 1600000 sentences annotated as positive, negative. http://help.sentiment140.com/for-students/ Sentiment140 Dataset
  • 7. Pre-Processing the raw data to increase ease for the classifier. 2. Pre-Processing
  • 8. ➜ Case Folding of the Data (Turning everything to lowercase) ➜ Punctuation Removal from the data ➜ Common Abbreviations and Acronyms expanded. ➜ HashTag removal. Steps in Preprocessing:
  • 9. Includes Language Models (Unigram,Bigram), Lexical Scoring, Machine Learning Scores, Emoticon Scores. 2. The Main System
  • 10. 2.1 Training Distributed Semantic Representation (Word2Vec Model) ➜ We use a Python Module called gensim. models.word2vec for this. ➜ We train a model using only the sentences (after preprocessing) from the corpus. ➜ This generates vectors for all the words in the corpus. ➜ This model can now be used to get vectors for the words. ➜ For unknown words, we use the vectors of words with frequency one.
  • 11. 2.2 Language Model Unigram The word vectors are taken individually to train. E.g: I am not dexter. Is taken as: [I, am, not, dexter] Bigram The word vectors are taken two at a time to train. E.g: I am not dexter. Is taken as: [(I,am), (am,not), (not,dexter)] Unigram + Bigram Use unigram normally but bigram when words reversing sentiments like not,no,etc are present. E.g: I am not dexter. Is taken as: [I,am,(not,dexter)]
  • 12. 2.3 Training For Machine Learning Scores 1. Use the various language models and train various two-class classifiers for results. 2. The classifiers we used are: a. Support Vector Machines - Scikit Learn Python b. Multi Layer Perceptron Neural Network - Scikit Learn Python c. Naive Bayes Classifier - Scikit Learn Python d. Decision Tree Classifier - Scikit Learn Python e. Random Forest Classifier - Scikit Learn Python f. Logistic Regression Classifier - Scikit Learn Python g. Recurrent Neural Networks - PyBrain module Python
  • 13. Logistic Regression: Logistic regression is a powerful statistical way of modeling a binomial outcome (takes the value 0 or 1 like having or not having a disease) with one or more explanatory variables. Naive Bayes Classifier: Try solving the problem with a simple classifier. Multi-Layer Perceptron Neural Network Classifier: The method has significantly increased results in binary classification compared to classical classifiers. Recurrent Neural Networks: This class of neural networks have significantly improved results for various Natural Language Processing Problems. Hence, this was tried too. 2.3.1 Reasons for using the Classifiers
  • 14. Decision Trees: Decision trees are very intuitive and easy to explain. Decision trees do not require any assumptions of linearity in the data. Random Forest: Decision Trees tend to overfit. Hence an ensemble of them gives a much better output for unseen data. Support Vector Machines: This classifier has been proven by a lot of research papers to give the best result among the classical classifiers. 2.3.1 Reasons for using the Classifiers
  • 15. 2.3.2 Accuracies of Various Approaches (Accuracies are calculated using 5-fold cross-validation) Unigram Bigram Unigram + Bigram Support Vector Machines 71.1% -NA- (Takes too much time to train, stopped after 28 hours) 74.3% Naive Bayes Classifier 64.2% 62.8% 65.0% Logistic Regression 67.4% 72.1% 71.6%
  • 16. 2.3.2 Accuracies of Various Approaches (Accuracies are calculated using 5-fold cross-validation) Unigram Bigram Unigram + Bigram Decision Trees 60.4% 60.0% 61.5% Random Forest Classifier 67.1% 70.8% 71.3% Multi-Perceptron Neural Network Classifier 68.6% 72.7% 74%
  • 17. 2.3.2 Accuracies of Various Approaches (Accuracies are calculated using 5-fold cross-validation) Unigram Bigram Unigram + Bigram Recurrent Neural Networks 69.1% 70.4% 71.5%
  • 18. 2.3.4 Based on the Above Results: We chose Unigram+Bigram with Random Forest Classifier to be the part of our system as they gave the best results.
  • 19. Emoticons play a major role in deciding the sentiment of a sentence, hence Emoticon Scoring
  • 20. Emoticon Scoring Use a dictionary to score the emoticons. Use this emoticon score in the model. Search for Emoticons in the given text using RegEx or find.
  • 21. Get the text Lexical Scoring (Scoring based on words of the text) Lemmatize the text The Score will be used in the final system. This will be given more weightage as this is more definite Score the Lemmatized text using dictionaries
  • 22. Training Classifier and Word2Vec Model Preprocessing Train Word2Vec Model Annotated Training Data Sentence VectorSentences Classifier ModelTrain using various classifier algorithms
  • 23. The Overall Scoring Process Goes Like This Lexical Scores Classifier Scores Emoticon Scores Unigram Bigram Sentences Overall Scores Weight of Lexical Scores Weight of Emoticons
  • 24. Challenges in the Approach Randomness in Data Twitter is written by Users, hence it is not very formal. Emoticons Lots of types of emoticons with new ones coming very frequently. Abbreviations Users use a lot of abbreviation slangs like AFAIK, GN, etc. Capturing all of them is difficult. Grapheme Stretching Emotions expressed through stretching of normal words. Like, Please -> Pleaaaaaseeeeee Reversing Words Some words completely reverse sentiment of another word. E.g: not good == opposite(good) Technical Challenges Classifiers take a lot of time to train, hence silly mistakes cost a lot of time.
  • 25. Future Improvements ➜ Handle Grapheme Stretching ➜ Handle authenticity of Data and Users ➜ Handle Sarcasm and Humor
  • 26. Thanks! Github Link to the Project: https://github.com/Akirato/Twitter-Sentiment-Analysis-Tool Any questions? You can mail us at: nurendra.choudhary@research.iiit.ac.in Or satyavital.varma@students.iiit.ac.in