forked from victorneo/Twitter-Sentimental-Analysis
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 9dda59d
Showing
7 changed files
with
334 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Copyright (c) 2012 Victor Neo | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
this software and associated documentation files (the "Software"), to deal in | ||
the Software without restriction, including without limitation the rights to | ||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies | ||
of the Software, and to permit persons to whom the Software is furnished to do | ||
so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
Twitter Sentimental Analysis | ||
========= | ||
|
||
This tool is an implementation of the [Twitter Sentiment analysis tool][1] | ||
described on [Laurent Luce's blog][2]. | ||
|
||
Requirements | ||
------------ | ||
* [NLTK][3] and its dependencies | ||
|
||
You may install NLTK by using pip: | ||
|
||
pip install nltk | ||
|
||
|
||
How to use | ||
---------- | ||
|
||
1. Clone this project | ||
2. Install NLTK (if it is not installed) | ||
3. Run the classifier | ||
|
||
git clone git://github.com/victorneo/Twitter-Sentimental-Analysis.git | ||
pip install nltk | ||
python classification.py | ||
|
||
|
||
Training data | ||
------------- | ||
|
||
The training data is obtained from the Twitter Search API with the keywords | ||
`I am happy` and `I am sad` for happy (positive) and sad (negative) tweets. | ||
There is a total of 160 tweets used for training (80 / 80 distribution). | ||
|
||
To add more training data, add in new _happy_ tweets to `happy.txt` and _sad_ tweets | ||
to `sad.txt` using one line for each new tweet. | ||
|
||
|
||
Test data | ||
--------- | ||
|
||
Test data are separated into `happy_test.txt` and `sad_test.txt`. A total of | ||
20 tweets are used for test (10 / 10 distribution). | ||
|
||
To add more test data, add in new _happy_ tweets to `happy_test.txt` and _sad_ | ||
tweets to `sad_test.txt` using one line for each new tweet. | ||
|
||
|
||
[1]: http://www.laurentluce.com/posts/twitter-sentiment-analysis-using-python-and-nltk/ | ||
[2]: http://www.laurentluce.com/ | ||
[3]: http://www.nltk.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
''' | ||
An implementation of the Twitter analysis tool mentioned on | ||
http://www.laurentluce.com/posts/twitter-sentiment-analysis-using-python-and-nltk/ | ||
happy.txt contains 80 tweets that are happy (positive), | ||
sad.txt contains 80 tweets that are sad (negative). | ||
happy_test.txt and sad_test.txt contains 10 positive | ||
and 10 negative tweets respectively to test the | ||
classifier. | ||
''' | ||
import nltk | ||
from nltk.classify.naivebayes import NaiveBayesClassifier | ||
|
||
|
||
def get_words_in_tweets(tweets): | ||
all_words = [] | ||
for (words, sentiment) in tweets: | ||
all_words.extend(words) | ||
return all_words | ||
|
||
|
||
def get_word_features(wordlist): | ||
wordlist = nltk.FreqDist(wordlist) | ||
word_features = wordlist.keys() | ||
return word_features | ||
|
||
|
||
def read_tweets(fname, t_type): | ||
tweets = [] | ||
f = open(fname, 'r') | ||
line = f.readline() | ||
while line != '': | ||
tweets.append([line, t_type]) | ||
line = f.readline() | ||
f.close() | ||
return tweets | ||
|
||
|
||
def extract_features(document): | ||
document_words = set(document) | ||
features = {} | ||
for word in word_features: | ||
features['contains(%s)' % word] = (word in document_words) | ||
return features | ||
|
||
|
||
def classify_tweet(tweet): | ||
return \ | ||
classifier.classify(extract_features(nltk.word_tokenize(tweet))) | ||
|
||
|
||
# read in postive and negative training tweets | ||
pos_tweets = read_tweets('happy.txt', 'positive') | ||
neg_tweets = read_tweets('sad.txt', 'negative') | ||
|
||
# filter away words that are less than 3 letters to form the training data | ||
tweets = [] | ||
for (words, sentiment) in pos_tweets + neg_tweets: | ||
words_filtered = [e.lower() for e in words.split() if len(e) >= 3] | ||
tweets.append((words_filtered, sentiment)) | ||
|
||
|
||
# extract the word features out from the training data | ||
word_features = get_word_features(\ | ||
get_words_in_tweets(tweets)) | ||
|
||
|
||
# get the training set and train the Naive Bayes Classifier | ||
training_set = nltk.classify.util.apply_features(extract_features, tweets) | ||
classifier = NaiveBayesClassifier.train(training_set) | ||
|
||
|
||
# read in the test tweets and check accuracy | ||
# to add your own test tweets, add them in the respective files | ||
test_tweets = read_tweets('happy_test.txt', 'positive') | ||
test_tweets.extend(read_tweets('sad_test.txt', 'negative')) | ||
total = accuracy = float(len(test_tweets)) | ||
|
||
for tweet in test_tweets: | ||
if classify_tweet(tweet[0]) != tweet[1]: | ||
accuracy -= 1 | ||
|
||
print('Total accuracy: %f%% (%d/20).' % (accuracy / total * 100, accuracy)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
I am LOVIN my Life right about now! I'm loving the people God is placing in my life. #Happy&Focused! Striving to be the BEST WOMAN I can be! | ||
Happy St.Patrick's Day! Wasn't always easy to celebrate it | ||
no one understands how happy i am right now. (': | ||
AGH. DELETE DELETE DELETE. I JUST MEANT HAPPY. I AM NOT A STRIPPER. OH, GAWD. | ||
she feels as happy as i am. and i am happy to say that we r both blessed. been the best spring break ever, | ||
I am so happy, it's kind of unbelievable. | ||
Ignorance is bliss and i need that shyt...I am happy. Thats just the saddest lie. #Cudi | ||
WMYB on the radio and i am one happy person(: #thinkingpositive | ||
realize you fucking twat. I'm not dragging in a sad way. I am actually quite happy! And I wouldn't say I don't care for you. | ||
because of you i am happy | ||
i am very happy today ........yuhuuuuuuuiiiiiiii | ||
I am soooo happy I got a chance to hang my boo @BlaqBetty2 last night!!! Its been way too long!!! Muah! | ||
I am so happy for you and your drivers. That was an amazing finish for the MRW teams today | ||
17 more days until Opening Day. To say that I am happy about this is an understatement. The #mlb2012 season will be the BEST one ever! @mlb | ||
I am happy for the friendships I am developing with some people on twisters | ||
" Convert Kudankulam plant into a gasoline-based one" says Wise-Admiral Ramdas. I am happy he is a 'former' Naval Chief now. | ||
Today was a perfect day with my raza I am happy | ||
i'm assuming it's your bday where you're at even if it's not where i am lol . Well HAPPY BIRTHDAY ! | ||
I don't specifically know why I like this picture, but I do. I am happy. :) | ||
Ignorance is bliss and i need that shyt...I am happy. Thats just the saddest lie. #Cudi | ||
Happy Sunday. I went with blue eyes today. http://t.co/x4Tqbs0y | ||
i am happy with jointwitte | ||
I'm am so happy the PTSD,ADHD, psycho is now following me. Does he still have a HIGHER SECURITY CLEARENCE than POTUS OBAMA? | ||
i'm assuming it's your bday where you're at even if it's not where i am lol . Well HAPPY BIRTHDAY ! | ||
Dear #hiltongardeninn I am NOT happy with the fact that I got stuck with the room beside the ice machine. #goldmember | ||
I am so happy with my life! | ||
i'm pretty happy with where i am now. | ||
Happy Birthday Ton! I am still working hard at what we both started, getting our music out there. RIP Family http://t.co/jURzc6WH | ||
Jamie, your daughter is stunning. I am so happy for you girl. | ||
As happy as I am to see my frends I wish it was summer(: | ||
I am happy you're sober. :) | ||
I am brewing w envy. Ok fine. Happy for you. :/ | ||
I still check on you from time to time. i'm glad you're happy. i really am. | ||
Jamie, your daughter is stunning. I am so happy for you girl. | ||
I am so happy, it's kind of unbelievable. | ||
:'D YUUUUSSSS lmao yall don't know how happy i am #sj3 | ||
I said I will close the distance up. I did it, so glad to have you around. Happy Birthday baby ❤ http://t.co/919VOI5v | ||
Happy 16th baby girl ❤ I love you!!! @khamiltonnn http://t.co/axejLg1X | ||
I am so happy I am your friend right now. | ||
*giggles and smiles brightly* I am glad we are both happy too. Life is good. | ||
I'm happy for him...really, I am. She's an amazing girl, and they deserve each other. He's happy & thats all that matters...right?..... | ||
Dearest one can't be replace, even you're annoys me. But you're the one I love MOST! Happy B'day Brenda http://t.co/SXFW7EwM | ||
This has been a good weekend! I am so happy that I am back with everyone... now for the busiest week of my life | ||
If you don't tweet for a while you can do 3 in a row! I am super duper happy to be home with my sweetie! He is the best! I love him! | ||
We finished our first season of @TheBEATDance & I am so happy & proud & thankful & overwhelmed & lots of other good stuff! So Amazing #2013 | ||
I am so happy because I�ve keep a $100,00 Starbucks GIFT CARD 4 Free - I get it here: http://t.co/en6kV48W | ||
Did I mention that I am sad I have to go back to work tomorrow....but happy I can just do my job for now on..... | ||
I am happy, I am successful, bein in my own living space, bein in the masters prog I chose for myself, a life full of positivity...yay me! | ||
I Am So HAPPY . | ||
Looking through old pics and realizing everything happens for a reason. So happy with where I am right now | ||
Disney doesn't have TLC l, therefore this can not be the happiest place on earth because I am not happy... | ||
I wish for a stupid dream for the rest of the week. Maybe a dream where I am President, no skip that. *paging* Happy Monday Twitter.☺☺ | ||
I am sorry! Happy birthdax :) | ||
had a taste for Jims...& I just had the nastiest steak hoagy from @JimsSteakout...very disappointed, a waste of my $11..i am not happy! | ||
im so happy we have school tmrw because that means one day closer to summer?!(: am i right | ||
17 more days until Opening Day. To say that I am happy about this is an understatement. The #mlb2012 season will be the BEST one ever! @mlb | ||
haha, i am def happy about tanning lol. it is such a stress reliever. | ||
Oo I think no licking my lolly sounds good. I am happy to hear you are getting a little better!! | ||
patamon : yayyy!! I am so happy, now I can play games with you!! pata~ | ||
As long as she's happy then so am I.. My life <3 http://t.co/ZqqqbEih | ||
I'm always happy! Photo by @krisstephens http://t.co/3T4VGuDb • you look really hot babe xxx < Look At! | ||
Nothing's wrong with thay @TheRealTank: I'm always happy! Photo by http://t.co/ywiJKEyD | ||
Sorry I post so many screen shots, I just like showing how happy I am(: #sorrynotsorry #sorryboutit | ||
Give it up give it up give it up for SHINee .. Thank you .. I am happy because of you, because of sherlock | ||
When I am happy my heart starts to slow | ||
My little brother is re evaluating my life I'm back to a B+ Haha... # @SavinTheWorldKP kirsti must be how happy I am from last night | ||
My hair gone bye bye and I am so happy to say I am glad to have my hair back. (Even though this is a hard thing to see) | ||
My life has no purpose, no direction, no aim, no meaning, and yet I’m happy. I can’t figure it out. What am I doing right? | ||
i am X-5’s fan & now ,i am NUEST fan too。。。i am from China!!!happy to follow!!!! | ||
I'm always happy! Photo by @krisstephens http://t.co/Yy5WTHGn • you look really hot babe xxx | ||
I am happy, I am successful, bein in my own living space, bein in the masters prog I chose for myself, a life full of positivity...yay me! | ||
Alli, thanks for favoriteing my tweet! I like literally screamed! I am so happy Please follow me!!!?:) | ||
After several mini mental breakdowns 2day I am happy 2 say tht evrythng is starting 2 fall n2 place. Things happen 4 a reason. #justgowithit | ||
Why am I so happy right now!? | ||
Why the fuck am I so awake and so happy? | ||
just few hours to have you in America again!!! #TWonUS cant describe how happy I am :D | ||
Happy for Big 12 that KU won but I am a huge Robbie Hummel fan! Great player who really is what college hoops is suppose to be about! | ||
I am happy for who I am because I went through so much shit to become the person who I am today. | ||
No school in the am I'm soo happy ! | ||
I am happy and all that I'm legal now but I would do anything to be like 5 again #foreveryoung |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
I'm happy for him...really, I am. She's an amazing girl, and they deserve each other. He's happy & thats all that matters...right?..... | ||
Feel so happy with no reason... Just happy... Hey my brain, am I missing something? :)) | ||
We finished our first season of @TheBEATDance & I am so happy & proud & thankful & overwhelmed & lots of other good stuff! So Amazing #2013 | ||
am i allowed to be happy about something, or do yo wanna distroy the little i have left? | ||
I am so happy right now I can't even focus on anything else | ||
Why am I being sneaked around her fam when I'm open about us.... But we both happy shit don't add up. | ||
Heavens suppose to be the happiest place in the world I am happy everyday with the people I love but I feel like I live in heaven everyday:) | ||
I am so happy since I have get an $100,00 STARBUCKS GIFT-CARD for Free. I grab it here http://t.co/cg8M1Ubq | ||
I am one #happy girl :) | ||
I Am So HAPPY . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
When I think about #TrayvonMartin I can not help but worry about my own son! I am so sad and angry right now! Have been all day actually. | ||
#iLikePeopleWho makes me laugh when I am sad. | ||
Sometimes I just instantly get sad when I realize how blessed I am and I think about homeless people sleeping outside and hungry :( | ||
I have zero pics from last night very sad :( but hey I am proud of that hat!! | ||
I hear ya. I tried for a while and am now watching Goldmember. So sad | ||
I feel happy, I feel sad. And I don't know who I am.,It’s not the way you plan it is how you make it happend. | ||
it was so good! But so sad. I cried like a baby!! I am so sad that its ending :( | ||
no I am not in NYC these days... I know I am sad as well | ||
Why am I suddenly all sad? | ||
follows everyone but everyone doesn't follow back now i am sad | ||
Reading past convos i had with females, i am so oblivious and CANNOT take a hint. This is sad | ||
I am sad that the chief of police has already made up his mind that the shooter was protecting himself. | ||
I am on my PC! The link is not working. :: sad:: | ||
As mad and sad as I am about Mike being killed, it was such a Brilliant example of tragic writing at its best. | ||
ohhhh come on ! now im sad. I am the one with really no friends at all. | ||
Oh my good!!!! Too much feelings inside and any way to show them... How sad girl am i?? A big one | ||
meh i am sad | ||
Recently found out blue mountain state is over . . . What am I suppose to watch now #sad | ||
seeing you at the same place i am at makes me very sad. sad that you didnt even say ONE FUCKING word to me. | ||
I am actually kind of sad that its not flannel weather anymore... #Iloveflannel #bestmaterialever #afterwoolandleather | ||
if any of your guys are followed by @diggy_simmons your rlly lucky cus im like trying and i need help cus i am going crazy. ugh i am sad :( | ||
i am kinda sad. lol | ||
Whenever I am sad, angry, or bored, I eat. | ||
Good night all. I am so sad that Obama made us all slaves today. Maybe tomorrow will be a better day....peace to us all... | ||
my sad had work this am smh happy bday tho uce!! I still owe u an sit | ||
I want a dq blizzard. Cheer me up I am sad :( | ||
Sad thing is My parents don't really know who I am.. they know me but dont KNOW me. | ||
my fucking ear hurts, Im sad asf, Im mad asf. ughhh wtf am i gonna do with myself | ||
I don't believe you..fuck ya I am I'm already sad cause I need some alcohol in my system | ||
I am so technology incapable, I cannot use tumbler XD it's so sad lol | ||
The only way im ever gonna get any flowers is if i buy them myself.....and thats sad. http://t.co/ltINc7x3 | ||
i am sad like fucking shit | ||
yeah I know :( sad day | ||
I like tortured souls, sad as I am!! | ||
Well spring break is over in about 1 hour and I am sad:( | ||
are you sad the season is ending? ? I am:( | ||
Just watched the season finally of jersey shore and i am sad its over :( | ||
Is it sad that i am super excited for the new season of Frozen Planet to start Sunday on animal planet.. | ||
(Insert sad asshole tweet here) Yea i wanna cuddle and am going to sleep alone right now... Night bitches! #dueces | ||
dynastycrisis: http://t.co/Z9wSRHqM | ||
When am I going to be able to see him without getting sad.. | ||
we r so sad! i am crying in the first 3 mins ;( | ||
are you sad that the season is ending!? I know I am! | ||
I am very sad to need to set an alarm for the morning. Worst part of getting the boys to school. | ||
Kendra & Lexi .. who am i ? "Oh im crying again:( im so sad.. i really did like him:'( wahhh" .... bitch moan bitch moan.. | ||
But seriously why am I so sad tonight? | ||
When I am sad and mad I pick on my face till I rip flesh off. I need help -_- | ||
As sad as I am that you're not part of my life anymore I'm at least glad someone else is still getting the chance to have you in theirs. ... | ||
me ?? i am so sad read it T.T sorry :'( RT @lovely_leejoon: @dewii_1205 You mean Rani doesn't like you?I see..(T . T) | ||
I'm feeling so sad now... I will no longer be looking forward to #TheWalkingDead every Sunday. What am I going to do? | ||
So sad I have 8 AM class tomorrow #wahwah | ||
And if I am ever sad I feel like everyone thinks its because of you. | ||
I don't remember what this episodes holds!! But you are all so sad, I am worried!! #don'trememberyesterday | ||
I am.. its sad. Like I can't even kill a spidar.. my little cousins do it.. haah | ||
realize you fucking twat. I'm not dragging in a sad way. I am actually quite happy! And I wouldn't say I don't care for you. | ||
Doing the only thing I know to do when I am sad and depressed, eating cheese | ||
O Gawsh please stop, I am over here dying laughin...Sad but, True...! | ||
I dont have gf because girls dont fine me attractive & that is why i am sad,negative girls hate the way i look i hate myself | ||
I wanted to go so bad : c I love them so much it's sad am going to miss out :c sigh* | ||
You're my hero. you inspire me to do good in life. When i am sad I turn to you. I can relate to all of your songs. I love you. | ||
"I'm all out of faith, this is how I feel, sad and I am ashamed, lying without tickets on the floor." I will sing this if I dont get tickets | ||
Ha!!! This is sad, but so true :) honey I am home!!! | ||
I am the #1 fan of #TheWalkingDead I'm just sad to see Shane be killed but Rick had to do it right. | ||
SOUPY MAY NOT BE SAD ANYMORE BUT I SURE AM #fucking #FUCK | ||
it's sad how excited I am for breaking dawn part 2 to come out this november #teamedward #inlove | ||
I am so sad it's almost over. Glad to see Lynette is gonna fight tho!! #getitgirl | ||
When I am sad and think of how amazing my Lord is, it makes me cry tears of happiness. | ||
Ha oh shut up, & I am downnnnn! & are you sad cause soccer season is almost over cause I am :c | ||
I hate to see people sad , so I try my best to make em smile , and it seems to work...thats just how I am....So smile :) | ||
Actually.... Maybe I still AM that sad.... | ||
I am so proud! just sad it had to end how it did. and sad for what I'm gonna have to deal with tomorrow | ||
what is going on? everyone is sad now? I am confused-diana | ||
I am getting soo tired of all the racism and ignorance going on in the world today! The sad thing is #ItNeverEnds | ||
Why am I listening to sad songs? I'm not sad? | ||
After playing DDR and jumping rope today I've come to the sad realization that I am seriously out of shape...yikes. | ||
Getting sad because I am forever alone. xD | ||
I really am just so sad. | ||
Haizzzz.....1 more hours...i am leaving JB.....and my cousin are all leaving ad....SAD!!!!!! | ||
:( its not like i am laying here in bed, not even tired, wishing i had someone to talk too, havent talk to you in days....#SAD | ||
Woot! Thanks chica! I feel like I should be graduating this May, I am doing all of the graduation type things and yet am not. SAD |
Oops, something went wrong.