{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Topic Modeling\n", "\n", "In this lecture, we'll work through an example of *topic modeling*. The idea of topic modeling is to find \"topics\" in documents that tie together many words. Here are some examples of hypothetical topics that you might find in a newspaper: \n", "\n", "1. **Finance**: \"dollar\", \"stock\", \"banks\"\n", "2. **Politics**: \"party\", \"vote\", \"election\"\n", "3. **Sports**: \"team\", \"win\", \"game\"\n", "\n", "In this lecture, we'll see how to use the term-document matrix from last time, in combination with some nice algorithms from `scikit-learn`, to perform topic modeling. Our overall aim is to get a coarse, topic-level summary of the plot of the short book *Alice’s Adventures in Wonderland* by Lewis Carroll. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from matplotlib import pyplot as plt\n", "\n", "import nltk\n", "from nltk.corpus import gutenberg\n", "# need to do this once to download the data\n", "# nltk.download('gutenberg')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's briefly review the steps that we took to construct our term-document matrix. First, we used the `gutenberg` module to read in the raw text of the book, and split it into chapters. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "s = gutenberg.raw(\"carroll-alice.txt\")\n", "chapters = s.split(\"CHAPTER\")[1:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, we created a nice, tidy data frame in which we stored the complete text of each chapter. " ] }, { "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", "
chaptertext
01I. Down the Rabbit-Hole\\n\\nAlice was beginnin...
12II. The Pool of Tears\\n\\n'Curiouser and curio...
23III. A Caucus-Race and a Long Tale\\n\\nThey we...
34IV. The Rabbit Sends in a Little Bill\\n\\nIt w...
45V. Advice from a Caterpillar\\n\\nThe Caterpill...
56VI. Pig and Pepper\\n\\nFor a minute or two she...
67VII. A Mad Tea-Party\\n\\nThere was a table set...
78VIII. The Queen's Croquet-Ground\\n\\nA large r...
89IX. The Mock Turtle's Story\\n\\n'You can't thi...
910X. The Lobster Quadrille\\n\\nThe Mock Turtle s...
1011XI. Who Stole the Tarts?\\n\\nThe King and Quee...
1112XII\\n\\n Alice's Evidence\\n\\n\\n'Here...
\n", "
" ], "text/plain": [ " chapter text\n", "0 1 I. Down the Rabbit-Hole\\n\\nAlice was beginnin...\n", "1 2 II. The Pool of Tears\\n\\n'Curiouser and curio...\n", "2 3 III. A Caucus-Race and a Long Tale\\n\\nThey we...\n", "3 4 IV. The Rabbit Sends in a Little Bill\\n\\nIt w...\n", "4 5 V. Advice from a Caterpillar\\n\\nThe Caterpill...\n", "5 6 VI. Pig and Pepper\\n\\nFor a minute or two she...\n", "6 7 VII. A Mad Tea-Party\\n\\nThere was a table set...\n", "7 8 VIII. The Queen's Croquet-Ground\\n\\nA large r...\n", "8 9 IX. The Mock Turtle's Story\\n\\n'You can't thi...\n", "9 10 X. The Lobster Quadrille\\n\\nThe Mock Turtle s...\n", "10 11 XI. Who Stole the Tarts?\\n\\nThe King and Quee...\n", "11 12 XII\\n\\n Alice's Evidence\\n\\n\\n'Here..." ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame({\n", " \"chapter\" : range(1, len(chapters) + 1),\n", " \"text\" : chapters\n", "})\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, and this is the complex part, we used the `CountVectorizer` from `sklearn` to construct the term-document matrix. In this example, I've used a few more of the arguments for `CountVectorizer`. In particular, because I'd like to eventually be able to see how topics evolve between chapters, I use the `max_df` argument to specify that I'd like like to include words that appear in at most 50% of the chapters. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction.text import CountVectorizer\n", "vec = CountVectorizer(max_df = 0.5, min_df = 0, stop_words = \"english\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we can use this `CountVectorizer` to create the term-document matrix and collect it all as a nice, tidy data frame. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "counts = vec.fit_transform(df['text'])\n", "counts = counts.toarray()\n", "count_df = pd.DataFrame(counts, columns = vec.get_feature_names())\n", "df = pd.concat((df, count_df), axis = 1)" ] }, { "cell_type": "code", "execution_count": 7, "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", "
chaptertext_i_abideableabsenceabsurdacceptanceaccidentaccidentally...yearyearsyelledyelpyeryesterdayyoungyouthzealandzigzag
01I. Down the Rabbit-Hole\\n\\nAlice was beginnin...00000000...0000000010
12II. The Pool of Tears\\n\\n'Curiouser and curio...10100000...0000010000
23III. A Caucus-Race and a Long Tale\\n\\nThey we...00001100...0000001000
\n", "

3 rows × 2148 columns

\n", "
" ], "text/plain": [ " chapter text _i_ abide \\\n", "0 1 I. Down the Rabbit-Hole\\n\\nAlice was beginnin... 0 0 \n", "1 2 II. The Pool of Tears\\n\\n'Curiouser and curio... 1 0 \n", "2 3 III. A Caucus-Race and a Long Tale\\n\\nThey we... 0 0 \n", "\n", " able absence absurd acceptance accident accidentally ... year \\\n", "0 0 0 0 0 0 0 ... 0 \n", "1 1 0 0 0 0 0 ... 0 \n", "2 0 0 1 1 0 0 ... 0 \n", "\n", " years yelled yelp yer yesterday young youth zealand zigzag \n", "0 0 0 0 0 0 0 0 1 0 \n", "1 0 0 0 0 1 0 0 0 0 \n", "2 0 0 0 0 0 1 0 0 0 \n", "\n", "[3 rows x 2148 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## On To Topic Modeling\n", "\n", "Now we are ready to run our model! Topic modeling is an *unsupervised* machine learning framework, which means that there's no set of true labels `y`. So, we just need to create the variables `X`. To do this, we can ignore the `text` and `chapter` columns. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "X = df.drop(['text', 'chapter'], axis = 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many algorithms for topic modeling. We will use *nonnegative matrix factorization* or NMF for now. As usual, there are three easy steps: \n", "\n", "1. Import the model we want. \n", "2. Initialize an instance of the model. \n", "3. Fit the model on data. \n", "\n", "NMF requires us to specify `n_components`, which is the number of topics to find. Choosing the right number of topics is a bit of an art, but there are also quantitative approaches based on Bayesian statistics that we won't go into here. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NMF(init='random', n_components=4, random_state=0)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.decomposition import NMF\n", "model = NMF(n_components = 4, init = \"random\", random_state = 0)\n", "model.fit(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two important parts of NMF. First, we have the topics themselves, which are stored in the `components_` attribute of the model. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0. , 0. , 0. , ..., 0.03184396, 0. ,\n", " 0.00530733],\n", " [0.1975168 , 0.04338739, 0. , ..., 0. , 0. ,\n", " 0. ],\n", " [0.20127845, 0.21670879, 0.2105765 , ..., 1.11826124, 0.11323678,\n", " 0.18637687],\n", " [0. , 0.00499915, 0. , ..., 0. , 0.00330162,\n", " 0. ]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.components_" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4, 2146)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.components_.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uh, what does that mean? We can think of each component as a collection of **weights** for each word. We can find the most important words in each component by finding the words where the weights are highest within that component. We can do this with a handy function called `np.argsort()`, which tells you which entries of an array are the largest, second largest, etc." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1272, 1271, ..., 806, 1162, 1966],\n", " [2145, 926, 1784, ..., 244, 980, 1442],\n", " [1634, 1527, 1524, ..., 247, 244, 1174],\n", " [ 0, 1277, 1274, ..., 1117, 493, 835]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "orders = np.argsort(model.components_, axis = 1)\n", "orders" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then use `numpy` \"fancy\" indexing to arrange the words in the needed orders. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([['_i_', 'painting', 'paint', ..., 'gryphon', 'mock', 'turtle'],\n", " ['zigzag', 'inquisitively', 'station', ..., 'cat', 'king',\n", " 'queen'],\n", " ['sheep', 'riper', 'rightly', ..., 'caterpillar', 'cat', 'mouse'],\n", " ['_i_', 'panted', 'pairs', ..., 'march', 'dormouse', 'hatter']],\n", " dtype=object)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "important_words = np.array(X.columns)[orders]\n", "important_words" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's convenient to write a function to automate this for us: " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def top_words(X, model, component, num_words):\n", " orders = np.argsort(model.components_, axis = 1)\n", " important_words = np.array(X.columns)[orders]\n", " return important_words[component][-num_words:]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['tea', 'hare', 'march', 'dormouse', 'hatter'], dtype=object)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top_words(X, model, 3, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next important aspect of topic modeling is the assignment of topics per document. This is done via weights. We can access this by using the `transform()` method of the model. " ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[9.77501978e-05, 1.97664522e-02, 5.17821692e-01, 3.07225844e-02],\n", " [0.00000000e+00, 0.00000000e+00, 9.62026820e-01, 0.00000000e+00],\n", " [2.58343542e-04, 0.00000000e+00, 9.42349279e-01, 0.00000000e+00],\n", " [0.00000000e+00, 5.37128674e-03, 8.67735980e-01, 2.36338240e-04],\n", " [1.31577250e-02, 0.00000000e+00, 8.51527332e-01, 0.00000000e+00],\n", " [0.00000000e+00, 2.70835534e-01, 1.00413330e+00, 9.09882306e-02],\n", " [0.00000000e+00, 0.00000000e+00, 2.05082222e-02, 1.85495376e+00],\n", " [0.00000000e+00, 1.64643881e+00, 0.00000000e+00, 0.00000000e+00],\n", " [8.26943575e-01, 3.86067385e-01, 0.00000000e+00, 0.00000000e+00],\n", " [1.16895457e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [0.00000000e+00, 8.61097347e-01, 0.00000000e+00, 9.03937864e-01],\n", " [3.73729071e-02, 9.74766421e-01, 1.75619195e-02, 7.02019118e-02]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "weights = model.transform(X)\n", "weights" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1)\n", "ax.imshow(weights.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The weights indicate the relative presence of each topic in each chapter. For example, Topic 2 is highly present in the first six chapters, but then mostly absent for the rest of the book. Topic 3 appears in Chapters 7 and 11, and so on. \n", "\n", "We can also visualize the same information as a line chart. Let's add as labels some of the top words for each topic. " ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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dvaUYP2d7I1fdRallO9LKSdIKcdKKZ/0HnteSvl8l3NellLe2u26I1LKfO/HZN+14ebyuPj1ll+TYc7gG5O/Ee7uKEPMzJSZJLbqEa3tod/mr+GQ9tolWAStfI7jWJi25U2fDqcP47I3smZ/LSWTRmLUD+3Nn2IiDExMjWWHH+sWbRs+QhdhIHqk54xdW87FUlJC++7dOGtqB9tVxQ9ZWVkdPe15e/DgwYglS5YM6d9cfFvJhZvH4yFQO70EylDsUyCVlpZGL1++vDNYXLt2rWXjxo3m/tyj+9+fu+++u/G5554L+TTTsIv+A+HNsjc51HSI383+HZGGobNVmTI0mE1mLnWPBsrCkAldpr0mn1kY3pSdjX3TJt/G96Htk3f3lrLtG2huMwzZLOjupmfH897OU3g8Ep2u5z8zX8mc6AwQYy7REov8YJlXQt3vf49t3VoSbr217wvOE6d++lhWx8GDZ41ADUbE+PGt6f/5ZL9+E0pISHABPPbYYxlHjhyJzM3NzbvtttvqH3vssdr7778/85NPPrE4HA5x99131/7kJz+pb25u1i1cuHBcc3Oz3uVyiccff/yUb6s93716awPAbrfrFy5cOKasrCxq6tSpre+8885R7xaCaR9++GF8R0eHbubMmbZXX321UqfTUVhYOLGwsNC2efNm8zXXXNM0b94860MPPZTV2tqqS0hIcL366qsVOTk5ztjYWHdERMRZxZG7Hs/IyJh6ww03nP74448tLpdLPP/885WPPPJIRmVlZcT3vve9msWLF9f19nxlZWWmq6++evwll1xi3bZtm/ndd9899Pe//z3hzTffHCGEoKSkpPm55547CfD6668n3H///TlWq1X//PPPVyxcuNAWERHhiY2NPSua63q8urpaf+ONN445ffq0cfr06fauiV9PPPFEyquvvpoEcMcdd9Q9/vjjtd379Mwzzxx74IEHcgoLC23bt283T5o0qfWuu+6q/8UvfpHR0NBgePnll4/MmTOntaamRv+1r31t1LFjxyKioqI8L774YmVRUVFb991Ixo8fP3nZsmUH09LSXNddd92Yqqoqk8fjEYsXLz519913N27cuDF6oN8LgP/6r/8auWLFijiXyyWWLFlyZPr06e3r1q2Lfuihh7Lb29t1kZGRnpdffvnoxIkTHb/+9a/T29vbdbm5ueYbb7zx9N//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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1)\n", "\n", "for i in range(4):\n", " ax.plot(df['chapter'], weights[:,i], label = top_words(X, model, i, 5))\n", "\n", "ax.legend(bbox_to_anchor=(1.05, 0.65), loc=\"upper left\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This plot allows us to easily see several major features of the plot of the novel, including the tea party with the March Hare, the Mad Hatter, and the Dormouse (Chapter 7), the crocquet game in the court of the Queen of Hearts (Chapter 8), the appearance of the Mock Turtle and the Lobster in (Chapters 9 and 10), and the reappearance of many characters in Chapter 11. " ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }