{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# HIDDEN\n", "# The standard set of libraries we need\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# Make plots look a little bit more fancy\n", "plt.style.use('fivethirtyeight')\n", "\n", "# The standard library for data in tables\n", "import pandas as pd\n", "\n", "# A tiny function to read a file directly from a URL\n", "from urllib.request import urlopen\n", "\n", "def read_url(url):\n", " return urlopen(url).read().decode()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This page is largely derived from `Another_Kind_Of_Character` of the UC\n", "Berkeley course \\- see the license file on the main website." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# HIDDEN\n", "# Read the text of Pride and Prejudice, split into chapters.\n", "book_url = 'http://www.gutenberg.org/cache/epub/42671/pg42671.txt'\n", "book_text = read_url(book_url)\n", "# Break the text into Chapters\n", "book_chapters = book_text.split('CHAPTER ')\n", "# Drop the first \"Chapter\" - it's the Project Gutenberg header\n", "book_chapters = book_chapters[1:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In some situations, the relationships between quantities allow us to make\n", "predictions. This text will explore how to make accurate predictions based on\n", "incomplete information and develop methods for combining multiple sources of\n", "uncertain information to make decisions.\n", "\n", "As an example of visualizing information derived from multiple sources, let us\n", "first use the computer to get some information that would be tedious to\n", "acquire by hand. In the context of novels, the word \"character\" has a second\n", "meaning: a printed symbol such as a letter or number or punctuation symbol.\n", "Here, we ask the computer to count the number of characters and the number of\n", "periods in each chapter of *Pride and Prejudice*." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# In each chapter, count the number of all characters;\n", "# Also count the number of periods.\n", "chars_periods = pd.DataFrame.from_dict({\n", " 'Number of chars in chapter': [len(s) for s in book_chapters],\n", " 'Number of periods': np.char.count(book_chapters, '.')\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the data. Each row of the table corresponds to one chapter of the\n", "novel and displays the number of characters as well as the number of periods\n", "in the chapter. Not surprisingly, chapters with fewer characters also tend to\n", "have fewer periods, in general – the shorter the chapter, the fewer sentences\n", "there tend to be, and vice versa. The relation is not entirely predictable,\n", "however, as sentences are of varying lengths and can involve other punctuation\n", "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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Number of chars in chapterNumber of periods
0461359
1442063
29746106
3604554
4539061
513287114
611492111
711274109
89971119
912798126
10916099
11402029
12965493
13657658
14995682
1519475185
16743669
1729704270
181084588
199374108
201152186
211018175
22980785
2311066113
24877490
2513227126
26737461
27839070
2814010127
29718746
.........
31865278
321060299
331225192
3418487130
351203383
36795870
37608047
38896274
399400104
4013260110
411117287
4228068237
431362290
441029668
4517642153
4622976180
4712995110
4812730124
4912922111
5011463106
5117676168
5216463185
53910481
5413287125
5515712163
56967272
5713976131
5813952149
59902087
6026470269
\n", "

61 rows × 2 columns

\n", "
" ], "text/plain": [ " Number of chars in chapter Number of periods\n", "0 4613 59\n", "1 4420 63\n", "2 9746 106\n", "3 6045 54\n", "4 5390 61\n", "5 13287 114\n", "6 11492 111\n", "7 11274 109\n", "8 9971 119\n", "9 12798 126\n", "10 9160 99\n", "11 4020 29\n", "12 9654 93\n", "13 6576 58\n", "14 9956 82\n", "15 19475 185\n", "16 7436 69\n", "17 29704 270\n", "18 10845 88\n", "19 9374 108\n", "20 11521 86\n", "21 10181 75\n", "22 9807 85\n", "23 11066 113\n", "24 8774 90\n", "25 13227 126\n", "26 7374 61\n", "27 8390 70\n", "28 14010 127\n", "29 7187 46\n", ".. ... ...\n", "31 8652 78\n", "32 10602 99\n", "33 12251 92\n", "34 18487 130\n", "35 12033 83\n", "36 7958 70\n", "37 6080 47\n", "38 8962 74\n", "39 9400 104\n", "40 13260 110\n", "41 11172 87\n", "42 28068 237\n", "43 13622 90\n", "44 10296 68\n", "45 17642 153\n", "46 22976 180\n", "47 12995 110\n", "48 12730 124\n", "49 12922 111\n", "50 11463 106\n", "51 17676 168\n", "52 16463 185\n", "53 9104 81\n", "54 13287 125\n", "55 15712 163\n", "56 9672 72\n", "57 13976 131\n", "58 13952 149\n", "59 9020 87\n", "60 26470 269\n", "\n", "[61 rows x 2 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chars_periods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the plot below, there is a dot for each chapter in the book. The horizontal\n", "axis represents the number of periods and the vertical axis represents the\n", "number of characters." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 6))\n", "plt.scatter(chars_periods['Number of periods'],\n", " chars_periods['Number of chars in chapter'],\n", " color='darkblue')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice how the blue points are roughly clustered around a straight line.\n", "\n", "Now look at all the chapters that contain about 100 periods. The plot shows\n", "that those chapters contain about 10,000 characters to about 15,000\n", "characters, roughly. That's about 90 to 150 characters per period.\n", "\n", "Indeed, it appears from looking at the plot that the chapters tend to have\n", "somewhere between 100 and 150 characters between periods, as a very rough\n", "estimate. Perhaps Jane Austen was announcing something familiar to us now: the\n", "original 140-character limit of Twitter.\n", "\n", "{% data8page Another_Kind_Of_Character %}" ] } ], "metadata": { "jupytext": { "formats": "Rmd:rmarkdown,ipynb", "text_representation": { "extension": ".Rmd", "format_name": "rmarkdown", "format_version": "1.0" } }, "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.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }