diff --git a/tnitzsch.ipynb b/tnitzsch.ipynb new file mode 100644 index 0000000..ffa16ae --- /dev/null +++ b/tnitzsch.ipynb @@ -0,0 +1,595 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Written text as operational data\n", + "\n", + "Written text is one type of data\n", + "\n", + "### Why people write?\n", + "\n", + " - To communicate: their thoughts, feelings, urgency, needs, information\n", + "\n", + "### Why people communicate?\n", + "\n", + "1. To express emotions\n", + "1. To share information\n", + "1. To enable or elicit an action\n", + "1. ...\n", + "\n", + "### We will use written text for the purpose other than \n", + "1. To experience emotion\n", + "1. To learn something the author intended us to learn\n", + "1. To do what the author intended us to do\n", + "\n", + "### Instead, we will use written text to recognize who wrote it\n", + " - By calculating and comparing word frequencies in written documents\n", + " \n", + "See, for example, likely fictional story https://medium.com/@amuse/how-the-nsa-caught-satoshi-nakamoto-868affcef595" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 1. Dictionaries in python (associative arrays)\n", + "\n", + "Plot the frequency distribution of words on a web page." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\t1\n", + "\t1\n", + "403\t1\n", + "Forbidden\t1\n", + "\t1\n", + "

Forbidden

\t1\n", + "

