{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Complex Sentiment Analysis\n", "\n", "This notebook shows how to analyze a collection of passages like Tweets for sentiment.\n", "\n", "This is based on Neal Caron's [An introduction to text analysis with Python, Part 3](http://nealcaren.web.unc.edu/an-introduction-to-text-analysis-with-python-part-3/).\n", "\n", "This ultility example will look at:\n", "- [Setting up our Data](#Setting-up-our-data)\n", "- [Tokenizing Tweets](#Tokenizing-the-tweets)\n", "- [Analyzing Tweets](#Analyzing-tweets)\n", "- [Gathering Tweets](#Gathering-positive-tweets)\n", "- [Testing Tweets (for positive and negative words)](#Testing-a-tweet)\n", "- [Plotting words](#Gathering-and-plotting-all-positive-and-negative-words)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setting up our data\n", "\n", "Here we will get the data to test and our positive and negative dictionaries." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Getting by URL **\n", "\n", "Here you can see how to get the data by URL. This shows just how to get the *negative.txt* file. The other files you need to get are *positive.txt* and *obama_tweets.txt*." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "b'abandoned\\nabandonment\\naberration\\naberration\\nabhorred\\nabhorrence\\nabhorrent\\nabhorrently\\nabhors\\nabhors\\n'\n" ] } ], "source": [ "import urllib.request\n", "path = 'http://www.unc.edu/~ncaren/haphazard/negative.txt'\n", "with urllib.request.urlopen(path) as response:\n", " negData = response.read()\n", "print(negData[:100])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Opening data files **\n", "\n", "Instead of getting the data from the web in the script, I suggest you just download it and save it in the folder your script is in. Here are the links\n", "\n", "- Positive data http://www.unc.edu/~ncaren/haphazard/positive.txt\n", "- Negative data http://www.unc.edu/~ncaren/haphazard/negative.txt\n", "- Obama tweets http://www.unc.edu/~ncaren/haphazard/obama_tweets.txt\n", "\n", "Assuming you have saved in the folder with your script. Here is how to see what is in the folder." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collocates-Copy1.ipynb SimpleSentimentAnalysis.ipynb\r\n", "Collocates.ipynb Untitled.ipynb\r\n", "ComplexSentimentAnalysis.ipynb negative.txt\r\n", "Handling Texts.ipynb obama_tweets.txt\r\n", "Hume Enquiry.txt positive.txt\r\n", "Hume Treatise.txt\r\n" ] } ], "source": [ "%ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we load the **negative** words." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['wretchedly', 'wretchedness', 'wrong', 'wrongful', 'wrought', 'wrought', 'yawn', 'zealot', 'zealous', 'zealously']\n" ] } ], "source": [ "with open(\"negative.txt\", \"r\") as f:\n", " negText = f.read()\n", "negTokens = negText.split(\"\\n\") # This splits the text file into tokens on the new line character\n", "negTokens[-1:] = [] # This strips out the final empty item\n", "print(negTokens[-10:])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we load the **positive** words." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['worthwhile', 'worthy', 'wow', 'wry', 'yearning', 'yearningly', 'youthful', 'zeal', 'zenith', 'zest']\n" ] } ], "source": [ "with open(\"positive.txt\", \"r\") as f:\n", " posText = f.read()\n", "posTokens = posText.split(\"\\n\") # This splits the text file into tokens on the new line character\n", "posTokens[-1:] = [] # This strips out the final empty item\n", "print(posTokens[-10:])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we get the **tweets**." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Obama has called the GOP budget social Darwinism. Nice try, but they believe in social creationism.', 'In his teen years, Obama has been known to use marijuana and cocaine.']\n" ] } ], "source": [ "with open(\"obama_tweets.txt\", \"r\") as f:\n", " tweetsText = f.read()\n", "tweetsTokens = tweetsText.split(\"\\n\") # This splits the text file into tokens on the new line character\n", "tweetsTokens[-1:] = [] # This strips out the final empty item\n", "print(tweetsTokens[:2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tokenizing the tweets\n", "\n", "Now we will create two functions. The first for tokenizing a tweet, the second for calculating positive/negative words." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import re\n", "def tokenizer(theText):\n", " theTokens = re.findall(r'\\b\\w[\\w-]*\\b', theText.lower())\n", " return theTokens\n", "\n", "def calculator(theTweet):\n", " # Count positive words\n", " numPosWords = 0\n", " theTweetTokens = tokenizer(theTweet)\n", " for word in theTweetTokens:\n", " if word in posTokens:\n", " numPosWords += 1\n", " \n", " # Count negative words\n", " numNegWords = 0\n", " for word in theTweetTokens:\n", " if word in negTokens:\n", " numNegWords += 1\n", " \n", " sum = (numPosWords - numNegWords)\n", " return sum\n", "\n", "# Here is a line for testing this\n", "# print(calculator('Obama has called wrong wrong the GOP budget social Darwinism. Nice try, but they believe in social creationism.'))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analyzing tweets\n", "\n", "Now we will use the calculator to calculate how many positive and negative tweets.\n", "\n", "*Note:* that you can set a **threshold** for the number of words for a Tweet to be considered positive or negative." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total: 1380\n", "Positive: 81\n", "Neutral: 1047\n", "Negative: 252\n" ] } ], "source": [ "# Here we set up the thresholds\n", "posi = 1 # This means there have to be more than 1 positive word\n", "nega = 0 # This means there has to be more than 1 negative words\n", "\n", "# Here we prime our variables\n", "numTweets = 0\n", "numPosTweets = 0\n", "numNegTweets = 0\n", "numNeutTweets = 0\n", "\n", "# This loop goes through all the Tweets and calculates if sums the number of positive or negative ones.\n", "for tweet in tweetsTokens:\n", " calc = calculator(tweet)\n", " if calc > posi:\n", " numPosTweets += 1\n", " numTweets += 1\n", " elif calc < nega:\n", " numNegTweets += 1\n", " numTweets += 1\n", " else:\n", " numNeutTweets += 1\n", " numTweets += 1\n", "\n", "# This prints out the results \n", "print(\"Total: \" + str(numTweets) + \"\\n\" + \"Positive: \" + str(numPosTweets) + \"\\n\" + \"Neutral: \" + str(numNeutTweets) + \"\\n\" + \"Negative: \" +str(numNegTweets))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gathering positive tweets\n", "\n", "This will gather all examples of positive tweets." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[\"#WhatsRomneyHiding? Obama's dignity and sense of humor? #p2 #tcot\", \"RealClearPolitics - Obama's Organizational Advantage on Full ...: As a small but electorally significant state t... http://t.co/3Ax22aBB\", \"RT @wilycyotee Pres. Obama's ongoing support of women is another reason I am so proud he is my President! @edshow #Obama2012\", 'If Obama win 2012 Election wait til 2016 he will have full white hair! just like Bill clinton!']\n" ] } ], "source": [ "# Here we set up the threshold.\n", "posi = 1 # This means there have to be more than 1 positive word\n", "numberWanted = 4 # Here you decide how many tweets you want\n", "\n", "# Here we prime our variables\n", "numTweets = 0\n", "numPosTweets = 0\n", "posiTweetList = []\n", "\n", "# This loop goes through all the Tweets and calculates if sums the number of positive or negative ones.\n", "for tweet in tweetsTokens:\n", " calc = calculator(tweet)\n", " if calc > posi and numPosTweets < numberWanted:\n", " numPosTweets += 1\n", " posiTweetList.append(tweet)\n", "\n", "print(posiTweetList)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gathering negative tweets\n", "\n", "This will gather examples of negative tweets." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['President Obama < Lindsay Lohan RUMORS beginning cross shape lights on ST < 1987 Analyst64 DC bicycle courier < Video changes to scramble.', '@edshow the direspect of President #Obama is based on racism. They do not want a Black PRESIDENT. #edshow', '@JoeSixpackSays Our Troops NEED TO COME HOME !!!! BRING OUR TROOPS HOME NOW OBAMA YOU BASTARD OOOORAH SEMPER FI', 'Attorney Mario Apuzzo Files Ballot Access Challenge Against Obama Today in New Jersey http://t.co/06rD6lCL']\n" ] } ], "source": [ "# Here we set up the threshold.\n", "nega = -1 # This means there have to be more than 1 positive word\n", "numberWanted = 4 # Here you decide how many tweets you want\n", "\n", "# Here we prime our variables\n", "numTweets = 0\n", "numNegTweets = 0\n", "negaTweetList = []\n", "\n", "# This loop goes through all the Tweets and calculates if sums the number of positive or negative ones.\n", "for tweet in tweetsTokens:\n", " calc = calculator(tweet)\n", " if calc < nega and numNegTweets < numberWanted:\n", " numNegTweets += 1\n", " negaTweetList.append(tweet)\n", "\n", "print(negaTweetList)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Testing a tweet\n", "\n", "Here you can take a tweet and test it to see how many positive or negative words it has." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "What is the tweet to calculate? the rest is ok bad bad bad\n", "-3\n" ] } ], "source": [ "tweetToCalc = input(\"What is the tweet to calculate? \")\n", "print(calculator(tweetToCalc))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gathering and plotting positive and negative words\n", "\n", "This will gather the words that are positive in the tweets and tabulate them." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "What tweet do you want to process? \n", "Positive words: []\n", "Negative words: []\n" ] } ], "source": [ "import re\n", "posWordsList = []\n", "negWordsList = []\n", "\n", "def tokenizer(theText):\n", " theTokens = re.findall(r'\\b\\w[\\w-]*\\b', theText.lower())\n", " return theTokens\n", "\n", "def wordsCalculator(theTweet):\n", " # Count positive words\n", " numPosWords = 0\n", " theTweetTokens = tokenizer(theTweet)\n", " for word in theTweetTokens:\n", " if word in posTokens:\n", " numPosWords += 1\n", " posWordsList.append(word)\n", " \n", " # Count negative words\n", " numNegWords = 0\n", " for word in theTweetTokens:\n", " if word in negTokens:\n", " numNegWords += 1\n", " negWordsList.append(word)\n", "\n", "tweet2Process = input(\"What tweet do you want to process? \")\n", "wordsCalculator(tweet2Process)\n", "print(\"Positive words: \" + str(posWordsList[:10]))\n", "print(\"Negative words: \" + str(negWordsList[:10]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gathering and plotting all positive and negative words" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Positive words: 756\n", "Negative words: 552\n" ] } ], "source": [ "import re\n", "\n", "# Here we set up the thresholds\n", "posi = 1 # This means there have to be more than 1 positive word\n", "nega = 0 # This means there has to be more than 1 negative words\n", "\n", "# Here we prime our variables\n", "posWordsList = []\n", "negWordsList = []\n", "numTweets = 0\n", "numPosTweets = 0\n", "numNegTweets = 0\n", "numNeutTweets = 0\n", "\n", "def wordsGathering(theTweet):\n", " # Count positive words\n", " numPosWords = 0\n", " theTweetTokens = tokenizer(theTweet)\n", " for word in theTweetTokens:\n", " if word in posTokens:\n", " numPosWords += 1\n", " posWordsList.append(word)\n", " \n", " # Count negative words\n", " numNegWords = 0\n", " for word in theTweetTokens:\n", " if word in negTokens:\n", " numNegWords += 1\n", " negWordsList.append(word) \n", " \n", " sum = (numPosWords - numNegWords)\n", " return sum\n", "\n", "# This loop goes through all the Tweets and calculates if sums the number of positive or negative ones.\n", "for tweet in tweetsTokens:\n", " calc = wordsGathering(tweet)\n", " if calc > posi:\n", " numPosTweets += 1\n", " numTweets += 1\n", " elif calc < nega:\n", " numNegTweets += 1\n", " numTweets += 1\n", " else:\n", " numNeutTweets += 1\n", " numTweets += 1\n", "\n", "print(\"Positive words: \" + str(len(posWordsList)))\n", "print(\"Negative words: \" + str(len(negWordsList)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Positive words" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " will just supreme white important good right nice interest support \n", " 66 44 32 31 26 18 17 17 16 16 \n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import nltk, matplotlib\n", "\n", "posDist = nltk.FreqDist(posWordsList)\n", "posDist.tabulate(10)\n", "\n", "%matplotlib inline\n", "posDist.plot(25, title=\"Top Positive Words\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Negative words" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " need bully against trying war dumb down rumors bad less \n", " 26 19 14 13 11 11 11 10 9 8 \n" ] }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import nltk, matplotlib\n", "\n", "negDist = nltk.FreqDist(negWordsList)\n", "negDist.tabulate(10)\n", "\n", "%matplotlib inline\n", "negDist.plot(25, title=\"Top Negative Words\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Next Steps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's explore another utility example - identifying [Collocates](Collocates.ipynb) for a target word." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "[CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) From [The Art of Literary Text Analysis](../ArtOfLiteraryTextAnalysis.ipynb) by [Stéfan Sinclair](http://stefansinclair.name) & [Geoffrey Rockwell](http://geoffreyrockwell.com). Edited and revised by [Melissa Mony](http://melissamony.com).
Created August 8, 2014 (Jupyter 4.2.1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 1 }