From 39820cf76d5bcad8cc0ddae70b172da2140ac546 Mon Sep 17 00:00:00 2001 From: Parul Sethi Date: Mon, 26 Jun 2017 21:14:34 +0530 Subject: [PATCH] Added Tensorboard visualization for LDA (#1396) * added LDA viz in Tensorboard notebook * added LDA visualization * describe PCA viz more * style changes * round off vector values * display top 5 topics. updated topic coordinate image * add cluster names * named clusters using LDAvis/get_topic_terms * add cluster descriptions --- docs/notebooks/Tensorboard_doc2vec.ipynb | 905 ------------ .../Tensorboard_visualizations.ipynb | 1282 +++++++++++++++++ docs/notebooks/doc_lda_pca.png | Bin 0 -> 14331 bytes docs/notebooks/doc_lda_tsne.png | Bin 0 -> 350065 bytes docs/notebooks/topic_with_coordinate.png | Bin 0 -> 208360 bytes 5 files changed, 1282 insertions(+), 905 deletions(-) delete mode 100644 docs/notebooks/Tensorboard_doc2vec.ipynb create mode 100644 docs/notebooks/Tensorboard_visualizations.ipynb create mode 100644 docs/notebooks/doc_lda_pca.png create mode 100644 docs/notebooks/doc_lda_tsne.png create mode 100644 docs/notebooks/topic_with_coordinate.png diff --git a/docs/notebooks/Tensorboard_doc2vec.ipynb b/docs/notebooks/Tensorboard_doc2vec.ipynb deleted file mode 100644 index 865f9dd56f..0000000000 --- a/docs/notebooks/Tensorboard_doc2vec.ipynb +++ /dev/null @@ -1,905 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Visualizing Doc2Vec with TensorBoard\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "\n", - "\n", - "\n", - "\n", - "In this tutorial, I will explain how to visualize Doc2Vec Embeddings aka [Paragraph Vectors]() via TensorBoard. It is a data visualization framework for visualizing and inspecting the TensorFlow runs and graphs. We will use a built-in Tensorboard visualizer called *Embedding Projector* in this tutorial. It lets you interactively visualize and analyze high-dimensional data like embeddings.\n", - "\n", - "For this tutorial, a transformed MovieLens dataset[1] was used from this [repository](https://github.com/RaRe-Technologies/movie-plots-by-genre) and the movie titles were added afterwards. You can download the prepared csv from [here](https://github.com/parulsethi/DocViz/blob/master/movie_plots.csv). The input documents for training are the synopsis of movies, on which Doc2Vec model is trained. \n", - "\n", - "The visualizations will be a scatterplot as seen in the above image, where each datapoint is labelled by the movie title and colored by it's corresponding genre. You can also visit this [Projector link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/DocViz/master/movie_plot_config.json) which is configured with my embeddings for the above mentioned dataset. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Define a Function to Read and Preprocess Text" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
MovieIDTitlesPlotsGenres
01Toy Story (1995)A little boy named Andy loves to be in his roo...animation
12Jumanji (1995)When two kids find and play a magical board ga...fantasy
23Grumpier Old Men (1995)Things don't seem to change much in Wabasha Co...comedy
36Heat (1995)Hunters and their prey--Neil and his professio...action
47Sabrina (1995)An ugly duckling having undergone a remarkable...romance
59Sudden Death (1995)Some terrorists kidnap the Vice President of t...action
610GoldenEye (1995)James Bond teams up with the lone survivor of ...action
715Cutthroat Island (1995)Morgan Adams and her slave, William Shaw, are ...action
817Sense and Sensibility (1995)When Mr. Dashwood dies, he must leave the bulk...romance
918Four Rooms (1995)This movie features the collaborative director...comedy
1019Ace Ventura: When Nature Calls (1995)Ace Ventura, emerging from self-imposed exile ...comedy
1129City of Lost Children, The (Cité des enfants p...Krank (Daniel Emilfork), who cannot dream, kid...sci-fi
1232Twelve Monkeys (a.k.a. 12 Monkeys) (1995)In a future world devastated by disease, a con...sci-fi
1334Babe (1995)Farmer Hoggett wins a runt piglet at a local f...fantasy
1439Clueless (1995)A rich high school student tries to boost a ne...romance
1544Mortal Kombat (1995)Based on the popular video game of the same na...action
1648Pocahontas (1995)Capt. John Smith leads a rag-tag band of Engli...animation
1750Usual Suspects, The (1995)Following a truck hijack in New York, five con...comedy
1857Home for the Holidays (1995)After losing her job, making out with her soon...comedy
1969Friday (1995)Two homies, Smokey and Craig, smoke a dope dea...comedy
2070From Dusk Till Dawn (1996)Two criminals and their hostages unknowingly s...action
2176Screamers (1995)(SIRIUS 6B, Year 2078) On a distant mining pla...sci-fi
2282Antonia's Line (Antonia) (1995)In an anonymous Dutch village, a sturdy, stron...fantasy
2388Black Sheep (1996)Comedy about the prospective Washington State ...comedy
2495Broken Arrow (1996)\"Broken Arrow\" is the term used to describe a ...action
25104Happy Gilmore (1996)A rejected hockey player puts his skills to th...comedy
26105Bridges of Madison County, The (1995)Photographer Robert Kincaid wanders into the l...romance
27110Braveheart (1995)When his secret bride is executed for assaulti...action
28141Birdcage, The (1996)Armand Goldman owns a popular drag nightclub i...comedy
29145Bad Boys (1995)Marcus Burnett is a hen-pecked family man. Mik...action
...............
1813122902Fantastic Four (2015)FANTASTIC FOUR, a contemporary re-imagining of...sci-fi
1814127098Louis C.K.: Live at The Comedy Store (2015)Comedian Louis C.K. performs live at the Comed...comedy
1815127158Tig (2015)An intimate, mixed media documentary that foll...comedy
1816127202Me and Earl and the Dying Girl (2015)Seventeen-year-old Greg has managed to become ...comedy
1817129354Focus (2015)In the midst of veteran con man Nicky's latest...action
1818129428The Second Best Exotic Marigold Hotel (2015)The Second Best Exotic Marigold Hotel is the e...comedy
1819129937Run All Night (2015)Professional Brooklyn hitman Jimmy Conlon is m...action
1820130490Insurgent (2015)One choice can transform you-or it can destroy...sci-fi
1821130520Home (2015)An alien on the run from his own people makes ...animation
1822130634Furious 7 (2015)Dominic and his crew thought they'd left the c...action
1823131013Get Hard (2015)Kevin Hart plays the role of Darnell--a family...comedy
1824132046Tomorrowland (2015)Bound by a shared destiny, a bright, optimisti...sci-fi
1825132480The Age of Adaline (2015)A young woman, born at the turn of the 20th ce...romance
1826132488Lovesick (2014)Lovesick is the comic tale of Charlie Darby (M...fantasy
1827132796San Andreas (2015)In San Andreas, California is experiencing a s...action
1828132961Far from the Madding Crowd (2015)In Victorian England, the independent and head...romance
1829133195Hitman: Agent 47 (2015)An assassin teams up with a woman to help her ...action
1830133645Carol (2015)In an adaptation of Patricia Highsmith's semin...romance
1831134130The Martian (2015)During a manned mission to Mars, Astronaut Mar...sci-fi
1832134368Spy (2015)A desk-bound CIA analyst volunteers to go unde...comedy
1833134783Entourage (2015)Movie star Vincent Chase, together with his bo...comedy
1834134853Inside Out (2015)After young Riley is uprooted from her Midwest...comedy
1835135518Self/less (2015)A dying real estate mogul transfers his consci...sci-fi
1836135861Ted 2 (2015)Months after John's divorce, Ted and Tami-Lynn...comedy
1837135887Minions (2015)Ever since the dawn of time, the Minions have ...comedy
1838136016The Good Dinosaur (2015)In a world where dinosaurs and humans live sid...animation
1839139855Anomalisa (2015)Michael Stone, an author that specializes in c...animation
1840142997Hotel Transylvania 2 (2015)The Drac pack is back for an all-new monster c...animation
1841145935Peanuts Movie, The (2015)Charlie Brown, Lucy, Snoopy, and the whole gan...animation
1842149406Kung Fu Panda 3 (2016)Continuing his \"legendary adventures of awesom...comedy
\n", - "

1843 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " MovieID Titles \\\n", - "0 1 Toy Story (1995) \n", - "1 2 Jumanji (1995) \n", - "2 3 Grumpier Old Men (1995) \n", - "3 6 Heat (1995) \n", - "4 7 Sabrina (1995) \n", - "5 9 Sudden Death (1995) \n", - "6 10 GoldenEye (1995) \n", - "7 15 Cutthroat Island (1995) \n", - "8 17 Sense and Sensibility (1995) \n", - "9 18 Four Rooms (1995) \n", - "10 19 Ace Ventura: When Nature Calls (1995) \n", - "11 29 City of Lost Children, The (Cité des enfants p... \n", - "12 32 Twelve Monkeys (a.k.a. 12 Monkeys) (1995) \n", - "13 34 Babe (1995) \n", - "14 39 Clueless (1995) \n", - "15 44 Mortal Kombat (1995) \n", - "16 48 Pocahontas (1995) \n", - "17 50 Usual Suspects, The (1995) \n", - "18 57 Home for the Holidays (1995) \n", - "19 69 Friday (1995) \n", - "20 70 From Dusk Till Dawn (1996) \n", - "21 76 Screamers (1995) \n", - "22 82 Antonia's Line (Antonia) (1995) \n", - "23 88 Black Sheep (1996) \n", - "24 95 Broken Arrow (1996) \n", - "25 104 Happy Gilmore (1996) \n", - "26 105 Bridges of Madison County, The (1995) \n", - "27 110 Braveheart (1995) \n", - "28 141 Birdcage, The (1996) \n", - "29 145 Bad Boys (1995) \n", - "... ... ... \n", - "1813 122902 Fantastic Four (2015) \n", - "1814 127098 Louis C.K.: Live at The Comedy Store (2015) \n", - "1815 127158 Tig (2015) \n", - "1816 127202 Me and Earl and the Dying Girl (2015) \n", - "1817 129354 Focus (2015) \n", - "1818 129428 The Second Best Exotic Marigold Hotel (2015) \n", - "1819 129937 Run All Night (2015) \n", - "1820 130490 Insurgent (2015) \n", - "1821 130520 Home (2015) \n", - "1822 130634 Furious 7 (2015) \n", - "1823 131013 Get Hard (2015) \n", - "1824 132046 Tomorrowland (2015) \n", - "1825 132480 The Age of Adaline (2015) \n", - "1826 132488 Lovesick (2014) \n", - "1827 132796 San Andreas (2015) \n", - "1828 132961 Far from the Madding Crowd (2015) \n", - "1829 133195 Hitman: Agent 47 (2015) \n", - "1830 133645 Carol (2015) \n", - "1831 134130 The Martian (2015) \n", - "1832 134368 Spy (2015) \n", - "1833 134783 Entourage (2015) \n", - "1834 134853 Inside Out (2015) \n", - "1835 135518 Self/less (2015) \n", - "1836 135861 Ted 2 (2015) \n", - "1837 135887 Minions (2015) \n", - "1838 136016 The Good Dinosaur (2015) \n", - "1839 139855 Anomalisa (2015) \n", - "1840 142997 Hotel Transylvania 2 (2015) \n", - "1841 145935 Peanuts Movie, The (2015) \n", - "1842 149406 Kung Fu Panda 3 (2016) \n", - "\n", - " Plots Genres \n", - "0 A little boy named Andy loves to be in his roo... animation \n", - "1 When two kids find and play a magical board ga... fantasy \n", - "2 Things don't seem to change much in Wabasha Co... comedy \n", - "3 Hunters and their prey--Neil and his professio... action \n", - "4 An ugly duckling having undergone a remarkable... romance \n", - "5 Some terrorists kidnap the Vice President of t... action \n", - "6 James Bond teams up with the lone survivor of ... action \n", - "7 Morgan Adams and her slave, William Shaw, are ... action \n", - "8 When Mr. Dashwood dies, he must leave the bulk... romance \n", - "9 This movie features the collaborative director... comedy \n", - "10 Ace Ventura, emerging from self-imposed exile ... comedy \n", - "11 Krank (Daniel Emilfork), who cannot dream, kid... sci-fi \n", - "12 In a future world devastated by disease, a con... sci-fi \n", - "13 Farmer Hoggett wins a runt piglet at a local f... fantasy \n", - "14 A rich high school student tries to boost a ne... romance \n", - "15 Based on the popular video game of the same na... action \n", - "16 Capt. John Smith leads a rag-tag band of Engli... animation \n", - "17 Following a truck hijack in New York, five con... comedy \n", - "18 After losing her job, making out with her soon... comedy \n", - "19 Two homies, Smokey and Craig, smoke a dope dea... comedy \n", - "20 Two criminals and their hostages unknowingly s... action \n", - "21 (SIRIUS 6B, Year 2078) On a distant mining pla... sci-fi \n", - "22 In an anonymous Dutch village, a sturdy, stron... fantasy \n", - "23 Comedy about the prospective Washington State ... comedy \n", - "24 \"Broken Arrow\" is the term used to describe a ... action \n", - "25 A rejected hockey player puts his skills to th... comedy \n", - "26 Photographer Robert Kincaid wanders into the l... romance \n", - "27 When his secret bride is executed for assaulti... action \n", - "28 Armand Goldman owns a popular drag nightclub i... comedy \n", - "29 Marcus Burnett is a hen-pecked family man. Mik... action \n", - "... ... ... \n", - "1813 FANTASTIC FOUR, a contemporary re-imagining of... sci-fi \n", - "1814 Comedian Louis C.K. performs live at the Comed... comedy \n", - "1815 An intimate, mixed media documentary that foll... comedy \n", - "1816 Seventeen-year-old Greg has managed to become ... comedy \n", - "1817 In the midst of veteran con man Nicky's latest... action \n", - "1818 The Second Best Exotic Marigold Hotel is the e... comedy \n", - "1819 Professional Brooklyn hitman Jimmy Conlon is m... action \n", - "1820 One choice can transform you-or it can destroy... sci-fi \n", - "1821 An alien on the run from his own people makes ... animation \n", - "1822 Dominic and his crew thought they'd left the c... action \n", - "1823 Kevin Hart plays the role of Darnell--a family... comedy \n", - "1824 Bound by a shared destiny, a bright, optimisti... sci-fi \n", - "1825 A young woman, born at the turn of the 20th ce... romance \n", - "1826 Lovesick is the comic tale of Charlie Darby (M... fantasy \n", - "1827 In San Andreas, California is experiencing a s... action \n", - "1828 In Victorian England, the independent and head... romance \n", - "1829 An assassin teams up with a woman to help her ... action \n", - "1830 In an adaptation of Patricia Highsmith's semin... romance \n", - "1831 During a manned mission to Mars, Astronaut Mar... sci-fi \n", - "1832 A desk-bound CIA analyst volunteers to go unde... comedy \n", - "1833 Movie star Vincent Chase, together with his bo... comedy \n", - "1834 After young Riley is uprooted from her Midwest... comedy \n", - "1835 A dying real estate mogul transfers his consci... sci-fi \n", - "1836 Months after John's divorce, Ted and Tami-Lynn... comedy \n", - "1837 Ever since the dawn of time, the Minions have ... comedy \n", - "1838 In a world where dinosaurs and humans live sid... animation \n", - "1839 Michael Stone, an author that specializes in c... animation \n", - "1840 The Drac pack is back for an all-new monster c... animation \n", - "1841 Charlie Brown, Lucy, Snoopy, and the whole gan... animation \n", - "1842 Continuing his \"legendary adventures of awesom... comedy \n", - "\n", - "[1843 rows x 4 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import gensim\n", - "import pandas as pd\n", - "import smart_open\n", - "import random\n", - "\n", - "# read data\n", - "dataframe = pd.read_csv('movie_plots.csv')\n", - "dataframe" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below, we define a function to read the training documents, pre-process each document using a simple gensim pre-processing tool (i.e., tokenize text into individual words, remove punctuation, set to lowercase, etc), and return a list of words. Also, to train the model, we'll need to associate a tag/number with each document of the training corpus. In our case, the tag is simply the zero-based line number." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def read_corpus(documents):\n", - " for i, plot in enumerate(documents):\n", - " yield gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(plot, max_len=30), [i])" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "train_corpus = list(read_corpus(dataframe.Plots))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's take a look at the training corpus." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[TaggedDocument(words=[u'little', u'boy', u'named', u'andy', u'loves', u'to', u'be', u'in', u'his', u'room', u'playing', u'with', u'his', u'toys', u'especially', u'his', u'doll', u'named', u'woody', u'but', u'what', u'do', u'the', u'toys', u'do', u'when', u'andy', u'is', u'not', u'with', u'them', u'they', u'come', u'to', u'life', u'woody', u'believes', u'that', u'he', u'has', u'life', u'as', u'toy', u'good', u'however', u'he', u'must', u'worry', u'about', u'andy', u'family', u'moving', u'and', u'what', u'woody', u'does', u'not', u'know', u'is', u'about', u'andy', u'birthday', u'party', u'woody', u'does', u'not', u'realize', u'that', u'andy', u'mother', u'gave', u'him', u'an', u'action', u'figure', u'known', u'as', u'buzz', u'lightyear', u'who', u'does', u'not', u'believe', u'that', u'he', u'is', u'toy', u'and', u'quickly', u'becomes', u'andy', u'new', u'favorite', u'toy', u'woody', u'who', u'is', u'now', u'consumed', u'with', u'jealousy', u'tries', u'to', u'get', u'rid', u'of', u'buzz', u'then', u'both', u'woody', u'and', u'buzz', u'are', u'now', u'lost', u'they', u'must', u'find', u'way', u'to', u'get', u'back', u'to', u'andy', u'before', u'he', u'moves', u'without', u'them', u'but', u'they', u'will', u'have', u'to', u'pass', u'through', u'ruthless', u'toy', u'killer', u'sid', u'phillips'], tags=[0]),\n", - " TaggedDocument(words=[u'when', u'two', u'kids', u'find', u'and', u'play', u'magical', u'board', u'game', u'they', u'release', u'man', u'trapped', u'for', u'decades', u'in', u'it', u'and', u'host', u'of', u'dangers', u'that', u'can', u'only', u'be', u'stopped', u'by', u'finishing', u'the', u'game'], tags=[1])]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_corpus[:2]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Training the Doc2Vec Model\n", - "We'll instantiate a Doc2Vec model with a vector size with 50 words and iterating over the training corpus 55 times. We set the minimum word count to 2 in order to give higher frequency words more weighting. Model accuracy can be improved by increasing the number of iterations but this generally increases the training time. Small datasets with short documents, like this one, can benefit from more training passes." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "92031" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = gensim.models.doc2vec.Doc2Vec(size=50, min_count=2, iter=55)\n", - "model.build_vocab(train_corpus)\n", - "model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we'll save the document embedding vectors per doctag." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "model.save_word2vec_format('doc_tensor.w2v', doctag_vec=True, word_vec=False) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Prepare the Input files for Tensorboard" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Tensorboard takes two Input files. One containing the embedding vectors and the other containing relevant metadata. We'll use a gensim script to directly convert the embedding file saved in word2vec format above to the tsv format required in Tensorboard." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2017-04-20 02:23:05,284 : MainThread : INFO : running ../../gensim/scripts/word2vec2tensor.py -i doc_tensor.w2v -o movie_plot\n", - "2017-04-20 02:23:05,286 : MainThread : INFO : loading projection weights from doc_tensor.w2v\n", - "2017-04-20 02:23:05,464 : MainThread : INFO : loaded (1843, 50) matrix from doc_tensor.w2v\n", - "2017-04-20 02:23:05,578 : MainThread : INFO : 2D tensor file saved to movie_plot_tensor.tsv\n", - "2017-04-20 02:23:05,579 : MainThread : INFO : Tensor metadata file saved to movie_plot_metadata.tsv\n", - "2017-04-20 02:23:05,581 : MainThread : INFO : finished running word2vec2tensor.py\n" - ] - } - ], - "source": [ - "%run ../../gensim/scripts/word2vec2tensor.py -i doc_tensor.w2v -o movie_plot" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The script above generates two files, `movie_plot_tensor.tsv` which contain the embedding vectors and `movie_plot_metadata.tsv` containing doctags. But, these doctags are simply the unique index values and hence are not really useful to interpret what the document was while visualizing. So, we will overwrite `movie_plot_metadata.tsv` to have a custom metadata file with two columns. The first column will be for the movie titles and the second for their corresponding genres." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "with open('movie_plot_metadata.tsv','w') as w:\n", - " w.write('Titles\\tGenres\\n')\n", - " for i,j in zip(dataframe.Titles, dataframe.Genres):\n", - " w.write(\"%s\\t%s\\n\" % (i,j))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "Now you can go to http://projector.tensorflow.org/ and upload the two files by clicking on *Load data* in the left panel.\n", - "\n", - "For demo purposes I have uploaded the Doc2Vec embeddings generated from the model trained above [here](https://github.com/parulsethi/DocViz). You can access the Embedding projector configured with these uploaded embeddings at this [link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/DocViz/master/movie_plot_config.json)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "# Using Tensorboard" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the visualization purpose, the multi-dimensional embeddings that we get from the Doc2Vec model above, needs to be downsized to 2 or 3 dimensions. So that we basically end up with a new 2d or 3d embedding which tries to preserve information from the original multi-dimensional embedding. As these vectors are reduced to a much smaller dimension, the exact cosine/euclidean distances between them are not preserved, but rather relative, and hence as you’ll see below the nearest similarity results may change.\n", - "\n", - "TensorBoard has two popular dimensionality reduction methods for visualizing the embeddings and also provides a custom method based on text searches:\n", - "\n", - "- **Principal Component Analysis**: PCA aims at exploring the global structure in data, and could end up losing the local similarities between neighbours. It maximizes the total variance in the lower dimensional subspace and hence, often preserves the larger pairwise distances better than the smaller ones. See an intuition behind it in this nicely explained [answer](https://stats.stackexchange.com/questions/176672/what-is-meant-by-pca-preserving-only-large-pairwise-distances) on stackexchange.\n", - "\n", - "\n", - "- **T-SNE**: The idea of T-SNE is to place the local neighbours close to each other, and almost completely ignoring the global structure. It is useful for exploring local neighborhoods and finding local clusters. But the global trends are not represented accurately and the separation between different groups is often not preserved (see the t-sne plots of our data below which testify the same).\n", - "\n", - "\n", - "- **Custom Projections**: This is a custom bethod based on the text searches you define for different directions. It could be useful for finding meaningful directions in the vector space, for example, female to male, currency to country etc.\n", - "\n", - "You can refer to this [doc](https://www.tensorflow.org/get_started/embedding_viz) for instructions on how to use and navigate through different panels available in TensorBoard." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Visualize using PCA\n", - "\n", - "The Embedding Projector computes the top 10 principal components. The menu at the left panel lets you project those components onto any combination of two or three. \n", - "\n", - "The above plot was made using the first two principal components with total variance covered being 36.5%." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Visualize using T-SNE\n", - "\n", - "Data is visualized by animating through every iteration of the t-sne algorithm. The t-sne menu at the left lets you adjust the value of it's two hyperparameters. The first one is **Perplexity**, which is basically a measure of information. It may be viewed as a knob that sets the number of effective nearest neighbors[2]. The second one is **learning rate** that defines how quickly an algorithm learns on encountering new examples/data points.\n", - "\n", - "\n", - "\n", - "The above plot was generated with perplexity 8, learning rate 10 and iteration 500. Though the results could vary on successive runs, and you may not get the exact plot as above with same hyperparameter settings. But some small clusters will start forming as above, with different orientations." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Conclusion\n", - "\n", - "We learned about visualizing the Document Embeddings through Tensorboard's Embedding Projector. It is a useful tool for visualizing different types of data for example, word embeddings, document embeddings or the gene expressions and biological sequences. It just needs an input of 2D tensors and then you can explore your data using provided algorithms. You can also perform nearest neighbours search to find most similar data points to your query point.\n", - "\n", - "# References\n", - " 1. https://grouplens.org/datasets/movielens/\n", - " 2. https://lvdmaaten.github.io/tsne/\n", - " \n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/notebooks/Tensorboard_visualizations.ipynb b/docs/notebooks/Tensorboard_visualizations.ipynb new file mode 100644 index 0000000000..58e031a3bd --- /dev/null +++ b/docs/notebooks/Tensorboard_visualizations.ipynb @@ -0,0 +1,1282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# TensorBoard Visualizations\n", + "\n", + "\n", + "In this tutorial, we will learn how to visualize different types of NLP based Embeddings via TensorBoard. TensorBoard is a data visualization framework for visualizing and inspecting the TensorFlow runs and graphs. We will use a built-in Tensorboard visualizer called *Embedding Projector* in this tutorial. It lets you interactively visualize and analyze high-dimensional data like embeddings.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Read Data \n", + "\n", + "For this tutorial, a transformed MovieLens dataset[1] is used. You can download the final prepared csv from [here](https://github.com/parulsethi/DocViz/blob/master/movie_plots.csv)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MovieIDTitlesPlotsGenres
01Toy Story (1995)A little boy named Andy loves to be in his roo...animation
12Jumanji (1995)When two kids find and play a magical board ga...fantasy
23Grumpier Old Men (1995)Things don't seem to change much in Wabasha Co...comedy
36Heat (1995)Hunters and their prey--Neil and his professio...action
47Sabrina (1995)An ugly duckling having undergone a remarkable...romance
59Sudden Death (1995)Some terrorists kidnap the Vice President of t...action
610GoldenEye (1995)James Bond teams up with the lone survivor of ...action
715Cutthroat Island (1995)Morgan Adams and her slave, William Shaw, are ...action
817Sense and Sensibility (1995)When Mr. Dashwood dies, he must leave the bulk...romance
918Four Rooms (1995)This movie features the collaborative director...comedy
1019Ace Ventura: When Nature Calls (1995)Ace Ventura, emerging from self-imposed exile ...comedy
1129City of Lost Children, The (Cité des enfants p...Krank (Daniel Emilfork), who cannot dream, kid...sci-fi
1232Twelve Monkeys (a.k.a. 12 Monkeys) (1995)In a future world devastated by disease, a con...sci-fi
1334Babe (1995)Farmer Hoggett wins a runt piglet at a local f...fantasy
1439Clueless (1995)A rich high school student tries to boost a ne...romance
1544Mortal Kombat (1995)Based on the popular video game of the same na...action
1648Pocahontas (1995)Capt. John Smith leads a rag-tag band of Engli...animation
1750Usual Suspects, The (1995)Following a truck hijack in New York, five con...comedy
1857Home for the Holidays (1995)After losing her job, making out with her soon...comedy
1969Friday (1995)Two homies, Smokey and Craig, smoke a dope dea...comedy
2070From Dusk Till Dawn (1996)Two criminals and their hostages unknowingly s...action
2176Screamers (1995)(SIRIUS 6B, Year 2078) On a distant mining pla...sci-fi
2282Antonia's Line (Antonia) (1995)In an anonymous Dutch village, a sturdy, stron...fantasy
2388Black Sheep (1996)Comedy about the prospective Washington State ...comedy
2495Broken Arrow (1996)\"Broken Arrow\" is the term used to describe a ...action
25104Happy Gilmore (1996)A rejected hockey player puts his skills to th...comedy
26105Bridges of Madison County, The (1995)Photographer Robert Kincaid wanders into the l...romance
27110Braveheart (1995)When his secret bride is executed for assaulti...action
28141Birdcage, The (1996)Armand Goldman owns a popular drag nightclub i...comedy
29145Bad Boys (1995)Marcus Burnett is a hen-pecked family man. Mik...action
...............
1813122902Fantastic Four (2015)FANTASTIC FOUR, a contemporary re-imagining of...sci-fi
1814127098Louis C.K.: Live at The Comedy Store (2015)Comedian Louis C.K. performs live at the Comed...comedy
1815127158Tig (2015)An intimate, mixed media documentary that foll...comedy
1816127202Me and Earl and the Dying Girl (2015)Seventeen-year-old Greg has managed to become ...comedy
1817129354Focus (2015)In the midst of veteran con man Nicky's latest...action
1818129428The Second Best Exotic Marigold Hotel (2015)The Second Best Exotic Marigold Hotel is the e...comedy
1819129937Run All Night (2015)Professional Brooklyn hitman Jimmy Conlon is m...action
1820130490Insurgent (2015)One choice can transform you-or it can destroy...sci-fi
1821130520Home (2015)An alien on the run from his own people makes ...animation
1822130634Furious 7 (2015)Dominic and his crew thought they'd left the c...action
1823131013Get Hard (2015)Kevin Hart plays the role of Darnell--a family...comedy
1824132046Tomorrowland (2015)Bound by a shared destiny, a bright, optimisti...sci-fi
1825132480The Age of Adaline (2015)A young woman, born at the turn of the 20th ce...romance
1826132488Lovesick (2014)Lovesick is the comic tale of Charlie Darby (M...fantasy
1827132796San Andreas (2015)In San Andreas, California is experiencing a s...action
1828132961Far from the Madding Crowd (2015)In Victorian England, the independent and head...romance
1829133195Hitman: Agent 47 (2015)An assassin teams up with a woman to help her ...action
1830133645Carol (2015)In an adaptation of Patricia Highsmith's semin...romance
1831134130The Martian (2015)During a manned mission to Mars, Astronaut Mar...sci-fi
1832134368Spy (2015)A desk-bound CIA analyst volunteers to go unde...comedy
1833134783Entourage (2015)Movie star Vincent Chase, together with his bo...comedy
1834134853Inside Out (2015)After young Riley is uprooted from her Midwest...comedy
1835135518Self/less (2015)A dying real estate mogul transfers his consci...sci-fi
1836135861Ted 2 (2015)Months after John's divorce, Ted and Tami-Lynn...comedy
1837135887Minions (2015)Ever since the dawn of time, the Minions have ...comedy
1838136016The Good Dinosaur (2015)In a world where dinosaurs and humans live sid...animation
1839139855Anomalisa (2015)Michael Stone, an author that specializes in c...animation
1840142997Hotel Transylvania 2 (2015)The Drac pack is back for an all-new monster c...animation
1841145935Peanuts Movie, The (2015)Charlie Brown, Lucy, Snoopy, and the whole gan...animation
1842149406Kung Fu Panda 3 (2016)Continuing his \"legendary adventures of awesom...comedy
\n", + "

1843 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " MovieID Titles \\\n", + "0 1 Toy Story (1995) \n", + "1 2 Jumanji (1995) \n", + "2 3 Grumpier Old Men (1995) \n", + "3 6 Heat (1995) \n", + "4 7 Sabrina (1995) \n", + "5 9 Sudden Death (1995) \n", + "6 10 GoldenEye (1995) \n", + "7 15 Cutthroat Island (1995) \n", + "8 17 Sense and Sensibility (1995) \n", + "9 18 Four Rooms (1995) \n", + "10 19 Ace Ventura: When Nature Calls (1995) \n", + "11 29 City of Lost Children, The (Cité des enfants p... \n", + "12 32 Twelve Monkeys (a.k.a. 12 Monkeys) (1995) \n", + "13 34 Babe (1995) \n", + "14 39 Clueless (1995) \n", + "15 44 Mortal Kombat (1995) \n", + "16 48 Pocahontas (1995) \n", + "17 50 Usual Suspects, The (1995) \n", + "18 57 Home for the Holidays (1995) \n", + "19 69 Friday (1995) \n", + "20 70 From Dusk Till Dawn (1996) \n", + "21 76 Screamers (1995) \n", + "22 82 Antonia's Line (Antonia) (1995) \n", + "23 88 Black Sheep (1996) \n", + "24 95 Broken Arrow (1996) \n", + "25 104 Happy Gilmore (1996) \n", + "26 105 Bridges of Madison County, The (1995) \n", + "27 110 Braveheart (1995) \n", + "28 141 Birdcage, The (1996) \n", + "29 145 Bad Boys (1995) \n", + "... ... ... \n", + "1813 122902 Fantastic Four (2015) \n", + "1814 127098 Louis C.K.: Live at The Comedy Store (2015) \n", + "1815 127158 Tig (2015) \n", + "1816 127202 Me and Earl and the Dying Girl (2015) \n", + "1817 129354 Focus (2015) \n", + "1818 129428 The Second Best Exotic Marigold Hotel (2015) \n", + "1819 129937 Run All Night (2015) \n", + "1820 130490 Insurgent (2015) \n", + "1821 130520 Home (2015) \n", + "1822 130634 Furious 7 (2015) \n", + "1823 131013 Get Hard (2015) \n", + "1824 132046 Tomorrowland (2015) \n", + "1825 132480 The Age of Adaline (2015) \n", + "1826 132488 Lovesick (2014) \n", + "1827 132796 San Andreas (2015) \n", + "1828 132961 Far from the Madding Crowd (2015) \n", + "1829 133195 Hitman: Agent 47 (2015) \n", + "1830 133645 Carol (2015) \n", + "1831 134130 The Martian (2015) \n", + "1832 134368 Spy (2015) \n", + "1833 134783 Entourage (2015) \n", + "1834 134853 Inside Out (2015) \n", + "1835 135518 Self/less (2015) \n", + "1836 135861 Ted 2 (2015) \n", + "1837 135887 Minions (2015) \n", + "1838 136016 The Good Dinosaur (2015) \n", + "1839 139855 Anomalisa (2015) \n", + "1840 142997 Hotel Transylvania 2 (2015) \n", + "1841 145935 Peanuts Movie, The (2015) \n", + "1842 149406 Kung Fu Panda 3 (2016) \n", + "\n", + " Plots Genres \n", + "0 A little boy named Andy loves to be in his roo... animation \n", + "1 When two kids find and play a magical board ga... fantasy \n", + "2 Things don't seem to change much in Wabasha Co... comedy \n", + "3 Hunters and their prey--Neil and his professio... action \n", + "4 An ugly duckling having undergone a remarkable... romance \n", + "5 Some terrorists kidnap the Vice President of t... action \n", + "6 James Bond teams up with the lone survivor of ... action \n", + "7 Morgan Adams and her slave, William Shaw, are ... action \n", + "8 When Mr. Dashwood dies, he must leave the bulk... romance \n", + "9 This movie features the collaborative director... comedy \n", + "10 Ace Ventura, emerging from self-imposed exile ... comedy \n", + "11 Krank (Daniel Emilfork), who cannot dream, kid... sci-fi \n", + "12 In a future world devastated by disease, a con... sci-fi \n", + "13 Farmer Hoggett wins a runt piglet at a local f... fantasy \n", + "14 A rich high school student tries to boost a ne... romance \n", + "15 Based on the popular video game of the same na... action \n", + "16 Capt. John Smith leads a rag-tag band of Engli... animation \n", + "17 Following a truck hijack in New York, five con... comedy \n", + "18 After losing her job, making out with her soon... comedy \n", + "19 Two homies, Smokey and Craig, smoke a dope dea... comedy \n", + "20 Two criminals and their hostages unknowingly s... action \n", + "21 (SIRIUS 6B, Year 2078) On a distant mining pla... sci-fi \n", + "22 In an anonymous Dutch village, a sturdy, stron... fantasy \n", + "23 Comedy about the prospective Washington State ... comedy \n", + "24 \"Broken Arrow\" is the term used to describe a ... action \n", + "25 A rejected hockey player puts his skills to th... comedy \n", + "26 Photographer Robert Kincaid wanders into the l... romance \n", + "27 When his secret bride is executed for assaulti... action \n", + "28 Armand Goldman owns a popular drag nightclub i... comedy \n", + "29 Marcus Burnett is a hen-pecked family man. Mik... action \n", + "... ... ... \n", + "1813 FANTASTIC FOUR, a contemporary re-imagining of... sci-fi \n", + "1814 Comedian Louis C.K. performs live at the Comed... comedy \n", + "1815 An intimate, mixed media documentary that foll... comedy \n", + "1816 Seventeen-year-old Greg has managed to become ... comedy \n", + "1817 In the midst of veteran con man Nicky's latest... action \n", + "1818 The Second Best Exotic Marigold Hotel is the e... comedy \n", + "1819 Professional Brooklyn hitman Jimmy Conlon is m... action \n", + "1820 One choice can transform you-or it can destroy... sci-fi \n", + "1821 An alien on the run from his own people makes ... animation \n", + "1822 Dominic and his crew thought they'd left the c... action \n", + "1823 Kevin Hart plays the role of Darnell--a family... comedy \n", + "1824 Bound by a shared destiny, a bright, optimisti... sci-fi \n", + "1825 A young woman, born at the turn of the 20th ce... romance \n", + "1826 Lovesick is the comic tale of Charlie Darby (M... fantasy \n", + "1827 In San Andreas, California is experiencing a s... action \n", + "1828 In Victorian England, the independent and head... romance \n", + "1829 An assassin teams up with a woman to help her ... action \n", + "1830 In an adaptation of Patricia Highsmith's semin... romance \n", + "1831 During a manned mission to Mars, Astronaut Mar... sci-fi \n", + "1832 A desk-bound CIA analyst volunteers to go unde... comedy \n", + "1833 Movie star Vincent Chase, together with his bo... comedy \n", + "1834 After young Riley is uprooted from her Midwest... comedy \n", + "1835 A dying real estate mogul transfers his consci... sci-fi \n", + "1836 Months after John's divorce, Ted and Tami-Lynn... comedy \n", + "1837 Ever since the dawn of time, the Minions have ... comedy \n", + "1838 In a world where dinosaurs and humans live sid... animation \n", + "1839 Michael Stone, an author that specializes in c... animation \n", + "1840 The Drac pack is back for an all-new monster c... animation \n", + "1841 Charlie Brown, Lucy, Snoopy, and the whole gan... animation \n", + "1842 Continuing his \"legendary adventures of awesom... comedy \n", + "\n", + "[1843 rows x 4 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import gensim\n", + "import pandas as pd\n", + "import smart_open\n", + "import random\n", + "\n", + "# read data\n", + "dataframe = pd.read_csv('movie_plots.csv')\n", + "dataframe" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Visualizing Doc2Vec\n", + "In this part, we will learn about visualizing Doc2Vec Embeddings aka [Paragraph Vectors](https://arxiv.org/abs/1405.4053) via TensorBoard. The input documents for training will be the synopsis of movies, on which Doc2Vec model is trained. \n", + "\n", + "\n", + "\n", + "The visualizations will be a scatterplot as seen in the above image, where each datapoint is labelled by the movie title and colored by it's corresponding genre. You can also visit this [Projector link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/DocViz/master/movie_plot_config.json) which is configured with my embeddings for the above mentioned dataset. \n", + "\n", + "\n", + "## Preprocess Text" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below, we define a function to read the training documents, pre-process each document using a simple gensim pre-processing tool (i.e., tokenize text into individual words, remove punctuation, set to lowercase, etc), and return a list of words. Also, to train the model, we'll need to associate a tag/number with each document of the training corpus. In our case, the tag is simply the zero-based line number." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def read_corpus(documents):\n", + " for i, plot in enumerate(documents):\n", + " yield gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(plot, max_len=30), [i])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "train_corpus = list(read_corpus(dataframe.Plots))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take a look at the training corpus." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[TaggedDocument(words=['little', 'boy', 'named', 'andy', 'loves', 'to', 'be', 'in', 'his', 'room', 'playing', 'with', 'his', 'toys', 'especially', 'his', 'doll', 'named', 'woody', 'but', 'what', 'do', 'the', 'toys', 'do', 'when', 'andy', 'is', 'not', 'with', 'them', 'they', 'come', 'to', 'life', 'woody', 'believes', 'that', 'he', 'has', 'life', 'as', 'toy', 'good', 'however', 'he', 'must', 'worry', 'about', 'andy', 'family', 'moving', 'and', 'what', 'woody', 'does', 'not', 'know', 'is', 'about', 'andy', 'birthday', 'party', 'woody', 'does', 'not', 'realize', 'that', 'andy', 'mother', 'gave', 'him', 'an', 'action', 'figure', 'known', 'as', 'buzz', 'lightyear', 'who', 'does', 'not', 'believe', 'that', 'he', 'is', 'toy', 'and', 'quickly', 'becomes', 'andy', 'new', 'favorite', 'toy', 'woody', 'who', 'is', 'now', 'consumed', 'with', 'jealousy', 'tries', 'to', 'get', 'rid', 'of', 'buzz', 'then', 'both', 'woody', 'and', 'buzz', 'are', 'now', 'lost', 'they', 'must', 'find', 'way', 'to', 'get', 'back', 'to', 'andy', 'before', 'he', 'moves', 'without', 'them', 'but', 'they', 'will', 'have', 'to', 'pass', 'through', 'ruthless', 'toy', 'killer', 'sid', 'phillips'], tags=[0]),\n", + " TaggedDocument(words=['when', 'two', 'kids', 'find', 'and', 'play', 'magical', 'board', 'game', 'they', 'release', 'man', 'trapped', 'for', 'decades', 'in', 'it', 'and', 'host', 'of', 'dangers', 'that', 'can', 'only', 'be', 'stopped', 'by', 'finishing', 'the', 'game'], tags=[1])]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_corpus[:2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training the Doc2Vec Model\n", + "We'll instantiate a Doc2Vec model with a vector size with 50 words and iterating over the training corpus 55 times. We set the minimum word count to 2 in order to give higher frequency words more weighting. Model accuracy can be improved by increasing the number of iterations but this generally increases the training time. Small datasets with short documents, like this one, can benefit from more training passes." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5168238" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = gensim.models.doc2vec.Doc2Vec(size=50, min_count=2, iter=55)\n", + "model.build_vocab(train_corpus)\n", + "model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll save the document embedding vectors per doctag." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "model.save_word2vec_format('doc_tensor.w2v', doctag_vec=True, word_vec=False) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare the Input files for Tensorboard" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Tensorboard takes two Input files. One containing the embedding vectors and the other containing relevant metadata. We'll use a gensim script to directly convert the embedding file saved in word2vec format above to the tsv format required in Tensorboard." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2017-04-20 02:23:05,284 : MainThread : INFO : running ../../gensim/scripts/word2vec2tensor.py -i doc_tensor.w2v -o movie_plot\n", + "2017-04-20 02:23:05,286 : MainThread : INFO : loading projection weights from doc_tensor.w2v\n", + "2017-04-20 02:23:05,464 : MainThread : INFO : loaded (1843, 50) matrix from doc_tensor.w2v\n", + "2017-04-20 02:23:05,578 : MainThread : INFO : 2D tensor file saved to movie_plot_tensor.tsv\n", + "2017-04-20 02:23:05,579 : MainThread : INFO : Tensor metadata file saved to movie_plot_metadata.tsv\n", + "2017-04-20 02:23:05,581 : MainThread : INFO : finished running word2vec2tensor.py\n" + ] + } + ], + "source": [ + "%run ../../gensim/scripts/word2vec2tensor.py -i doc_tensor.w2v -o movie_plot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The script above generates two files, `movie_plot_tensor.tsv` which contain the embedding vectors and `movie_plot_metadata.tsv` containing doctags. But, these doctags are simply the unique index values and hence are not really useful to interpret what the document was while visualizing. So, we will overwrite `movie_plot_metadata.tsv` to have a custom metadata file with two columns. The first column will be for the movie titles and the second for their corresponding genres." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "with open('movie_plot_metadata.tsv','w') as w:\n", + " w.write('Titles\\tGenres\\n')\n", + " for i,j in zip(dataframe.Titles, dataframe.Genres):\n", + " w.write(\"%s\\t%s\\n\" % (i,j))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now you can go to http://projector.tensorflow.org/ and upload the two files by clicking on *Load data* in the left panel.\n", + "\n", + "For demo purposes I have uploaded the Doc2Vec embeddings generated from the model trained above [here](https://github.com/parulsethi/DocViz). You can access the Embedding projector configured with these uploaded embeddings at this [link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/DocViz/master/movie_plot_config.json)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Using Tensorboard" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the visualization purpose, the multi-dimensional embeddings that we get from the Doc2Vec model above, needs to be downsized to 2 or 3 dimensions. So that we basically end up with a new 2d or 3d embedding which tries to preserve information from the original multi-dimensional embedding. As these vectors are reduced to a much smaller dimension, the exact cosine/euclidean distances between them are not preserved, but rather relative, and hence as you’ll see below the nearest similarity results may change.\n", + "\n", + "TensorBoard has two popular dimensionality reduction methods for visualizing the embeddings and also provides a custom method based on text searches:\n", + "\n", + "- **Principal Component Analysis**: PCA aims at exploring the global structure in data, and could end up losing the local similarities between neighbours. It maximizes the total variance in the lower dimensional subspace and hence, often preserves the larger pairwise distances better than the smaller ones. See an intuition behind it in this nicely explained [answer](https://stats.stackexchange.com/questions/176672/what-is-meant-by-pca-preserving-only-large-pairwise-distances) on stackexchange.\n", + "\n", + "\n", + "- **T-SNE**: The idea of T-SNE is to place the local neighbours close to each other, and almost completely ignoring the global structure. It is useful for exploring local neighborhoods and finding local clusters. But the global trends are not represented accurately and the separation between different groups is often not preserved (see the t-sne plots of our data below which testify the same).\n", + "\n", + "\n", + "- **Custom Projections**: This is a custom bethod based on the text searches you define for different directions. It could be useful for finding meaningful directions in the vector space, for example, female to male, currency to country etc.\n", + "\n", + "You can refer to this [doc](https://www.tensorflow.org/get_started/embedding_viz) for instructions on how to use and navigate through different panels available in TensorBoard." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize using PCA\n", + "\n", + "The Embedding Projector computes the top 10 principal components. The menu at the left panel lets you project those components onto any combination of two or three. \n", + "\n", + "The above plot was made using the first two principal components with total variance covered being 36.5%." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Visualize using T-SNE\n", + "\n", + "Data is visualized by animating through every iteration of the t-sne algorithm. The t-sne menu at the left lets you adjust the value of it's two hyperparameters. The first one is **Perplexity**, which is basically a measure of information. It may be viewed as a knob that sets the number of effective nearest neighbors[2]. The second one is **learning rate** that defines how quickly an algorithm learns on encountering new examples/data points.\n", + "\n", + "\n", + "\n", + "The above plot was generated with perplexity 8, learning rate 10 and iteration 500. Though the results could vary on successive runs, and you may not get the exact plot as above with same hyperparameter settings. But some small clusters will start forming as above, with different orientations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Visualizing LDA\n", + "\n", + "In this part, we will see how to visualize LDA in Tensorboard. We will be using the Document-topic distribution as the embedding vector of a document. Basically, we treat topics as the dimensions and the value in each dimension represents the topic proportion of that topic in the document.\n", + "\n", + "## Preprocess Text\n", + "\n", + "We use the movie Plots as our documents in corpus and remove rare words and common words based on their document frequency. Below we remove words that appear in less than 2 documents or in more than 30% of the documents." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import re\n", + "from gensim.parsing.preprocessing import remove_stopwords, strip_punctuation\n", + "from gensim.models import ldamodel\n", + "from gensim.corpora.dictionary import Dictionary\n", + "\n", + "# read data\n", + "dataframe = pd.read_csv('movie_plots.csv')\n", + "\n", + "# remove stopwords and punctuations\n", + "def preprocess(row):\n", + " return strip_punctuation(remove_stopwords(row.lower()))\n", + " \n", + "dataframe['Plots'] = dataframe['Plots'].apply(preprocess)\n", + "\n", + "# Convert data to required input format by LDA\n", + "texts = []\n", + "for line in dataframe.Plots:\n", + " lowered = line.lower()\n", + " words = re.findall(r'\\w+', lowered, flags = re.UNICODE | re.LOCALE)\n", + " texts.append(words)\n", + "# Create a dictionary representation of the documents.\n", + "dictionary = Dictionary(texts)\n", + "\n", + "# Filter out words that occur less than 2 documents, or more than 30% of the documents.\n", + "dictionary.filter_extremes(no_below=2, no_above=0.3)\n", + "# Bag-of-words representation of the documents.\n", + "corpus = [dictionary.doc2bow(text) for text in texts]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train LDA Model\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Set training parameters.\n", + "num_topics = 10\n", + "chunksize = 2000\n", + "passes = 50\n", + "iterations = 200\n", + "eval_every = None\n", + "\n", + "# Train model\n", + "model = ldamodel.LdaModel(corpus=corpus, id2word=dictionary, chunksize=chunksize, alpha='auto', eta='auto', iterations=iterations, num_topics=num_topics, passes=passes, eval_every=eval_every)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can refer to [this notebook](https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/lda_training_tips.ipynb) also before training the LDA model. It contains tips and suggestions for pre-processing the text data, and how to train the LDA model to get good results." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Doc-Topic distribution\n", + "\n", + "Now we will use `get_document_topics` which infers the topic distribution of a document. It basically returns a list of (topic_id, topic_probability) for each document in the input corpus." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0, 0.00029626785677659928),\n", + " (1, 0.99734244187457377),\n", + " (2, 0.00031813940693891458),\n", + " (3, 0.00031573036467256674),\n", + " (4, 0.00033277056023999966),\n", + " (5, 0.00023981837072288835),\n", + " (6, 0.00033113374640540293),\n", + " (7, 0.00027953838669809549),\n", + " (8, 0.0002706215262517565),\n", + " (9, 0.00027353790672011199)]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get document topics\n", + "all_topics = model.get_document_topics(corpus, minimum_probability=0)\n", + "all_topics[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above output shows the topic distribution of first document in the corpus as a list of (topic_id, topic_probability).\n", + "\n", + "Now, using the topic distribution of a document as it's vector embedding, we will plot all the documents in our corpus using Tensorboard." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare the Input files for Tensorboard\n", + "\n", + "Tensorboard takes two input files, one containing the embedding vectors and the other containing relevant metadata. As described above we will use the topic distribution of documents as their embedding vector. Metadata file will consist of Movie titles with their genres." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# create file for tensors\n", + "with open('doc_lda_tensor.tsv','w') as w:\n", + " for doc_topics in all_topics:\n", + " for topics in doc_topics:\n", + " w.write(str(topics[1])+ \"\\t\")\n", + " w.write(\"\\n\")\n", + " \n", + "# create file for metadata\n", + "with open('doc_lda_metadata.tsv','w') as w:\n", + " w.write('Titles\\tGenres\\n')\n", + " for j, k in zip(dataframe.Titles, dataframe.Genres):\n", + " w.write(\"%s\\t%s\\n\" % (j, k))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now you can go to http://projector.tensorflow.org/ and upload these two files by clicking on Load data in the left panel.\n", + "\n", + "For demo purposes I have uploaded the LDA doc-topic embeddings generated from the model trained above [here](https://github.com/parulsethi/LdaProjector/). You can also access the Embedding projector configured with these uploaded embeddings at this [link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/LdaProjector/master/doc_lda_config.json)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize using PCA\n", + "\n", + "The Embedding Projector computes the top 10 principal components. The menu at the left panel lets you project those components onto any combination of two or three.\n", + "\n", + "From PCA, we get a simplex (tetrahedron in this case) where each data point represent a document. These data points are colored according to their Genres which were given in the Movie dataset. \n", + "\n", + "As we can see there are a lot of points which cluster at the corners of the simplex. This is primarily due to the sparsity of vectors we are using. The documents at the corners primarily belongs to a single topic (hence, large weight in a single dimension and other dimensions have approximately zero weight.) You can modify the metadata file as explained below to see the dimension weights along with the Movie title.\n", + "\n", + "Now, we will append the topics with highest probability (topic_id, topic_probability) to the document's title, in order to explore what topics do the cluster corners or edges dominantly belong to. For this, we just need to overwrite the metadata file as below:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "tensors = []\n", + "for doc_topics in all_topics:\n", + " doc_tensor = []\n", + " for topic in doc_topics:\n", + " if round(topic[1], 3) > 0:\n", + " doc_tensor.append((topic[0], float(round(topic[1], 3))))\n", + " # sort topics according to highest probabilities\n", + " doc_tensor = sorted(doc_tensor, key=lambda x: x[1], reverse=True)\n", + " # store vectors to add in metadata file\n", + " tensors.append(doc_tensor[:5])\n", + "\n", + "# overwrite metadata file\n", + "i=0\n", + "with open('doc_lda_metadata.tsv','w') as w:\n", + " w.write('Titles\\tGenres\\n')\n", + " for j,k in zip(dataframe.Titles, dataframe.Genres):\n", + " w.write(\"%s\\t%s\\n\" % (''.join((str(j), str(tensors[i]))),k))\n", + " i+=1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we upload the previous tensor file \"doc_lda_tensor.tsv\" and this new metadata file to http://projector.tensorflow.org/ .\n", + "\n", + "Voila! Now we can click on any point to see it's top topics with their probabilty in that document, along with the title. As we can see in the above example, \"Beverly hill cops\" primarily belongs to the 0th and 1st topic as they have the highest probability amongst all.\n", + "\n", + "\n", + "\n", + "## Visualize using T-SNE\n", + "\n", + "In T-SNE, the data is visualized by animating through every iteration of the t-sne algorithm. The t-sne menu at the left lets you adjust the value of it's two hyperparameters. The first one is Perplexity, which is basically a measure of information. It may be viewed as a knob that sets the number of effective nearest neighbors[2]. The second one is learning rate that defines how quickly an algorithm learns on encountering new examples/data points.\n", + "\n", + "Now, as the topic distribution of a document is used as it’s embedding vector, t-sne ends up forming clusters of documents belonging to same topics. In order to understand and interpret about the theme of those topics, we can use `show_topic()` to explore the terms that the topics consisted of.\n", + "\n", + "\n", + "\n", + "The above plot was generated with perplexity 11, learning rate 10 and iteration 1100. Though the results could vary on successive runs, and you may not get the exact plot as above even with same hyperparameter settings. But some small clusters will start forming as above, with different orientations.\n", + "\n", + "I named some clusters above based on the genre of it's movies and also using the `show_topic()` to see relevant terms of the topic which was most prevelant in a cluster. Most of the clusters had doocumets belonging dominantly to a single topic. For ex. The cluster with movies belonging primarily to topic 0 could be named Fantasy/Romance based on terms displayed below for topic 0. You can play with the visualization yourself on this [link](http://projector.tensorflow.org/?config=https://raw.githubusercontent.com/parulsethi/LdaProjector/master/doc_lda_config.json) and try to conclude a label for clusters based on movies it has and their dominant topic. You can see the top 5 topics of every point by hovering over it.\n", + "\n", + "Now, we can notice that their are more than 10 clusters in the above image, whereas we trained our model for `num_topics=10`. It's because their are few clusters, which has documents belonging to more than one topic with an approximately close topic probability values." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('life', 0.0069577926389817156),\n", + " ('world', 0.006240163206609986),\n", + " ('man', 0.0058828040298109794),\n", + " ('young', 0.0053747678629860532),\n", + " ('family', 0.005083746467542196),\n", + " ('love', 0.0048691281379952146),\n", + " ('new', 0.004097644507005606),\n", + " ('t', 0.0037446821043766597),\n", + " ('time', 0.0037022423231064822),\n", + " ('finds', 0.0036129806190553109),\n", + " ('woman', 0.0031742920620375422),\n", + " ('earth', 0.0031692677510459484),\n", + " ('help', 0.0031061538189201504),\n", + " ('it', 0.0028658594310878023),\n", + " ('years', 0.00272218005397741)]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.show_topic(topicid=0, topn=15)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can even use pyLDAvis to deduce topics more efficiently. It provides a deeper inspection of the terms highly associated with each individual topic. For this, it uses a measure called **relevance** of a term to a topic that allows users to flexibly rank terms best suited for a meaningful topic interpretation. It's weight parameter called λ can be adjusted to display useful terms which could help in differentiating topics efficiently." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/parul/.virtualenvs/gensim3/lib/python3.4/site-packages/pyLDAvis/_prepare.py:387: DeprecationWarning: \n", + ".ix is deprecated. Please use\n", + ".loc for label based indexing or\n", + ".iloc for positional indexing\n", + "\n", + "See the documentation here:\n", + "http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix\n", + " topic_term_dists = topic_term_dists.ix[topic_order]\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "
\n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pyLDAvis.gensim\n", + "\n", + "viz = pyLDAvis.gensim.prepare(model, corpus, dictionary)\n", + "pyLDAvis.display(viz)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The weight parameter λ can be viewed as a knob to adjust the ranks of the terms based on whether they are simply ranked according to their probability in the topic (λ=1) or are normalized by their marginal probability across the corpus (λ=0). Setting λ=1 could result in similar ranking of terms for large no. of topics hence making it difficult to differentiate between them, and setting λ=0 ranks terms solely based on their exclusiveness to current topic which could result in such rare terms that occur in only a single topic and hence the topics may remain difficult to interpret. [(Sievert and Shirley 2014)](https://nlp.stanford.edu/events/illvi2014/papers/sievert-illvi2014.pdf) suggested the optimal value of λ=0.6 based on a user study." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Conclusion\n", + "\n", + "We learned about visualizing the Document Embeddings and LDA Doc-topic distributions through Tensorboard's Embedding Projector. It is a useful tool for visualizing different types of data for example, word embeddings, document embeddings or the gene expressions and biological sequences. It just needs an input of 2D tensors and then you can explore your data using provided algorithms. You can also perform nearest neighbours search to find most similar data points to your query point.\n", + "\n", + "# References\n", + " 1. https://grouplens.org/datasets/movielens/\n", + " 2. https://lvdmaaten.github.io/tsne/\n" + ] + } + ], + "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.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/notebooks/doc_lda_pca.png b/docs/notebooks/doc_lda_pca.png new file mode 100644 index 0000000000000000000000000000000000000000..2f29a3a7313bbc2c647d5ebac1c9460ae2ac7dcd GIT binary patch literal 14331 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
  • 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