You\t1\n", + "don't\t1\n", + "have\t1\n", + "permission\t1\n", + "to\t1\n" + ] + } + ], + "source": [ + "import requests, re\n", + "# re is a module for regular expressions: to detect various combinations of characters\n", + "import operator\n", + "\n", + "# Start from a simple document\n", + "r = requests .get('http://eecs.utk.edu')\n", + "\n", + "# What comes back includes headers and other HTTP stuff, get just the body of the response\n", + "t = r.text\n", + "\n", + "# obtain words by splitting a string using as separator one or more (+) space/like characters (\\s) \n", + "wds = re.split('\\s+',t)\n", + "\n", + "# now populate a dictionary (wf)\n", + "wf = {}\n", + "for w in wds:\n", + " if w in wf: wf [w] = wf [w] + 1\n", + " else: wf[w] = 1\n", + "\n", + "# dictionaries can not be sorted, so lets get a sorted *list* \n", + "wfs = sorted (wf .items(), key = operator .itemgetter (1), reverse=True) \n", + "\n", + "# lets just have no more than 15 words \n", + "ml = min(len(wfs),15)\n", + "for i in range(1,ml,1):\n", + " print (wfs[i][0]+\"\\t\"+str(wfs[i][1])) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 2\n", + "\n", + "Lots of markup in the output, lets remove it --- \n", + "\n", + "use BeautifulSoup and nltk modules and practice some regular expressions." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import requests, re, nltk\n", + "from bs4 import BeautifulSoup\n", + "from nltk import clean_html\n", + "from collections import Counter\n", + "import operator\n", + "\n", + "# we may not care about the usage of stop words\n", + "stop_words = nltk.corpus.stopwords.words('english') + [\n", + " 'ut', '\\'re','.', ',', '--', '\\'s', '?', ')', '(', ':', '\\'',\n", + " '\\\"', '-', '}', '{', '&', '|', u'\\u2014' ]\n", + "\n", + "# We most likely would like to remove html markup\n", + "def cleanHtml (html):\n", + " from bs4 import BeautifulSoup\n", + " soup = BeautifulSoup(html, 'html.parser')\n", + " return soup .get_text()\n", + "\n", + "# We also want to remove special characters, quotes, etc. from each word\n", + "def cleanWord (w):\n", + " # r in r'[.,\"\\']' tells to treat \\ as a regular character \n", + " # but we need to escape ' with \\'\n", + " # any character between the brackets [] is to be removed \n", + " wn = re.sub('[,\"\\.\\'&\\|:@>*;/=]', \"\", w)\n", + " # get rid of numbers\n", + " return re.sub('^[0-9\\.]*$', \"\", wn)\n", + " \n", + "# define a function to get text/clean/calculate frequency\n", + "def get_wf (URL):\n", + " # first get the web page\n", + " r = requests .get(URL)\n", + " \n", + " # Now clean\n", + " # remove html markup\n", + " t = cleanHtml (r .text) .lower()\n", + " \n", + " # split string into an array of words using any sequence of spaces \"\\s+\" \n", + " wds = re .split('\\s+',t)\n", + " \n", + " # remove periods, commas, etc stuck to the edges of words\n", + " for i in range(len(wds)):\n", + " wds [i] = cleanWord (wds [i])\n", + " \n", + " # If satisfied with results, lets go to the next step: calculate frequencies\n", + " # We can write a loop to create a dictionary, but \n", + " # there is a special function for everything in python\n", + " # in particular for counting frequencies (like function table() in R)\n", + " wf = Counter (wds)\n", + " \n", + " # Remove stop words from the dictionary wf\n", + " for k in stop_words:\n", + " wf. pop(k, None)\n", + " \n", + " #how many regular words in the document?\n", + " tw = 0\n", + " for w in wf:\n", + " tw += wf[w] \n", + " \n", + " \n", + " # Get ordered list\n", + " wfs = sorted (wf .items(), key = operator.itemgetter(1), reverse=True)\n", + " ml = min(len(wfs),15)\n", + "\n", + " #Reverse the list because barh plots items from the bottom\n", + " return (wfs [ 0:ml ] [::-1], tw)\n", + " \n", + "# Now populate two lists \n", + "(wf_ee, tw_ee) = get_wf('http://www.gutenberg.org/ebooks/1342.txt.utf-8')\n", + "(wf_bu, tw_bu) = get_wf('http://www.gutenberg.org/ebooks/76.txt.utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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iIiUm4JJERERESk3BZOHYGZ1w10GERERkUhWY4NJM8sys0fN7H4z+8nMvjez680s3sweNrOtZvaFmV3qp29lZs7MLjazd83sZ2BMmKshIlIh8+fPp3fv3iQmJpKcnEzPnj1ZtWoVP/74IxdffDFHHnkk9evXp1OnTsycObNovaeeeorGjRuzZ8+eA/IbMWIEw4YNA+DLL79k+PDhNGrUiISEBI4//nj++c9/Vmv9RCT8amww6RsB7AB6AfcB04D/AuuAVOBJ4O9mlhKwzr3AI0BHP+0BzCzDzLLNLDs/b1tVll1EpEL279/P8OHD6du3LytWrGDJkiXccMMNxMbGsnv3bk444QReffVVVq9ezfXXX8+YMWOYM2cOABdeeCEFBQW8/PLLRflt27aNl156icsvvxyAa665hry8PObOncvq1auZNm0ahx9++EHlyMzMJDU1ldTUVNRuitQ85pwLdxmqhJllAfHOuT7+3wZsBhY554b58+oCu4BLgGxgIzDOOXd/abYRn9LWpYycVvmFF6mFyjLwbmpqKtnZ2VVYmprhp59+onHjxmRlZXHaaaeVmP43v/kNiYmJ/P3vfwdg7NixrF+/njfffBOARx99lDvuuIOvvvqKOnXq0LVrV84//3xuv/32UpcpPqUtajdFKk9Z2k4zW+acS63sMtT0M5MfF75xXtS8GVgZMG8fsAVoGrCO/kOJSI3QqFEj0tPTGTRoEEOGDOGBBx7giy++ACA/P5+7776brl270rhxYxITE3nxxReLlgNceeWVvP3223z11VcAzJgxg5EjR1KnjvfwtOuvv54//elP9OnTh9tuu41ly5ZVfyVFJOxqejC5L+hvV8y8wP2wq0pLJCJSjWbOnMmSJUvo168fr7zyCu3bt2f27NlMnTqV+++/n5tvvpk5c+bw0Ucfcc4557B3796idbt168YJJ5zArFmzWLVqFdnZ2YwePbpo+eWXX87GjRsZNWoU69at4+STT2bSpElhqKWIhJOezS0iUsN169aNbt26MX78eM4880yefPJJduzYwdlnn82ll14KgHOOdevWHdTn8corr2TKlCn88MMPnHLKKbRv3/6A5UceeSQZGRlkZGQwefJkpk+froBSpJap6WcmRURqrY0bNzJhwgQWLlzIpk2bmDt3Lh9//DEdO3akXbt2zJkzhwULFvDJJ58wduxY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VlbnBQsWvH7sscce/Ze//GXRyy+//Pjzzz+/HODee+99HGgckHxXCdmNBT4AzgDmnHXWWTOysrLqrlu3LuHVV18dCSxyzq2tkoqIiFRQWloa77//PmvXrmX79u2ceOKJpKWlMXfuXLKysujTpw9xcXGHzMPMAIiJicE5d8CyffsOuigjIlKsSHqc4gZgH9Ab+BzAzBoAnYENBQUFj//444925ZVXThowYMAd/vLzgP/Ur1//KOBu4J8h8l0L7MHrg/kZXgD5F+Bt4AJgx6BBg3DOdW7fvv0cIAOv76aISETq27cve/bsYcqUKfTt25fY2FjS0tK48soradasGYMHDwagQ4cOPP/88xQUFBSdnVywYAFxcXG0bt0agCZNmpCbm3tA/itWrKBVq1Yht926dWvq1q3L4sWLOe644wDYtWsXq1atKspTRGqXiDkz6V/SfgKYbGa/MrNOwAwgtnHjxkldunTpHRcX504//fTDzOw4MxsC3AWQn5+/G7j0qKOOqhci3x3AdOBeMxu1Zs2a6YsXL96TkpLyNrAjIOnjwC1AA+BfVVpZEZEKKOw3+cwzz9C/f38AevfuzVdffcXixYtJS0sD4JprruGbb77hmmuuYe3atbz22mtMmDCBsWPHkpCQAMCAAQN44403eOWVV/j000/5/e9/z5dfflncpklMTOTyyy9n/PjxvP3226xevZrRo0eTn59f5fUWkcgUMcGkbxwwF3jJf10FzD/qqKOaN2nShDvvvPNd59w5wBq8u7p/D7B9+/aVQML555/fsZh8JwKT4+Li7uzevfvxZ599tvv2228bAv39bd60fv3674C9wPN+ACoiErHS0tLYv39/UeBYr149evXqRXx8PD179gSgZcuWvPHGGyxfvpzu3bszevRoLr744gOG8hk9enTRdMopp5CUlMS5554bapNFpk6dSv/+/Tn33HPp378/nTt3pl+/fodcR0RqLgvuKxOh/owX9I0D7g+x/CHgWuAa4NFD5DMK72xnJt6wQUWt3zfffMPRRx/NsGHDLnrxxRefL02h4lPaupSR00pVAalcOfcNCXcRJIxSU1OLhsaR6BKf0ha1mxJMbXr1MLNlzrnUys43kvpMHkrh7X/FjSlROP/wEvJp6r9eDnwNDHn77bcXr1u3rv0rr7zyTI8ePY578cUX7wL+i3eW8iBmloHXr5K4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\n", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Plot the results: are there striking differences in language?\n", + "import numpy as np\n", + "import pylab\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "def plotTwoLists (wf_ee, wf_bu, title):\n", + " f = plt.figure (figsize=(10, 6))\n", + " # this is painfully tedious....\n", + " f .suptitle (title, fontsize=20)\n", + " ax = f.add_subplot(111)\n", + " ax .spines ['top'] .set_color ('none')\n", + " ax .spines ['bottom'] .set_color ('none')\n", + " ax .spines ['left'] .set_color ('none')\n", + " ax .spines ['right'] .set_color ('none')\n", + " ax .tick_params (labelcolor='w', top='off', bottom='off', left='off', right='off', labelsize=20)\n", + "\n", + " # Create two subplots, this is the first one\n", + " ax1 = f .add_subplot (121)\n", + " plt .subplots_adjust (wspace=.5)\n", + "\n", + " pos = np .arange (len(wf_ee)) \n", + " ax1 .tick_params (axis='both', which='major', labelsize=14)\n", + " pylab .yticks (pos, [ x [0] for x in wf_ee ])\n", + " ax1 .barh (range(len(wf_ee)), [ x [1] for x in wf_ee ], align='center')\n", + "\n", + " ax2 = f .add_subplot (122)\n", + " ax2 .tick_params (axis='both', which='major', labelsize=14)\n", + " pos = np .arange (len(wf_bu)) \n", + " pylab .yticks (pos, [ x [0] for x in wf_bu ])\n", + " ax2 .barh (range (len(wf_bu)), [ x [1] for x in wf_bu ], align='center')\n", + "\n", + "plotTwoLists (wf_ee, wf_bu, 'Difference between Pride and Prejudice and Huck Finn')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "and\t2836\n", + "of\t2676\n", + "to\t2646\n", + "a\t2217\n", + "in\t1422\n", + "his\t1205\n", + "he\t928\n", + "that\t920\n", + "was\t823\n", + "for\t798\n", + "with\t797\n", + "as\t672\n", + "I\t505\n", + "you\t497\n" + ] + } + ], + "source": [ + "#In case Project gutenberg is blocked you can download text to your laptop and copy to the docker container via scp\n", + "#Assuming the file name you copy is pg4680.txt here is how you change the script\n", + "# Please note the option errors='replace'\n", + "# without it python invariably runs into unicode errors\n", + "f = open ('pg4680.txt', 'r', encoding=\"ascii\", errors='replace')\n", + " \n", + "# What comes back includes headers and other HTTP stuff, get just the body of the response\n", + "t = f.read()\n", + "\n", + "# obtain words by splitting a string using as separator one or more (+) space/like characters (\\s) \n", + "wds = re.split('\\s+',t)\n", + "\n", + "# now populate a dictionary (wf)\n", + "wf = {}\n", + "for w in wds:\n", + " if w in wf: wf [w] = wf [w] + 1\n", + " else: wf [w] = 1\n", + "\n", + "# dictionaries can not be sorted, so lets get a sorted *list* \n", + "wfs = sorted (wf .items(), key = operator .itemgetter (1), reverse=True) \n", + "\n", + "# lets just have no more than 15 words \n", + "ml = min(len(wfs),15)\n", + "for i in range(1,ml,1):\n", + " print (wfs[i][0]+\"\\t\"+str(wfs[i][1])) \n", + " \n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Assignment 1\n", + "\n", + "1. Compare word frequencies between two works of a single author.\n", + "1. Compare word frequencies between works of two authors.\n", + "1. Are there some words preferred by one author but used less frequently by another author?\n", + "\n", + "Extra credit\n", + "\n", + "1. The frequency of a specific word, e.g., \"would\" should follow a binomial distribution (each regular word in a document is a trial and with probability p that word is \"would\". The estimate for p is N(\"would\")/N(regular word)). Do these binomial distributions for your chosen word differ significantly between books of the same author or between authors? \n", + "\n", + "Project Gutenberg is a good source of for fiction and non-fiction.\n", + "\n", + "E.g below are two most popular books from Project Gutenberg:\n", + "- Pride and Prejudice at http://www.gutenberg.org/ebooks/1342.txt.utf-8\n", + "- Adventures of Huckleberry Finn at http://www.gutenberg.org/ebooks/76.txt.utf-8" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x44df+nYseORaWlpLwI9zMycczsbNWpUoVKlSuUPP/zwhWPGjFnunNsZoS7pZhYws8C+rK3R3EwRkULLyMjgiiuuYPLkyVxwwQU586tWrcq4ceNo1aoVp556Kueffz7Tpk0DYMeOHTz11FOMGDGC3r1706pVK8aNG0fdunUZM2YM4AV+s2bNYu/evXz33Xds3bqVgQMHMn36dAAyMzPp0qUL5cuXz7VeaWlppKWlobZTpPSJ9hm/JtnZ2WW7dOkC8A2Ac247sNhPb2Vmzk9v7qdv9dNbh5Sza/fu3V8Dg4EyDz744H1A+VWrVj0KvHDxxRen7969exdwfm4Vcc5lOOfSnHNpSZWrRXcrRUQK4a233mLw4MFMnTqVU089db+01q1bk5SUlPO+Xr16bNy4EYCVK1eyZ88eunbtmpOelJREly5dWLZsGQDdunVj165dfPnll2RmZtKtWzdOPvnknDN+mZmZ9OjRI9e6paenEwgECAQCqO0UKX1i2av3UD8Vq4e9dyF/7/VfXwNOys7O3g6QkpJyPXDJvn379mzZsmUz8H1uhYee8ctXrUVEYqxdu3akpqby3HPP4ZzbL61cuXL7vTczsrOzD1mmmQGQkpLCcccdx/Tp08nMzKRnz5507tyZH374ge+++44vv/zyoIGfiBQLtYMxjD+lR6vgaAd+K5OSkrI///zznBlmlgwc479d7pyzOXPmhKZXBdoAyyKUdzHwv82bN38F0L9//yOAVlu2bPmudu3aqcB/cqtI6Bm/wm6UiEg0NW7cmMzMTD766CPS09MPCP5y06RJE8qXL8/s2bNz5u3bt485c+bQuvWfF0169OjB9OnT+fTTT+nRowcVK1akU6dO3H///bq/T6Rk2BSMYfwpI1oFRzXwc85tP+mkkxYPHTqURx555Hi/t+54IMlP//b4449fNXDgQEaPHl3LzNoALwHbgJfDimvuL7v0kksueQDg/fff/wNYkZGRMXL16tXZ8+fPP3/69Olnm1mFaG6HiEisHXXUUUyfPp2pU6cycODAPAV/ycnJXHPNNQwdOpT333+f5cuXc80117BhwwYGDRqUky/YwWPbtm106NAhZ95LL7100Pv7RKT0i/ql3gkTJmT07NmT4cOHXw5MB5YAM4Lp77777qqOHTty8803DwTmApWB0yN00DgVKAd8umfPnv1axH379k1u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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#import requests, re, nltk\n", + "#In case your text is not on Project Gutenberg but at some other URL\n", + "#http://www.fullbooks.com/Our-World-or-The-Slaveholders-Daughter2.html\n", + "# that contains 12 parts\n", + "#t = \"\"\n", + "#for i in range(2,13):\n", + "# r = requests .get('http://www.fullbooks.com/Our-World-or-The-Slaveholders-Daughter' + str(i) + '.html')\n", + "# t = t + r.text\n", + "import requests, re, nltk\n", + "from bs4 import BeautifulSoup\n", + "from nltk import clean_html\n", + "from collections import Counter\n", + "import operator\n", + "\n", + "# we may not care about the usage of stop words\n", + "stop_words = nltk.corpus.stopwords.words('english') + [\n", + " 'ut', '\\'re','.', ',', '--', '\\'s', '?', ')', '(', ':', '\\'',\n", + " '\\\"', '-', '}', '{', '&', '|', u'\\u2014' ]\n", + "\n", + "# We most likely would like to remove html markup\n", + "def cleanHtml (html):\n", + " from bs4 import BeautifulSoup\n", + " soup = BeautifulSoup(html, 'html.parser')\n", + " return soup .get_text()\n", + "\n", + "# We also want to remove special characters, quotes, etc. from each word\n", + "def cleanWord (w):\n", + " # r in r'[.,\"\\']' tells to treat \\ as a regular character \n", + " # but we need to escape ' with \\'\n", + " # any character between the brackets [] is to be removed \n", + " wn = re.sub('[,\"\\.\\'&\\|:@>*;/=]', \"\", w)\n", + " # get rid of numbers\n", + " return re.sub('^[0-9\\.]*$', \"\", wn)\n", + " \n", + "# define a function to get text/clean/calculate frequency\n", + "def get_wf (URL):\n", + " # first get the web page\n", + " r = requests .get(URL)\n", + " \n", + " # Now clean\n", + " # remove html markup\n", + " t = cleanHtml (r .text) .lower()\n", + " \n", + " # split string into an array of words using any sequence of spaces \"\\s+\" \n", + " wds = re .split('\\s+',t)\n", + " \n", + " # remove periods, commas, etc stuck to the edges of words\n", + " for i in range(len(wds)):\n", + " wds [i] = cleanWord (wds [i])\n", + " \n", + " # If satisfied with results, lets go to the next step: calculate frequencies\n", + " # We can write a loop to create a dictionary, but \n", + " # there is a special function for everything in python\n", + " # in particular for counting frequencies (like function table() in R)\n", + " wf = Counter (wds)\n", + " \n", + " # Remove stop words from the dictionary wf\n", + " for k in stop_words:\n", + " wf. pop(k, None)\n", + " \n", + " #how many regular words in the document?\n", + " tw = 0\n", + " for w in wf:\n", + " tw += wf[w] \n", + " \n", + " \n", + " # Get ordered list\n", + " wfs = sorted (wf .items(), key = operator.itemgetter(1), reverse=True)\n", + " ml = min(len(wfs),15)\n", + "\n", + " #Reverse the list because barh plots items from the bottom\n", + " return (wfs [ 0:ml ] [::-1], tw)\n", + " \n", + "# Now populate two lists \n", + "(wf_ee, tw_ee) = get_wf('http://www.script-o-rama.com/movie_scripts/a1/bee-movie-script-transcript-seinfeld.html')\n", + "(wf_bu, tw_bu) = get_wf('http://www.script-o-rama.com/movie_scripts/s/shrek-script-transcript-mike-myers.html')\n", + "\n", + "#Plot the results: are there striking differences in language?\n", + "import numpy as np\n", + "import pylab\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "def plotTwoLists (wf_ee, wf_bu, title):\n", + " f = plt.figure (figsize=(10, 6))\n", + " # this is painfully tedious....\n", + " f .suptitle (title, fontsize=20)\n", + " ax = f.add_subplot(111)\n", + " ax .spines ['top'] .set_color ('none')\n", + " ax .spines ['bottom'] .set_color ('none')\n", + " ax .spines ['left'] .set_color ('none')\n", + " ax .spines ['right'] .set_color ('none')\n", + " ax .tick_params (labelcolor='w', top='off', bottom='off', left='off', right='off', labelsize=20)\n", + "\n", + " # Create two subplots, this is the first one\n", + " ax1 = f .add_subplot (121)\n", + " plt .subplots_adjust (wspace=.5)\n", + "\n", + " pos = np .arange (len(wf_ee)) \n", + " ax1 .tick_params (axis='both', which='major', labelsize=14)\n", + " pylab .yticks (pos, [ x [0] for x in wf_ee ])\n", + " ax1 .barh (range(len(wf_ee)), [ x [1] for x in wf_ee ], align='center')\n", + "\n", + " ax2 = f .add_subplot (122)\n", + " ax2 .tick_params (axis='both', which='major', labelsize=14)\n", + " pos = np .arange (len(wf_bu)) \n", + " pylab .yticks (pos, [ x [0] for x in wf_bu ])\n", + " ax2 .barh (range (len(wf_bu)), [ x [1] for x in wf_bu ], align='center')\n", + "\n", + "plotTwoLists (wf_ee, wf_bu, 'Difference between The Bee Movie and Shrek')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Io16k/JKfacUhfqwikV7/EREREQShAI/ERERkQRRJoGfmb1nZpPKYlkiIpVF3759GThwYLyrISKVSCwDv8OACcAP55xzzu/69et3ETAWqFfMcnoCbwM5wE7g2+uvv/7LOnXq5ESvqiIild+oUaPo1KlTvKshInEUq8CvNbAA7x68877//vs1O3bs2ArcBMwB6hexnOuAWcDp/vNjwIz69eu3OPzww1vg3d9XRERERIog6oGfmdU877zzZqampjaqVavWVjOb97///W/lO++88z7w2MaNG9udfvrpn5rZRjPbYWYfmdnRIfMPNLNthxxyyFkdO3Z8olatWtSuXXupmd0J3GZm0/7+979XW7ZsGWb2dzNzZjYw2u0QESlLubm5DBw4kNTUVBo3bsz999+/X/rGjRsZMGAA9erVo0aNGpxxxhksW7YsP33SpEmkpqYybdo0OnXqRK1atejVqxdr1qzJT7/77rvx+07MjEmTJpVlE0WkHIh64NeoUaPMBQsWNHvppZd+cs6dBBwLnOIn33XllVfu+/7779scccQR/YA0IBeYamY1QopJ2bNnzx2TJk2qMn369FXbtm1LAZ72014FHmnVqtWudevWcf3113f0p4mIVFjDhw/nww8/5PXXX2fatGksWrSImTNn5qcPHDiQzz77jLfffpt58+ZRs2ZNevfuzY4dO/Lz7Nq1iwceeIAJEyYwZ84cNm3axJAhQwDo168fw4YNo127dqxbt45169bRr1+/Mm+niMRXVAM/M0vdsGFDv4ceeojzzjvv7dzc3CV4h3vz/PQm7733XtKzzz5r33zzzT7n3BLgCuAQoH9IUVX37dt3bVpa2s9paWlHBAKBF4B0MzPn3I6WLVum1KhRI7lJkyafjx8/foVzbkeEumSYWbaZZe/L3RzNZoqIRNW2bdt47rnneOihhzj77LPp1KkTEydOpEoVr4v+8ssveeedd8jMzOSUU06hc+fOvPDCC2zZsoXJkyfnl7N3717Gjx9PWloaXbp0Yfjw4WRlZeGco0aNGqSmplK1alWaNGlCkyZNqFGjxgF1yczMJBAIEAgEUN8pUvlEe49f67y8vKo9evQAWAXgnNsGLPHTO5iZ89Pb+umb/fSOIeXs2r179xfADUCVBx544F4gec2aNY8Cz19++eUZu3fv3gVcXFBFnHOZzrmAcy6QVLNOdFsp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AacCN/iHbh3Q0k8+xsw+M7NcM8s2s24h8+13qNfMBprZNjM73cyWmtl2M5tuZq0OsuwjzGylmf3LzBJidLKIVCxTp06ldu3a7N27F4CvvvoKM2PIkCH5ee644w7OOOOM/PeLFy+me/fu1KxZk0AgwMKFC/PTfvnlFy699FIOO+wwatSowdFHH83EiRPz0wcOHMiMGTMYP348ZoaZkZOTw8CBA7nzzjs59thj6dy5M5deeilfffVVGXwCIlLelHaP303AHGAi3qHbpsB3ftoDwEigG94h3cl28PsLpQC3AVcBPYC6wNORMppZB2A28B9goHNubynbISISdT179mTnzp1kZ2cD3nl8DRo0ICsrKz9PVlYW6enp+e9vu+02HnzwQRYuXEj9+vXp378/wYMjO3fupFu3brz33nssW7aMm266icGDBzNt2jQAxo0bR48ePRg0aBDr1q1j3bp1HH744fvVae3atTz44IMHHA4WkcRQqsDPObcZ2A3k+odufwT2+cl/c85Nd86tBO4B2gPND1JcVeAG59w859z/gDFAeniwaGbdgVnA0865Wwo6XGxmGf6exux9uZtL00wRkRJJTU3luOOOY/r06YAX5A0dOpRvvvmGdevWkZuby/z58/cL/O6991569epF+/btufPOO1m5ciVr164FoHnz5tx666107dqVI488koyMDH7/+9/z8ssvA1CnTh2Sk5OpWbMmTZo0oUmTJiQlJeWX/f3339OzZ0/OOuss7rvvvoh1zszMJBAIEAgEUN8pUvnE8hy//4W8/sF/bnSQ/Lucc1+EzZMM1AuZ1hz4CBjtnIvca/mcc5nOuYBzLpBUs04xqi0iEj3p6en5e/hmzJjB7373O7p3705WVhaffvopVatWJS0tLT9/ly5d8l83a9YMgPXr1wOwb98+7rvvPrp06UL9+vVJTU3ljTfe4Ntvvy1SXe69916aNGnCU089RUEHYDIyMsjOziY7Oxv1nSKVTywDvz0hr4N75Q62vPDDtZHm2QDMBS4xs3qIiJRz6enpzJ49mxUrVrBlyxaOO+440tPTmT59OllZWfTo0YPk5OT8/NWqVct/HQzO8vLyABgzZgyPPPIIt956K9OmTePzzz/nggsuYPfu3UWqyw8//EC7du0KDPpEpPKLxqCI3UBSobmiYxdwHvAu8KGZneGc21RGyxYRKbae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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import requests, re, nltk\n", + "from bs4 import BeautifulSoup\n", + "from nltk import clean_html\n", + "from collections import Counter\n", + "import operator\n", + "\n", + "# we may not care about the usage of stop words\n", + "stop_words = nltk.corpus.stopwords.words('english') + [\n", + " 'ut', '\\'re','.', ',', '--', '\\'s', '?', ')', '(', ':', '\\'',\n", + " '\\\"', '-', '}', '{', '&', '|', u'\\u2014' ]\n", + "\n", + "# We most likely would like to remove html markup\n", + "def cleanHtml (html):\n", + " from bs4 import BeautifulSoup\n", + " soup = BeautifulSoup(html, 'html.parser')\n", + " return soup .get_text()\n", + "\n", + "# We also want to remove special characters, quotes, etc. from each word\n", + "def cleanWord (w):\n", + " # r in r'[.,\"\\']' tells to treat \\ as a regular character \n", + " # but we need to escape ' with \\'\n", + " # any character between the brackets [] is to be removed \n", + " wn = re.sub('[,\"\\.\\'&\\|:@>*;/=]', \"\", w)\n", + " # get rid of numbers\n", + " return re.sub('^[0-9\\.]*$', \"\", wn)\n", + " \n", + "# define a function to get text/clean/calculate frequency\n", + "def get_wf (URL):\n", + " # first get the web page\n", + " r = requests .get(URL)\n", + " \n", + " # Now clean\n", + " # remove html markup\n", + " t = cleanHtml (r .text) .lower()\n", + " \n", + " # split string into an array of words using any sequence of spaces \"\\s+\" \n", + " wds = re .split('\\s+',t)\n", + " \n", + " # remove periods, commas, etc stuck to the edges of words\n", + " for i in range(len(wds)):\n", + " wds [i] = cleanWord (wds [i])\n", + " \n", + " # If satisfied with results, lets go to the next step: calculate frequencies\n", + " # We can write a loop to create a dictionary, but \n", + " # there is a special function for everything in python\n", + " # in particular for counting frequencies (like function table() in R)\n", + " wf = Counter (wds)\n", + " \n", + " # Remove stop words from the dictionary wf\n", + " for k in stop_words:\n", + " wf. pop(k, None)\n", + " \n", + " #how many regular words in the document?\n", + " tw = 0\n", + " for w in wf:\n", + " tw += wf[w] \n", + " \n", + " \n", + " # Get ordered list\n", + " wfs = sorted (wf .items(), key = operator.itemgetter(1), reverse=True)\n", + " ml = min(len(wfs),15)\n", + "\n", + " #Reverse the list because barh plots items from the bottom\n", + " return (wfs [ 0:ml ] [::-1], tw)\n", + " \n", + "# Now populate two lists \n", + "(wf_ee, tw_ee) = get_wf('http://www.script-o-rama.com/movie_scripts/a1/bee-movie-script-transcript-seinfeld.html')\n", + "(wf_bu, tw_bu) = get_wf('https://transcripts.foreverdreaming.org/viewtopic.php?f=949&t=37974')\n", + "\n", + "#Plot the results: are there striking differences in language?\n", + "import numpy as np\n", + "import pylab\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "def plotTwoLists (wf_ee, wf_bu, title):\n", + " f = plt.figure (figsize=(10, 6))\n", + " # this is painfully tedious....\n", + " f .suptitle (title, fontsize=20)\n", + " ax = f.add_subplot(111)\n", + " ax .spines ['top'] .set_color ('none')\n", + " ax .spines ['bottom'] .set_color ('none')\n", + " ax .spines ['left'] .set_color ('none')\n", + " ax .spines ['right'] .set_color ('none')\n", + " ax .tick_params (labelcolor='w', top='off', bottom='off', left='off', right='off', labelsize=20)\n", + "\n", + " # Create two subplots, this is the first one\n", + " ax1 = f .add_subplot (121)\n", + " plt .subplots_adjust (wspace=.5)\n", + "\n", + " pos = np .arange (len(wf_ee)) \n", + " ax1 .tick_params (axis='both', which='major', labelsize=14)\n", + " pylab .yticks (pos, [ x [0] for x in wf_ee ])\n", + " ax1 .barh (range(len(wf_ee)), [ x [1] for x in wf_ee ], align='center')\n", + "\n", + " ax2 = f .add_subplot (122)\n", + " ax2 .tick_params (axis='both', which='major', labelsize=14)\n", + " pos = np .arange (len(wf_bu)) \n", + " pylab .yticks (pos, [ x [0] for x in wf_bu ])\n", + " ax2 .barh (range (len(wf_bu)), [ x [1] for x in wf_bu ], align='center')\n", + "\n", + "plotTwoLists (wf_ee, wf_bu, 'Difference between The Bee Movie and The Incredibles')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}