{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "path_data = '../../../data/'\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "import warnings\n", "warnings.simplefilter(action=\"ignore\", category=FutureWarning)\n", "\n", "from urllib.request import urlopen \n", "import re\n", "def read_url(url): \n", " return re.sub('\\\\s+', ' ', urlopen(url).read().decode())" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "# Read two books, fast (again)!\n", "\n", "huck_finn_url = 'https://www.inferentialthinking.com/data/huck_finn.txt'\n", "huck_finn_text = read_url(huck_finn_url)\n", "huck_finn_chapters = huck_finn_text.split('CHAPTER ')[44:]\n", "\n", "little_women_url = 'https://www.inferentialthinking.com/data/little_women.txt'\n", "little_women_text = read_url(little_women_url)\n", "little_women_chapters = little_women_text.split('CHAPTER ')[1:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Another Kind of Character\n", "In some situations, the relationships between quantities allow us to make predictions. This text will explore how to make accurate predictions based on incomplete information and develop methods for combining multiple sources of uncertain information to make decisions.\n", "\n", "As an example of visualizing information derived from multiple sources, let us first use the computer to get some information that would be tedious to acquire by hand. In the context of novels, the word \"character\" has a second meaning: a printed symbol such as a letter or number or punctuation symbol. Here, we ask the computer to count the number of characters and the number of periods in each chapter of both *Huckleberry Finn* and *Little Women*." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# In each chapter, count the number of all characters;\n", "# call this the \"length\" of the chapter.\n", "# Also count the number of periods.\n", "\n", "chars_periods_huck_finn = pd.DataFrame({'Huck Finn Chapter Length':[len(s) for s in huck_finn_chapters],\n", " 'Number of Periods':np.char.count(huck_finn_chapters, '.')})\n", "\n", "\n", "\n", "chars_periods_little_women = pd.DataFrame({'Little Women Chapter Length':[len(s) for s in little_women_chapters],\n", " 'Number of Periods':np.char.count(little_women_chapters, '.')})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the data for *Huckleberry Finn*. Each row of the table corresponds to one chapter of the novel and displays the number of characters as well as the number of periods in the chapter. Not surprisingly, chapters with fewer characters also tend to have fewer periods, in general: the shorter the chapter, the fewer sentences there tend to be, and vice versa. The relation is not entirely predictable, however, as sentences are of varying lengths and can involve other punctuation such as question marks. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Huck Finn Chapter LengthNumber of Periods
0702666
111982117
2852972
3679984
4816691
514550125
613218127
722208249
8808171
9703670
\n", "
" ], "text/plain": [ " Huck Finn Chapter Length Number of Periods\n", "0 7026 66\n", "1 11982 117\n", "2 8529 72\n", "3 6799 84\n", "4 8166 91\n", "5 14550 125\n", "6 13218 127\n", "7 22208 249\n", "8 8081 71\n", "9 7036 70" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chars_periods_huck_finn.head(10)\n", "\n", "# what effect does changing the 10 to a 5 have?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the corresponding data for *Little Women*." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Little Women Chapter LengthNumber of Periods
021759189
122148188
220558231
325526195
423395255
514622140
614431131
722476214
833767337
918508185
\n", "
" ], "text/plain": [ " Little Women Chapter Length Number of Periods\n", "0 21759 189\n", "1 22148 188\n", "2 20558 231\n", "3 25526 195\n", "4 23395 255\n", "5 14622 140\n", "6 14431 131\n", "7 22476 214\n", "8 33767 337\n", "9 18508 185" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chars_periods_little_women.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that the chapters of *Little Women* are in general longer than those of *Huckleberry Finn*. Let us see if these two simple variables – the length and number of periods in each chapter – can tell us anything more about the two books. One way to do this is to plot both sets of data on the same axes. \n", "\n", "In the plot below, there is a dot for each chapter in each book. Blue dots correspond to *Huckleberry Finn* and gold dots to *Little Women*. The horizontal axis represents the number of periods and the vertical axis represents the number of characters." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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6kXHjh157rnnMBqNrFmzhtzcXN56660K+2xDhgzhk08+Ydy4cZw6dQp/f392797NN998w6hRo5Te0UMPPURERATr1q3j1q1byraSffv2FfiZh4aG0rJlSx555BEeeOABZetF586dTbZxlIY33niDffv20bNnT5577jkaN25MYmIi27ZtY926dcWa92vYsCENGjRg+vTpXLlyBRcXF3bv3s2VK1fMvubKlSv069ePzp0788svv7B27VqeeOIJOnTooJRp2rQpH3/8MXPmzMHf3x8nJye6du1K//792bZtG1OmTOH777+nVatWaDQazp49S0xMDFFRUfTt2/e+2qcqk4ApLMrb25tBgwbx0UcfFbg3YcIEbt68yZYtW9i6dSuPP/44X375peq9h8UVFhZG69atmTNnDufPn6dBgwasW7eO1q1bK2UcHR2JiYlh8eLFbNmyhc2bN+Pk5ES9evUYPXq0klSgJFq1asWXX37JO++8w9y5c9FoNDRv3pyPPvqoxEG4PDybg4MDMTExvPXWW8oeQ19fX9566y1eeeUVk7JLlizB3d2dzz77jN27d/Poo4+ydevWAv9ojx49mh07drB//36ysrKoW7cu48aNY9y4cSWq4/2oU6cO3377LW+//TZbtmwhLS2NOnXq0L59+2L/cWdra8vnn3/OlClTWLJkCTY2NnTs2JHNmzeb3ee6Zs0aFixYoPxRNWjQIN555x2TMlOmTOHq1assX76cv/76C29vb7p27YqNjQ2ffPIJq1atYsOGDezevRs7Ozu8vb3p378/jz32WMkaRQByvJcQFY6zszPDhg1j0aJFZV0VYUGzZ8/m3XffJS4uDg8Pj7KujiiEzGEKIYQQKkjAFEIIIVSQgCmEEEKoIHOYQgghhArSwxRCCCFUkIAphBBCqCABUwghhFBBAqYQQgihggRMIYQQQoX/B+4toAnfx7ktAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(chars_periods_huck_finn['Number of Periods'], \n", " chars_periods_huck_finn['Huck Finn Chapter Length'], color='gold')\n", "\n", "\n", "plt.scatter(chars_periods_little_women['Number of Periods'], \n", " chars_periods_little_women['Little Women Chapter Length'], color='red')\n", "\n", "plt.xlabel('Number of periods in chapter')\n", "plt.ylabel('Number of characters in chapter');\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot shows us that many but not all of the chapters of *Little Women* are longer than those of *Huckleberry Finn*, as we had observed by just looking at the numbers. But it also shows us something more. Notice how the blue points are roughly clustered around a straight line, as are the yellow points. Moreover, it looks as though both colors of points might be clustered around the *same* straight line." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now look at all the chapters that contain about 100 periods. The plot shows that those chapters contain about 10,000 characters to about 15,000 characters, roughly. That's about 100 to 150 characters per period.\n", "\n", "Indeed, it appears from looking at the plot that on average both books tend to have somewhere between 100 and 150 characters between periods, as a very rough estimate. Perhaps these two great 19th century novels were signaling something so very familiar to us now: the 140-character limit of Twitter." ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }